DIY Smart Water Heater

I’ve been wanting to save some electricity on my conventional electric hot water heater. Well, ok, that would be nice, but really I’ve been wanting to save some money on it. I recently found out that I could switch my power company billing to Time-of-Use, which has highest cost during certain periods of the day, and lower cost the rest of the time. I decided to build a smart control to shut off the water heater during the peak period.

I installed a thermostatic mixing valve, so I could turn up the tank temperature to ludicrous heat (150F/65C). It automatically mixes in cold water to keep the house pipes at a safe temperature (120F/50C). This gives me more total heat capacity in the tank.

To monitor everything, I bought a Nutrichef 4-probe thermometer that broadcasts on bluetooth to Home Assistant (ESPHome BLE proxy). I put the probes on the upper half of the tank, lower half of tank, output pipe before mixing valve, and output pipe after mixing valve. I connected a 3V power supply into the battery leads (and kept the two AA batteries in parallel so it even has its own UPS haha).

The hours and time of day for peak billing vary by season of the year and weekday versus weekend, so I created a template sensor in HA that calculates what the current billing category is at any given moment.

My electrical switch is a 40 Amp contactor relay, controlled by a Sonoff ZBMINI Zigbee smart switch. The contactor is normally closed, so when it is not powered, the water heater operates normally. I turn on the smart switch to pull open the contactor, which interrupts the electricity to the water heater, for peak-time bypass. (Water heater is on a 30A circuit breaker, and draws 17A when heating, so a 40A contactor has a large safety margin.)

Since I’m also monitoring the bluetooth thermometers, if the tank temp drops too low during peak time, my automation will let the water heater operate and heat back up for a limited time. This way I ensure nobody in the house runs out of hot water, but a full tank reheat will wait until peak time is over. (So far this scenario hasn’t happened yet; tank storage has been enough to get through peak time).

I don’t know yet how much money this will save me, but I spent about $100 USD to put it together, which is a lot less than a new $1500 heat pump water heater.

It is also completely silent. I have not yet heard a heat pump water heater in person, but some reports say that they are loud. My water heater is in the center of the house, so noise is a concern.

This has now been in operation for about a week, and is working great so far. I’m waiting to see how next month’s power bill turns out.