Panasonic Warmtepompen besturen via Heishamon Rules

Pagina: 1 2 3 Laatste
Acties:

Onderwerpen


Acties:
  • +4 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Mede-auteur:
  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52

CurlyMo

Panasonic Warmtepompen besturen via HeishaMon Rules
Dit is de start van een topic over de het besturen van Panasonic Warmtepompen via HeishaMon Rules (in combinatie met een Opentherm termostaat. In de herfst van 2023 is er een behoorlijke slag geslagen (dank @thehog & @CurlyMo!!) in de Opentherm ondersteuning van Heishamon en ook de nodige aanpassing aan de Rules gemaakt.
.
Inleiding
Natuurlijk kan de WP ook functioneren met alleen interne logica (en b.v. een externe aan/uit thermostaat) maar zoals uit de diverse topics hier op tweakers (o.a. het onvolprezen Node Red Dashboard for Heishamon van @edterbak) is niet iedereen gecharmeerd van de Panasonic kabouters die verantwoordelijk zijn voor die interne logica en wordt er aan alle kanten getweaked om de besturing te optimaliseren en naar onze hand te zetten.
.
HeishaMon functionaliteit
HeishaMon is in de basis een gateway tussen het (proprietary) serial Panasonic communicatie protocol en MQTT en bied daarmee de mogelijkheid de diverse parameters van de WP uit te lezen en te wijzigen. Maar er is meer: HeishaMon bied ook ondersteuning voor Rules en ook ondersteuning voor een Opentherm Thermostaat. De Opentherm ondersteuning is stand-alone, eigenlijk net als de interface naar de WP is HeishaMon een gateway tussen Opentherm en MQTT/Rules.
.
Besturen Warmtepomp via HeishaMon Rules
Het idee is dus dat 't door deze mogelijkheden van HeishaMon de WP (volledig) te besturen middels HeishaMon rules (in combinatie met een Opentherm thermostaat). Dit topic heeft dus als heel specifiek doel het delen van kennis/ervaringen/rules sets voor het (volledig) besturen van de WP via Rules (met of zonder een Opentherm thermostaat).
.
Herbruikbare blokken (@CurlyMo)
Berekenen van de WAR gelijk aan die van de WP

De stooklijn waardes van de WP zelf worden gebruikt. De uitkomstwaarde is de global #maxTa.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
on System#Boot then
 #maxTa = 0;
end

on berekenWAR then
 if isset(@Z1_Heat_Curve_Target_Low_Temp) && isset(@Z1_Heat_Curve_Outside_High_Temp) && isset(@Z1_Heat_Curve_Target_High_Temp) && isset(@Z1_Heat_Curve_Outside_Low_Temp) && isset(@Outside_Temp) then
  $Ta1 = @Z1_Heat_Curve_Target_Low_Temp;
  $Tb1 = @Z1_Heat_Curve_Outside_High_Temp;
  $Ta2 = @Z1_Heat_Curve_Target_High_Temp;
  $Tb2 = @Z1_Heat_Curve_Outside_Low_Temp;
  $Tb3 = @Outside_Temp;
  if $Tb3 >= $Tb1 then
   #maxTa = $Ta1;
  elseif $Tb3 <= $Tb2 then
   #maxTa = $Ta2;
  else
   #maxTa = 1 + floor(0.9 + $Ta1 + (($Tb1 - $Tb3) * ($Ta2 - $Ta1) / ($Tb1 - $Tb2)));
  end
 end
end


Pompsnelheid aanpassen

Deze logica maakt het mogelijk om je pompsnelheid aan te passen, maar niet vaker te wisselen dan 1x per 5 minuten. Als je de setPumpDuty aanroept, zorg dan dat je #newPumpDuty variabele de gewenste nieuwe waarde bevat.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
on System#Boot then
 #allowPumpDuty = 0;
 #newPumpDuty = 0;
end

on timer=4 then
 #allowPumpDuty = 1;
end

on setPumpDuty then
 if #allowPumpDuty == 1 && @Max_Pump_Duty != #newPumpDuty then
  setTimer(4, 900);
  #allowPumpDuty = 0;
  @SetMaxPumpDuty = #newPumpDuty;
 end
end



Silent modus o.b.v. tijd en/of buitentemperatuur

Deze logica past silent mode aan o.b.v. de buitentemperatuur en de tijd, maar wisselt niet vaker dan 1x per 5 minuten. De afhankelijkheid van de buitentemperatuur wordt gedaan om een slow-start via silentmode af te dwingen i.p.v. continue stooklijn sturing.

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 = 0;
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 = 0;
    end
   else
    if @Outside_Temp < 5 then
     #silentMode = 1;
    else
     if @Outside_Temp < 10 then
      #silentMode = 2;
     else
      #silentMode = 3;
     end
    end
   end
   if #prevSilentMode != #silentMode && @Heatpump_State == 1 then
    setTimer(2, 900);
    #allowSilentMode = 0;
    #prevSilentMode = #silentMode;
    @SetQuietMode = #silentMode;
   end
  end
 end
end

.
.
Rules set / Herbruikbare blokken ([@blb4])
Deze rules set wordt nu bijgewerkt op Github.

[ Voor 229% gewijzigd door blb4 op 19-11-2023 00:11 . Reden: blokken blb4 verwijderd, verwijzing naar Github ]

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


Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Mijn inspiratie voor het bouwen van de rules set is de functionaliteit die ik nu via het Node Red Dashboard heb lopen samen met wat eigen aanpassingen. Op basis van de ervaring tot nu toe zijn mijn wensen:
  • Max Pump Speed based on HP status 1) DHW, 2) HEAT/COOL (and the outside temp as well), IDLE flow;
  • QuiteMode based on time (e.g. at night) & for Heat/Cool at start Compressor until Compressor Frequency < 30 Hz.;
  • DHW production if DHWTemp <39, every day at fixed time if DHWTemp < DHWTargetTemp + DHWDelta;
  • 1 x per week (at LegionellaRunDay) a legionellarun;
  • WAR calcuation based on WAR Temperature settings from HP;
  • Result of WAR calculation used for OT maxTSet (which is used by OT Thermostat as Maximum ?chSetpoint);
  • Sync OT values with HP values to have correct (status) values from HP communicated to OT Thermostat;
  • OT Thermostat HP control: 1) sync Main_Target_Temp with ?chSetpoint and 2) switch off HP (wapter pump) when ?chEnable is 0 (for a mimumum time);
  • Softstart function with 1) minimize Compressor Frequency asap and 2) increase Main_Target_Temp to extend the run time

[ Voor 255% gewijzigd door blb4 op 04-11-2023 16:20 . Reden: update wensen/requirements ]

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


Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Mijn rules set (20231118):
PAS OP: Dit is op dit moment ter lering en vermaak! Deze set lijkt nu bij mij behoorlijk stabiel te draaien maar garantie tot aan de deur....

Deze rules set wordt meest frequent bijgewerkt op Github.

Afbeeldingslocatie: https://tweakers.net/i/BqCHcpyqzKtS5LPxqh3-fNZ8MBc=/800x/filters:strip_exif()/f/image/O5K9igIodKLkWnnpDhy211Wl.png?f=fotoalbum_large

Draait momenteel op HeishaMon fw Alpha-f15a0fe

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
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
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
on System#Boot then
    #allowDHW = 1;
    #allowOTThermostat = 1;
    #allowPumpSpeed = 1;
    #allowSilentMode = 1;
    #allowSoftStart = 1;
    #allowSyncOT = 1;
    #allowWAR = 1;

    #legionellaRunDay = 7;
    #maxPumpDuty = 85;

    #chEnable = -1;
    #chEnableOffTime = -1;
    #chEnableTimeOff = -1;
    #chSetPoint = -1;
    #compRunTime = -1;
    #compStartTime = -1;
    #compState = -1;
    #DHWRun = -1;
    #firstBoot = 1;
    #heatPumpState = -1;
    #mainTargetTemp = -1;
    #maxTa = -1;
    #mildMode = -1;
    #operatingMode = -1;
    #prevDHWHeatDelta = -1;
    #prevHeatPumpState = -1;
    #prevOperatingMode = -1;
    #quietMode = -1;
    #roomTempDelta = -1;
    #sSC = -1;
    #softStartPhase = -1;
    #thermostatState = -1;
    #timeRef = -1;
    setTimer(1,60);
    setTimer(2,10);
end

on quietMode then
    if #mildMode > -1 then
        #quietMode = #mildMode;
    else
        if #chEnable == 0 && #compState == 1 then
            #quietMode = 3;
        else
            #quietMode = #silentMode;
        end
    end
    if @Quiet_Mode_Level != #quietMode then
        @SetQuietMode = #quietMode;
    end
end

on softStart then
    if #allowSoftStart == 1 && #compState == 1 then
        if #compRunTime < 3 then
            #softStartPhase = 1;
            #sSC = @Main_Outlet_Temp - #chSetpoint;
        else
            if #compRunTime < 120 then
                #softStartPhase = 2;
                if @Compressor_Freq < 22 then
                    #sSC = @Main_Outlet_Temp - #chSetpoint;
                else
                    if #chSetpoint <= @Main_Outlet_Temp then
                        #sSC = @Main_Outlet_Temp - 0.7 - #chSetpoint;
                    end
                end
                if #chSetpoint > @Main_Outlet_Temp then
                    #sSC = @Main_Outlet_Temp + 1 - #chSetpoint;
                end
            else
                if #softStartPhase == 2 then
                    #softStartPhase = 3;
                    setTimer(8,5);
                end
            end
        end
        if #sSC > 5 then
            #sSC = 5;
        end
        if #sSC < -5 then
            #sSC = -5;
        end
        #mainTargetTemp = #chSetpoint + #sSC;
        if #mainTargetTemp < 27 then
            #mainTargetTemp = 27;
        end
        if #mainTargetTemp > 40 then
            #mainTargetTemp = 40;
        end
        #mainTargetTemp = floor(#mainTargetTemp);
        if #mainTargetTemp + 2 < @Main_Outlet_Temp then
            #mainTargetTemp = #mainTargetTemp + 1;
        end
        if @Compressor_Freq > 18 && @Compressor_Freq < 25 then
            #mildMode = 0;
            quietMode();
        end
    else
        #sSC = 0;
    end
end

on OTThermostat then
    if #allowOTThermostat == 1 && #DHWRun < 1 && @ThreeWay_Valve_State == 0 then
        if #thermostatState == 1 then
            if ?chSetpoint > 9 then
                #chSetpoint = ?chSetpoint;
                if #chSetpoint < 30 && #chEnable == 1 && #compState == 0 then
                    #chSetpoint = 30;
                end
                if #chSetpoint < 27 && #compState == 1 then
                    #chSetpoint = 27;
                end
                if #chSetpoint > #maxTa then
                    #chSetpoint = #maxTa;
                end
            end
            #mainTargetTemp = #chSetpoint;
            softStart();
            if #compState == 1 then
                #roomTempDelta = ?roomTempSet - ?roomTemp;
                if #roomTempDelta > 0.5 && #chEnableOffTime > 15 && @ThreeWay_Valve_State == 0 && #compRunTime > 30 then
                    #mainTargetTemp = round(@Main_Outlet_Temp - 10);
                end
            end
            if @Z1_Heat_Request_Temp != #mainTargetTemp then
                @SetZ1HeatRequestTemperature = #mainTargetTemp;
            end
            if @Heatpump_State != 1 && #chEnable == 1 then
                @SetHeatpump = 1;
            end
            if #chEnableOffTime > 30 && @ThreeWay_Valve_State == 0 && (#compRunTime > 30 || #compState == 0) && @Outside_Temp > 2 then
                @SetHeatpump = 0;
            end
            if #softStartPhase == -1 || #softStartPhase > 1 then
                #allowOTThermostat = 0;
                setTimer(7,25);
            end
        else
            #mainTargetTemp = #maxTA;
            if @Z1_Heat_Request_Temp != #mainTargetTemp then
                @SetZ1HeatRequestTemperature = #mainTargetTemp;
            end
            if (%hour > 22 || %hour < 7) && @Heatpump_State == 1 then
                @SetHeatpump = 0;
            end
            if (%hour < 23 || %hour > 6) && @Heatpump_State == 0 then
                @SetHeatpump = 1;
            end
            #allowOTThermostat = 0;
            setTimer(7,55);
        end
    end
end

on DHW then
    if #allowDHW == 1 then
        #allowDHW = 0;
        if @ThreeWay_Valve_State == 0 && (@DHW_Temp < 39 || (%hour == 13 && (%day == #LegionellaRunDay || @DHW_Temp < @DHW_Target_Temp + @DHW_Heat_Delta))) then
            #DHWRun = 1;
            #prevOperatingMode = @Operating_Mode_State;
            #prevHeatPumpState = @Heatpump_State;
            @SetOperationMode = 4;
            if @Heatpump_State != 1 then
                @SetHeatpump = 1;
            end
            if %day == #legionellaRunDay && %hour >= 13 && @DHW_Temp > 47 && @Sterilization_State != 1 then
                @SetForceSterilization = 1;
            end
        end
        if #DHWRun == 1 then
            if @ThreeWay_Valve_State == 0 && @DHW_Temp >= @DHW_Target_Temp && @Defrosting_State == 0 && @Sterilization_State == 0 then
                @SetOperationMode = #prevOperatingMode;
                if @Heatpump_State != #prevHeatPumpState then
                    @SetHeatpump = #prevHeatPumpState;
                end
                #prevOperatingMode = 4;
                #prevHeatPumpState = 1;
                #DHWRun = -1;
            end
        end
        setTimer(6,900);
    end
end

on maxPumpDuty then
    if #allowPumpSpeed == 1 then
        #allowPumpSpeed = 0;
        if @ThreeWay_Valve_State == 1 then
            if @DHW_Temp <= @DHW_Target_Temp then
                if @Max_Pump_Duty != 220 then
                    @SetMaxPumpDuty = 220;
                end
            else
                if @Max_Pump_Duty != 85 then
                    @SetMaxPumpDuty = 85;
                end
            end
        end
        if @ThreeWay_Valve_State == 0 && @Heatpump_State == 1 then
            if @Outside_Temp < 10 then
                $MPF = 11;
            else
                $MPF = 10;
            end
            if @Outside_Temp < 5 then
                $MPF = 12;
            end
            if @Outside_Temp < 2 then
                $MPF = 13;
            end
            if @Compressor_Freq == 0 then
                $MPF = 8;
            end
            if @Pump_Flow < $MPF then
                #maxPumpDuty = #maxPumpDuty + 5;
            else
                if @Pump_Flow > $MPF + 1 then
                    #maxPumpDuty = #maxPumpDuty - 1;
                end
            end
            if #maxPumpDuty > 140 then
                #maxPumpDuty = 140;
            end
            if @Max_Pump_Duty != #maxPumpDuty then
                @SetMaxPumpDuty = #maxPumpDuty;
            end
        end
        setTimer(5, 60);
    end
end

on silentMode then
    if #allowSilentMode == 1 then
        #allowSilentMode = 0;
        if @Outside_Temp > 9 then
            #silentMode = 3;
        else
            if @Outside_Temp > 4 then
                #silentMode = 2;
            else
                if @Outside_Temp > 1 then
                    if %hour > 22 || %hour < 7 then
                        #silentMode = 1;
                    else
                        #silentMode = 0;
                    end
                end
            end
        end
        setTimer(3, 900);
        quietMode();
    end
end

on syncOpenTherm then
    if  #allowSyncOT == 1 then
        ?outletTemp = @Main_Outlet_Temp;
        ?inletTemp = @Main_Inlet_Temp;
        ?outsideTemp = @Outside_Temp;
        ?dhwTemp = @DHW_Temp;
        ?dhwSetpoint = @DHW_Target_Temp;
        if isset(?chEnable) && isset(?chSetpoint) && isset(?roomTempSet) && isset(?roomTemp) && ?roomTempSet != 0 && ?roomTemp != 0 then
            #thermostatState = 1;
        end
        if ?chEnable == 1 then
            #chEnable = 1;
            if #chEnableTimeOff != -1 then
                #chEnableTimeOff = -1;
                #chEnableOffTime = -1;
            end
        else
            if #chEnableTimeOff == -1 then
                #chEnableTimeOff = #timeRef;
            end
            #chEnableOffTime = #timeRef - #chEnableTimeOff;
            if #chEnableOffTime < 0 then
                #chEnableOffTime = #timeRef - #chEnableTimeOff + 10080;
            end
            if #chEnableOffTime > 5 then
                #chEnable = 0;
            end
        end
        #dhwEnable = ?dhwEnable;
        if #maxTa != -1 then
            ?maxTSet = #maxTa;
        end
        if @Compressor_Freq == 0 then
            ?flameState = 0;
            ?chState = 0;
            ?dhwState = 0;
        else
            ?flameState = 1;
            if @ThreeWay_Valve_State == 0 then
                ?chState = 1;
                ?dhwState = 0;
            else
                ?chState = 0;
                ?dhwState = 1;
            end
        end
    end
end

on WAR then
    if #allowWAR == 1 then
        #allowWAR = 0;
        $Ta1 = @Z1_Heat_Curve_Target_Low_Temp;
        $Tb1 = @Z1_Heat_Curve_Outside_High_Temp;
        $Ta2 = 36;
        $Tb2 = @Z1_Heat_Curve_Outside_Low_Temp;
        if @Outside_Temp >= $Tb1 then
            #maxTa = $Ta1;
        else
            if @Outside_Temp <= $Tb2 then   #maxTa = $Ta2;
            else
                #maxTa = 1 + floor(0.9 + $Ta1 + (($Tb1 - @Outside_Temp) * ($Ta2 - $Ta1) / ($Tb1 - $Tb2)));
            end
        end
        setTimer(4,1800);
    end
end

on compFreq then
    if @Compressor_Freq > 18 then
        if #compState < 1 then
            #compStartTime = #timeRef;
            #compState = 1;
        end
        #compRunTime = #timeRef - #compStartTime;
        if #compRunTime < 0 then
            #compRunTime = #timeRef - #compStartTime + 10080;
        end
    else
        #compState = 0;
        #compStartTime = -1;
        #compRunTime = -1;
        #sSC = 0;
        #softStartPhase = -1;
        if #mildMode != #silentMode && #mildMode != -1 && #silentMode != 1 then
            #mildMode = #silentMode;
            QuietMode();
        end
    end
end

on @Compressor_Freq then
    compFreq();
end

on timer=1 then
    if #firstBoot == 1 then
        #firstBoot = 0;
        #heatPumpState = @Heatpump_State;
        #operatingMode = @Operating_Mode_State;
        #sSC = 0;
        compFreq();
        WAR();
        syncOpenTherm();
    else
        WAR();
        silentMode();
        syncOpenTherm();
        pumpDuty();
        DHW();
        OTThermostat();
    end
    setTimer(1,15);
end

on timer=2 then
    #timeRef = %day * 1440 + %hour * 60 + %minute;
    setTimer(2,60);
end

on timer=3 then
    #allowSilentMode = 1;
end

on timer=4 then
    #allowWAR = 1;
end

on timer=5 then
    #allowPumpSpeed = 1;
end

on timer=6 then
    #allowDHW = 1;
end

on timer=7 then
    #allowOTThermostat  = 1;
end

on timer=8 then
    if #sSC > 1 then
        #sSC = #sSC - 1;
        setTimer(8,900);
    end
end

[ Voor 255% gewijzigd door blb4 op 19-11-2023 00:09 . Reden: update 20231119: vrij grote update, zie ook Github ]

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


Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
.

[ Voor 194% gewijzigd door blb4 op 26-10-2023 22:28 ]

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


Acties:
  • +2 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
Dit is wat ik zelf aan het testen ben op basis van de toekomstige async rules functionaliteit, maar is natuurlijk ook weer simpelweg terug te bouwen naar een sync run.
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
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
on System#Boot then
    #WPAan = 0;
    #WPUit = 0;
    #prevSilentMode = 0;
    #silentMode = 0;
    #maxShift = 0;
    #maxTa = 0;
    #onTemp = 0;
    #outletOnTemp = 0;
    #prevOutletTemp = 0;
    #varCounter1 = 0;
    #varCounter2 = 0;
    #totalRunTime = 0;
    #allowSilentMode = 1;
    #allowShift = 1;

    setTimer(1, 10);
    setTimer(3, 1200);
end

on timer=1 then
    sync if 1 == 1 then
        #OT = @Outside_Temp;
        #T = ?Temperature;
        #CF = @Compressor_Freq;
        #ST = ?State;
        #OHT = @Z1_Heat_Curve_Outside_High_Temp;
        #TLT = @Z1_Heat_Curve_Target_Low_Temp;
        #OLT = @Z1_Heat_Curve_Outside_Low_Temp;
        #THT = @Z1_Heat_Curve_Target_High_Temp;
        #MOT = @Main_Outlet_Temp;
        #MIT = @Main_Inlet_Temp;
        #MTT = @Main_Target_Temp;
        #SP = ?Setpoint;
        #T1 = #SP + 0.20;
        #T2 = #SP - 0.20;
        #HP = @High_Pressure;
        #DS = @Defrosting_State;
        #HRT = @Z1_Heat_Request_Temp;
    end

    setTimer(1, 10);
end

on timer=2 then
    #allowSilentMode = 1;
end

on checkSilentMode then
    if isset(#OT) == 1 && isset(#ST) then
        if #allowSilentMode == 1 then
            if #OT < 2 then
                if %hour > 22 || %hour < 7 then
                    #silentMode = 1;
                else
                    #silentMode = 0;
                end
            elseif #OT < 5 then
                #silentMode = 1;
            elseif #OT < 10 then
                #silentMode = 2;
            else
                #silentMode = 3;
            end
            if #prevSilentMode != #silentMode && #ST == 1 then
                setTimer(2, 900);
                #allowSilentMode = 0;
                #prevSilentMode = #silentMode;
                #varCounter2 = coalesce(#varCounter2, 0) + 1;
                @SetQuietMode = #silentMode;
            end
        end
    end
end

on stooklijn then
    $diff = 0;
    $offset = 0;
    if #OT < 2 then
        $offset = -0.2;
    end
    if #targetTempDiff <= (0 + $offset) then
        if (#maxTa - #MOT) >= 3 then
            $diff = -4;
        else
            $diff = -3;
        end
    elseif #targetTempDiff <= (0.2 + $offset) then
        if (#maxTa - #MOT) >= 1 then
            $diff = -2;
        else
            $diff = -1;
        end
    elseif #targetTempDiff >= (0.4 + $offset) then
        $diff = 1;
    end
    if $diff != 0 && isset(#TLT) && isset(#THT) then
        if (#maxTa + $diff) >= #TLT && (#maxTa + $diff) <= #THT then
            #maxShift = $diff;
        elseif $diff < 0 then
            if (#maxTa + $diff) >= #TLT then
                #maxShift = max(min((#maxTa - #MOT), 0), -1);
            else
                #maxShift = min((#TLT - #maxTa), (#maxTa - #MTT), 0);
            end
        elseif $diff > 0 && (#maxTa + $diff) > #THT then
            #maxShift = 0;
        end
    end
end

on berekenWar then
    if isset(#OT) && isset(#OHT) && isset(#TLT) && isset(#OLT) && isset(#THT) then
        if #OT >= #OHT then
            #maxTa = #TLT;
        elseif #OT <= #OLT then
            #maxTa = #THT;
        else
            #maxTa = ceil(#TLT + ((#OHT - #OT) * (#THT - #TLT) / (#OHT - #OLT)));
        end
    end

    stooklijn();
end

on timer=6 then
    #allowShift = 1;
end

on setNewTemp then
    if isset(#MOT) && isset(#MIT) && isset(#HP) && isset(#DS) && isset(#HRT) then
        #dT = #MOT - #MIT;
        if #maxShift < 0 && ((#dT < 3 && #outletOnTemp == 0) || #HP < 15) then
            #maxShift = 0;
        end
        #dTOutlet = #MOT - (#maxTa + #maxShift);
        if #dTOutlet > 1 && #DS == 0 && #allowShift == 1 then
            setTimer(5, 90);
            #allowShift = 0;
        end
        if #ST == 0 then
            #maxShift = 0;
        end
        if (#prevShift != #maxShift || #HRT != #maxShift) && #ST == 1 then
            #prevShift = #maxShift;
            #varCounter1 = coalesce(#varCounter1, 0) + 1;
            @SetZ1HeatRequestTemperature = #maxShift;
        end
    end
end

on timer=5 then
    #maxShift = max(min((#maxTa - #MOT), 0), -1);
    setTimer(6, 900);
    setNewTemp();
end

on resetTeller then
    #tellerAan = 0;
    #tellerUit = 0;
end

on resetDummy then
    #WPAan = 0;
    #WPUit = 0;
    resetTeller();
end

on WPUit then
    #runTime = 0;
    #WPAan = 0;
    #WPUit = 2;
    #Teller = 0;
    #outletOnTemp = 0;
end

on WPAan then
    #WPAan = 2;
    #WPUit = 0;
end

on schakelWP then
    if #WPUit == 1 then
        WPUit();
    end
    if #WPAan == 1 then
        WPAan();
    end

    resetTeller();
    resetDummy();
end

on ?state then
    if #ST == 0 then
        WPUit();
    end
    if #ST == 1 then
        WPAan();
    end
end

on @Main_Outlet_Temp then
    if #MOT >= #maxTa   then
        #outletOnTemp = 1;
    end
    #prevOutletTemp = #MOT;
    berekenWar();
    setNewTemp();
end

on @Main_Inlet_Temp then
    berekenWar();
    setNewTemp();
end

on timer=3 then
    #targetTempDiff = #SP - #T;

    if #T > #T1 then
        #onTemp = 1;
    elseif #T < #T2 then
        #onTemp = 0;
    else
        resetDummy();
    end

    if #OT > 0 && #DS == 0 && #CF == 0 && #ST == 1 && #OT >= 6 then
        if #onTemp == 3 then
            #WPAan = 0;
            #WPUit = 1;
            schakelWP();
        else
            #outletOnTemp = 0;
        end
    end

    berekenWar();
    setNewTemp();
    checkSilentMode();

    if #ST == 1 then
        #runTime = coalesce(#runTime, 0) + 1;
    end

    #totalRunTime = coalesce(#totalRunTime, 0) + 1;

    setTimer(3, 60);
end


Doel is drieledig:

1. Puur op basis van de thermostaat runs te kunnen maken. Dus als de domotica uitvalt, dan moet het alsnog werken.
2. Silent mode sturen op basis van de buitentemperatuur om met zo min mogelijk sturing toch een slow start te bereiken.
3. Automatisch shiften, maar wel met zo min mogelijk sturing o.b.v. de gemeten temperatuur van de thermostaat. Niet vaker dan elke 5 minuten.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +1 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
Hierbij de laatste versie waarbij de rules ook de hele thermostaat doet o.b.v. een externe DS18B20.
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
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
377
378
379
380
381
382
383
384
385
386
387
388
389
390
on System#Boot then
    #WPAan = 0;
    #WPUit = 0;
    #dTOffset = -1;
    #newTargetTemp = 0;
    #prevTargetTemp = 0;
    #maxTa = 0;
    #onTemp = 0;
    #outletOnTemp = 0;
    #varCounter = 0;
    #allowPumpDuty = 1;
    #newPumpDuty = 109;

    setTimer(2, 0);
    setTimer(3, 60);
end

on setThermostaat then
    #nachtverlaging = 0;
    #zomerverlaging = 0;
    #T1 = ?setpoint + 0.25;
    #T2 = ?setpoint - 0.25;

    if @Outside_Temp >= 0 && (%hour <= 6 || %hour >= 22) then
        #T1 = #T1 + #nachtverlaging;
        #T2 = #T2 + #nachtverlaging;
        #nachtverlaging = 0;
        #zomerverlaging = 0;
    else
        if %month >= 4 && %month <= 10 then
            #T1 = #T1 + #zomerverlaging;
            #T2 = #T2 + #zomerverlaging;
            #nachtverlaging = 0;
            #zomerverlaging = 0;
        end
    end
end

on timer=4 then
    #allowPumpDuty = 1;
end

on setPumpDuty then
    if #allowPumpDuty == 1 then
        if @Max_Pump_Duty != #newPumpDuty then
            setTimer(4, 900);
            #allowPumpDuty = 0;
            @SetMaxPumpDuty = #newPumpDuty;
        end
    end
end

on @Outside_Temp then
    if #targetTempDiff <= 0 then
        #newPumpDuty = 80;
    else
        if @Outside_Temp < 2 then
            #newPumpDuty = 98;
        else
            #newPumpDuty = 109;
        end
    end
    setPumpDuty();
end

on stooklijn then
    $diff = 0;
    if #targetTempDiff <= -0.10 then
        $diff = 4;
    else
        if #targetTempDiff <= 0 then
            $diff = 2;
        else
            if #targetTempDiff <= 0.25 then
                $diff = 1;
            end
        end
    end
    if (#maxTa - $diff) > #Taanvoer1 then
        #maxTa = #maxTa - $diff;
    else
        #maxTa = #Taanvoer1;
    end
end

on berekenWar then
    #Taanvoer1 = 32;
    $Tbuiten1 = 14;
    $Taanvoer2 = 41;
    $Tbuiten2 = -4;

    if @Outside_Temp >= $Tbuiten1 then
        #maxTa = #Taanvoer1;
    else
        if @Outside_Temp <= $Tbuiten2 then
            #maxTa = $Taanvoer2;
        else
            #maxTa = #Taanvoer1 + (($Tbuiten1 - @Outside_Temp) * ($Taanvoer2 - #Taanvoer1) / ($Tbuiten1 - $Tbuiten2));
        end
    end
    if #onTemp == 0 then
        if @Outside_Temp < 0 then
            #maxTa = #maxTa + 4;
        else
            if @Outside_Temp < 6 then
                #maxTa = #maxTa + 3;
            else
                #maxTa = #maxTa + 2;
            end
        end
    end
    stooklijn();
end

on setNewTemp then
    if isset(@Main_Outlet_Temp) && isset(@Main_Inlet_Temp) && isset(?setpoint) then
        if #onTemp == 3 && #outletOnTemp == 1 then
            if #newTargetTemp < #maxTa then
                #newTargetTemp = #maxTa - 1;
            end
            if #newTargetTemp < #Taanvoer1 then
                #newTargetTemp = #Taanvoer1;
            end
        end
        if #newTargetTemp > #maxTa then
            #newTargetTemp = #maxTa;
        end
        #dTOutlet = @Main_Outlet_Temp - #newTargetTemp;
        #dT = @Main_Outlet_Temp - @Main_Inlet_Temp;
        if (#dT < 3) && #dTOffset < 0 && #outletOnTemp == 0 && #onTemp < 3 then
            #dTOffset = 0;
        end
        if (#dTOutlet > 1 || #dTOffset >= 0) && @Defrosting_State == 0 then
            #newTargetTemp = @Main_Outlet_Temp + #dTOffset;
        end
        if @Outside_Temp <= 2 && #onTemp == 0 then
            #newTargetTemp = #maxTa;
        end
        if #newTargetTemp < 20 then
            #newTargetTemp = 20;
        end
        if #newTargetTemp != @Main_Target_Temp || #newTargetTemp != #prevTargetTemp then
            #prevTargetTemp = #newTargetTemp;
            #varCounter = coalesce(#varCounter, 0) + 1;
            @SetZ1HeatRequestTemperature = round(#newTargetTemp);
        end
    end
end

on resetTeller then
    #tellerAan = 0;
    #tellerUit = 0;
end

on resetDummy then
    #WPAan = 0;
    #WPUit = 0;
    resetTeller();
end

on schakelWP then
    if #WPUit == 1 then
        @SetHeatpump = 0;
        WPUit();
    end
    if #WPAan == 1 then
        @SetHeatpump = 1;
        WPAan();
    end

    resetTeller();
    resetDummy();
end

on @Heatpump_State then
    if @Heatpump_State == 0 && #WPAan != 1 then
        WPUit();
    end
    if @Heatpump_State == 1 && #WPUit != 1 then
        WPAan();
    end
end

on WPUit then
    #runTime = 0;
    #WPAan = 0;
    #WPUit = 2;
    #Teller = 0;
    #outletOnTemp = 0;
    setTimer(5, 0);
    setTimer(2, 60);
end

on WPAan then
    #WPAan = 2;
    #WPUit = 0;
end

on @Main_Outlet_Temp then
    if @Main_Outlet_Temp >= #maxTa then
        #outletOnTemp = 1;
    end
    berekenWar();
    setNewTemp();
end

on @Main_Inlet_Temp then
    berekenWar();
    setNewTemp();
end

on setTimer5 then
    if #Temp < #T2 && @Main_Outlet_Temp < #maxTa then
        setTimer(5, 5);
        setTimer(2, 0);
    else
        setTimer(5, 0);
        setTimer(2, 60);
    end
end

on setTimers then
    if @Outside_Temp > 2 then
        if @Outside_Temp < 6 || #targetTempDiff >= 1 then
            setTimer5();
        else
            if #onTemp == 0 && #runTime > 60 then
                setTimer5();
            else
                setTimer(5, 0);
                setTimer(2, 60);
            end
        end
    else
        setTimer(5, 0);
        setTimer(2, 60);
    end
end

on timer=5 then
    if @Defrosting_State == 0 then
        if (@Main_Outlet_Temp < #maxTa) || #onTemp == 0 then
            #teller1 = coalesce(#teller1, 0) + 1;
            #teller2 = coalesce(#teller1, 0) % 60;
            if #teller2 > 120 then
                #teller1 = 61;
            end
            if #teller2 == 0 then
                #dTOffset = coalesce(#dTOffset, 0) + 2;
            end
            if #dTOffset > 2 then
                #dTOffset = 2;
            end
        else
            #teller1 = 0;
            #teller2 = 0;
        end
    end

    if coalesce(#prevOutletTemp, 0) < @Main_Outlet_Temp then
        if (coalesce(#prevOutletTemp, 0) < @Main_Outlet_Temp) || @Defrosting_State == 0 then
            #teller1 = 0;
        end
        #prevOutletTemp = @Main_Outlet_Temp;
    end
    setTimers();
end

on setOnTemp then
    #onTemp = coalesce(#onTemp, 0) + 1;
    if #onTemp > 3 then
        #onTemp = 3;
        if #dTOffset > 0 then
            #dTOffset = -1;
        end
    end
end

on ?Temperature then
    setThermostaat();
end

on timer=3 then
    #Temp = ?Temperature;
    #setpoint = ?setpoint;

    #targetTempDiff = #setpoint - #Temp;

    if #Temp > #T1 then
        if #WPUit == 0 then
            #tellerUit = coalesce(#tellerUit, 0) + 1;
            if #tellerUit > 5 then
                if @Outside_Temp >= 6 then
                    #WPAan = 0;
                    #WPUit = 1;
                    schakelWP();
                else
                    #WPUit = 0;
                    #tellerUit = 0;
                end
            end
        end
        setOnTemp();
    else
        if #Temp < #T2 then
            #onTemp = 0;
            if #WPAan == 0 then
                #tellerAan = coalesce(#tellerAan, 0) + 1;
                if #tellerAan > 5 || @Outside_Temp <= 2 then
                    #WPAan = 1;
                    #WPUit = 0;
                    schakelWP();
                end
            end
        else
            setOnTemp();
            resetDummy();
        end
    end

    if @Outside_Temp > 0 then
        if @Defrosting_State == 0 then
            if @Compressor_Freq == 0 && @Heatpump_State == 1 && @Outside_Temp >= 6 then
                if #onTemp == 3 then
                    #WPAan = 0;
                    #WPUit = 1;
                    schakelWP();
                else
                    #dTOffset = 5;
                    #outletOnTemp = 0;
                end
            end
        end
    end

    berekenWar();
    setNewTemp();

    if @Heatpump_State == 1 then
        #runTime = coalesce(#runTime, 0) + 1;
        setTimers();
    end
    setTimer(3, 60);
end

on timer=2 then
    #Teller = coalesce(#Teller, 0) + 1;

    if @Compressor_Freq > 0 then
        #dTOffset = -1;
    end

    if #onTemp == 3 && @Outside_Temp < 4 then
        if #dTOffset > 0 then
            #dTOffset = -1;
            setTimer(2, 60);
        else
            if @Defrosting_State == 0 then
                if #Teller == 2 then
                    #dTOffset = -1;
                    setTimer(2, 60);
                else
                    #dTOffset = -2;
                    setTimer(2, 30);
                end
                if #dTOffset <= -2 then
                    #dTOffset = -2;
                    setTimer(2, 30);
                end
            else
                setTimer(2, 60);
            end
        end

        if coalesce(#outletOnTemp, 0) == 0 && @Compressor_Freq > 0 then
            #dTOffset = -1;
            setTimer(2, 60);
        end

        berekenWar();
        setNewTemp();
        setTimers();
    else
        setTimer(2, 30);
    end

    if #Teller == 2 then
        #Teller = 0;
    end
end


Inclusief slow start, aanpassing van de pomp snelheid, stooklijn shifts etc.

Dit is overigens een voorloper versie van de daadwerkelijke OT integratie, dus de varnamen komen niet overeen.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +1 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
Overigens moet voor het volgen van de WAR berekening van de WP je floor een ceil zijn.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +2 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 21:23

Beekforel

Is eigenlijk geen vis

blb4 schreef op donderdag 26 oktober 2023 @ 22:23:
Mijn rules set (20231026):
PAS OP: Dit is op dit moment ter lering en vermaak! Deze set draait bij mij maar is niet geheel stabiel en ik maak hier nu regelmatig wijzigingen aan!

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
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
on System#Boot then
 setTimer(1,30);
 setTimer(2,40);
 setTimer(3,50);
 #FQuietMode = 1;
 #FPumpSpeed = 1;
 #FDHW = 1;
 #FOTThermostat = 1;
 #FSoftStart = 1;

 #chState = -1;
 #chEnable = -1;
 #chEnableCounter = -1;
 #QMtimer = -1;
 #PStimer = -1;
 #MaxPumpDuty = 90;
 #OperatingModeLast = -1;
 #HeatPumpStateLast = -1;
 #DHWRun = -1;
 #DHWTargetLast = -1;
 #3WayValve = -1;
 #LegionellaRunDay = 7;
 #SoftStartPhase = -1;
 #SoftStartCorrection = 0;
 #MainTargetTemp = -1;
 #PumpSpeedStatus = -1;
 #CompMinTimer = -1;
end

on @Main_Inlet_Temp then
 ?inletTemp = @Main_Inlet_Temp;
end

on @Outside_Temp then
 ?outsideTemp = @Outside_Temp;
end

on @DHW_Temp then
 ?dhwTemp = @DHW_Temp;
end

on @Main_Outlet_Temp then
 ?outletTemp = @Main_Outlet_Temp;
 OTThermostat();
end

on @Compressor_Freq then
 Set_OT_States();
 QuietMode();
 CompFreqFunction();
end

on CompFreqFunction then
 if @Compressor_Freq == 0 then
   SetMaxPumpDuty();
   #SoftStartPhase = -1;
   #SoftStartCorrection = 0;
 else
  if #SoftStartPhase == -1 then
   #SoftStartPhase = 0;
  end
  if #CompMinTimer == -1 then
   #CompMinTimer = 1;
   setTimer(8,900);
  end
 end
end

on timer=8 then
 #CompMinTimer = 0;
end

on @ThreeWay_Valve_State then
 SetMaxPumpDuty();
end

on @Pump_Flow then
 SetMaxPumpDuty();
end

on timer=1 then
 Set_OT_States();
 #OperatingModeLast = @Operating_Mode_State;
 #HeatPumpStateLast = @Heatpump_State;
end

on timer=2 then
 ?inletTemp = @Main_Inlet_Temp;
 ?outsideTemp = @Outside_Temp;
 ?dhwTemp = @DHW_Temp;
 ?dhwSetpoint = @DHW_Target_Temp;
 #dhwEnable = ?dhwEnable;
 #3WayValve = @ThreeWay_Valve_State;
 #month = %month;
 #day = %day;
 #hour = %hour;
 #minute = %minute;
 Calculate_WAR();
 if #FDHW == 1 then
  Check_DHW();
 end
 if #FSoftStart == 1 then
  CompFreqFunction();
 end
 OTThermostat();
 chEnable();
 setTimer(2,60);
end

on chEnable then
 if ?chEnable == 1 then
 #chEnable = 1;
 #chEnableCounter = 0;
 else
  setTimer(7,5);
 end
end

on timer=7 then
 if ?chEnable == 0 && ?chSetpoint == 10 then
  #chEnableCounter = #chEnableCounter + 1;
  setTimer(7,10);
 end
 if #chEnableCounter > 5 then
  #chEnable = 0;
  #chEnableCounter = -1;
 end
end

on Calculate_WAR then
 $Ta1 = @Z1_Heat_Curve_Target_Low_Temp;
 $Tb1 = @Z1_Heat_Curve_Outside_High_Temp;
 $Ta2 = 37;
 $Tb2 = @Z1_Heat_Curve_Outside_Low_Temp;
if @Outside_Temp >= $Tb1 then
  #maxTa = $Ta1;
 else
  if @Outside_Temp <= $Tb2 then
   #maxTa = $Ta2;
  else
   #maxTa = floor($Ta1 + (($Tb1 - @Outside_Temp) * ($Ta2 - $Ta1) / ($Tb1 - $Tb2)));
  end
 end
 ?maxTSet = #maxTa;
end

on Set_OT_States then
 if @Compressor_Freq == 0 then
  ?flameState = 0;
  ?chState = 0;
  ?dhwState = 0;
else
  ?flameState = 1;
  if @ThreeWay_Valve_State == 0 then
   ?chState = 1;
   ?dhwState = 0;
  else
   ?chState = 0;
   ?dhwState = 1;
  end
 end
end

on QuietMode then
 if #FQuietMode == 1 then
  if @Compressor_Freq == 0 then
   if @Quiet_Mode_Level != 3 && #QMtimer != 0 then
    @SetQuietMode = 3;
    #QMtimer = 0;
   end
  else
   if @ThreeWay_Valve_State == 0 then
    if #chState != 1 then
     if #QMtimer != 1 then
      settimer(4,300);
      #QMtimer = 1;
     end
    end
   end
  end
 end
end

on timer=4 then
 if @Compressor_Freq > 30 then
  settimer(4,400);
 else
  if @Quiet_Mode_Level != 0 then
   @SetQuietMode = 0;
  end
  #QMtimer = 0;
 end
end

on SetMaxPumpDuty then
 if #FPumpSpeed == 1 && #PStimer != 0 then
  #PStimer = 1;
  setTimer(9,10);
  if @ThreeWay_Valve_State == 1 && @Max_Pump_Duty != 220 then
   @SetMaxPumpDuty = 220;
   #PumpSpeedStatus = 3;
  end
  if @ThreeWay_Valve_State == 0 && @Heatpump_State == 1 then
   $MPF = 10;
   #PumpSpeedStatus = 2;
   if @Compressor_Freq == 0 then
    $MPF = 8;
    #PumpSpeedStatus = 1;
   end
   if @Pump_Flow < $MPF then
    #MaxPumpDuty = #MaxPumpDuty + 5;
   else
    if @Pump_Flow > $MPF + 1 then
     #MaxPumpDuty = #MaxPumpDuty - 1;
    else
     #MaxPumpDuty = #MaxPumpDuty;
    end
   end
   if #MaxPumpDuty > 140 then
    #MaxPumpDuty = 140;
   end
   if @Max_Pump_Duty != #MaxPumpDuty then
    @SetMaxPumpDuty = #MaxPumpDuty;
   end
  end
 end
end

on timer=9 then
 #PStimer = 0;
end

on Check_DHW then
 if #FDHW == 1 then
  if @ThreeWay_Valve_State == 0 && (@DHW_Temp < 39 || (%hour == 13 && (%day == #LegionellaRunDay || @DHW_Temp <  @DHW_Target_Temp + @DHW_Heat_Delta))) then
   DHWRun();
  end
  if #DHWRun == 1 then
   if @ThreeWay_Valve_State == 0 && @DHW_Temp > 49 then
    if %day == #LegionellaRunDay then
     @SetDHWTemp = #DHWTargetLast;
     #DHWTargetLast = -1;
     @SetForceSterilization = 1;
    end
    @SetOperationMode = #OperatingModeLast;
    @SetHeatpump = #HeatPumpStateLast;
    #OperatingModeLast = 3;
    #HeatPumpStateLast = 1;
    #DHWRun = -1;
   end
  end
 end
end

on DHWRun then
 #OperatingModeLast = @Operating_Mode_State;
 #HeatPumpStateLast = @Heatpump_State;
 if %day == #LegionellaRunDay then
  #DHWTargetLast = @DHW_Target_Temp;
  @SetDHWTemp = 57;
 end
 @SetOperationMode = 3;
 @SetHeatpump = 1;
 #DHWRun = 1;
end

on OTThermostat then
 if #FOTThermostat == 1 && #OperatingModeLast != -1 && #HeatPumpStateLast != -1 then
  if #chenable == 1 && #DHWRun != 1 then
   Softstart();
   #MainTargetTemp = ?chSetpoint + #SoftStartCorrection;
   if #MainTargetTemp < 20 then
    #MainTargetTemp = 20;
   end
   if #MainTargetTemp > 40 then
     #MainTargetTemp = 40;
   end
   if @Z1_Heat_Request_Temp != #MainTargetTemp then
    @SetZ1HeatRequestTemperature = floor(#MainTargetTemp);
   end
   if @Operating_Mode_State != 0 then
    @SetOperationMode = 0;
   end
   if @Heatpump_State != 1 then
    @SetHeatpump = 1;
   end
  end
  if #chenable == 0 && #DHWRun == -1 && #CompMinTimer == 0 then
   @SetHeatpump = 0;
  end
 end
end

on Softstart then
 if #FSoftStart == 1 then
  if @Operating_Mode_State == 0 && #SoftStartPhase == 0 then
   #SoftStartPhase = 1;
   setTimer(6,10);
  end
  if @Operating_Mode_State == 0 && #SoftStartPhase == 3 then
   if ?chSetpoint <= @Main_Outlet_Temp then
    #SoftStartCorrection = @Main_Outlet_Temp - 0.5 - ?chSetpoint;
   end
   if ?chSetpoint > @Main_Outlet_Temp then
    #SoftStartCorrection = @Main_Outlet_Temp + 1 - ?chSetpoint;
   end
  end
  if #SoftStartCorrection > 5 then
   #SoftStartCorrection = 5;
  end
  if #SoftStartCorrection < -5 then
   #SoftStartCorrection = -5;
  end
 end
end

on timer=6 then
 if #SoftStartPhase == 4 then
  if #SoftStartCorrection > 0 then
   #SoftStartCorrection = #SoftStartCorrection - 1;
   setTimer(6,900);
  else
   #SoftStartCorrection = 0;
   #SoftStartPhase = -2;
  end
 end
if #SoftStartPhase == 3 then
  #SoftStartPhase = 4;
  setTimer(6,10);
 end
 if #SoftStartPhase == 2 then
  #SoftStartPhase = 3;
  setTimer(6,3600);
 end
 if #SoftStartPhase == 1 then
  #SoftStartPhase = 2;
  #SoftStartCorrection = -2;
  setTimer(6,120);
 end
end
Na een nachtje draaien op deze ruleset:
- de WP lijkt zich wel goed te gedragen, reageert lekker op de OT en lijkt iets minder stroom te verbruiken dan op stooklijn
- de delta T wordt genegeerd? Of geldt dat alleen bij stooklijn?
- de OT states (flameState / chState) updaten niet goed
- QM lijkt bij mij op 3 te blijven staan

Hij vindt het nu warm genoeg dus is nu uitgegaan. Vandaag even afwachten hoe het verder gaat.

Acties:
  • +1 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Beekforel schreef op vrijdag 27 oktober 2023 @ 08:56:
[...]

Na een nachtje draaien op deze ruleset:
Jij durft :) Ik zal zo wat ervaringen delen van mijn kant.
update: dit is laatste 1,5 uur bij mij. De laatste run is prima, maar die korte start/stops daarvoor niet. QuietMode gaat nog niet goed (geen QM3 bij start compressor) en ook de eerste fase van softstart niet (target temp te laag denk ik).
Afbeeldingslocatie: https://tweakers.net/i/jwqXW29_HXKxkwJE2vAdlW3BseY=/800x/filters:strip_exif()/f/image/Q0AMHZcc1KZ8nczCGPtzHCRL.png?f=fotoalbum_large

[ Voor 119% gewijzigd door blb4 op 27-10-2023 12:33 . Reden: ervaring 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


Acties:
  • +1 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 21:23

Beekforel

Is eigenlijk geen vis

@blb4 ja ik dacht het is bijna weekend dus wel zin in een beetje tweaken. En het is niet gek koud dus bij een fout zitten we niet gelijk in de kou (en anders gaat de houtkachel aan).

Je beschrijving/documentatie kijk ik erg naar uit.

Acties:
  • +1 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Beekforel schreef op vrijdag 27 oktober 2023 @ 13:16:
@blb4 ja ik dacht het is bijna weekend dus wel zin in een beetje tweaken. En het is niet gek koud dus bij een fout zitten we niet gelijk in de kou (en anders gaat de houtkachel aan).

Je beschrijving/documentatie kijk ik erg naar uit.
Ja, voer de druk maar op :) Ik kijk wat ik vanavond kan doen, ik ga 't nu toch ff in een 2 kolomen word doc doen.

Heb inmiddels wat aangepast aan de QM functie, ff kijken of dat vanaf nu goed gaat.

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


Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 21:23

Beekforel

Is eigenlijk geen vis

blb4 schreef op vrijdag 27 oktober 2023 @ 13:36:
[...]

Ja, voer de druk maar op :) Ik kijk wat ik vanavond kan doen, ik ga 't nu toch ff in een 2 kolomen word doc doen.

Heb inmiddels wat aangepast aan de QM functie, ff kijken of dat vanaf nu goed gaat.
Ik weet het nog niet zeker, maar ik heb het vermoeden dat de underscores in je functienamen niet (goed) werken.

Acties:
  • +2 Henk 'm!

  • Aikon
  • Registratie: Februari 2001
  • Niet online
Grappig, ik ben bezig geweest om e.e.a. in HA te zetten, maar in weze zullen de Heishamon rules ongeveer hetzelfde zijn. Wel een stapje directer en mogelijk betrouwbaarder. :)
blb4 schreef op vrijdag 27 oktober 2023 @ 11:38:
[...]

Jij durft :) Ik zal zo wat ervaringen delen van mijn kant.
update: dit is laatste 1,5 uur bij mij. De laatste run is prima, maar die korte start/stops daarvoor niet. QuietMode gaat nog niet goed (geen QM3 bij start compressor) en ook de eerste fase van softstart niet (target temp te laag denk ik).
[Afbeelding]
Target temp te hoog bedoel je? Als je die 2 graden onder de outlet houdt voor max 3 minuten (en dan dus verhogen net voor hij afslaat) heb ik bij mijn J dat de frequentie het snelst inzakt.

Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 21:23

Beekforel

Is eigenlijk geen vis

Beekforel schreef op vrijdag 27 oktober 2023 @ 15:51:
[...]

Ik weet het nog niet zeker, maar ik heb het vermoeden dat de underscores in je functienamen niet (goed) werken.
Hij is nu als een gek aan het pendelen helaas. Heb de rules eruit gegooid, later vanavond misschien nog even kijken.

Acties:
  • +2 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
@blb4 Wat zeg je van het idee om bepaalde features losstaand te ontwikkelen. Dus een logica losstaand voor de softstart of voor shifting. Nu zitten in de voorbeeld rules alles al door elkaar waardoor het voor anderen ook lastiger wordt delen her te gebruiken.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +2 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
CurlyMo schreef op vrijdag 27 oktober 2023 @ 21:35:
@blb4 Wat zeg je van het idee om bepaalde features losstaand te ontwikkelen. Dus een logica losstaand voor de softstart of voor shifting. Nu zitten in de voorbeeld rules alles al door elkaar waardoor het voor anderen ook lastiger wordt delen her te gebruiken.
Dat is zeker een goed idee, 't wordt bij mij vaak snel spaghetti. Nu is prio 1 't stabiel krijgen van 't geheel, prio 2 is 't beter structureren. Maar waarschijnlijk zal omdraaien van de prioriteit slimmer zijn :)

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


Acties:
  • +1 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 21:23

Beekforel

Is eigenlijk geen vis

Koude voeten vanmorgen. :+

Heb gister deels gedaan wat @CurlyMo hierboven voorstelt. De rules van @blb4 ontvlochten en in kleine stukjes actief gemaakt om beter te begrijpen wat er gebeurt.

@CurlyMo in jouw rules valt mij op dat je heel veel data naar globals zet terwijl je imo die data ook zonder de global kunt vragen? Ik voorzie timingsproblemen? Bijvoorbeeld in het blokje vanaf regel 195. Of doe je dit met een reden?

De ceil in de CalculateWar leek mij ook logischer maar dat lijkt niet geaccepteerd te worden.

Verder heb ik de indruk dat
code:
1
if @Compressor_Freq == 0 then

minder goed werkt (of misschien wel niet?) en gebruik ik liever
code:
1
if @Compressor_Freq > 0 then

Met dan dus de logica van de loop andersom.

Acties:
  • +1 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
@Beekforel dat heb ik al uitgelegd. Dat komt omdat ik de async functionaliteit aan testen ben. Die is er nog niet in de Heishamon, daarvoor wacht ik nog wat testresultaten af van @blb4.

Wat ik dus doe is elke 10 seconden een ‘waarheid’ opslaan obv ik alle beslissingen neem. Dat kan ook vaker. Zo voorkom ik juist dat ik een beslissing probeer te berekenen, maar er tijdens de berekening (want async) de parameters veranderen.

Zie dus het woordje sync in dat blok.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Van 't weekend weinig tijd; verjaardagsweekend.... Hier wel wat redelijke goed runs gehad. nu DHW.
Wel al weer met een licht aangepaste rules set.
Afbeeldingslocatie: https://tweakers.net/i/vK-FAvMHXj20Y_gohC8SmuiMRXY=/800x/filters:strip_exif()/f/image/oMUgg4FInbO5TSHmMBFFFsin.png?f=fotoalbum_large

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


Acties:
  • +3 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
Laat ik een voorzet doen. @blb4 misschien kan je mij mede TS maken, dan kunnen we deze blokjes aan de TS toevoegen.

[ Voor 77% gewijzigd door CurlyMo op 28-10-2023 11:40 ]

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +2 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
CurlyMo schreef op zaterdag 28 oktober 2023 @ 10:43:
Laat ik een voorzet doen. @blb4 misschien kan je mij mede TS maken, dan kunnen we deze blokjes aan de TS toevoegen.
done

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


Acties:
  • 0 Henk 'm!

  • RichieB
  • Registratie: Mei 2003
  • Laatst online: 23:42
Ik waardeer dit draadje enorm (ook al heb ik nog geen WP). Het delen van (stukjes) code via GoT is niet ideaal. Zeker niet als ze vaak veranderen. Is het een idee om daarvoor een GitHub repo te gebruiken?

Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp


Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
RichieB schreef op zaterdag 28 oktober 2023 @ 18:41:
Ik waardeer dit draadje enorm (ook al heb ik nog geen WP). Het delen van (stukjes) code via GoT is niet ideaal. Zeker niet als ze vaak veranderen. Is het een idee om daarvoor een GitHub repo te gebruiken?
Dat is idd een idee, tweakers is daarvoor niet ideaal. Ik ben geen ster op Github, @CurlyMo heeft daar wel aardig wat ervaring mee.

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


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
blb4 schreef op zaterdag 28 oktober 2023 @ 19:24:
[...]

Dat is idd een idee, tweakers is daarvoor niet ideaal. Ik ben geen ster op Github, @CurlyMo heeft daar wel aardig wat ervaring mee.
En @RichieB, dat is dus het punt. Wil je dat iedereen mee kan denken of wil je alleen github experts die input geven. Ik verkies dat eerste.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • RichieB
  • Registratie: Mei 2003
  • Laatst online: 23:42
CurlyMo schreef op zaterdag 28 oktober 2023 @ 19:50:
[...]

En @RichieB, dat is dus het punt. Wil je dat iedereen mee kan denken of wil je alleen github experts die input geven. Ik verkies dat eerste.
Je kan toch prima hier discussiëren en meedenken over code gepubliceerd op GitHub? Linkje erbij naar de juiste commit+regel en iedereen weet precies over welke code het gaat.

Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp


Acties:
  • +3 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
RichieB schreef op zaterdag 28 oktober 2023 @ 20:56:
[...]

Je kan toch prima hier discussiëren en meedenken over code gepubliceerd op GitHub? Linkje erbij naar de juiste commit+regel en iedereen weet precies over welke code het gaat.
Dat klopt, maar er zijn genoeg niet programmeurs of andere niet github gebruiker die de rules gebruiken. Dus het gaat niet alleen om het discussiëren, maar ook dat onervaren mensen hun eigen rules ergens kunnen plaatsen.

Neemt overigens niet weg dat ik mij rules al lang voor dit topic in een github gist had staan:
https://gist.github.com/C...13bedb261e40130c2aadeb456

[ Voor 13% gewijzigd door CurlyMo op 28-10-2023 21:02 ]

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +1 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Laten we 't gewoon ff hier houden. Ik denk niet dat er idd een rules set uitkomt die voor iedereen direct toepasbaar is maar dat 't vooral zelfstandige blokken moeten worden voor bepaalde functionaliteit. We kunnen die dan steeds in de OT plaatsen.

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


Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
@CurlyMo,

ik probeer 't blok silent modus te laden, dat wordt geweigerd, waarschijnlijk door de elseifs. Idee hoe dat kan? Ik gok dat 't in elk geval handig is om er bij te zetten voor welke firmware versie de blokken geschikt zijn of welke versie ons uitgangspunt is (bijvoorbeeld laatste stabiele versie, laatste bèta oid.

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


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
blb4 schreef op zaterdag 28 oktober 2023 @ 21:13:
@CurlyMo,

ik probeer 't blok silent modus te laden, dat wordt geweigerd, waarschijnlijk door de elseifs. Idee hoe dat kan? Ik gok dat 't in elk geval handig is om er bij te zetten voor welke firmware versie de blokken geschikt zijn of welke versie ons uitgangspunt is (bijvoorbeeld laatste stabiele versie, laatste bèta oid.
Geen idee. Welke foutmelding krijg je? Elseif is al een tijdje ondersteund. Sinds 8 maanden om precies te zijn:
https://github.com/IgorYb...cf3d59596858db9608cd99ba5

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Afbeeldingslocatie: https://tweakers.net/i/_4RoT0HWHWKITwpk1YC12k_d1Jw=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/se1zEtpX8NxHzUNgstiX4mnU.png?f=user_large

net de laatste versie #397 / Alpha-d3d543f geladen, zelfde fout.

als ik 'm ombouw naar:

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
on System#Boot then
 #allowSilentMode = 0;
 #newPumpDuty = 0;
 #prevSilentMode = 0;
end

on timer=2 then
 #allowSilentMode = 1;
 #silentMode = 0;
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 = 0;
    end
   end
   if @Outside_Temp < 5 then
    #silentMode = 1;
   end
   if @Outside_Temp < 10 then
    #silentMode = 2;
   else
    #silentMode = 3;
   end
   if #prevSilentMode != #silentMode && @Heatpump_State == 1 then
    setTimer(2, 900);
    #allowSilentMode = 0;
    #prevSilentMode = #silentMode;
    @SetQuietMode = #silentMode;
   end
  end
 end
end


dan wordt 't wel geaccepteerd

[ Voor 73% gewijzigd door blb4 op 28-10-2023 21: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


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
Geen idee, ik ben niet thuis dus kan het niet testen. Maar in mijn testomgeving op mijn NAS werkt dit gewoon.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Ik ben begonnen met ‘t in zelfstandige routines zetten van mijn logica. Huidige rules set in 2de bericht, de zelfstandige routines heb ik in de OT gezet.

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


Acties:
  • +1 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
blb4 schreef op zaterdag 28 oktober 2023 @ 21:21:
[Afbeelding]

net de laatste versie #397 / Alpha-d3d543f geladen, zelfde fout.
Je hebt gelijk. Er zit blijkbaar een fout in de ELSEIF routine. In de PR die je nu met me aan het testen bent werkt het wel.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
CurlyMo schreef op zondag 29 oktober 2023 @ 22:02:
[...]

Je hebt gelijk. Er zit blijkbaar een fout in de ELSEIF routine. In de PR die je nu met me aan het testen bent werkt het wel.
Bedoel je deze?

[ Voor 12% gewijzigd door blb4 op 29-10-2023 22:11 ]

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


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +1 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Ik heb nieuwe blokken geladen, bijna alle functionaliteit die ik op dit moment wens zit er in:
  • Max Pump Speed based on HP status 1) DHW, 2) HEAT/COOL, IDLE flow;
  • QuiteMode based on time (e.g. at night) & outside temperature for Heat/Cool at start Compressor until Compressor Frequency < 30 Hz.;
  • DHW production if DHWTemp <39, every day at fixed time if DHWTemp < DHWTargetTemp + DHWDelta;
  • 1 x per week (at LegionellaRunDay) a DHW run till 57 degrees + legionellarun;
  • WAR calcuation based on WAR Temperature settings from HP;
  • Result of WAR calculation used for OT maxTSet (which is used by OT Thermostat as Maximum ?chSetpoint);
  • Sync OT values with HP values to have correct (status) values from HP communicated to OT Thermostat;
  • OT Thermostat HP control: 1) sync Main_Target_Temp with ?chSetpoint and 2) switch off HP (wapter pump) when ?chEnable is 0 (for a mimumum time);
  • Softstart function with 1) minimize Compressor Frequency asap and 2) increase Main_Target_Temp to extend the run time
De losse blokken staat in 't OT, zie dit bericht. voor mijn gehele rules set.

[ Voor 76% gewijzigd door blb4 op 01-11-2023 17:27 ]

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


Acties:
  • 0 Henk 'm!

  • Aikon
  • Registratie: Februari 2001
  • Niet online
Wat is eigenlijk de reden dat dhw target temp eerst op 57 graden wordt gezet? En waarom dan niet bijv. op 59, bij mij gaat Main Target Setpoint sowieso naar 59 als een dhw run begint, dus niet eens bij een legionella run.

Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Aikon schreef op woensdag 1 november 2023 @ 17:48:
Wat is eigenlijk de reden dat dhw target temp eerst op 57 graden wordt gezet? En waarom dan niet bijv. op 59, bij mij gaat Main Target Setpoint sowieso naar 59 als een dhw run begint, dus niet eens bij een legionella run.
't kan zijn dat ik nog niet goed de legionellarun logica door heb maar wat mijn idee achter mijn logica is:
Mijn standard DHWTargetTemp = 50 graden. Als DHWRun start zal de MainTarget idd op 57 graden worden gezet maar de compressor stopt dan als de 50 graden is bereikt. Als er dan daarna een legionellarun wordt gedaan (bij mij op extern element) dat wordt de boiler ep 't elektrische element van 50 graden naar 63 graden verwarmd. Door DHW target eerst op 57 graden te zetten wordt de boiler door de WP tot 57 graden verwarmd en hoeft 't element nog maar van 57 graden naar 63 graden te verwarmen.

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


Acties:
  • +1 Henk 'm!

  • Aikon
  • Registratie: Februari 2001
  • Niet online
Nee, zo werkt het niet. Hier in elk geval niet, heb je dat gedrag daadwerkelijk gezien? De main target gaat naar 59 (niet 57?) tijdens DHW, ongeacht wat je daadwerkelijk wil als eindtemperatuur voor DHW. Dan wordt netjes op ingestelde temp de boel weer gestopt tijdens een DHW run, en bij een legionella run gaat die door volgens de normale regels, dus na 3 min 2 graden boven target gaat de compressor uit (of eerder als je legionelle temp lager is, lijkt me). Als dan de ingestelde temp niet is bereikt, neemt de heater het over voor het laatste gedeelte naar bijv. 65.

Overigens zie ik ook niet dat DHW maximaal gaat als maxpumpduty op 100% staat. Ja, 1 keer, toevallig de eerste keer nadat ik dat had aangepast zoals ik een keer aangaf. Aangepast vóór operationmode naar DHW ging met voldoende vertraging, maar de 2x daarna bleef de compressor alsnog doorpruttelen op 35Hz. Ik snap niet waarom hij meestal niet hoger gaat. Quiet Mode staat iig niet aan ofzo.

Acties:
  • +1 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Aikon schreef op woensdag 1 november 2023 @ 18:20:
Nee, zo werkt het niet. Hier in elk geval niet, heb je dat gedrag daadwerkelijk gezien? De main target gaat naar 59 (niet 57?) tijdens DHW, ongeacht wat je daadwerkelijk wil als eindtemperatuur voor DHW. Dan wordt netjes op ingestelde temp de boel weer gestopt tijdens een DHW run, en bij een legionella run gaat die door volgens de normale regels, dus na 3 min 2 graden boven target gaat de compressor uit (of eerder als je legionelle temp lager is, lijkt me). Als dan de ingestelde temp niet is bereikt, neemt de heater het over voor het laatste gedeelte naar bijv. 65.

Overigens zie ik ook niet dat DHW maximaal gaat als maxpumpduty op 100% staat. Ja, 1 keer, toevallig de eerste keer nadat ik dat had aangepast zoals ik een keer aangaf. Aangepast vóór operationmode naar DHW ging met voldoende vertraging, maar de 2x daarna bleef de compressor alsnog doorpruttelen op 35Hz. Ik snap niet waarom hij meestal niet hoger gaat. Quiet Mode staat iig niet aan ofzo.
Ik ga 't nog eens goed bestuderen. We hebben dezelfde WP, ik geloof niet dat ik ooit 59 graden main target heb gezien maar zal er nog eens beter op letten.

Ik heb met DHW run ook dat hij meestal op 35 Hz blijft pruttelen. Alleen als is force DHW aanzet gaat hij los.

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


Acties:
  • 0 Henk 'm!

  • Aikon
  • Registratie: Februari 2001
  • Niet online
Ik zal er ook eens op letten wanneer DHW nu wel boven de 35Hz gaat, want soms heeft 'ie er wel zin in... Terwijl ik er nooit iets aan wijzig, het enige wat ik doe is OperationMode schakelen van 0 naar 3 en terug als m'n water te koud wordt.

Acties:
  • +1 Henk 'm!

  • Tiesert
  • Registratie: Augustus 2021
  • Laatst online: 02-06 15:13
blb4 schreef op donderdag 26 oktober 2023 @ 22:15:
Mijn inspiratie voor het bouwen van de rules set is de functionaliteit die ik nu via het Node Red Dashboard heb lopen samen met wat eigen aanpassingen. Op basis van de ervaring tot nu toe zijn mijn wensen:
  • Max Pump Speed based on HP status 1) DHW, 2) HEAT/COOL, IDLE flow;
  • QuiteMode based on time (e.g. at night) & for Heat/Cool at start Compressor until Compressor Frequency < 30 Hz.;
  • DHW production if DHWTemp <39, every day at fixed time if DHWTemp < DHWTargetTemp + DHWDelta;
  • 1 x per week (at LegionellaRunDay) a DHW run till 57 degrees + legionellarun;
  • WAR calcuation based on WAR Temperature settings from HP;
  • Result of WAR calculation used for OT maxTSet (which is used by OT Thermostat as Maximum ?chSetpoint);
  • Sync OT values with HP values to have correct (status) values from HP communicated to OT Thermostat;
  • OT Thermostat HP control: 1) sync Main_Target_Temp with ?chSetpoint and 2) switch off HP (wapter pump) when ?chEnable is 0 (for a mimumum time);
  • Softstart function with 1) minimize Compressor Frequency asap and 2) increase Main_Target_Temp to extend the run time
Goed bezig hier @blb4 ! Leuk. Vraagje. Wat is het voordeel om eerst de DHW run tot 57 graden te laten lopen en dan een Legionellarun erachter aan te gooien. Als je direct aan het begin van het DHW-proces de Legionellerun start dan warmt de Pana toch ook eerst de boiler op en zet aan het eind pas de Heater aan om het laatste stukje te doen? Of zie ik dit niet goed? Ik zie dat je precies dit punt al heb besproken met @Aikon Dank.

[ Voor 3% gewijzigd door Tiesert op 03-11-2023 20:56 ]

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


Acties:
  • +1 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Tiesert schreef op vrijdag 3 november 2023 @ 20:52:
[...]

Goed bezig hier @blb4 ! Leuk. Vraagje. Wat is het voordeel om eerst de DHW run tot 57 graden te laten lopen en dan een Legionellarun erachter aan te gooien. Als je direct aan het begin van het DHW-proces de Legionellerun start dan warmt de Pana toch ook eerst de boiler op en zet aan het eind pas de Heater aan om het laatste stukje te doen? Of zie ik dit niet goed? Ik zie dat je precies dit punt al heb besproken met @Aikon Dank.
Ik moet 't nog testen maar heb 't inmiddels herschreven. Morgen zien of dit werkt.

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
on checkDHW then
 if #allowDHW == 1 then
  if @ThreeWay_Valve_State == 0 && (@DHW_Temp < 39 || (%hour == 13 && (%day == #LegionellaRunDay || @DHW_Temp < @DHW_Target_Temp + @DHW_Heat_Delta))) then
   #prevOperatingMode = @Operating_Mode_State;
   #prevHeatPumpState = @Heatpump_State;
   @SetOperationMode = 3;
   if @Heatpump_State != 1 then
    @SetHeatpump = 1;
   end 
   if %day == #legionellaRunDay then
    @SetForceSterilization = 1;
   end
   #DHWRun = 1;
  end
  if #DHWRun == 1 then
   if @ThreeWay_Valve_State == 0 && @DHW_Temp > 49 then
    @SetOperationMode = #OperatingModeLast;
    @SetHeatpump = #HeatPumpStateLast;
    #OperatingModeLast = 3;
    #HeatPumpStateLast = 1;
    #DHWRun = -1;
   end
  end
  #allowDHW = 0;
  setTimer(7,600);
 end
end

on timer=7 then
 #allowDHW = 1;
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


Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Ben inmiddels aardig op weg, nog een paar dingetjes op te lossen:

Afbeeldingslocatie: https://tweakers.net/i/Dvo9tJ7q_8_pByrtjStarvEAVpU=/800x/filters:strip_exif()/f/image/Pwpe5HUDL3ThqqFFvqOZWSKV.png?f=fotoalbum_large

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


Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 21:23

Beekforel

Is eigenlijk geen vis

Ik heb soms best wel moeite om de rules er goed in te krijgen, maar troubleshooten valt niet mee.

Wat is er mis met dit?

code:
1
2
3
4
5
on timer=4 then
 if ?chEnable == 0 && ?chSetpoint == 10 then
  #chDisableCntr = #chDisableCntr + 1;
 end
end

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
Beekforel schreef op zaterdag 4 november 2023 @ 13:07:
Ik heb soms best wel moeite om de rules er goed in te krijgen, maar troubleshooten valt niet mee.

Wat is er mis met dit?

code:
1
2
3
4
5
on timer=4 then
 if ?chEnable == 0 && ?chSetpoint == 10 then
  #chDisableCntr = #chDisableCntr + 1;
 end
end
Wat is de foutmelding?

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 21:23

Beekforel

Is eigenlijk geen vis

FATAL internal error in rule_parse.

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
Beekforel schreef op zaterdag 4 november 2023 @ 14:14:
[...]

FATAL internal error in rule_parse.
Hmm. Allemaal issues die opgelost zijn in de laatste library update, alleen testen ervan is geen sinicure. In die zin dat alleen @blb4 er zo nu en dan zin en tijd voor heeft.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 21:23

Beekforel

Is eigenlijk geen vis

Linkje naar de build?

Acties:
  • +1 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
CurlyMo schreef op zaterdag 4 november 2023 @ 14:31:
[...]

Hmm. Allemaal issues die opgelost zijn in de laatste library update, alleen testen ervan is geen sinicure. In die zin dat alleen @blb4 er zo nu en dan zijn in heeft.
Zin is er altijd wel, tijd echter niet altijd. Zit mezelf mogelijk ook wat in de weg door nu al te focussen op alles via rules oplossen ipv externe automatisering....

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


Acties:
  • +3 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Ik zoek nog een mooie manier op de rules set te delen, liefst in iets dat makkelijk te onderhouden is. Ik heb 't nu in een excel die er zo uitziet:
Afbeeldingslocatie: https://tweakers.net/i/QXczxTFM-p2hqxf1BAzP74xocL0=/800x/filters:strip_exif()/f/image/O44i0KvYRKvnmRIxNs05CA2I.png?f=fotoalbum_large

[ Voor 198% gewijzigd door blb4 op 04-11-2023 21:41 ]

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


Acties:
  • +2 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
't begint wat te worden! Nog een paar kleine dingetjes, QM die tijdens run even aan gaat en nog wat piekjes (eigenlijk dalletjes) in Target temp bij uitschakelen door Thermostaat.

Afbeeldingslocatie: https://tweakers.net/i/tuyh7ROW38ed0GUrNymBcsj4yZU=/800x/filters:strip_exif()/f/image/nJJszdQTq597QiwTrNPPCU6J.png?f=fotoalbum_large

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


Acties:
  • +1 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
1 down, 1 to go; 'tQuietMode probleem heb ik inmiddels opgelost en (nog niet in deze runs) wordt QuietMode nu ook direct nadat de compressor stop weer op Silentmode value gezet en ook direct nadat de compressor onder de 26 Hz zakt weer uitgezet.

Afbeeldingslocatie: https://tweakers.net/i/bRl-hz5NTIKh0GIuQw8aLbf4s34=/800x/filters:strip_exif()/f/image/0hPQl3VB8ijsc1NnfpeuHtfB.png?f=fotoalbum_large

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


Acties:
  • +4 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Ik heb de excel file met mijn rules en wat uitleg nu toch maar ff op github geplaatst

[ Voor 13% gewijzigd door blb4 op 06-11-2023 03:50 ]

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


Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 21:23

Beekforel

Is eigenlijk geen vis

Het initiatief van @CurlyMo om de logica in blokken op te delen lijkt niet helemaal gelukt ofzo, veel afhankelijkheden die imo niet duidelijk zijn helaas.

Ik had gedoe met mijn en blijkbaar was een reboot nodig om het op te lossen. Ik heb al veel van de rules die hier gedeeld worden geleerd maar overweeg toch om opnieuw het wiel uit te gaan vinden.

Ik denk dat Github wel een betere plek is om de rules te delen omdat je dan ook wat inzicht kunt krijgen in de historie.

[ Voor 14% gewijzigd door Beekforel op 07-11-2023 13:54 ]


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
Beekforel schreef op dinsdag 7 november 2023 @ 13:53:
Het initiatief van @CurlyMo om de logica in blokken op te delen lijkt niet helemaal gelukt ofzo, veel afhankelijkheden die imo niet duidelijk zijn helaas.

Ik had gedoe met mijn en blijkbaar was een reboot nodig om het op te lossen. Ik heb al veel van de rules die hier gedeeld worden geleerd maar overweeg toch om opnieuw het wiel uit te gaan vinden.

Ik denk dat Github wel een betere plek is om de rules te delen omdat je dan ook wat inzicht kunt krijgen in de historie.
Heb je concrete voorbeelden waar je tegenaan loopt?

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 21:23

Beekforel

Is eigenlijk geen vis

Timers die hergebruikt worden / door elkaar heen lopen, SyncOpenTherm wat veel meer doet, verschil in inzicht in bijvoorbeeld WAR berekening.

Acties:
  • +2 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
Beekforel schreef op dinsdag 7 november 2023 @ 20:30:
Timers die hergebruikt worden / door elkaar heen lopen, SyncOpenTherm wat veel meer doet, verschil in inzicht in bijvoorbeeld WAR berekening.
Dan is het toch goed om dat hier te bespreken.

Timers
Simpelweg hernummeren, maar binnen het code blok de nummering wel hetzelfde houden.

SyncOpenTherm
Eens

WAR berekening
Ook eens. Wat @blb4 is niet sec de WAR berekenen, maar meer. Wel heeft @blb4 een goede manier om om ceil heen te werken.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +1 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 21:23

Beekforel

Is eigenlijk geen vis

Ik zal een poging doen mijn inzichten duidelijk te maken met wat concretere voorbeelden en (nog meer :+ ) alternatieven.

Ik heb een start gemaakt op Github: https://github.com/fbloemhof/HeishaMonRules

Initieel de eenvoudige functies gepakt. Heb wat zaken hernoemd her en der om een beetje op 1 lijn te blijven met de originele / Heishamon naamgevingen.

M'n uitgangspunt is dat je eenvoudig een blok moet kunnen overnemen. De eerste sectie zou generiek moeten blijven. Het moet nog blijken of dat houdbaar is.

Ik ben bezig met een functie om gebaseerd op de thermostaat de stooklijn te shiften, maar dit gaat nog wat moeizaam omdat de rules niet alles lijken te accepteren. :s Moet soms booten om zelfs iets te verwijderen?

VSCode vond de taal lijken op LUA, geen idee of dat klopt maar het maakt het wel wat leesbaarder. Ik gebruik ook tabs voor het inspringen omdat dit de leesbaarheid ook helpt.

[ Voor 87% gewijzigd door Beekforel op 07-11-2023 22:23 ]


Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Beekforel schreef op dinsdag 7 november 2023 @ 20:38:
Ik zal een poging doen mijn inzichten duidelijk te maken met wat concretere voorbeelden en (nog meer :+ ) alternatieven.

Ik heb een start gemaakt op Github: https://github.com/fbloemhof/HeishaMonRules

Initieel de eenvoudige functies gepakt. Heb wat zaken hernoemd her en der om een beetje op 1 lijn te blijven met de originele / Heishamon naamgevingen.

M'n uitgangspunt is dat je eenvoudig een blok moet kunnen overnemen. De eerste sectie zou generiek moeten blijven. Het moet nog blijken of dat houdbaar is.

Ik ben bezig met een functie om gebaseerd op de thermostaat de stooklijn te shiften, maar dit gaat nog wat moeizaam omdat de rules niet alles lijken te accepteren. :s Moet soms booten om zelfs iets te verwijderen?

VSCode vond de taal lijken op LUA, geen idee of dat klopt maar het maakt het wel wat leesbaarder. Ik gebruik ook tabs voor het inspringen omdat dit de leesbaarheid ook helpt.
Netjes neergezet zo op Github! (y)

Volgens mij zitten we nu gewoon lekker in een pioniersfase, als we 't allemaal een beetje stabiel hebben kunnen we kijken of we dat ergens op ergens 1 plek waar we alle volledig universele blokken kunnen neerzetten. Misschien 't beste ergens op de officiele HeishaMon pagina?

Verder is mijn inschatting dat we toch wel allemaal verschillende wensen & ideeën maar ook verschillende omgevingen hebben zodat er niet een volledig universele Rules set zal komen.

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


Acties:
  • 0 Henk 'm!

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 21:23

Beekforel

Is eigenlijk geen vis

Ja, zo is het ook. Aan de ene kant zou het wel handig zijn om het in de Heishamon repo neer te zetten, aan de andere kant kun je ook zeggen dat dit de invulling van de community is op het platform wat Heishamon biedt.

Betreffende de issues met niet accepterende rules: ik heb het vermoeden dat wanneer je een syntaxfout maakt (ik vergeet nog al eens een ; ) de rule-engine dusdanig op de hobbel is dat hij een reboot nodig heeft. Zijn dit dingen die jij in het vizier hebt danwel gefixed hebt @CurlyMo?

Ter lering en vermaak zal ik binnenkort de NodeRed implementatie een tijdje gebruiken, om al die mooie functies van jullie wat beter te doorgronden.

[ Voor 13% gewijzigd door Beekforel op 08-11-2023 07:51 ]


Acties:
  • +1 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
Beekforel schreef op woensdag 8 november 2023 @ 07:21:
Ja, zo is het ook. Aan de ene kant zou het wel handig zijn om het in de Heishamon repo neer te zetten, aan de andere kant kun je ook zeggen dat dit de invulling van de community is op het platform wat Heishamon biedt.
Dat laatste inderdaad. Al kan je je voorstellen dat het exact hetzelfde berekenen van de WAR als dat de pana zelf doet dusdanig generiek is dat het gedeeld kan worden op de Heishamon repo.
Betreffende de issues met niet accepterende rules: ik heb het vermoeden dat wanneer je een syntaxfout maakt (ik vergeet nog al eens een ; ) de rule-engine dusdanig op de hobbel is dat hij een reboot nodig heeft. Zijn dit dingen die jij in het vizier hebt danwel gefixed hebt @CurlyMo?
Zou zo niet moeten zijn, maar ik kan niet alles weten.

Ter referentie:
- Het verschil tussen de laatste rules library update in de HeishaMon en wat ik als laatste versie zelf onderhoud:
https://github.com/CurlyMoo/rules/compare/197d6..642373
- Het verschil tussen de laatste rules library update in de Heishamon en de PR die nu openstaat om die versie in de Heishamon bij te werken:
https://github.com/CurlyMoo/rules/compare/197d6..3dc590
- Het verschil tussen die laatste PR en wat ik sindsdien weer gedaan heb:
https://github.com/CurlyMoo/rules/compare/3dc590..642373

Dan zie je dat de verschillen vrij aanzienlijk zijn. Als je wil weten waar ik op test dan kan telkens terugvinden in de unittest in main.cpp:
- https://github.com/CurlyMoo/rules/blob/3dc59/main.cpp
- https://github.com/CurlyMoo/rules/blob/197d6/main.cpp
- https://github.com/CurlyMoo/rules/blob/64237/main.cpp

Mocht je dingen denken te zien waar ik niet op test, voel je vrij een suggestie te doen.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +3 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Ik begin wel blij te worden van 't resultaat :*) :

Afbeeldingslocatie: https://tweakers.net/i/T5ybacLLI5H6_eS028sMORBjnOU=/800x/filters:strip_exif()/f/image/BGGozUe5Ff3LYqrkgjaGzAR0.png?f=fotoalbum_large

Alles gaat bijna helemaal zoals bedacht, 21 dingetjes:
1) QuietMode piekje (waardoor ook even de fan een dipje heeft). Eens kijken waar dat vandaan komt.
2) blijkbaar gaat de compressor toch uit bij een korte onderbreking van chEnable. Die moet er ook nog uit.

chEnable gaat toch goed, de compressor schakelt elke x uit doordat Toutlet 2 graden boven Ttarget zit. Pendelen dus.....

[ Voor 21% gewijzigd door blb4 op 08-11-2023 13:32 ]

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


Acties:
  • +1 Henk 'm!

  • Aikon
  • Registratie: Februari 2001
  • Niet online
blb4 schreef op woensdag 8 november 2023 @ 13:13:
Ik begin wel blij te worden van 't resultaat :*) :

[Afbeelding]

Alles gaat bijna helemaal zoals bedacht, 2 dingetjes:
1) QuietMode piekje (waardoor ook even de fan een dipje heeft). Eens kijken waar dat vandaan komt.
2) blijkbaar gaat de compressor toch uit bij een korte onderbreking van chEnable. Die moet er ook nog uit.
Ziet er goed uit! Het is wat lastig te zien, maar hoe snel krijg je je compressor op 20Hz in het beste geval? Ook in een minuut of 3 denk ik?

1. Ik zet zelf QM3 voor 5 minuten aan voor ik de compressor start. In het slechtste geval, 's ochtends bijv, gaat de wp eerst 3 minuten water rondpompen voordat de compressor uberhaupt start, dus heb ik nog 2 minuutjes effectief over. Maar dat blijkt voldoende om de piek op te vangen. Misschien simpeler om gewoon een timer te starten dan het ergens anders vanaf te laten hangen? Voorkomt wellicht die piek ook.

2 wat bedoel je met onderbreking van chEnable?

Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Aikon schreef op woensdag 8 november 2023 @ 13:24:
[...]

Ziet er goed uit! Het is wat lastig te zien, maar hoe snel krijg je je compressor op 20Hz in het beste geval? Ook in een minuut of 3 denk ik?
Als ik 't zo zie duurt 't zo'n 15 minuten bij een groot verschil tussen Toutlet en Tinlet en zo'n 3 à 4 minuten als dat verschil kleiner is.
1. Ik zet zelf QM3 voor 5 minuten aan voor ik de compressor start. In het slechtste geval, 's ochtends bijv, gaat de wp eerst 3 minuten water rondpompen voordat de compressor uberhaupt start, dus heb ik nog 2 minuutjes effectief over. Maar dat blijkt voldoende om de piek op te vangen. Misschien simpeler om gewoon een timer te starten dan het ergens anders vanaf te laten hangen? Voorkomt wellicht die piek ook.
Ik heb geen vast moment om de compressor te starten, ik zou een vertraging kunnen inbouwen oid dat als er warmtevraag is idd zoiets gedaan wordt maar dan mis je de mogelijkheid dat de WP gewoon zelf de compressor start als de condities daarvoor (Toutlet voldoende onder TTarget gezakt?) aanwezig is.
2 wat bedoel je met onderbreking van chEnable?
Dit blijkt toch niet 't geval, elke x dat de compressor stopt is dat omdat Toutlet 2 graden boven TTarget is gekomen.

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


Acties:
  • 0 Henk 'm!

  • Aikon
  • Registratie: Februari 2001
  • Niet online
blb4 schreef op woensdag 8 november 2023 @ 13:39:
[...]

Als ik 't zo zie duurt 't zo'n 15 minuten bij een groot verschil tussen Toutlet en Tinlet en zo'n 3 à 4 minuten als dat verschil kleiner is.
:)
Ik heb geen vast moment om de compressor te starten, ik zou een vertraging kunnen inbouwen oid dat als er warmtevraag is idd zoiets gedaan wordt maar dan mis je de mogelijkheid dat de WP gewoon zelf de compressor start als de condities daarvoor (Toutlet voldoende onder TTarget gezakt?) aanwezig is.
Je begrijpt me verkeerd, of ik jou, ik heb geen vaste momenten.

Maar áls er warmtevraag is, dan start ik de compressor door Z1 omhoog te gooien. 10 Seconden (ivm vertraging van Heishamon) daarvoor zet ik QM3 en een 5 minuten timer (tenzij warmtevraag erg groot is overigens).


Ik begrijp je nu. Ik laat niks aan die kabouters over idd, dus in die zin heb ik een vast moment adhv de kamertemperatuur. Hoe schakel jij dan QM3? Als compressor > 0 is ofzo? Mooiste is als je QM3 nog daarvoor kan zetten, maar ja, dan moet je idd wel die mogelijkheid hebben. Anyway, op zich staat dat los van een timer gebruiken om hem weer op QM0 te zetten en wellicht die piek op te lossen. :)

Acties:
  • +2 Henk 'm!

  • Maarten69
  • Registratie: Augustus 2022
  • Niet online
Als freq == 0 QM op 3 (compr. uit)
Na runtijd 5 min QM op 0

8680 Wp, Panasonic Mono-bloc J-Generation WH-MDC07J3E5 1-fase 7kW. Heishamon v3.2.3 , NRflow *custom* , Home Assistant + " kamaradclimber / heishamon-homeassistant", Kaifa MA105 + Shelly PRo 3EM (120A), 3x Marstek 5,12kW v151, lilygo-modbus-485 HA


Acties:
  • +1 Henk 'm!

  • Aikon
  • Registratie: Februari 2001
  • Niet online
Oh ja ghehe, net zoals in de flow dus, daar kwam ik zelf nog mee 8)7 Want ja, hoe ben je anders de kabouters voor he...

Acties:
  • +3 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
@Beekforel, met jou setup als inspiratie heb ik ook mijn Github pagina zo ingedeeld (y)

https://github.com/blb4gi...with-Opentherm-Thermostat

Best tevreden met 't resultaat vandaag (rond 11:00u laatste wijzigingen aan de rules gemaakt). Alleen had die compressor stop rond 13:00u m.i. niet nodig geweest. Er valt altijd nog wat te tweaken...

Afbeeldingslocatie: https://tweakers.net/i/iQL5Y-v_IDhWnBJ_eztH_jWBle8=/800x/filters:strip_exif()/f/image/RRhPVyXU7178FcNpRI8W1mUu.png?f=fotoalbum_large

[ Voor 62% gewijzigd door blb4 op 09-11-2023 18:40 ]

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


Acties:
  • +1 Henk 'm!

  • Balans
  • Registratie: September 2000
  • Laatst online: 03-06 07:14
@blb4 bedankt voor je opzet en de tijd die je erin hebt gestoken , ik heb in het verleden al wat rules gedraait van @CurlyMo
dat draaide toen nog op mijn servertje ipv op de heishamon.
Ik ben ook aan het testen met jouw rules. het leverd al best mooi resultaat ik gebruik geen DHW dus die staat al uit.

Verder gebruik ik de PumpSpeed niet dat regeld die volgens mij wel prima, ik zit ook niet op suizende buizen te wachten das nog even wachten tot de defrosts.
Verder gebeuren hier ongewenste dingen als ik de softstart gebruik het lijkt wel of het de Quite mode hindert want van 3 schiet die naar 0 wat ook gelijk resulteerd in een hoge frequentie van de compressor en de bijhorende fanspeed dat wil nou juist niet.
Verder las ik hier dat je pana in direct mode draait dus met een variable setpoint temperatuur en geen shifts.
Zo draaide ik ook met de node red van edterbak.

mijn mods tot zover

Als ik dit overneem uit je rules en aanpas naar
code:
1
2
3
4
$Ta1 = 31;
   $Tb1 = 12;
   $Ta2 = 36;
   $Tb2 = -5;


dan neemt die in mijn geval de correcte waardes over voor war modus , want die zijn als je nog wel eens wisselt ivm testen weer standaard op waardes die je eigenlijk niet wilt hebben 55 graden....


code:
1
2
            if #mainTargetTemp > 40 then
                #mainTargetTemp = 32;

Verder veel mij op dat de chSetpoint op mainTargetTemp 40 staat grappig om te zien dat mijn Toon 2 moduleerd naar 90 graden en als die uit staat 6 graden, dus mooi en nodig dat die optie erin zit, ik heb hem maar aangepast naar 32 daar verwarmt die momenteel prima mee. anders blijft de setpoint hier op 40 graden staan en ik maak best lange runs ik zou niet willen dat die door een meetfoutje door verhit naar 40 graden in mijn vloer.
Dit is een oplossing zodat ik je rules kan draaien of het ook zo bedoeld is hoor ik graag van je _/-\o_

Jij brand ik blus! 4.640kW no-zw WH-MDC05J3E5


Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Balans schreef op donderdag 9 november 2023 @ 18:41:
@blb4 bedankt voor je opzet en de tijd die je erin hebt gestoken , ik heb in het verleden al wat rules gedraait van @CurlyMo
dat draaide toen nog op mijn servertje ipv op de heishamon.
Ik ben ook aan het testen met jouw rules. het leverd al best mooi resultaat ik gebruik geen DHW dus die staat al uit.

Verder gebruik ik de PumpSpeed niet dat regeld die volgens mij wel prima, ik zit ook niet op suizende buizen te wachten das nog even wachten tot de defrosts.
Verder gebeuren hier ongewenste dingen als ik de softstart gebruik het lijkt wel of het de Quite mode hindert want van 3 schiet die naar 0 wat ook gelijk resulteerd in een hoge frequentie van de compressor en de bijhorende fanspeed dat wil nou juist niet.
Verder las ik hier dat je pana in direct mode draait dus met een variable setpoint temperatuur en geen shifts.
Zo draaide ik ook met de node red van edterbak.

mijn mods tot zover

Als ik dit overneem uit je rules en aanpas naar
code:
1
2
3
4
$Ta1 = 31;
   $Tb1 = 12;
   $Ta2 = 36;
   $Tb2 = -5;


dan neemt die in mijn geval de correcte waardes over voor war modus , want die zijn als je nog wel eens wisselt ivm testen weer standaard op waardes die je eigenlijk niet wilt hebben 55 graden....


code:
1
2
            if #mainTargetTemp > 40 then
                #mainTargetTemp = 32;

Verder veel mij op dat de chSetpoint op mainTargetTemp 40 staat grappig om te zien dat mijn Toon 2 moduleerd naar 90 graden en als die uit staat 8 graden, dus mooi en nodig dat die optie erin zit, ik heb hem maar aangepast naar 32 daar verwarmt die momenteel prima mee. anders blijft de setpoint hier op 40 graden staan en ik maak best lange runs ik zou niet willen dat die door een meetfoutje door verhit naar 40 graden in mijn vloer.
Dit is een oplossing zodat ik je rules kan draaien of het ook zo bedoeld is hoor ik graag van je _/-\o_
Fijn dat je er wat aan hebt! over 't ?chSetpoint: mijn evohome thermostaat gebruikt ?maxTSet als maximaal toelaatbare temperatuur, vandaar dat ik ?maxTSet synchroniseer met 't resultaat van de WAR berekening. Evohome vraagt dus nooit een hoger ?chSetpoint dan ?maxTSet. Dat doet jou Toon dus niet, die trekt zich niets aan van ?maxTSet?

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


Acties:
  • +1 Henk 'm!

  • Balans
  • Registratie: September 2000
  • Laatst online: 03-06 07:14
eerlijk gezegt geen idee dat hele opentherm is nog een beetje wazig voor me maar viel mij op in de grafieken dat die strak op 40 bleef staan en rustig klom de outlet temp omhoog richting de 40 graden toen ging ik een kijken op de heisha en zag dat die chSetpoint moduleerde tussen de 90 als max en dan langzaam wel zakte.
Maar gerust weer even ophoog ging. dus ik was blij dat ik dat stukje code van je begreep om dat aan te passen naar een "betere" waarde voor mijn systeem.
Ik heb je code van vandaag aangepast naar mijn wensen

deze run net gestart lijkt al beter als vanmiddag met de oude softstart en silentmode staan nu beide aan , snap nu ook waarom die om ging van quite mode < 10 graden , en ik zie dat de target temp word aangepast _/-\o_ Afbeeldingslocatie: https://tweakers.net/i/5UJSKc6Ai5ojXbQTQYtZzyfMaTU=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/KQ4PSfhQDuFmHpm3qIuEs1y4.jpg?f=user_large

Jij brand ik blus! 4.640kW no-zw WH-MDC05J3E5


Acties:
  • +3 Henk 'm!

  • Appelpie3000
  • Registratie: Januari 2013
  • Laatst online: 22:17
Beekforel schreef op dinsdag 7 november 2023 @ 20:38:
Ik zal een poging doen mijn inzichten duidelijk te maken met wat concretere voorbeelden en (nog meer :+ ) alternatieven.

Ik heb een start gemaakt op Github: https://github.com/fbloemhof/HeishaMonRules

Initieel de eenvoudige functies gepakt. Heb wat zaken hernoemd her en der om een beetje op 1 lijn te blijven met de originele / Heishamon naamgevingen.

M'n uitgangspunt is dat je eenvoudig een blok moet kunnen overnemen. De eerste sectie zou generiek moeten blijven. Het moet nog blijken of dat houdbaar is.

Ik ben bezig met een functie om gebaseerd op de thermostaat de stooklijn te shiften, maar dit gaat nog wat moeizaam omdat de rules niet alles lijken te accepteren. :s Moet soms booten om zelfs iets te verwijderen?

VSCode vond de taal lijken op LUA, geen idee of dat klopt maar het maakt het wel wat leesbaarder. Ik gebruik ook tabs voor het inspringen omdat dit de leesbaarheid ook helpt.
Er lijkt een fout te zitten in je SetSilentMode code. Hij pakt nu altijd de laatste setting van <10 graden. Heb de boel aangepast zoals blb4 ook heeft, dat werkt beter. Zie hieronder:

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
on setQuietMode then
    if #allowSetQuietMode == 1 then
        if isset(@Outside_Temp) && isset(@Heatpump_State) then
            if #quietModeHelper == 1 then
                if @Outside_Temp < 13 then
                    #quietMode = 1;
                else
                    #quietMode = 2;
                end
                if @Outside_Temp < 8 then
                    #quietMode = 0;
                end
        if @Outside_Temp < 2 then
                    if %hour > 22 || %hour < 7 then
                        #quietMode = 1;
                    else
                        #quietMode = 0;
                    end
                end
        if #quietModePrevious != #quietMode && @Heatpump_State == 1 then
                    setTimer(2, 900);
                    #quietModeHelper = 0;
                    #quietModePrevious = #quietMode;
                    @SetQuietMode = #quietMode;
                end
            end
        end
    end
end

Acties:
  • +1 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Zeker niet ontevreden hier, toch nog 2 hardnekkige irritatiepuntjes: quietmode spikes en de eerste x dat de compressor uit ging had niet gemoeten.
Afbeeldingslocatie: https://tweakers.net/i/grggwsmCS3YTUK67bN_plFDwVyw=/800x/filters:strip_exif()/f/image/bwt8AuB0fTcSeLyQPcr06Nic.png?f=fotoalbum_large

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


Acties:
  • +2 Henk 'm!

  • Aikon
  • Registratie: Februari 2001
  • Niet online
Toch Z1 iets te lang 2 graden onder outlet gehouden? Kan het niet helemaal goed zien.

Ik hou hem slechts 1 graden eronder, heb je hetzelfde effect qua aftoeren en wat meer speelruimte. En dat voor max 2:40, m'n Heishamon staat op 5 sec. Die 20 sec is dan genoeg om vertragingen op te vangen zeg maar, 10 was te weinig, 15 niet getest eigenlijk. Wat gebruik jij precies qua tijden?

Acties:
  • +1 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Aikon schreef op vrijdag 10 november 2023 @ 14:35:
Toch Z1 iets te lang 2 graden onder outlet gehouden? Kan het niet helemaal goed zien.

Ik hou hem slechts 1 graden eronder, heb je hetzelfde effect qua aftoeren en wat meer speelruimte. En dat voor max 2:40, m'n Heishamon staat op 5 sec. Die 20 sec is dan genoeg om vertragingen op te vangen zeg maar, 10 was te weinig, 15 niet getest eigenlijk. Wat gebruik jij precies qua tijden?
mmm, toch waarschijnlijk 'gewoon' die 2 graden boven TTarget idd. Ik ga wat sleutelen aan de regels, als de compressor eenmaal op 20 Hz draait komt 't niet meer zo nou dus dat kan ik nog meenemen.
Afbeeldingslocatie: https://tweakers.net/i/nCRAr22CRLG11jy7xCRghAWDN0M=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/Zh6QkgN3mTy1iZ3C59HDRbPV.png?f=user_large


Ik gebruik 10 seconden, zal ook eens teruggaan naar 5 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


Acties:
  • +2 Henk 'm!

  • Aikon
  • Registratie: Februari 2001
  • Niet online
Daarvoor komt het ook niet zo nauw ;) Ik zet Z1 nooit meer dan 1 graad onder outlet, en 20Hz is binnen 3 minuten als de omstandigheden het toelaten. Het enige nadeel is dat je dan potentieel 1 graad te hoog draait, tja, voor radiatoren is dat niet al te spannend. Liever wat stabieler, maar toch lokt het wel natuurlijk om precies die -2 aan te kunnen houden.

[ Voor 15% gewijzigd door Aikon op 10-11-2023 15:52 ]


Acties:
  • +1 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
@Appelpie3000 Goed punt, hier heb ik een ifelse verkeerd omgezet naar if else

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +2 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Ik heb de TS wat aangepast, mijn blokken op een iets andere wijze gepresenteerd. Ook een verwijzing gemaakt naar Github waar ik ze nu ook heb staan en zal (proberen) te onderhouden.

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


Acties:
  • +5 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Inmiddels weer een week verder. Ik heb mijn blokken weggehaald in de TS, ik ben er redelijk wat in aan 't wijzigen en probeer dat zo goed en kwaad 't gaat bij te houden op Github. Ik heb mijn huidige, volledige rules set wel bijgewerkt in deze post.

De boel begint steeds soepeler te draaien!

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


Acties:
  • 0 Henk 'm!

  • sjors333
  • Registratie: April 2022
  • Laatst online: 06-06 21:52
Hallo,

Ik ben ook wat aan het experimenteren met rules in Heishamon. Maar ik loop er steeds tegen aan dat ik de rules set in Heishamon bijna niet gewijzigd krijg. Als is het maar een kleine wijziging (waarde van variable wijzigen) Heishamon blijft terug gaan naar de oude set.

Hebben jullie dit probleem ook? Wat is de truc om dit goed te doen. Moet ik eerst heel de code er your taken bijvoorbeeld?

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
sjors333 schreef op zondag 19 november 2023 @ 10:29:
Hallo,

Ik ben ook wat aan het experimenteren met rules in Heishamon. Maar ik loop er steeds tegen aan dat ik de rules set in Heishamon bijna niet gewijzigd krijg. Als is het maar een kleine wijziging (waarde van variable wijzigen) Heishamon blijft terug gaan naar de oude set.

Hebben jullie dit probleem ook? Wat is de truc om dit goed te doen. Moet ik eerst heel de code er your taken bijvoorbeeld?
Ja, dit is een bekend probleem wat ook al (zover ik zelf kan overzien) opgelost is in de laatste library update die hier klaar staat: https://github.com/IgorYbema/HeishaMon/pull/121

Het moet alleen nóg beter door een aantal experts getest worden.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • GeertV78
  • Registratie: Mei 2019
  • Laatst online: 03-06 08:22
Ik ga moeten werken met 2 zones die elk een zoneklep hebben en een eigen OT thermostaat zullen hebben.
Is dit ondersteund in de rules zodat ik volledig onafhankelijk van HA kan werken ?

Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
GeertV78 schreef op zondag 19 november 2023 @ 15:22:
Ik ga moeten werken met 2 zones die elk een zoneklep hebben en een eigen OT thermostaat zullen hebben.
Is dit ondersteund in de rules zodat ik volledig onafhankelijk van HA kan werken ?
Met Rules moet je m.i. wel een 2de zone kunnen bedienen, naast SetZ1HeatRequestTemperature is oop SetZ2HeatRequestTemperature beschikbaar. Op Heishamon kan je echter maar 1 OT Thermostaat aansluiten.

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


Acties:
  • 0 Henk 'm!

  • Balans
  • Registratie: September 2000
  • Laatst online: 03-06 07:14
@blb4 bedankt voor de uitwerkingen , ik probeer je rules elke keer weer en begin dan eigenlijk met zoveel mogelijk uitgeschakeld

ik draai nu bij elke test met
code:
1
2
3
4
5
6
7
    #allowDHW = 0;
    #allowOTThermostat = 1;
    #allowPumpSpeed = 0;
    #allowSilentMode = 0;
    #allowSoftStart = 0;
    #allowSyncOT = 1;
    #allowWAR = 1;


Dat werkt best aardig maar nog niet zo als ik het wil als de boel eenmaal warm is gaat het aan uit etc etc, ik wil eigenlijk een simpele thermosstaat ipv de OTThermostat.
Als fallback met experimeteren val ik weer terug op de node red van edterbak die doet wat het moet doen simpel met war softstart en de on off in het RTC menu.
Ik wil dus via opentherm de setpoint en de temperatuur meten en beschikbaar hebben in de rules(syncOT) en dan een thermostaat met een hysterese keuze van 0,25 boven setpoint dan pomp uit en 0,25 eronder pomp weer aan.
Als dat dan betrouwbaar werkt dan de rest uitbouwen zoals de softstart en evt quitemode naar jouw voorbeeld.
Ik begin de rules een beetje te begrijpen door ze aan te passen maar heb helaas niet de nowhow om ze zelf te maken.
Dus als iemand een duwtje in de goede richting heeft dan ga ik daar graag mee aan de slag om uiteraard resultaten hier te delen.

Jij brand ik blus! 4.640kW no-zw WH-MDC05J3E5


Acties:
  • +1 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Balans schreef op zondag 19 november 2023 @ 16:55:
@blb4 bedankt voor de uitwerkingen , ik probeer je rules elke keer weer en begin dan eigenlijk met zoveel mogelijk uitgeschakeld

ik draai nu bij elke test met
code:
1
2
3
4
5
6
7
    #allowDHW = 0;
    #allowOTThermostat = 1;
    #allowPumpSpeed = 0;
    #allowSilentMode = 0;
    #allowSoftStart = 0;
    #allowSyncOT = 1;
    #allowWAR = 1;


Dat werkt best aardig maar nog niet zo als ik het wil als de boel eenmaal warm is gaat het aan uit etc etc, ik wil eigenlijk een simpele thermosstaat ipv de OTThermostat.
Als fallback met experimeteren val ik weer terug op de node red van edterbak die doet wat het moet doen simpel met war softstart en de on off in het RTC menu.
Ik wil dus via opentherm de setpoint en de temperatuur meten en beschikbaar hebben in de rules(syncOT) en dan een thermostaat met een hysterese keuze van 0,25 boven setpoint dan pomp uit en 0,25 eronder pomp weer aan.
Als dat dan betrouwbaar werkt dan de rest uitbouwen zoals de softstart en evt quitemode naar jouw voorbeeld.
Ik begin de rules een beetje te begrijpen door ze aan te passen maar heb helaas niet de nowhow om ze zelf te maken.
Dus als iemand een duwtje in de goede richting heeft dan ga ik daar graag mee aan de slag om uiteraard resultaten hier te delen.
Zeker omdat ik ook nog aardig wat aan 't rommelen ben is 't soms ook lastig om exact te zien of alles loopt zoals 't zou moeten. Ik gebruik voor monitoring grafieken in Grafana maar dat kan je ook doen met 't node red dashboard met MQTT block aan). Ik heb dat ook nog zo draaien.

Geeft jou thermostaat goede (bruikbare) waardes bij roomTemp en RoomTempSet? Die kan je dan gebruiken.

Afbeeldingslocatie: https://tweakers.net/i/X5GITA2L2MHkiHHgnXAg5R6CgrQ=/800x/filters:strip_exif()/f/image/HlUOMBIzSxirup2hmmmhb2X9.png?f=fotoalbum_large

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


Acties:
  • 0 Henk 'm!

  • Balans
  • Registratie: September 2000
  • Laatst online: 03-06 07:14
ik gebruik inderdaad grafana en speel op safe in node red met een mqtt block.
Ik heb goed bruikbare waardes op de plek die je laat zien en met syncOT worden de andere waardes ook netjes weergegeven.
Ik vind het loggen van de waardes via de console in heishamon ondoendlijk dus grafana is een must om te zien wat er gebeurd.
De rules set van @CurlyMo hier een paar post boven die heeft een "simpele" thermostaat helaas heb ik niet de kennis om deze om te bouwen naar sync ipv async de rules worden simpel niet geaccperteerd en ik zie geen foutmeldingen

Jij brand ik blus! 4.640kW no-zw WH-MDC05J3E5


Acties:
  • 0 Henk 'm!

  • sjors333
  • Registratie: April 2022
  • Laatst online: 06-06 21:52
CurlyMo schreef op zondag 19 november 2023 @ 10:40:
[...]

Ja, dit is een bekend probleem wat ook al (zover ik zelf kan overzien) opgelost is in de laatste library update die hier klaar staat: https://github.com/IgorYbema/HeishaMon/pull/121

Het moet alleen nóg beter door een aantal experts getest worden.
Bedankt voor je reactie, dan wacht ik tot deze update stabiel gereleased is.

Acties:
  • 0 Henk 'm!

  • Retasor
  • Registratie: Februari 2004
  • Laatst online: 23:47
blb4 schreef op zondag 19 november 2023 @ 17:18:
[...]


Zeker omdat ik ook nog aardig wat aan 't rommelen ben is 't soms ook lastig om exact te zien of alles loopt zoals 't zou moeten. Ik gebruik voor monitoring grafieken in Grafana maar dat kan je ook doen met 't node red dashboard met MQTT block aan). Ik heb dat ook nog zo draaien.

Geeft jou thermostaat goede (bruikbare) waardes bij roomTemp en RoomTempSet? Die kan je dan gebruiken.

[Afbeelding]
Ik ben sinds kort ook in het bezit van een WarmtePomp en de HeishaMon, voordat ik dmv de HeishaMon rules wil gaan regelen, zou ik graag eerst de logging op orde hebben en grafieken genereren die ik hier in dit topic voorbij zie komen. Als ik het goed begrijp wordt dit gedaan dmv Grafana? of is er een makkelijkere optie.
Is er ergens een guide beschikbaar hoe de logging het makkelijkst op te zetten is?

Acties:
  • 0 Henk 'm!

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Retasor schreef op woensdag 22 november 2023 @ 20:52:
[...]


Ik ben sinds kort ook in het bezit van een WarmtePomp en de HeishaMon, voordat ik dmv de HeishaMon rules wil gaan regelen, zou ik graag eerst de logging op orde hebben en grafieken genereren die ik hier in dit topic voorbij zie komen. Als ik het goed begrijp wordt dit gedaan dmv Grafana? of is er een makkelijkere optie.
Is er ergens een guide beschikbaar hoe de logging het makkelijkst op te zetten?
Ik ben daar niet mee bekend. Ik ben zelf - naast - grafieken in Grafana - begonnen met 't Nodered Deshboard van @edterbak, op de bijbehorende Github pagina staat uitgelegd hoe je dat installeert. Je kan ook daarmee starten en later overstappen op rules, zoals ik nu aan 't doen ben. Je kan 't dashboard er naast houden; door de MQTT block aan te laten heb je wel de monitoring van 't dashboard maar niet de aansturing.

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


  • Binifada
  • Registratie: Oktober 2021
  • Laatst online: 05-06 11:55
@blb4

Hallo blb4,

Hoe gedragen je modules zoals Silentmode of Quitemode zich als de compressor ontdooit?
Dus Top26-Defrosting_State verandert van 0 naar 1?

  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Ik weet 't niet 100% zeker maar mijn indruk is dat de WP tijdens een defrost zich van niets en niemand wat aantrekt en gewoon zijn eigen ding doet. Ik had gisteren 1 defrost (met QM=0), heb toevallig daarna de logica aangepast zodat als Top26 1 wordt QM weer wordt ingeschakeld. Ik moet dus nog zien wat hij nu doet maar ik gok dus niets.
Afbeeldingslocatie: https://tweakers.net/i/yEkIWweWWNkoi7npwSXsRJmuV78=/800x/filters:strip_exif()/f/image/xcBGk3J38RDud9eaNOs5V9ft.png?f=fotoalbum_large

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


  • Binifada
  • Registratie: Oktober 2021
  • Laatst online: 05-06 11:55
@blb4 ... zodat je ontdooien kunt negeren bij het maken van Rules. Is dat wat je bedoelt?

[ Voor 4% gewijzigd door Binifada op 23-11-2023 11:32 ]


  • blb4
  • Registratie: April 2008
  • Laatst online: 21:42
Mijn idee met juist 't defrost signaal wel te gebruiken is om te kijken of dan ook de compressor wat getemd wordt. Vooral met 't oog op geluidsproductie 's nachts. Zou aardig zijn als dat kan maar denk dus dat 't geen effect heeft.

QM heeft wel effect bij weer 't opstarten na de defrost en QM was gisteren bij mij dus niet actief in die fase. Dat wil ik sowieso corrigeren (dus QM ingeschakeld bij opstarten compressor na defrost).

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


Acties:
  • +1 Henk 'm!

  • Retasor
  • Registratie: Februari 2004
  • Laatst online: 23:47
blb4 schreef op woensdag 22 november 2023 @ 23:46:
[...]

Ik ben daar niet mee bekend. Ik ben zelf - naast - grafieken in Grafana - begonnen met 't Nodered Deshboard van @edterbak, op de bijbehorende Github pagina staat uitgelegd hoe je dat installeert. Je kan ook daarmee starten en later overstappen op rules, zoals ik nu aan 't doen ben. Je kan 't dashboard er naast houden; door de MQTT block aan te laten heb je wel de monitoring van 't dashboard maar niet de aansturing.
Thanks gaan we dat topic eerst maar eens door spitten.

Acties:
  • 0 Henk 'm!

  • Binifada
  • Registratie: Oktober 2021
  • Laatst online: 05-06 11:55
@blb4 @CurlyMo
Ik heb hier een 5 kW Jeisha en een Heishamon draaien zonder Opentherm. Ik heb voor mijn doeleinden "regels" gemaakt op basis van de BLB4-modules.
De modules worden gebruikt voor de "Quitmode" en de "Softstart".

Is er nu een plaats waar je de "snippets" kunt publiceren?

Acties:
  • +1 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
Binifada schreef op dinsdag 5 december 2023 @ 22:06:
@blb4 @CurlyMo
Is er nu een plaats waar je de "snippets" kunt publiceren?
Hier of op github

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +5 Henk 'm!

  • Binifada
  • Registratie: Oktober 2021
  • Laatst online: 05-06 11:55
ok, hier zijn mijn eerste pogingen met de Rules.
Zoals reeds vermeld, dient het werk van @blb4 en @CurlyMo als Basis. Hartelijk dank daarvoor!
Voor mijn doeleinden heb ik de modules SilentMode en Softstart gebruikt en de afhankelijkheden van alle andere modules verwijderd.

Als je fouten vindt of betere oplossingen hebt, laat het me dan weten ;-)

Basis:
Jeisha 5 kW Monobloc
Heishamon 4.4 zonder OT
Huis met 100m² en Radiatoren

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
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
on System#Boot then
    #allowSilentMode = 1;
    #allowSoftStart = 1;

    #debug = 1;

    #chEnable = -1;
    #chEnableTimeOff = -1;
    #chSetPoint = -1;
    #compRunTime = -1;
    #compStartTime = -1;
    #compState = -1;
    #firstBoot = 1;
    #heatPumpState = -1;
    #mainTargetTemp = -1;
    #mildMode = -1;
    #operatingMode = -1;
    #quietMode = -1;
    #sSC = -1;
    #softStartPhase = -1;
    #timeRef = -1;
    setTimer(1,60);
    setTimer(2,10);
end


on quietMode then
    if #mildMode > -1 then
        #quietMode = #mildMode;
    else
        if #chEnable == 0 && #compState == 1 then
            #quietMode = 3;
        else
            #quietMode = #silentMode;
        end
    end
    if @Quiet_Mode_Level != #quietMode then
        @SetQuietMode = #quietMode;
    end
end

on softStart then
    if #allowSoftStart == 1 && #compState == 1 then
        if #compRunTime < 3 then
            #softStartPhase = 1;
            #sSC = @Main_Outlet_Temp - #chSetpoint;
        else
            if #compRunTime < 180 then
                #softStartPhase = 2;
                if @Compressor_Freq < 22 then
                    #sSC = @Main_Outlet_Temp - #chSetpoint;
                else
                    if #chSetpoint <= @Main_Outlet_Temp then
                        #sSC = @Main_Outlet_Temp - 0.7 - #chSetpoint;
                    end
                end
                if #chSetpoint > @Main_Outlet_Temp then
                    #sSC = @Main_Outlet_Temp + 1 - #chSetpoint;
                end
            else
                if #softStartPhase == 2 then
                    #softStartPhase = 3;
                    setTimer(8,5);
                end
            end
        end
        if #sSC > 5 then
            #sSC = 5;
        end
        if #sSC < -5 then
            #sSC = -5;
        end
        #mainTargetTemp = #chSetpoint + #sSC;
        if #mainTargetTemp < 27 then
            #mainTargetTemp = 27;
        end
        if #mainTargetTemp > 40 then
            #mainTargetTemp = 40;
        end
        if #mainTargetTemp + 2 < @Main_Outlet_Temp then
            #mainTargetTemp = #mainTargetTemp + 1;
        end
        if @Compressor_Freq > 18 && @Compressor_Freq < 25 then
            #mildMode = 0;
            quietMode();
        end
    end
end

on silentMode then
    if #allowSilentMode == 1 then
        #allowSilentMode = 0;
        if @Outside_Temp > 9 then
            #silentMode = 3;
        else
            if @Outside_Temp > 4 then
                #silentMode = 2;
            else
                if @Outside_Temp > 1 then
                    if %hour > 22 || %hour < 7 then
                        #silentMode = 1;
                    else
                        #silentMode = 0;
                    end
                end
            end
        end
        setTimer(3, 900);
        quietMode();
    end
end

on mildMode then
        if #mildMode != #silentMode && #mildMode != -1 && #silentMode != 1 then
            #mildMode = #silentMode;
            quietMode();
        end
end

on compFreq then
    if @Compressor_Freq > 18 || #firstBoot == 1 then
        if #compState < 1 then
            #compStartTime = #timeRef;
            #compState = 1;
        end
        #compRunTime = #timeRef - #compStartTime;
        if #compRunTime < 0 then
            #compRunTime = #timeRef - #compStartTime + 10080;
        end
    else
        #compState = 0;
        #compStartTime = -1;
        #compRunTime = -1;
        #sSC = 0;
        #softStartPhase = -1;
        mildMode();
    end
end

on @Compressor_Freq then
    compFreq();
end

on @Defrosting_State then
    if @Defrosting_State == 1 then
        mildMode();
    end
end

on timer=1 then
    if #firstBoot == 1 then
        #heatPumpState = @Heatpump_State;
        #operatingMode = @Operating_Mode_State;
        #sSC = 0;
        compFreq();
        softStart();
        #firstBoot = 0;
    else
        silentMode();
        softStart();
        if #debug == 1 then
            $chEnable = #chEnable;
            $chEnableTimeOff = #chEnableTimeOff;
            $chSetPoint = #chSetPoint;
            $compRunTime = #compRunTime;
            $compState = #compState;
            $mildMode = #mildMode;
            $quietMode = #quietMode;
            $sSC = #sSC;
            $softStartPhase = #softStartPhase;
            $mainTargetTemp = #mainTargetTemp;
        end
    end
    setTimer(1,15);
end

on timer=2 then
    #timeRef = %day * 1440 + %hour * 60 + %minute;
    setTimer(2,60);
end

on timer=3 then
    #allowSilentMode = 1;
end

on timer=8 then
    if #sSC > 1 then
        #sSC = #sSC - 1;
        setTimer(8,900);
    end
end

Acties:
  • 0 Henk 'm!

  • Oibaf
  • Registratie: December 2010
  • Laatst online: 30-05 15:04
Erg interessant waar jullie mee bezig zijn. Zit me daarom ook te verdiepen in de het softstarten van de Panasonic.

Twee vragen:
1. Weten jullie zeker dat quietmode ook invloed heeft op compressor?
*Mijn contact bij de Panasonic service zegt namelijk dat deze alleen de ventilator snelheid beperkt.

2. Weet iemand of er ook een verschil is 1° of 2° onder de aanvoer temperatuur zitten met stooklijn setpoint? Schakelt de compressor bijvoorbeeld sneller terug als je kortstondig naar 2° onder aanvoer temp gaat zitten. Tijdens mijn test (n=1) had ik dat gevoel wel.

Acties:
  • +2 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:52
Oibaf schreef op maandag 11 december 2023 @ 16:21:
2. Weet iemand of er ook een verschil is 1° of 2° onder de aanvoer temperatuur zitten met stooklijn setpoint? Schakelt de compressor bijvoorbeeld sneller terug als je kortstondig naar 2° onder aanvoer temp gaat zitten. Tijdens mijn test (n=1) had ik dat gevoel wel.
Ja, maar als hij te lang +2 boven het setpoint zit, dan gaat hij uit. Specifiek is die grens 2 minuten.

[ Voor 3% gewijzigd door CurlyMo op 11-12-2023 19:58 ]

Sinds de 2 dagen regel reageer ik hier niet meer

Pagina: 1 2 3 Laatste