I previously described a project I implemented for monitoring the (finicky) pilot light in my water heater. That water heater is reaching end-of-life, and I'm replacing it with a tankless water heater. The old water heater had an external recirculation pump that operated on a timer, though I eventually integrated my scheme with Home Assistant and plugged the pump into a smart outlet so that I could let household members push a button to call for hot water when it wasn't in the timer window. That on-demand feature has been reasonably well-received.
The new heater is a Navien NPE-A2. It has a recirculation pump built-in, and it also has an optional feature called HotButton that lets you call for hot water recirculation on demand. That is pretty dandy, but there are some quirks to their implementation that are not the choices I would make.
This project is about how I am using the awesome power of inexpensive electronics, rich open source software, and personal stubbornness to get things to operate the way I want. For more details, check the project logs.
- A relay is wired directly to the water heater's HotButton terminals. The relay is controlled by a microprocessor and simulates a person pressing the physical button of the HotButton add-on.
- Remote hot water call buttons are placed in upstairs bathrooms. The call buttons are microprocessors with an RGB LED for feedback.
- Home Assistant automation is used to tie it all together. It senses a press on any of the remote call buttons, activates the relay, and provides visual feedback via the RGB LEDs on the remote call buttons.
- Communications between the remote call buttons, the Home Assistant server, and the relay are over wifi.