Ik heb eerder gepost dat ik bezig ben met het aansturen van de Panasonic via Home Assistant. Kreeg er wat reacties/vragen over en vond vandaag ook dit topic. Hierbij deel ik even wat ik tot nu toe heb. Wie weet hebben anderen er iets aan. Verbeteringen zijn natuurlijk ook welkom 
- Het is allemaal lekker experimenteren op dit moment
- Het draait een maandje
- werkt bij mij goed
- gebruik wat notifications voor logging
- gebruik delays om het aantal shifts te beperken. Dat kan veel handiger.
Mijn doel voor nu:
- war stoken met stooklijn
- fysieke thermostaat in woonkamer (WAF + temperatuur bepalen)
- Zo lang mogelijke runs / niet pendelen
- Ik vind een precieze temperatuur minder belangrijk.
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)
Daarvoor gebruik ik 3 template/helper sensors en 3 automations:
- 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.
- triggered als de temperatuur in huis te laag is + deze niet voldoende stijgt + de compressor draait of deze > X uur uitstaat.
- Doet een shift +1 en zet eventueel de WP aan als deze uit staat.
2. Een shift -1
- triggered als de temperatuur in huis te hoog is + stijgt.
- Als de buiten temperatuur < 10ºc of de compressor < X uur draait dan shift deze alleen als de compressor niet dreigt uit te vallen.
3. WP uit bij compressor stop:
- zet de warmtepomp uit zodra de compressor stopt (Nu nog "main power" maar straks is dit de thermostaat input, CN2 uit mijn hoofd). Dit voorkomt dat de WP uit zichzelf weer start en gaat pendelen.
- Het is allemaal lekker experimenteren op dit moment
- Het draait een maandje
- werkt bij mij goed
- gebruik wat notifications voor logging
- gebruik delays om het aantal shifts te beperken. Dat kan veel handiger.
Mijn doel voor nu:
- war stoken met stooklijn
- fysieke thermostaat in woonkamer (WAF + temperatuur bepalen)
- Zo lang mogelijke runs / niet pendelen
- Ik vind een precieze temperatuur minder belangrijk.
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)
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.
automations
1. Een shift +1- triggered als de temperatuur in huis te laag is + deze niet voldoende stijgt + de compressor draait of deze > X uur uitstaat.
- Doet een shift +1 en zet eventueel de WP aan als deze uit staat.
YAML:
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 |
2. Een shift -1
- triggered als de temperatuur in huis te hoog is + stijgt.
- Als de buiten temperatuur < 10ºc of de compressor < X uur draait dan shift deze alleen als de compressor niet dreigt uit te vallen.
YAML:
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 |
3. WP uit bij compressor stop:
- zet de warmtepomp uit zodra de compressor stopt (Nu nog "main power" maar straks is dit de thermostaat input, CN2 uit mijn hoofd). Dit voorkomt dat de WP uit zichzelf weer start en gaat pendelen.
YAML:
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 |
/f/image/WNkJI5WABXM7XxCTDZsbp9zB.png?f=fotoalbum_large)
/f/image/STo6sMGmtlU8j0ZqgjB5WsbB.png?f=fotoalbum_large)
/f/image/ACWlPwZ3EVI4h07wBkRQNT8z.png?f=fotoalbum_large)
/f/image/9byoI8mNO5jlOMi9sAUF5knt.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)
:strip_exif()/f/image/AVxuQHQ4JMFB3meTMHz4wrmC.jpg?f=fotoalbum_large)
/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)
:strip_exif()/f/image/YGgKYqQWdf9SrHgHhZ9LLHio.jpg?f=fotoalbum_large)
/f/image/g2TA51mDjjYZOe89GLfXThvY.png?f=fotoalbum_large)
/f/image/pDWQfSAOQ19hX3y3AF3bWVcP.png?f=fotoalbum_large)
/f/image/yIK49CNJgb0x4X7s4fTUk6SS.png?f=fotoalbum_large)
: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)
:strip_exif()/f/image/P17eGiJkG3cssebFOQKk4Xja.png?f=user_large)
:strip_exif()/f/image/mjkGzDFTjqWUknCDhhvz37hk.png?f=user_large)
:strip_exif()/f/image/rdVEbun33ZAMSOVuur6zVdq9.jpg?f=fotoalbum_large)
:strip_exif()/f/image/8fnYvBUXedckPLrewDqqFPi8.jpg?f=fotoalbum_large)
:strip_exif()/f/image/wkQSdJHCiYaTSwlCjg2daxdb.jpg?f=fotoalbum_large)