thehog schreef op donderdag 7 oktober 2021 @ 09:17:
[...]
Djeez.. ik begrijp hem niet meer hoor. Wat een doorontwikkeling.
Kan je ergens commentaar toevoegen zodat we beter snappen wat alles precies doet? Uiteindelijk toch nog steeds Ta-setpoint 1 graad onder Ta?
ps: ik zal van het weekend eens kijken naar je PR's en weer verder met heishamon code
Mijn rules systeem ondersteund geen commentaar, dus nee, dat gaat niet
Even weer een grove beschrijving.
setThermostaat
Er zijn twee parameters. Nachtverlaging en zomerverlaging. In bepaalde zomermaanden is het koude gevoel anders dan in de wintermaanden. Dan zou dus de verwarming lager kunnen dan in de strenge winters. Nachtverlaging spreekt voor zich.
Die koude correctie doe ik ook nog eens op buitentemperatuur. Als het echt begint te vriezen, mag de verwarming iets warmer. Ik ga nog even zien of dat nodig blijft.
stooklijn
Als het huis op temperatuur is dan kan er geprobeerd worden de Ta te verlagen om niet meer op te warmen maar op temperatuur te houden. In de aanloop naar "op temperatuur" verlaag ik de maximaal toegestane Ta naar beneden. Mits er tenminste ruimte voor is. De maxTa is een WAR gebaseerde parameter.
berekenWar
Lijkt me helder.
setNewTemp
Stuurt de doelT. Enige waar je rekening mee moet houden is dat je de WP en WAR te vriend houdt. Dus niet te snel verlagen. Deze probeert de stooklijn correctie toe te passen zonder dat de WP uitvalt.
@Defrosting_State
Spreekt voor zich
resetTeller
Spreekt voor zich
resetDummy
Spreekt voor zich
schakelWP
Spreekt voor zich
@Heatpump_State
Spreekt voor zich
WPAan
Spreekt voor zich
WPUit
Spreekt voor zich
@Main_Outlet_Temp
Als de Ta veranderd, kijk dan of de doelT bijgesteld moet worden.
timer=5
Als het te lang duurt om de Ta met minimaal vermogen te verhogen, ga de doelT verhogen naar +1 om meer vermogen te vragen. Als echter de Ta weer snel genoeg stijgt, dan hoeft dat niet meer en kan je terug naar doelT -1.
setTimer5
Pas alleen de timer5 logica toe als de woonkamer onder de minimale setpoint is.
setTimers
Als het te koud buiten is, dan mag de WP zelf zo snel mogelijk op temp komen.
Als het binnen veel te koud, dan mag de WP sneller op temperatuur komen.
Als het alsnog te lang duurt voordat het binnen warm wordt, dan mag er ook geboost worden.
setOnTemp
Logica om te checken of de woonkamer op temperatuur is.
@Room_Thermostat_Temp
1. Kijk of de woonkamer boven de maximale temperatuur is. Zet de WP dan na 5 seconde uit.
2. Kijk of de woonkamer onder de minimale temperatuur is. Zet de WP dan na 5 seconde aan.
3. De start sequentie waarbij de Ta even naar +5 moet om de daadwerkelijk de compressor te starten.
timer=2
Daadwerkelijk stooklijn correctie. Als de boel op temperatuur is, dan zet die om de minuut de Ta naar -1 of -2. Als het buiten koud genoeg is zou dat de Ta moeten doen dalen. Dat doet die vervolgens tot de nieuwe maxTa vastgesteld in de functie
stooklijn.
Alles is overigens te volgen via mijn dashboard.
Het rules systeem dat in de Heishamon moet komen heb ik in een tijdelijke programmatje gezet dat ik in een
screen sessie draai op mijn NAS.
https://github.com/CurlyMoo/HeishaDaemon
Wat van belang is
Ik haal alle waardes binnen via MQTT en ik bedien de Heishamon via MQTT. De @Room_Thermostat_Temp overschijf ik echter door een ESP8266 sensor die in de woonkamer staat. Dat zie je hier:
https://github.com/CurlyM.../blob/main/main.cpp#L1244
https://github.com/CurlyM.../blob/main/main.cpp#L1260
De MQTT broker IP is hardcoded. Dus die moet je ook even aanpassen.
https://github.com/CurlyM...lob/main/main.cpp#L56-L59
Het hele systeem dat deze rules interpreteert is ESP8266 proof, dus zou uiteindelijk in de Heishamon geïmplementeerd moeten worden.