Hi.
First of all thanks all of you for the developement and the board.
I use it with Home Assistant and, when I change some values, it start a loop with the automations or return to the original value. In example:
1- I change the quiet level at HA
2- HA start the automation Set Heatmode and sends the topic (topic1) with the new value
3- Meanwhile (up to 5 seconds), Heishamon board publish the value (topic2).
4- HA detecs the topic (topic2) and run Set Heatmode Selector
5- Heishamon board process the topic1
This is the reason I modify the yaml to stop the automations selector during 5 seconds. This is the file I use. Hope it should be useful.
Hi. First of all thanks all of you for the developement and the board. I use it with Home Assistant and, when I change some values, it start a loop with the automations or return to the original value. In example: 1- I change the quiet level at HA 2- HA start the automation Set Heatmode and sends the topic (topic1) with the new value 3- Meanwhile (up to 5 seconds), Heishamon board publish the value (topic2). 4- HA detecs the topic (topic2) and run Set Heatmode Selector 5- Heishamon board process the topic1
This is the reason I modify the yaml to stop the automations selector during 5 seconds. This is the file I use. Hope it should be useful.
################################################################
Packages / Heishamon
################################################################
################################################################
Changelog
################################################################
1.0.0 (08-01-2020)
Added
- Initial version
1.1.0 (10-01-2020)
Added
- Added power switch and Fan RPM sensors
1.2.0 (17-05-2020)
Fixed
- New/changed topics
1.3.0 (22-06-2022)
Compatibility with Home Assistant 2022.6 MQTT configuration format
1.4.0 (18-09-2022)
Added
- Split heatshift into separate Z1 and Z2
1.5.0 (16-10-2023)
Added
- Cool modes
- All modes COP calculations
Removed
- S0 energy calculations (we are already calculating it in sensors)
1.5.1 (18-10-2023)
Fixed
- Power templates when values not available
1.5.2 (28-12-2023)
Fixed
- Wait to enable selectors automations
Automations
############### automation:
Fetches quiet level from status and sets the selector accordingly
alias: Set quiet level selector trigger: platform: mqtt topic: "panasonic_heat_pump/main/Quiet_Mode_Level" action: service: input_select.select_option data_template: entity_id: input_select.heishamon_quietmode option: >- {%- if trigger.payload == "0" -%} Off {%- else -%} {{ trigger.payload }} {%- endif -%}
Sets quiet level to the selected value
alias: Set quiet level trigger: platform: state entity_id: input_select.heishamon_quietmode action:
Fetches powerful level from status and sets the selector accordingly
alias: Set powerful level selector trigger: platform: mqtt topic: "panasonic_heat_pump/main/Powerful_Mode_Time" action: service: input_select.select_option data_template: entity_id: input_select.heishamon_powermode option: >- {%- if trigger.payload == "0" -%} Off {%- else -%} {{ (trigger.payload | int) * 30 }} min {%- endif -%}
Sets powerful level to the selected value
alias: Set powerful level trigger: platform: state entity_id: input_select.heishamon_powermode action:
Fetches heatmode from status and sets the selector accordingly
alias: Set heatmode selector trigger: platform: mqtt topic: "panasonic_heat_pump/main/Operating_Mode_State" action: service: input_select.select_option data_template: entity_id: input_select.heishamon_heatmode option: >- {%- if trigger.payload == "0" -%} Heat {%- elif trigger.payload == "1" -%} Cool {%- elif trigger.payload == "2" -%} Auto {%- elif trigger.payload == "3" -%} DHW {%- elif trigger.payload == "4" -%} Heat+DHW {%- elif trigger.payload == "5" -%} Cool+DHW {%- elif trigger.payload == "6" -%} Auto(Heat)+DHW {%- elif trigger.payload == "7" -%} Auto(Cool) {%- elif trigger.payload == "8" -%} Auto(Cool)+DHW {%- endif -%}
Sets heatmode to the selected value
alias: Set heatmode trigger: platform: state entity_id: input_select.heishamon_heatmode action:
{%- elif states('input_select.heishamon_heatmode') == "DHW" -%} 3 {%- elif states('input_select.heishamon_heatmode') == "Heat+DHW" -%} 4 {%- elif states('input_select.heishamon_heatmode') == "Cool+DHW" -%} 5 {%- elif states('input_select.heishamon_heatmode') == "Auto+DHW" -%} 6 {%- endif -%}
Fetches Z1 temperature from status and sets the selector accordingly
alias: Set Z1 selector trigger: platform: mqtt topic: "panasonic_heat_pump/main/Z1_Heat_Request_Temp" action: service: input_number.set_value data_template: entity_id: input_number.heishamon_heatshift_z1 value: >- {{ "%.1f" % (trigger.payload | int) }}
Sets Z1 temperature to the selected value
alias: Set Z1 trigger: platform: state entity_id: input_number.heishamon_heatshift_z1 action:
Fetches Z2 temperature from status and sets the selector accordingly
alias: Set Z2 selector trigger: platform: mqtt topic: "panasonic_heat_pump/main/Z2_Heat_Request_Temp" action: service: input_number.set_value data_template: entity_id: input_number.heishamon_heatshift_z2 value: >- {{ "%.1f" % (trigger.payload | int) }}
Sets Z2 temperature to the selected value
alias: Set Z2 trigger: platform: state entity_id: input_number.heishamon_heatshift_z2 action:
Fetches tank target temperature from status and sets the selector accordingly
alias: Set tank target temperature selector trigger: platform: mqtt topic: "panasonic_heat_pump/main/DHW_Target_Temp" action: service: input_number.set_value data_template: entity_id: input_number.heishamon_tank_temp value: >- {{ "%.1f" % (trigger.payload | int) }}
Sets tank target temperature to the selected value
input_number
################ input_number: heishamon_tank_temp: name: Set Tank Temperature min: 40 max: 75 step: 1
heishamon_heatshift_z1: name: Set Zone 1 Temperature min: -5 max: 40 step: 1
heishamon_heatshift_z2: name: Set Zone 2 Temperature min: -5 max: 40 step: 1
input_select
################ input_select: heishamon_quietmode: name: Set Quiet Mode options:
"3"
heishamon_powermode: name: Set Powerful Mode options:
90 min
heishamon_heatmode: name: Set Heat Mode options:
sensor
########## mqtt: sensor:
TOP0 - Power state
state_class: total
state_class: total
state_class: "measurement"
switch
########## switch:
Turn on/off holiday mode
sensor:
SENSORS BELOW ARE NOT IN FIRMWARE
Energy use/production
platform: template sensors: heishamon_power_produced: friendly_name: "Aquarea Power Produced" unit_of_measurement: "W" value_template: >- {{ states('sensor.aquarea_dhw_power_produced') | float + states('sensor.aquarea_heat_power_produced') | float + states('sensor.aquarea_cool_power_produced') | float }} availability_template: >- {%- if is_number(states('sensor.aquarea_dhw_power_consumed')) and is_number(states('sensor.aquarea_heat_power_consumed')) and is_number(states('sensor.aquarea_heat_power_consumed')) %} true {%- else %} false {%- endif %}
heishamon_power_consumed: friendly_name: "Aquarea Power Consumed" unit_of_measurement: "W" value_template: >- {{ states('sensor.aquarea_dhw_power_consumed') | float + states('sensor.aquarea_heat_power_consumed') | float + states('sensor.aquarea_cool_power_consumed') | float }} availability_template: >- {%- if is_number(states('sensor.aquarea_dhw_power_consumed')) and is_number(states('sensor.aquarea_heat_power_consumed')) and is_number(states('sensor.aquarea_heat_power_consumed')) %} true {%- else %} false {%- endif %}
COP Calculations
heishamon_cop: friendly_name: "Aquarea COP" unit_of_measurement: "x" value_template: >- {%- if states('sensor.heishamon_power_consumed') | float(0) > 0 -%} {{ '%0.1f' % ((states('sensor.heishamon_power_produced') | float ) / (states('sensor.heishamon_power_consumed') | float )) }} {%- else -%} 0.0 {%- endif -%} availability_template: >- {%- if is_number(states('sensor.heishamon_power_consumed')) and is_number(states('sensor.heishamon_power_produced')) %} true {%- else %} false {%- endif %}
heishamon_dhw_cop: friendly_name: "Aquarea DHW COP" unit_of_measurement: "x" value_template: >- {%- if states('sensor.aquarea_dhw_power_consumed') | float(0) > 0 -%} {{ '%0.1f' % ((states('sensor.aquarea_dhw_power_produced') | float ) / (states('sensor.aquarea_dhw_power_consumed') | float )) }} {%- else -%} 0.0 {%- endif -%} availability_template: >- {%- if is_number(states('sensor.aquarea_dhw_power_consumed')) and is_number(states('sensor.aquarea_dhw_power_produced')) %} true {%- else %} false {%- endif %}
heishamon_heat_cop: friendly_name: "Aquarea HeaT COP" unit_of_measurement: "x" value_template: >- {%- if states('sensor.aquarea_heat_power_consumed') | float(0) > 0 -%} {{ '%0.1f' % ((states('sensor.aquarea_heat_power_produced') | float ) / (states('sensor.aquarea_heat_power_consumed') | float )) }} {%- else -%} 0.0 {%- endif -%} availability_template: >- {%- if is_number(states('sensor.aquarea_heat_power_consumed')) and is_number(states('sensor.aquarea_heat_power_produced')) %} true {%- else %} false {%- endif %}
heishamon_cool_cop: friendly_name: "Aquarea Cool COP" unit_of_measurement: "x" value_template: >- {%- if states('sensor.aquarea_cool_power_consumed') | float(0) > 0 -%} {{ '%0.1f' % ((states('sensor.aquarea_cool_power_produced') | float ) / (states('sensor.aquarea_cool_power_consumed') | float )) }} {%- else -%} 0.0 {%- endif -%} availability_template: >- {%- if is_number(states('sensor.aquarea_cool_power_consumed')) and is_number(states('sensor.aquarea_cool_power_produced')) %} true {%- else %} false {%- endif %}
Calculation Energy produced (kWh) - DHW
Calculation Energy produced (kWh) - Heat
Calculation Energy produced (kWh) - Cool
Calculation Energy produced (kWh) - Total
platform: integration source: sensor.heishamon_power_produced name: Aquarea Energy Produced unit_prefix: k method: left
Calculation Energy consumed (kWh) - DHW
Calculation Energy consumed (kWh) - Heat
Calculation Energy consumed (kWh) - Cool
Calculation Energy consumed (kWh) - Total