A Home Assistant custom integration for Navien NWP500 Heat Pump Water Heaters. Connects to the Navien cloud API and subscribes to MQTT for real-time updates.
- Temperature & mode control — Set target temperature, switch operation modes, and toggle power.
- Live status — Current water temp, power draw, and device state updated via MQTT.
- Energy tracking — Cumulative usage and current power consumption from the device.
- Alerts — Error codes, leak detection, and freeze/scald warnings via binary sensors.
- Scheduling — Recurring mode and temperature changes via the reservation service.
- Open HACS in Home Assistant.
- Go to Integrations > ⋮ > Custom repositories.
- Add
https://github.com/eman/ha_nwp500with category Integration. - Search for "Navien NWP500" and install.
- Restart Home Assistant.
- Copy
custom_components/nwp500to yourconfig/custom_components/directory. - Restart Home Assistant.
- Go to Settings > Devices & Services > Add Integration.
- Search for "Navien NWP500".
- Enter your NaviLink email and password.
| Mode | HA Value | Description |
|---|---|---|
| Heat Pump | heat_pump |
Heat pump only — most efficient. |
| Energy Saver | eco |
Hybrid mode balancing efficiency and recovery time. |
| High Demand | high_demand |
Heat pump + electric elements — fastest recovery. |
| Electric | electric |
Electric elements only. |
Most sensors are disabled by default. Enable them from the device page in Home Assistant.
| Category | Entities | Enabled by Default |
|---|---|---|
| Control | Water Heater entity | Yes |
| Temperature | Tank & DHW temperatures | Yes |
| Power | Current power & energy status | Yes |
| Status | Error codes & basic status | Yes |
| Diagnostics | Compressor temps, fan RPM, flow rates, refrigerant pressures | No |
| Internal | EEV steps, mixing rates, component status | No |
| Safety | Leak detection, freeze protection, scald warnings | No |
Schedule recurring mode or temperature changes with the nwp500.set_reservation service.
service: nwp500.set_reservation
target:
device_id: your_device_id
data:
enabled: true
days: [Monday, Tuesday, Wednesday, Thursday, Friday]
hour: 6
minute: 30
mode: high_demand
temperature: 140Solar Energy Dump
Switch to High Demand when you have surplus solar power.
alias: "Water Heater - Solar Boost"
trigger:
- platform: numeric_state
entity_id: sensor.solar_export_power
above: 1000
action:
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.navien_nwp500
data:
operation_mode: "high_demand"
- service: water_heater.set_temperature
target:
entity_id: water_heater.navien_nwp500
data:
temperature: 140Leak Detection Alert
Enable
binary_sensor.navien_nwp500_water_leak_detectedfrom the device page first.
alias: "Water Heater - Leak Alert"
trigger:
- platform: state
entity_id: binary_sensor.navien_nwp500_water_leak_detected
to: "on"
action:
- service: notify.mobile_app_phone
data:
message: "CRITICAL: Water leak detected at Water Heater!"
data:
push:
sound:
name: default
critical: 1
volume: 1.0Vacation Mode
alias: "Water Heater - Away Mode"
trigger:
- platform: state
entity_id: group.family
to: "not_home"
action:
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.navien_nwp500
data:
operation_mode: "eco"Uses nwp500-python v8.1.0. See CHANGELOG.md for version history.
Released under the MIT License.