@
hemertje @
bbbrumbrum Dit leek me het beste topic om te reageren. Jullie vroegen naar de logica om te voorkomen dat de Panasonic te lang draait zonder compressor. Panasonic noemt dit in de manual de 'thermo off' status, dus ik noem dat ook zo.
Let wel, ik weet niet of dit een goede oplossing is, maar vooralsnog lijkt het te werken. Ik kan mijn volledige logica niet delen omdat dit een beetje een gedrocht is geworden die niet meer uit te leggen is. Staat nog op mijn to do lijst om dit beter te maken. Beschouw dit dus als een opzetje en geen volledige oplossing. Wat eigen inzicht is dus wel nodig en het is verder ook op eigen risico, het is geen copy-paste oplossing.
Ik heb een 7kW J-series + heishamon die ik via HA met de heishamon integratie aanstuur
https://github.com/kamaradclimber/heishamon-homeassistant
De Panasonic is ingesteld op directe temperatuur, omdat ik de stooklijn logica ook in Home Assistant draai. Als jouw WAR op de Panasonic draait moet je met shift commando's de temperatuur sturen, hier heb ik zelf geen ervaring mee maar aan de logica om te bepalen wanneer er iets moet gebeuren verandert niet denk ik.
Ik werk graag met template boolean helpers (status aan/uit) om statussen te bepalen. Voor deze automation gebruik ik de volgende helpers:
Heating_now_running
YAML:
1
| {{states('sensor.panasonic_heat_pump_main_compressor_freq')|float(0) >= 5 and states('sensor.panasonic_heat_pump_main_threeway_valve_state')=="Room"}} |
Om te bepalen of de verwarming actief is met de compressor aan, je zou eventueel de defrost state nog mee kunnen nemen in de vergelijking, ik doe dat pas in de automation zelf. Let op dat deze status soms heel even fout positief kan zijn (bijvoorbeeld na een DHW run). In mijn automations houd ik daar rekening mee door pas te triggeren als deze 1 minuut de status 'aan' heeft.
Na het typen van de rest van deze reactie realiseer ik me dat ik deze Helper niet gebruik in deze automation maar ik laat hem toch even staan.
Heating_thermo_off
YAML:
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"}} |
Om te bepalen of de verwarming actief is maar de compressor uit. Ook hiervoor geldt dat deze soms heel even fout positief kan zijn. Ook is deze positief als de heat modus wordt ingeschakeld, de pomp gaat dan altijd eerst 3 minuten draaien voordat de Panasonic besluit of de compressor aanmoet.
temperature_goal_reached
YAML:
1
| {{states('sensor.inside_temperature_link')|float(25)>=state_attr('climate.heating_thermostat', 'temperature')|float(25)}} |
Om te bepalen of de ruimte temperatuur bereikt is (groter of gelijk dan de ingestelde temperatuur op de thermostaat).
Hiermee maak ik de volgende automation:
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
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 |
De automation is wat uitgekleed omdat ik een hoop logica in 1 automation heb zitten dus ik heb deze niet getest, maar het idee moet duidelijk zijn.
Deze triggert dus als de thermo off 5 minuten, 10 minuten, 15 minuten en 20 minuten actief is. Dat kan vast mooier maar dit werkt.
De watertemp wordt alleen verhoogd als:
Defrost niet actief is.
Max watertemp nog niet bereikt is (die bepaal je zelf, in mijn geval de hoogste waarde van de stooklijn).
De gewenste ruimtetemperatuur nog niet bereikt is.
Bij de 20 minuten trigger heb ik normaal ook nog logica die de warmtepomp uitschakelt indien de ruimte op temperatuur is zodat de pomp niet onnodig lang blijft lopen. De warmtepomp wordt dan weer aangezet door de thermostaat.
Als deze automation ervoor zorgt dat de target temperatuur hoger dan de stooklijn wordt heb ik weer andere logica die de target temperatuur na een tijdje weer verlaagt (alleen als dit niet zorgt dat de compressor weer uitgaat).