I wanted to share a quick write-up of what finally made the Hot Button work over ESPHome on my Navien NPE-240A2, and also confirm that NaviLink and ESPHome can coexist on the same UART bus.
The key fix was firmware selection.
Initially I was using the default config that includes:
navien: !include navien-wrd-hb.yml
That version expects a physical hot button wired, so while I could read temps and change setpoints over UART, pressing the Hot Button in Home Assistant did nothing.
The solution was switching to the D1 Mini config:
navien: !include navien-d1-mini.yml
This enables the Hot Button command over RS-485/UART, which is exactly what the NPE-240A2 supports natively. After flashing that firmware, the Hot Button immediately started working from Home Assistant, and the heater correctly switched to:
Recirculation Mode: External HotButton
No relay, no dry contacts, no jumper, purely serial control.
Second important point: NaviLink and ESPHome can run at the same time.
I made a JST-SH Y-splitter cable so both the NaviLink module and the ESP8266 connect to the same 5-pin UART port on the front display.
• Both devices read data correctly
• Both devices can change temperature
• ESPHome Hot Button works
• NaviLink continues to function normally
Navien’s bus appears to tolerate multiple devices just fine, which makes sense since their cascade and controller setups are also multi-device.
That said, I’d recommend not sending commands simultaneously from both just to avoid any possible collisions. In normal use, it’s been completely stable.
Summary for NPE-240A2 users:
• Use navien-d1-mini.yml
• Not navien-wrd-hb.yml
• This enables Hot Button over serial
• No hardware button required
• JST-SH Y splitter allows NaviLink + ESPHome coexistence
Huge thanks to Hovhannes for pointing me in the right direction on the firmware difference, that was the missing piece.
Hopefully this helps!