Unfortunately, the Lambda heat pump only passes on the total amount of energy consumed via the modbus interface. It would be interesting to know how many kWh are required for heating and how many kWh for hot water.
As the Lambda passes on the total consumption via a Modbus register “hp1_compressor_power_consumption_accumulated” and the status via another “hp1_operating_state”, the consumption can be calculated.
The status for heating is 1, the status for hot water is 2.
If we now write the “hp1_compressor_power_consumption_accumulated” into a helper when the status of the Register changes to 1 (heating) and save the value again in a helper when the status changes from 1 to another value, we can calculate the difference and thus the energy consumed for this heating process.
Now add a sensor for the total kWh and we can differentiate the energy consumption by type.
To ensure that the value is the same as the value in the lambda interface, we can read the lambda out on the display and set this value as the start value for the sum sensor via the DevTools.
Not soooo difficult. As always, the code is in my git repro. https://github.com/GuidoJeuken-6512/HomeAssistant/tree/main
Here are the sensors:
Sensors
input_number:
eu08l_energy_hot_water_sum:
name: “energy_hot_water_sum”
step: 0.1
min: 0
max: 9999999
unit_of_measurement: “kWh”
eu08l_energy_hot_water_start:
name: “energy_hot_water_start”
step: 0.1
min: 0
max: 9999999
initial: 0
unit_of_measurement: “kWh”
eu08l_energy_hot_water_end:
name: “energy_hot_water_end”
step: 0.1
min: 0
max: 9999999
initial: 0
unit_of_measurement: “kWh”
##### Heating Enery Consumption
eu08l_energy_heating_sum:
name: “energy_heating_sum”
step: 0.1
min: 0
max: 9999999
unit_of_measurement: “kWh”
eu08l_energy_heating_start:
name: “energy_heating_start”
step: 0.1
min: 0
max: 9999999
initial: 0
unit_of_measurement: “kWh”
eu08l_energy_heating_end:
name: “energy_heating_end”
step: 0.1
min: 0
max: 9999999
initial: 0
unit_of_measurement: “kWh”
And here is the automation. For the second automation to calculate the energy for the hot water, simply adjust the sensors and the trigger.
Automatisation
– id: ‘1728483475534’
alias: Heating kWh
description: ”
triggers:
– trigger: state
entity_id:
– sensor.eu08l_hp1_operating_state
from: ‘1’
id: from2
– trigger: state
entity_id:
– sensor.eu08l_hp1_operating_state
id: to2
to: ‘1’
conditions: []
actions:
– choose:
– conditions:
– condition: trigger
id:
– to2
sequence:
– action: input_number.set_value
metadata: {}
data:
value: ‘{{states(”sensor.eu08l_hp1_compressor_power_consumption_accumulated”)
| float(0) /1000}}’
target:
entity_id: input_number.eu08l_energy_heating_start
– conditions:
– condition: trigger
id:
– from2
sequence:
– action: input_number.set_value
metadata: {}
data:
value: ‘{{states(”sensor.eu08l_hp1_compressor_power_consumption_accumulated”)
| float(0) /1000}}’
target:
entity_id: input_number.eu08l_energy_heating_end
– action: input_number.set_value
metadata: {}
data:
value: ‘{{states(”input_number.eu08l_energy_heating_sum”) | float(0) + (states(”input_number.eu08l_energy_heating_end”)
|float(0) – states(”input_number.eu08l_energy_heating_start”) |float(0)
) | float(0)}}’
target:
entity_id: input_number.eu08l_energy_heating_sum
mode: single
I have not yet built a nice dashboard for this, but here are all the values in the view.