Install
openclaw skills install @voronindenis5/water-heater-tunerUse when setting, lowering, or troubleshooting a residential water heater temperature — scald-risk math by age, legionella pasteurization windows, energy savings per degree, single-parent vs cascade tank configs, vacation/away protocols, and recovery-time estimates for shower scheduling.
openclaw skills install @voronindenis5/water-heater-tunerThe water heater setpoint is a three-way trade almost nobody optimizes: scald safety (kids and elders burn at 49°C in seconds), legionella risk (the bacteria that causes Legionnaires' disease colonizes stagnant warm water 20–45°C and dies slowly below 50°C, fast above 60°C), and energy cost (every 10°F / ~5.6°C of setpoint costs roughly 3–5% of water-heating energy via standby loss). This skill computes the trade for YOUR household: who uses the hot water, how big the tank is, what climate zone the tank sits in — and returns a setpoint verdict, a pasteurization plan if you go low, exact vacation protocols, and recovery-time math for "can three people shower back-to-back at 6 am".
Don't use for: tankless/on-demand sizing (different physics — inlet temp and flow rate dominate), boiler/radiator central heating, or solar thermal controllers.
profile — household: ages of users (scald class), tank liters/gallons,
fuel (gas/electric/heat-pump), location (basement/garage/conditioned),
current setpoint if known.setpoint — verdict: the recommended storage temperature + tap delivery
strategy (anti-scald mixing valve at 49°C lets you STORE at 60°C — best
of both worlds; note it in the output).energy --to 50 — estimated annual savings for a setpoint move, plus
tank-blanket / pipe-insulation / heat-pump-upgrade deltas.recovery --showers 3 — first-hour and consecutive-shower math at your
setpoint and inlet temperature (winter inlet matters).pasteurize — dated protocol card for low-setpoint operation or after
any stagnation (vacation >1 week, vacancy, temp was ever <50°C).vacation --days 14 — away plan: vacation mode vs off, what to do on
return (flush protocol), what NOT to do (don't drain a gas tank's
element... fuel-specific notes).python3 scripts/heater_tuner.py profile --tank-gal 40 --fuel gas \
--users adult,adult,child2 --location basement --setpoint 130
python3 scripts/heater_tuner.py setpoint
python3 scripts/heater_tuner.py energy --to 120 --price 0.20
python3 scripts/heater_tuner.py recovery --showers 3 --inlet-c 9
python3 scripts/heater_tuner.py pasteurize
python3 scripts/heater_tuner.py vacation --days 14
Store: heater_profile.json next to the script (--store to override).
Family with a 2-year-old, gas 40-gal tank in a cold basement set to 140°F: verdict — store at 60°C/140°F with a 49°C anti-scald valve (legionella-safe storage + child-safe delivery), savings vs "just lower to 120°F" are equal but with better sanitation; without a valve: 49°C delivery cap → weekly pasteurize protocol printed. Recovery math says 3 morning showers fit with 8 min spacing at 140°F (larger draw before mixed-cold), only 2 back-to-back at 120°F — the morning schedule decides the strategy as much as safety does.