Navien, ESP32 Navilink interface

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!

1 Like

Awesome!

I will try to come up with a yaml combination to do that gymnastics automatically.

2 Likes

NPE-240A2
I am running an atom lite (ok the m5 echo cause I had one) with the rs485 addon all I did was add this to the bottom of the esphome config

button:
  - platform: navien
    id: rs485_hot_button
    name: "Hot Button"

And I have a hot button thet works

I guess I spoke to soon it does not seem to be working it just worked once. the automation(based on blueprint) doesn’t seem to do anything either I will keep playing I guess.

My heat control is Celsius my sensors read the heat in Fahrenheit any easy fix for this.

I believe, the choice of whether to display Celsius or F is driven by your HA settings. Do you see all other values (other than Navien, other devices) in C?

Which yaml file are you using to build it?

I am using the atom lite esp32 one. all my thermostats temp sensors are in C

I used the blueprint to try the scheduler and it did not trigger recirc either.

Craig

Edit: the hot water tank itself is in F so that is probably why I will switch it when I get a chance.

Edit2: changing tank to Celcius did not fix the sensors showing F

Edit3: Looks like it is hardcoded in the sensors.yml file

Just want to say a big thannks to Hovhannes ! Shipped me the adapter and patiently walked me through the process to get it online and reporting in Home assistant.
Jeff in Ontario,CDN.

2 Likes

I also gotta give credit to Hovhannes for an outstanding job on this project. I got my adapter in the mail and was able to get it up and running without any issues. I’m excited to dive into its automation potential.

1 Like