Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Ja, want Lua vraagt veel te veel geheugen.blb4 schreef op vrijdag 15 maart 2024 @ 17:40:
@CurlyMo, houd dit in dat je maar gewoon vasthoud aan originele implementatie en dus geen LUA?
Sinds de 2 dagen regel reageer ik hier niet meer
Sinds de 2 dagen regel reageer ik hier niet meer
CurlyMo schreef op vrijdag 15 maart 2024 @ 15:49:
[...]
code:
1 2 3 4 5 6 7 # Nieuw rule #1 was prepared in 754 microseconds rule #1 bytecode was created in 831 microseconds bytecode: 24/24, heap: 16/16, stack: 4/4 bytes, varstack 20/24 bytes rule #1 was executed in 337 microseconds bytecode: 24/24, heap: 16/16, stack: 4/12, varstack 20/24 bytes Rule 01.1 / 353: [ if $a > $b then $a = 6; end ]
Nu tijd gevonden om het eens te testen:CurlyMo schreef op vrijdag 15 maart 2024 @ 21:57:
Zojuist nog weer 50microseconden gewonnen door de Labels as Values techniek
1
2
3
4
5
6
7
| Running from 1st heap rule #1 was prepared in 294 microseconds rule #1 bytecode was created in 442 microseconds bytecode: 24/24, heap: 16/16, stack: 4/4 bytes, varstack: 20/24 bytes rule #1 was executed in 139 microseconds bytecode: 24/24, heap: 16/16, stack: 4/12, varstack 20/24 bytes Rule 02.1 / 357: [ if $a > $b then $a = 6; end ] |
BAM

T.o.v. origineel:
1
| Snelheid: 139 / 791 microseconds |
Sinds de 2 dagen regel reageer ik hier niet meer
Klink goed maar ook als abracadabraCurlyMo schreef op dinsdag 19 maart 2024 @ 21:02:
[...]
[...]
Nu tijd gevonden om het eens te testen:
code:
1 2 3 4 5 6 7 Running from 1st heap rule #1 was prepared in 294 microseconds rule #1 bytecode was created in 442 microseconds bytecode: 24/24, heap: 16/16, stack: 4/4 bytes, varstack: 20/24 bytes rule #1 was executed in 139 microseconds bytecode: 24/24, heap: 16/16, stack: 4/12, varstack 20/24 bytes Rule 02.1 / 357: [ if $a > $b then $a = 6; end ]
BAM
T.o.v. origineel:
code:
1 Snelheid: 139 / 791 microseconds
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Via Heishamon en Domoticz kan ik als dat gebeurt een "SetReset=1" geven gevolgd door een "SetHeatpump=1", maar ik zou dat liever in een rule binnen de Heishamon hebben om geen afhankelijkheid te hebben van Domoticz en evt wifi issues.
Kan iemand me daar mee op weg helpen hoe dat er uit kan zien ?
Dus iets als :
if HeatPumpState = 1 and error = H20 then reset and power on
En dat dan in een loop elke 30 minuten of zo
[ Voor 4% gewijzigd door hannibal2206 op 22-03-2024 01:03 ]
15kW solar, 800 Ltr hygiëneboiler, 80 Heatpipes, 2 * L/L, Pana monoblock 5F en 5J, HR++/+++ , gasloos sinds Feb 2015
Lokaal getest met mijn eigen rulesets en de rules die ik van @blb4 in de github issues kon vinden.
Op basis van mijn eigen volledige ruleset. Totaal geheugengebruik:
Oud: 11480 bytes
Nieuw: 7068 bytes
[ Voor 21% gewijzigd door CurlyMo op 04-04-2024 22:20 ]
Sinds de 2 dagen regel reageer ik hier niet meer
Klinkt goed! Heb je een link naar een binary die we kunnen laden?CurlyMo schreef op donderdag 4 april 2024 @ 22:15:
Daar is die: https://github.com/CurlyM...abbf12c739c3ffd62464eb74f
Lokaal getest met mijn eigen rulesets en de rules die ik van @blb4 in de github issues kon vinden.
Op basis van mijn eigen volledige ruleset. Totaal geheugengebruik:
Oud: 11480 bytes
Nieuw: 7068 bytes
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Die staan in de github actions van mijn repo, maar het enige wat die dan doet is de unittests draaien. Ik denk niet dat je daar wat aan hebt.blb4 schreef op donderdag 4 april 2024 @ 22:25:
[...]
Klinkt goed! Heb je een link naar een binary die we kunnen laden?
Sinds de 2 dagen regel reageer ik hier niet meer
oké! Dan wachten we nog evenCurlyMo schreef op donderdag 4 april 2024 @ 22:27:
[...]
Die staan in de github actions van mijn repo, maar het enige wat die dan doet is de unittests draaien. Ik denk niet dat je daar wat aan hebt.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
https://github.com/IgorYbema/HeishaMon/pull/121 laatste commit.
Sinds de 2 dagen regel reageer ik hier niet meer
Top, ik heb 'm er op gezet en meteen geweldig resultaat, bijna een halvering van 't geheugengebruik:CurlyMo schreef op vrijdag 5 april 2024 @ 22:36:
[...]
https://github.com/IgorYbema/HeishaMon/pull/121 laatste commit.
rules memory used: 7452 / 16384
Hiervoor was 't met dezelfde ruleset: rules memory used: 14304 / 16384
Dank!!!!!!
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Waar ik ook wel benieuwd naar ben zijn de prestatieverschillen. Dus de uitvoersnelheden van de vorige en de huidige versie.blb4 schreef op vrijdag 5 april 2024 @ 22:59:
[...]
Top, ik heb 'm er op gezet en meteen geweldig resultaat, bijna een halvering van 't geheugengebruik:
rules memory used: 7452 / 16384
Hiervoor was 't met dezelfde ruleset: rules memory used: 14304 / 16384
Dank!!!!!!
Overigens is die halvering ook niet helemaal terecht, omdat hij nu delen in een ander geheugengebied opslaat.
bytecode: 272/272, heap: 52/52, stack: 4/16, varstack 596/888 bytes
Je moet sowieso nog even de varstack omvang erbij optellen. Dan is er nog wat klein geheugengebruik, maar dat is niet zo groot.
[ Voor 27% gewijzigd door CurlyMo op 05-04-2024 23:21 ]
Sinds de 2 dagen regel reageer ik hier niet meer
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Tijd om te debuggen in de PRblb4 schreef op zaterdag 6 april 2024 @ 01:33:
mmm, hij draait helaas niet stabiel, erg veel restarts.
Sinds de 2 dagen regel reageer ik hier niet meer
1
2
3
4
| if 1 == 1 then $a = 1; print('Waarde van $a: ', $a); end |
Maar later moet het mogelijk worden om de stooklijn via de rules aan te passen. Daar is vaker om gevraagd, maar daar was string ondersteuning voor nodig.
1
2
3
| if 1 == 1 then @SetCurves = concat('{"zone1":{"heat":{"target":"high":', @Z1_Heat_Curve_Target_High_Temp, ',"low":', @Z1_Heat_Curve_Target_Low_Temp, '}}}}'); end |
Sinds de 2 dagen regel reageer ik hier niet meer
Heishamon heeft OT en S0 enabled, geen temperatuursensoren.
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
| on System#Boot then setTimer(1, 1); #minFreq = 19; end on timer=1 then setTimer(1, 20); calcMinFreq(); setPumpDuty(); end on calcMinFreq then if @Compressor_Freq > 0 then $freq = @Compressor_Freq; #minFreq = (#minFreq - 19) * 0.93 + 19; #minFreq = floor(#minFreq); if #minFreq == @Compressor_Freq then #minFreq = #minFreq - 1; end if @Compressor_Freq > #minFreq + 5 then #minFreq = @Compressor_Freq - 5; end #minFreq = max(#minFreq, 19); else #minFreq = 19; end end on setPumpDuty then $target = 4; if @Operating_Mode_State == 1 then $mode = -1; else $mode = 1; end $delta = (@Main_Outlet_Temp - @Main_Inlet_Temp) * $mode - $target; $duty = @Max_Pump_Duty + round($delta); $duty = min(max($duty, 90), 140); @SetMaxPumpDuty = $duty; end on @compressor_freq then ?flameState = @compressor_freq > 0; end on @Outside_Temp then ?outsideTemp = @Outside_Temp; end |
Een ander ding is, als ik het volgende stukje (regel 20 hierboven):
1
2
3
| if @Compressor_Freq > #minFreq + 5 then #minFreq = @Compressor_Freq - 5; end |
vervang door:
1
| #minFreq = max((@Compressor_Freq - 5), #minFreq); |
Dan wordt dat afgewezen? Ik zie de fout niet...
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
@CurlyMo Bovenstaande gezegd hebbende, ik neem aan dat V3.5 ook geschikt is voor de ESP8266?
https://github.com/IgorYb.../binaries/mode-type-small
[ Voor 42% gewijzigd door Roeland op 07-06-2024 11:08 ]
Iemand die me op weg kan helpen ?hannibal2206 schreef op donderdag 21 maart 2024 @ 22:24:
Ik heb een 5H die incidenteel een H20 error geeft, vanaf het begin (2018)
Via Heishamon en Domoticz kan ik als dat gebeurt een "SetReset=1" geven gevolgd door een "SetHeatpump=1", maar ik zou dat liever in een rule binnen de Heishamon hebben om geen afhankelijkheid te hebben van Domoticz en evt wifi issues.
Kan iemand me daar mee op weg helpen hoe dat er uit kan zien ?
Dus iets als :
if HeatPumpState = 1 and error = H20 then reset and power on
En dat dan in een loop elke 30 minuten of zo
15kW solar, 800 Ltr hygiëneboiler, 80 Heatpipes, 2 * L/L, Pana monoblock 5F en 5J, HR++/+++ , gasloos sinds Feb 2015
Heb je de handleiding en voorbeelden hier als een bekeken voor de syntax en mogelijkheden?
Sinds de 2 dagen regel reageer ik hier niet meer
Ik wil graag firmware v3.5 proberen.
Kan ik kijk op de github van IgorYbema
https://github.com/IgorYbema/HeishaMon/tree/main/binaries
Welke model moet ik nu hebben?
Het is mij niet echt duidelijk a.d.h.v. de readme.
Ik heb nog gewoon de 'oude' 3.0 of 3.1 pcb in dat witte vierkante kastje.
Alvast bedankt
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
@edterbakedterbak schreef op dinsdag 18 juni 2024 @ 22:32:
Hoi,
Ik wil graag firmware v3.5 proberen.
Kan ik kijk op de github van IgorYbema
https://github.com/IgorYbema/HeishaMon/tree/main/binaries
Welke model moet ik nu hebben?
Het is mij niet echt duidelijk a.d.h.v. de readme.
Ik heb nog gewoon de 'oude' 3.0 of 3.1 pcb in dat witte vierkante kastje.
Alvast bedankt
Voor het oude model moet mode-type-small hebben (bij jouw oudere/kleine model)
HeishaMon.ino.d1-v3.5.bin
Voor het nieuwe model mode-type-large gebaseerd op esp32
Ik probeerde vandaag de firmware v3.5 (small) te flashen. Deze gaf een foutmelding (failed iets met de FS.)
HeishaMon.ino.d1-v3.5.bin
Kun je voor mij alsjeblieft de md5 checksum ook uploaden in de binary folder?
Pro memory.. : Je gaf vorige week aan de github van Egyras ook te updaten met v3.5 fw.
Groetjes.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
@thehogedterbak schreef op woensdag 19 juni 2024 @ 22:25:
@thehog
Ik probeerde vandaag de firmware v3.5 (small) te flashen. Deze gaf een foutmelding (failed iets met de FS.)
HeishaMon.ino.d1-v3.5.bin
Kun je voor mij alsjeblieft de md5 checksum ook uploaden in de binary folder?
Pro memory.. : Je gaf vorige week aan de github van Egyras ook te updaten met v3.5 fw.
Groetjes.
Is mijn verwachting dat https://github.com/Egyras/HeishaMon 'spoedig' geupldate zal worden met v3.5 onjuist? Misschien kun je mijn verwachting hierin bijsturen
Ik kan overigens niet een 'issue' in github aanmaken voor het ontbreken van de MD5 file van v3.5 op https://github.com/IgorYbema/HeishaMon (Toch?)
Gr.
Edit: nu zelf de volgende ruleset geknutseld - zou dit werken?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| on @Outside_Temp then if @Holiday_Mode_State == 2 then if @Outside_Temp < 5 then if @Operating_Mode_State != 4 then @Operating_Mode_State = 4; end end if @Outside_Temp >= 5 then if @Operating_Mode_State != 3 then @Operating_Mode_State = 3; end end end end |
[ Voor 63% gewijzigd door Joost op 04-07-2024 19:28 ]
Ik ben helemaal geen stagiair
Deze problemen zijn allemaal zo'n beetje verdwenen met de EPS32 gebaseerde HeishaMon Large met Firmware 3.8.
Ik zat de laatste tijd nog wat te klooien met de TaShift functie maar die draait nu ook stabiel. Daarom maar weer eens tijd om mijn rules set te plaatsen. Ter lering & vermaak, gebruik (van delen of geheel) op eigen risico!
Functionaliteit:
TaShift: Aanpassen TaTarget t.b.v. 1) Softstart functie (Hz zo snel mogelijk naar beneden, 2) Kamertemperatuurdelta en 3) wens om compressor minimaal 1 uur te laten draaien.
OpenThermThermostat: AAN/UIT schakelen WP (@SetHeatpump 1/0) op basis van vraag Thermostaat
DHW: standaard DHW productie begin van de middag en legionellarun op zaterdag. Als DHW temperatuur te ver gezakt is wordt DHW run ook op andere tijdstippen gestart maar dan liefts nog wel na 10:00u. Als op vrijdag DHW wordt geproduceerd dan ook maar de Legionellarun op vrijdag, die hoeft dan niet meer op zaterdag.
PumpDuty: De pompsnelheid wordt laag gehouden om stromingsgeluiden te voorkomen. Omdat ik met (gedeeltelijke) naregeling werk varieert de stromingsweerstand van mijn installatie waarop de pompsnelheid wordt aangepast. Hierbij wordt de minimale flow om E62 error te voorkomen in acht genomen.
Quietmode: QM 0 tot 3 worden ingesteld voor minder geluid 's nachts en ook om hoge Hz bij opstarten tegen te gaan. Tijdens DHW productie overdag worden de remmen iets los gelaten om makkelijker het hoge temperaturen te produceren.
SyncOT: Geselecteerde parameters van de WP wordt via OpenTherm protocol doorgegeven aan OpenTherm Gateway en Thermostaat. chEnable wordt, omdat deze parameter van Evohome wat onbetrouwbaar is met wat safeguards omgezet in #chEnable en roomtempdifference (verschil tussen gewenste en gemeten kamertemperatuur) wordt uitgelezen. Deze waarde komt in mijn geval via Home Assistant via de OpenTherm Integratie/Gateway middels parameter ?roomTempSet omdat Evohome deze waarde niet doorgeeft (is natuurlijk ook lastig bij een zonesysteem).
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
| on System#Boot then print('BLB Heishamon_rules20241123.txt'); print('my environment: Panasonic WH-MDC07J3E5 HeishaMon Large with CZ-TAW1 on proxy port Honeywell Evohome Opentherm Thermostat (R8810 bridge) connected via OpenTherm Gateway.'); print('Honeywell Evohome & OpenTherm Gateway integration in Home Assistant to communicate RoomTemperatureDelta to HeishaMon rules as chSetpoint from Evohome is not reliable. Settings Heat Pump:'); print('Operating_Mode_State: 0, Heating_Mode: 0, Cooling_Mode: 1, Buffer_Installed: 0, DHW_Installed: 1, Pump_Flowrate_Mode: 0, Optional_PCB: 0, Z1_Sensor_Settings: 0'); #allowDHW = 1; #allowOTT = 1; #allowTaShift= 1; #allowPumpDuty = 1; #allowQuietMode = 1; #allowSynchHP = 1; #allowSyncOT = 1; #chEnable = -1; #chEnableOffTime = -1; #chEnableTimeOff = -1; #CompFreqTarget = -1; #CompRunTime = -1; #CompRunSec = -1; #CompState = -1; #CompStateChangeTime = -1; #Debug = 1; #DHWRun = -1; #FirstBoot = 1; #Heat = -1; #HPStateP = -1; #HPStateR = -1; #LegionellaRunDay = 7; #MaxPumpDuty = -1; #MaxPumpFlow = -1; #OMP = -1; #OMR = -1; #QMR = -1; #RemoteOverRide = -1; #RoomTempDelta = -1; #RoomTempSet = -1; #SHifT = -1; #Time = -1; #WarCor = -1; setTimer(1,60); setTimer(2,10); end on TaShift then #allowTaShift = #allowTaShift + 1; if #allowTaShift > 20 then #allowTaShift = 2; end if (#CompRunTime < 15 || #allowTaShift == 2) && #DHWRun < 1 && @ThreeWay_Valve_State == 0 then if #Debug > 10 then $com = 'basic conditions for TaShift fullfilled'; end #SHifT = @Z1_Heat_Request_Temp; if #CompState > 0 then if #Debug > 1 || #RemoteOverRide > 0 then print('TaShift if Compressor is running'); end TaShift2(); else $StopTime = -2 * @Outside_Temp - 30; if #CompState == 0 && #CompRunTime > $StopTime && #CompRunTime < 2 then if #Debug > 10 then $com = 'if compressor is off for a relative short time (depending on outside temperature) SHifT to -5 to avoid short cycle'; end #SHifT = -5; else if #Debug > 10 then $com = 'SHifT back to 0 when compressor is off and $StopTime is over '; end #SHifT = 0; end end if (%hour > 22 || %hour < 7) && @Outside_Temp < 3 && #SHifT > -3 && (@Main_Outlet_Temp - @Z1_Water_Target_Temp) < 0.5 && #CompState > 0 then if #Debug > 10 then $com = 'Between 23h and 7h SHifT -1 to switch off compressor a bit earlier'; end #SHifT = -1 + #SHifT; end if #Debug > 10 then $com = 'shift Z1HRT if required but not outside the range -5 to +5'; end #SHifT = min(max(#SHifT, -5), 5); if #SHifT != @Z1_Heat_Request_Temp && #RemoteOverRide < 1 then @SetZ1HeatRequestTemperature = #SHifT; end end end on TaShift2 then $WarTemp = @Z1_Water_Target_Temp - @Z1_Heat_Request_Temp; if #CompRunSec < 180 && #CompState == 1 then #SHifT = ceil(@Main_Outlet_Temp - 4) - ($WarTemp); if @Defrosting_State > 0 then #SHifT = #SHifT - 2; end $a = '1, CRS < 180'; elseif #CompRunTime < (30 - @Outside_Temp) then #SHifT = ceil(@Main_Outlet_Temp - 1.8) - ($WarTemp); $a = concat('2, CRT < ', (30 - @Outside_Temp)); #WarCor = #SHifT; elseif #RoomTempDelta > -0.3 && #RoomTempDelta < 0.3 then $a = '3 (room temp ok )'; elseif #RoomTempDelta < 0 then #SHifT = ceil(@Main_Outlet_Temp - round(#RoomTempDelta * -3)) - $WarTemp + #WarCor; $a = '4 (room temp to low)'; else #SHifT = ceil(@Main_Outlet_Temp - round(#RoomTempDelta * -3)) - $WarTemp + #WarCor; $a = '5 (room temp to hot, CF)'; if (@Main_Outlet_Temp - @Z1_Water_Target_Temp - #SHifT) > 1.8 then #SHifT = ceil(@Main_Outlet_Temp - 1.8) - $WarTemp; $a = '6 (room temp to hot, limit #SHifT)'; end end if #Debug > 0 || #RemoteOverRide > 0 then print('TaM phase ', $a, ' CRS: ', #CompRunSec, ' CRT: ', #CompRunTime, ' RTD: ', #RoomTempDelta, ' SHifT: ', #SHifT, ' MOT: ', @Main_Outlet_Temp, ' Z1T: ', @Z1_Water_Target_Temp); end #SHifT = min(#SHifT, 2); end on HeatPumpState($a) then if @Heatpump_State != #HPStateR && #RemoteOverRide != -1 then print('HeatPumpState, origin: ', $a); @SetHeatpump = #HPStateR; end end on OperatingMode then if @Operating_Mode_State != #OMR then @SetOperationMode = #OMR; end end on OpenThermThermostat then if #allowOTT == 1 && #RemoteOverRide < 3 && #DHWRun < 1 && @ThreeWay_Valve_State == 0 && @Defrosting_State == 0 then if #chEnable == 1 && #RoomTempDelta < 0.3 then #HPStateR = 1; HeatPumpState('OTTon'); end $OTT = 0; if #RoomTempDelta > 1 || #chEnableOffTime > 30 then $OTT = 1; elseif #chEnableOffTime > 15 && #CompRunTime < -15 then $OTT = 2; elseif #chEnableOffTime > 5 && %hour > 22 then $OTT = 3; end if $OTT > 0 && @ThreeWay_Valve_State == 0 && (#CompRunTime > 90 || #CompState == 0) && @Outside_Temp > -5 then if #Debug > 0 || #RemoteOverRide > 0 then print('OTT first condtition is TRUE, $OTT: ', $OTT); end if @ThreeWay_Valve_State == 0 && (#CompRunTime > 90 || #CompState == 0) && @Outside_Temp > -5 && #HPStateR != 0 then #HPStateR = 0; HeatPumpState('OTToff'); if @Operating_Mode_State != 0 then @SetOperationMode = 0; end #allowOTT = 2; setTimer(7,600); end if #chEnable == 0 && #allowOTT != 2 then #allowOTT = 3; setTimer(7,25); end end end end on DHW then if #allowDHW == 1 && #RemoteOverRide < 4 then #allowDHW = 2; if @ThreeWay_Valve_State == 0 && (@DHW_Temp < (@DHW_Target_Temp + @DHW_Heat_Delta - 5) || (%hour == 13 && (%day == #LegionellaRunDay || @DHW_Temp < (@DHW_Target_Temp + @DHW_Heat_Delta)))) then #DHWRun = 1; #OMP = @Operating_Mode_State; #HPStateP = @Heatpump_State; if #OMP == 0 then #OMR = 4; elseif #OMP == 1 then #OMR = 5; else #OMR = 3; end OperatingMode(); #HPStateR = 1; HeatPumpState('DHWon'); end if #DHWRun > 0 then if %day > 5 && %hour > 10 && @DHW_Temp > 47 && @Sterilization_State != 1 then @SetForceSterilization = 1; #LegionellaRunDay = 8; end if @ThreeWay_Valve_State == 0 && @DHW_Temp >= @DHW_Target_Temp && @Defrosting_State == 0 && @Sterilization_State == 0 then @SetOperationMode = max(0, #OMP); if @Heatpump_State != #HPStateP then #HPStateR = #HPStateP; HeatPumpState('DHWoff'); end #OMP = @Operating_Mode_State; #HPStateP = 1; #DHWRun = 0; end end if %day == 7 && #LegionellaRunDay == 8 then #LegionellaRunDay = 7; end setTimer(6,900); end end on pumpDuty then if #allowPumpDuty == 1 && #RemoteOverRide < 5 then #allowPumpDuty = 2; #MaxPumpDuty = 85; if @ThreeWay_Valve_State == 1 then #MaxPumpDuty = 140; if (@Sterilization_State == 0 && @DHW_Temp > @DHW_Target_Temp) || (@Sterilization_State == 1 && @DHW_Temp > 57) then #MaxPumpDuty = 10 + #MaxPumpDuty; end elseif @Heatpump_State == 1 then if @Compressor_Freq == 0 && @Defrosting_State != 1 then #MaxPumpDuty = 82; elseif @Operating_Mode_State != 1 then $QFH = 10; $QFL = 14; $tH = 11; $tL = -3; if @Outside_Temp >= $tH then #MaxPumpFlow = $QFH; elseif @Outside_Temp <= $tL then #MaxPumpFlow = $QFL; else #MaxPumpFlow = ceil($QFH + ($tH - @Outside_Temp) * ($QFL - $QFH) / ($tH - $tL)); end if @Pump_Flow > 1 && @Pump_Flow < 8 && #MaxPumpDuty <= @Max_Pump_Duty then #MaxPumpDuty = @Max_Pump_Duty + 1; else #MaxPumpDuty = 55 + floor(#MaxPumpFlow * 3); if (@Pump_Speed / @Pump_Flow) > 145 then if @Pump_Flow > 8 then #MaxPumpDuty = @Max_Pump_Duty - 1; else #MaxPumpDuty = @Max_Pump_Duty; end end end else #MaxPumpDuty = 92; end end #MaxPumpDuty = max(#MaxPumpDuty, 82); if @Max_Pump_Duty != #MaxPumpDuty then @SetMaxPumpDuty = #MaxPumpDuty; end setTimer(5, 60); end end on SetQuietMode then if #QMR != @Quiet_Mode_Level then @SetQuietMode = #QMR; end end on QuietMode then if #allowQuietMode == 1 && #RemoteOverRide < 2 && @Defrosting_State == 0 then #allowQuietMode = 2; if @Outside_Temp < 3 || (@Outside_Temp < 5 && #CompFreqTarget == 34) then #CompFreqTarget = 34; else #CompFreqTarget = 24; end if #CompRunTime < 3 && @Compressor_Freq > 33 then #QMR = 3; elseif @Compressor_Freq < #CompFreqTarget || (#QMR == 0 && @Compressor_Freq < #CompFreqTarget + 6) then #QMR = 0; elseif @Compressor_Freq < #CompFreqTarget + 6 || (#QMR == 1 && @Compressor_Freq < #CompFreqTarget + 12) then #QMR = 1; elseif @Compressor_Freq < #CompFreqTarget + 26 || (#QMR == 2 && @Compressor_Freq < #CompFreqTarget + 32) then #QMR = 2; else #QMR = 3; end if #QMR > 1 && @ThreeWay_Valve_State == 1 && %hour > 9 && %hour < 17 then #QMR = -1 + #QMR; end setTimer(3,120); end if (@Defrosting_State == 1 && #allowQuietMode > 0 || #CompState < 1 || #CompRunTime < 5) || %hour < 7 then #QMR = 3; end SetQuietMode(); end on syncOT then if #allowSyncOT == 1 then ?outletTemp = round(@Main_Outlet_Temp); ?outsideTemp = #OutsideTemp; ?dhwTemp = round(@DHW_Temp); ?dhwSetpoint = @DHW_Target_Temp; if ?chEnable == 1 then #chEnable = 1; if #chEnableTimeOff != -1 then #chEnableTimeOff = -1; #chEnableOffTime= -1; end else if #chEnableTimeOff == -1 then #chEnableTimeOff = #Time; end #chEnableOffTime= #Time - #chEnableTimeOff; if #chEnableOffTime> 5 then #chEnable = 0; end end ?maxTSet = @Z1_Water_Target_Temp + 5; if #CompState > 0 then ?flameState = 1; if @Heat_Power_Consumption > 0 then ?chState = 1; else ?chState = 0; end if @DHW_Power_Consumption > 0 then ?dhwState = 1; else ?dhwState = 0; end if @Cool_Power_Consumption > 0 then ?coolingState = 1; else ?coolingState = 0; end else ?flameState = 0; ?chState = 0; ?dhwState = 0; ?coolingState = 0; end if #RoomTempSet == -1 then #RoomTempSet = ?roomTempSet; end if ?roomTempSet != 0 then if #Debug > 10 then $com = ('set RoomTempDeta with some safeguards around ?roomTempSet (not zero and change < 1)'); end #RoomTempSet = round(?roomTempSet * 10) / 10; #RoomTempDelta = max(min(20 - #RoomTempSet, 5), -5); end end end on syncHP then if #allowSynchHP == 1 then #allowSynchHP = 2; if @Operating_Mode_State == 0 || @Operating_Mode_State == 4 then #Heat = 1; else #Heat = 0; end #RemoteOverRide = @Z2_Heat_Request_Temp; setTimer(9,30); end end on @Compressor_Freq then if @Compressor_Freq > 18 && #CompState == 0 then #CompStateChangeTime= #Time; #CompState = 1; #CompRunSec = 0; setTimer(10,5); elseif @Compressor_Freq < 18 && #CompState > 0 then #CompStateChangeTime= #Time; #CompState = 0; end end on @Main_Outlet_Temp then #allowTaShift = 1; end on @Z1_Water_Target_Temp then #allowTaShift = 1; end on timer=1 then setTimer(1,15); if #FirstBoot == 1 then #CompStateChangeTime= #Time; #RoomTempDelta = 0; if @Compressor_Freq > 18 then #CompState = 2; else #CompState = 0; @SetZ1HeatRequestTemperature = 0; end #SHifT = @Z1_Heat_Request_Temp; if @ThreeWay_Valve_State == 1 && #allowDHW == 1 then #DHWRun = 2; end #FirstBoot = 2; else syncHP(); syncOT(); QuietMode(); pumpDuty(); DHW(); if #Heat == 1 then OpenThermThermostat(); TaShift(); end end end on timer=2 then #Time = %day * 1440 + %hour * 60 + %minute; if @Compressor_Freq > 18 then #CompRunTime = #Time - #CompStateChangeTime; if #CompRunTime< 0 then #CompRunTime = #Time - #CompStateChangeTime + 10080; end else #CompRunTime = #CompStateChangeTime - #Time; end setTimer(2,60); end on timer=3 then #allowQuietMode = 1; end on timer=5 then #allowPumpDuty = 1; end on timer=6 then #allowDHW = 1; end on timer=7 then #allowOTT = 1; end on timer=9 then #allowSynchHP = 1; end on timer=10 then #CompRunSec = #CompRunSec + 5; if #CompRunSec < 600 then setTimer(10,5); end end |
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Hallo @blb4blb4 schreef op vrijdag 22 november 2024 @ 15:49:
Na lange stilte maar weer eens een update van mijn kant. De ontwikkeling van de rules was een beetje stil komen te liggen door de onstabiliteit van HeishaMon. Voor zover ik 't kan plaatsen was dat een combinatie van onstabiliteit in de firmware (er werd een hele boel tegelijk ontwikkeld) en de beperkte capaciteit van de op EPS8266 gebaseerde HeishaMon small in combinatie met alle opties + grote rules set gebruiken.
Deze problemen zijn allemaal zo'n beetje verdwenen met de EPS32 gebaseerde HeishaMon Large met Firmware 3.8.
…
Ik gebruik jullie regels (20240819) al een tijdje in een aangepaste vorm.
Zijn er grote verschillen?
Grootste deel is ‘t zelfde gebleven, de enige echte verandering zit in wat nu TaShift heet (hiervoor TaManipulations).Binifada schreef op vrijdag 22 november 2024 @ 18:35:
[...]
Hallo @blb4
Ik gebruik jullie regels (20240819) al een tijdje in een aangepaste vorm.
Zijn er grote verschillen?
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Hartelijk dank voor het delen. Ik heb veel geleerd van je regels en programmeren is weer leuk.
Je kunt ook lokale variabelen gebruiken in je regels. Deze worden niet weergegeven in de console of in het USB-logboek. Is hier een oplossing voor?
Ik gebruik Heishamon V5 en Software 3.8.
Groeten Binifada
Klopt, dit zijn nog wat nukken in de huidige FW.Binifada schreef op maandag 25 november 2024 @ 18:05:
Hallo @blb4 ,
Je kunt ook lokale variabelen gebruiken in je regels. Deze worden niet weergegeven in de console of in het USB-logboek. Is hier een oplossing voor?
Ik gebruik Heishamon V5 en Software 3.8.
Groeten Binifada
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Als je iets wilt weten en leren over Regels, kun je hier altijd iets ontdekken.
Ik gebruik de @blb4 regels sinds ze hier en op Github zijn gepubliceerd. Ik heb niet alle regels nodig, DHW en pumpDuty, anders werken de regels met kleine aanpassingen. En sinds Heishamon V5 en Software 3.8 zijn er eigenlijk geen problemen meer.
Tot nu toe heb ik het goed gedaan met versie 20240821. Nu is er 20241123 die waarschijnlijk op onderdelen een andere focus heeft. Nu probeer ik natuurlijk de betekenis en het doel van de regels te begrijpen, maar de bedoeling van de auteur is niet duidelijk. BLB4 zal hier zelf commentaar op moeten geven als hij dat wil.
Het leek mij dat de eerdere versie ook ontworpen was voor langere runtimes. De nieuwe versie legt de nadruk op de OpenTherm thermostaat.
Wat is de reden hiervoor? Minder schrijfacties naar de EPROM, meer gemak ...
Misschien kan de professional ons hier meer over vertellen ...
Als je tevreden bent met de huidige variant, hoef je natuurlijk niet bij te werken.
Ik zelf heb een tijdje met de Node Red flow gedraaid, een paar eigen regels erbij ter ondersteuning. Maar ik vind de set van @blb4 dusdanig goed eruit zien dat ik die nu weer heb overgenomen.
Het is mij alleen niet helemaal duidelijk hoe ik de bandbreedte van de pumpflow kan instellen, hij tuned hem nu wat terug maar hij mag van mij wel iets sneller lopen.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
deactiveer op PumpDuty, dan regelt de Jeisha zichzelf weer@Beekforel
…
Het is mij alleen niet helemaal duidelijk hoe ik de bandbreedte van de pumpflow kan instellen, hij tuned hem nu wat terug maar hij mag van mij wel iets sneller lopen.
Ik merk inderdaad dat die shift niet goed gaat, zal kijken of ik er wat aan kan debuggen.blb4 schreef op woensdag 27 november 2024 @ 16:06:
@Binifada , @Beekforel , Nu mijn rules set weer behoorlijk stabiel draait (eingelijk alleen de TaShift functie blijft wat opspelen, de rest is al maanden stabiel) zal ik weer wat aandacht aan de documentatie geven. Zodra ik dat heb zal ik die op Github plaatsen. Mijn bedoeling is 1 rules set die je zo zou kunnen inladen en 1 die voorzien is van commentaar.
Heb de houtkachel aan, hij ging netjes naar -5 schiften. Later ook zelfs uit. Maar vervolgens weer naar 0 geshift en power weer aan, hij draait nu weer vrolijk mee.
Dat snap ik, maar ik zou hem wel variabel willen hebben zoals in de rules.Binifada schreef op woensdag 27 november 2024 @ 18:06:
[...]
deactiveer op PumpDuty, dan regelt de Jeisha zichzelf weer
[ Voor 27% gewijzigd door Beekforel op 27-11-2024 19:05 ]
Inmiddels gaat die mij mij al weer beter:Beekforel schreef op woensdag 27 november 2024 @ 18:56:
[...]
Ik merk inderdaad dat die shift niet goed gaat, zal kijken of ik er wat aan kan debuggen.
Heb de houtkachel aan, hij ging netjes naar -5 schiften. Later ook zelfs uit. Maar vervolgens weer naar 0 geshift en power weer aan, hij draait nu weer vrolijk mee.
[...]
Dat snap ik, maar ik zou hem wel variabel willen hebben zoals in de rules.
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
| on TaShift then #allowTaShift = #allowTaShift + 1; if #allowTaShift > 20 then #allowTaShift = 2; end if (#CompRunTime < 15 || #allowTaShift == 2) && #DHWRun < 1 && @ThreeWay_Valve_State == 0 then if #Debug > 10 then $com = 'basic conditions for TaShift fullfilled'; end #SHifT = @Z1_Heat_Request_Temp; if #CompState > 0 then if #Debug > 1 || #RemoteOverRide > 0 then print('TaShift if Compressor is running'); end TaShift2(); else $StopTime = - 2 * @Outside_Temp - 30; if #CompState == 0 && #CompRunTime > $StopTime && #CompRunTime < 2 then if #Debug > 10 then $com = 'if compressor is off for a relative short time (depending on outside temperature) SHifT to -5 to avoid short cycle'; end #SHifT = -5; else if #Debug > 10 then $com = 'SHifT back to 0 when compressor is off and $StopTime is over '; end #SHifT = 0; end end if (%hour > 22 || %hour < 7) && @Outside_Temp < 3 && #SHifT > -3 && (@Main_Outlet_Temp - @Z1_Water_Target_Temp) < 0.5 && #CompState > 0 then if #Debug > 10 then $com = 'Between 23h and 7h SHifT -1 to switch off compressor a bit earlier'; end #SHifT = -1 + #SHifT; end if #Debug > 10 then $com = 'shift Z1HRT if required but not outside the range -5 to +5'; end #SHifT = min(max(#SHifT, -5), 5); if #SHifT != @Z1_Heat_Request_Temp && #RemoteOverRide < 1 then @SetZ1HeatRequestTemperature = #SHifT; end end end on TaShift2 then $WarTemp = @Z1_Water_Target_Temp - @Z1_Heat_Request_Temp; if #CompRunSec < 180 && #CompState == 1 then #SoftStartControl = ceil(@Main_Outlet_Temp - 3 + ceil(#CompRunSec / 60)) - $WarTemp; $a = 1; $b = ', CRS < 180'; elseif #CompRunTime < (300 - 5 * @Outside_Temp) then if @Main_Outlet_Temp > #MOT then #SoftStartControl = ceil(@Main_Outlet_Temp - 1.8) - $WarTemp; else #SoftStartControl = ceil(@Main_Outlet_Temp - 1.6) - $WarTemp; end $a = 2; $b = concat(', CRT < ', (300 - 5 * @Outside_Temp)); elseif #SoftStartControl > 0 then $a = 3; $b = ', Back to 0'; if #CompRunTime / 60 == round(#CompRunTime / 60) then #SoftStartControl = #SoftStartControl - 1; end else $a = 4; $b = ', TaShift Finished'; end #MOT = @Main_Outlet_Temp; #RoomTempControl = round(#RoomTempDelta * -3); #SHifT = #SoftStartControl + #RoomTempControl; if $a > 1 && (@Main_Outlet_Temp - $WarTemp - #SHifT) > 1.8 then #SHifT = ceil(@Main_Outlet_Temp - 1.8) - $WarTemp; $a = $a + 10; $b = concat($b,' ( limit #SHifT)'); end if #Debug > 0 || #RemoteOverRide > 0 then print('TaM phase ', $a, $b, ' CRS: ', #CompRunSec, ' CRT: ', #CompRunTime, ' RTD: ', #RoomTempDelta, ' SSC: ', #SoftStartControl, ' RTC: ', #RoomTempControl, ' SHifT: ', #SHifT, ' MOT: ', @Main_Outlet_Temp, ' Z1T: ', @Z1_Water_Target_Temp); end end |
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Nice. Er gaat wat mis als ik de rules hier van GoT kopieer, dan accepteert de Heishamon het niet meer..blb4 schreef op woensdag 27 november 2024 @ 19:38:
[...]
Inmiddels gaat die mij mij al weer beter:
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 on TaShift then #allowTaShift = #allowTaShift + 1; if #allowTaShift > 20 then #allowTaShift = 2; end if (#CompRunTime < 15 || #allowTaShift == 2) && #DHWRun < 1 && @ThreeWay_Valve_State == 0 then if #Debug > 10 then $com = 'basic conditions for TaShift fullfilled'; end #SHifT = @Z1_Heat_Request_Temp; if #CompState > 0 then if #Debug > 1 || #RemoteOverRide > 0 then print('TaShift if Compressor is running'); end TaShift2(); else $StopTime = - 2 * @Outside_Temp - 30; if #CompState == 0 && #CompRunTime > $StopTime && #CompRunTime < 2 then if #Debug > 10 then $com = 'if compressor is off for a relative short time (depending on outside temperature) SHifT to -5 to avoid short cycle'; end #SHifT = -5; else if #Debug > 10 then $com = 'SHifT back to 0 when compressor is off and $StopTime is over '; end #SHifT = 0; end end if (%hour > 22 || %hour < 7) && @Outside_Temp < 3 && #SHifT > -3 && (@Main_Outlet_Temp - @Z1_Water_Target_Temp) < 0.5 && #CompState > 0 then if #Debug > 10 then $com = 'Between 23h and 7h SHifT -1 to switch off compressor a bit earlier'; end #SHifT = -1 + #SHifT; end if #Debug > 10 then $com = 'shift Z1HRT if required but not outside the range -5 to +5'; end #SHifT = min(max(#SHifT, -5), 5); if #SHifT != @Z1_Heat_Request_Temp && #RemoteOverRide < 1 then @SetZ1HeatRequestTemperature = #SHifT; end end end on TaShift2 then $WarTemp = @Z1_Water_Target_Temp - @Z1_Heat_Request_Temp; if #CompRunSec < 180 && #CompState == 1 then #SoftStartControl = ceil(@Main_Outlet_Temp - 3 + ceil(#CompRunSec / 60)) - $WarTemp; $a = 1; $b = ', CRS < 180'; elseif #CompRunTime < (300 - 5 * @Outside_Temp) then if @Main_Outlet_Temp > #MOT then #SoftStartControl = ceil(@Main_Outlet_Temp - 1.8) - $WarTemp; else #SoftStartControl = ceil(@Main_Outlet_Temp - 1.6) - $WarTemp; end $a = 2; $b = concat(', CRT < ', (300 - 5 * @Outside_Temp)); elseif #SoftStartControl > 0 then $a = 3; $b = ', Back to 0'; if #CompRunTime / 60 == round(#CompRunTime / 60) then #SoftStartControl = #SoftStartControl - 1; end else $a = 4; $b = ', TaShift Finished'; end #MOT = @Main_Outlet_Temp; #RoomTempControl = round(#RoomTempDelta * -3); #SHifT = #SoftStartControl + #RoomTempControl; if $a > 1 && (@Main_Outlet_Temp - $WarTemp - #SHifT) > 1.8 then #SHifT = ceil(@Main_Outlet_Temp - 1.8) - $WarTemp; $a = $a + 10; $b = concat($b,' ( limit #SHifT)'); end if #Debug > 0 || #RemoteOverRide > 0 then print('TaM phase ', $a, $b, ' CRS: ', #CompRunSec, ' CRT: ', #CompRunTime, ' RTD: ', #RoomTempDelta, ' SSC: ', #SoftStartControl, ' RTC: ', #RoomTempControl, ' SHifT: ', #SHifT, ' MOT: ', @Main_Outlet_Temp, ' Z1T: ', @Z1_Water_Target_Temp); end end
:strip_exif()/f/image/EOOPioReYOyjIeo4Z9urLjli.png?f=user_large)
Is het dan rule 11 of 12 waar hij op misgaat? Dat is toch gek want daar verander ik niks aan.
Als ik de rules van Github kopieer gaat het wel goed. In beide gevallen zet ik ze eerst naar VSCode. Ik heb wat compares gedaan maar ik zie geen verschillen.
Dit blijven rare dingen in de rules engine, er komen - volgens mij vooral met grotere rules sets - random errors.Beekforel schreef op woensdag 27 november 2024 @ 20:48:
[...]
Nice. Er gaat wat mis als ik de rules hier van GoT kopieer, dan accepteert de Heishamon het niet meer..
[Afbeelding]
Is het dan rule 11 of 12 waar hij op misgaat? Dat is toch gek want daar verander ik niks aan.
Als ik de rules van Github kopieer gaat het wel goed. In beide gevallen zet ik ze eerst naar VSCode. Ik heb wat compares gedaan maar ik zie geen verschillen.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Blijft vaag. Ik zal je Github in de gaten houden, heb een deel getracht over te typen maar dan krijg ik het ook niet lekker stabiel.blb4 schreef op woensdag 27 november 2024 @ 21:09:
[...]
Dit blijven rare dingen in de rules engine, er komen - volgens mij vooral met grotere rules sets - random errors.
Thanks!
2 files:
1) HeishaMon_Rules_BlB4.md
Dit is de rules set die nu draait op mijn HeishaMon;
2) Heishamon_rules20241127_rm.txt
Dit is oorspronkelijke file inclusief commentaar / uitleg. Deze file is via de minify tool van Klaas Hoekstra om te zetten in de file die te laden is op HeishaMon.
Ik hoop dat 't commentaar wat toevoegt in 't begrijpen van de rules set....
[ Voor 5% gewijzigd door blb4 op 27-11-2024 22:44 ]
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Ik zal het eens doornemen.blb4 schreef op woensdag 27 november 2024 @ 21:51:
Ik heb 'm geupload op github.
2 files:
1) HeishaMon_Rules_BlB4.md
Dit is de rules set die nu draait op mijn HeishaMon;
2) Heishamon_rules20241127_rm.txt
Dit is oorspronkelijke file inclusief commentaar / uitleg. Deze file is via de minify tool van Klaas Hoekstra om te zetten in de file die te laden is op HeishaMon.
Ik hoop dat 't commentaar wat toevoegt in 't begrijpen van de rules set....
Het shiften gaat hier echt niet lekker, dus ik had allowTaShift even op 0 gezet maar zie dat dat niet op die manier geimplementeerd is.
1
2
3
4
5
6
| on SyncOT then . . #RoomTempDelta = max(min(20 - #RoomTempSet, 5), -5); . . |
Hier gebruik je de constante 20 en niet de variabele ?roomTemp, dus #RoomTempDelta is altijd hetzelfde.
Wat is de reden?
Dit komt doordat mijn opentherm thermostaat altijd dezelfde waarde geeft aan de variable ?roomTemp (20 graden) maar soms ook naar 0 springt. Als je wel een stabiele en correcte ?roomTemp hebt kan je die 20 zo vervangen door ?roomTemp.Binifada schreef op donderdag 28 november 2024 @ 12:00:
@blb4
code:
1 2 3 4 5 6 on SyncOT then . . #RoomTempDelta = max(min(20 - #RoomTempSet, 5), -5); . .
Hier gebruik je de constante 20 en niet de variabele ?roomTemp, dus #RoomTempDelta is altijd hetzelfde.
Wat is de reden?
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
ok bedankt, ik gebruik de EMOS P5616OT met WIFI. Werkt perfect.blb4 schreef op donderdag 28 november 2024 @ 12:12:
[...]
Dit komt doordat mijn opentherm thermostaat altijd dezelfde waarde geeft aan de variable ?roomTemp (20 graden) maar soms ook naar 0 springt. Als je wel een stabiele en correcte ?roomTemp hebt kan je die 20 zo vervangen door ?roomTemp.
:strip_exif()/f/image/xvJa3gpG0h4EtxEJLNLO8n8W.jpg?f=fotoalbum_large)
@Binifada Ik heb dit opgelost in laatste update, net als een foutje in sterilisation routine. TaShift blijft een hoofdbreker, ben er hier toch weer mee aan ‘t rommelen.Beekforel schreef op donderdag 28 november 2024 @ 13:06:
Haha na wat debuggen was ik naar dit topic genavigeerd om precies dezelfde vraag als @Binifada te stellen.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Maar thermostaat naar 20,5 resulteerde in een shift van +4?
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
in elk geval geen koud huisBeekforel schreef op zaterdag 30 november 2024 @ 18:39:
Poeh, ik dacht ineens wat is het warm in huis. Had de thermostaat op 21 en hij heeft ff lekker op +5 gedraaid vanmiddag.
Maar thermostaat naar 20,5 resulteerde in een shift van +4?
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
22,5 gemeten op de thermostaat, 20,5 ingesteld. Shift op +2.blb4 schreef op zaterdag 30 november 2024 @ 19:12:
[...]
in elk geval geen koud huis. als Je 1:1 mijn rules toepast dan zou via OpenThermThermostat bij > 0,7 graden roomtempdelta de warmtepomp moeten uitschakelen.
Ik ga weer ff over op handmatig voor ik smelt.
Hm hij is nu toch wel uitgeschakeld door de rules.
Ik heb wat proberen te debuggen @blb4 maar kom er niet goed uit. Het shfiten gaat mij nu in elk geval te onrustig. Wat het volgens mij ook lastig maakt is dat je je SoftStart en shift door elkaar laat lopen?
Softstart is wat mij betreft niet zo belangrijk, een stabiele shift op basis van de ?roomTemp en ?roomTempSet des te meer. Ik wilde even snel een schaduwfunctie maken maar loop weer tegen de vaagheid van het accepteren van rules aan helaas,misschien vanavond weer wat tijd.
[ Voor 42% gewijzigd door Beekforel op 01-12-2024 09:18 ]
Die Emos gaat weer terug, net iets te beperkt voor mij. Ik ben gewend met app of via Home Assistent thermostaat wat te kunnen bijstellen, de Emos ondersteund geen remote override. Verder deed hij 't wel goed geloof ik....blb4 schreef op zaterdag 30 november 2024 @ 19:10:
ik heb net een emos thermostaat binnen, ga ik morgenmiddag eens aansluiten en kijken of 't opentherm gedeelte wat stabieler draait.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
De wens is:
- Reductie vermogen en voorkomen overshoot: Oplossing altijd QM3 draaien
- Bij dreigen dichtvriezen terugschakelen naar QM0 voor 5 minuten. (Op basis "Outdoor Temperature" en "OD Pipe Temperature" Zie Deice Operation van paragraaf 15.2.2
- Anti-pendeltimer. Nu gaat de warmtepomp al weer aan als Tr 3°C afgekoeld is. Dat zou wel 6°C of een bepaalde tijd mogen worden.
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
| on System#Boot then #allowSilentMode = 0; #newPumpDuty = 0; #prevSilentMode = 0; end on timer=2 then #allowSilentMode = 1; #silentMode = 1; end on checkSilentMode then if isset(@Outside_Temp) == 1 && isset(@Heatpump_State) then if #allowSilentMode == 1 then if @Outside_Temp < 2 then if %hour > 22 || %hour < 7 then #silentMode = 1; else #silentMode = 1; end else if @Outside_Temp < 5 then #silentMode = 1; else if @Outside_Temp < 10 then #silentMode = 1; else #silentMode = 1; end end end if #prevSilentMode != #silentMode && @Heatpump_State == 1 then setTimer(2, 60); #allowSilentMode = 0; #prevSilentMode = #silentMode; @SetQuietMode = #silentMode; end end end end |
Bij drukken op de Save knop van de /rules webpagina krijg ik geen foutmelding. Echter blijft in Home de warmtepomp op TOP18 Quiet_Mode_Level 3 Level 3
Ik zou verwachten dat de Heisamon de warmtepomp naar QM=1 zou schakelen. Ook een webbased reboot van Heishamon wilt niet helpen. Het is mij een raadsel waarom dit niet werkt, iemand een tip waar dit aan kan liggen?
Er wordt bij hou alleen System#Boot uitgevoerd (tijdens boot); er is geen verwijzing naar de andere rules dus die worden niet uitgevoerd.Dre schreef op dinsdag 3 december 2024 @ 22:59:
De Panasonic 5J wil ik aanpassen zodat deze meer geschikt is voor een woning met weinig verlies en weinig massa in het verwarmingssysteem (radiatoren).
De wens is:Om het programmeren simpel op te starten heb ik deze bestaande code bewerkt en in Heishamon geplakt:
- Reductie vermogen en voorkomen overshoot: Oplossing altijd QM3 draaien
- Bij dreigen dichtvriezen terugschakelen naar QM0 voor 5 minuten. (Op basis "Outdoor Temperature" en "OD Pipe Temperature" Zie Deice Operation van paragraaf 15.2.2
- Anti-pendeltimer. Nu gaat de warmtepomp al weer aan als Tr 3°C afgekoeld is. Dat zou wel 6°C of een bepaalde tijd mogen worden.
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 on System#Boot then #allowSilentMode = 0; #newPumpDuty = 0; #prevSilentMode = 0; end on timer=2 then #allowSilentMode = 1; #silentMode = 1; end on checkSilentMode then if isset(@Outside_Temp) == 1 && isset(@Heatpump_State) then if #allowSilentMode == 1 then if @Outside_Temp < 2 then if %hour > 22 || %hour < 7 then #silentMode = 1; else #silentMode = 1; end else if @Outside_Temp < 5 then #silentMode = 1; else if @Outside_Temp < 10 then #silentMode = 1; else #silentMode = 1; end end end if #prevSilentMode != #silentMode && @Heatpump_State == 1 then setTimer(2, 60); #allowSilentMode = 0; #prevSilentMode = #silentMode; @SetQuietMode = #silentMode; end end end end
Bij drukken op de Save knop van de /rules webpagina krijg ik geen foutmelding. Echter blijft in Home de warmtepomp op TOP18 Quiet_Mode_Level 3 Level 3
Ik zou verwachten dat de Heisamon de warmtepomp naar QM=1 zou schakelen. Ook een webbased reboot van Heishamon wilt niet helpen. Het is mij een raadsel waarom dit niet werkt, iemand een tip waar dit aan kan liggen?
Ik heb verder niet gekeken of de rules nuttig zijn maar om ze in elk geval uit te voeren zou je er dit van kunnen maken:
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
| on System#Boot then #allowSilentMode = 0; #newPumpDuty = 0; #prevSilentMode = 0; setTimer(2,10); end on timer=2 then #allowSilentMode = 1; #silentMode = 1; checkSilentMode(); setTimer(2,60) end on checkSilentMode then if isset(@Outside_Temp) == 1 && isset(@Heatpump_State) then if #allowSilentMode == 1 then if @Outside_Temp < 2 then if %hour > 22 || %hour < 7 then #silentMode = 1; else #silentMode = 1; end else if @Outside_Temp < 5 then #silentMode = 1; else if @Outside_Temp < 10 then #silentMode = 1; else #silentMode = 1; end end end if #prevSilentMode != #silentMode && @Heatpump_State == 1 then #allowSilentMode = 0; #prevSilentMode = #silentMode; @SetQuietMode = #silentMode; end end end end |
De boot loop triggert nu timer2 en timer2 triggert checkSilentMode() en zichzelf elke 60 seconden.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Deze code wil die wel programmeren, maar bij uitvoering lijkt ie vast te lopen op het moment dat timer=2 programma gaat lopen. De console loopt niet verder na timer=2 (60 seconden).
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
| on System#Boot then print('System#Boot start'); #prevSilentMode = 0; #silentMode = 0; setTimer(2,60); print('System#Boot end'); end on timer=2 then print('checkDefrost prewarning start'); $OutsideTempLocal = @Outside_Temp; $OutsidePipeTempLocal = @Outside_Pipe_Temp; if $OutsideTempLocal >= 6 && $OutsidePipeTempLocal <= -2 then #silentMode = 0; elseif $OutsideTempLocal == 5 && $OutsidePipeTempLocal <= -2 then #silentMode = 0; elseif $OutsideTempLocal == 4 && $OutsidePipeTempLocal <= -2 then #silentMode = 0; elseif $OutsideTempLocal == 3 && $OutsidePipeTempLocal <= -3 then #silentMode = 0; elseif $OutsideTempLocal == 2 && $OutsidePipeTempLocal <= -4 then #silentMode = 0; elseif $OutsideTempLocal == 1 && $OutsidePipeTempLocal <= -5 then #silentMode = 0; elseif $OutsideTempLocal == 0 && $OutsidePipeTempLocal <= -5 then #silentMode = 0; elseif $OutsideTempLocal == -1 && $OutsidePipeTempLocal <= -6 then #silentMode = 0; elseif $OutsideTempLocal == -2 && $OutsidePipeTempLocal <= -7 then #silentMode = 0; elseif $OutsideTempLocal == -3 && $OutsidePipeTempLocal <= -8 then #silentMode = 0; elseif $OutsideTempLocal == -4 && $OutsidePipeTempLocal <= -9 then #silentMode = 0; elseif $OutsideTempLocal == -5 && $OutsidePipeTempLocal <= -9 then #silentMode = 0; elseif $OutsideTempLocal == -6 && $OutsidePipeTempLocal <= -10 then #silentMode = 0; elseif $OutsideTempLocal == -7 && $OutsidePipeTempLocal <= -11 then #silentMode = 0; elseif $OutsideTempLocal == -8 && $OutsidePipeTempLocal <= -12 then #silentMode = 0; elseif $OutsideTempLocal == -9 && $OutsidePipeTempLocal <= -13 then #silentMode = 0; elseif $OutsideTempLocal <= -10 && $OutsidePipeTempLocal <= -14 then #silentMode = 0; else #silentMode = 3; end if #prevSilentMode != #silentMode then #prevSilentMode = #silentMode; @SetQuietMode = #silentMode; end print ('silentMode is currently ...'); print (#silentMode); setTimer(2,600); end |
Iets compacter geschreven heb ik één IF-statement gebruikt met daarbij veel OR-functies. Maar als ik meer dan 10 events in die OR-functie wil plaatsen weigert de Rules de code over te nemen.
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
| on System#Boot then print('System#Boot start'); #prevSilentMode = -1; #silentMode = 0; setTimer(2,60); print('System#Boot end'); end on timer=2 then print('checkDefrost prewarning start'); $OutsideTempLocal = @Outside_Temp; $OutsidePipeTempLocal = @Outside_Pipe_Temp; if $OutsideTempLocal >= 6 && $OutsidePipeTempLocal <= -2 || $OutsideTempLocal == 5 && $OutsidePipeTempLocal <= -2 || $OutsideTempLocal == 4 && $OutsidePipeTempLocal <= -2 || $OutsideTempLocal == 3 && $OutsidePipeTempLocal <= -3 || $OutsideTempLocal == 2 && $OutsidePipeTempLocal <= -4 || $OutsideTempLocal == 1 && $OutsidePipeTempLocal <= -5 || $OutsideTempLocal == 0 && $OutsidePipeTempLocal <= -5 || $OutsideTempLocal == -1 && $OutsidePipeTempLocal <= -6 || $OutsideTempLocal == -2 && $OutsidePipeTempLocal <= -7 || $OutsideTempLocal == -3 && $OutsidePipeTempLocal <= -8 || $OutsideTempLocal == -4 && $OutsidePipeTempLocal <= -9 || $OutsideTempLocal == -5 && $OutsidePipeTempLocal <= -9 || $OutsideTempLocal == -6 && $OutsidePipeTempLocal <= -10 || $OutsideTempLocal == -7 && $OutsidePipeTempLocal <= -11 || $OutsideTempLocal == -8 && $OutsidePipeTempLocal <= -12 || $OutsideTempLocal == -9 && $OutsidePipeTempLocal <= -13 || $OutsideTempLocal <= -10 && $OutsidePipeTempLocal <= -14 then #silentMode = 0; else #silentMode = 3; end if #prevSilentMode != #silentMode then #prevSilentMode = #silentMode; @SetQuietMode = #silentMode; end print ('silentMode is currently ...'); print (#silentMode); setTimer(2,600); end |
Vraag ik nu teveel van de Heishamon en/of kan het programmeren beter

Het doel is vroegtijdig te signaleren wanneer de warmtepomp gaat dichtvriezen. Op het moment dat een defrost eraan dreigt te komen moet Quiet Mode 0 (QM0) aangezet worden zodat ventilator harder gaat draaien. Doel is dus wanneer @Outside_Pipe_Temp te koud wordt bij een bepaalde @Outside_Temp de QM van 3 naar 0 te schakelen.Beekforel schreef op zondag 8 december 2024 @ 16:32:
@Dre wat wil je precies bereiken? Dit zou simpeler moeten kunnen lijkt mij.
Panasonic beschrijft een grafiek wanneer een defrost gaat plaatsvinden, en het idee is om +4°C hoger te gaan zitten om het vroegtijdig een defrost te zien aankomen.
:strip_exif()/f/image/TtANeneZA8B56DYAv4QFFybH.png?f=user_large)
Ik gebruik de volgende formule om de defrost grens te berekenen:Dre schreef op zondag 8 december 2024 @ 20:35:
[...]
Het doel is vroegtijdig te signaleren wanneer de warmtepomp gaat dichtvriezen. Op het moment dat een defrost eraan dreigt te komen moet Quiet Mode 0 (QM0) aangezet worden zodat ventilator harder gaat draaien. Doel is dus wanneer @Outside_Pipe_Temp te koud wordt bij een bepaalde @Outside_Temp de QM van 3 naar 0 te schakelen.
1
2
3
4
5
6
7
8
| on @Outside_Temp then updateDefrostLimit(); end on updateDefrostLimit then #defrostLimitC = 0.8 * @Outside_Temp - 10; #defrostLimitC = max(-26, min(-6, ceil(#defrostLimitC))); end |
Is misschien niet exact… maar werkt oké.
Ik wil graag kunnen shiften op basis van mijn thermostaat (zodat ik hem lager kan zetten maar ook dat de WP uitgaat wanneer de houtkachel de boel warm stookt) en dat doe ik nu als volgt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| on shiftOnOpenTherm then if #allowshiftOnOpenTherm == 1 then $RoomTempDelta = ?roomTemp - ?roomTempSet; $Shift = 0; if $RoomTempDelta < 0 then $Shift = round(max(-5, min((-5 * $RoomTempDelta) / #openThermCorrectionFactor, 1))); elseif $RoomTempDelta > 0 then $Shift = round(max(-5, min((-5 * $RoomTempDelta) / #openThermCorrectionFactor, -1))); else $Shift = 0; end if $Shift != @Z1_Heat_Request_Temp && #RemoteOverRide < 1 && (#Time - #ShiftLastChange) > 60 then @SetZ1HeatRequestTemperature = $Shift; #ShiftLastChange = %day * 1440 + %hour * 60 + %minute; end if #Debug == 1 then print('+++++++++++++++++++++++++ shiftOnOpenTherm: RoomTempDelta: ', $RoomTempDelta, ' WantedShift: ', $Shift, ' ActualShift: ', @Z1_Heat_Request_Temp); print('+++++++++++++++++++++++++ shiftOnOpenTherm: ShiftLastChange: ', #ShiftLastChange, ' NextShift: ', #Time - #ShiftLastChange); print('+++++++++++++++++++++++++ shiftOnOpenTherm: chSetpoint: ', ?chSetpoint, ' Main_Outlet_Temp: ', @Main_Outlet_Temp); end end end |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| on System#Boot then #allowshiftOnOpenTherm = 1; setTimer(1,10); #Time = -1; #openThermCorrectionFactor = 2; #ShiftLastChange = 0; #RemoteOverRide = -1; #Debug = 1; end on timer=1 then #Time = %day * 1440 + %hour * 60 + %minute; shiftOnOpenTherm(); #RemoteOverRide = @Z2_Heat_Request_Temp; setTimer(1,15); end |
Je kunt de openThermCorrectionFactor lager maken waarmee hij agressiever wordt of juist hoger zodat hij (nog) rustiger gaat doen.
Zo in te laden (voor wie durft
Met commentaar / uitleg, om te zetten via heishamon_rules_minify: HeishaMon_Rules_BlB4_commented.txt
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Omdat ik DHW en PumpDuty niet nodig heb, heb ik de bijbehorende regels verwijderd. Ik moest mijn verwarmingscurve een beetje aanpassen. Werkt best goed, toch?
/f/image/sMdDDYHHNDE3NPAVvtZpk4AU.png?f=fotoalbum_large)
“...
elseif #chEnableOffTime > 5 && %hour > 22 then
$OTT = 4;
...”
de reden voor deze elseif is onduidelijk. Het kan niet de 20 watt voor de pomp zijn of het geluid?
Als er langere tijd geen vermogen nodig is schakel ik de warmtepomp uit (@SetHeatpump = 0), inderdaad vanwege 't stroomverbruik van de pomp. Dat is m.i. onnodig op die momenten. En omdat ik (lichte) nachtverlaging toepas rond 23:00u kan de compressor & circulatiepomp dan wel uit.Binifada schreef op zaterdag 21 december 2024 @ 10:57:
“BLB Heishamon_rules20241211”
“...
elseif #chEnableOffTime > 5 && %hour > 22 then
$OTT = 4;
...”
de reden voor deze elseif is onduidelijk. Het kan niet de 20 watt voor de pomp zijn of het geluid?
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
ha, ja zo doe ik het ook. Weet jij toevallig ook of de Pana na zo'n periode van uitstand de Tr temp onthoudt waarop hij zelf weer aan wil gaan (de Tr van het moment van afslaan -3C volgens mij)? Ik merk dat ik soms de Ta verder moet opvoeren om de Pana weer aan te krijgen, en pas daarna weer op Ta -1C kan sturen.blb4 schreef op zondag 22 december 2024 @ 14:40:
[...]
Als er langere tijd geen vermogen nodig is schakel ik de warmtepomp uit (@SetHeatpump = 0), inderdaad vanwege 't stroomverbruik van de pomp. Dat is m.i. onnodig op die momenten. En omdat ik (lichte) nachtverlaging toepas rond 23:00u kan de compressor & circulatiepomp dan wel uit.
PV: 7.910 WP O-Z-W | Enphase Envoy S Metered | IQ7+ | Panasonic 12KW T-Cap J-Gen | 300L SWW | 200L Buffer | Fibaro HC2 | Gasloos sinds 4-10-22
Ik heb daar nog nooit op gelet. Ik zal 't eens in de gaten houden na deze bijna vorst periode; ik heb juist gisteren de logica aangepast om bij Outside_Temp < 4 graden niet meer uit te schakelen.Tiesert schreef op zaterdag 4 januari 2025 @ 16:15:
[...]
ha, ja zo doe ik het ook. Weet jij toevallig ook of de Pana na zo'n periode van uitstand de Tr temp onthoudt waarop hij zelf weer aan wil gaan (de Tr van het moment van afslaan -3C volgens mij)? Ik merk dat ik soms de Ta verder moet opvoeren om de Pana weer aan te krijgen, en pas daarna weer op Ta -1C kan sturen.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Deye 12kW Hybrid, 8,77 kW peak solar, 61,4 kWH Seplos batteries, Panasonic K-series 5kW all-electric heatpump
Nee.rvdgaag schreef op zondag 5 januari 2025 @ 11:03:
Is er in de Heishamon waarden live te zien of er op dit moment warm water (DHW) gehaald wordt uit de tank ?
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Je zou de DHW temperatuur kunnen volgen, echter is dat een vertraagde weergave.
PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
Ik doe dat ook onder de 0C, ik zie dat hij wel zelf even de pomp aangooit als hij uitstaat, om bevriezing te voorkomen. Maar ik durf niet verder te zakken, dan laat ik hem toch liever aan.blb4 schreef op zaterdag 4 januari 2025 @ 16:19:
[...]
Ik heb daar nog nooit op gelet. Ik zal 't eens in de gaten houden na deze bijna vorst periode; ik heb juist gisteren de logica aangepast om bij Outside_Temp < 4 graden niet meer uit te schakelen.
PV: 7.910 WP O-Z-W | Enphase Envoy S Metered | IQ7+ | Panasonic 12KW T-Cap J-Gen | 300L SWW | 200L Buffer | Fibaro HC2 | Gasloos sinds 4-10-22
Mijn ervaring (geen vloerverwarming) is nu dat bij temperatuur < 4 graden de warmtepomp maar een korte periode (hooguit 3 uur of zo) uit kan om dat toch te zorgen dat de hut niet te ver afkoelt en dan daarna flink aan de bak moet.Tiesert schreef op zondag 5 januari 2025 @ 17:34:
[...]
Ik doe dat ook onder de 0C, ik zie dat hij wel zelf even de pomp aangooit als hij uitstaat, om bevriezing te voorkomen. Maar ik durf niet verder te zakken, dan laat ik hem toch liever aan.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Kan niet zeggen hoe dit is als het echt winter is, want dat heb ik nog nooit meegemaakt met een warmtepomp.

if @Room_Thermostat_Temp >= #setPointRoomTemperature then
if #hourSetPointReached == -1 then
#hourSetPointReached = %hour;
end
#silentMode = 3;
reduceQuietMode();
if %hour >= #operationEarlyStopHour then
if @Outside_Temp > #tempVC then
stopHeatPump();
end
end
end
een vloerverwarming is in het huis.
de temperatuur zinkt bei NULL graaden zon 2 graad in de woonkamer.
als het gaat vriezen gaat the wp ook weer aan.
ik kan nier zeggen wanner er dan iets mis gaat.
ik vertrouw die panasonic firmware niet helemaal.
https://github.com/Egyras/HeishaMon/issues/291
ziet er ook uit dat dit probleem toendertijd opgelost werd.
van de link:
@SetCurves = concat('{"zone1":{"heat":{"target":"high":', @Z1_Heat_Curve_Target_High_Temp, ',"low":', @Z1_Heat_Curve_Target_Low_Temp, '}}}}');
da kan niet.
maar ook als het json dokument gekorrigeert word gaat het mis.
ik laat het groote pcb met versie 3.8 draajen met een aquarea L 5kw (R290).
ons huis is lekker warm.
Ik merk als ik handmatig de temp regeling terug schroef dat hij dan wel langere runs gaat draaien. (Ik bedoel dan echt 12u of langer).
Daarom kan ik van iemand het softstart stuk kopieren?
Ik twijfel nog over de update. Wat zijn jullie ervaringen met V3.9?
Ik heb 3.9 draaien en ervaar geen problemen die ik bij 3.8 ook al niet had.Binifada schreef op woensdag 22 januari 2025 @ 10:57:
Ik heb een Heishamon met ESP32 en V3.8 die stabiel en zonder problemen draait. Mijn 19 regels worden correct uitgevoerd en de samenwerking met HA werkt betrouwbaar.
Ik twijfel nog over de update. Wat zijn jullie ervaringen met V3.9?
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
... lopen de "lange" regels nog steeds niet?blb4 schreef op woensdag 22 januari 2025 @ 11:37:
[...]
Ik heb 3.9 draaien en ervaar geen problemen die ik bij 3.8 ook al niet had.
Klopt, loop constant tegen limiet aan, veel tijd bezig met rules comprimeren en zaken die even niet van belang zijn uit te zetten e.d.Binifada schreef op woensdag 22 januari 2025 @ 12:20:
[...]
... lopen de "lange" regels nog steeds niet?
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Hoe heb je die 2 waterzijdig aan gesloten ? via een buffervat ?Maeslant schreef op dinsdag 21 januari 2025 @ 10:53:
Ik ben zelf niet een held in programeren, maar ik heb dus een H en een J versie (5KW) naast elkaar in paralel draaien. Dit werkt prima, maar de J gooit bij startup vaak te veel vermogen erin en stopt dan snel weer.
15kW solar, 800 Ltr hygiëneboiler, 80 Heatpipes, 2 * L/L, Pana monoblock 5F en 5J, HR++/+++ , gasloos sinds Feb 2015
Ik heb op 3 verdiepingen vloerverwarming. Oppervlakte van 180m2.hannibal2206 schreef op woensdag 22 januari 2025 @ 15:39:
[...]
Hoe heb je die 2 waterzijdig aan gesloten ? via een buffervat ?
Dus geen buffer vat maar met een terugslag klep parallel aan elkaar.
Wat denk je dat de reden is? Te weinig RAM, of de rules-engine.blb4 schreef op woensdag 22 januari 2025 @ 12:28:
[...]
Klopt, loop constant tegen limiet aan, veel tijd bezig met rules comprimeren en zaken die even niet van belang zijn uit te zetten e.d.
... en wat zeggen @thehog en @CurlyMo erover?
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Heb ik ook, een 5F en een 5J parallel met terugslagkleppen naar ca 100 m2 vloerverwarming beneden (6 groepen 15 HOH) en vloerwarming op badkamer boven.Maeslant schreef op woensdag 22 januari 2025 @ 17:09:
[...]
Ik heb op 3 verdiepingen vloerverwarming. Oppervlakte van 180m2.
Dus geen buffer vat maar met een terugslag klep parallel aan elkaar.
Gaat goed, totdat de 5F een defrost gaat doen, die komt dan na enige tijd met H62 flow error
Dat heb jij niet ?
15kW solar, 800 Ltr hygiëneboiler, 80 Heatpipes, 2 * L/L, Pana monoblock 5F en 5J, HR++/+++ , gasloos sinds Feb 2015
Nee, maar heb jij hem parallel of in serie?hannibal2206 schreef op donderdag 23 januari 2025 @ 18:33:
[...]
Heb ik ook, een 5F en een 5J parallel met terugslagkleppen naar ca 100 m2 vloerverwarming beneden (6 groepen 15 HOH) en vloerwarming op badkamer boven.
Gaat goed, totdat de 5F een defrost gaat doen, die komt dan na enige tijd met H62 flow error
Dat heb jij niet ?
Ik had dat bij serie, nu niet meer bij parallel.
Maar ik heb de regeling van de J is echt een stuk minder dan de h.
[ Voor 6% gewijzigd door Maeslant op 23-01-2025 19:46 ]
Wel parallel, elk met een eigen 22 mm leiding, maar ook een gedeeld 22 mm leiding stukMaeslant schreef op donderdag 23 januari 2025 @ 19:44:
[...]
Nee, maar heb jij hem parallel of in serie?
Ik had dat bij serie, nu niet meer bij parallel.
Maar ik heb de regeling van de J is echt een stuk minder dan de h.
Dat ga ik denk ik maar vergroten naar 28 mm.
Maar ik zie die H62 error dus alleen bij / na een defrost; zonder dat loopt het goed.
En nu weer on-topic naar Heishamon !
15kW solar, 800 Ltr hygiëneboiler, 80 Heatpipes, 2 * L/L, Pana monoblock 5F en 5J, HR++/+++ , gasloos sinds Feb 2015
Ik ben een piepjonge gebruiker (1,5 week) en heb e.e.a. in combinatie met 7L en additionele print, alsmede Home Assistant, Heishamon V3.9 werkende, maar wil nog iets meer.
Hoe kan 2 GPIO's configureren, en 1 als input en de andere als output gebruiken?
(plaatje hergebruikt, maar het gaat om deze header)
/f/image/YYfT9VZwTAs60sb6jvStt3wt.png?f=fotoalbum_large)
Welkom! In de laatste fw zit een optie op de GPIO's uit te lezen en te configureren. Kijk ff op Github voor uitleg.tomton schreef op vrijdag 24 januari 2025 @ 15:45:
Beste Tweakers,
Ik ben een piepjonge gebruiker (1,5 week) en heb e.e.a. in combinatie met 7L en additionele print, alsmede Home Assistant, Heishamon V3.9 werkende, maar wil nog iets meer.
Hoe kan 2 GPIO's configureren, en 1 als input en de andere als output gebruiken?
(plaatje hergebruikt, maar het gaat om deze header)
[Afbeelding]
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
on System#Boot then
setTimer(10, 2);
end
on timer=10 then
setTimer(20, 2);
gpio(21,0);
gpio(47,1);
end
on timer=20 then
setTimer(10, 2);
gpio(21,1);
gpio(47,0);
end
Maar.. kan ik IO1, 3, 16 en 2 gewoon vrij gebruiken? Hoe komt dit via MQTT in Home Assistant tevoorschijn?
Zo kan je er dus met rules bij, hoe ‘t exact via MQTT werkt weet ik niet.tomton schreef op vrijdag 24 januari 2025 @ 16:00:
Ja, ik lees o.a. het volgende hier: https://github.com/IgorYbema/HeishaMon/blob/main/README.md
on System#Boot then
setTimer(10, 2);
end
on timer=10 then
setTimer(20, 2);
gpio(21,0);
gpio(47,1);
end
on timer=20 then
setTimer(10, 2);
gpio(21,1);
gpio(47,0);
end
Maar.. kan ik IO1, 3, 16 en 2 gewoon vrij gebruiken? Hoe komt dit via MQTT in Home Assistant tevoorschijn?
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Dat kan helaas nog niet (althans alleen via rules nog als output).tomton schreef op vrijdag 24 januari 2025 @ 15:45:
Hoe kan 2 GPIO's configureren, en 1 als input en de andere als output gebruiken?
(plaatje hergebruikt, maar het gaat om deze header)
Ik zal er aan denken om dit in een volgende release mee te nemen. Nou zijn de GPIO"s van de small heishamon wel beperkt alsin dat ze bij het opstarten vanzelf schakelen nog voordat je controle hebt over ze. Of je daar last van hebt of niet moet je dus dan wel even rekening mee houden.
Ik gebruik je regels 20241211 voor mijn Jeisha 5 kW met Heishamon ESP32 V 3.9.
Alle regels zijn geactiveerd behalve DHW en pumpDuty.
Tot nu toe werken je regels naar volle tevredenheid met kleine wijzigingen. Nogmaals bedankt hiervoor.
Het mistige weer aan het begin van het jaar leidde tot zeer frequent ontdooien. De tijd tussen het ontdooien is vaak onvoldoende om de kamertemperatuur op peil te houden.
Naar mijn mening is dit te wijten aan de SoftStartControl Phase 2, die is ontworpen voor 300 - 5 * OutSideTemp.
Een voorbeeld uit 19.1.2025
:strip_exif()/f/image/ey7Jrvdy2P38ZsNpqcRzu3pN.png?f=user_large)
/f/image/MUOv0VkQT5MRIMKpjXd0IPPn.png?f=fotoalbum_large)
Dit is geen groot probleem, maar is er een oplossing?
probleem is:
- Als je te rustig start na een defrost heb je te weinig warmte aan je huis toegevoegd voor de volgende defrost om 't warmteverlies te compenseren;
- als je te hard gaat (Compressor naar 50+) zit je binnen no time weer aan een defrost en heb je ook te weinig warmte toegevoegd
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
... gewoon een idee:blb4 schreef op woensdag 12 februari 2025 @ 13:24:
...
probleem is:De truc moet dus zijn hier de middenweg in te bewandelen en dat komt aardig nou. Ik heb er nog geen oplossing voor.
- Als je te rustig start na een defrost heb je te weinig warmte aan je huis toegevoegd voor de volgende defrost om 't warmteverlies te compenseren;
- als je te hard gaat (Compressor naar 50+) zit je binnen no time weer aan een defrost en heb je ook te weinig warmte toegevoegd
Een timer die de intervallen tussen twee ontdooiprocessen controleert. Als de tijd korter is dan 1 uur, dan wordt de tijd voor de zachte start [#CompRunTime < (300 - 5 * #OutsideTemp)] aanzienlijk verkort!