Add TEMP-1 hot water recirculation blueprint#17
Conversation
One automation that runs Donovan's recirculation system: a user-picked start trigger (their button press) turns on the pump, then it watches the TEMP-1 probe and the pump's power to open the 3-way valve, runs optional "ready" actions (announce, shower fan, light), and reverts to the mini tank when the line cools. Two state-trigger timeouts act as safety backstops. No helpers required. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
Warning Review limit reached
Next review available in: 13 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughAdds a new Home Assistant blueprint ChangesHot Water Recirculation Blueprint
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
TEMP-1/hot-water-recirculation.yaml (1)
76-97: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winDefaulting
return_tempequal toactivate_templeaves no hysteresis.With both defaulting to 90 °F, the valve opens above 90 and closes below 90 with effectively no dead band, inviting open/close flapping when the line hovers near the threshold. Consider a lower default for
return_temp(e.g., 80) so closing lags opening.♻️ Suggested default
return_temp: name: Return temperature description: Close the valve (back to the mini tank) once the line drops below this. - default: 90 + default: 80🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@TEMP-1/hot-water-recirculation.yaml` around lines 76 - 97, The `activate_temp` and `return_temp` defaults in `hot-water-recirculation.yaml` currently match, which removes hysteresis and can cause valve flapping near the threshold. Adjust the `return_temp` default to a lower value than `activate_temp` (for example, 80 instead of 90) while keeping the existing selector ranges and descriptions intact, so the valve closes later than it opens.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@TEMP-1/hot-water-recirculation.yaml`:
- Around line 245-254: The default branch in hot-water-recirculation.yaml is
acting as a catch-all in the choose logic, so ordinary triggers like open_temp
and close_temp can fall through and turn on the pump unexpectedly when their
state checks fail. Update the choose/default handling so only the id-less
start_trigger can reach the pump-on action, and make the branch conditions in
the recirculation automation explicitly prevent non-start triggers from entering
default. Use the existing trigger ids and the pump_switch target/action block to
locate the logic and tighten the guard.
---
Nitpick comments:
In `@TEMP-1/hot-water-recirculation.yaml`:
- Around line 76-97: The `activate_temp` and `return_temp` defaults in
`hot-water-recirculation.yaml` currently match, which removes hysteresis and can
cause valve flapping near the threshold. Adjust the `return_temp` default to a
lower value than `activate_temp` (for example, 80 instead of 90) while keeping
the existing selector ranges and descriptions intact, so the valve closes later
than it opens.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 6b8e89c1-c305-4c6e-b033-5f53422f534e
📒 Files selected for processing (1)
TEMP-1/hot-water-recirculation.yaml
The default branch acted as a catch-all: any built-in trigger (e.g. open_temp, close_temp) whose guard conditions failed fell through to default and turned the pump on. Ordinary temperature movement while idle could start a cycle. Replace default with a guarded choose branch using condition: not around the known trigger ids, so only the id-less user start trigger can reach the pump-on action, and only when the pump is off. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Fix a stale code comment that referred to a "default branch" (replaced by the guarded start branch) and drop em dashes from the description. No logic changes. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
Caution Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted. Error details |
- Start branch: if the line is already above the activate temperature, open the valve directly instead of running the pump. On a hot line the pump's thermostat never spins the motor, so no power crossing fired and the plug sat on until the safety timeout. - New pump_started trigger + branch covers the same edge case when the pump plug is turned on directly (dashboard tap, voice command), which bypasses the guarded start branch. - mode: queued -> parallel. A slow ready_actions run would otherwise queue the pump/valve safety branches behind it, so the safety timeout was not actually a bound. - return_temp defaults to 80 so closing lags opening (CodeRabbit). - Temperature inputs drop the min 60 / °F pin; metric installs compare the probe state in °C and need values near 30. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
One blueprint that reproduces Donovan's hot water recirculation system (write-up: the TEMP-1 wiki page).
How it works: the user picks a Start trigger (their button's press) via the trigger selector. That turns on the pump. The blueprint then watches the TEMP-1 probe and the pump's power sensor to open the 3-way valve (sinks switch to the house heater), runs an optional Actions when ready sequence (announce / shower fan / light flash via an action selector), stops the pump once its draw drops, and reverts the valve when the line cools. Two
for:-duration state triggers are safety backstops.min_version: 2024.10.0(trigger selector)main, so this needs to land onmainbefore the docs PR goes live.🤖 Generated with Claude Code
Summary by CodeRabbit