Seit einer Woche habe ich eine Lambda Wärmepumpe im Einsatz und bin begeistert. Im Moment macht sie nur Warmwasser, geheizt wird noch nicht.
Bei der Lambda WP lassen sich einige Werte per Modbus auslesen, wenige lassen sich auch verändern. Die Einbindung ist recht einfach, wenn man etwas Erfahrung mit Home Assistant hat.
Die Grundlagen sind hier zu finden: https://github.com/RalfWinter/lambda-heatpump-modbus-tcp-HA/blob/main/README.md aber ich habe die yaml etwas angepasst, damit ich a) auch steuern kann und b) die configuration.yaml nicht zu unübersichtlich wird.
Ich teile meine Home Assistant Konfiguration in s.g. Packages auf. Damit kann die Konfig nach Themen aufgeteilt werden.
Mehr zum Thema Packages gibt es hier : https://www.home-assistant.io/docs/configuration/packages/
Die modbus Konfiguration besteht bei mir aus drei Teilen, dem modbus Teil, der Definition der Sensoren um die Statuscodes in sprechende Texte zu übersetzten und einigen Automatisierungen.
Meine configuration.yaml hat nur noch diesen Include Befehl, um alle Yaml-Dateien unterhalb des Ordners Packages zu laden:
packages: !include_dir_named packages
Meine Konfig findet ihr auch immer in meine Git-Repository. https://github.com/GuidoJeuken-6512/HomeAssistant/tree/main
So sehen dann meine drei Dateien aus:
Die modbus.yaml, hier müsst ihr natürlich die IP-Adresse eurer Lambda eintragen. Bei mir sind viele Einträge vom Original auskommentiert, da ich sie nicht benötige.
Und ziemlich am Anfang der Climate-Sensor, um die Warmwassertemperatur auch aus HA heraus einstellen zu können.
Zur Anpassung an eure Umgebung muss auf jeden Fall die IP-Adresse der Lambda geändert werden.
# Lambda WP Modbus/TCP Integration
# based on Lambda Modbus specification dated 11.04.2023
# Change name according to your requirements, host to the IP of your heatpump
#
# this is a package file, place it in \packages\lambda
# reminde each packagefile-name must be unique!
# append the following code to the configuration.yaml in your HA-installation!
## homeassistant:
## packages: !include_dir_named packages
#########
modbus:
- name: "EU08L"
type: tcp
host: 192.168.178.125
port: 502
## climate sensor to be able to adjust the hot water temperature
climates:
- name: Hot Water
address: 2050
#input_type: holding
#count: 1
#data_type: int16
max_temp: 60
min_temp: 40
#offset: 0
precision: 1
scale: 0.1
#structure: ">f"
target_temp_register: 2050
target_temp_write_registers: true
temp_step: 1
temperature_unit: C
sensors:
- name: EU08L_Hp_QP_heating
## aktuelle Leistung der WP (Abgabeleistung)
address: 1011
input_type: holding
state_class: total
scale: 0.1
precision: 1
data_type: int16
#General Ambient
- name: EU08L_Ambient_Error_Number
address: 0000
input_type: holding
state_class: total
scale: 1
precision: 0
data_type: int16
- name: EU08L_Ambient_Operating_State
address: 0001
input_type: holding
unit_of_measurement: ""
state_class: total
scale: 1
precision: 0
data_type: uint16
- name: EU08L_Ambient_Temperature
address: 0002
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Ambient_Temperature_1h
address: 0003
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Ambient_Temperature_calculated
address: 0004
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
# General E-Manager
# comment this section in case you have no E-Manager active
- name: EU08L_EMgr_Error_Number
address: 100
input_type: holding
state_class: total
scale: 1
precision: 0
data_type: int16
- name: EU08L_EMgr_Operating_State
address: 101
input_type: holding
unit_of_measurement: ""
state_class: total
scale: 1
precision: 0
data_type: uint16
- name: EU08L_EMgr_Actual_Power
address: 102
input_type: holding
unit_of_measurement: "W"
state_class: total
scale: 1
precision: 0
data_type: int16
- name: EU08L_EMgr_Actual_Power_Consumption
address: 103
input_type: holding
unit_of_measurement: "W"
state_class: total
scale: 1
precision: 0
data_type: int16
- name: EU08L_EMgr_Power_Consumption_Setpoint
address: 104
input_type: holding
unit_of_measurement: "W"
state_class: total
scale: 1
precision: 0
data_type: int16
# Heat Pump No. 1 --for additonal heatpumps, this section needs to be duplicated and second digit of address increased by 1--
- name: EU08L_Hp1_Error_State
address: 1000
input_type: holding
state_class: total
scale: 1
precision: 0
data_type: uint16
- name: EU08L_Hp1_Error_Number
address: 1001
input_type: holding
state_class: total
scale: 1
precision: 0
data_type: int16
- name: EU08L_Hp1_State
address: 1002
input_type: holding
unit_of_measurement: ""
state_class: total
scale: 1
precision: 0
data_type: uint16
- name: EU08L_Hp1_Operating_State
address: 1003
input_type: holding
unit_of_measurement: ""
state_class: total
scale: 1
precision: 0
data_type: uint16
- name: EU08L_Hp1_Flow_Line_Temperature
address: 1004
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.01
precision: 1
data_type: int16
- name: EU08L_Hp1_Return_Line_Temperature
address: 1005
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.01
precision: 1
data_type: int16
- name: EU08L_Hp1_Volume_flow_heat_sink
address: 1006
input_type: holding
unit_of_measurement: "l/h"
state_class: total
scale: 1
precision: 1
data_type: int16
- name: EU08L_Hp1_Energy_source_inlet_temperature
address: 1007
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Hp1_Energy_source_outlet_temperature
address: 1008
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Hp1_Volume_flow_energy_source
address: 1009
input_type: holding
unit_of_measurement: "l/min"
state_class: total
scale: 0.01
precision: 1
data_type: int16
- name: EU08L_Hp1_Compressor_unit_rating
address: 1010
input_type: holding
unit_of_measurement: "%"
state_class: total
scale: 0.01
precision: 0
data_type: uint16
- name: EU08L_Hp1_Actual_Heating_Capacity
address: 1011
input_type: holding
unit_of_measurement: "kW"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Hp1_Inverter_Power_Consumption
address: 1012
input_type: holding
unit_of_measurement: "W"
state_class: total
scale: 1
precision: 0
data_type: int16
- name: EU08L_Hp1_COP
address: 1013
input_type: holding
unit_of_measurement: ""
state_class: total
scale: 0.01
precision: 2
data_type: int16
- name: EU08L_Hp1_Request-Type
address: 1015
input_type: holding
unit_of_measurement: ""
state_class: total
scale: 1
precision: 0
data_type: int16
- name: EU08L_Hp1_Requested_flow_line_temperature
address: 1016
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Hp1_Requested_return_line_temperature
address: 1017
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Hp1_Requested_flow_to_return_line_temperature_difference
address: 1018
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Hp1_Relais_State_2nd_Heating_Stage
address: 1019
input_type: holding
unit_of_measurement: ""
state_class: total
scale: 1
precision: 0
data_type: int16
- name: EU08L_Hp1_Compressor_Power_Consumption_accumulated
address: 1020
input_type: holding
unit_of_measurement: "Wh"
state_class: total
scale: 1
precision: 0
data_type: int32
- name: EU08L_Hp1_Compressor_Thermal_Energy_Output_accumulated
address: 1022
input_type: holding
unit_of_measurement: "Wh"
state_class: total
scale: 1
precision: 0
data_type: int32
# Boiler --for additonal boiler, this section needs to be duplicated and second digit of address increased by 1--
- name: EU08L_Boil1_Error_Number
address: 2000
input_type: holding
state_class: total
scale: 1
precision: 0
data_type: int16
- name: EU08L_Boil1_Operating_state
address: 2001
input_type: holding
unit_of_measurement: ""
state_class: total
scale: 1
precision: 0
data_type: uint16
- name: EU08L_Boil1_Actual_high_temperature
address: 2002
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Boil1_Actual_low_temperature
address: 2003
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
#- name: EU08L_Boil1_Set_temperature
# address: 2050
#input_type: holding
#unit_of_measurement: "°C"
#state_class: total
#scale: 0.1
#precision: 1
#data_type: int16
# Buffer --for additonal buffer, this section needs to be duplicated and second digit of address increased by 1--
# - name: EU08L_Buff1_Error_Number
# address: 3000
# input_type: holding
# state_class: total
# scale: 1
# precision: 0
# data_type: int16
# - name: EU08L_Buff1_Operating_state
# address: 3001
# input_type: holding
# unit_of_measurement: ""
# state_class: total
# scale: 1
# precision: 0
# data_type: uint16
# - name: EU08L_Buff1_Actual_high_temperature
# address: 3002
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# - name: EU08L_Buff1_Actual_low_temperature
# address: 3003
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# - name: EU08L_Buff1_Set_temperature
# address: 3050
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# Solar --for additonal solar modules, this section needs to be duplicated and second digit of address increased by 1--
# comment this section in case you have no Solar module active
# - name: EU08L_Sol1_Error_Number
# address: 4000
# input_type: holding
# state_class: total
# scale: 1
# precision: 0
# data_type: int16
# - name: EU08L_Sol1_Operating_state
# address: 4001
# input_type: holding
# unit_of_measurement: ""
# state_class: total
# scale: 1
# precision: 0
# data_type: uint16
# - name: EU08L_Sol1_Actual_collector_temperature
# address: 4002
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# - name: EU08L_Sol1_Actual_buffer_sensor1_temperature
# address: 4003
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# - name: EU08L_Sol1_Actual_buffer_sensor2_temperature
# address: 4004
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# - name: EU08L_Sol1_Set_max_buffer_temperature
# address: 4050
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# - name: EU08L_Sol1_Set_buffer_changeover_temperature
# address: 4051
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# Heating Circuit -- e.g. underfloor heating --for additonal heating circuits , this section needs to be duplicated and second digit of address increased by 1--
- name: EU08L_Hc1_Error_Number
address: 5000
input_type: holding
state_class: total
scale: 1
precision: 0
data_type: int16
- name: EU08L_Hc1_Operating_state
address: 5001
input_type: holding
unit_of_measurement: ""
state_class: total
scale: 1
precision: 0
data_type: uint16
- name: EU08L_Hc1_Flow_line_temperature
address: 5002
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Hc1_Return_line_temperature
address: 5003
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Hc1_Room_device_temperature
address: 5004
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Hc1_Set_flow_line_temperature
address: 5005
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Hc1_Operating_mode
address: 5006
input_type: holding
state_class: total
scale: 1
precision: 0
data_type: int16
- name: EU08L_Hc1_Set_flow_line_offset_temperature
address: 5050
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Hc1_Set_heating_mode_room_temperature
address: 5051
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
- name: EU08L_Hc1_Set_cooling_mode_room_temperature
address: 5052
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
# Heating Circuit 2 (e.g. radiators --for additonal heating circuits , this section needs to be duplicated and second digit of address increased by 1--
# delete or comment this section in case you have no further heating circuits
# - name: EU08L_Hc2_Error_Number
# address: 5100
# input_type: holding
# state_class: total
# scale: 1
# precision: 0
# data_type: int16
# - name: EU08L_Hc2_Operating_state
# address: 5101
# input_type: holding
# unit_of_measurement: ""
# state_class: total
# scale: 1
# precision: 0
# data_type: uint16
# - name: EU08L_Hc2_Flow_line_temperature
# address: 5102
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# - name: EU08L_Hc2_Return_line_temperature
# address: 5103
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# - name: EU08L_Hc2_Romm_device_temperature
# address: 5104
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# - name: EU08L_Hc2_Set_flow_line_temperature
# address: 5105
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# - name: EU08L_Hc2_Operating_mode
# address: 5106
# input_type: holding
# state_class: total
# scale: 1
# precision: 0
# data_type: int16
# - name: EU08L_Hc2_Set_flow_line_offset_temperature
# address: 5150
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# - name: EU08L_Hc2_Set_heating_mode_room_temperature
# address: 5151
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
# - name: EU08L_Hc2_Set_cooling_mode_room_temperature
# address: 5152
# input_type: holding
# unit_of_measurement: "°C"
# state_class: total
# scale: 0.1
# precision: 1
# data_type: int16
Meine sensor.yaml sieht dann für die Lambda so aus, ich habe mehr Sensoren definiert, die habe ich hier aber rausgelassen.
counter:
## to monitor the heat pump's cycling, here are the sensors.
eu08l_heat_pump_timing:
name: eu08l_heat_pump_timing
initial: 6
eu08l_hot_water_timing:
name: eu08l_hot_water_timing
initial: 84
eu8l_heat_pump_timing_daily:
name: eu08l_heat_pump_timing_daily
initial: 0
eu08l_hot_water_timing_daily:
name: eu8l_hot_water_timing_daily
initial: 0
Dazu dann noch die automation yaml. In der berechne die die Tacktungen um sie im Frontend anzeigen zu können. Dazu sind Sensoren definiert und immer wenn die Betriebsart der Lambda in Heizung oder WarmWasser wechselt, erhöhe ich den passenden Zähler. Damit habe ich immer die Tacktungen als Summe und die Tacktungen pro Tag im Blick.
automation:
## incement counter for Lambda total cycling
- alias: Increase Counter for HP timing Heating
trigger:
# state=1 -> Heating
platform: state
entity_id: sensor.eu08l_Hp1_Operating_State
to: '1'
action:
service: counter.increment
entity_id: counter.eu08l_heat_pump_timing
- alias: Increase Counter for HP timing hot water
trigger:
# state=2 -> Hot Water
platform: state
entity_id: sensor.eu08l_Hp1_Operating_State
to: '2'
action:
service: counter.increment
entity_id: counter.eu08l_hot_water_timing
## incement counter for Lambda daily cycling
- alias: Increase Counter for HP timing Heating daily
trigger:
# state=1 -> Heating
platform: state
entity_id: sensor.eu08l_Hp1_Operating_State
to: '1'
action:
service: counter.increment
entity_id: counter.eu08l_heat_pump_timing_daily
- alias: Increase Counter for HP timing hot water
trigger:
# state=2 -> Hot Water
platform: state
entity_id: sensor.eu08l_Hp1_Operating_State
to: '2'
action:
service: counter.increment
entity_id: counter.eu08l_hot_water_timing_daily
## reset daily counter at midnight
- alias: Reset Counter at Midnight
trigger:
platform: time
at: '00:00:00'
action:
service: counter.reset
entity_id: counter.eu08l_heat_pump_timing_daily
- alias: Reset Counter at Midnight
trigger:
platform: time
at: '00:00:00'
action:
service: counter.reset
entity_id: counter.eu08l_hot_water_timing_daily
Damit die Status Sesoren auch als StatusText einzublenden ist, gibt es noch eine Yaml-Datei für die Umsetzung.
############# in this yaml the status sensors of the Lambda are transcribed into texts
sensor:
# Lambda WP:
- platform: template
sensors:
eu08l_ambient_operating_state_txt:
friendly_name: "eu08l_Ambient_Operating_State_txt"
value_template: >
{{ ['Off', 'Automatik', 'Manual', 'Error'][states('sensor.eu08l_ambient_operating_state')|int] }}
eu08l_emgr_operating_state_txt:
friendly_name: "eu08l_EMgr_Operating_State_txt"
value_template: >
{{ ['Off', 'Automatik', 'Manual', 'Error', 'Offline'][states('sensor.eu08l_emgr_operating_state')|int] }}
eu08l_hp1_error_state_txt:
friendly_name: "eu08l_Hp1_Error_State_txt"
value_template: >
{{ ['OK', 'Message', 'Warning', 'Alarm', 'Fault'][states('sensor.eu08l_hp1_error_state')|int] }}
eu08l_hp1_state_txt:
friendly_name: "eu08l_Hp1_State_txt"
value_template: >
{{ ['Init', 'Reference', 'Restart-Block', 'Ready', 'Start Pumps', 'Start Compressor', 'Pre-Regulation', 'Regulation', 'Not Used', 'Cooling', 'Defrosting', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Stopping', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Fault-Lock', 'Alarm-Block', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Not Used', 'Error-Reset'][states('sensor.eu08l_hp1_state')|int] }}
eu08l_hp1_operating_state_txt:
friendly_name: "eu08l_Hp1_Operating_State_txt"
value_template: >
{{ ['Standby', 'Heizung', 'WW-Bereitung', 'Cold Climate', 'Zirkulieren', 'Defrost', 'Off', 'Frost', 'Standby-Frost', 'Not used', 'Sommer', 'Ferienbetrieb', 'Error', 'Warning', 'Info-Message', 'Time-Block', 'Release-Block', 'Mintemp-Block', 'Firmware-Download'][states('sensor.eu08l_hp1_operating_state')|int] }}
eu08l_hp1_request_type_txt:
friendly_name: "eu08l_Hp1_Request_Type_txt"
value_template: >
{{ ['No Request', 'Flow Pump Circulation', 'Central Heating', 'Central Cooling', 'Domestic Hot Water'][states('sensor.eu08l_hp1_request_type')|int] }}
eu08l_boil1_operating_state_txt:
friendly_name: "eu08l_Boil1_Operating_State_txt"
value_template: >
{{ ['Standby', 'Domestic Hot Water', 'Legio', 'Summer', 'Frost', 'Holiday', 'Prio-Stop', 'Error', 'Off', 'Prompt-DHW', 'Trailing-Stop', 'Temp-Lock', 'Standby-Frost'][states('sensor.eu08l_boil1_operating_state')|int] }}
eu08l_buff1_operating_state_txt:
friendly_name: "eu08l_Buff1_Operating_State_txt"
value_template: >
{{ ['Standby', 'Heating', 'Cooling', 'Summer', 'Frost', 'Holiday', 'Prio-Stop', 'Error', 'Off', 'Standby-Frost'][states('sensor.eu08l_buff1_operating_state')|int] }}
eu08l_sol1_operating_state_txt:
friendly_name: "eu08l_Sol1_Operating_State_txt"
value_template: >
{{ ['Standby', 'Heating', 'Error', 'Off'][states('sensor.eu08l_sol1_operating_state')|int] }}
eu08l_hc1_operating_state_txt:
friendly_name: "eu08l_Hc1_Operating_State_txt"
value_template: >
{{ ['Heating', 'Eco', 'Cooling', 'Floor-dry', 'Frost', 'Max-Temp', 'Error', 'Service', 'Holiday', 'Central Heating Summer', 'Central Cooling Winter', 'Prio-Stop', 'Off', 'Release-Off', 'Time-Off', 'Standby', 'Standby-Heating', 'Standby-Eco', 'Standby-Cooling', 'Standby-Frost', 'Standby-Floor-dry'][states('sensor.eu08l_hc1_operating_state')|int] }}
eu08l_hc1_operating_mode_txt:
friendly_name: "eu08l_Hc1_Operating_Mode_txt"
value_template: >
{{ ['Off', 'Manual', 'Automatik', 'Auto-Heating', 'Auto-Cooling', 'Frost', 'Summer', 'Floor-dry'][states('sensor.eu08l_hc1_operating_mode')|int] }}
eu08l_hc2_operating_state_txt:
friendly_name: "eu08l_Hc2_Operating_State_txt"
value_template: >
{{ ['Heating', 'Eco', 'Cooling', 'Floor-dry', 'Frost', 'Max-Temp', 'Error', 'Service', 'Holiday', 'Central Heating Summer', 'Central Cooling Winter', 'Prio-Stop', 'Off', 'Release-Off', 'Time-Off', 'Standby', 'Standby-Heating', 'Standby-Eco', 'Standby-Cooling', 'Standby-Frost', 'Standby-Floor-dry'][states('sensor.eu08l_hc2_operating_state')|int] }}
eu08l_hc2_operating_mode_txt:
friendly_name: "eu08l_Hc2_Operating_Mode_txt"
value_template: >
{{ ['Off', 'Manual', 'Automatik', 'Auto-Heating', 'Auto-Cooling', 'Frost', 'Summer', 'Floor-dry'][states('sensor.eu08l_hc2_operating_mode')|int] }}
eu08l_hc3_operating_state_txt:
friendly_name: "eu08l_Hc3_Operating_State_txt"
value_template: >
{{ ['Heating', 'Eco', 'Cooling', 'Floor-dry', 'Frost', 'Max-Temp', 'Error', 'Service', 'Holiday', 'Central Heating Summer', 'Central Cooling Winter', 'Prio-Stop', 'Off', 'Release-Off', 'Time-Off', 'Standby', 'Standby-Heating', 'Standby-Eco', 'Standby-Cooling', 'Standby-Frost', 'Standby-Floor-dry'][states('sensor.eu08l_hc3_operating_state')|int] }}
eu08l_hc3_operating_mode_txt:
friendly_name: "eu08l_Hc3_Operating_Mode_txt"
value_template: >
{{ ['Off', 'Manual', 'Automatik', 'Auto-Heating', 'Auto-Cooling', 'Frost', 'Summer', 'Floor-dry'][states('sensor.eu08l_hc3_operating_mode')|int] }}
Und so sieht dann mein Dashboard dazu aus.
Zunächst die Taktungen
Im Moment habe ich noch nur die Warmwasserwerte und die allgemeinen Werte hineingenommen, die Werte zur Heizung kommen noch.
Zwei der Werte sind zum original von Ralf Winter angepasst.
Ich berechne einen Wert, den COP calc. Dazu verwende ich eine Helper mit folgendem Template:
{{ ((states(’sensor.eu13l_hp1_compressor_thermal_energy_output_accumulated‘) | float / states(’sensor.eu13l_hp1_compressor_power_consumption_accumulated‘) | float )) | round(2) }}
So berechne ich den Wert aus den Werten Stromaufnahme und Wärmeabgabe der Lambda.
Und ich habe den modbus sensor für die Warmwasser-Solltemperatur in eine Climate-Entität umgeschrieben. Damit kann ich im Dashboard eine tile-card auf die Climate-Entität legen und den Wert beeinflussen. Die Anpassung im Code seht ihr im Anfang der modbus.yaml. Die tile-card ist schön klein, daher habe ich diese Card gewählt.
Super, einfache Einbindung der Lambda in HA.
Bin zwar erst bei der Modbus.yaml, die Werte scheinen aber zu passen. (Meine Lambda EU08L ist von2022, COP über 5 mit Radiatoren.
PS: In Deiner aktuellen lambda_sensor.yaml auf GitHub fehlt der Part Sensors mit den Text Enumerationen, im Code auf der Web Seite sind noch die Texte/Variablennamen von Ralf Winter (E13L).
Danke für den Hinweis. Ich bin gerade dabei alles auf Packages umzuschreiben. Ich werde die Text Sensoren einbinden