Hi I have recently set up esp altherma and all is working correctly except cop is always 0. Also pretty new to home assistant so I am still learning.
Have I done something wrong with programming of cop in the yaml file? See attached screen shots.
Hi I have recently set up esp altherma and all is working correctly except cop is always 0. Also pretty new to home assistant so I am still learning.
Have I done something wrong with programming of cop in the yaml file? See attached screen shots.
Are you collecting power input data somehow? I know there are examples of calculations in HA that use the various inverter voltage/current measures to calculate instantaneous power figures, but personally, I wouldn’t rely on those. It’s conventional to use a separate power monitor, either inline or using a CT, which also sends the instantaneous input power to HA. HP output power is then calculated from the flow dT and flow rate as provided by ESPAltherma, and COP comes from the output power / input power. I can’t read your photos, you might be better to attach the YAML to your question.
Hi it’s just the Be cop that I am trying to get working. I thought this is direct from heat pump but only when running, I remember in commenting it on python before loading esp32 with file.
Not familiar with BE_COP what does it indicate?
I see that. I hadn’t noticed it before. There isn’t any documentation about the source or relative accuracy of that data point. The only method I can see on the ESPAltherma Wiki is here, which provides the following YAML:
- name: "COP"
unique_id: "espaltherma_cop"
unit_of_measurement: 'COP'
state: "{% if is_state_attr('sensor.althermasensors','Operation Mode', 'Heating') and is_state_attr('sensor.althermasensors','Freeze Protection', 'OFF') %}
{{
((state_attr('sensor.althermasensors','Flow sensor (l/min)')| float * 0.06 * 1.16 * (state_attr('sensor.althermasensors','Leaving water temp. before BUH (R1T)') | float - state_attr('sensor.althermasensors','Inlet water temp.(R4T)')|float) )
/
(state_attr('sensor.althermasensors','INV primary current (A)') | float * state_attr('sensor.althermasensors','Voltage (N-phase) (V)')|float / 1000))
|round(2)
}}
{% else %} 0 {%endif%}"
which looks like the YAML you have in the photos. That should work and produce a sensor “COP”, which is quite different from the nominal “BE_COP” in the header file. The YAML says it only produces a value when running when “Operation Mode” is “Heating”, so if you’re not at the moment, it won’t have a value.