Water Heater Control Guide¶
Learn how to control your Domestic Hot Water (DHW) system through Home Assistant.
Overview¶
If your Hitachi system includes a DHW (Domestic Hot Water) heater, it appears as a water_heater entity in Home Assistant. This provides full control over your hot water production.
Available Controls: - 🌡️ Temperature - Set target water temperature - ⚙️ Operation Mode - Off, Eco, Performance (Boost) - 📊 Status - Current water temperature monitoring
Entity Naming¶
Water heater entities follow this naming convention:
Format: water_heater.{device_name}_dhw
Examples: - water_heater.remote_dhw - water_heater.hitachi_dhw
Operation Modes¶
The water heater supports three operation modes:
Off Mode¶
Description: DHW heating is disabled
When to use: - Extended periods away from home - Summer when hot water not needed - Maintenance or service
Energy use: None
service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: "off"
Eco Mode (Standard)¶
Description: Normal energy-efficient hot water production
When to use: - Normal daily operation - Standard hot water needs - Energy-conscious heating
Energy use: Standard/efficient
Behavior: - Heats water to target temperature - Maintains temperature efficiently - Uses standard heating cycle
service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: "eco"
Performance Mode (Boost)¶
Description: Rapid heating for high hot water demand
When to use: - Filling a bath - Multiple showers needed - High hot water demand events - Recovering from low temperature
Energy use: High/intensive
Behavior: - Aggressive heating cycle - Prioritizes DHW over space heating - Reaches target temperature quickly
service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: "performance"
[PLACEHOLDER: Screenshot showing water heater modes in UI]
Temperature Control¶
Setting Target Temperature¶
The water heater allows you to set your desired hot water temperature.
Temperature Range: Typically 30°C to 55°C - Minimum: 30°C (sufficient for most uses) - Maximum: 55°C (prevents legionella, maximum efficiency) - Recommended: 50-55°C for domestic use
Via UI: 1. Open the water heater entity 2. Use temperature controls 3. Adjust to desired temperature
Via Service Call:
service: water_heater.set_temperature
target:
entity_id: water_heater.remote_dhw
data:
temperature: 50
Via Automation:
automation:
- alias: "Morning Hot Water Boost"
trigger:
- platform: time
at: "06:00:00"
action:
- service: water_heater.set_temperature
target:
entity_id: water_heater.remote_dhw
data:
temperature: 55
Current Temperature¶
Monitor the actual water temperature:
Target Temperature¶
Check the current setpoint:
Complete Attributes¶
Water heater entities provide these attributes:
water_heater.remote_dhw:
state: eco # or off, performance
attributes:
current_temperature: 48
temperature: 50
min_temp: 30
max_temp: 55
operation_list:
- "off"
- eco
- performance
operation_mode: eco
supported_features: 3
Lovelace UI Examples¶
Basic Water Heater Card¶
[PLACEHOLDER: Screenshot of water heater thermostat card]
Detailed Water Heater Card¶
type: vertical-stack
cards:
- type: thermostat
entity: water_heater.remote_dhw
name: Hot Water
- type: entities
title: DHW Status
entities:
- entity: water_heater.remote_dhw
name: Operation Mode
- type: attribute
entity: water_heater.remote_dhw
attribute: current_temperature
name: Current Temperature
suffix: "°C"
- type: attribute
entity: water_heater.remote_dhw
attribute: temperature
name: Target Temperature
suffix: "°C"
Mode Control Buttons¶
type: horizontal-stack
cards:
- type: button
name: "Off"
icon: mdi:water-off
tap_action:
action: call-service
service: water_heater.set_operation_mode
service_data:
entity_id: water_heater.remote_dhw
operation_mode: "off"
- type: button
name: "Eco"
icon: mdi:leaf
tap_action:
action: call-service
service: water_heater.set_operation_mode
service_data:
entity_id: water_heater.remote_dhw
operation_mode: eco
- type: button
name: "Boost"
icon: mdi:fire
tap_action:
action: call-service
service: water_heater.set_operation_mode
service_data:
entity_id: water_heater.remote_dhw
operation_mode: performance
Custom Water Heater Dashboard¶
type: vertical-stack
cards:
- type: markdown
content: "## Domestic Hot Water"
- type: glance
entities:
- entity: water_heater.remote_dhw
name: Mode
- entity: water_heater.remote_dhw
name: Current
attribute: current_temperature
- entity: water_heater.remote_dhw
name: Target
attribute: temperature
- type: horizontal-stack
cards:
- type: button
name: "Eco"
icon: mdi:leaf
icon_height: 40px
tap_action:
action: call-service
service: water_heater.set_operation_mode
service_data:
entity_id: water_heater.remote_dhw
operation_mode: eco
- type: button
name: "Boost"
icon: mdi:fire
icon_height: 40px
tap_action:
action: call-service
service: water_heater.set_operation_mode
service_data:
entity_id: water_heater.remote_dhw
operation_mode: performance
- type: thermostat
entity: water_heater.remote_dhw
Automation Examples¶
Morning Boost for Showers¶
automation:
- alias: "Morning DHW Boost"
description: "Boost hot water before morning showers"
trigger:
- platform: time
at: "06:00:00"
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: performance
- service: water_heater.set_temperature
target:
entity_id: water_heater.remote_dhw
data:
temperature: 55
- delay: "01:00:00"
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: eco
Temperature Schedule¶
automation:
- alias: "DHW Temperature Schedule"
trigger:
- platform: time
at: "06:00:00"
id: morning
- platform: time
at: "22:00:00"
id: night
action:
- choose:
- conditions:
- condition: trigger
id: morning
sequence:
- service: water_heater.set_temperature
target:
entity_id: water_heater.remote_dhw
data:
temperature: 55
- conditions:
- condition: trigger
id: night
sequence:
- service: water_heater.set_temperature
target:
entity_id: water_heater.remote_dhw
data:
temperature: 45
Vacation Mode¶
automation:
- alias: "Vacation - Turn Off DHW"
trigger:
- platform: state
entity_id: input_boolean.vacation_mode
to: "on"
action:
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: "off"
- alias: "Return From Vacation - Enable DHW"
trigger:
- platform: state
entity_id: input_boolean.vacation_mode
to: "off"
action:
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: eco
- service: water_heater.set_temperature
target:
entity_id: water_heater.remote_dhw
data:
temperature: 50
Energy Optimization¶
automation:
- alias: "DHW Heat During Cheap Electricity"
trigger:
- platform: time
at: "02:00:00" # Off-peak hours
condition:
- condition: numeric_state
entity_id: water_heater.remote_dhw
attribute: current_temperature
below: 50
action:
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: performance
- wait_template: "{{ state_attr('water_heater.remote_dhw', 'current_temperature') >= 55 }}"
timeout: "03:00:00"
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: eco
Low Temperature Alert¶
automation:
- alias: "Alert on Low DHW Temperature"
trigger:
- platform: numeric_state
entity_id: water_heater.remote_dhw
attribute: current_temperature
below: 40
for: "00:30:00"
action:
- service: notify.mobile_app
data:
title: "Hot Water Low"
message: "DHW temperature is {{ state_attr('water_heater.remote_dhw', 'current_temperature') }}°C"
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: performance
Boost Button (Helper)¶
Create an input_boolean helper for manual boost:
# configuration.yaml
input_boolean:
dhw_boost:
name: DHW Boost Mode
icon: mdi:fire
automation:
- alias: "DHW Boost Button On"
trigger:
- platform: state
entity_id: input_boolean.dhw_boost
to: "on"
action:
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: performance
- alias: "DHW Boost Button Off"
trigger:
- platform: state
entity_id: input_boolean.dhw_boost
to: "off"
action:
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: eco
- alias: "DHW Auto-disable Boost After 2 Hours"
trigger:
- platform: state
entity_id: input_boolean.dhw_boost
to: "on"
for: "02:00:00"
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.dhw_boost
Monitoring & Notifications¶
Temperature Tracking¶
Track water temperature over time:
# configuration.yaml
sensor:
- platform: history_stats
name: DHW Heating Time Today
entity_id: water_heater.remote_dhw
state: "performance"
type: time
start: "{{ now().replace(hour=0, minute=0, second=0) }}"
end: "{{ now() }}"
Daily Report¶
automation:
- alias: "Daily DHW Report"
trigger:
- platform: time
at: "20:00:00"
action:
- service: notify.mobile_app
data:
title: "Daily Hot Water Report"
message: >
Current: {{ state_attr('water_heater.remote_dhw', 'current_temperature') }}°C
Target: {{ state_attr('water_heater.remote_dhw', 'temperature') }}°C
Mode: {{ states('water_heater.remote_dhw') }}
Troubleshooting¶
Water Not Heating¶
Symptoms: Temperature not increasing
Possible Causes: 1. Mode is Off - Check operation mode 2. Target temperature reached - Already at setpoint 3. System prioritizing space heating - Heat pump priority 4. Alarm condition - Check for system alarms
Solutions: - Set mode to Performance for immediate heating - Check that target > current temperature - Verify no alarms on climate entities - Check CSNet Manager app for status
Temperature Dropping Quickly¶
Symptoms: Water temperature decreases rapidly
Possible Causes: 1. High usage - Multiple draws 2. Insufficient capacity - Tank size vs demand 3. Mode set to Eco - Not keeping up with demand
Solutions: - Switch to Performance mode during high-demand periods - Increase target temperature - Schedule boost periods before known high usage - Check for leaks or system issues
Controls Not Responding¶
Symptoms: Commands sent but no effect
Possible Causes: 1. Connection issue - Network or API problem 2. CSNet Manager offline - Cloud service down 3. Manual override - Physical controller changed settings
Solutions: - Check climate entity connectivity - Verify internet connection - Check CSNet Manager app - Restart integration if needed
Tips & Best Practices¶
✅ DO¶
- Use Eco mode for normal daily operation
- Use Performance mode for high-demand periods (baths, multiple showers)
- Set temperature to 50-55°C for legionella prevention and efficiency
- Schedule boost periods before predictable high-usage times
- Turn off when away for extended periods to save energy
- Monitor temperature regularly to ensure adequate supply
❌ DON'T¶
- Don't set temperature below 50°C long-term (legionella risk)
- Don't exceed 55°C (unnecessary energy use, scaling risk)
- Don't leave in Performance mode continuously (wastes energy)
- Don't turn off/on frequently (causes wear)
- Don't ignore low temperature alerts (may indicate system issues)
💡 Pro Tips¶
- Coordinate with heating schedule - DHW heating reduces space heating capacity
- Use off-peak electricity - Schedule boost during cheap rate periods
- Preheat before high usage - Performance mode 30-60 minutes before needed
- Monitor patterns - Adjust schedule based on actual usage
- Winter boost - May need higher temperatures when inlet water is colder
- Legionella prevention - Ensure temperature reaches 60°C weekly (usually automatic)
Safety Considerations¶
Legionella Prevention¶
Legionella bacteria can grow in water between 20°C and 45°C.
Recommendations: - Maintain DHW temperature at 50°C minimum - Heat to 60°C weekly for legionella cycle (often automatic) - Don't disable DHW for extended periods without draining
Note: Many Hitachi systems have automatic legionella prevention cycles.
Scalding Prevention¶
Water above 55°C can cause scalding.
Recommendations: - Don't exceed 55°C for domestic use - Install thermostatic mixing valves at points of use - Educate household members about hot water safety - Use lower temperatures (45-50°C) if children or elderly present
Energy Efficiency¶
Best Practices: - Use Eco mode as default - Reserve Performance mode for actual high-demand situations - Insulate pipes to reduce heat loss - Fix leaks promptly to avoid wasted heating - Schedule strategically to align with usage patterns
Integration with Other Systems¶
Solar Hot Water Pre-Heat¶
If you have solar hot water:
automation:
- alias: "Use Solar Pre-Heat"
trigger:
- platform: numeric_state
entity_id: sensor.solar_hot_water_temperature
above: 45
action:
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: eco
- service: water_heater.set_temperature
target:
entity_id: water_heater.remote_dhw
data:
temperature: 50
Smart Grid Integration¶
Respond to grid demand:
automation:
- alias: "Grid Demand Response - Reduce DHW"
trigger:
- platform: state
entity_id: binary_sensor.grid_demand_high
to: "on"
action:
- service: water_heater.set_temperature
target:
entity_id: water_heater.remote_dhw
data:
temperature: 45
- service: water_heater.set_operation_mode
target:
entity_id: water_heater.remote_dhw
data:
operation_mode: eco
Next Steps¶
Explore related documentation: - Climate Control - Control heating zones - Sensors Reference - All available sensors - Advanced Features - Additional system features - Multi-Zone Configuration - Managing multiple circuits