edterbak / NodeRed_Heishamon_control

a Node Red flow to interact with Heishamon (a panasonic heatpump through an ESP board)
35 stars 6 forks source link

[ENHANCEMENT]: Improved Heat meter #100

Open LaMiyu opened 1 year ago

LaMiyu commented 1 year ago

Hello,

the integrated heat meter of the Heisha/Jeisha is bad - it is always rounded down to a whole 200 watts ... not everyone wants to install an external counter.

But I think with the existing data, a much better one can be calculated itself:

Real power consumption:

Compressor consumption + fan consumption + pump consumption:

Compressor: (for the single-phase models). Amps from compressor mulitplied with 230V = gives an accurate watts for the compressor. Amps are much more accurate with a decimal place.

Circulation Pump: The circulating pump needs 39W to 109W depending on the power. Simply link with the hex number and assume a value.

Fan: Here there is no indication what the min and max value would be - maybe someone has an idea?

Real heat quantity:

Volume flow per hour in liters x 1 (density) x 1.16 (specific heat capacity) x (Outlet - Inlet)K (Difference between these Temperatures)

Additional:

When defrost mode is active, the amount of heat must be subtracted. Currently the heat pump calculates the defrost with a COP of 7-10 which distorts the COP.

I think it would give a much more accurate statement about the efficiency of the heat pump if the calculations are integrated. Of course, this is not yet an accurate measurement, but it would be a significant improvement over the 200-watt steps that currently happen.

LaMiyu commented 1 year ago

Hello,

small update:

I found in the spare parts list that the fan motor has 60W as power rating.

I have now integrated the whole thing via Home Assistant to have a more accurate representation here. It is noticeable that the COP from the Jeisha is really strongly glossed over by the fact that the 200Watt steps has a very strong effect on the COP, especially in consumption. I have already read in other discussions from users who have installed a real electricity meter, that the internal measurement of the Jeisha always changes at 250 watts above the current display. So 1,240 watts of consumption is listed as 1,000 watts in the Jeisha. I have now also found something similar with my calculations.

Unfortunately, I have no experience how the whole thing would have to be implemented in NodeRed - so I have helped me first about Home Assistant.

sensor:
  - platform: template
    sensors: 
     energy_consumption_heat:
        friendly_name: "Energy Consumption Heat"
        unit_of_measurement: "W"
        value_template: >-
          {%- if states('sensor.panasonic_heat_pump_main_threeway_valve_state') == "Room" -%}
             {{ (((states('sensor.panasonic_heat_pump_main_compressor_current') | float(1)) * 230) + (states('sensor.panasonic_heat_pump_main_pump_duty') | float(1) / 254 * 70 + 39 ) + 60 ) | round(2)  }}
          {%- else -%}
             {{ 0 }}
          {%- endif -%}
        attribute_templates:
          hour_last_updated:  "{{ (now().minute / 5) | round(0, 'floor') }}"     
      energy_consumption_dhw:
        friendly_name: "Energy Consumption DHW"
        unit_of_measurement: "W"
        value_template: >-
          {%- if states('sensor.panasonic_heat_pump_main_threeway_valve_state') == "Tank" -%}
             {{ (((states('sensor.panasonic_heat_pump_main_compressor_current') | float(1)) * 230) + (states('sensor.panasonic_heat_pump_main_pump_duty') | float(1) / 254 * 70 + 39 ) + 60 ) | round(2)  }}
          {%- else -%}
             {{ 0 }}
          {%- endif -%}
        attribute_templates:
          hour_last_updated:  "{{ (now().minute / 5) | round(0, 'floor') }}"  
      energy_production_heat:
        friendly_name: "Energy Production Heat"
        unit_of_measurement: "W"
        value_template: >-
          {%- if states('sensor.panasonic_heat_pump_main_threeway_valve_state') == "Room" and states('switch.panasonic_heat_pump_main_defrosting_state') == "off" -%} 
            {{ ((states('sensor.panasonic_heat_pump_main_pump_flow') | float(2)) * 60 * 1 * 1.16 * ((states('sensor.panasonic_heat_pump_main_main_outlet_temp') | float(2)) - (states('sensor.panasonic_heat_pump_main_main_inlet_temp') | float(2)  ))) | round(2) }}
          {%- else -%}
             {{ 0 }}
          {%- endif -%}
        attribute_templates:
          hour_last_updated:  "{{ (now().minute / 5) | round(0, 'floor') }}"
      energy_production_dhw:
        friendly_name: "Energy Production DHW"
        unit_of_measurement: "W"
        value_template: >-
          {%- if states('sensor.panasonic_heat_pump_main_threeway_valve_state') == "Tank" and states('switch.panasonic_heat_pump_main_defrosting_state') == "off" -%} 
            {{ ((states('sensor.panasonic_heat_pump_main_pump_flow') | float(2)) * 60 * 1 * 1.16 * ((states('sensor.panasonic_heat_pump_main_main_outlet_temp') | float(2)) - (states('sensor.panasonic_heat_pump_main_main_inlet_temp') | float(2)  ))) | round(2) }}
          {%- else -%}
             {{ 0 }}
          {%- endif -%}
        attribute_templates:
          hour_last_updated:  "{{ (now().minute / 5) | round(0, 'floor') }}"
edterbak commented 1 year ago

First off, thank you for the propper detailed request. This is how I like things to be handed . Clear.

Now the content. Personally, I really don get why people are obsessed with getting correct information out of the pump. Yes, it is not correct, and yes that is not right. But have this stuff calibrated and 100% accurate is a lot of effort and does not bring anything. In the end, if you want to adjust the pump to the best settings, you are comparing before vs after situations. All is relative. So doing that with calibrated / accurate stuff, or inacurate stuff will deliver the same 'picture'. You will be making the same choices. Only when comparing to other systems this item might get relevant. If thats your thing fine. :) Ghehehe... (read this with a wink. nothing personal and everyone has their own opinion. )

You split the contributors for the energye nicely apart. It should not be that difficult creating some code to do that and present it on the dash somewhere.

I can create the function, and put the code in here. But it will not be soon. Im elbodeep in tackling softstart issue.

Thanks again for the effort !!

edterbak commented 1 year ago

:D this item is not done yet.