Navien, ESP32 Navilink interface

goldstms, postbox.haughty, neilSp, teksavy, goldstms, rv2632, benk016 - please, check your private messages, I am about to ship a batch of devices and need your information.

hello i am interested getting one of these i have a navien combi boiler Model (NCB-240E) will this work for me?

Hello, does your main PCB look like the one attached? There are two very wide (13 pin) jacks on it. One should be connected through a cable to other parts and the other one - empty. If it is, then it is likely the jack for the hot button.

The other factor is how does your display unit look like. Does it have it’s jacks similar to this diagram - navien/doc/240-a.md at a8f4a9b8bdfdbca3e3560e7b5b8ed177968bc6e4 Ā· htumanyan/navien Ā· GitHub

If both answers are yes, then the device is likely to work. I say ā€œlikelyā€ since I don’t have NCB-240E for testing :slight_smile: Happy to work with you if you’d like to be an early adopter.

i will have to check the unit tommrow but i am very interested

this unit was brought out before the navi


link light so may not be compatible with that but here is the PCB and from display unit are in the photos (one is a stock image using the part number the other is the actual button panel

side view of the connectors (sorry for the spam can only link one photo per post) i have other photos but don’t want to spam this up to much

This looks very promising. The connectors on the front panel are exactly the same as on Navien-240A, so the connectivity to/from Navien should work. A few more questions if I may to be absolutely sure:

a. Does the black multi-connector cable from the front panel go into one of the two jacks on the main PCB and the second one is empty?

b. Can you check if you have the Navi-Link option in the installer menu:

  1. Enter Service Menu: Press and hold the Menu button and the Back button on the boiler’s control panel simultaneously for about three seconds.
  2. Login: Select the Installer Menu (Option 1) and enter the default password, 1234, using the up/down arrows and confirm with the Menu/Info button.
  3. Find NaviLink Setting: Navigate to Application Settings (Option 3) and find the **[NaviLink] setting.
  4. Enable Connection: Enable the NaviLink connection and return to the main screen.

On NaviLink light vs NaviLink - they share the same protocol as it seems… I am looking to confirm that.

the second one as you can see is filled (i suspect this is because my unit is a combi unit that does both hot domestic water as well as radiant heating it does have the NaviLink support but only lists the NaviLink in its manual rather than both options (i suspect it is missing the power requirements for the light version) NCB-240E Brochures, Manuals & Documents | Navien i found all the documetation here

Thank you for sharing. Here is what it looks like based on pictures and the manual:

There are two aspects of hot button and navilink: controlling the unit (turning on/off and setting the temperature) and ā€œhot buttonā€.
Regarding the hot button the navilink documentation (and my experiments) suggest that it only works when a special hot button device is installed (or comes with the unit as it is the case in 240A2 model). In absence of the hot button NPE240 just ignores hot button commands from NaviLink (or my controller).

To sum it all up - most likely the controller will work as reporting the key metrics from NCB-240E as well as on/off and temperature setting.

I am not sure if the hot button capability will work and when I say I am not sure I mean just not having experience/data/validation in practice…

Please, let me know if you’d still want to try given these considerations.

i would definitely yes

I’ve sent you a PM

Hi Hovhannes (@htumanyan),

First of all, thank you for this excellent integration — it’s exactly what the Navien community needed for local control.

I’m running it on a standard ESP32 WROOM-32 DevKit (board: esp32dev) with ESPHome 2025.12.4.

What I’ve done so far:

  • Started from navien-esphome-atom-lite-esp32.yml
  • Changed board to esp32dev
  • Updated UART to GPIO19 (TX) / GPIO22 (RX)
  • Added direction_pin: 18
  • Removed the Atom Lite LED block
  • Added my Wi-Fi / API / OTA config

I was able to compile and flash successfully, but along the way I ran into:

  • ā€œFound multiple target platform blocks: esp8266, esp32ā€
  • Warnings about undefined ${project_name} / ${project_version}
  • Intermittent compile errors in the dashboard (e.g. binary_sensor.h not found)

It looks like the base package is designed for multiple boards, and Atom Lite works out-of-the-box, but overriding it cleanly for a standard DevKit seems to cause conflicts.

Could you please advise on one of the following?

  • Is esp32dev officially supported or tested?
  • Is there a recommended minimal YAML for non-Atom ESP32 boards in ESPHome 2025+?
  • Or a clean way to override the base package defaults without platform conflicts?

I also have an ESP32-C3 available if that’s a better-supported option for RS-485 timing.

Thanks again for your work — happy to test or validate any changes.

Hello!

Thank you for the effort to expand the device coverage. Here are some thoughts:

a. I can’t imagine the particular board matters that much, unless there are issues in esphome/platformio

b. The atom esp32 yaml is a fine starting point. The other one to look at for a reference is navien/esphome/navien-esphome-device-example.yml at a8f4a9b8bdfdbca3e3560e7b5b8ed177968bc6e4 Ā· htumanyan/navien Ā· GitHub - it is an example of configuration for HA/Esphome module

c. What version of esphome do you use? Per the README file it needs to be 2025.11.4 or later. Esphome introduced incompatible changes after the version 2025.7.4 that this repo was based off of. Hence it is critical to ensure the latest version of esphome is applied.

d. I am happy to to look into your yaml if you can publish it here.

Thank you,
Hovhannes

Hi Hovhannes,

Quick update — the issue is fully resolved.

On my NPE-240A2, the RS-485 bus remains silent until NaviLink is enabled in the heater settings. Once NaviLink was enabled from the front panel, the ESPHome integration immediately switched to Connected and all data populated correctly. The firmware, board, and UART configuration were already correct.

This seems important for A2 owners:

NaviLink must be enabled, otherwise no RS-485 traffic is sent.

NPE-240A2 RS-485 connector pin findings

On my unit, the front-panel 5-pin connector layout differs from older NPE-240A diagrams. Verified with a multimeter:

  • Pin 1 → GND
  • Pin 3 → RS-485 (A/B)
  • Pin 4 → RS-485 (B/A)
  • Pin 5 → ~14 V (do not use)
  • Pin 2 → unused / unknown

RS-485 A/B polarity can be swapped if needed.

Working ESPHome YAML (ESP32 WROOM-32, esp32dev, ESPHome 2025.12.4)

esphome:
  name: navien-connect
  friendly_name: Navien Connect

esp32:
  board: esp32dev
  framework:
    type: arduino

external_components:
  - source:
      type: git
      url: https://github.com/htumanyan/navien
      ref: main
    components: [navien]

logger:
  level: INFO
  baud_rate: 0

api:
  encryption:
    key: "REDACTED"

ota:
  - platform: esphome
    password: "REDACTED"

wifi:
  ssid: "REDACTED"
  password: "REDACTED"

uart:
  id: navien_uart
  tx_pin: GPIO19
  rx_pin: GPIO22
  baud_rate: 9600
  rx_buffer_size: 1024

climate:
  - platform: navien
    name: "Navien Water Heater"

switch:
  - platform: navien
    name: "Navien Power On/Off"

button:
  - platform: navien
    name: "Navien Hot Button"

sensor:
  - platform: navien
    inlet_temperature:
      name: "Navien Inlet Temp"
    outlet_temperature:
      name: "Navien Outlet Temp"
    target_temperature:
      name: "Navien Target Temp"
    water_flow:
      name: "Navien Water Flow"
    water_utilization:
      name: "Navien Utilization"
    gas_current:
      name: "Navien Gas Usage"
    recirc_status:
      name: "Navien Recirc Status"

Thanks again for the excellent integration — happy to help add A2-specific notes to the docs if useful.

Best regards,
Gagan

This is great to hear, thank you for adapting it for yet another hardware variant.

Quick question - can you do us all a favor and check if you have +5V on either first or last pin of the second connector that is next to the data connector that you’ve connected to? It has +5v in Navien 240a, which makes it easy and convenient to power the device from it. I just don’t have 240A2 to confirm that it does the same for that model.

Yes — the second connector on my NPE-240A2 does have +5V on the last pin, and I’m currently using it to power my ESP32 board.
At the moment, I haven’t connected GPIO19, so the setup is read-only. I’m also missing the GPIO18 connection for controlling DE/RE on the MAX485 module.
Once I have the proper connectors, I’ll organize the wiring more neatly and finalize the setup.

@htumanyan Will this work with the Navien combi-boilers? I have a NCB-240/110H. It is for my hot water I use for heat and my domestic hot water I use at my sinks.

I’ve incorporated this to the repo to benefit everyone else - navien/doc/240.md at 170818ae1ce7a570a73215026b45317a01332a05 Ā· htumanyan/navien Ā· GitHub

Can you, please, take a look and confirm that I got the 240a2 pinout right based on your input?

@ doomsdaymuffins and I are trying to figure out if it will work for NCB series based on his NCB-240E. I think it should work for your unit. Can you take a look at the pictures he posted and share if yours look the same or alternatively share the pictures of your front panel and main PCB connectors?
That will help to assess.

Thank you,
Hovhannes

For everyone interested, I’ve published two new documents in the repo:

a. Wiring instructions for Navien 240a and 240a2
b. User Manual for the custom device with detailed installation guide - navien/doc/user_manual.md at 6fcb4eb964a65f9b3038f7e751df03d6438ed39d Ā· htumanyan/navien Ā· GitHub