This folder contains a working implementation of Navien tankless water heater protocols in a form of an ESPHome module.
- Reading heater parameters - temperature values, water and gas usage etc.
- Sending commands to start/stop and hot button
The build script requires Python 3.11+ and one of:
- uv (recommended)
- esphome installed via pip
cd esphome
uv run python build.pyThe script will:
- Prompt for WiFi credentials on first run (saved to
secrets.yaml) - Let you select a hardware configuration
- Choose an action (compile, upload, run, logs)
- Copy firmware to
../build/on successful compile
Your choices are persisted, so subsequent runs use your previous selections as defaults.
| Config | Hardware |
|---|---|
| navien.yml | D1 Mini (ESP8266) - main config |
| navien-d1-mini.yml | D1 Mini variant |
| navien-esphome-atom-lite-esp32.yml | ESP32 Atom Lite |
| navien-ht-device.yml | Custom HT device |
| navien-wrd-hb.yml | D1 Mini with hardwired hot button |
If you prefer to run esphome directly:
cd esphome
cp secrets.yaml.sample secrets.yaml
# Edit secrets.yaml with your WiFi credentials
esphome compile navien.yml
esphome run navien.ymlUsing pip:
pip install esphome
esphome compile navien.ymlUsing Docker:
docker run --rm -v "${PWD}":/config esphome/esphome compile navien.yml