@Balans , heb je nog een nieuwere versie kunnen krijgen omdat deze niet meer werkte?
[ Voor 8% gewijzigd door Energiebesparing op 12-09-2023 19:12 ]
[ Voor 8% gewijzigd door Energiebesparing op 12-09-2023 19:12 ]
Jij brand ik blus! 4.640kW no-zw WH-MDC05J3E5
deWit schreef op vrijdag 10 december 2021 @ 13:55:
Volgens mij is dit vooral HA waar het misloopt en moet je in de heishamon.yaml even de heatshift-selector aanpassen:
YAML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 # input_number # ################ input_number: heishamon_tank_temp: name: Set Tank Temperature min: 40 max: 75 step: 1 heishamon_heatshift: name: Set Heatshift Temperature min: 18 max: 35 step: 1
Balans schreef op maandag 13 maart 2023 @ 18:10:
dacht vandaag eens kijken wat dit script nog doet.
maar met de huidige home assistant`s werkt die niet meer @deWit heb jij nog een aanpassing hiervoor
code:
1 2 3Stopped because an error was encountered at 13 maart 2023 om 18:08:00 (runtime: 0.02 seconds) Error rendering data template: ValueError: Template error: float got invalid input 'unknown' when rendering template '{% set outputtemp = states('sensor.aquarea_outlet_temperature') | float%} {% set targettemp = states('sensor.aquarea_outlet_target_tmperature') | float %} {% set frequency = states('sensor.aquarea_compressor_frequency') | float %} {% set setpoint = states('sensor.toon_thermostaat') | float %} {% set roomTemperature = states('sensor.toon_temperatuur') | float %} {% set outsideTemp = states('sensor.aquarea_outdoor_ambient') | float %} {% set deltaT = setpoint - roomTemperature %} {% set WARBasetemp = 33 %} {% set shift = 0 %} {% set hystOff = 0.5 %} {% set lowpowerlimittemp = 3 %} {% set newtarget = targettemp %} {% set WARsetpoint = WARBasetemp - outsideTemp %} {% if WARsetpoint < 38 %} {% set WARsetpoint = 38 %} {% endif %} {% if roomTemperature < (setpoint - 1.5) %} {% set shift=3%} {% elif roomTemperature < (setpoint -1 ) %} {% set shift=2%} {% elif roomTemperature < (setpoint - 0.5)%} {% set shift=1%} {% elif roomTemperature < (setpoint + 0.0)%} {% set shift = 0%} {% elif roomTemperature < (setpoint + 0.2)%} {% set shift = -1%} {% elif roomTemperature < (setpoint + 0.4)%} {% set shift = -2%} {% elif roomTemperature < (setpoint + 0.6)%} {% set shift = -3%} {% elif roomTemperature < (setpoint + 0.8)%} {% set shift = -4%} {% endif %} {% if outsideTemp > lowpowerlimittemp and roomTemperature > (setpoint-1) %} {% set newtarget = outputtemp - 1%} {% else %} {% set newtarget = WARBasetemp + shift%} {% endif %} {% if roomTemperature < (setpoint + hystOff ) %} {% set newtarget = newtarget %} {% if frequency == 0 and roomTemperature < setpoint %} {% set newtarget = outputtemp + 4 %} {% endif %} {% if frequency > 0 and outputtemp < 24 %} {% set newtarget = outputtemp + 2%} {% endif %} {% else %} {% set newtarget = outputtemp -3 %} {% endif %} {% if newtarget < 20 %} {% set newtarget = 20 %} {% endif %} {% if newtarget == targettemp %} {{ "%.0f" % (newtarget | int) }} {% else %} {{ "%.0f" % (newtarget | int) }} {% endif %}' but no default was specified
dit is de trace timeline met de error
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| alias: warmtepomp - thermostaat +1 description: "" trigger: - platform: state entity_id: - binary_sensor.aquarea_compressor_running attribute: position to: above for: hours: 0 minutes: 30 seconds: 0 - platform: state entity_id: - sensor.woonkamer_lisa_temp_difference condition: - condition: numeric_state entity_id: sensor.thermostaat_derivative below: 0.4 - condition: numeric_state entity_id: sensor.woonkamer_lisa_temp_difference below: -0.3 - alias: compressor draait of is lang genoeg uit. condition: or conditions: - condition: state entity_id: binary_sensor.aquarea_compressor_running state: "on" - condition: state entity_id: binary_sensor.aquarea_compressor_running state: "off" for: hours: 2 minutes: 0 seconds: 0 - condition: numeric_state entity_id: sensor.woonkamer_lisa_temp_difference below: -1 action: - service: notify.pushover data: message: "triggered automation: {{ this.attributes.friendly_name }} (heatshift +1)" - if: - condition: state entity_id: binary_sensor.aquarea_compressor_running state: "off" then: - service: switch.turn_on data: {} target: entity_id: switch.panasonic_heat_pump_main_heatpump_state - service: notify.pushover data: message: compressor start - service: number.set_value data: value: >- {{ states('number.panasonic_heat_pump_main_z1_heat_request_temp') | float + 1 }} target: entity_id: number.panasonic_heat_pump_main_z1_heat_request_temp alias: Heat shift +1 - delay: hours: 0 minutes: 30 seconds: 0 milliseconds: 0 mode: single |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| alias: warmtepomp - thermostaat -1 description: "" trigger: - platform: state entity_id: - sensor.woonkamer_lisa_temp_difference condition: - condition: numeric_state entity_id: sensor.thermostaat_derivative above: 0.1 - condition: numeric_state entity_id: sensor.woonkamer_lisa_temp_difference above: 0.3 - alias: Compressor kan lager of draait lang genoeg condition: or conditions: - condition: numeric_state entity_id: sensor.panasonic_heat_pump_main_compressor_freq above: 25 - condition: state entity_id: binary_sensor.aquarea_compressor_running state: "on" for: hours: 3 minutes: 0 seconds: 0 action: - choose: - conditions: - condition: numeric_state entity_id: sensor.buiten_temperatuur below: 8 - condition: numeric_state entity_id: sensor.panasonic_heat_pump_main_compressor_freq below: 22 sequence: [] default: - service: number.set_value data: value: >- {{ states('number.panasonic_heat_pump_main_z1_heat_request_temp') | float - 1 }} target: entity_id: number.panasonic_heat_pump_main_z1_heat_request_temp alias: Heat shift -1 - service: notify.pushover data: message: "triggered automation: {{ this.attributes.friendly_name }}" - delay: hours: 0 minutes: 30 seconds: 0 milliseconds: 0 mode: single |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| alias: warmtepomp - uit na compr stop description: "" trigger: - platform: numeric_state entity_id: sensor.panasonic_heat_pump_main_compressor_freq below: 1 condition: - condition: state entity_id: switch.panasonic_heat_pump_main_heatpump_state state: "on" - condition: state entity_id: switch.panasonic_heat_pump_main_defrosting_state state: "off" for: hours: 0 minutes: 2 seconds: 0 action: - service: switch.turn_off data: {} target: entity_id: switch.panasonic_heat_pump_main_heatpump_state - service: automation.turn_off data: stop_actions: false target: entity_id: automation.warmtepomp_uit_na_compr_stop enabled: false - service: notify.pushover data: message: Warmtepomp - compressor gestopt en warmtepomp uitgeschakelt mode: single |
ID.4 1st | 2320 Wp NO | 3200 Wp ZW | Climarad Sensa V2X | Pana WH-MDC07J3E5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| alias: turn on heat sequence: - device_id: 34a3d6b194edd5f755ce274895*** domain: select entity_id: input_select.heishamon_heatmode type: select_option option: Heat - device_id: 34a3d6b194edd5f755ce274895*** domain: switch entity_id: switch.aquarea_main_power type: turn_on - device_id: 79265fb67163c35f87036c8cfa*** domain: climate entity_id: climate.living type: set_hvac_mode hvac_mode: heat mode: single icon: mdi:radiator |
Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| alias: turn on heat sequence: - service: climate.set_hvac_mode data: hvac_mode: heat target: entity_id: climate.living - service: switch.turn_on data: {} target: entity_id: switch.aquarea_main_power - service: input_select.select_option data: option: Heat target: entity_id: input_select.heishamon_heatmode mode: single icon: mdi:radiator |
Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)
kun je dit iets meer uitleggen met die HA Helpers.Daarvoor gebruik ik 3 template/helper sensors en 3 automations:
Template/Helpers:
1. binary_sensor.aquarea_compressor_running:
- Compressor frequency is numeric. Bij triggers/conditions kun je dan geen 'for' gebruiken. Dat wil ik graag om te bepalen hoe lang mijn run is of hoe lang de compressor al uit staat.
2. sensor.woonkamer_lisa_temp_difference:
- thermostaat setpoint - daadwerkelijke temperatuur.
3. sensor.thermostaat_derivative:
- Bepaalt de snelheid waarmee de temperatuur in huis stijgt/daalt.
/f/image/WNkJI5WABXM7XxCTDZsbp9zB.png?f=fotoalbum_large)
/f/image/STo6sMGmtlU8j0ZqgjB5WsbB.png?f=fotoalbum_large)
1
2
3
4
5
6
| template: - sensor: - name: "woonkamer_lisa_temp_difference" unit_of_measurement: "ºC" state: > {{ "%.1f" % float(states('sensor.woonkamer_lisa_temperature') | float - states('sensor.woonkamer_lisa_setpoint') | float) }} |
/f/image/ACWlPwZ3EVI4h07wBkRQNT8z.png?f=fotoalbum_large)
/f/image/yn1RM7mPqj3qj46DMo1MXBPl.png?f=fotoalbum_large)
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/Aj7fF3aX9EJMMVaBZrAWCU2C.jpg?f=user_large)
[ Voor 6% gewijzigd door HB16 op 19-11-2023 19:51 ]
[ Voor 69% gewijzigd door O085105116N op 13-01-2024 23:46 ]
:strip_exif()/f/image/AVxuQHQ4JMFB3meTMHz4wrmC.jpg?f=fotoalbum_large)
1
| {{ states.climate.woonkamer_lisa.attributes.current_temperature - states.climate.woonkamer_lisa.attributes.temperature }} |
1
2
3
4
5
6
7
| template:
- sensor:
- name: "woonkamer_temp_difference"
unique_id: woonkamer_temp_difference
unit_of_measurement: "ºC"
state: >
{{ states.climate.thermostaat_woonkamer.attributes.current_temperature - states.climate.thermostaat_woonkamer.attributes.temperature }} |
[ Voor 7% gewijzigd door O085105116N op 14-01-2024 13:00 ]
Heel erg bedankt voor je hulp. Ik ga nu naar de veranderende cijfertjes staren.
[ Voor 21% gewijzigd door O085105116N op 14-01-2024 22:41 ]
Life is not about specs, it is about joy!
In heishamon zelf. TOP10 geeft bij mij -128c aan. Dat is de dhw temp. maar die heb ik niet. Dus geen gemeten waarde.bartvl schreef op woensdag 17 januari 2024 @ 13:04:
Ik heb een losse vraag, misschien wat basic, over Heishamon icm Home Assistant. Ik gebruik de standaard MQTT add-on als broker.
Als ik in mijn Heisha integratie kijk dan vallen de waardes vaak weg naar -128 e.d. Lijkt er op dat de waardes eens in de zoveel tijd geupdatet worden en niet behouden blijven tot de volgende update ronde. Weten jullie wat ik verkeerd doe?
Life is not about specs, it is about joy!
/f/image/GDZBQ41uc1Ijnsszv9ZxOanY.png?f=fotoalbum_tile)
/f/image/oijLrVLQJ1UsRDpMyx2tJuxD.png?f=fotoalbum_tile)
:fill(white):strip_exif()/f/image/9kpH6HBZe15KXKAHDvu4Cg4a.png?f=user_large)
[ Voor 6% gewijzigd door Separator op 18-01-2024 07:02 ]
Life is not about specs, it is about joy!
Mijn eigen issue lijkt opgelost. Ik had de Heishamon module ruim een jaar geleden besteld. Bij ingebruikname geen firmware update ofzo gedaan. Nu toch maar wel gedaan. Dit lijkt het probleem op te lossen.bartvl schreef op woensdag 17 januari 2024 @ 20:37:
Nee ik bedoel: het zijn echt waardes die juist worden weergegeven. En een paar seconde later staan ze op -128 bijv.
[ Voor 35% gewijzigd door bartvl op 17-01-2024 22:45 ]
Life is not about specs, it is about joy!
Ik heb een separaat account in home assistant. Die user en password heb ik ook ingesteld in de broker en op heishamon.bartvl schreef op woensdag 17 januari 2024 @ 22:28:
Hoe heb je de gebruiker en wachtwoord ingesteld? Heb je daar een separaat account voor aangemaakt in Home Assistant?
[ Voor 93% gewijzigd door Separator op 18-01-2024 08:32 ]
1
| {{states('sensor.panasonic_heat_pump_main_compressor_freq')|float(0) >= 5 and states('sensor.panasonic_heat_pump_main_threeway_valve_state')=="Room"}} |
1
| {{states('sensor.panasonic_heat_pump_main_pump_speed')|float(0)>0 and states('sensor.panasonic_heat_pump_main_compressor_freq')|float(0) <= 5 and states('sensor.panasonic_heat_pump_main_threeway_valve_state')=="Room"}} |
1
| {{states('sensor.inside_temperature_link')|float(25)>=state_attr('climate.heating_thermostat', 'temperature')|float(25)}} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
| alias: Escape_thermo_off description: "" triggers: - entity_id: - binary_sensor.heating_thermo_off to: "on" for: hours: 0 minutes: 5 seconds: 0 id: thermo_off trigger: state - entity_id: - binary_sensor.heating_thermo_off to: "on" for: hours: 0 minutes: 10 seconds: 0 id: thermo_off trigger: state - entity_id: - binary_sensor.heating_thermo_off to: "on" for: hours: 0 minutes: 15 seconds: 0 id: thermo_off trigger: state - entity_id: - binary_sensor.heating_thermo_off to: "on" for: hours: 0 minutes: 20 seconds: 0 id: thermo_off_20 trigger: state conditions: - condition: state entity_id: switch.panasonic_heat_pump_main_defrosting_state state: "off" alias: Defrosting state has to be off - condition: numeric_state entity_id: sensor.panasonic_heat_pump_main_main_target_temp below: input_number.stooklijn_water_max alias: >- Outlet Target Temperature has to be lower than max allowed water temperature - condition: state entity_id: binary_sensor.temperature_goal_reached state: "off" for: hours: 0 minutes: 0 seconds: 0 alias: Room temperature must be below goal temperature actions: - action: climate.set_temperature target: entity_id: climate.panasonic_heat_pump_main_z1_temp data: temperature: >- {{ state_attr('climate.panasonic_heat_pump_main_z1_temp', 'temperature') | float(20) + 1}} alias: Increase watertemp by 1 mode: single trace: stored_traces: 30 |
1
2
3
4
5
6
7
| {% if states('sensor.outside_temperature_link') | float<=states('input_number.stooklijn_buiten_laag') | float %} {{ states('input_number.stooklijn_water_max') | float }} {% elif states('sensor.outside_temperature_link') | float>=states('input_number.stooklijn_buiten_hoog') | float %} {{ states('input_number.stooklijn_water_min') | float }} {% else %} {{ states('input_number.stooklijn_water_max') | float + (states('sensor.outside_temperature_link') | float -states('input_number.stooklijn_buiten_laag') | float) *((states('input_number.stooklijn_water_max') | float - states('input_number.stooklijn_water_min') | float)/(states('input_number.stooklijn_buiten_laag') | float - states('input_number.stooklijn_buiten_hoog') | float)) }} {% endif %} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| type: custom:plotly-graph refresh_interval: 1 title: Heat curve HA (external) defaults: entity: show_value: false line: shape: line layout: xaxis: type: number autorange: true title: Outside Temperature °C fixedrange: true yaxis: title: Water Temperature °C fixedrange: true entities: - entity: "" name: Zone 1 x: - -15 - $ex hass.states['input_number.stooklijn_buiten_laag'].state - $ex hass.states['input_number.stooklijn_buiten_hoog'].state - 20 "y": - $ex hass.states['input_number.stooklijn_water_max'].state - $ex hass.states['input_number.stooklijn_water_max'].state - $ex hass.states['input_number.stooklijn_water_min'].state - $ex hass.states['input_number.stooklijn_water_min'].state |
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
@denneappeldenneappel schreef op donderdag 2 november 2023 @ 14:03:
Eventueel later:
- Nachtverlaging als dit zinvol is
- Runs sturen naar gunstig moment op de dag als de warmtepomp niet 24/7 hoeft te draaien (dynamisch of post salderen)
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
/f/image/pDWQfSAOQ19hX3y3AF3bWVcP.png?f=fotoalbum_large)
[ Voor 14% gewijzigd door O085105116N op 28-11-2024 13:32 ]
Ik heb het screenshot aangepast. Het is de temp sensor die in de woonkamer hangt.denneappel schreef op donderdag 28 november 2024 @ 13:30:
@O085105116N Wat is je source sensor? (staat bij attributen).
Werkt prima.O085105116N schreef op donderdag 28 november 2024 @ 13:17:
Voor de mensen die een derivative of afgeleidesensor gebruiken. Werkt die bij jullie nog?
Bij ziet ie er zo uit.
[Afbeelding]
Ik verwacht een veel grilliger patroon en ook niet van die extreme uitschieters. Bij de eerste installatie (begin dit jaar ergens) zag dit er ook heel anders uit.
[ Voor 4% gewijzigd door Nnoitra op 28-11-2024 13:51 ]
Sarcasm is my superpower! What's yours?
Nachtverlaging doe ik niet (meer) aan. Het energie verbruik valt mij heel erg mee en bij nachtverlaging hoort ook een ochtendverhoging. Dat is zeer onhandig als het koud en vochtig is omdat je dan snel defrosts krijgt. Bovendien is in de ochtend een van de pieken kwa stroomprijs als ik straks dynamisch ga.hemertje schreef op dinsdag 5 november 2024 @ 21:56:
[...]
@denneappel
heb jij de nachtverlaging en de runs sturen naar een gunstig moment op de dag nog voor elkaar gekregen?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
| alias: warmtepomp - koude verwacht, start 1 run description: "" mode: single triggers: - event: sunset offset: "-03:00:00" trigger: sun - entity_id: - sensor.grid_export_potential above: 1 for: hours: 0 minutes: 1 seconds: 0 trigger: numeric_state conditions: - condition: sun after: sunset after_offset: "-03:00:00" - condition: state entity_id: binary_sensor.koude_verwacht state: "on" - condition: state entity_id: binary_sensor.aquarea_compressor_running state: "off" for: hours: 1 minutes: 0 seconds: 0 - condition: state entity_id: switch.panasonic_heat_pump_main_heatpump_state state: "on" - condition: not conditions: - condition: state entity_id: input_select.warmtepomp_modus state: 1 run actions: - action: notify.pushover metadata: {} data: message: Warmtepomp start run ivm koude - action: input_select.select_option metadata: {} data: option: 1 run target: entity_id: input_select.warmtepomp_modus - action: automation.turn_off metadata: {} data: stop_actions: true target: entity_id: automation.warmtepomp_1_run_end - action: automation.turn_on metadata: {} data: {} target: entity_id: automation.warmtepomp_1_run_end_pv |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| alias: warmtepomp 1 run - start description: "" mode: single triggers: - entity_id: - input_select.warmtepomp_modus to: 1 run trigger: state conditions: [] actions: - action: number.set_value target: entity_id: number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp data: value: "33" - if: - condition: numeric_state entity_id: sensor.grid_export_potential below: 2 then: - action: select.select_option metadata: {} data: option: "3" target: entity_id: select.panasonic_heat_pump_main_quiet_mode_level - action: switch.turn_off metadata: {} data: {} target: entity_id: switch.kincony_relais_board_heatpump_hold - action: switch.turn_off metadata: {} data: {} target: entity_id: switch.heatfans |
/f/image/yIK49CNJgb0x4X7s4fTUk6SS.png?f=fotoalbum_large)
Nnoitra schreef op donderdag 28 november 2024 @ 13:45:
[...]
Werkt prima.
Wat bij jouw opvalt, is dat de laatste update 4 uur geleden was. Dat betekend dat je source, waar de derivative vandaan komt, al 4 uur geen update geeft gehad.
De berekening is op basis van de vorige en laatst binnengekomen update, dat kan je uitschieters verklaren.
Mijn input sensor geeft zo'n beetje elke minuut wel een update.
Overigens heb ik de time window op 20 minuten gezet om ruis weg te filteren (een buitendeur die even open gaat, of een defrost waardoor de warmte afgifte ff inkakt) maar daar ben ik nog mee aan het spelen om te kijken of het uitmaakt bij zulke snelle updates...
[ Voor 13% gewijzigd door O085105116N op 28-11-2024 14:24 ]
1
2
3
| sensor: !include sensors.yaml template: !include templates.yaml utility_meter: !include utility_meters.yaml |
1
2
3
4
5
6
7
8
9
10
| # Use Riemann Sum to track total Aquarea Total Energy Produced Calculated (kWh)
# Source is template sensor Aquarea Power Produced Calculated (W)
- platform: integration
source: sensor.aquarea_power_produced_calculated
name: "Aquarea Total Energy Produced Calculated"
unique_id: "panasonic_heat_pump_total_energy_produced_calculated"
unit_prefix: k
round: 2
max_sub_interval:
minutes: 5 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
| - sensor:
# Sensor for calculating the actual Power production
# Using Panasonic flow rate, outlet temp, inlet temp
- unique_id: "panasonic_heat_pump_power_produced_calculated"
name: "Aquarea Power Produced Calculated"
unit_of_measurement: "W"
state_class: "measurement"
state: >
{% set flowRate = states('sensor.panasonic_heat_pump_main_pump_flow') | float(default=0) %}
{% set flowRateSec = flowRate / 60 %}
{% set outletTemp = states('sensor.panasonic_heat_pump_main_main_outlet_temp') | float(default=0) %}
{% set inletTemp = states('sensor.panasonic_heat_pump_main_main_inlet_temp') | float(default=0) %}
{% set deltaTemp = outletTemp - inletTemp %}
{% set value = flowRateSec * 4.153 * deltaTemp * 1000 %}
{% if flowRate > 1 and value > 0 %}
{{ '%0.0f' % value }}
{% else %}
0.0
{% endif %}
# Sensor for calculating the combined COP for both heating and DHW
# Using Template sensor calculated power production and HomeWizard power consumption values
- unique_id: "panasonic_heat_pump_hw_calculated_cop"
name: "Aquarea HW Calculated COP"
unit_of_measurement: "x"
state_class: "measurement"
availability: "{{ states('sensor.aquarea_power_produced_calculated') | float(default=0) > 0 }}"
state: >
{% set produced = states('sensor.aquarea_power_produced_calculated') | float(default=0) %}
{% set consumedHeatPump = states('sensor.hw_panasonic_wh_mdc07j3e5_power') | float(default=0) %}
{% set consumedBuh = states('sensor.hw_panasonic_wh_mdc07j3e5_buh_power') | float(default=0) %}
{% set consumed = consumedHeatPump + consumedBuh %}
{% if consumed > 200 %}
{% set value = [ [produced / consumed, 10] | min , -10 ] | max %}
{{ '%0.1f' % value }}
{% else %}
0.0
{% endif %}
# Sensor for calculating the combined COP average for both heating and DHW
# Using Panasonic total power production and HomeWizard energy import values
- unique_id: panasonic_heat_pump_hw_calculated_cop_lifetime
name: "Aquarea HW Calculated COP average"
unit_of_measurement: "x"
state_class: "total"
state: >
{% set produced = states('sensor.aquarea_pump_total_production_total') | float(default=0) %}
{% set consumedHeatPump = states('sensor.hw_panasonic_wh_mdc07j3e5_energy_import') | float(default=0) %}
{% set consumedBuh = states('sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import') | float(default=0) %}
{% set consumed = consumedHeatPump + consumedBuh %}
{% set value = produced / consumed %}
{{ '%0.1f' % value }}
# Sensor for calculating the hourly COP
# Using utility meters for production & consumption values
- unique_id: "panasonic_heat_pump_cop_hourly"
name: "Aquarea COP hourly"
unit_of_measurement: "x"
state_class: "total"
availability: "{{ states('sensor.aquarea_energy_produced_hourly') | float(default=0) > 0 }}"
state: >
{% set produced = states('sensor.aquarea_energy_produced_hourly') | float(default=0) %}
{% set consumedHeatPump = states('sensor.aquarea_energy_consumed_hourly') | float(default=0) %}
{% set consumedBuh = states('sensor.aquarea_energy_consumed_buh_hourly') | float(default=0) %}
{% set consumed = consumedHeatPump + consumedBuh %}
{% set value = 0 if produced == 0 else produced / consumed %}
{{ '%0.1f' % value }}
# Sensor for calculating the daily COP
# Using utility meters for production & consumption values
- unique_id: "panasonic_heat_pump_cop_daily"
name: "Aquarea COP daily"
unit_of_measurement: "x"
state_class: "total"
availability: "{{ states('sensor.aquarea_energy_produced_daily') | float(default=0) > 0 }}"
state: >
{% set produced = states('sensor.aquarea_energy_produced_daily') | float(default=0) %}
{% set consumedHeatPump = states('sensor.aquarea_energy_consumed_daily') | float(default=0) %}
{% set consumedBuh = states('sensor.aquarea_energy_consumed_buh_daily') | float(default=0) %}
{% set consumed = consumedHeatPump + consumedBuh %}
{% set value = 0 if produced == 0 else produced / consumed %}
{{ '%0.1f' % value }}
# Sensor for calculating the weekly COP
# Using utility meters for production & consumption values
- unique_id: "panasonic_heat_pump_cop_weekly"
name: "Aquarea COP weekly"
unit_of_measurement: "x"
state_class: "total"
availability: "{{ states('sensor.aquarea_energy_produced_weekly') | float(default=0) > 0 }}"
state: >
{% set produced = states('sensor.aquarea_energy_produced_weekly') | float(default=0) %}
{% set consumedHeatPump = states('sensor.aquarea_energy_consumed_weekly') | float(default=0) %}
{% set consumedBuh = states('sensor.aquarea_energy_consumed_buh_weekly') | float(default=0) %}
{% set consumed = consumedHeatPump + consumedBuh %}
{% set value = 0 if produced == 0 else produced / consumed %}
{{ '%0.1f' % value }}
# Sensor for calculating the monthly COP
# Using utility meters for production & consumption values
- unique_id: "panasonic_heat_pump_cop_monthly"
name: "Aquarea COP monthly"
unit_of_measurement: "x"
state_class: "total"
availability: "{{ states('sensor.aquarea_energy_produced_monthly') | float(default=0) > 0 }}"
state: >
{% set produced = states('sensor.aquarea_energy_produced_monthly') | float(default=0) %}
{% set consumedHeatPump = states('sensor.aquarea_energy_consumed_monthly') | float(default=0) %}
{% set consumedBuh = states('sensor.aquarea_energy_consumed_buh_monthly') | float(default=0) %}
{% set consumed = consumedHeatPump + consumedBuh %}
{% set value = 0 if produced == 0 else produced / consumed %}
{{ '%0.1f' % value }}
# Sensor for calculating the yearly COP
# Using utility meters for production & consumption values
- unique_id: "panasonic_heat_pump_cop_yearly"
name: "Aquarea COP yearly"
unit_of_measurement: "x"
state_class: "total"
availability: "{{ states('sensor.aquarea_energy_produced_yearly') | float(default=0) > 0 }}"
state: >
{% set produced = states('sensor.aquarea_energy_produced_yearly') | float(default=0) %}
{% set consumedHeatPump = states('sensor.aquarea_energy_consumed_yearly') | float(default=0) %}
{% set consumedBuh = states('sensor.aquarea_energy_consumed_buh_yearly') | float(default=0) %}
{% set consumed = consumedHeatPump + consumedBuh %}
{% set value = 0 if produced == 0 else produced / consumed %}
{{ '%0.1f' % value }} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
| # Panasonic heat pump energy production hourly panasonic_heat_pump_energy_produced_hourly: unique_id: "panasonic_heat_pump_energy_produced_hourly" name: "Aquarea energy produced hourly" source: sensor.aquarea_total_energy_produced_calculated cycle: hourly # Panasonic heat pump energy consumption hourly panasonic_heat_pump_energy_consumed_hourly: unique_id: "panasonic_heat_pump_energy_consumed_hourly" name: "Aquarea energy consumed hourly" source: sensor.hw_panasonic_wh_mdc07j3e5_energy_import cycle: hourly # Panasonic heat pump energy consumption BUH hourly panasonic_heat_pump_energy_consumed_buh_hourly: unique_id: "panasonic_heat_pump_energy_consumed_buh_hourly" name: "Aquarea energy consumed BUH hourly" source: sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import cycle: hourly # Panasonic heat pump energy production daily panasonic_heat_pump_energy_produced_daily: unique_id: "panasonic_heat_pump_energy_produced_daily" name: "Aquarea energy produced daily" source: sensor.aquarea_total_energy_produced_calculated cycle: daily # Panasonic heat pump energy consumption daily panasonic_heat_pump_energy_consumed_daily: unique_id: "panasonic_heat_pump_energy_consumed_daily" name: "Aquarea energy consumed daily" source: sensor.hw_panasonic_wh_mdc07j3e5_energy_import cycle: daily # Panasonic heat pump energy consumption BUH daily panasonic_heat_pump_energy_consumed_buh_daily: unique_id: "panasonic_heat_pump_energy_consumed_buh_daily" name: "Aquarea energy consumed BUH daily" source: sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import cycle: daily # Panasonic heat pump energy production weekly panasonic_heat_pump_energy_produced_weekly: unique_id: "panasonic_heat_pump_energy_produced_weekly" name: "Aquarea energy produced weekly" source: sensor.aquarea_total_energy_produced_calculated cycle: weekly # Panasonic heat pump energy consumption weekly panasonic_heat_pump_energy_consumed_weekly: unique_id: "panasonic_heat_pump_energy_consumed_weekly" name: "Aquarea energy consumed weekly" source: sensor.hw_panasonic_wh_mdc07j3e5_energy_import cycle: weekly # Panasonic heat pump energy consumption BUH weekly panasonic_heat_pump_energy_consumed_buh_weekly: unique_id: "panasonic_heat_pump_energy_consumed_buh_weekly" name: "Aquarea energy consumed BUH weekly" source: sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import cycle: weekly # Panasonic heat pump energy production monthly panasonic_heat_pump_energy_produced_monthly: unique_id: "panasonic_heat_pump_energy_produced_monthly" name: "Aquarea energy produced monthly" source: sensor.aquarea_total_energy_produced_calculated cycle: monthly # Panasonic heat pump energy consumption monthly panasonic_heat_pump_energy_consumed_monthly: unique_id: "panasonic_heat_pump_energy_consumed_monthly" name: "Aquarea energy consumed monthly" source: sensor.hw_panasonic_wh_mdc07j3e5_energy_import cycle: monthly # Panasonic heat pump energy consumption BUH monthly panasonic_heat_pump_energy_consumed_buh_monthly: unique_id: "panasonic_heat_pump_energy_consumed_buh_monthly" name: "Aquarea energy consumed BUH monthly" source: sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import cycle: monthly # Panasonic heat pump energy production yearly panasonic_heat_pump_energy_produced_yearly: unique_id: "panasonic_heat_pump_energy_produced_yearly" name: "Aquarea energy produced yearly" source: sensor.aquarea_total_energy_produced_calculated cycle: yearly # Panasonic heat pump energy consumption yearly panasonic_heat_pump_energy_consumed_yearly: unique_id: "panasonic_heat_pump_energy_consumed_yearly" name: "Aquarea energy consumed yearly" source: sensor.hw_panasonic_wh_mdc07j3e5_energy_import cycle: yearly # Panasonic heat pump energy consumption BUH yearly panasonic_heat_pump_energy_consumed_buh_yearly: unique_id: "panasonic_heat_pump_energy_consumed_buh_yearly" name: "Aquarea energy consumed BUH yearly" source: sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import cycle: yearly |
:strip_exif()/f/image/hHBh9VBw1FHf2XvMeaUunbFL.png?f=user_large)
:strip_exif()/f/image/4UqETkzc3CHD6zeqswmroIIL.png?f=user_large)
:strip_exif()/f/image/Vemi6a16vsgMlpHa1CypF8Sc.png?f=user_large)
:strip_exif()/f/image/V7YYOerqOrFjw47hVXymkSp7.png?f=user_large)
:strip_exif()/f/image/WVfFHmqV93bSEudp2LUwl3jf.png?f=user_large)
:strip_exif()/f/image/hDTCB8v4X51oT6FqspYjcDF1.png?f=user_large)
[ Voor 255% gewijzigd door nMad op 05-12-2024 09:52 ]
PV: 10,4 kWp | EV: Tesla M3 LR ‘19 | L/W WP: Panasonic WH-MDC07J3E5 + PAW-TD20C1E5 | L/L WP: Daikin FVXM35A/RXM35R + Daikin FTXM25R/RXM25R + MHI 2x SRK25ZS-WF/SCM40ZS-W
PV: 10,4 kWp | EV: Tesla M3 LR ‘19 | L/W WP: Panasonic WH-MDC07J3E5 + PAW-TD20C1E5 | L/L WP: Daikin FVXM35A/RXM35R + Daikin FTXM25R/RXM25R + MHI 2x SRK25ZS-WF/SCM40ZS-W
Super hier moet ik ff rustig naar kijken en ga ik zeker implementeren. Werk nu op een andere manier en dit ziet er beter uit!nMad schreef op woensdag 4 december 2024 @ 10:01:
Wellicht kan ik hier andere HeishaMon + HA gebruikers blij mee maken.
Probleem
Home Assistant - HeishaMon integratie COP sensor is niet accuraat omdat met name de Panasonic power consumption inaccuraat is. Daarnaast is het niet mogelijk om de COP van een bepaalde tijdsperiode te meten.
Actuele "live" power production / COP
Ik heb twee template sensors aangemaakt voor accurate power production waarde en actuele "live" COP.
Voor de COP berekening gebruik ik HomeWizard kWh-meters als input voor accurate "energy consumption".
Mijn COP sensor "Aquarea HW Calculated COP" is alleen beschikbaar als er power production is en heb ik deze de state class "measurement" gegeven.
Gemiddelde COP van de warmtepomp over de totale levensduur
Dit is de derde sensor in de onderstaande template.yaml. Deze berekent de COP over de totale levensduur van de warmtepomp. Total energy production / total energy consumption (incl. BUH). State class is “total”.
Power consumption / production + COP per tijdsperiode
Bovendien heb ik veel (15) utility meters aangemaakt die de consumption en production voor een bepaalde tijdsperiode bijhoudt: hourly, daily, weekly, monthly, yearly. De sources voor deze utility meters zijn de Panasonic total energy production (kWh) en mijn 2 HomeWizard kWh meters. Vervolgens heb ik per tijdsperiode een template sensor aangemaakt die de COP voor die periode berekent. Deze sensor is alleen beschikbaar als er energy production in die periode is geweest en heb ik de state class "total" gegeven.
configuration.yaml
code:
1 2 template: !include templates.yaml utility_meter: !include utility_meters.yaml
templates.yaml (nieuw aan te maken als je deze nog niet hebt)
regel 11, 12, 48 & 49 sensor vervangen door je eigen sensor voor warmtepomp power (W) + BUH power (W).
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127- sensor: # Sensor for calculating the actual Power production # Using Panasonic flow rate, outlet temp, inlet temp - unique_id: "panasonic_heat_pump_power_produced_calculated" name: "Aquarea Power Produced Calculated" unit_of_measurement: "W" state_class: "measurement" state: > {% set flowRate = states('sensor.panasonic_heat_pump_main_pump_flow') | float(default=0) %} {% set flowRateSec = flowRate / 60 %} {% set outletTemp = states('sensor.panasonic_heat_pump_main_main_outlet_temp') | float(default=0) %} {% set inletTemp = states('sensor.panasonic_heat_pump_main_main_inlet_temp') | float(default=0) %} {% set deltaTemp = outletTemp - inletTemp %} {% set value = flowRateSec * 4.153 * deltaTemp * 1000 %} {% if flowRate > 1 and value > 0 %} {{ '%0.0f' % value }} {% else %} 0.0 {% endif %} # Sensor for calculating the combined COP for both heating and DHW # Using Template sensor calculated power production and HomeWizard power consumption values - unique_id: "panasonic_heat_pump_hw_calculated_cop" name: "Aquarea HW Calculated COP" unit_of_measurement: "x" state_class: "measurement" availability: "{{ states('sensor.panasonic_heat_pump_power_produced_calculated') | float(default=0) > 0 }}" state: > {% set produced = states('sensor.panasonic_heat_pump_power_produced_calculated') | float(default=0) %} {% set consumedHeatPump = states('sensor.hw_panasonic_wh_mdc07j3e5_power') | float(default=0) %} {% set consumedBuh = states('sensor.hw_panasonic_wh_mdc07j3e5_buh_power') | float(default=0) %} {% set consumed = consumedHeatPump + consumedBuh %} {% if consumed > 200 %} {% set value = [ [produced / consumed, 10] | min , -10 ] | max %} {{ '%0.1f' % value }} {% else %} 0.0 {% endif %} # Sensor for calculating the combined COP average for both heating and DHW # Using Panasonic total power production and HomeWizard energy import values - unique_id: panasonic_heat_pump_hw_calculated_cop_lifetime name: "Aquarea HW Calculated COP average" unit_of_measurement: "x" state_class: "total" state: > {% set produced = states('sensor.aquarea_pump_total_production_total') | float(default=0) %} {% set consumedHeatPump = states('sensor.hw_panasonic_wh_mdc07j3e5_energy_import') | float(default=0) %} {% set consumedBuh = states('sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import') | float(default=0) %} {% set consumed = consumedHeatPump + consumedBuh %} {% set value = produced / consumed %} {{ '%0.1f' % value }} # Sensor for calculating the hourly COP # Using utility meters for production & consumption values - unique_id: "panasonic_heat_pump_cop_hourly" name: "Aquarea COP hourly" unit_of_measurement: "x" state_class: "total" availability: "{{ states('sensor.aquarea_energy_produced_hourly') | float(default=0) > 0 }}" state: > {% set produced = states('sensor.aquarea_energy_produced_hourly') | float(default=0) %} {% set consumedHeatPump = states('sensor.aquarea_energy_consumed_hourly') | float(default=0) %} {% set consumedBuh = states('sensor.aquarea_energy_consumed_buh_hourly') | float(default=0) %} {% set consumed = consumedHeatPump + consumedBuh %} {% set value = 0 if produced == 0 else produced / consumed %} {{ '%0.1f' % value }} # Sensor for calculating the daily COP # Using utility meters for production & consumption values - unique_id: "panasonic_heat_pump_cop_daily" name: "Aquarea COP daily" unit_of_measurement: "x" state_class: "total" availability: "{{ states('sensor.aquarea_energy_produced_daily') | float(default=0) > 0 }}" state: > {% set produced = states('sensor.aquarea_energy_produced_daily') | float(default=0) %} {% set consumedHeatPump = states('sensor.aquarea_energy_consumed_daily') | float(default=0) %} {% set consumedBuh = states('sensor.aquarea_energy_consumed_buh_daily') | float(default=0) %} {% set consumed = consumedHeatPump + consumedBuh %} {% set value = 0 if produced == 0 else produced / consumed %} {{ '%0.1f' % value }} # Sensor for calculating the weekly COP # Using utility meters for production & consumption values - unique_id: "panasonic_heat_pump_cop_weekly" name: "Aquarea COP weekly" unit_of_measurement: "x" state_class: "total" availability: "{{ states('sensor.aquarea_energy_produced_weekly') | float(default=0) > 0 }}" state: > {% set produced = states('sensor.aquarea_energy_produced_weekly') | float(default=0) %} {% set consumedHeatPump = states('sensor.aquarea_energy_consumed_weekly') | float(default=0) %} {% set consumedBuh = states('sensor.aquarea_energy_consumed_buh_weekly') | float(default=0) %} {% set consumed = consumedHeatPump + consumedBuh %} {% set value = 0 if produced == 0 else produced / consumed %} {{ '%0.1f' % value }} # Sensor for calculating the monthly COP # Using utility meters for production & consumption values - unique_id: "panasonic_heat_pump_cop_monthly" name: "Aquarea COP monthly" unit_of_measurement: "x" state_class: "total" availability: "{{ states('sensor.aquarea_energy_produced_monthly') | float(default=0) > 0 }}" state: > {% set produced = states('sensor.aquarea_energy_produced_monthly') | float(default=0) %} {% set consumedHeatPump = states('sensor.aquarea_energy_consumed_monthly') | float(default=0) %} {% set consumedBuh = states('sensor.aquarea_energy_consumed_buh_monthly') | float(default=0) %} {% set consumed = consumedHeatPump + consumedBuh %} {% set value = 0 if produced == 0 else produced / consumed %} {{ '%0.1f' % value }} # Sensor for calculating the yearly COP # Using utility meters for production & consumption values - unique_id: "panasonic_heat_pump_cop_yearly" name: "Aquarea COP yearly" unit_of_measurement: "x" state_class: "total" availability: "{{ states('sensor.aquarea_energy_produced_yearly') | float(default=0) > 0 }}" state: > {% set produced = states('sensor.aquarea_energy_produced_yearly') | float(default=0) %} {% set consumedHeatPump = states('sensor.aquarea_energy_consumed_yearly') | float(default=0) %} {% set consumedBuh = states('sensor.aquarea_energy_consumed_buh_yearly') | float(default=0) %} {% set consumed = consumedHeatPump + consumedBuh %} {% set value = 0 if produced == 0 else produced / consumed %} {{ '%0.1f' % value }}
utility_meters.yaml (nieuw aan te maken als je deze nog niet hebt)
Onderstaande twee sensors vervangen door je eigen kWh meter sensors.
- sensor.hw_panasonic_wh_mdc07j3e5_energy_import
- sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 # Panasonic heat pump energy production hourly panasonic_heat_pump_energy_produced_hourly: unique_id: "panasonic_heat_pump_energy_produced_hourly" name: "Aquarea energy produced hourly" source: sensor.aquarea_pump_total_production_total cycle: hourly # Panasonic heat pump energy consumption hourly panasonic_heat_pump_energy_consumed_hourly: unique_id: "panasonic_heat_pump_energy_consumed_hourly" name: "Aquarea energy consumed hourly" source: sensor.hw_panasonic_wh_mdc07j3e5_energy_import cycle: hourly # Panasonic heat pump energy consumption BUH hourly panasonic_heat_pump_energy_consumed_buh_hourly: unique_id: "panasonic_heat_pump_energy_consumed_buh_hourly" name: "Aquarea energy consumed BUH hourly" source: sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import cycle: hourly # Panasonic heat pump energy production daily panasonic_heat_pump_energy_produced_daily: unique_id: "panasonic_heat_pump_energy_produced_daily" name: "Aquarea energy produced daily" source: sensor.aquarea_pump_total_production_total cycle: daily # Panasonic heat pump energy consumption daily panasonic_heat_pump_energy_consumed_daily: unique_id: "panasonic_heat_pump_energy_consumed_daily" name: "Aquarea energy consumed daily" source: sensor.hw_panasonic_wh_mdc07j3e5_energy_import cycle: daily # Panasonic heat pump energy consumption BUH daily panasonic_heat_pump_energy_consumed_buh_daily: unique_id: "panasonic_heat_pump_energy_consumed_buh_daily" name: "Aquarea energy consumed BUH daily" source: sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import cycle: daily # Panasonic heat pump energy production weekly panasonic_heat_pump_energy_produced_weekly: unique_id: "panasonic_heat_pump_energy_produced_weekly" name: "Aquarea energy produced weekly" source: sensor.aquarea_pump_total_production_total cycle: weekly # Panasonic heat pump energy consumption weekly panasonic_heat_pump_energy_consumed_weekly: unique_id: "panasonic_heat_pump_energy_consumed_weekly" name: "Aquarea energy consumed weekly" source: sensor.hw_panasonic_wh_mdc07j3e5_energy_import cycle: weekly # Panasonic heat pump energy consumption BUH weekly panasonic_heat_pump_energy_consumed_buh_weekly: unique_id: "panasonic_heat_pump_energy_consumed_buh_weekly" name: "Aquarea energy consumed BUH weekly" source: sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import cycle: weekly # Panasonic heat pump energy production monthly panasonic_heat_pump_energy_produced_monthly: unique_id: "panasonic_heat_pump_energy_produced_monthly" name: "Aquarea energy produced monthly" source: sensor.aquarea_pump_total_production_total cycle: monthly # Panasonic heat pump energy consumption monthly panasonic_heat_pump_energy_consumed_monthly: unique_id: "panasonic_heat_pump_energy_consumed_monthly" name: "Aquarea energy consumed monthly" source: sensor.hw_panasonic_wh_mdc07j3e5_energy_import cycle: monthly # Panasonic heat pump energy consumption BUH monthly panasonic_heat_pump_energy_consumed_buh_monthly: unique_id: "panasonic_heat_pump_energy_consumed_buh_monthly" name: "Aquarea energy consumed BUH monthly" source: sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import cycle: monthly # Panasonic heat pump energy production yearly panasonic_heat_pump_energy_produced_yearly: unique_id: "panasonic_heat_pump_energy_produced_yearly" name: "Aquarea energy produced yearly" source: sensor.aquarea_pump_total_production_total cycle: yearly # Panasonic heat pump energy consumption yearly panasonic_heat_pump_energy_consumed_yearly: unique_id: "panasonic_heat_pump_energy_consumed_yearly" name: "Aquarea energy consumed yearly" source: sensor.hw_panasonic_wh_mdc07j3e5_energy_import cycle: yearly # Panasonic heat pump energy consumption BUH yearly panasonic_heat_pump_energy_consumed_buh_yearly: unique_id: "panasonic_heat_pump_energy_consumed_buh_yearly" name: "Aquarea energy consumed BUH yearly" source: sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import cycle: yearly
Resultaat met wat COP sensors (hourly en weekly missen in dit plaatje)
[Afbeelding]
Resultaat met Statistics Graph op de actuele "live" COP sensor:
[Afbeelding]
Resultaat met Statistics Graph op de COP sensoren per tijdsperiode:
[Afbeelding]
[Afbeelding]
[Afbeelding]
Statistics graph met energy consumption / production per dag:
[Afbeelding]
Ik ben nog een nieuwe Home Assistant gebruiker. Heeft best wat tijd gekost om dit zo te implementeren. Hoop dat andere tweakers hier wat aan hebben en zo wat terug te doen voor alle kennis die ik consumeer van anderenAls je tips hebt voor verbeteringen / toevoegingen hoor ik het graag.
WP Pana 5H - Solar 6m2 icm 300liter - PV 8970Wp: 27stuks Solar - Home Assistant - VW ID3 First 20” |
Short name klinkt goed. Ik ga hier naar kijken, dan is het eenvoudiger voor anderen om deze logica over te nemen.ErikVers schreef op woensdag 4 december 2024 @ 15:36:
[...]
Super hier moet ik ff rustig naar kijken en ga ik zeker implementeren. Werk nu op een andere manier en dit ziet er beter uit!
Je vroeg om tips;
Ik weet dat je in HA ook short name kan maken in je code zodat je gaat verwijzen en bijvoorbeeld enkel bovenin je code 1x de sensor moet invullen/aanpassen ipv op regel niveau.
Daarnaast een vraag; ik meet momenteel de BUH expres niet. Welke sendor uit de aquarea vul je dan daar in?
PV: 10,4 kWp | EV: Tesla M3 LR ‘19 | L/W WP: Panasonic WH-MDC07J3E5 + PAW-TD20C1E5 | L/L WP: Daikin FVXM35A/RXM35R + Daikin FTXM25R/RXM25R + MHI 2x SRK25ZS-WF/SCM40ZS-W
1
| {{(3000 if states('binary_sensor.panasonic_heat_pump_main_internal_heater_state')=='on' else 0)}} |
Interessant! Die Riemann Sum zou ik ook kunnen toepassen op mijn Power produced (W) sensor om daarmee de Energy produced (kWh) bij te houden.Pejdref schreef op woensdag 4 december 2024 @ 15:57:
@ErikVers @nMad
Als je het BUH verbruik wil benaderen kun je een template sensor maken op basis van de aan/uit status.
YAML:
1 {{(3000 if states('binary_sensor.panasonic_heat_pump_main_internal_heater_state')=='on' else 0)}}
Deze geeft 3000W als de internal heater aan staat, anders 0. Het is een benadering omdat het vermogen niet exact 3000W is. Je kunt hier vervolgens een integral helper (linker Riemann) op loslaten om het totaal verbruik te registreren. Als je ook nog dagelijks/maandelijks of noem het maar wil kun je daar dan weer Utility meters op koppelen.
PV: 10,4 kWp | EV: Tesla M3 LR ‘19 | L/W WP: Panasonic WH-MDC07J3E5 + PAW-TD20C1E5 | L/L WP: Daikin FVXM35A/RXM35R + Daikin FTXM25R/RXM25R + MHI 2x SRK25ZS-WF/SCM40ZS-W
Ik nu ook. Heb mijn post aangepast met deze nieuwe logica.Pejdref schreef op woensdag 4 december 2024 @ 16:13:
@nMad Ja zo doe ik het inderdaad ook voor de Power Produced.
PV: 10,4 kWp | EV: Tesla M3 LR ‘19 | L/W WP: Panasonic WH-MDC07J3E5 + PAW-TD20C1E5 | L/L WP: Daikin FVXM35A/RXM35R + Daikin FTXM25R/RXM25R + MHI 2x SRK25ZS-WF/SCM40ZS-W
Ik heb het nu hard coded in mijn COP berekening over de gehele levensduur van de WP staan. Niet de mooiste manier, maar werkt prima zo.Pejdref schreef op donderdag 5 december 2024 @ 11:36:
@nMad
Voor de lifetime COP kun je de startstand eventueel hardcoden in je COP berekening. Als het een utility meter betreft kun je de waarde aanpassen: https://www.home-assistan...on-utility_metercalibrate
Als je dat laatste doet kun je via ontwikkelingshulpmiddelen --> statistieken eventueel corrigeren. (als je bijvoorbeeld een utility meter van 0 naar 100 wijzigt wordt er 100 verbruik geregistreerd, dat kun je weer corrigeren).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # Sensor for calculating the combined COP average for both heating and DHW
# Using Panasonic total power production and HomeWizard energy import values
# Substracted HP = 626 kWh & BUH = 59 kWh from consumption for accurate measurement because this sensor is live since 4-12-2024
- unique_id: panasonic_heat_pump_hw_calculated_cop_lifetime
name: "Aquarea HW Calculated COP average"
unit_of_measurement: "x"
state_class: "total"
state: >
{% set produced = states('sensor.aquarea_total_energy_produced_calculated') | float(default=0) %}
{% set consumedHeatPump = states('sensor.hw_panasonic_wh_mdc07j3e5_energy_import') | float(default=0) - 626 %}
{% set consumedBuh = states('sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import') | float(default=0) - 59 %}
{% set consumed = consumedHeatPump + consumedBuh %}
{% set value = produced / consumed %}
{{ '%0.1f' % value }} |
[ Voor 12% gewijzigd door nMad op 06-12-2024 20:35 ]
PV: 10,4 kWp | EV: Tesla M3 LR ‘19 | L/W WP: Panasonic WH-MDC07J3E5 + PAW-TD20C1E5 | L/L WP: Daikin FVXM35A/RXM35R + Daikin FTXM25R/RXM25R + MHI 2x SRK25ZS-WF/SCM40ZS-W
Nee want ik heb geen kWh metersnMad schreef op vrijdag 6 december 2024 @ 07:22:
[...]
Ik heb het nu hard coded in mijn COP berekening over de gehele levensduur van de WP staan. Niet de mooiste manier, maar werkt prima zo.
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14# Sensor for calculating the combined COP average for both heating and DHW # Using Panasonic total power production and HomeWizard energy import values # Substracted HP = 626 kWh & BUH = 59 kWh from consumption for accurate measurement because this sensor is live since 4-12-2024 - unique_id: panasonic_heat_pump_hw_calculated_cop_lifetime name: "Aquarea HW Calculated COP average" unit_of_measurement: "x" state_class: "total" state: > {% set produced = states('sensor.aquarea_total_energy_produced_calculated') | float(default=0) %} {% set consumedHeatPump = states('sensor.hw_panasonic_wh_mdc07j3e5_energy_import') | float(default=0) - 626 %} {% set consumedBuh = states('sensor.hw_panasonic_wh_mdc07j3e5_buh_energy_import') | float(default=0) - 59 %} {% set consumed = consumedHeatPump + consumedBuh %} {% set value = produced / consumed %} {{ '%0.1f' % value }}
@Pejdref Nog een vraagje. Vandaag heeft mijn LAN er even uit gelegen. Dus zijn de sources van mijn HA utility meters tijdelijk weggevallen. Valt me op dat het geregistreerde verbruik van de utility meters nu ook een deel mist vergeleken met de kWh-meters. Dit is wel een serieuze beperking van het gebruik van utility meters, ik had gehoopt dat hij weer op zou pakken met historisch verbruik zodra de source beschikbaar was. Heb jij hier toevallig al over na gedacht?
Ja top, die property heb ik over het hoofd gezien! Dank je wel!Pejdref schreef op vrijdag 6 december 2024 @ 20:48:
[...]
Nee want ik heb geen kWh meters, dus bij mij zijn de waardes dan niet meer te achterhalen.
Maar in jouw geval moet je "Periodically resetting" uitzetten in de Utility Meter als ik het goed heb.
1
2
3
4
5
6
7
| # Panasonic heat pump energy production hourly panasonic_heat_pump_energy_produced_hourly: unique_id: "panasonic_heat_pump_energy_produced_hourly" name: "Aquarea energy produced hourly" source: sensor.aquarea_total_energy_produced_calculated periodically_resetting: false cycle: hourly |
[ Voor 50% gewijzigd door nMad op 06-12-2024 22:08 ]
PV: 10,4 kWp | EV: Tesla M3 LR ‘19 | L/W WP: Panasonic WH-MDC07J3E5 + PAW-TD20C1E5 | L/L WP: Daikin FVXM35A/RXM35R + Daikin FTXM25R/RXM25R + MHI 2x SRK25ZS-WF/SCM40ZS-W
Je moet natuurlijk ook even kijken of de BUH 3, 6 of 9kW is (T-caps) en Riemann zou zich omdraaien in zijn graf als je hem hiervoor zou wakker maken. Je meet natuurlijk gewoon de tijd dat hij aanstaat en vermenigvuldigt dat met het vermogen.Pejdref schreef op woensdag 4 december 2024 @ 15:57:
@ErikVers @nMad
Als je het BUH verbruik wil benaderen kun je een template sensor maken op basis van de aan/uit status.
YAML:
1 {{(3000 if states('binary_sensor.panasonic_heat_pump_main_internal_heater_state')=='on' else 0)}}
Deze geeft 3000W als de internal heater aan staat, anders 0. Het is een benadering omdat het vermogen niet exact 3000W is. Je kunt hier vervolgens een integral helper (linker Riemann) op loslaten om het totaal verbruik te registreren. Als je ook nog dagelijks/maandelijks of noem het maar wil kun je daar dan weer Utility meters op koppelen.
De Riemann methode van integreren is simpel de helft van het eerste en de helft van het laatste en verder alle tussenliggende samples bij elkaar optellen.nMad schreef op woensdag 4 december 2024 @ 16:05:
[...]
Interessant! Die Riemann Sum zou ik ook kunnen toepassen op mijn Power produced (W) sensor om daarmee de Energy produced (kWh) bij te houden.
Nu gebruik ik nog de Panasonic power produced sensor voor alle periodieke COP calculaties. Zal eerst eens testen hoe groot de verschillen zijn tussen de twee, wellicht is de Panasonic sensor wel nauwkeurig.
Ik shift nu de stooklijn automagisch met een automation tussen -5 en +1, op basis van de ruimte temperatuur en een set temperatuur.Tinkerer84 schreef op zondag 3 november 2024 @ 17:59:
Heeft iemand al een eenvoudige automation gemaakt om de target temperature te shiften op basis van dynamische tarieven?
ID.4 1st | 2320 Wp NO | 3200 Wp ZW | Climarad Sensa V2X | Pana WH-MDC07J3E5
T-Caps had ik inderdaad niet aan gedacht, Riemann vind het niet erg denk ik, in principe doet die ook gewoon de tijd vermenigvuldigen met het vermogen. Ik zie ook geen andere eenvoudige manier om het in HA te implementeren, hoe zou jij dat doen?FransvWoerkom schreef op vrijdag 6 december 2024 @ 23:03:
[...]
Je moet natuurlijk ook even kijken of de BUH 3, 6 of 9kW is (T-caps) en Riemann zou zich omdraaien in zijn graf als je hem hiervoor zou wakker maken. Je meet natuurlijk gewoon de tijd dat hij aanstaat en vermenigvuldigt dat met het vermogen.
Die volg ik niet, maar dat klinkt meer als de trapezoidal rule. Door de manier waarop HA sensoren update geeft in 9 v/d 10 gevallen enkel de Linker Riemann methode zinnige resultaten.FransvWoerkom schreef op vrijdag 6 december 2024 @ 23:10:
[...]
De Riemann methode van integreren is simpel de helft van het eerste en de helft van het laatste en verder alle tussenliggende samples bij elkaar optellen.
Wat pas je dan aan, direct de target temp of de heat curve target temp? Zou je de automation kunnen delen?Lollercopter schreef op zaterdag 7 december 2024 @ 00:32:
[...]
Ik shift nu de stooklijn automagisch met een automation tussen -5 en +1, op basis van de ruimte temperatuur en een set temperatuur.
Uiteindelijk kan ik de dynamische tarieven uitlezen en dan de gewenste ruimte temperatuur met een andere simpele automation een zetje geven.
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
De kamertemperatuur wordt alleen aan de pana en dus aan de heishamon doorgegeven door de controller of door een room sensor. De externe kamerthermostaat, van panasonic, siemens of een ander merk, geeft geen temperatuur aan de pana door, alleen een aan-uit signaal.hemertje schreef op zondag 8 december 2024 @ 11:37:
Wat is TOP33 Room_Thermostat_Temp in Heishamon eigenlijk?
De controller temperatuur of de externe Panasonic kamerthermostaat temperatuur?
[ Voor 8% gewijzigd door Diedo70 op 15-01-2025 14:55 ]
Pff dat is alweer een tijd geleden. Ik zou even de pijn pakken en kamaradklimber installeren. Dubbele entitie's achteraf verwijderen en dan de nieuwe hernoemen door de _2 weg te halen. Vanaf dan heb je er geen omkijken meer naar en komen eventuele nieuwe sensors er gewoon bij.Diedo70 schreef op woensdag 15 januari 2025 @ 14:46:
Ik heb op dit moment de Heishamon draaien in home assistant dmv een heishamon.yaml file in de config/packages folder.
De versie die ik draai is nog 1.4.0 (18-09-2022).
Ik krijg repair meldingen dat bepaalde MQTT functies mbt de heishamon niet meer ondersteund worden per versie 2025.2.0.
Nu zou ik wel over willen gaan op de HACS Heishamon integratie, zodat eea wat makkelijker up to date blijft, maar ik vrees dat als ik nu 'zomaar' overschakel op de HACS integratie dat er wat foutmeldingen komen en of allerelei entities nieuw/dubbel worden aangemaakt en ik dat weer moet uitzoeken/koppelen
Op het moment heb ik eigenlijk niet de headspace om daar in te duiken, dus laat ik het al een lange zoals het is, want 'if it ain't broken, don't fix it'.
Heeft iemand eerder deze overstap gemaakt, en hoe ging dat?
Op zich heb ik de heishamon.yaml file nooit gewijzigd, en zijn eventuele extra sensors etc in de gewone configuration.yaml aangemaakt.
Of is de makkelijkste weg gewoon de meest recente heishamon.yaml van https://github.com/Egyras...0Assistant/heishamon.yaml pakken, en that's it?
enphase 8300wp (3460 ZO, 2740 ZW, 2100 NO), 2x20 vacuümbuizen op 300l SWW, Panasonic WH-MXC12J9E8, gasloos sinds Juni 2022 Stromer st3 voor woon-werk
Hoe en waar zet ik die yaml code? Sorry ben nog niet zo handig met HA.Pejdref schreef op woensdag 4 december 2024 @ 15:57:
@ErikVers @nMad
Als je het BUH verbruik wil benaderen kun je een template sensor maken op basis van de aan/uit status.
YAML:
1 {{(3000 if states('binary_sensor.panasonic_heat_pump_main_internal_heater_state')=='on' else 0)}}
Deze geeft 3000W als de internal heater aan staat, anders 0. Het is een benadering omdat het vermogen niet exact 3000W is. Je kunt hier vervolgens een integral helper (linker Riemann) op loslaten om het totaal verbruik te registreren. Als je ook nog dagelijks/maandelijks of noem het maar wil kun je daar dan weer Utility meters op koppelen.
welke sturing / regeling gebruik je hiervoor?denneappel schreef op donderdag 30 januari 2025 @ 13:56:
Er komt weer een defrost ochtendje aan volgens de KNMI api... Home Assistant heeft vandaag de radiator ventilatoren uitgezet en is de Ta rustig aan het opvoeren van 26 naar inmiddels 31 graden. De bedoeling is dat hij morgen de compressor rustig kan houden door de Ta te verlagen en daarmee hoop ik defrosts te voorkomen.
De inhoud van mijn CV is wel vrij fors en ik maak zowel gebruik van radiatoren als vloerverwarming. Door de radiator ventilatoren uit te zetten duurt het heel lang voordat het huis te ver opwarmt.
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| - trigger: - platform: state entity_id: - weather.knmi_home action: - service: weather.get_forecasts data: type: hourly target: entity_id: weather.knmi_home response_variable: hourly sensor: - name: Temperature forecast hour +1 unique_id: temperature_forecast_hour_1 state: "{{ hourly['weather.knmi_home'].forecast[1].temperature }}" unit_of_measurement: °C - name: Temperature forecast hour +2 unique_id: temperature_forecast_hour_2 state: "{{ hourly['weather.knmi_home'].forecast[2].temperature }}" ...... |
1
| {{ 34 + int(states('sensor.temperature_forecast_hour_18')) *-1 }} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
| alias: warmtepomp - boost between defrosts description: "" triggers: - trigger: state entity_id: - sensor.panasonic_heat_pump_main_main_target_temp for: hours: 0 minutes: 30 seconds: 0 - trigger: state entity_id: - switch.panasonic_heat_pump_main_defrosting_state to: "off" for: hours: 1 minutes: 30 seconds: 0 - trigger: numeric_state entity_id: - sensor.panasonic_heat_pump_main_outside_pipe_temp above: -2 - trigger: template value_template: >- {% if (as_timestamp(now()) | float - as_timestamp(states.number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp.last_changed) | float) > 1800 %} True {% endif %} alias: Last shift > 30 min ago conditions: - condition: numeric_state entity_id: sensor.panasonic_heat_pump_main_outside_temp above: 3 enabled: true - condition: state entity_id: switch.panasonic_heat_pump_main_defrosting_state state: "off" for: hours: 1 minutes: 30 seconds: 0 - condition: numeric_state entity_id: sensor.panasonic_heat_pump_main_outside_pipe_temp above: -2 - condition: template value_template: >- {% if (as_timestamp(now()) | float - as_timestamp(states.number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp.last_changed) | float) > 1800 %} True {% endif %} alias: Last shift > 30 min ago - condition: numeric_state entity_id: sensor.forecast_temperature_minimal_in_next_18_hours below: 3 - condition: numeric_state entity_id: sensor.panasonic_heat_pump_main_main_target_temp below: sensor.heatpump_defrost_max_ta_lift - condition: state entity_id: binary_sensor.aquarea_compressor_running state: "on" actions: - action: script.warmtepomp_shift_plus metadata: {} data: {} - action: notify.pushover metadata: {} data: message: Warmtepomp - boost between defrosts - if: - condition: numeric_state entity_id: sensor.woonkamer_lisa_temperature above: 20 then: - action: switch.turn_off metadata: {} data: {} target: entity_id: switch.heatfans mode: single |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
| alias: warmtepomp - voorkom defrosts verlaag Ta description: "" triggers: - trigger: numeric_state entity_id: - sensor.panasonic_heat_pump_main_outside_pipe_temp below: -2 - trigger: numeric_state entity_id: - sensor.panasonic_heat_pump_main_outside_pipe_temp below: -3 id: extra cold - trigger: template value_template: >- {% if (as_timestamp(now()) | float - as_timestamp(states.number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp.last_changed) | float) > 1800 %} True {% endif %} alias: Last shift > 30 min ago - trigger: numeric_state entity_id: - sensor.panasonic_heat_pump_main_outside_temp below: 3 - trigger: numeric_state entity_id: - sensor.panasonic_heat_pump_main_compressor_freq above: 25 conditions: - condition: numeric_state entity_id: sensor.panasonic_heat_pump_main_outside_pipe_temp below: -1 - condition: template value_template: >- {% if (as_timestamp(now()) | float - as_timestamp(states.number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp.last_changed) | float) > 1800 %} True {% endif %} alias: Last shift > 30 min ago - condition: numeric_state entity_id: sensor.panasonic_heat_pump_main_outside_temp below: 3 - condition: numeric_state entity_id: sensor.panasonic_heat_pump_main_compressor_freq above: 21 - condition: or conditions: - condition: numeric_state entity_id: sensor.panasonic_heat_pump_main_main_target_temp above: 26 - condition: numeric_state entity_id: sensor.forecast_temperature_max_in_next_12_h above: 4 actions: - action: script.warmtepomp_shift_min metadata: {} data: {} - delay: hours: 0 minutes: 0 seconds: 15 - action: script.warmtepomp_shift_min metadata: {} data: {} - action: notify.pushover metadata: {} data: message: Warmtepomp - ta verlagen om defrost te voorkomen - if: - condition: numeric_state entity_id: sensor.woonkamer_lisa_temperature above: 20 then: - action: switch.turn_off metadata: {} data: {} target: entity_id: switch.heatfans mode: single |
:strip_exif()/f/image/P17eGiJkG3cssebFOQKk4Xja.png?f=user_large)
1
2
| {% set deltaTemp = outletTemp - inletTemp %}
{% set powerProduced = flowRateSec * 4.184 * deltaTemp * 1000 %} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| {% if states("sensor.panasonic_heat_pump_main_compressor_freq") | int != 0 -%}
{% set flowRate = states('sensor.panasonic_heat_pump_main_pump_flow') | float(default=0) %}
{% set flowRateSec = flowRate / 60 %}
{% set outletTemp = states('sensor.panasonic_heat_pump_main_main_outlet_temp') | float(default=0) %}
{% set inletTemp = states('sensor.panasonic_heat_pump_main_main_inlet_temp') | float(default=0) %}
{% if inletTemp > outletTemp and is_state("switch.panasonic_heat_pump_main_defrosting_state", "on") %}
{% set deltaTemp = inletTemp - outletTemp %}
{% set powerProduced = flowRateSec * 4.184 * deltaTemp * 1000 %}
{{ '%0.0f' % powerProduced }}
{%- else -%}
{% set deltaTemp = outletTemp - inletTemp %}
{% set powerProduced = flowRateSec * 4.184 * deltaTemp * 1000 %}
{{ '%0.0f' % powerProduced }}
{%- endif %}
{%- else -%}
{% set powerProduced = 0 %}
{{ '%0.0f' % powerProduced }}
{%- endif %} |
Sarcasm is my superpower! What's yours?
:strip_exif()/f/image/mjkGzDFTjqWUknCDhhvz37hk.png?f=user_large)
Sarcasm is my superpower! What's yours?
Vraag me af waarom je dit zou willen veranderen. Thermisch gezien is dit gewoon verlies: er wordt warmte onttrokken aan je systeem die je eerst hebt opgewekt. Dat is precies het soort "fout" in de Pana-berekening die we eruit hebben gefilterd. Met die correctie krijg je namelijk resultaten die veel beter aansluiten bij de datasheets. Panasonic zelf rapporteert soms COP’s van 16 tijdens een defrost... dat is gewoon niet realistisch.Nnoitra schreef op vrijdag 4 april 2025 @ 14:59:
Ik gebruik al een tijdje de formule om het geproduceerde vermogen te berekenen.
Echter zie ik in de history dat ie tijdens een defrost dan (fors) in de min schiet terwijl de interne Pana berekening dat niet doet:
[Afbeelding]
Dit komt natuurlijk door het stukje:
code:
1 2{% set deltaTemp = outletTemp - inletTemp %} {% set powerProduced = flowRateSec * 4.184 * deltaTemp * 1000 %}
Want tijdens een defrost klimt de inletTemp boven de outletTemp en gaat ie de berekening in met een negatieve waarde.
Om dat tegen te gaan heb ik de berekening iets aangepast:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18{% if states("sensor.panasonic_heat_pump_main_compressor_freq") | int != 0 -%} {% set flowRate = states('sensor.panasonic_heat_pump_main_pump_flow') | float(default=0) %} {% set flowRateSec = flowRate / 60 %} {% set outletTemp = states('sensor.panasonic_heat_pump_main_main_outlet_temp') | float(default=0) %} {% set inletTemp = states('sensor.panasonic_heat_pump_main_main_inlet_temp') | float(default=0) %} {% if inletTemp > outletTemp and is_state("switch.panasonic_heat_pump_main_defrosting_state", "on") %} {% set deltaTemp = inletTemp - outletTemp %} {% set powerProduced = flowRateSec * 4.184 * deltaTemp * 1000 %} {{ '%0.0f' % powerProduced }} {%- else -%} {% set deltaTemp = outletTemp - inletTemp %} {% set powerProduced = flowRateSec * 4.184 * deltaTemp * 1000 %} {{ '%0.0f' % powerProduced }} {%- endif %} {%- else -%} {% set powerProduced = 0 %} {{ '%0.0f' % powerProduced }} {%- endif %}
Zodra de inletTemp hoger is dan de outletTemp en hij is aan het drefrosten, draai deze 2 dan om voor het berekenen van de deltaTemp.
Die piek naar beneden zou dan, net als bij de interne berekening, omhoog moeten gaan.
Nu nog weer ff wachten op een defrost
PV: Zuid 3.5kWp | Z-W 1.6kWp | Horizontaal (dunne film buis) 2kWp | totaal 7.15kWp | 5kW Panasonic H icm Heishamon | infrarood vloerverwarming | Label A in huis uit 1939
Dank voor je inzichtpgeene schreef op donderdag 10 april 2025 @ 10:48:
[...]
Vraag me af waarom je dit zou willen veranderen. Thermisch gezien is dit gewoon verlies: er wordt warmte onttrokken aan je systeem die je eerst hebt opgewekt. Dat is precies het soort "fout" in de Pana-berekening die we eruit hebben gefilterd. Met die correctie krijg je namelijk resultaten die veel beter aansluiten bij de datasheets. Panasonic zelf rapporteert soms COP’s van 16 tijdens een defrost... dat is gewoon niet realistisch.
Dat hij heel efficiënt warmte weet te onttrekken aan je warme water terwijl het buiten tegen het vriespunt zit – prima. Maar feit blijft dat het thermisch gezien verlies is. Door tijdens defrost negatieve waarden te tonen, trek je die onttrokken warmte netjes van het eerder opgewekte vermogen af. En zo hoort het ook.
Ik zou deze aanpak dus vooral aanhouden, en die interne berekening van Panasonic gewoon negeren – die rapporteert in mijn ogen vooral marketing-onzin.
Ik ben in elk geval erg blij met deze manier van berekenen. Die COP’s van >10 tijdens defrost vond ik altijd al erg vreemd. Net als het idee dat een defrost positief zou bijdragen aan je COP, terwijl je in werkelijkheid geen warmte levert aan je huis, maar juist energie verbruikt om je buitenunit te ontdooien.
Ik wil gewoon weten hoeveel energie het me heeft gekost om mijn huis te verwarmen – niet inclusief energie die nodig was voor een defrost.
Om het technisch te maken:
Beide methodes zijn wiskundig juist, maar contextueel verschillend:
Als je een energieboekhouding maakt om COP's over uren/dagen te beoordelen dan is een berekening met negatieve deltaT tijdens defrost beter. Dit is het zogenaamde Netto thermisch vermogen
Als je puur kijkt naar momentane “output” van het systeem zonder verliezen te corrigeren en niet geïnteresseerd in welke richting → dan is de omdraaiing van deltaT (zoals jij doet) nuttig. Dit is het zogenaamde Bruto thermisch vermogen
Sarcasm is my superpower! What's yours?
Maar dat is juist het punt. Geleverde energie is het niet. De energie die je eerst heb opgewekt om daarna te gebruiken voor een defrost is dus geen geleverde energie.Nnoitra schreef op donderdag 10 april 2025 @ 12:23:
[...]
Dank voor je inzicht![]()
Het is idd maar net hoe je tegen dingen aankijkt.
Voor mij is de COP van de WP heel simpel: (geleverde energie / verbruikte energie).
En als de WP energie moet leveren om een defrost te ondersteunen, dan is dat nou eenmaal zo
Daarom gaat ie ook pas rekenen als de compressorfrequentie > 0 is.
COP's van > 10 tijdens defrosts kan ik me zo niet herinneren.
Tijdens de defrosts van 6 april zat de Pana COP en berekende COP zo rond de 1.8 (op het moment dat de compressor draaide).
PV: Zuid 3.5kWp | Z-W 1.6kWp | Horizontaal (dunne film buis) 2kWp | totaal 7.15kWp | 5kW Panasonic H icm Heishamon | infrarood vloerverwarming | Label A in huis uit 1939
When using compensation curves method, one can add a nice card to represent the values using [ploty](Plotly Graph Card)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| type: vertical-stack
cards:
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: entities
entities:
- entity: number.panasonic_heat_pump_main_z1_heat_curve_outside_low_temp
name: "x_min: Outside temp lowest point"
- entity: number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp
name: "y_min: Target temp lowest point"
- type: horizontal-stack
cards:
- type: entities
entities:
- entity: number.panasonic_heat_pump_main_z1_heat_curve_outside_high_temp
name: "x_max: Outside temp highest point"
- entity: number.panasonic_heat_pump_main_z1_heat_curve_target_high_temp
name: "y_max: Target temp highest point"
- type: custom:plotly-graph
refresh_interval: 10
title: Heat curve
defaults:
entity:
show_value: true
line:
shape: spline
layout:
xaxis:
type: number
autorange: true
entities:
- entity: ''
name: Zone 2
x:
- >-
$ex
hass.states['number.panasonic_heat_pump_main_z2_heat_curve_outside_low_temp'].state
- >-
$ex
hass.states['number.panasonic_heat_pump_main_z2_heat_curve_outside_high_temp'].state
'y':
- >-
$ex
hass.states['number.panasonic_heat_pump_main_z2_heat_curve_target_high_temp'].state
- >-
$ex
hass.states['number.panasonic_heat_pump_main_z2_heat_curve_target_low_temp'].state
- entity: ''
name: Zone 1
x:
- >-
$ex
hass.states['number.panasonic_heat_pump_main_z1_heat_curve_outside_low_temp'].state
- >-
$ex
hass.states['number.panasonic_heat_pump_main_z1_heat_curve_outside_high_temp'].state
'y':
- >-
$ex
hass.states['number.panasonic_heat_pump_main_z1_heat_curve_target_high_temp'].state
- >-
$ex
hass.states['number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp'].state |
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Als je de custom integration installeert, heb je gewoon alles in HA staan.hemertje schreef op zondag 12 oktober 2025 @ 20:23:
ik heb Plotly Graph Card ook geinstallleerd via HACS inderdaad
ik zie dat men hier Nnoitra in "Heishamon <> Node Red voor Panasonic warmtepompen"
de Heishamon data in HA beschikbaar heeft in een grafiek
ik heb de Heishamon data beschikbaar in de MQTT Explorer, maar hoe krijg ik die daarnaast ook in HA beschikbaar ?
Sarcasm is my superpower! What's yours?
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Lees mijn post nog eens een keer goed
[ Voor 16% gewijzigd door Nnoitra op 15-10-2025 23:23 ]
Sarcasm is my superpower! What's yours?
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Gewoon die addon installeren waarvan ik de link heb geplaatst, niet meer, niets minder.hemertje schreef op woensdag 15 oktober 2025 @ 23:25:
sorry, heb geen flauw idee waar je naar hint...
Sarcasm is my superpower! What's yours?
[ Voor 11% gewijzigd door hemertje op 15-10-2025 23:47 ]
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Wat ik in dat andere topic al zei:hemertje schreef op woensdag 15 oktober 2025 @ 23:47:
heishamon-homeassistant heb ik geinstalleerd via HACS
maar hoe krijg ik nu de Heishamon waarden in een grafiek zichtbaar?
snap er werkelijk niks van...
Nnoitra schreef op donderdag 9 oktober 2025 @ 09:23:
[...]
History tab, entiteiten toevoegen, via 3puntjes menu rechtsboven de huidige view toevoegen aan een scherm.
Sarcasm is my superpower! What's yours?
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Ik ga niet alles voorkauwen, sowieso geen basis HA kennis. Lees je een beetje in in Home Assistent en leer. Daar heb je uiteindelijk veel meer aan.hemertje schreef op donderdag 16 oktober 2025 @ 12:44:
wanneer ik zoek op Setpoint of Water dan heb ik nul matches
schiet mij maar lek of denk ik nu totaal verkeerd?
[ Voor 5% gewijzigd door Nnoitra op 16-10-2025 13:30 ]
Sarcasm is my superpower! What's yours?
dank voor de headsupNnoitra schreef op donderdag 16 oktober 2025 @ 13:05:
[...]
Ik ga niet alles voorkauwen, sowieso geen basis HA kennis. Lees je een beetje in in Home Assistent en leer. Daar heb je uiteindelijk veel meer aan.
https://www.home-assistan...terminology/#integrations
https://www.home-assistan...uration/entities_domains/
En het voorbeeld van https://github.com/kamara...ant?tab=readme-ov-file#ui geeft ook al aan hoe de naamgeving in elkaar zit.
En dit topic staat ook vol met voorbeelden.
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Ik heb ook alles netjes nu zichtbaar in een dashboard:Samenvatting van je volledige Home Assistant-automatisering
1. Overzicht
Het systeem bestuurt een Panasonic-warmtepomp via Heishamon en bestaat
uit drie logische delen:
Automatie Functie Actie
HP Master — Turn ON Start de warmtepomp alleen als aan de weer-,
binnen- en rustvoorwaarden is voldaan Zet pomp aan en activeert
modulatie
HP Master — Turn OFF Stopt de warmtepomp veilig als het binnen warm
genoeg is Stop modulatie → cooldown → pomp uit
HP low power modulation (DIRECT mode) Houdt het vermogen minimaal
tijdens bedrijf Corrigeert setpoint iedere 20 s (retour + 4 °C /
aanvoer – 1 °C, min 25 °C)
________________________________
2. Turn ON-logica
Triggers:
Elke 15 minuten of bij wijziging van binnen-, buiten- of compressorwaarden.
Voorwaarden:
Binnen < 19 °C.
Buiten < 15 °C.
Compressor stil ≥ 3 uur.
Warmtepomp momenteel uit.
Acties:
input_boolean.hp_master_switch → aan.
Warmtepomp-schakelaar → aan.
Activeer en trigger modulatie-automation.
Doel: Alleen starten bij reële verwarmingsvraag en koude
buitentemperatuur, zonder setpoint-sprong.
________________________________
3. Modulatie-logica
Interval: elke 20 s.
Berekent:
start_set = max(retour + 4, 25) bij lage compressorfrequentie (< 5 Hz).
mod_set = max(aanvoer – 1, 25) bij hogere frequentie.
Publiceert deze setpoints via MQTT naar Panasonic / Heishamon.
Doel: compressor in laag vermogen houden en pendelen vermijden.
________________________________
4. Turn OFF-logica
Trigger: binnen > 20 °C gedurende 5 min.
Voorwaarde: pomp is aan.
Acties:
Modulatie-automation uitschakelen.
hp_master_switch uit.
Start hp_shutdown_cooldown (script houdt circulatiepomp ± 3 min actief).
Na 3 min 30 s → pomp-schakelaar uit.
Doel: gecontroleerde stop, voorkomen van thermische stress en over-pendelen.
________________________________
5. Samenvattend gedrag
Buiten < 15 °C + binnen < 19 °C + idle ≥ 3 h → warmtepomp aan.
Modulatie regelt elk setpoint, minimum 25 °C.
Binnen > 20 °C → na 5 min uit, inclusief cooldown.
Resultaat: stabiele, zelfregulerende warmtepompsturing met minimale
compressorbelasting en automatische start/stop op basis van
temperatuur en buitentemperatuur.
:strip_exif()/f/image/rdVEbun33ZAMSOVuur6zVdq9.jpg?f=fotoalbum_large)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| alias: HP low power modulation (DIRECT mode)
description: Retour+4 / Aanvoer−1; absolute setpoints via MQTT; zonder weerlogica
triggers:
- trigger: time_pattern
seconds: /30
conditions: []
actions:
- variables:
freq: "{{ states('sensor.panasonic_heat_pump_main_compressor_freq')|float(0) }}"
t_sup: >-
{{ states('sensor.panasonic_heat_pump_main_main_outlet_temp')|float(0)
}}
t_ret: "{{ states('sensor.panasonic_heat_pump_main_main_inlet_temp')|float(0) }}"
cur_target: >-
{{ states('sensor.panasonic_heat_pump_main_main_target_temp')|float(0)
}}
min_set: 25
start_set_raw: "{{ (t_ret + 4) | float }}"
mod_set_raw: "{{ (t_sup - 1) | float }}"
start_set: "{{ [start_set_raw, min_set] | max | round(1) }}"
mod_set: "{{ [mod_set_raw, min_set] | max | round(1) }}"
- choose:
- conditions:
- condition: template
value_template: "{{ freq < 5 and (start_set - cur_target) | abs >= 0.2 }}"
sequence:
- action: mqtt.publish
data:
topic: panasonic_heat_pump/commands/SetZ1HeatRequestTemperature
payload: "{{ start_set }}"
qos: 0
retain: false
- delay: "00:00:01"
- action: mqtt.publish
data:
topic: heishamon/commands/SetZ1HeatRequestTemperature
payload: "{{ start_set }}"
qos: 0
retain: false
- conditions:
- condition: template
value_template: "{{ freq >= 5 and (mod_set - cur_target) | abs >= 0.2 }}"
sequence:
- action: mqtt.publish
data:
topic: panasonic_heat_pump/commands/SetZ1HeatRequestTemperature
payload: "{{ mod_set }}"
qos: 0
retain: false
- delay: "00:00:01"
- action: mqtt.publish
data:
topic: heishamon/commands/SetZ1HeatRequestTemperature
payload: "{{ mod_set }}"
qos: 0
retain: false
mode: single |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| alias: HP Master — Turn ON
description: ""
triggers:
- trigger: time_pattern
minutes: /15
- trigger: state
entity_id: sensor.indoor_temperature_temperature
- trigger: state
entity_id: sensor.panasonic_heat_pump_main_compressor_freq
- trigger: state
entity_id: sensor.panasonic_heat_pump_main_outside_temp
conditions:
- condition: numeric_state
entity_id: sensor.indoor_temperature_temperature
below: 19
- condition: numeric_state
entity_id: sensor.panasonic_heat_pump_main_outside_temp
below: 15
- condition: state
entity_id: binary_sensor.hp_idle
state: "on"
for: "03:00:00"
- condition: state
entity_id: switch.panasonic_heat_pump_main_heatpump_state
state: "off"
actions:
- action: input_boolean.turn_on
target:
entity_id: input_boolean.hp_master_switch
- action: switch.turn_on
target:
entity_id: switch.panasonic_heat_pump_main_heatpump_state
- action: automation.turn_on
target:
entity_id: automation.hp_low_power_modulation
- action: automation.trigger
target:
entity_id: automation.hp_low_power_modulation
mode: single |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| alias: HP Master — Turn OFF
description: ""
triggers:
- entity_id: sensor.indoor_temperature_temperature
above: 20
for: "00:05:00"
trigger: numeric_state
conditions:
- condition: state
entity_id: switch.panasonic_heat_pump_main_heatpump_state
state: "on"
actions:
- action: automation.turn_off
target:
entity_id: automation.hp_low_power_modulation
- action: input_boolean.turn_off
target:
entity_id: input_boolean.hp_master_switch
- action: script.turn_on
target:
entity_id: script.hp_shutdown_cooldown
- delay: "00:03:30"
- action: switch.turn_off
target:
entity_id: switch.panasonic_heat_pump_main_heatpump_state
mode: single |
Apple iPhone 17 LG OLED evo G5 Google Pixel 10 Samsung Galaxy S25 Star Wars: Outlaws Nintendo Switch 2 Apple AirPods Pro (2e generatie) Sony PlayStation 5 Pro
Tweakers is onderdeel van
DPG Media B.V.
Alle rechten voorbehouden - Auteursrecht © 1998 - 2025
•
Hosting door TrueFullstaq