RS485 module with ESP32
https://de.aliexpress.com/item/1005009583388691.html - TTL Turn RS485 485 to Serial UART Level Mutual Conversion Hardware Automatic Flow Control Board Module XY-017
https://github.com/lorbetzki/Daikin-EKHHE
https://www.bizkit.ru/en/2019/02/21/12563/
https://how2electronics.com/how-to-use-modbus-rtu-with-esp32-to-read-sensor-data/
ESPhome configuration for DAIKIN Altherma M
https://github.com/jcappaert/esphome-daikin-ekhhe
# esphome run daikin-altherma-200.yaml --device boiler
esphome:
name: daikin-altherma-200
friendly_name: daikin-altherma-200-6
esp32: # esp32
board: esp32dev
framework:
type: arduino
# esp8266: # esp8622
# board: nodemcuv2
# # platform: espressif8266
# # framework:
# # type: arduino
# Enable logging
logger:
level: INFO
api:
ota:
- platform: esphome
wifi:
networks:
- ssid: !secret wifi_ssid
password: !secret wifi_password
power_save_mode: none
output_power: 10
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Daikin-Altherma-200"
password: "12345678"
time:
- platform: homeassistant
id: homeassistant_time
timezone: "Europe/Berlin"
captive_portal:
web_server:
port: 80
version: 3
external_components:
- source:
type: git
url: https://github.com/jcappaert/esphome-daikin-ekhhe
ref: main
components: [daikin_ekhhe]
# button:
# - platform: restart
# name: "Daikin restart"
uart:
rx_pin: GPIO16 # esp32
#rx_pin: GPIO3 # esp8622
tx_pin: GPIO17 # esp32
#tx_pin: GPIO1 # esp8622
baud_rate: 9600
parity: NONE
stop_bits: 1
id: my_uart
debug:
direction: TX
# Initialize the daikin UART receiver
daikin_ekhhe:
- id: daikin_component
update_interval: 10
water_heater:
- platform: daikin_ekhhe
ekhhe_id: daikin_component
name: "Daikin DHW"
current_temperature_source: display
sensor:
- platform: daikin_ekhhe
low_water_temp_probe:
name: "A: Low Water Temperature probe"
upper_water_temp_probe:
name: "B: Upper Water Temperature probe"
defrost_temp_probe:
name: "C: Defrost Temperature probe"
supply_air_temp_probe:
name: "D: Supply Air Temperature probe"
evaporator_inlet_gas_temp_probe:
name: "E: Evaporator Inlet Gas Temperature probe"
evaporator_outlet_gas_temp_probe:
name: "F: Evaporator Outlet Gas Temperature probe"
compressor_discharge_gas_temp_probe:
name: "G: Compressor Discharge Gas Temperature probe"
solar_collector_temp_probe:
name: "H: Solar Collector Temperature probe"
eev_opening_step:
name: "I: EEV opening step"
fan_speed_rpm:
name: "Fan speed RPM"
vacation_day_counter:
name: "Vacation day counter"
vacation_days_left:
name: "Vacation days left"
binary_sensor:
- platform: daikin_ekhhe
dig1_config:
name: "DIG1 setting"
dig2_config:
name: "DIG2 setting"
dig3_config:
name: "DIG3 setting"
heating_demand:
name: "Heating demand"
hp_active:
name: "Heat pump active"
eh_active:
name: "Electric heater active"
master_fault:
name: "Master fault"
communication_error:
name: "Communication error"
legionella_cycle_active:
name: "Legionella Cycle Active"
p01_tank_lower_probe_fault:
name: "P01: Tank lower probe fault"
p02_tank_upper_probe_fault:
name: "P02: Tank upper probe fault"
p03_defrost_probe_fault:
name: "P03: Defrost probe fault"
p04_inlet_air_probe_fault:
name: "P04: Inlet air probe fault"
p05_evaporator_inlet_probe_fault:
name: "P05: Evaporator inlet probe fault"
p06_evaporator_outlet_probe_fault:
name: "P06: Evaporator outlet probe fault"
p07_compressor_flow_probe_fault:
name: "P07: Compressor flow probe fault"
p08_solar_collector_probe_fault:
name: "P08: Solar collector probe fault"
e01_high_pressure_protection:
name: "E01: High pressure protection"
e02_solar_recirculation_alarm:
name: "E02: Solar/recirculation alarm"
e03_electronic_fan_fault:
name: "E03: Electronic fan fault"
pa_heat_pump_temperature_unsuitable_alarm:
name: "PA: Heat pump temperature unsuitable"
number:
- platform: daikin_ekhhe
low_water_hp_hysteris:
name: "P01: Lower water temp hysteresis"
elec_heater_switch_on_delay:
name: "P02: Electric heater switch-on delay"
antilegionella_setpoint_temp:
name: "P03: Antilegionella setpoint temp"
antilegionella_duration:
name: "P04: Antilegionella duration"
defrosting_cycle_delay:
name: "P07: Defrosting cycle delay"
defrosting_start_temp_threshold:
name: "P08: Defrosting start temperature threshold"
defrosting_stop_temp_threshold:
name: "P09: Defrosting stop temperature threshold"
max_defrosting_duration:
name: "P10: Max defrosting duration"
dig1_hp_start_delay:
name: "P17: DIG1 HP start delay"
dig1_low_water_temp_threshold:
name: "P18: DIG1 lower temperature water threshold"
low_wat_probe_solar_hysteresis:
name: "P19: Lower water probe solar hysteresis"
solar_drain_temp_threshold:
name: "P20: Solar drain temperature threshold"
low_water_hp_pv_mode_threshold:
name: "P21: Lower water sensor heat pump PV mode threshold"
upper_water_eh_pv_mode_threshold:
name: "P22: Upper water sensor electric heater PV mode threshold"
upper_water_temp_probe_offset:
name: "P25: Upper water temp probe offset"
lower_water_temp_probe_offset:
name: "P26: Lower water temp probe offset"
air_inlet_temp_probe_offset:
name: "P27: Air inlet temp probe offset"
defrost_temp_probe_offset:
name: "P28: Defrost temp probe offset"
antilegionella_start_hour:
name: "P29: Antilegionelle start hour"
upper_water_hysteresis_eh:
name: "P30: Upper water hysteresis for EH"
hp_period_auto_mode_calc:
name: "P31: HP period auto mode calc"
eh_auto_mode_temp_threshold:
name: "P32: EH auto mode temp threshold"
eev_superheating_calc_period:
name: "P34: EEV superheating calc period"
eev_control_superheating_setpoint:
name: "P35: EEV control superheating setpoint"
eev_control_desuperheating_setpoint:
name: "P36: EEV control desuperheating setpoint"
defrosting_mode_eev_step:
name: "P37: defrosting mode EEV step"
auto_mode_min_eev_step:
name: "P38: Auto mode min EEV step"
eev_step_opening_initial:
name: "P40: Inivital EEV opening step"
eev_kp1_gain_akp1_temp_threshold:
name: "P41: EEV KP1 AKP1 temp threshold"
eev_kp2_gain_akp2_temp_threshold:
name: "P42: EEV KP2 AKP2 temp threshold"
eev_kp3_gain_akp3_temp_threshold:
name: "P43: EEV KP3 AKP3 temp threshold"
eev_kp1_gain:
name: "P44: EEV KP1 gain"
eev_kp2_gain:
name: "P45: EEV KP2 gain"
eev_kp3_gain:
name: "P46: EEV KP3 gain"
max_inlet_temp_hp_working:
name: "P47: Max inlet temp with HP working"
min_inlet_temp_hp_working:
name: "P48: Min inlet temp with HP working"
evaporator_inlet_temp_threshold_blower:
name: "P49: Evaporator inlet temperature threshold for blower"
antifreeze_low_water_temp_setpoint:
name: "P50: Antifreeze lower temp setpoint"
evaporator_blower_high_speed_set:
name: "P51: Evaporator blower high speed set"
evaporator_blower_low_speed_set:
name: "P52: Evaporator blower low speed set"
evaporator_fan_defrost_speed_setpoint:
name: "P53: Evaporator fan defrost speed setpoint"
low_pressure_switch_bypass_time:
name: "P54: Low pressure switch bypass time"
evaporator_band1_proportional_regulation:
name: "P55: Evaporator band 1 proportional"
evaporator_max_speed_activation_delta:
name: "P56: Evaporator max activation delta"
evaporator_max_speed_deactivation_delta:
name: "P57: Evaporator max deactivation delta"
evaporator_fan_speed_compressor_off:
name: "P59: Evaporator fan off speed"
evaporation_air_delta1_setpoint_calc:
name: "P60: Evaporator air delta 1"
evaporation_air_delta2_setpoint_calc:
name: "P61: Evaporator air delta 2"
evaporation_air_delta3_setpoint_calc:
name: "P62: Evaporator air delta 3"
evaporation_air_delta4_setpoint_calc:
name: "P63: Evaporator air delta 4"
evaporation_air_delta5_setpoint_calc:
name: "P64: Evaporator air delta 5"
evaporation_air_delta6_setpoint_calc:
name: "P65: Evaporator air delta 6"
evaporator_band2_proportional_regulation:
name: "P66: Evaporator band 2 proportional"
evaporator_band3_proportional_regulation:
name: "P67: Evaporator band 3 proportional"
evaporator_band4_proportional_regulation:
name: "P68: Evaporator band 4 proportional"
evaporator_band5_proportional_regulation:
name: "P69: Evaporator band 5 proportional"
evaporator_band6_proportional_regulation:
name: "P70: Evaporator band 6 proportional"
ec_fan_silent_mode_speed_reduction:
name: "P71: EC fan silent mode reduction"
ec_fan_speed_regulator_gain:
name: "P72: EC fan speed regulator gain"
auto_target_temperature:
name: "Auto mode target temperature"
eco_target_temperature:
name: "Eco mode target temperature"
boost_target_temperature:
name: "Boost mode target temperature"
electric_target_temperature:
name: "Electric mode target temperature"
time_band_start_hour:
name: "Time band start hour"
time_band_start_minute:
name: "Time band start minute"
time_band_end_hour:
name: "Time band end hour"
time_band_end_minute:
name: "Time band end minute"
select:
- platform: daikin_ekhhe
power_status:
name: "Power status"
operational_mode:
name: "Operational mode"
defrosting_mode:
name: "P05: Defrosting mode"
elec_heater_during_defrosting:
name: "P06: Electric heater during defrosting"
display_water_probe_temp:
name: "P11: Display water probe"
external_pump_mode:
name: "P12: External pump mode"
hw_circ_pump_mode:
name: "P13: HW Circulation pump mode"
evaporator_blower_type:
name: "P14: Evaporator blower type"
safety_flow_switch_type:
name: "P15: Safety flow switch type"
solar_mode_integration:
name: "P16: Solar mode integration"
pv_mode_integration:
name: "P23: PV mode integration"
off_peak_working_mode:
name: "P24: Off peak mode"
eev_control:
name: "P33: EEV control"
eev_control_mode:
name: "P39: EEV control mode"
evaporator_fan_compressor_off_mode:
name: "P58: Evaporator fan compressor off mode"
time_band_mode:
name: "Time band mode"
switch:
- platform: daikin_ekhhe
silent_mode:
name: "Silent mode"
button:
- platform: daikin_ekhhe
daikin_apply_time_band:
name: "Apply time band"
daikin_clear_time_band:
name: "Clear time band"
text_sensor:
- platform: daikin_ekhhe
current_time:
name: "Current Time UTC"
power_board_firmware_version:
name: "J: Power board firmware version"
ui_firmware_version:
name: "L: UI firmware version"Build ESPhome
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv esphome --python 3.12
uv venv esphome
source esphome/bin/activate
uv pip install tornado esptool esphome
# flash over tty
esphome run --device /dev/ttyUSB0 daikin-altherma-200.yaml
esphome logs --device /dev/ttyUSB0 daikin-altherma-200.yaml
# flash over ota
esphome run daikin-altherma-200.yaml --device 192.168.178.131
DAIKIN Altherma M HW 200 EKHHE200PCV37 / FERROLI - EGEA TECH LT
https://www.daikin.eu/en_us/products/product.html/EKHHE-PCV37.html
https://www.ferroli.com/media/3540000410_03_EGEA_TECH_200%20LT%20-%20260%20LT%20-%20200%20LT-S%20-%20260%20LT-S.pdf