Version: 0.2.2
This custom integration provides comprehensive monitoring and control of Navien NWP500 Heat Pump Water Heaters through Home Assistant. It communicates with the device via the Navien cloud API and establishes a local MQTT connection for real-time updates.
- Full Control: Set target temperature, change operation modes, and toggle power.
- Real-time Monitoring: View current water temperature, power consumption, and device status.
- Energy Management: Track energy usage and efficiency.
- Safety Alerts: Monitor for errors, leaks, and system warnings.
- Scheduling: Advanced reservation system for automated mode/temperature changes.
- 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.
- Clone this repository.
- Copy
custom_components/nwp500to yourconfig/custom_components/directory. - Restart Home Assistant.
- Go to Settings > Devices & Services.
- Click Add Integration and search for "Navien NWP500".
- Enter your NaviLink email and password.
- The integration will discover your devices and create entities.
The integration maps the device's modes to Home Assistant's water heater operation modes:
- Heat Pump (
heat_pump): Uses only the heat pump. Most efficient. - Energy Saver (
eco): Hybrid mode balancing efficiency and recovery time. - High Demand (
high_demand): Uses heat pump and electric elements for fastest recovery. - Electric (
electric): Uses only electric elements.
To keep your system clean, most advanced sensors are disabled by default.
Enabled by Default:
- Water Heater entity (Control)
- Tank & DHW Temperatures
- Current Power & Energy Status
- Error Codes & Basic Status
Available to Enable:
- Diagnostics: Compressor temps, fan RPM, flow rates, refrigerant pressures.
- Internal Status: EEV steps, mixing rates, specific component status.
- Safety: Leak detection, freeze protection, scald warnings.
To enable these, go to the device page in Home Assistant, look for "Disabled" entities, and enable the ones you need.
You can program the water heater to change modes or temperatures at specific times using the nwp500.set_reservation service.
Example: Weekday Morning Boost Set the heater to "High Demand" at 140°F every weekday morning at 6:30 AM.
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: 140Here are some ways to automate your water heater:
Maximize self-consumption by overheating the water when you have excess solar power.
alias: "Water Heater - Solar Boost"
trigger:
- platform: numeric_state
entity_id: sensor.solar_export_power
above: 1000 # Watts
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: 140Notify your phone immediately if the water heater detects a leak.
Note: Ensure binary_sensor.water_leak_detected is enabled.
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.0Automatically set the water heater to a low energy state when you leave home.
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" # or "off"This integration uses nwp500-python v7.4.8. For version history, see CHANGELOG.md.
This integration is released under the MIT License.