Breadrun schreef op donderdag 6 november 2025 @ 09:45:
Ik heb met de softstart toch nog last van korte runs. Ondanks dat mijn lower limit op -3 staat pakt hij toch -5
[Afbeelding]
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| 06/11 01:06:53 - Compressor: stopped
06/11 01:06:53 - Function SoftStart Quietmode: Compressor run ended, quiet mode is already set to level 3
06/11 01:06:53 - MQTT Command: SetCurves: (Zone 1) Target: 22 (SoftStart)
06/11 01:06:53 - Functions Final setpoint (Zone 1): Current zone 1 setpoint: 21 °C. Calculated new setpoint: 22 °C
06/11 01:06:53 - Function SoftStart (Zone 1): Correction: -3.2 > -2.2 °C - (STARTUP) Freq: 34Hz
06/11 01:06:49 - MQTT Command: SetCurves: (Zone 1) Target: 21 (SoftStart)
06/11 01:06:49 - Functions Final setpoint (Zone 1): Current zone 1 setpoint: 20 °C. Calculated new setpoint: 21 °C
06/11 01:06:49 - Function SoftStart (Zone 1): Correction: -5 > -3.2 °C - (STARTUP) Freq: 34Hz
06/11 01:05:56 - MQTT Command: SetCurves: (Zone 1) Target: 20 (SoftStart)
06/11 01:05:56 - Functions Final setpoint (Zone 1): Current zone 1 setpoint: 25 °C. Calculated new setpoint: 20 °C
06/11 01:05:56 - Function SoftStart (Zone 1): Correction: 0 > -5 °C - (STARTUP) Freq: 23Hz
06/11 01:05:56 - Compressor: running
06/11 01:05:56 - Function SoftStart Quietmode: Timer started (5 minutes) |
Met die -5 klap ik bijna meteen op of onder mijn actual terwijl ik een lower limit correction gebruik van -3.
Nu zie ik in de context store dat hij voor Z2 nog een -5 heeft staan kan het zijn dat hij die gebruikt?
[
Afbeelding]
Wanneer Node-RED start met een lege contextstore zoals in mijn geval deze week, worden als ik het goed interpreteer de globale variabelen als volgt geïnitialiseerd:
code:
1
2
| var SHIFT_Final_z1 = global.get('SHIFT_Final_z1',"file"); // undefined → wordt 0
var SHIFT_Final_z2 = global.get('SHIFT_Final_z2',"file"); // undefined → wordt -5 |
Daarna is de berekening als volgt
code:
1
| global.set('SHIFT_Final', (SHIFT_Final_z1 + SHIFT_Final_z2) / 2, "file"); |
Bij een single-zone installatie (TOP94_Zones_State = 0) wordt zone 2 niet gebruikt, dus de waarde SHIFT_Final_z2 = -5 blijft gewoon staan en wordt nooit overschreven volgens mij.
De waarde -5 voor zone 2 als die niet gebruikt wordt, is prima.
Er staat in [Calculate new SP Zone 1 + 2]:
code:
1
| var SHIFT_Final = Math.max(SHIFT_Final_z1, SHIFT_Final_z2) |
Waarom zou je het gemiddelde willen nemen? Met welk doel. De functie moet het gewoon goed doen vind ik.
De shift range is van -5 t/m +5.
Indien zone 2 niet gebruikt wordt:
Shift z1 = variabel volgens berekening
Shift z2 = -5
De max is dus altijd de variabele als deze anders is dan die -5 van zone 2.
Als we er voor kiezen om de Shift z2 op 0 te houden, dan is het resultaat ook nooit meer < 0 mogelijk.
Is het wellicht een idee dit af te vangen voor als iemand maar een van de twee zones gebruikt met iets in de strekking als dit? (zo heb ik het nu zelf staan in Calculate new SP Zone 1 + 2 op regel 168 en 169 en ben daarmee de -5 op Z2 kwijt)
code:
1
2
| if (TOP94_Zones_State === 0) { SHIFT_Final_z2 = 0; global.set('SHIFT_Final_z2', 0, 'file'); }
if (TOP94_Zones_State === 1) { SHIFT_Final_z1 = 0; global.set('SHIFT_Final_z1', 0, 'file'); } |
Als er 2 zones actief zijn, dan moeten deze beiden geset worden.
Stel setpoint zone 1 = 25, zone 2 = 28.
Als er een functie is die hier wat aan wil veranderen (RTC bijvoorbeeld) dan moeten beide setpoints worden herzien en worden geupdate.
De waarde van zone 2 zal in bovenstaande verhaal dominant zijn qua interne logica van de pomp. Die houd dus rekening met 28 C als richt, of in geval met een buffer, dan komt er nog wat bovenop. Dat regelt de pomp zelf, intern wel. Daar maak ik mij in de berekening geen zorgen om.
Je geeft aan dat de softstart korte runs heeft.
Ik zie SetCurve commando's voorbij komen.
Gebruik je compensation curve?
Zo ja, dan even bij het begin beginnen.
Suggestie 1: (compensation curve gebruikers)
Alle functies uit zetten, SoftStart, NightReduciton, RTC en CCC(deze is al uit dan als het goed is)
Als alles uit is, dan de SHIFT op 0 zetten op Home.
Als dat gedaan is naar het CCC tabje gaan, en de gewenste curve programeren >> En [Exporteren] naar de pomp.
Daarna kun je alles weer aan zetten.
Suggestie 2 Ook als je Direct gebruikt
SoftStart functie > Config > Phase 1 (Startup) > Catch duration (sec) op 170 zetten.
Als dat niet werkt;
SoftStart functie > Config > Phase 1 (Startup) > Max temp difference (°C) op -1 zetten
Als bovenstaande allemaal niet werkt, dan moeten we dieper duiken.
Ter informatie;
De "Upperlimit correction" en "Lowerlimit correction" in SoftStart > Config, die staan onder Phase 2 (Stable)
Deze worden ook niet gehonoreerd bij Phase 1

Dus dat het lager komt, gedurende phase 1, dat klopt.