Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Ik gebruik Zigbee2MQTT i.c.m. Domoticz en Node-REDhemertje schreef op dinsdag 10 december 2024 @ 15:54:
[...]
@BazemanKM
Welke oplossing gebruik jij als ik vragen?
Wel of niet een externe sensor in de woonkamer?
En hoe vervolgens opgenomen in Node Red?
En stuur je op WAR met RTC?
Ik heb meerdere Zigbee temperatuursensoren, die via MQTT naar Domoticz gaan, daar bereken ik een gemiddelde, die weer naar MQTT en dan Node-RED gaat.
Ik gebruik WAR (op de Panasonic) en die laat ik met RTC (gemiddelde kamertemperatuur) bijsturen.
https://www.fam-oldenburger.nl/category/domotica/
Ik ben er nog niet geheel tevreden mee, maar heb momenteel niet de tijd om er diep in te duiken. Problemen welke ik nog heb is afslaan van de pomp kort na een start en denk dat er nog wat optimalisatie mogelijk is qua MQTT berichten, soms staat die langzaam te oscilleren tussen twee temperaturen. Als je in faseNatrixz schreef op dinsdag 10 december 2024 @ 08:49:
Even een generieke vraag;
Ik ben stiekem heel benieuwd of Soft-Start voor iedereen goed werkt zoals het nu is.
Reden van mijn vraag is omdat hij bij mij met gemak enkele uren op "Function SoftStart: --> Pump did not yet relax (30Hz). Restarting Phase 1 again..." kan blijven hangen en de woning dus alles behalve warm wordt.
Heb nu dan zelf ook Soft-Start uitgezet om weer een beetje warmte de woning in te krijgen, want constant 22-23 graden water terwijl de warmtepomp niet relaxed, is niet tof
1 blijft hangen heb sowieso al 1 bericht per minuut te pakken.
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Maar: het gebeurd regelmatig (meestal/altijd) na afloop van een defrost of een dhw run dat de compressor niet weer aanslaat. De 'Outlet actual' is dan veel lager dan het 'Outlet setpoint' (verschil > 5 gr.), maar de warmtepomp reageert daar niet op. Wanneer ik dan op het dashboard 'Home' de WAR uitschakel en na even wachten weer inschakel gaat alles weer werken.
Iemand een idee wat hier aan de hand is?
Panasonic 7kW all-in-one KIT-ADC07L3E5 | Heishamon | Node-Red | Home Assistant | bgg 66 m2 vvw | 1e + 2e verd lt convectoren (Jaga) | pv 10120 wp
Zelfde probleem. Ik geloof dat edterbak een Extra check ging toevoegen hiervoor.bartve schreef op woensdag 11 december 2024 @ 16:01:
Ik gebruik de (overigens geniale! veel dank ervoor!) Node-RED flows voor Heishamon in Home assistant. Heb externe sensors voor buiten- en binnentemperatuur aangesloten via de WP Personal flow. De warmtepomp (Panasonic L-serie all in one 7 kW) is in augustus in gebruik genomen, en ik heb stapsgewijs WAR, RTC en softstart aangezet. Over het algemeen heb ik het idee dat het allemaal redelijk is ingeregeld.
Maar: het gebeurd regelmatig (meestal/altijd) na afloop van een defrost of een dhw run dat de compressor niet weer aanslaat. De 'Outlet actual' is dan veel lager dan het 'Outlet setpoint' (verschil > 5 gr.), maar de warmtepomp reageert daar niet op. Wanneer ik dan op het dashboard 'Home' de WAR uitschakel en na even wachten weer inschakel gaat alles weer werken.
Iemand een idee wat hier aan de hand is?
Niet zo zeer een vraag voor dit specifieke topic maar 't is natuurlijk wel mogelijk met 't node-red dashboard om hier meer mee te spelen.hemertje schreef op woensdag 11 december 2024 @ 15:51:
Vraagje, tot welke temperatuur stoken jullie het DHW boilervat op en met welke reden?
Ik heb DHW op 50 graden en DHW delta op -8 graden. Ik stuur m'n DHW run echter via rules waarbij de DHW run normaal gesproken start net na 13:00u.
Die 50 graden is een beetje proefondervindelijk tot stand gekomen. Normaal gesproken redden we 't hier met 2 DHW runs per week. Zaterdag & zondag wordt 't er 't meeste gedoucht dus ik heb de legionellarun (naar 63 graden) op zaterdag staan zodat er dan 't meest capaciteit is.
't is een beetje een afweging met vele variabelen waaronder:
1) hoe groot is je boiler en hoeveel warm water (van 38 graden voor douchen) is er nodig;
2) hoe hoger de temperatuur in je boiler hoe lager de COP van je WP;
3) stilstandverlies is zonde, het komt mogelijk wel ten goede van de verwarming van je huis (als je boiler in een verwarmde ruimte staat) maar is met slechte COP geproduceerd;
4) Bij elke DHW run heb je een redelijk lange opwarmtijd die ook nog wordt beïnvloed door de afstand tussen WP en boiler.
2 & 3 pleiten dus voor lage DHW temperatuur, 4 voor een hoge DHW temperatuur.
1 hangt er vanaf; grote boiler & weinig verbruik -> lage DHW temp, kleine boiler & veel verbruik -> hoge DHW temp.
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
en heb de DHW al jaren op 45GrC staan
we zijn met 2,5 volwassenen
douchen doen we met 38-40GrC
dus dan gaat het bijna 1 op 1 eruit idd
/f/image/B2zzMeYE055YWoT6KARjaeFK.png?f=fotoalbum_large)
wellicht dat idd de temperatuur verhogen een efficienter verbruik en hogere COP oplevert?
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
In de nacht heb ik DHW bewust uitgeschakeld dus eventueel in ochtend pas bijverwarming. Diverse redenen, 1 in verhouding in het s nachts kouder en minder efficiënt en b in de vroege ochtend niet nodig.
Verder bezig met een run van al 1660 minuten ( mede door sterilisatie van gisteren waardoor er geen DHW onderbreking is geweest.)
Taal fouten inbegrepen ;)
Mijn AI Art YouTube kanaal
10 DHW run's in 7 dagen, 't lijkt mij wat veel. Ik zou in elk geval zien dat DHW run's vooral overdag / in de middag draaien, dan is de buitentemperatuur 't hoogst en de COP dus ook.hemertje schreef op woensdag 11 december 2024 @ 18:53:
ik heb een 300L boilertank
en heb de DHW al jaren op 45GrC staan
we zijn met 2,5 volwassenen
douchen doen we met 38-40GrC
dus dan gaat het bijna 1 op 1 eruit idd
[Afbeelding]
wellicht dat idd de temperatuur verhogen een efficienter verbruik en hogere COP oplevert?
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
zoiets is 't bij ons ook, alleen met 50 en 42 graden. De thermostaatkraan kan niet op 1 stand blijven staan tussen > 60 graden (na sterelisatie) en 42 graden of nog wat koeler maar daar is prima mee te leven.The-Source schreef op woensdag 11 december 2024 @ 19:27:
@blb4 hier opstoken tot 48c en bij 42c weer opwarmen. Wanneer het vat op 42c is moet ik eigenlijk de douche kraan iets warmer zetten terwijl als sterilisatie heeft gedraaid het eigenlijk iets terug mag.
In de nacht heb ik DHW bewust uitgeschakeld dus eventueel in ochtend pas bijverwarming. Diverse redenen, 1 in verhouding in het s nachts kouder en minder efficiënt en b in de vroege ochtend niet nodig.
Verder bezig met een run van al 1660 minuten ( mede door sterilisatie van gisteren waardoor er geen DHW onderbreking is geweest.)
da's inderdaad ook nog een voordeel die ik niet genoemd had van maar enkele DHW runs per week: je verwarmingsruns kunnen zeer lang worden. Behalve als ze dan toch onderbroken worden door defrosts....
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Ik heb nu -na een hele lange periode zonder problemen- voor de tweede keer dat ie op DHW blijft hangen, terwijl ie op heat had moeten staan.
Hij had nooit op dhw only mogen staan volgens scheduler. Ik heb uit staan dat rtc de operating mode verandert.Schedule_1 Allow DHW, Select,Tuesday,Thursday,Saturday,Sunday, 14:00, OperationMode4 (override)
Schedule_2 Stop DHW, Select,Tuesday,Thursday,Saturday,Sunday, 17:00, OperationMode0
Schedule_3 Sterelization, Saturday, 12:00, Sterilization (override)
Schedule_4 Quiet on, Select,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday, 23:30QM_1
Schedule_5 Quiet off, Select,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday, 06:00, QM_0
Scheduler: 5 tasks are currently active
F_stored_next_operating_mode: 0
F_SOLAR.function_active_state: 0
solar_block_scheduler: undefined (ok)
[ Voor 5% gewijzigd door MikeyMan op 12-12-2024 08:06 ]
Ik heb hetzelfde/ iets vergelijkbaars. Alleen precies tegenovergesteld van jouw situatie. Ook mag RTC geen mode change doen. Bij mij start vanuit de scheduler niet de WP op, terwijl dit wel is toegestaan/moet; waardoor er geen DWh run komt. Maar wordt wel de operating mode gewijzigd van 0 => 4. Totdat de setpoint genoeg daalt in huis of ik een melding krijg/controleer of het schedule start.MikeyMan schreef op donderdag 12 december 2024 @ 07:52:
@edterbak is er in de laatste beta iets veranderd in de afhandeling van de scheduler of RTC?
Ik heb nu -na een hele lange periode zonder problemen- voor de tweede keer dat ie op DHW blijft hangen, terwijl ie op heat had moeten staan.
[...]
Hij had nooit op dhw only mogen staan volgens scheduler. Ik heb uit staan dat rtc de operating mode verandert.
Gisteren ging het wel goed omdat de Pana niet uit staat tijdens deze koude dagen.
Todo:
Ik moet nog verder tunen om in de meest koude periode eigenlijk niet te verwarmen en een buffer voor de nacht dus op bouwen.
pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem
Heb gisteren een Forceful DHW aangezet omdat de kinderen in bad moesten:
Dat ie daar dhw mode selecteert is m.i. terecht.
Maar daarna wordt ie niet teruggezet.
Het zou zo kunnen zijn dat ik toevallig omstreeks hetzelfde moment handmatig forceful dhw heb aangezet als dat de minimale waarde bereikt werd (de safety feature voor DHW die op basis van een absoluut minimum een run doet).12/12 07:21:54 - Function WAR: Setpoint change: From 26.5 to 26.7 °C
12/12 07:21:54 - TOP4_Operating_Mode_State: 4
12/12 07:21:45 - MQTT Command: SetOperationMode: 4 (Scheduler)
12/12 06:00:28 - Scheduler - Set QuietMode: 0
12/12 00:00:00 - Function Solar: New day; Reset Solar function. DHW SP = 48
12/12 00:00:00 - SYSTEM: Total amount of offline messages today: 0
------------------------------------------------------------------------------------------------
11/12 23:30:28 - Scheduler - Set QuietMode: 1
11/12 21:44:36 - MQTT Command: SetMaxPumpDuty: 89 (pump speed)
11/12 21:44:36 - Compressor: stopped
11/12 21:44:36 - Function Pump speed: Max pumpspeed set to 89 (13%) (Low)
11/12 21:44:36 - TOP20_ThreeWay_Valve_State: 0
11/12 21:27:20 - MQTT Command: SetMaxPumpDuty: 235 (pump speed)
11/12 21:27:20 - Compressor: running
11/12 21:27:20 - Function Pump speed: Max pumpspeed set to 235 (90%) (DHW)
11/12 21:24:06 - TOP20_ThreeWay_Valve_State: 1
11/12 16:48:32 - MQTT Command: SetMaxPumpDuty: 89 (pump speed)
11/12 16:48:32 - Compressor: stopped
11/12 16:48:32 - Function Pump speed: Max pumpspeed set to 89 (13%) (Low)
11/12 16:48:32 - TOP20_ThreeWay_Valve_State: 0
11/12 15:59:02 - MQTT Command: SetMaxPumpDuty: 235 (pump speed)
11/12 15:59:02 - Compressor: running
11/12 15:59:02 - Function Pump speed: Max pumpspeed set to 235 (90%) (DHW)
11/12 15:58:47 - Scheduler - Force DHW: 1
11/12 15:58:47 - Scheduler: Enable ForceDHW
11/12 15:58:38 - TOP20_ThreeWay_Valve_State: 1
11/12 15:58:38 - TOP4_Operating_Mode_State: 3
11/12 15:58:37 - MQTT Command: SetOperationMode: 3
11/12 15:58:37 - Scheduler - Operation Mode: 3
11/12 15:58:37 - Scheduler: Operation mode change to (3)DHW-Only
11/12 15:58:35 - Scheduler: Stored next operating mode is set to 0
[ Voor 73% gewijzigd door MikeyMan op 12-12-2024 09:36 ]
Het treedt nu weer op, een verschil van 8 gr. tussen outlet setpoint en actual zonder dat de wp daarop aanspringt. In de web interface van de Heishamon staat 'TOP7 Main_Target_Temp' op 32 gr. , en dat is hetzelfde wat in de Node-RED flow / dashboard bij outlet sepoint ook staat, dus dat komt wel correct door?djoenez schreef op woensdag 11 december 2024 @ 16:21:
[...]
Zelfde probleem. Ik geloof dat edterbak een Extra check ging toevoegen hiervoor.
Verderop in de Heishamon web interface staat, weet niet of dat meer inzicht geeft:
TOP27 Z1_Heat_Request_Temp 32 °C
TOP28 Z1_Cool_Request_Temp 17 °C
TOP29 Z1_Heat_Curve_Target_High_Temp 32 °C
TOP30 Z1_Heat_Curve_Target_Low_Temp 35 °C
TOP31 Z1_Heat_Curve_Outside_High_Temp 15 °C
TOP32 Z1_Heat_Curve_Outside_Low_Temp -5 °C
Panasonic 7kW all-in-one KIT-ADC07L3E5 | Heishamon | Node-Red | Home Assistant | bgg 66 m2 vvw | 1e + 2e verd lt convectoren (Jaga) | pv 10120 wp
Taal fouten inbegrepen ;)
Mijn AI Art YouTube kanaal
Kan er niet aan tippen met mijn 1109 uur maar ik heb ‘s avonds de houtkachel aan dus dan stopt die👍👍👍The-Source schreef op donderdag 12 december 2024 @ 17:06:
Mijn langste sessie is toch vandaag onderbroken, niet vanwege DHW maar omdat de temperatuur in/out bereikt was maar naar 2760 minuten een respectabele run
Compressor runtime 7469 min op +/- 20Hz momenteel. Afgelopen dagen geen defrosts gehad, bij andere gebruikers wel?The-Source schreef op donderdag 12 december 2024 @ 17:06:
Mijn langste sessie is toch vandaag onderbroken, niet vanwege DHW maar omdat de temperatuur in/out bereikt was maar naar 2760 minuten een respectabele run
Taal fouten inbegrepen ;)
Mijn AI Art YouTube kanaal
Ok, ik heb hulp nodig: vandaag heb ik zo ongeveer elk uur een defrost, en dat is past in het algemene beeld van het gedrag van mijn warmtepomp (Panasonic L-serie all-in-one 7 kW). Wat doe ik verkeerd?Brokencore schreef op donderdag 12 december 2024 @ 18:23:
[...]
Compressor runtime 7469 min op +/- 20Hz momenteel. Afgelopen dagen geen defrosts gehad, bij andere gebruikers wel?
Panasonic 7kW all-in-one KIT-ADC07L3E5 | Heishamon | Node-Red | Home Assistant | bgg 66 m2 vvw | 1e + 2e verd lt convectoren (Jaga) | pv 10120 wp
Het komt mij eerder over dat je de basis instelling, zonder RTC + Softstart, nog niet heel erg goed hebt staan voor jouw situatie.Natrixz schreef op dinsdag 10 december 2024 @ 09:38:
Thanks @Knielen, goede tip!
Als ik hem naar -7 zet, lijkt het inderdaad ver genoeg te zakken om te relaxen =)
Edit: Ik zie dit overigens alweer mis gaan als het buiten kouder wordt.....dan zet de WAR de temperatuur hoger en kom ik er alsnog niet. Kan me stiekem haast niet voorstellen dat dit alleen voor mij het geval is.
@edterbak is het wellicht een optie om na 2 (misschien 3?) rondjes WP niet relaxed, de SS_SP verder te verlagen? Of het configureerbaar te maken?
Dus als alleen met de WAR functie een verwarming hebt waar je een beetje blij van wordt, dan weet je de temperatuur ranges van het water dat het moet zijn.
Met deze kennis kun je dus de RTC functie finetunen, en ook zeker de lower/upper limits juist instellen.
again, dit is de indruk die ik er nu van krijg. Een correctie van WAR zou niet zo een groot effect moeten hebben namelijk.
Slechts ter informatie.... Vanuit node red kun je sensoren uitlezen rechtstreeks in home assistant, of via mqtt.nMad schreef op dinsdag 10 december 2024 @ 14:57:
[...]
Ik heb zelf geen externe sensors in Node Red toegevoegd. Maar kan je wel vertellen hoe het kan (moet?): via Zigbee2MQTT. Want je wilt de waarde van je sensor in een MQTT topic. Vervolgens kunnen één of meerdere systemen deze waarde uitlezen, waaronder NR / HA.
Beiden is mogelijk. Het is dus niet verplicht om zigbee2mqtt te draaien om vervolgens een waarde in de mqtt broker te duwen, en deze weer uit te lezen in node red.
Maar.... Als je zo een idioot bent als ik, dan heb je de zigbee2mqtt niet binnen in home assistant als addon draaien, maar op een aparte vm/container. Dat is een persoonlijke keuze natuurlijk
hoi Ed,edterbak schreef op donderdag 12 december 2024 @ 22:10:
[...]
Slechts ter informatie.... Vanuit node red kun je sensoren uitlezen rechtstreeks in home assistant, of via mqtt.
Beiden is mogelijk. Het is dus niet verplicht om zigbee2mqtt te draaien om vervolgens een waarde in de mqtt broker te duwen, en deze weer uit te lezen in node red.
Maar.... Als je zo een idioot bent als ik, dan heb je de zigbee2mqtt niet binnen in home assistant als addon draaien, maar op een aparte vm/container. Dat is een persoonlijke keuze natuurlijkIk wil de afhankelijkheid van HomeAssistant niet.. al die updates waar ik constant dingen moet fixen en corrigeren... Het is niet de eerste keer dat iets niet werkt na een update
maar de sensoren moeten toch wel MQTT praten, Zigbee sensoren kan je niet selecteren in NR?
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Ik ben afgelopen week erg druk geweest. Ik kon geen tijd vrij maken om te duiken in het issue dat we ervaren.
@MikeyMan @imdos Ik wil dat dit probleem als een van de eerste opgelost is. Ik kom er wel uit, maar het kost me wat meer tijd om het te vinden.
Mijn DHW tank staat standaard op 52C, en ik doe iedere vrijdag een sterilisatie run van 62C.
Als ik geen afnemers heb, duurt het ca 3 dagen voordat het water ~38C is.
Bij meer gebruik.. (Aaargh!!! ik heb 2 dochterss... ) is het vaker 1x per twee dagen.
Vorige week hoorde ik iemand zeggen dat z'n beide dochters onder de douche uitsliepenedterbak schreef op donderdag 12 december 2024 @ 22:22:
@ iedereen.
Ik ben afgelopen week erg druk geweest. Ik kon geen tijd vrij maken om te duiken in het issue dat we ervaren.
@MikeyMan @imdos Ik wil dat dit probleem als een van de eerste opgelost is. Ik kom er wel uit, maar het kost me wat meer tijd om het te vinden.
Mijn DHW tank staat standaard op 52C, en ik doe iedere vrijdag een sterilisatie run van 62C.
Als ik geen afnemers heb, duurt het ca 3 dagen voordat het water ~38C is.
Bij meer gebruik.. (Aaargh!!! ik heb 2 dochterss... ) is het vaker 1x per twee dagen.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Als er iets bekend is in home assistant, dan kun je het vanuit node red opvragen.hemertje schreef op donderdag 12 december 2024 @ 22:19:
[...]
hoi Ed,
maar de sensoren moeten toch wel MQTT praten, Zigbee sensoren kan je niet selecteren in NR?
daar heb je mqtt niet voor nodig.
Maar... als je geen home assistant hebt dat als zenuwcentrum fungeert, kun je daar dus als spinnetje in het web mqtt broker voor gebruikern.
Dit bovenstaande verhaal staat 'uiteraard' helemaal los van heishamon.
De heishamon module werkt 100% met mqtt. Zonder de mqtt broker kun je niks uitlezen van de heishamon en kun je de node red flow net zo goed de deur uit gooien
Mijn filosofie voor deze flow is altijd geweest dat wat ik maak, volledig zelfstandig functioneert via de mqtt broker.
Geen afhankelijkheid van andere software zoals home assistant of domoticz of Homey.. what ever.
Vanuit mijn visie is niemand verplicht om de mqtt-broker, welke iedereen sowieso nodig heeft, ook te gebruiken voor de sensoren. Dit kan wel, maar hoeft niet. Je kunt de informatie ook tussen Node red <-> Home assistant laten gaan zonder tussenkomst van mqtt-broker.
Hoi djoenez,djoenez schreef op zondag 8 december 2024 @ 21:15:
@edterbak , zou jij kort kunnen uitleggen hoe en waar jij een tabblad maakt? dan ga ik deze en volgende week knutselen aan "cost optimized" warmtepompen
als je boven in de horizontale balk van node red flow alle tab-bladen ziet welke je geimporteert hebt, heb je daar rechts van een (+)-je staan. Als je daar op klikt, komt er een nieuw tabblad tevoorschijn.
Als je deze WP-xxx als naam geeft (xxx vervangen door jouw korte doeltreffende kop), dan is dat gefixt.
edit ((Dit is vast niet wat je vraag is... hahahah))
Misschien volledig overbodig...
Maar als ik je een tip mag geven voor dat je begint aan het bouwen van layout.
Maak eerst een schets op papier. (of zorg dat je het helder hebt in je hoofd)
In dit plaatje dat je maakt, ga je bedenken welke gegevens je in de flow gebruikt voor het instellen. Welke getallen je in beeld nodig hebt. De dingen welke je in het dashboard zichtbaar moet hebben om dat te kunnen is dan iets dat duidelijk moet zijn voor je begint.
De tweede gedachte die je daarna kunt doorlopen is hoe de gebruiker iets op een intuitieve manier zou kunnen zien. Een structuur van boven naar beneden. lins rechts.. of in tijd van oud/nieuw.. geen idee hoe het exact werkt, dus ik roep maar wat.
Hoe je een extra tabblad maakt in het dashboard (die verticale met home, settings...etc..)
Rechts bovenin heb je informatie, help, debug, .... >>Dashboard<<
Klik op dashboard.
klik 1x op de +tab
dan komt er een nieuw tabje onderop (hier tab 16)
Daar onder maake je een groep, en in die groep plaats je je dashboard elementen.
Op de knop 'layout' drukken om het geheel op een grafische manier vorm te geven.
/f/image/TR6I3h2h7aSLOIHcBfwztQih.png?f=fotoalbum_large)
Ik denk dat dit in vogel vlucht is wat je wilt weten toch?
vraag maar raak als het niet voldoende is
[ Voor 9% gewijzigd door edterbak op 12-12-2024 22:49 ]
We hebben het hier over extra Zigbee sensoren die we in NR willen gebruiken. Niet over de Heishamon Panasonic topics.edterbak schreef op donderdag 12 december 2024 @ 22:27:
[...]
Als er iets bekend is in home assistant, dan kun je het vanuit node red opvragen.
daar heb je mqtt niet voor nodig.
Maar... als je geen home assistant hebt dat als zenuwcentrum fungeert, kun je daar dus als spinnetje in het web mqtt broker voor gebruikern.
Dit bovenstaande verhaal staat 'uiteraard' helemaal los van heishamon.
De heishamon module werkt 100% met mqtt. Zonder de mqtt broker kun je niks uitlezen van de heishamon en kun je de node red flow net zo goed de deur uit gooien![]()
nutteloos.
Mijn filosofie voor deze flow is altijd geweest dat wat ik maak, volledig zelfstandig functioneert via de mqtt broker.
Geen afhankelijkheid van andere software zoals home assistant of domoticz of Homey.. what ever.
Vanuit mijn visie is niemand verplicht om de mqtt-broker, welke iedereen sowieso nodig heeft, ook te gebruiken voor de sensoren. Dit kan wel, maar hoeft niet. Je kunt de informatie ook tussen Node red <-> Home assistant laten gaan zonder tussenkomst van mqtt-broker.
Helpt dit?
PV: 10,4 kWp | EV: Tesla M3 LR ‘19 | L/W WP: Panasonic WH-MDC07J3E5 + PAW-TD20C1E5 | L/L WP: Daikin FVXM35A/RXM35R + Daikin FTXM25R/RXM25R + MHI 2x SRK25ZS-WF/SCM40ZS-W
Thanks! ik ben weer een stap verder.edterbak schreef op donderdag 12 december 2024 @ 22:48:
[...]
Hoi djoenez,
als je boven in de horizontale balk van node red flow alle tab-bladen ziet welke je geimporteert hebt, heb je daar rechts van een (+)-je staan. Als je daar op klikt, komt er een nieuw tabblad tevoorschijn.
Als je deze WP-xxx als naam geeft (xxx vervangen door jouw korte doeltreffende kop), dan is dat gefixt.
edit ((Dit is vast niet wat je vraag is... hahahah))
Misschien volledig overbodig...
Maar als ik je een tip mag geven voor dat je begint aan het bouwen van layout.
Maak eerst een schets op papier. (of zorg dat je het helder hebt in je hoofd)
In dit plaatje dat je maakt, ga je bedenken welke gegevens je in de flow gebruikt voor het instellen. Welke getallen je in beeld nodig hebt. De dingen welke je in het dashboard zichtbaar moet hebben om dat te kunnen is dan iets dat duidelijk moet zijn voor je begint.
De tweede gedachte die je daarna kunt doorlopen is hoe de gebruiker iets op een intuitieve manier zou kunnen zien. Een structuur van boven naar beneden. lins rechts.. of in tijd van oud/nieuw.. geen idee hoe het exact werkt, dus ik roep maar wat.
Hoe je een extra tabblad maakt in het dashboard (die verticale met home, settings...etc..)
Rechts bovenin heb je informatie, help, debug, .... >>Dashboard<<
Klik op dashboard.
klik 1x op de +tab
dan komt er een nieuw tabje onderop (hier tab 16)
Daar onder maake je een groep, en in die groep plaats je je dashboard elementen.
Op de knop 'layout' drukken om het geheel op een grafische manier vorm te geven.
[Afbeelding]
Ik denk dat dit in vogel vlucht is wat je wilt weten toch?
vraag maar raak als het niet voldoende is
Ik heb op het moment het een soort van draaien, een overzicht van wat ik doe:
Input:
- prijzen (+24u)
- minimale savings om iets te doen
- setpoint (dit is het "standaard" setpoint voor RTC)
- opwarm tijd +1C
- cool down time -1C
- max setpoint deviation (dit is up en down)
- heat boost (om de WP aan te krijgen)
- cool boost (om de WP snel uit te krijgen, denk niet dat ik uiteindelijk ga gebruiken)
Output:
- setpoint (voor RTC)
Ik gebruik als functie de PS - heat capacitor, ik vraag mij uiteindelijk af of dit wel de juiste manier is voor een WP met vloerverwarming, daar later meer over (en ook er is niet echt goede documentatie hoe hij intern werkt..). De conclusie zou uiteindelijk kunnen zijn dat ik zelf iets simpelers maak (iets als: If price is x% under max, then setpoint +0.x, elif price is x% under max or at max then setpoint -0.x) ).
Ik zie een aantal issues vooralsnog:
- Mijn huis heeft ongeveer 11u nodig om 1 graad om hoog te gaan, dit zorgt ervoor dat hij eigenlijk alleen in de nacht aangeeft dat hij een setpoint verhoging kan doen. dit zorgt er natuurlijk voor dat hij snachts moet gaan stampen, met de nodige defrots, ik wil nog toevoegen:
- input temperatuur voorspelling per uur
en dit wil ik dan gebruiken om:
add x% to price if temperature is below 5C.
Op het moment als de logica helemaal draait zou ik graag willen kijken of @edterbak het ziet zitten om door mijn flow heen te gaan, en de standaard functionaliteit kan toevoegen die hij ook in zijn programma gebruikt (het opslaan van waarden, reload on boot etc).
Word vervolgd!
Met zo’n traag afgiftesysteem zou je iets moeten doen als vooraf bepalen - obv weersverwachting - hoeveel energie je de komende 24 uur in je huis moet stoppen en dan die energie obv de uurprijzen verdelen over de dag. Op momenten met de laagste prijzen de shift omhoog, in de dure uren de shift omlaag.djoenez schreef op vrijdag 13 december 2024 @ 09:34:
[...]
Thanks! ik ben weer een stap verder.
Ik heb op het moment het een soort van draaien, een overzicht van wat ik doe:
Input:
- prijzen (+24u)
- minimale savings om iets te doen
- setpoint (dit is het "standaard" setpoint voor RTC)
- opwarm tijd +1C
- cool down time -1C
- max setpoint deviation (dit is up en down)
- heat boost (om de WP aan te krijgen)
- cool boost (om de WP snel uit te krijgen, denk niet dat ik uiteindelijk ga gebruiken)
Output:
- setpoint (voor RTC)
Ik gebruik als functie de PS - heat capacitor, ik vraag mij uiteindelijk af of dit wel de juiste manier is voor een WP met vloerverwarming, daar later meer over (en ook er is niet echt goede documentatie hoe hij intern werkt..). De conclusie zou uiteindelijk kunnen zijn dat ik zelf iets simpelers maak (iets als: If price is x% under max, then setpoint +0.x, elif price is x% under max or at max then setpoint -0.x) ).
Ik zie een aantal issues vooralsnog:
- Mijn huis heeft ongeveer 11u nodig om 1 graad om hoog te gaan, dit zorgt ervoor dat hij eigenlijk alleen in de nacht aangeeft dat hij een setpoint verhoging kan doen. dit zorgt er natuurlijk voor dat hij snachts moet gaan stampen, met de nodige defrots, ik wil nog toevoegen:
- input temperatuur voorspelling per uur
en dit wil ik dan gebruiken om:
add x% to price if temperature is below 5C.
Op het moment als de logica helemaal draait zou ik graag willen kijken of @edterbak het ziet zitten om door mijn flow heen te gaan, en de standaard functionaliteit kan toevoegen die hij ook in zijn programma gebruikt (het opslaan van waarden, reload on boot etc).
Word vervolgd!
Hoe sneller je afgiftesysteem - maar vooral denk ik hoe sneller je huis afkoelt, hoe korter je deze evaluatieperiode moet maken (om ‘t comfortabel te houden).
[ Voor 3% gewijzigd door blb4 op 13-12-2024 09:51 ]
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Ja, dat is een optie, maar in feite doet je WAR dit ook al, maar dan niet vooruitkijkend. Dus zou je niet dezelfde uitkomst hebben met jou voorstel als met:blb4 schreef op vrijdag 13 december 2024 @ 09:43:
[...]
Met zo’n traag afgiftesysteem zou je iets moeten doen als vooraf bepalen - obv weersverwachting - hoeveel energie je de komende 24 uur in je huis moet stoppen en dan die energie obv de uurprijzen verdelen over de dag. Op momenten met de laagste prijzen de shift omhoog, in de dure uren de shift omlaag.
"he, prijs is laag, ik shift mijn RTC omhoog om warmte te "bufferen" ".
Bij een normale start werkt dit wel.
Is dit bij jullie ook ? hoort dit zo?
Moet je voor sterilisatie niet boven op 65 zitten?edterbak schreef op donderdag 12 december 2024 @ 22:22:
@ iedereen.
Ik ben afgelopen week erg druk geweest. Ik kon geen tijd vrij maken om te duiken in het issue dat we ervaren.
@MikeyMan @imdos Ik wil dat dit probleem als een van de eerste opgelost is. Ik kom er wel uit, maar het kost me wat meer tijd om het te vinden.
Mijn DHW tank staat standaard op 52C, en ik doe iedere vrijdag een sterilisatie run van 62C.
Als ik geen afnemers heb, duurt het ca 3 dagen voordat het water ~38C is.
Bij meer gebruik.. (Aaargh!!! ik heb 2 dochterss... ) is het vaker 1x per twee dagen.
Volgens mij was het bij mij veroorzaakt door een combinatie van de noodfunctien voor minimale dhw temp en de handmatige start van forceful dhw.
Niet echt voor dit topic, maar vooruit. Als je eenmaal in een 'defrost loop' zit is het erg lastig om hier uit te komen. Waarschijnlijk was het bij jou net 1 of 2 graden kouder dan bij mij en met deze hele hoge hoeveelheid vocht in de lucht ontkom je hier niet aan. Enige wat je kan doen is als je dit type weer aan ziet komen is 24/7 de pomp laten draaien (al een dag van te voren) en met bijvoorbeeld nachtreductie gaan werken. Hierdoor draait je pomp op een zo laag mogelijke frequentie als je in dit weertype terecht komt en is de kans kleiner dat je systeem dicht vriest. Verder is het hopen dat het of snel warmer of nog kouder wordt.bartve schreef op donderdag 12 december 2024 @ 21:18:
[...]
Ok, ik heb hulp nodig: vandaag heb ik zo ongeveer elk uur een defrost, en dat is past in het algemene beeld van het gedrag van mijn warmtepomp (Panasonic L-serie all-in-one 7 kW). Wat doe ik verkeerd?
Maar krijg je dan niet dat op dagen met (gemiddeld) goedkope stoom jullie zitten te puffen van de hitte en op dagen met hoge stroomprijzen jullie ijspegeltjes worden? Je wil uiteindelijk toch de hut comfortabel warm hebben, je zal iets van maximale afwijking tussen gewenste en daadwerkelijke temperatuur moeten instellen.djoenez schreef op vrijdag 13 december 2024 @ 10:00:
[...]
Ja, dat is een optie, maar in feite doet je WAR dit ook al, maar dan niet vooruitkijkend. Dus zou je niet dezelfde uitkomst hebben met jou voorstel als met:
"he, prijs is laag, ik shift mijn RTC omhoog om warmte te "bufferen" ".
Mogelijk kan je iets doen met gemiddelde dagprijs en de afwijking van de huidige uurprijs met dat gemiddelde.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
De meningen blijven verdeeld over de te volgens sterilisatieprocedure.MikeyMan schreef op vrijdag 13 december 2024 @ 11:31:
[...]
Moet je voor sterilisatie niet boven op 65 zitten?
Volgens mij was het bij mij veroorzaakt door een combinatie van de noodfunctien voor minimale dhw temp en de handmatige start van forceful dhw.
volgens boiler-info.nl:
Volgens de richtlijnen van ISSO publicatie 30.5 en 55.1 dient wekelijks de boiler gedesinfecteerd te worden.
Dat kan door één van deze 3 methode:
De gehele boiler inhoud op 60 °C brengen en daar minstens 20 minuten op laten staan.
De gehele boiler inhoud op 65 °C brengen en daar minsten 10 minuten op laten staan.
De gehele boiler inhoud op 70 °C brengen en daar minsten 5 minuten op laten staan.
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
yes, Hemertje moet gewoon geduld hebben
nu zijn de parameter waarden wel zichtbaar
/f/image/gtaTcBkz4WmCPA3SqwnHmsfM.png?f=fotoalbum_large)
van het weekend uitzoeken hoe ik de Zigbee tempsensor in NR zichtbaar en werkend krijg...
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Mjah, en dan is nog de vraag waar moet het 60 graden zijn?blb4 schreef op vrijdag 13 december 2024 @ 11:49:
[...]
De meningen blijven verdeeld over de te volgens sterilisatieprocedure.
volgens boiler-info.nl:
Volgens de richtlijnen van ISSO publicatie 30.5 en 55.1 dient wekelijks de boiler gedesinfecteerd te worden.
Dat kan door één van deze 3 methode:
De gehele boiler inhoud op 60 °C brengen en daar minstens 20 minuten op laten staan.
De gehele boiler inhoud op 65 °C brengen en daar minsten 10 minuten op laten staan.
De gehele boiler inhoud op 70 °C brengen en daar minsten 5 minuten op laten staan.
Bovenin is het warmer, onderin kouder...
De gehele boiler...... Maar dit is meer een discussie voor 't Legionella topic.MikeyMan schreef op vrijdag 13 december 2024 @ 11:59:
[...]
Mjah, en dan is nog de vraag waar moet het 60 graden zijn?
Bovenin is het warmer, onderin kouder...
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
Dit is het idee, dus kijken naar gemiddelde en max prijs van de 2 dagen data die ik invoer. dit gebruiken als setpoint change voor RTC. RTC en WAR zorgen dat het niet de spuigaten uitloopt / te koud wordt.blb4 schreef op vrijdag 13 december 2024 @ 11:43:
[...]
Maar krijg je dan niet dat op dagen met (gemiddeld) goedkope stoom jullie zitten te puffen van de hitte en op dagen met hoge stroomprijzen jullie ijspegeltjes worden? Je wil uiteindelijk toch de hut comfortabel warm hebben, je zal iets van maximale afwijking tussen gewenste en daadwerkelijke temperatuur moeten instellen.
Mogelijk kan je iets doen met gemiddelde dagprijs en de afwijking van de huidige uurprijs met dat gemiddelde.
En, gisteren kunnen voorkomen dat je tegen € 1,20 per kWh aan 't stoken bent geweest?djoenez schreef op vrijdag 13 december 2024 @ 15:05:
[...]
Dit is het idee, dus kijken naar gemiddelde en max prijs van de 2 dagen data die ik invoer. dit gebruiken als setpoint change voor RTC. RTC en WAR zorgen dat het niet de spuigaten uitloopt / te koud wordt.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Kan / wil iemand mij uitleggen in jip en janneke taal hoe het koppelen nu echt werkt?Natrixz schreef op donderdag 18 juli 2024 @ 16:36:
[...]
Op het "WP Input" tab heb je een aantal inputs, waaronder: P1 - Sensor with POWER PRODUCTION & P1 - Sensor with POWER CONSUMPTION.
Als je daar je P1 waarden naartoe linked ben je er
(Naar eigen keus/inzicht hoe je de waarden er heen stuurt/linked)
Ik ben al weken en tientallen pagina's aan het teruglezen geweest hoe de in de HA bekende P1-meter van Homewizard en de Aqara T1 temperatuursensor in Node Red zichtbaar te krijgen...?
Met 'daarnaar toe linken' snap ik het helaas nog steeds niet?
Wanneer ik in [WP Input] dubbelklik op bv de grijze vlakken zie je het volgende
/f/image/NDlDP7ujGDuiFCwKAzDEQtOx.png?f=fotoalbum_large)
Maar daarin zie ik geen P1-meter en/of temperatuursensor?
Denk ik nu te moeilijk?

Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Aan het einde van het artikel heb ik een korte uitleg en code die je kunt importeren in een nieuwe WP eigen flow tabblad in Node-RED. Met een dubbelklik op link out kun je de juiste koppeling selecteren en die ik er in heb gezet uitzetten.hemertje schreef op vrijdag 13 december 2024 @ 15:37:
[...]
Kan / wil iemand mij uitleggen in jip en janneke taal hoe het koppelen nu echt werkt?
https://www.fam-oldenburger.nl/2024/01/05/rtc-oftwel-room-temperature-correction/
https://www.fam-oldenburger.nl/category/domotica/
Ik heb ook een all-in-one 7kw (WH-UD07JE5) en defrost is sterk afhankelijk van buitentemperatuur en vocht. Die lange run was bijna continu op 19hz en 400watt verbruik. Ik heb overal vloerverwarming en kan dus ook erg laag met water temperatuur voor toch aangename verwarming.bartve schreef op donderdag 12 december 2024 @ 21:18:
[...]
Ok, ik heb hulp nodig: vandaag heb ik zo ongeveer elk uur een defrost, en dat is past in het algemene beeld van het gedrag van mijn warmtepomp (Panasonic L-serie all-in-one 7 kW). Wat doe ik verkeerd?
Voor mij werkt WAR functie prima en heeft ook wel paar weekjes geduurd voordat ik juiste scale voor mijn woning had gevonden.
Zo heb ik vandaag ook meerdere defrosts gehad maar met temperatuur van rond het vriespunt en in de ochtend nog spatjes regen is de luchtvochtigheid zo hoog dat defrosts bijna niet de voorkomen zijn
Taal fouten inbegrepen ;)
Mijn AI Art YouTube kanaal
Beste @BazemanKMBazemanKM schreef op vrijdag 13 december 2024 @ 15:48:
[...]
Aan het einde van het artikel heb ik een korte uitleg en code die je kunt importeren in een nieuwe WP eigen flow tabblad in Node-RED. Met een dubbelklik op link out kun je de juiste koppeling selecteren en die ik er in heb gezet uitzetten.
https://www.fam-oldenburger.nl/2024/01/05/rtc-oftwel-room-temperature-correction/
dankjewel voor je reactie en de link!
helaas mis ik ook hier de uitleg hoe je het volgende doet?
Hoe zorg ik in de basis er al voor dat de Homewizard P1 meter in MQTT Explorer zichtbaar wordt?Je zorgt dat je de info van een sensor uit MQTT ophaalt en dan doorzet met een link out naar de juiste WP input.
:strip_exif()/f/image/yFQYt89O3fJ0LeeZJfkB6oJj.png?f=user_large)
ik herken de P1-meter niet in MQTT Exporer?
:strip_exif()/f/image/NfFRoJWv9RZ7iP0rt9NsHYbZ.png?f=user_large)
Moet ik ergens een yaml code gebruiken om de Homewizard P1 meter binnen MQTT zichtbaar te laten worden?
Voor de Aqara tempsensor zie ik binnen Zigbee2MQTT het volgende
/f/image/L4RUulqPDqm3ztA6J2aL1Z18.png?f=fotoalbum_large)
binnen de MQTT Explorer herken in het IEEE adres van de Aqara tempsensor 0x54ef441000a56bc5
:strip_exif()/f/image/NfFRoJWv9RZ7iP0rt9NsHYbZ.png?f=user_large)
Wanneer ik het Tabblad [WP Input] van Ed bekijk zie ik een grijze Node MQTT/HomeAssistant/Domoticz_3_Room_Temperature
dubbelklik ik op deze grijze Node dan krijg ik het Edit link in node submenu
bij de Properties zie ik de tabbladen van Node Red, uiteraard staat daar niet de tempsensor tussen
maar waar dan wel?
hoe en waar voeg ik hier ergens die temp sensor via dit config menu toe?
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Ik merk dat ik mij erg frustreer, aangezien ik niet ervaren ben met node-red / javascript. Ik denk dat dit makkelijker op te lossen is in homeassistant eigenlijk (daar komt van Tibber al de prijzen binnen, met het label: "cheap", "expensive" etc). het is makkelijker om daar een logica in elkaar te knutselen en dan een aan uit toggle naar jou flow te mkaen, dan dat ik hier nog lang mee doorga vermoed ik.
Ik heb de node-red integratie vanuit HACS al geïnstalleerd, zodat ik de HA entities kan toevoegen. Zie onderstaande snips.
Ik heb de entity in Home Assistant werkend, hij toggled ook goed, alleen het signaal wordt verwacht als '1' en '0', en niet als 'on' en 'off'... Dus ik heb geprobeerd een selector ervan te maken met tekst 1 en 0, maar dat werkte ook niet. Ik verwacht dat het heel erg simpel is, maar ik zie het even niet meer.. Wie o wie geeft mij de verlossende tip?
:strip_exif()/f/image/kOwJkJj5mSaS789E8sAaRWyL.png?f=user_large)
:strip_exif()/f/image/fHeywEIVtjOTOjmoRWyPc66I.png?f=user_large)
:strip_exif()/f/image/uZ0PubOfSgFzQ35iS94EeDRp.png?f=user_large)
:strip_exif()/f/image/6dZXHopDBNECBR8htNzDpaLc.png?f=user_large)
Ik heb geen idee hoe je de P1 in MQTT krijgt, dat komt er nu ineens weer mee. yaml heb ik ook geen verstand van en HA ook niet ;-).hemertje schreef op vrijdag 13 december 2024 @ 20:26:
[...]
Beste @BazemanKM
dankjewel voor je reactie en de link!![]()
helaas mis ik ook hier de uitleg hoe je het volgende doet?
Doe het stap voor stap. Je wilt te snel en daardoor sla je stappen over en heb je geen overzicht meer. Je was met RTC bezig.
1. mijn flow code van de website importeren in een nieuwe flow in Node-RED
2. De inkomende MQTT van mij vervangen door het topic van jouw temp sensor.
3. met dubbelklik op de grijze pijl deze koppelen aan de juiste WP in (RTC)
4. even wachten
5. sensor selecteren in het Node-RED dashboard.
https://www.fam-oldenburger.nl/category/domotica/
@djoenezThomox schreef op vrijdag 13 december 2024 @ 21:28:
Kan iemand mij op weg helpen hoe ik simpel vanuit Home Assistant twee 'toggles' vanuit de node-red applicatie enable?
/f/image/WPI4V4ClRqNkmIwpylDpqJ2j.png?f=fotoalbum_large)
https://www.fam-oldenburger.nl/category/domotica/
Kan ik zelf ook iets maken wat lijkt op die snip van jou? @BazemanKM
ja sorry, die staat ook nog op mijn todo / wensenlijst ivm de Solar2DHWBazemanKM schreef op vrijdag 13 december 2024 @ 21:30:
[...]
Ik heb geen idee hoe je de P1 in MQTT krijgt, dat komt er nu ineens weer mee. yaml heb ik ook geen verstand van en HA ook niet ;-).
de tempsensor heeft prioriteit
ga ik proberen!BazemanKM schreef op vrijdag 13 december 2024 @ 21:30:
[...]
Doe het stap voor stap. Je wilt te snel en daardoor sla je stappen over en heb je geen overzicht meer. Je was met RTC bezig.
1. mijn flow code van de website importeren in een nieuwe flow in Node-RED
2. De inkomende MQTT van mij vervangen door het topic van jouw temp sensor.
3. met dubbelklik op de grijze pijl deze koppelen aan de juiste WP in (RTC)
4. even wachten
5. sensor selecteren in het Node-RED dashboard.
[ Voor 7% gewijzigd door hemertje op 14-12-2024 09:49 ]
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
[quote]BazemanKM schreef op vrijdag 13 december 2024 @ 21:30:
[...]
P1 naar MQTT kant en klaar of eigenbouw met esp32 of met 8266 schema's genoeg te vinden
https://smartgateways.nl/slimme-meter-uitlezen-dsmr-p1-mqtt/
https://github.com/daniel-jong/esp8266_p1meter
[ Voor 24% gewijzigd door Pietjebel10 op 14-12-2024 10:07 ]
Inderdaad niet de juiste plek maar ik werd uit de tent gelokt cq. jaloers op de berichten over dagenlange runtimes zonder defrosts ...Knielen schreef op vrijdag 13 december 2024 @ 11:37:
[...]
Niet echt voor dit topic, maar vooruit. Als je eenmaal in een 'defrost loop' zit is het erg lastig om hier uit te komen. Waarschijnlijk was het bij jou net 1 of 2 graden kouder dan bij mij en met deze hele hoge hoeveelheid vocht in de lucht ontkom je hier niet aan. Enige wat je kan doen is als je dit type weer aan ziet komen is 24/7 de pomp laten draaien (al een dag van te voren) en met bijvoorbeeld nachtreductie gaan werken. Hierdoor draait je pomp op een zo laag mogelijke frequentie als je in dit weertype terecht komt en is de kans kleiner dat je systeem dicht vriest. Verder is het hopen dat het of snel warmer of nog kouder wordt.
Inmiddels RTC uitgezet: door de vele onderbrekingen door defrosts en DHW runs (soms wel twee+ per dag, ook puntje van zorg?), had de wp moeite om de ingestelde doeltemepratuur te halen en moest hard werken. Met RTC uit en alleen WAR en softstart aan werd het allemaal veel rustiger, een defrost om de paar (en soms meer) uur. Ik was me er niet van bewust dat er zoiets als een 'defrost loop' kon optreden, dus ben door je antwoord op het goede spoor gezet, dank!
Panasonic 7kW all-in-one KIT-ADC07L3E5 | Heishamon | Node-Red | Home Assistant | bgg 66 m2 vvw | 1e + 2e verd lt convectoren (Jaga) | pv 10120 wp
@Pietjebel10 : @hemertje heeft al een HomeWizard P1Pietjebel10 schreef op zaterdag 14 december 2024 @ 09:47:
Ik heb geen idee hoe je de P1 in MQTT krijgt, dat komt er nu ineens weer mee. yaml heb ik ook geen verstand van en HA ook niet ;-).
[quote]BazemanKM schreef op vrijdag 13 december 2024 @ 21:30:
[...]
P1 naar MQTT kant en klaar of eigenbouw met esp32 of met 8266 schema's genoeg te vinden
https://smartgateways.nl/slimme-meter-uitlezen-dsmr-p1-mqtt/
https://github.com/daniel-jong/esp8266_p1meter
https://www.fam-oldenburger.nl/category/domotica/
Inderdaad. Bovenstaande informatie over temp/tijd heb ik ook op mijn werk gekregen, met grafiekjes en suks.blb4 schreef op vrijdag 13 december 2024 @ 11:49:
[...]
De meningen blijven verdeeld over de te volgens sterilisatieprocedure.
volgens boiler-info.nl:
Volgens de richtlijnen van ISSO publicatie 30.5 en 55.1 dient wekelijks de boiler gedesinfecteerd te worden.
Dat kan door één van deze 3 methode:
De gehele boiler inhoud op 60 °C brengen en daar minstens 20 minuten op laten staan.
De gehele boiler inhoud op 65 °C brengen en daar minsten 10 minuten op laten staan.
De gehele boiler inhoud op 70 °C brengen en daar minsten 5 minuten op laten staan.
Omdat mijn temperatuursensor in het midden van de tank zit, ga ik er vanuit dat de temperatuur er boven hoger is, en er onder juist lager.
De verblijftijd op de sterelisatie temp is vanzelf wel meer dan 20 minuten. Dus daarom blijf ik net boven de 60C.
Ik heb 62 gekozen om in geval van enige afwijking of slechte plaatsing van mijn T sensor zeker te weten dat het goed gaat.
Omdat ik een kunsstof tank heb, wil ik niet al te hoog.
Je bent NIET verplicht om MQTT te gebruiken om iets dat in home assistant bekend is, informatie door te laten geven aan node red.
node-red-contrib-home-assistant-websocket
Daarmee kun je alle entities in home assistant aanroepen, uitlezen of aansturen.
Daarbij komt, als je Node Red in de Addon draait in home assistant, dan zit dit standaard er in.
Dus of je nu een p1 meter in home assistant hebt,
Dus of je nu een temperatuur sensor in home assistant hebt.
Dus of je nu een lamp in home assistant hebt. ....
je hebt alle informatie beschikbaar in Node Red.
:strip_exif()/f/image/DfbkJxjuTVZVh8RY1NbOPoUt.png?f=user_large)
Duidelijker dan dit wordt het niet
**edit... waziger wordt het plaatje wel kennelijk. Raar. Ik heb hem wat meer gecropt.
De groene box is een 'Geef wat door aan HA' actie.
De rode box is een "Lees wat uit in HA' actie.
[ Voor 39% gewijzigd door edterbak op 14-12-2024 12:15 ]
Let wel op. Ik heb het al eerder benoemd....
De NodeRed flow heb ik ontworpen om zelfstandig te kunnen opereren. zo min mogelijk afhankelijkheden.
Als een gebruiker er voor kiest om informatie uit Home Assistant te halen, is dat natuurlijk prima. Doe ik zelf namelijk ook gewoon.
Maar als HomeAssistant na een update niet meer start.. ben je de sensor, de informatie kwijt.
Dit is een doom scenario uiteraard. Dat weet ik. En de laatste tijd gaat het updaten eigenlijk best wel weer heel goed in HomeAssistant. Dus de kans is niet zo groot.
Maar je bouwt dan een extra afhankelijkheid in. (=potential point of failure)
Geen afhankelijkheid
- Device > Node Red (sommige devices hebben een eigen node red plugin)
mqtt broker afhankelijkheid
- Device > MQTT > Node Red
HomeAssistant afhankelijkheid
- Device > HA > Node Red
HomeAssistant + MQTT broker afhankelijkheid
- Device > HA > MQTT > Node Red
Je kunt in bovenstaande tekst "Home Assistant" ook vervangen door Domoticz of Homey.. Dat maakt niet uit.
Het gebruik van een HomeAssistant, Domoticz of wat dan ook, hoeft helemaal geen probleem te zijn. Als je maar snapt hoe de data flow gaat en als je deze keuze dan dus bewust maakt met de bovenstaande informatie in het achterhoofd.
Je bent in alle gevallen afhankelijk van HeishaMon, MQTT broker en Node-red. Nu is mijn ervaring dat die 3 enorm stabiel zijn maar je weet maar nooit. Ik denk dat je er normaal gesproken vanuit kunt gaan dat deze zaken gewoon werken; alles wat je er verder bij knutselt moet je wat beveiliging bij inbouwen: wat als deze sensor niet meer beschikbaar is, rare waardes geeft etc.edterbak schreef op zaterdag 14 december 2024 @ 12:28:
Maar....
Let wel op. Ik heb het al eerder benoemd....
De NodeRed flow heb ik ontworpen om zelfstandig te kunnen opereren. zo min mogelijk afhankelijkheden.
Als een gebruiker er voor kiest om informatie uit Home Assistant te halen, is dat natuurlijk prima. Doe ik zelf namelijk ook gewoon.
Maar als HomeAssistant na een update niet meer start.. ben je de sensor, de informatie kwijt.
Dit is een doom scenario uiteraard. Dat weet ik. En de laatste tijd gaat het updaten eigenlijk best wel weer heel goed in HomeAssistant. Dus de kans is niet zo groot.
Maar je bouwt dan een extra afhankelijkheid in. (=potential point of failure)
Geen afhankelijkheid
- Device > Node Red (sommige devices hebben een eigen node red plugin)
mqtt broker afhankelijkheid
- Device > MQTT > Node Red
HomeAssistant afhankelijkheid
- Device > HA > Node Red
HomeAssistant + MQTT broker afhankelijkheid
- Device > HA > MQTT > Node Red
Je kunt in bovenstaande tekst "Home Assistant" ook vervangen door Domoticz of Homey.. Dat maakt niet uit.
Het gebruik van een HomeAssistant, Domoticz of wat dan ook, hoeft helemaal geen probleem te zijn. Als je maar snapt hoe de data flow gaat en als je deze keuze dan dus bewust maakt met de bovenstaande informatie in het achterhoofd.
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
Dit heb ik voor twee externe sensoren al voor jullie gedaan.
- de externe temperatuur sensor binnen
- de externe temperatuur sensor voor buiten
Je ziet in het logboek:
1
2
3
4
5
| Custom room temperature sensor not found. Using internal sensor (TOP33) Custom room temperature sensor lost - last value older than 5 hours. Using internal sensor (TOP33) Custom room temperature sensor found |
omdat ik Zigbee2MQTT toch al werkend heb ben ik in de log ervan gaan kijken, daarin zie ik oaedterbak schreef op zaterdag 14 december 2024 @ 12:11:
Nogmaals.....
Je bent NIET verplicht om MQTT te gebruiken om iets dat in home assistant bekend is, informatie door te laten geven aan node red.
node-red-contrib-home-assistant-websocket
Daarmee kun je alle entities in home assistant aanroepen, uitlezen of aansturen.
Daarbij komt, als je Node Red in de Addon draait in home assistant, dan zit dit standaard er in.
Dus of je nu een p1 meter in home assistant hebt,
Dus of je nu een temperatuur sensor in home assistant hebt.
Dus of je nu een lamp in home assistant hebt. ....
je hebt alle informatie beschikbaar in Node Red.
[Afbeelding]
Duidelijker dan dit wordt het niet
**edit... waziger wordt het plaatje wel kennelijk. Raar. Ik heb hem wat meer gecropt.
De groene box is een 'Geef wat door aan HA' actie.
De rode box is een "Lees wat uit in HA' actie.
wanneer ik op de grijze NR node van de 'RTC Function - Sensor with ROOM temperature' klik zie ik[2024-12-12 20:47:49] info: z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/temperatuur.sensor.woonkamer', payload '{"battery":null,"device_temperature":null,"humidity":null,"linkquality":140,"power_outage_count":null,"pressure":null,"temperature":null,"update":{"installed_version":-1,"latest_version":-1,"state":null},"update_available":null,"voltage":null}'
MQTT/HomeAssistant/Domoticz_2_Room_Temperature
werkt het zo simpel dat ik deze moet wijzigen naar
zigbee2mqtt/temperatuur.sensor.woonkamer
en vervolgens Deployen
?
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Zucht, nee. Sorry, maar volg nou de door mij beschreven stappen. Import onderstaandehemertje schreef op zaterdag 14 december 2024 @ 21:17:
[...]
omdat ik Zigbee2MQTT toch al werkend heb ben ik in de log ervan gaan kijken, daarin zie ik oa
[...]
wanneer ik op de grijze NR node van de 'RTC Function - Sensor with ROOM temperature' klik zie ik
MQTT/HomeAssistant/Domoticz_2_Room_Temperature
werkt het zo simpel dat ik deze moet wijzigen naar
zigbee2mqtt/temperatuur.sensor.woonkamer
en vervolgens Deployen
?
1
| [{"id":"df3e5c48116a6f52","type":"mqtt in","z":"c98a6e84.07966","name":"","topic":"zigbee2mqtt/Bureau","qos":"2","datatype":"auto-detect","broker":"4d2ff189.666908","nl":false,"rap":true,"rh":0,"inputs":0,"x":390,"y":640,"wires":[["ae5602ee3d69423a"]]},{"id":"1a01476d9ce570a8","type":"link out","z":"c98a6e84.07966","name":"link out 118","mode":"link","links":["1cd9e05ac624adb9"],"x":815,"y":640,"wires":[]},{"id":"f769c3d9ea6228f9","type":"debug","z":"c98a6e84.07966","name":"debug","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":860,"y":700,"wires":[]},{"id":"ae5602ee3d69423a","type":"function","z":"c98a6e84.07966","name":"function","func":"var temp = msg.payload.temperature;\nmsg.payload = {};\nmsg.payload = temp;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":640,"wires":[["f769c3d9ea6228f9","1a01476d9ce570a8"]]},{"id":"4d2ff189.666908","type":"mqtt-broker","name":"192.168.2.4","broker":"192.168.2.4","port":"1883","clientid":"","autoConnect":true,"usetls":false,"verifyservercert":true,"protocolVersion":"4","keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""}] |
Je krijgt dan dit:
/f/image/MjrgcbpMgfomhQLaLFXdlAOM.png?f=fotoalbum_large)
Bij bureau pas je het aan naar jouw MQTT server en topic: zigbee2mqtt/temperatuur.sensor.woonkamer
https://www.fam-oldenburger.nl/category/domotica/
Ik heb recent wat tijd vrij gehad en heb nu zowel voor DHW als RTC een draaiende versie. Deze heb ik geprobeerd zo uniform mogelijk te maken en te laten aansluiten op de bestaande onderdelen van de huidige tool. Outputs en inputs staan comments bij waarmee ze verbonden moeten worden/zijn.
Gebruik en test op eigen risico, ik probeer natuurlijk te helpen maar heb niet heel veel tijd helaas.
Wat doet de flow?
DHW:
Aan de hand van de tibber prijs (nu nog meerdere nodes) bekijk ik wanneer het gunstig is om een DHW run uit te voeren. Zodra de DHW run actief wordt schakelt hij RTC uit en slaat de waardes op. Nadat DHW de ingestelde temp bereikt zet hij RTC weer terug.
Let op ik gebruik momenteel geen softstart, die lijkt met DHW en of ook met mijn flow niet altijd goed terug te komen.
RTC:
Eerlijk ben ik nog niet overtuigd of (iig mijn woning) baat heeft bij het aanpassen van de setpoint op basis van de prijs. Maar los daarvan dat is wat ik hiermee nu doe. Binnen de node RTC kan je setpoint invullen en + of - doen aan de hand van de prijs, alles prima uitgelegd op de website van: https://powersaver.no/nodes/ps-strategy-lowest-price
Ik heb nog geen tijd gehad om een uitgebreide handleiding te maken, maar opzich heb ik comments geplaatst en hierbij korte opsomming voor die hem willen testen / gebruiken.
/f/image/rySno1gIHkzR2u0YUTv3PIv9.png?f=fotoalbum_large)
Je hebt de plugins nodig:
- node-red-contrib-tibber-api
- node-red-contrib-power-saver
Vervolgens heb je van tibber een acces key en home id nodig, google even je vind snel hoe je daar aan komt. Deze vul je in tibber-api-endpoint en in de flow bij comments Set home id.
https://developer.tibber.com/docs/guides/calling-api
Verder is er een groepje waar enkele sensors in HA worden aangemaakt, de DHW en RTC gebruik ik om een apexchart te maken om te zien in HA hoe het ervoor staat en de tibber prijs voor EV wanneer de auto opgeladen kan worden.
:strip_exif()/f/image/7xLgpX7aqSQhrdHFJ2v0h1CE.png?f=user_large)
De RTC waardes kan je hier wijzigen naar eigen wens, na inject bij tibber prijzen zie je in de chart in HA visueel hoe dat uitpakt.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 type: custom:apexcharts-card header: show: true show_states: true colorize_states: true standard_format: true now: show: true color: red label: Now graph_span: 2d span: start: day apex_config: legend: show: false type: bar chart: height: 300 stroke: width: 1 yaxis: - id: temp opposite: true show: true max: ~21 min: ~20 apex_config: decimalsInFloat: 2 tickAmount: 7 - id: cost opposite: false max: ~0.5 min: ~0 apex_config: decimalsInFloat: 2 tickAmount: 7 series: - entity: sensor.dhw_array_run name: DHW run data_generator: > return entity.attributes.dhw_scheduler.map((entry) => { return[new Date(entry.time), 0.3]; }); type: column yaxis_id: cost - entity: sensor.ev_smart_charging_charging name: Electricty price unit: " EUR/kWh" data_generator: > return entity.attributes.raw_two_days.map((entry) => { return [new Date(entry.start), entry.value]; }); type: column float_precision: 2 yaxis_id: cost - entity: sensor.rtc_array_run name: temp unit: " C" yaxis_id: temp data_generator: > return entity.attributes.rtc_scheduler.map((entry) => { return[new Date(entry.startAt), entry.setpoint]; }); type: line curve: stepline - entity: sensor.temperatuursensor_woonkamer_temperature name: woonkamer yaxis_id: temp
:strip_exif()/f/image/5AukAOA4I2RR4PaenB8mKR1m.png?f=user_large)
Ook zit er een HA restart flow bij, hiermee kan je eerst via de create HA helper aanmaken. Indien HA of Node red herstart wordt zal de trigger draaien om tibber prijs op te vragen, anders blijft die leeg.
Gebruik en test op eigen risico, ik probeer natuurlijk te helpen maar heb niet heel veel tijd helaas.
PS: de code is te groot om te plaatsen, stuur een berichtje indien je de flow wilt ontvange.
Punten van verbetering?
- Code optimalisatie tibber prijs.
- Soms tibberprijs later, check hierop om alsnog op te vragen.
- Sterilization op basis van gunstige prijs / tijd.
- DHW run finetuning waardoor RTC etc niet uithoeft, zit nu elkaar soms in de weg.
- DHW run icm softstart,
- HA restart even RTC / Softstart toggle, waarna setpoints goed terug komen.
- Apexchart duidelijker maken.
[ Voor 6% gewijzigd door appiejs op 14-12-2024 23:14 ]
dankjel @BazemanKMBazemanKM schreef op zaterdag 14 december 2024 @ 22:02:
[...]
Zucht, nee. Sorry, maar volg nou de door mij beschreven stappen. Import onderstaande
code:
1 [{"id":"df3e5c48116a6f52","type":"mqtt in","z":"c98a6e84.07966","name":"","topic":"zigbee2mqtt/Bureau","qos":"2","datatype":"auto-detect","broker":"4d2ff189.666908","nl":false,"rap":true,"rh":0,"inputs":0,"x":390,"y":640,"wires":[["ae5602ee3d69423a"]]},{"id":"1a01476d9ce570a8","type":"link out","z":"c98a6e84.07966","name":"link out 118","mode":"link","links":["1cd9e05ac624adb9"],"x":815,"y":640,"wires":[]},{"id":"f769c3d9ea6228f9","type":"debug","z":"c98a6e84.07966","name":"debug","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":860,"y":700,"wires":[]},{"id":"ae5602ee3d69423a","type":"function","z":"c98a6e84.07966","name":"function","func":"var temp = msg.payload.temperature;\nmsg.payload = {};\nmsg.payload = temp;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":640,"wires":[["f769c3d9ea6228f9","1a01476d9ce570a8"]]},{"id":"4d2ff189.666908","type":"mqtt-broker","name":"192.168.2.4","broker":"192.168.2.4","port":"1883","clientid":"","autoConnect":true,"usetls":false,"verifyservercert":true,"protocolVersion":"4","keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""}]
Je krijgt dan dit:
[Afbeelding]
Bij bureau pas je het aan naar jouw MQTT server en topic: zigbee2mqtt/temperatuur.sensor.woonkamer
ik heb je code geïmporteerd in een Flow 'Own Sensors'
de output heb ik gelinkt aan 'MQTT/HomeAssistant/Domoticz_2_Room_Temperature'
deze blijft op 'connecting' staan?
:strip_exif()/f/image/t6ATbvRXzUR6yOrBWFqgYeuj.png?f=user_large)
binnen Ed's NR zie ik bij SENSORS ook geen input in het pulldown menu van MQTT sensor topic
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Als hij not op "connecting" staat betekent het dat hij niet verbonden is. Anders komt er "connected" te staan.hemertje schreef op zondag 15 december 2024 @ 12:51:
[...]
dankjel @BazemanKM
ik heb je code geïmporteerd in een Flow 'Own Sensors'
de output heb ik gelinkt aan 'MQTT/HomeAssistant/Domoticz_2_Room_Temperature'
deze blijft op 'connecting' staan?
[Afbeelding]
binnen Ed's NR zie ik bij SENSORS ook geen input in het pulldown menu van MQTT sensor topic
Heb je je MQTT properties goed ingesteld in NR?
@hemertje Ik denk dat je even de MQTT server moet aanpassen in de binnenkomende meest linkse node.Natrixz schreef op zondag 15 december 2024 @ 12:55:
[...]
Als hij not op "connecting" staat betekent het dat hij niet verbonden is. Anders komt er "connected" te staan.
Heb je je MQTT properties goed ingesteld in NR?
[ Voor 5% gewijzigd door BazemanKM op 15-12-2024 13:08 ]
https://www.fam-oldenburger.nl/category/domotica/
de node keek naar het IP-adres ipv de MQT (x.x.x.x), deze aangepast en deze verbond gelijk
:strip_exif()/f/image/wgZ7jwoqhuQKlMVHoalqf6ww.png?f=user_large)
toch zie ik in NR - RTC het volgende: Room actual 25.5 °C of was dit ook alweer de temp van de Pana controller?
onder NR SYSTEM - SENSORS is geen temperatuur sensor te selecteren?
/f/image/G3jqU8YhermgupTpzMpU7mJX.png?f=fotoalbum_large)
binnen Z2M geeft de tempsensor 21.38 °C
/f/image/29382kmrJVXP8ZqidGkiaRRH.png?f=fotoalbum_large)
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Function - Calculate new SP: New final SP calculated: Current setpoint: 24 °C. New calculated setpoint: 25 °C
Bv vandaag kwam dit voor nadat de pomp uit en weer aangezet vanuit RTC uit/aan functie. Pas nadat ik RTC even toggle gedaan had pakte de functie het weer op.
/f/image/ZCgKVmSZ16DSXy2BrxCmWlUY.png?f=fotoalbum_large)
Zijn er wellicht meerdere die dit wel eens ervaren?
[ Voor 4% gewijzigd door appiejs op 15-12-2024 17:22 ]
Onder de groene debug moet je die 21.38 ook zien. Mogelijk moet je de function node aanpassen. Vanuit het hele Zigbee2MQTT bericht moet de temperatuur daar uitgefilterd worden.hemertje schreef op zondag 15 december 2024 @ 17:13:
yes, connected nu
de node keek naar het IP-adres ipv de MQT (x.x.x.x), deze aangepast en deze verbond gelijk
[Afbeelding]
binnen Z2M geeft de tempsensor 21.38 °C
https://www.fam-oldenburger.nl/category/domotica/
onder de debug staat inderdaad de goede tempBazemanKM schreef op zondag 15 december 2024 @ 17:24:
[...]
Onder de groene debug moet je die 21.38 ook zien. Mogelijk moet je de function node aanpassen. Vanuit het hele Zigbee2MQTT bericht moet de temperatuur daar uitgefilterd worden.
:strip_exif()/f/image/vnn2Ta7fADyXvyw8iaFDbHb2.png?f=user_large)
enig idee waarom het niet in NR terecht komt?
moet ik het originele 'IEEE adres 0x54ef441000a56bc5' gebruiken ipv de Eenvoudige naam 'Temperatuur.sensor.woonkamer' ?
in MQTT Explorer zie ik bij deze tempsensor
homeassistant/sensor/0x54ef441000a56bc5/temperature
/f/image/NdUJQ140jcwlnOFAvRm5g6jJ.png?f=fotoalbum_large)
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Is de grijze node wel gekoppeld aan WP In en dan 2 external room? (even dubbelklikken).hemertje schreef op zondag 15 december 2024 @ 17:39:
[...]
onder de debug staat inderdaad de goede temp
[Afbeelding]
enig idee waarom het niet in NR terecht komt?
https://www.fam-oldenburger.nl/category/domotica/
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Dan zul je hem na enige tijd onder twee selecteren of zien op het sensoren tabblad.
https://www.fam-oldenburger.nl/category/domotica/
deze kan ik ook gebruiken voor de COOL functie toch?
door zowel 2 als 3 te selecteren van de Room_Temperature?
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Even in gedoken en valt me op dat een link out (SP_Final) op WP Control nergens aan gekoppeld is, kan iemand nagaan of dat bij jouw ook zo is?appiejs schreef op zondag 15 december 2024 @ 17:22:
Het valt me op dat niet altijd na wijzigen van RTC setpoint de volgende regel / functie uitgevoerd wordt.
Function - Calculate new SP: New final SP calculated: Current setpoint: 24 °C. New calculated setpoint: 25 °C
Bv vandaag kwam dit voor nadat de pomp uit en weer aangezet vanuit RTC uit/aan functie. Pas nadat ik RTC even toggle gedaan had pakte de functie het weer op.
[Afbeelding]
Zijn er wellicht meerdere die dit wel eens ervaren?
/f/image/LO6Ff2abqaEqihVYC7t8RsGZ.png?f=fotoalbum_large)
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
wanneer ik deze in hetzelfde tabblad kopieer en ik vul bij Function - On message het volgende inBazemanKM schreef op zaterdag 14 december 2024 @ 22:02:
[...]
Zucht, nee. Sorry, maar volg nou de door mij beschreven stappen. Import onderstaande
code:
1 [{"id":"df3e5c48116a6f52","type":"mqtt in","z":"c98a6e84.07966","name":"","topic":"zigbee2mqtt/Bureau","qos":"2","datatype":"auto-detect","broker":"4d2ff189.666908","nl":false,"rap":true,"rh":0,"inputs":0,"x":390,"y":640,"wires":[["ae5602ee3d69423a"]]},{"id":"1a01476d9ce570a8","type":"link out","z":"c98a6e84.07966","name":"link out 118","mode":"link","links":["1cd9e05ac624adb9"],"x":815,"y":640,"wires":[]},{"id":"f769c3d9ea6228f9","type":"debug","z":"c98a6e84.07966","name":"debug","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":860,"y":700,"wires":[]},{"id":"ae5602ee3d69423a","type":"function","z":"c98a6e84.07966","name":"function","func":"var temp = msg.payload.temperature;\nmsg.payload = {};\nmsg.payload = temp;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":640,"wires":[["f769c3d9ea6228f9","1a01476d9ce570a8"]]},{"id":"4d2ff189.666908","type":"mqtt-broker","name":"192.168.2.4","broker":"192.168.2.4","port":"1883","clientid":"","autoConnect":true,"usetls":false,"verifyservercert":true,"protocolVersion":"4","keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""}]
Je krijgt dan dit:
[Afbeelding]
Bij bureau pas je het aan naar jouw MQTT server en topic: zigbee2mqtt/temperatuur.sensor.woonkamer
1
2
3
4
| var temp = msg.payload.humidity; msg.payload = {}; msg.payload = temp; return msg; |
en ik link deze aan [WP Input] COOL Function - Sensor with ROOM Humidity
leest deze input dan de humidity van de tempsensor uit?
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
klopt, versie 24.07 Stableappiejs schreef op zondag 15 december 2024 @ 20:09:
[...]
Even in gedoken en valt me op dat een link out (SP_Final) op WP Control nergens aan gekoppeld is, kan iemand nagaan of dat bij jouw ook zo is?
[Afbeelding]
/f/image/WdG2U4PL5TNWcxrybcw2Yzqp.png?f=fotoalbum_large)
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
top dat je zo snel kon kijken.
welke QuietMode level kan ik het beste toepassen voor Pana type BU:WH-UD07HE5-1
Settings
Duration after start 5 mins
Default QuietMode level Level 0
Active QuietMode level Level 3
[ Voor 36% gewijzigd door hemertje op 15-12-2024 20:34 ]
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Ondertussen hiermee aan het stoeien, het lukt me nog niet. Ik heb een deel uit de flow gekopieerd van een nieuwere versie om de 'functie' eruit te knippen.
:strip_exif()/f/image/G3IqzC7x0Dbvju9JVJMKzZbs.png?f=user_large)
:strip_exif()/f/image/KpudeV5ZAuElin0uVbvRWZuZ.png?f=user_large)
Hij past wel de status aan, maar de functie doet er niets mee. Vast iets heel erg simpels, maar ik zie het even niet.
Edit: Stom stom, ik kwam er net achter dat het werkt door het tweede outputje van de switch ook aan te sluiten op de functie....

[ Voor 6% gewijzigd door Thomox op 15-12-2024 22:08 ]
Ik denk wel dat dat gaat lukken als humidity de juiste payload is.hemertje schreef op zondag 15 december 2024 @ 20:19:
[...]
wanneer ik deze in hetzelfde tabblad kopieer en ik vul bij Function - On message het volgende in
code:
1 2 3 4 var temp = msg.payload.humidity; msg.payload = {}; msg.payload = temp; return msg;
en ik link deze aan [WP Input] COOL Function - Sensor with ROOM Humidity
leest deze input dan de humidity van de tempsensor uit?
https://www.fam-oldenburger.nl/category/domotica/
in de log zie ik ook idd dat er gestuurd wordt op SP_Finalappiejs schreef op zondag 15 december 2024 @ 20:09:
[...]
Even in gedoken en valt me op dat een link out (SP_Final) op WP Control nergens aan gekoppeld is, kan iemand nagaan of dat bij jouw ook zo is?
[Afbeelding]
maar wanneer daar niets aanhangt gaat het sturen mis
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
| 16/12 11:54:42 - Function SoftStart: --> Pump did not yet relax (35Hz). Restarting Phase 1 again... 16/12 11:54:35 - Function SoftStart: Correction: 5 > 5 °C - (EVALUATING) Freq: 35Hz, SP_Final: 22°C 16/12 11:54:31 - Function SoftStart: Correction: 5 > 5 °C - (EVALUATING) Freq: 34Hz, SP_Final: 22°C 16/12 11:51:31 - Function SoftStart: --> Pump did not yet relax (35Hz). Restarting Phase 1 again... 16/12 11:51:21 - Function SoftStart: Correction: 5 > 5 °C - (EVALUATING) Freq: 35Hz, SP_Final: 22°C 16/12 11:48:20 - Function SoftStart: --> Pump did not yet relax (34Hz). Restarting Phase 1 again... 16/12 11:48:10 - Function SoftStart: Correction: 5 > 5 °C - (EVALUATING) Freq: 34Hz, SP_Final: 22°C 16/12 11:46:47 - Function SoftStart: Correction: 4 > 5 °C - (STARTUP) Freq: 35Hz, SP_Final: 22°C 16/12 11:46:40 - Function SoftStart: Correction: 5 > 4 °C - (STARTUP) Freq: 35Hz, SP_Final: 21°C 16/12 11:46:39 - MQTT Command: SetCurves: target: 30 (SP Calculation) 16/12 11:46:39 - Function - Calculate new SP: New final SP calculated: Current setpoint: 29 °C. New calculated setpoint: 30 °C 16/12 11:46:28 - Function SoftStart: Correction: 4 > 5 °C - (STARTUP) Freq: 35Hz, SP_Final: 22°C 16/12 11:46:24 - MQTT Command: SetCurves: target: 29 (SP Calculation) 16/12 11:46:24 - Function - Calculate new SP: New final SP calculated: Current setpoint: 30 °C. New calculated setpoint: 29 °C 16/12 11:46:24 - Function SoftStart: Correction: 5 > 4 °C - (STARTUP) Freq: 35Hz, SP_Final: 21°C 16/12 11:46:23 - Function SoftStart: Correction: 4 > 5 °C - (STARTUP) Freq: 35Hz, SP_Final: 22°C 16/12 11:46:18 - Function SoftStart: Correction: 5 > 4 °C - (STARTUP) Freq: 34Hz, SP_Final: 21°C 16/12 11:46:18 - MQTT Command: SetCurves: target: 30 (SP Calculation) 16/12 11:46:18 - Function - Calculate new SP: New final SP calculated: Current setpoint: 29 °C. New calculated setpoint: 30 °C 16/12 11:46:18 - Function SoftStart: Correction: 4 > 5 °C - (STARTUP) Freq: 34Hz, SP_Final: 22°C 16/12 11:45:20 - MQTT Command: SetCurves: target: 29 (SP Calculation) 16/12 11:45:20 - Function - Calculate new SP: New final SP calculated: Current setpoint: 26 °C. New calculated setpoint: 29 °C 16/12 11:45:13 - Function SoftStart: Correction: 1 > 4 °C - (STARTUP) Freq: 35Hz, SP_Final: 21°C 16/12 11:45:09 - Function SoftStart: --> Pump did not yet relax (35Hz). Restarting Phase 1 again... 16/12 11:45:09 - MQTT Command: SetCurves: target: 26 (SP Calculation) 16/12 11:45:09 - Function - Calculate new SP: New final SP calculated: Current setpoint: 29 °C. New calculated setpoint: 26 °C 16/12 11:45:09 - Function SoftStart: Correction: 4 > 1 °C - (STABLE) Freq: 35Hz, SP_Final: 18°C 16/12 11:44:59 - Function SoftStart: Correction: 4 > 4 °C - (EVALUATING) Freq: 35Hz, SP_Final: 21°C 16/12 11:41:59 - Function SoftStart: --> Pump did not yet relax (34Hz). Restarting Phase 1 again... 16/12 11:41:48 - Function SoftStart: Correction: 4 > 4 °C - (EVALUATING) Freq: 34Hz, SP_Final: 21°C 16/12 11:38:48 - Function SoftStart: --> Pump did not yet relax (34Hz). Restarting Phase 1 again... 16/12 11:38:38 - Function SoftStart: Correction: 4 > 4 °C - (EVALUATING) Freq: 34Hz, SP_Final: 21°C 16/12 11:35:37 - Function SoftStart: --> Pump did not yet relax (35Hz). Restarting Phase 1 again... 16/12 11:35:27 - Function SoftStart: Correction: 4 > 4 °C - (EVALUATING) Freq: 35Hz, SP_Final: 21°C 16/12 11:32:26 - Function SoftStart: --> Pump did not yet relax (34Hz). Restarting Phase 1 again... 16/12 11:32:16 - Function SoftStart: Correction: 4 > 4 °C - (EVALUATING) Freq: 35Hz, SP_Final: 21°C 16/12 11:29:16 - Function SoftStart: --> Pump did not yet relax (35Hz). Restarting Phase 1 again... 16/12 11:29:05 - Function SoftStart: Correction: 4 > 4 °C - (EVALUATING) Freq: 35Hz, SP_Final: 21°C 16/12 11:28:23 - MQTT Command: SetCurves: target: 29 (SP Calculation) |
@appiejs
heb je al kunnen achterhalen waaraan SP_Final gekoppeld dient te worden?
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
@BazemanKMBazemanKM schreef op zondag 15 december 2024 @ 22:16:
[...]
Ik denk wel dat dat gaat lukken als humidity de juiste payload is.
ik kan bevestigen dat het werkt
:strip_exif()/f/image/BgCKlAtsvbnZ1ktrkabqNBtk.png?f=user_large)
/f/image/0ujFwPPFHSrAJ5aWgFswVrHd.png?f=fotoalbum_large)
/f/image/5AUiNngJ0In8c0XFQVJT55es.png?f=fotoalbum_large)
weer een mooie stap gemaakt dankzij jullie hulp
[ Voor 8% gewijzigd door hemertje op 16-12-2024 13:14 ]
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Moeilijk te zeggen zonder verbruik te weten.bartve schreef op zaterdag 14 december 2024 @ 10:42:
[...]
Inderdaad niet de juiste plek maar ik werd uit de tent gelokt cq. jaloers op de berichten over dagenlange runtimes zonder defrosts ...
Inmiddels RTC uitgezet: door de vele onderbrekingen door defrosts en DHW runs (soms wel twee+ per dag, ook puntje van zorg?), had de wp moeite om de ingestelde doeltemepratuur te halen en moest hard werken. Met RTC uit en alleen WAR en softstart aan werd het allemaal veel rustiger, een defrost om de paar (en soms meer) uur. Ik was me er niet van bewust dat er zoiets als een 'defrost loop' kon optreden, dus ben door je antwoord op het goede spoor gezet, dank!
Maar invloed van continu verwarmen op DHW is er zeker wel. In de maanden zonder verwarming blijft DHW veel langer op temperatuur.
Maar als jij bijvoorbeeld een gezin van 5 hebt is hij eerder leeg dan bij 1 persoon.
Volgens mij kan je tot 54c op de compressor verwarmen en daarna wordt het element gebruikt. Je zou tot een hogere temperatuur kunnen verwarmen maar dan is delta T ook hoger en heb je meer standby verlies.
Ik zelf verwarm tot 48C en mag terugvallen tot 42 voordat nieuwe ronde wordt gestart. Bij mij staat DHW modus bewust uit tussen 22:00 en 07:30 zijn toch de minst efficiëntere uren en valt buiten het douche patroon dus ook niet nodig om dan weer terug te gaan naar 48c. Na 22:00 wordt er nog wel door mijzelf gedouched maar icm douche wtw en bij minimale temperatuur is toch nog goed warm te douche. (sensor ingesteld op midden).
Taal fouten inbegrepen ;)
Mijn AI Art YouTube kanaal
interessant,
dit doe je via de NR Scheduler?
dmv op tijd 'Operation Mode - Heat Only' in te schakelen tussen 22:00u en 07:30u??
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
wanneer ik in Notepad++ met de ComparePlus plugin versies 24.05 en 24.07 vergelijk dan zie ik dat de Softstartfunctie is aangepast op regel 35878, dit is ook de regel waar SP_Final in voorkomthemertje schreef op maandag 16 december 2024 @ 12:02:
[...]
@appiejs
heb je al kunnen achterhalen waaraan SP_Final gekoppeld dient te worden?
v24.05
1
| "func": "//////////////////////////////// SOFTSTART /////////////////////////////////////\nvar msg1={}; // pin 1 - F_SS_correction\nvar msg99={}; // pin 2 - To Log\n msg99.topic = \"Function SoftStart\";\nvar msg2={}; // pin 3 - delay\n msg2.payload = 'PING';\n\nvar F_SS = global.get('F_SS',\"file\"); if (F_SS === undefined) {global.set('F_SS',{},\"file\"); return null;}\n var total_duration = F_SS.total_duration; // seconds\n var phase_1_duration = F_SS.phase_1_duration; // seconds\n var phase_1_delay_time = F_SS.phase_1_delay_time; // seconds\n var phase_1_max_dT = F_SS.phase_1_max_dT; // max temperature difference between SP and Toutlet (Ta)\n var phase_2_delay_time = F_SS.phase_2_delay_time; // seconds\n var phase_3_delay_time = F_SS.phase_3_delay_time; // seconds\n var upperlimit_correction = F_SS.upperlimit_correction; // temperature\n var lowerlimit_correction = F_SS.lowerlimit_correction; // temperature\n var F_SS_reset_after_defrost = F_SS.reset_after_defrost; // 1 or 0. Should the softstar function restart after a defrost.\n var F_SS_state = F_SS.state; // 1 or 0. Is the SoftStart function enabled or not.\n var F_SS_old_correction = F_SS.correction_value; // stored correction as a result of the SoftStart function.\n var correction_bandwidth = F_SS.correction_bandwidth; // stored bandwidth inbetween the correction needs to be during phase 3, ending.\n\nvar Defrost = global.get('TOP26_Defrosting_State',\"file\"); if (Defrost === undefined) {Defrost = 0;}\n\nif (F_SS_reset_after_defrost == 0 || F_SS_reset_after_defrost === undefined) {\n if (Defrost == 1) { // Exception during defrost \n msg99.payload = \"temporally disabled during defrost\"; \n return [null, msg99]; // By exiting the function here, non of the logic below is done. Effectifly halting the function. \n // As soon as the defrost is done, it will go through the function again. The timer will not be reset.\n }\n}\n\nvar TOP76_Heating_Mode = global.get('TOP76_Heating_Mode',\"file\"); if (TOP76_Heating_Mode === undefined) {return null;}\nvar TOP20_ThreeWay_Valve_State = global.get('TOP20_ThreeWay_Valve_State'); if (TOP20_ThreeWay_Valve_State === undefined) { return null; }\nvar ss_Hz = global.get('compressor_frequency', \"file\"); if (ss_Hz === undefined) { return null; }\n\nvar TCAP = global.get('panasonic.TCAP', \"file\"); \n\nif (F_SS_state === undefined) { global.set('F_SS.state', +0 ,\"file\"); F_SS_state= +0; }\n\nif (F_SS_old_correction === undefined) {F_SS_old_correction=0; }\n\nvar F_SS_correction = 0;\nvar Operating_Mode = global.get('TOP4_Operating_Mode_State',\"file\");\n\n// Setpoint after WAR calculation\nvar SP_start = global.get('F_WAR_SP'); if (SP_start === undefined) {return null;}\n\nvar F_RTC_correction = global.get('F_RTC.z1.correction_value',\"file\"); // Correction of the RTC function Memory Only!\n F_RTC_correction = Number(F_RTC_correction).toFixed(1); // round it\n F_RTC_correction = parseFloat(F_RTC_correction);\n if (F_RTC_correction===undefined) {F_RTC_correction=0;}\n\nvar F_NR_state = global.get('NightReductionWaterTemp.state', \"file\"); \n if (F_NR_state === undefined) { F_NR_state = 0; }\nvar F_NR_correction = global.get('NightReductionWaterTemp.current_value',\"file\"); // Correction of the NightReduction function\n if (F_NR_state == 0 || F_NR_correction === undefined) { F_NR_correction = 0; }\n\nvar F_SS_SP_start = SP_start + F_RTC_correction + F_NR_correction; // Calculate the starting temperature (SP) for the SoftStart function \n\n\n\n\n//// Operating mode (0=Heat only, 1=Cool only, 2=Auto(Heat), 3=DHW only, 4=Heat+DHW, 5=Cool+DHW, 6=Auto(Heat)+DHW, --- 7=Auto(Cool), 8=Auto(Cool)+DHW)\n\n// ***********************************************************************************\nif (F_SS_state == 0 || ss_Hz == 0 || TOP20_ThreeWay_Valve_State != 0 || Operating_Mode === undefined || Operating_Mode==1 || Operating_Mode==3 || Operating_Mode==5 || Operating_Mode==7 || Operating_Mode==8 || Defrost==1) { \n // These are the condition the logic in this function should not start.\n // Check if the softstart function is disabled. \n // Check if the compressor is not running. \n // Check if 3-wayvalvue is not in HEAT mode (0). \n // Check if OperatingMode is in the incorrect mode, like cool mode or DHW only etc. \n // Check if there is currently a defrost cycle active.\n\n F_SS_correction = 0; // If the function is off, or the compressor is off, the correction should be set to zero\n if (F_SS.correction_value != F_SS_correction) {\n global.set('F_SS.correction_value',F_SS_correction,\"file\"); // Set the correctionvalue\n if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); }\n }\n global.set('StartTime', undefined, \"file\"); // Remove the StartTime value. Next time it will be starting from zero.\n global.set('F_SS_actual_stage', undefined); // 11-01-2023 reset (for debugging/System Check remember the softstart stage)\n \n msg1.payload = F_SS_correction; \n msg1.topic = 'Compressor off. F_SS_correction 0';\n \n msg2.topic = 'reset';\n msg2.payload = 'PANG';\n \n msg99.payload = \"SoftStart function end\";\n \n if (Defrost == 1) {\n msg1.topic = 'Function SoftStart';\n msg99.payload = \"Defrost - Correction: 0\";\n }\n \n global.set('F_SS.correction_bandwidth',undefined,\"file\");\n msg1.payload = Number(msg1.payload).toFixed(0);\n msg1.payload = parseFloat(msg1.payload);\n return [msg1,msg99,msg2];\n}\n\n// ***********************************************************************************\n\n\nelse \n{\n var F_SS_new_SP; // declare an empty variable\n var ss_PV_Ta = global.get('TOP6_Main_Outlet_Temp'); // PV (Ta/outlet) Temperature of water.\n var ss_PV_Tr = global.get('TOP5_Main_Inlet_Temp'); // PV (Tr/inlet) Temperature of water\n if (ss_PV_Ta === undefined || ss_PV_Tr === undefined) {return null;}\n var T = '';\n var C = '';\n \n //\n // ***********************************************************************************\n /////// Timer how long the compressor is on. Runtime //////////\n // ***********************************************************************************\n var CurrentTime = new Date().getTime();\n var StartTime = global.get('StartTime', \"file\");\n \n if (StartTime === undefined) {\n StartTime = CurrentTime;\n global.set('StartTime', StartTime, \"file\");\n \n msg2.topic = 'reset'; // reset any ongoing timers ... if present. \n node.send([null, null, msg2]); \n\n // send trigger to timer after phase 1\n msg2.topic = 'delayed_trigger';\n \n\n\n msg2.delay = phase_1_duration;\n msg2.force = 1;\n node.send([null,null,msg2]); // SENDS MSG TO TIMER FUNCTION\n msg2.force = 0;\n }\n \n var TimeElapsed = ((CurrentTime - StartTime) / 1000);\n TimeElapsed = parseFloat(TimeElapsed.toFixed(0));\n\n // *********************************************************************\n var Phase;\n if (TimeElapsed < phase_1_duration) {Phase = 1; }\n if (TimeElapsed >= phase_1_duration && TimeElapsed < (phase_1_duration + 10)) {Phase = 9; }\n if (TimeElapsed >= (phase_1_duration + 10) && TimeElapsed < total_duration) {Phase = 2; }\n if (TimeElapsed >= total_duration) {Phase = 3; }\n\n if (msg.force == 1) {\n \n if (Phase == 1 && phase_1_delay_time != 0) {\n msg2.delay = phase_1_delay_time;\n if (msg2.delay < 5) {msg2.delay = 5;}\n msg2.topic = 'delayed_trigger';\n msg2.force = 1;\n node.send([null,null,msg2]); // SENDS MSG TO TIMER FUNCTION\n msg2.force = 0;\n }\n \n if (Phase == 9) {\n msg2.topic = 'reset'; // reset any ongoing timers. force shutdown at given interval\n node.send([null, null, msg2]); \n \n msg2.delay = 10;\n msg2.force = 1;\n msg2.topic = 'delayed_trigger';\n node.send([null,null,msg2]); // SENDS MSG TO TIMER FUNCTION\n msg2.force = 0;\n }\n\n // TCAP = 1, Hz lower limit is depending on the outside temperature. (TCAP feature)\n // TCAP = 0, Hz lower limit is fixed.\n\n var relaxed_frequency; \n if (TCAP == 1) {\n var TOP14_Outside_Temp = global.get('TOP14_Outside_Temp',\"file\")\n if (TOP14_Outside_Temp === undefined) { relaxed_frequency = 36; }\n if (TOP14_Outside_Temp < 5) { relaxed_frequency = 36; }\n if (TOP14_Outside_Temp >= 5) { relaxed_frequency = 21; }\n }\n \n if (TCAP == 0) {relaxed_frequency = 21;}\n \n if (Phase == 2) {\n if (ss_Hz > relaxed_frequency) {\n StartTime = CurrentTime;\n global.set('StartTime', undefined, \"file\");\n context.set('StartTime_temp_step', undefined);\n\n msg2.topic = 'reset';\n node.send([null, null, msg2]); // SENDS MSG TO TIMER FUNCTION\n \n msg2.force = 1;\n msg2.topic = 'delayed_trigger';\n msg2.delay = 0;\n \n msg99.payload = ' --> Pump did not yet relax (' + ss_Hz + 'Hz). Restarting Phase 1 again...';\n return [null, msg99, msg2]\n } \n \n msg99.payload = ' --> Pump relaxed... (' + ss_Hz + 'Hz) Continuing with Phase 2';\n \n msg2.delay = total_duration - TimeElapsed;\n msg2.force = 1;\n msg2.topic = 'delayed_trigger';\n node.send([null, msg99, msg2]); // SENDS MSG TO TIMER FUNCTION\n msg2.force = 0;\n\n }\n\n if (Phase == 3) {\n msg2.topic = 'reset'; // reset any ongoing timers. force shutdown at given interval\n node.send([null,null,msg2]); \n \n msg2.topic = 'delayed_trigger'; // send msg to timer to trigger next reductin step\n msg2.force = 1;\n msg2.delay = phase_3_delay_time;\n node.send([null,null,msg2]); \n msg2.force = 0;\n msg2.topic = '';\n }\n }\n\n\n // ***********************************************************************************\n // Stage 1 - Start up\n // ***********************************************************************************\n \n if (Phase == 1){\n \n global.set('F_SS_actual_stage', \"Stage 1 - just started\"); // 11-01-2023 remember actual stage for debugging/system check)\n F_SS_correction = -10; // Set the starting correction to -10\n F_SS_new_SP = F_SS_SP_start + F_SS_correction; // Calculate the NEW SP.\n \n T = ' - (STARTUP)';\n \n if (ss_PV_Ta + phase_1_max_dT > F_SS_new_SP) // Check if the NEW SP is not too low (1C below Ta) \n {\n F_SS_new_SP = ss_PV_Ta + phase_1_max_dT; // NEW SP\n F_SS_correction = F_SS_new_SP - F_SS_SP_start; // NEW CORRECTION\n }\n if (F_SS_new_SP > F_SS_SP_start + 7) // Check if the NEW SP is not too high (7C above original SP) coming out of DHW eg.\n {\n F_SS_new_SP = F_SS_SP_start + 7; // NEW SP\n F_SS_correction = 7; // NEW CORRECTION\n }\n }\n \n\n if (Phase == 9) {\n\n T = ' - (EVALUATING)';\n\n F_SS_new_SP = ss_PV_Ta -1; // NEW SP\n F_SS_correction = F_SS_new_SP - F_SS_SP_start; // NEW CORRECTION\n }\n\n\n\n\n // ***********************************************************************************\n // Stage 2 - waiting for pump to relax\n // ***********************************************************************************\n \n if (Phase == 2){ \n global.set('F_SS_actual_stage', \"Stage 2 - Pump has relaxed\"); // 11-01-2023 remember actual stage for debugging/system check)\n \n F_SS_new_SP = ss_PV_Ta -1; // NEW SP\n if (F_SS_new_SP < F_SS_SP_start + lowerlimit_correction)\n {\n F_SS_new_SP = F_SS_SP_start + lowerlimit_correction;\n }\n F_SS_correction = F_SS_new_SP - F_SS_SP_start; // NEW CORRECTION\n \n if (F_SS_correction > upperlimit_correction) {\n F_SS_correction = upperlimit_correction;\n F_SS_new_SP = F_SS_SP_start + upperlimit_correction;\n C = ' (Capped)';\n }\n if (F_SS_correction < lowerlimit_correction) {\n F_SS_correction = lowerlimit_correction;\n F_SS_new_SP = F_SS_SP_start + lowerlimit_correction;\n C = ' (Capped)';\n }\n \n T = ' - (STABLE)';\n }\n // ***********************************************************************************\n // Stage 3 - Pump has relaxed. Remove correction, back to original setpoint... Slowly\n //***********************************************************************************\n \n if (Phase == 3){\n \n global.set('F_SS_actual_stage', \"Stage 3 - Pump has relaxed, back to original setpoint\"); // 11-01-2023 remember actual stage for debugging/system check)\n F_SS_new_SP = F_SS_SP_start + F_SS_correction; // Calculate the NEW SP.\n \n if (F_SS_old_correction < -1) {\n F_SS_correction = F_SS_old_correction + 1;\n }\n \n \n if (F_SS_old_correction > 1) {\n F_SS_correction = F_SS_old_correction - 1;\n }\n \n if (F_SS_old_correction >= -1 && F_SS_old_correction <= 1) {\n F_SS_correction = 0;\n // No delay triggers needed anymore\n } \n \n F_SS_new_SP = F_SS_SP_start + F_SS_correction ; // NEW SP\n T = ' - (ENDING)';\n }\n // ***********************************************************************************\n}\n\n\n// *****************************************************************************\n// calculate temp SP_Final *note* only for log message\nvar F_WAR_onoff = global.get('Correction_0_WAR_on_off', \"file\") || 0;\nvar F_WAR_SP = global.get('F_WAR_SP');\nvar F_RTC_state = global.get('F_RTC.z1.state', \"file\") || 0;\nvar SP_Final = global.get('SP_DIRECT_virt',\"file\");\n if (F_WAR_onoff == 1 && TOP76_Heating_Mode == 0) { SP_Final = SP_Final; }\n if (F_WAR_onoff == 0 && TOP76_Heating_Mode == 1) { SP_Final = F_WAR_SP; }\n if (F_RTC_state == 1) { SP_Final = SP_Final + F_RTC_correction; }\n if (F_NR_state == 1) { SP_Final = SP_Final + F_NR_correction; }\n\n// *****************************************************************************\n\nvar StartTime_temp_step = context.get('StartTime_temp_step');\nif (StartTime_temp_step === undefined) {\n StartTime_temp_step = CurrentTime;\n context.set('StartTime_temp_step',CurrentTime);\n}\n\nvar TimeElapsed_temp_step = (CurrentTime - StartTime_temp_step) / 1000; // time is in ms. \n TimeElapsed_temp_step = parseFloat(TimeElapsed_temp_step.toFixed(0));\n\nF_SS_correction = Number(F_SS_correction).toFixed(0);\nF_SS_correction = parseFloat(F_SS_correction);\n\nmsg1.payload = F_SS_correction; \nmsg1.topic = 'F_SS_correction ' + T;\n\n\n/* if (msg.force == 1) {\n \n if (Phase == 1) { msg99.payload = \"Start Phase 1\"; }\n // if (Phase == 9) { msg99.payload = \"End Phase 1\"; }\n if (Phase == 2) { msg99.payload = \"Start Phase 2\"; }\n if (Phase == 3) { msg99.payload = \"Phase 3 - Phase out step\"; }\n node.send([null, msg99, null]);\n}*/\n\nif (Phase == 1){\n \n //node.warn('Phase 1 main section');\n if (F_SS_correction <= F_SS_old_correction){\n //node.warn('Phase 1 sub-section (1)');\n global.set('F_SS.correction_value',F_SS_correction,\"file\"); \n context.set('StartTime_temp_step',undefined);\n \n SP_Final += F_SS_correction;\n SP_Final = Math.ceil(SP_Final);\n msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + F_SS_correction + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n msg1.payload = F_SS_correction; \n if (F_SS_correction != F_SS_old_correction) { if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); } return [msg1,msg99,null];}\n else {return [msg1,null,null];}\n }\n \n if (F_SS_correction > F_SS_old_correction && TimeElapsed_temp_step >= phase_1_delay_time){\n // node.warn('Phase 1 sub-section (2)');\n global.set('F_SS.correction_value',F_SS_correction,\"file\"); \n context.set('StartTime_temp_step',undefined);\n if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); }\n SP_Final += F_SS_correction;\n SP_Final = Math.ceil(SP_Final);\n msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + F_SS_correction + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n msg1.payload = F_SS_correction; \n return [msg1,msg99,null];\n }\n \n if (F_SS_correction > F_SS_old_correction && TimeElapsed_temp_step < phase_1_delay_time){\n //node.warn('Phase 1 sub-section (3)');\n F_SS_correction = F_SS_old_correction;\n //global.set('F_SS.correction_value',F_SS_old_correction,\"file\");\n //if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); }\n msg2.delay = phase_1_delay_time;\n msg2.topic = \"delayed_trigger\";\n msg1.payload = F_SS_old_correction; \n \n //msg99.payload = \"Less than phase_1_delay_time. TimeElapsed_temp_step: \" + TimeElapsed_temp_step + \"s StartTime_temp_step: \" + StartTime_temp_step;\n return [msg1,null,msg2]; /////////// <<<<<<<<<<<<<<<<<<<<<<<<\n }\n}\n\n\n\nif (Phase == 9) {\n global.set('F_SS.correction_value', F_SS_correction, \"file\");\n context.set('StartTime_temp_step',undefined);\n\n SP_Final += F_SS_correction;\n SP_Final = Math.ceil(SP_Final);\n msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + F_SS_correction + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\";\n msg1.payload = F_SS_correction;\n return [msg1, msg99, null];\n}\n\n\n\n\nif (Phase == 2){\n if (F_SS_correction <= F_SS_old_correction){\n global.set('F_SS.correction_value',F_SS_correction,\"file\"); \n context.set('StartTime_temp_step', undefined);\n \n SP_Final += F_SS_correction;\n SP_Final = Math.ceil(SP_Final);\n msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + F_SS_correction + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n msg1.payload = F_SS_correction; \n if (F_SS_correction != F_SS_old_correction) { if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); } return [msg1,msg99,null];}\n else {return [msg1,null,null];}\n }\n \n if (F_SS_correction > F_SS_old_correction && TimeElapsed_temp_step >= phase_2_delay_time){\n global.set('F_SS.correction_value',F_SS_correction,\"file\");\n context.set('StartTime_temp_step', undefined);\n if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); }\n SP_Final += F_SS_correction;\n SP_Final = Math.ceil(SP_Final);\n msg1.payload = F_SS_correction; \n msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + F_SS_correction + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n return [msg1,msg99,null];\n }\n \n if (F_SS_correction > F_SS_old_correction && TimeElapsed_temp_step < phase_2_delay_time){\n global.set('F_SS.correction_value',F_SS_old_correction,\"file\");\n //if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); }\n msg2.delay = phase_2_delay_time;\n msg2.topic = \"delayed_trigger\";\n msg1.payload = F_SS_old_correction; \n //msg99.payload = \"Less than phase_2_delay_time. TimeElapsed_temp_step: \" + TimeElapsed_temp_step + \"s StartTime_temp_step: \" + StartTime_temp_step;\n return [msg1,null,msg2]; /////////// <<<<<<<<<<<<<<<<<<<<<<<<\n }\n}\n\nif (Phase == 3 && msg.force == 1) {\n if (F_SS_old_correction < -1 || F_SS_old_correction > 1){\n correction_bandwidth = F_SS_correction;\n global.set('F_SS.correction_bandwidth',correction_bandwidth,\"file\");\n }\n \n \n if (F_SS_old_correction != 0) {global.set('F_SS.correction_value',F_SS_correction,\"file\");}\n if (F_SS_old_correction == 0) {\n global.set('F_SS.correction_value',0,\"file\");\n global.set('F_SS.correction_bandwidth',undefined,\"file\");\n }\n \n SP_Final += F_SS_correction;\n SP_Final = Math.ceil(SP_Final);\n msg1.payload = F_SS_correction; \n msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + F_SS_correction + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n if (F_SS_old_correction != 0) { return [msg1,msg99,null];\n }\n else { msg2.topic = 'reset'; // reset any ongoing timers. force shutdown at given interval\n return [msg1,null,msg2];\n }\n\n}\n\n if (Phase == 3 && msg.force != 1){\n if (correction_bandwidth > 0 && F_SS_correction > correction_bandwidth){\n global.set('F_SS.correction_value',correction_bandwidth,\"file\");\n SP_Final += correction_bandwidth;\n msg1.payload = correction_bandwidth; \n //msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + correction_bandwidth + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n return [msg1,null,null];\n }\n if (correction_bandwidth > 0 && F_SS_correction < -1 * correction_bandwidth){\n global.set('F_SS.correction_value',-1 * correction_bandwidth,\"file\");\n SP_Final += -1 * correction_bandwidth;\n msg1.payload = correction_bandwidth * -1; \n //msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + -1 * correction_bandwidth + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n return [msg1,null,null];\n }\n \n \n \n if (correction_bandwidth < 0 && F_SS_correction < correction_bandwidth){\n global.set('F_SS.correction_value',correction_bandwidth,\"file\");\n SP_Final += correction_bandwidth;\n msg1.payload = correction_bandwidth; \n //msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + correction_bandwidth + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n return [msg1,null,null];\n }\n if (correction_bandwidth < 0 && F_SS_correction > -1 * correction_bandwidth){\n global.set('F_SS.correction_value',-1 * correction_bandwidth,\"file\");\n SP_Final += -1 * correction_bandwidth;\n msg1.payload = correction_bandwidth * -1; \n //msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + -1 * correction_bandwidth + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n return [msg1,null,null];\n }\n \n //global.set('F_SS.correction_value',F_SS_old_correction,\"file\");\n //return [null,null,null];\n \n}", |
v24.07
1
| "func": "//////////////////////////////// SOFTSTART /////////////////////////////////////\nvar msg1={}; // pin 1 - F_SS_correction\nvar msg99={}; // pin 2 - To Log\n msg99.topic = \"Function SoftStart\";\nvar msg2={}; // pin 3 - delay\n msg2.payload = 'PING';\n\nvar F_SS = global.get('F_SS',\"file\"); if (F_SS === undefined) {global.set('F_SS',{},\"file\"); return null;}\n var total_duration = F_SS.total_duration; // seconds\n var phase_1_duration = F_SS.phase_1_duration; // seconds\n var phase_1_delay_time = F_SS.phase_1_delay_time; // seconds\n var phase_1_max_dT = F_SS.phase_1_max_dT; // max temperature difference between SP and Toutlet (Ta)\n var phase_2_delay_time = F_SS.phase_2_delay_time; // seconds\n var phase_3_delay_time = F_SS.phase_3_delay_time; // seconds\n var upperlimit_correction = F_SS.upperlimit_correction; // temperature\n var lowerlimit_correction = F_SS.lowerlimit_correction; // temperature\n var F_SS_reset_after_defrost = F_SS.reset_after_defrost; // 1 or 0. Should the softstar function restart after a defrost.\n var F_SS_state = F_SS.state; // 1 or 0. Is the SoftStart function enabled or not.\n var F_SS_old_correction = F_SS.correction_value; // stored correction as a result of the SoftStart function.\n var correction_bandwidth = F_SS.correction_bandwidth; // stored bandwidth inbetween the correction needs to be during phase 3, ending.\n\nvar Defrost = global.get('TOP26_Defrosting_State',\"file\"); if (Defrost === undefined) {Defrost = 0;}\n\nif (F_SS_reset_after_defrost == 0 || F_SS_reset_after_defrost === undefined) {\n if (Defrost == 1) { // Exception during defrost \n msg99.payload = \"temporally disabled during defrost\"; \n return [null, msg99]; // By exiting the function here, non of the logic below is done. Effectifly halting the function. \n // As soon as the defrost is done, it will go through the function again. The timer will not be reset.\n }\n}\n\nvar TOP76_Heating_Mode = global.get('TOP76_Heating_Mode',\"file\"); if (TOP76_Heating_Mode === undefined) {return null;}\nvar TOP20_ThreeWay_Valve_State = global.get('TOP20_ThreeWay_Valve_State'); if (TOP20_ThreeWay_Valve_State === undefined) { return null; }\nvar ss_Hz = global.get('compressor_frequency', \"file\"); if (ss_Hz === undefined) { return null; }\n\nvar TCAP = global.get('panasonic.TCAP', \"file\"); \n\nif (F_SS_state === undefined) { global.set('F_SS.state', +0 ,\"file\"); F_SS_state= +0; }\n\nif (F_SS_old_correction === undefined) {F_SS_old_correction=0; }\n\nvar F_SS_correction = 0;\nvar Operating_Mode = global.get('TOP4_Operating_Mode_State',\"file\");\n\n// Setpoint after WAR calculation\nvar SP_start = global.get('F_WAR_SP'); if (SP_start === undefined) {return null;}\n\nvar F_RTC_correction = global.get('F_RTC.z1.correction_value',\"file\"); // Correction of the RTC function Memory Only!\n F_RTC_correction = Number(F_RTC_correction).toFixed(1); // round it\n F_RTC_correction = parseFloat(F_RTC_correction);\n if (F_RTC_correction===undefined) {F_RTC_correction=0;}\n\nvar F_NR_state = global.get('NightReductionWaterTemp.state', \"file\"); \n if (F_NR_state === undefined) { F_NR_state = 0; }\nvar F_NR_correction = global.get('NightReductionWaterTemp.current_value',\"file\"); // Correction of the NightReduction function\n if (F_NR_state == 0 || F_NR_correction === undefined) { F_NR_correction = 0; }\n\nvar F_SS_SP_start = SP_start + F_RTC_correction + F_NR_correction; // Calculate the starting temperature (SP) for the SoftStart function \n\n\n\n\n//// Operating mode (0=Heat only, 1=Cool only, 2=Auto(Heat), 3=DHW only, 4=Heat+DHW, 5=Cool+DHW, 6=Auto(Heat)+DHW, --- 7=Auto(Cool), 8=Auto(Cool)+DHW)\n\n// ***********************************************************************************\nif (F_SS_state == 0 || ss_Hz == 0 || TOP20_ThreeWay_Valve_State != 0 || Operating_Mode === undefined || Operating_Mode==1 || Operating_Mode==3 || Operating_Mode==5 || Operating_Mode==7 || Operating_Mode==8 || Defrost==1) { \n // These are the condition the logic in this function should not start.\n // Check if the softstart function is disabled. \n // Check if the compressor is not running. \n // Check if 3-wayvalvue is not in HEAT mode (0). \n // Check if OperatingMode is in the incorrect mode, like cool mode or DHW only etc. \n // Check if there is currently a defrost cycle active.\n\n F_SS_correction = 0; // If the function is off, or the compressor is off, the correction should be set to zero\n if (F_SS.correction_value != F_SS_correction) {\n global.set('F_SS.correction_value',F_SS_correction,\"file\"); // Set the correctionvalue\n if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); }\n }\n global.set('StartTime', undefined, \"file\"); // Remove the StartTime value. Next time it will be starting from zero.\n global.set('F_SS_actual_stage', undefined); // 11-01-2023 reset (for debugging/System Check remember the softstart stage)\n \n msg1.payload = F_SS_correction; \n msg1.topic = 'Compressor off. F_SS_correction 0';\n \n msg2.topic = 'reset';\n msg2.payload = 'PANG';\n \n msg99.payload = \"SoftStart function end\";\n \n if (Defrost == 1) {\n msg1.topic = 'Function SoftStart';\n msg99.payload = \"Defrost - Correction: 0\";\n }\n \n global.set('F_SS.correction_bandwidth',undefined,\"file\");\n msg1.payload = Number(msg1.payload).toFixed(0);\n msg1.payload = parseFloat(msg1.payload);\n return [msg1,msg99,msg2];\n}\n\n// ***********************************************************************************\n\n\nelse \n{\n var F_SS_new_SP; // declare an empty variable\n var ss_PV_Ta = global.get('TOP6_Main_Outlet_Temp'); // PV (Ta/outlet) Temperature of water.\n var ss_PV_Tr = global.get('TOP5_Main_Inlet_Temp'); // PV (Tr/inlet) Temperature of water\n if (ss_PV_Ta === undefined || ss_PV_Tr === undefined) {return null;}\n var T = '';\n var C = '';\n \n //\n // ***********************************************************************************\n /////// Timer how long the compressor is on. Runtime //////////\n // ***********************************************************************************\n var CurrentTime = new Date().getTime();\n var StartTime = global.get('StartTime', \"file\");\n \n if (StartTime === undefined) {\n StartTime = CurrentTime;\n global.set('StartTime', StartTime, \"file\");\n \n msg2.topic = 'reset'; // reset any ongoing timers ... if present. \n node.send([null, null, msg2]); \n\n // send trigger to timer after phase 1\n msg2.topic = 'delayed_trigger';\n \n\n\n msg2.delay = phase_1_duration;\n msg2.force = 1;\n node.send([null,null,msg2]); // SENDS MSG TO TIMER FUNCTION\n msg2.force = 0;\n }\n \n var TimeElapsed = ((CurrentTime - StartTime) / 1000);\n TimeElapsed = parseFloat(TimeElapsed.toFixed(0));\n\n // *********************************************************************\n var Phase;\n if (TimeElapsed < phase_1_duration) {Phase = 1; }\n if (TimeElapsed >= phase_1_duration && TimeElapsed < (phase_1_duration + 10)) {Phase = 9; }\n if (TimeElapsed >= (phase_1_duration + 10) && TimeElapsed < total_duration) {Phase = 2; }\n if (TimeElapsed >= total_duration) {Phase = 3; }\n\n if (msg.force == 1) {\n \n if (Phase == 1 && phase_1_delay_time != 0) {\n msg2.delay = phase_1_delay_time;\n if (msg2.delay < 5) {msg2.delay = 5;}\n msg2.topic = 'delayed_trigger';\n msg2.force = 1;\n node.send([null,null,msg2]); // SENDS MSG TO TIMER FUNCTION\n msg2.force = 0;\n }\n \n if (Phase == 9) {\n msg2.topic = 'reset'; // reset any ongoing timers. force shutdown at given interval\n node.send([null, null, msg2]); \n \n msg2.delay = 10;\n msg2.force = 1;\n msg2.topic = 'delayed_trigger';\n node.send([null,null,msg2]); // SENDS MSG TO TIMER FUNCTION\n msg2.force = 0;\n }\n\n // TCAP = 1, Hz lower limit is depending on the outside temperature. (TCAP feature)\n // TCAP = 0, Hz lower limit is fixed.\n\n var relaxed_frequency; \n if (TCAP == 1) {\n var TOP14_Outside_Temp = global.get('TOP14_Outside_Temp',\"file\")\n if (TOP14_Outside_Temp === undefined) { relaxed_frequency = 36; }\n if (TOP14_Outside_Temp < 5) { relaxed_frequency = 36; }\n if (TOP14_Outside_Temp >= 5) { relaxed_frequency = 21; }\n }\n \n if (TCAP == 0) {relaxed_frequency = 21;}\n \n if (Phase == 2) {\n if (ss_Hz > relaxed_frequency) {\n StartTime = CurrentTime;\n global.set('StartTime', undefined, \"file\");\n context.set('StartTime_temp_step', undefined);\n\n msg2.topic = 'reset';\n node.send([null, null, msg2]); // SENDS MSG TO TIMER FUNCTION\n \n msg2.force = 1;\n msg2.topic = 'delayed_trigger';\n msg2.delay = 0;\n \n msg99.payload = ' --> Pump did not yet relax (' + ss_Hz + 'Hz). Restarting Phase 1 again...';\n return [null, msg99, msg2]\n } \n \n msg99.payload = ' --> Pump relaxed... (' + ss_Hz + 'Hz) Continuing with Phase 2';\n \n msg2.delay = total_duration - TimeElapsed;\n msg2.force = 1;\n msg2.topic = 'delayed_trigger';\n node.send([null, msg99, msg2]); // SENDS MSG TO TIMER FUNCTION\n msg2.force = 0;\n\n }\n\n if (Phase == 3) {\n msg2.topic = 'reset'; // reset any ongoing timers. force shutdown at given interval\n node.send([null,null,msg2]); \n \n msg2.topic = 'delayed_trigger'; // send msg to timer to trigger next reductin step\n msg2.force = 1;\n msg2.delay = phase_3_delay_time;\n node.send([null,null,msg2]); \n msg2.force = 0;\n msg2.topic = '';\n }\n }\n\n\n // ***********************************************************************************\n // Stage 1 - Start up\n // ***********************************************************************************\n \n if (Phase == 1){\n \n global.set('F_SS_actual_stage', \"Stage 1 - just started\"); // 11-01-2023 remember actual stage for debugging/system check)\n F_SS_correction = -5; // Set the starting correction to -10\n F_SS_new_SP = F_SS_SP_start + F_SS_correction; // Calculate the NEW SP.\n \n T = ' - (STARTUP)';\n \n if (ss_PV_Ta + phase_1_max_dT > F_SS_new_SP) // Check if the NEW SP is not too low (1C below Ta) \n {\n F_SS_new_SP = ss_PV_Ta + phase_1_max_dT; // NEW SP\n F_SS_correction = F_SS_new_SP - F_SS_SP_start; // NEW CORRECTION\n }\n if (F_SS_new_SP > F_SS_SP_start + 7) // Check if the NEW SP is not too high (7C above original SP) coming out of DHW eg.\n {\n F_SS_new_SP = F_SS_SP_start + 7; // NEW SP\n F_SS_correction = 7; // NEW CORRECTION\n }\n }\n \n\n if (Phase == 9) {\n\n T = ' - (EVALUATING)';\n\n F_SS_new_SP = ss_PV_Ta -1; // NEW SP\n F_SS_correction = F_SS_new_SP - F_SS_SP_start; // NEW CORRECTION\n }\n\n\n\n\n // ***********************************************************************************\n // Stage 2 - waiting for pump to relax\n // ***********************************************************************************\n \n if (Phase == 2){ \n global.set('F_SS_actual_stage', \"Stage 2 - Pump has relaxed\"); // 11-01-2023 remember actual stage for debugging/system check)\n \n F_SS_new_SP = ss_PV_Ta -1; // NEW SP\n if (F_SS_new_SP < F_SS_SP_start + lowerlimit_correction)\n {\n F_SS_new_SP = F_SS_SP_start + lowerlimit_correction;\n }\n F_SS_correction = F_SS_new_SP - F_SS_SP_start; // NEW CORRECTION\n \n if (F_SS_correction > upperlimit_correction) {\n F_SS_correction = upperlimit_correction;\n F_SS_new_SP = F_SS_SP_start + upperlimit_correction;\n C = ' (Capped)';\n }\n if (F_SS_correction < lowerlimit_correction) {\n F_SS_correction = lowerlimit_correction;\n F_SS_new_SP = F_SS_SP_start + lowerlimit_correction;\n C = ' (Capped)';\n }\n \n T = ' - (STABLE)';\n }\n // ***********************************************************************************\n // Stage 3 - Pump has relaxed. Remove correction, back to original setpoint... Slowly\n //***********************************************************************************\n \n if (Phase == 3){\n \n global.set('F_SS_actual_stage', \"Stage 3 - Pump has relaxed, back to original setpoint\"); // 11-01-2023 remember actual stage for debugging/system check)\n F_SS_new_SP = F_SS_SP_start + F_SS_correction; // Calculate the NEW SP.\n \n if (F_SS_old_correction < -1) {\n F_SS_correction = F_SS_old_correction + 1;\n }\n \n \n if (F_SS_old_correction > 1) {\n F_SS_correction = F_SS_old_correction - 1;\n }\n \n if (F_SS_old_correction >= -1 && F_SS_old_correction <= 1) {\n F_SS_correction = 0;\n // No delay triggers needed anymore\n } \n \n F_SS_new_SP = F_SS_SP_start + F_SS_correction ; // NEW SP\n T = ' - (ENDING)';\n }\n // ***********************************************************************************\n}\n\n\n// *****************************************************************************\n// calculate temp SP_Final *note* only for log message\nvar F_WAR_onoff = global.get('Correction_0_WAR_on_off', \"file\") || 0;\nvar F_WAR_SP = global.get('F_WAR_SP');\nvar F_RTC_state = global.get('F_RTC.z1.state', \"file\") || 0;\nvar SP_Final = global.get('SP_DIRECT_virt',\"file\");\n if (F_WAR_onoff == 1 && TOP76_Heating_Mode == 0) { SP_Final = SP_Final; }\n if (F_WAR_onoff == 0 && TOP76_Heating_Mode == 1) { SP_Final = F_WAR_SP; }\n if (F_RTC_state == 1) { SP_Final = SP_Final + F_RTC_correction; }\n if (F_NR_state == 1) { SP_Final = SP_Final + F_NR_correction; }\n\n// *****************************************************************************\n\nvar StartTime_temp_step = context.get('StartTime_temp_step');\nif (StartTime_temp_step === undefined) {\n StartTime_temp_step = CurrentTime;\n context.set('StartTime_temp_step',CurrentTime);\n}\n\nvar TimeElapsed_temp_step = (CurrentTime - StartTime_temp_step) / 1000; // time is in ms. \n TimeElapsed_temp_step = parseFloat(TimeElapsed_temp_step.toFixed(0));\n\nF_SS_correction = Number(F_SS_correction).toFixed(0);\nF_SS_correction = parseFloat(F_SS_correction);\n\nmsg1.payload = F_SS_correction; \nmsg1.topic = 'F_SS_correction ' + T;\n\n\n/* if (msg.force == 1) {\n \n if (Phase == 1) { msg99.payload = \"Start Phase 1\"; }\n // if (Phase == 9) { msg99.payload = \"End Phase 1\"; }\n if (Phase == 2) { msg99.payload = \"Start Phase 2\"; }\n if (Phase == 3) { msg99.payload = \"Phase 3 - Phase out step\"; }\n node.send([null, msg99, null]);\n}*/\n\nif (Phase == 1){\n \n //node.warn('Phase 1 main section');\n if (F_SS_correction <= F_SS_old_correction){\n //node.warn('Phase 1 sub-section (1)');\n global.set('F_SS.correction_value',F_SS_correction,\"file\"); \n context.set('StartTime_temp_step',undefined);\n \n SP_Final += F_SS_correction;\n SP_Final = Math.ceil(SP_Final);\n msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + F_SS_correction + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n msg1.payload = F_SS_correction; \n if (F_SS_correction != F_SS_old_correction) { if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); } return [msg1,msg99,null];}\n else {return [msg1,null,null];}\n }\n \n if (F_SS_correction > F_SS_old_correction && TimeElapsed_temp_step >= phase_1_delay_time){\n // node.warn('Phase 1 sub-section (2)');\n global.set('F_SS.correction_value',F_SS_correction,\"file\"); \n context.set('StartTime_temp_step',undefined);\n if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); }\n SP_Final += F_SS_correction;\n SP_Final = Math.ceil(SP_Final);\n msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + F_SS_correction + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n msg1.payload = F_SS_correction; \n return [msg1,msg99,null];\n }\n \n if (F_SS_correction > F_SS_old_correction && TimeElapsed_temp_step < phase_1_delay_time){\n //node.warn('Phase 1 sub-section (3)');\n F_SS_correction = F_SS_old_correction;\n //global.set('F_SS.correction_value',F_SS_old_correction,\"file\");\n //if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); }\n msg2.delay = phase_1_delay_time;\n msg2.topic = \"delayed_trigger\";\n msg1.payload = F_SS_old_correction; \n \n //msg99.payload = \"Less than phase_1_delay_time. TimeElapsed_temp_step: \" + TimeElapsed_temp_step + \"s StartTime_temp_step: \" + StartTime_temp_step;\n return [msg1,null,msg2]; /////////// <<<<<<<<<<<<<<<<<<<<<<<<\n }\n}\n\n\n\nif (Phase == 9) {\n global.set('F_SS.correction_value', F_SS_correction, \"file\");\n context.set('StartTime_temp_step',undefined);\n\n SP_Final += F_SS_correction;\n SP_Final = Math.ceil(SP_Final);\n msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + F_SS_correction + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\";\n msg1.payload = F_SS_correction;\n return [msg1, msg99, null];\n}\n\n\n\n\nif (Phase == 2){\n if (F_SS_correction <= F_SS_old_correction){\n global.set('F_SS.correction_value',F_SS_correction,\"file\"); \n context.set('StartTime_temp_step', undefined);\n \n SP_Final += F_SS_correction;\n SP_Final = Math.ceil(SP_Final);\n msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + F_SS_correction + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n msg1.payload = F_SS_correction; \n if (F_SS_correction != F_SS_old_correction) { if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); } return [msg1,msg99,null];}\n else {return [msg1,null,null];}\n }\n \n if (F_SS_correction > F_SS_old_correction && TimeElapsed_temp_step >= phase_2_delay_time){\n global.set('F_SS.correction_value',F_SS_correction,\"file\");\n context.set('StartTime_temp_step', undefined);\n if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); }\n SP_Final += F_SS_correction;\n SP_Final = Math.ceil(SP_Final);\n msg1.payload = F_SS_correction; \n msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + F_SS_correction + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n return [msg1,msg99,null];\n }\n \n if (F_SS_correction > F_SS_old_correction && TimeElapsed_temp_step < phase_2_delay_time){\n global.set('F_SS.correction_value',F_SS_old_correction,\"file\");\n //if (global.get('MQTT_Source') === undefined) { global.set('MQTT_Source', \"SoftStart\"); }\n msg2.delay = phase_2_delay_time;\n msg2.topic = \"delayed_trigger\";\n msg1.payload = F_SS_old_correction; \n //msg99.payload = \"Less than phase_2_delay_time. TimeElapsed_temp_step: \" + TimeElapsed_temp_step + \"s StartTime_temp_step: \" + StartTime_temp_step;\n return [msg1,null,msg2]; /////////// <<<<<<<<<<<<<<<<<<<<<<<<\n }\n}\n\nif (Phase == 3 && msg.force == 1) {\n if (F_SS_old_correction < -1 || F_SS_old_correction > 1){\n correction_bandwidth = F_SS_correction;\n global.set('F_SS.correction_bandwidth',correction_bandwidth,\"file\");\n }\n \n \n if (F_SS_old_correction != 0) {global.set('F_SS.correction_value',F_SS_correction,\"file\");}\n if (F_SS_old_correction == 0) {\n global.set('F_SS.correction_value',0,\"file\");\n global.set('F_SS.correction_bandwidth',undefined,\"file\");\n }\n \n SP_Final += F_SS_correction;\n SP_Final = Math.ceil(SP_Final);\n msg1.payload = F_SS_correction; \n msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + F_SS_correction + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n if (F_SS_old_correction != 0) { return [msg1,msg99,null];\n }\n else { msg2.topic = 'reset'; // reset any ongoing timers. force shutdown at given interval\n return [msg1,null,msg2];\n }\n\n}\n\n if (Phase == 3 && msg.force != 1){\n if (correction_bandwidth > 0 && F_SS_correction > correction_bandwidth){\n global.set('F_SS.correction_value',correction_bandwidth,\"file\");\n SP_Final += correction_bandwidth;\n msg1.payload = correction_bandwidth; \n //msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + correction_bandwidth + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n return [msg1,null,null];\n }\n if (correction_bandwidth > 0 && F_SS_correction < -1 * correction_bandwidth){\n global.set('F_SS.correction_value',-1 * correction_bandwidth,\"file\");\n SP_Final += -1 * correction_bandwidth;\n msg1.payload = correction_bandwidth * -1; \n //msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + -1 * correction_bandwidth + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n return [msg1,null,null];\n }\n \n \n \n if (correction_bandwidth < 0 && F_SS_correction < correction_bandwidth){\n global.set('F_SS.correction_value',correction_bandwidth,\"file\");\n SP_Final += correction_bandwidth;\n msg1.payload = correction_bandwidth; \n //msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + correction_bandwidth + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n return [msg1,null,null];\n }\n if (correction_bandwidth < 0 && F_SS_correction > -1 * correction_bandwidth){\n global.set('F_SS.correction_value',-1 * correction_bandwidth,\"file\");\n SP_Final += -1 * correction_bandwidth;\n msg1.payload = correction_bandwidth * -1; \n //msg99.payload = \"Correction: \" + F_SS_old_correction + \" > \" + -1 * correction_bandwidth + \" °C\" + T + \" Freq: \" + ss_Hz + \"Hz, SP_Final: <b>\" + SP_Final + \"</b>°C\"; \n return [msg1,null,null];\n }\n \n //global.set('F_SS.correction_value',F_SS_old_correction,\"file\");\n //return [null,null,null];\n \n}", |
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
het volgende heb ik nu:
- Zone & sensor: kamersensor watertemperatuur
- Watertemperatuur voor verwarming aan: direct
- Watertemperatuur voor koeling aan: direct
Node Red draai ik met WAR, RTC en Softstart
Room setpoint staat op 20.5
maar de Room actual geeft aan 21.5
deze wordt gemeten door de zigbee sensor in de woonkamer
MQTT Explorer: Temperature Gemeten temperatuur 21.43
iemand een idee waarom het een graad te warm blijft in de woonkamer en NR hierop onvoldoende stuurt?
/f/image/iJeh8L6Ax6h0n2JRCNqDLzDh.png?f=fotoalbum_large)
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
De war bepaalt je watertemperatuur rtc verlaagd of verhoogd alleen je setpoint een beetje. Wanneer je de etc voorrang wil geven moet je bij overschrijding van je gewenste temperatuur waarschijnlijk meer graden reduceren zodat de Panasonic afschaaldhemertje schreef op dinsdag 17 december 2024 @ 19:59:
PS. welke instelling dient de Pana te hebben om optimaal te kunnen werken met Node Red?
het volgende heb ik nu:
- Zone & sensor: kamersensor watertemperatuur
- Watertemperatuur voor verwarming aan: direct
- Watertemperatuur voor koeling aan: direct
Node Red draai ik met WAR, RTC en Softstart
Room setpoint staat op 20.5
maar de Room actual geeft aan 21.5
deze wordt gemeten door de zigbee sensor in de woonkamer
MQTT Explorer: Temperature Gemeten temperatuur 21.43
iemand een idee waarom het een graad te warm blijft in de woonkamer en NR hierop onvoldoende stuurt?
[Afbeelding]
Beschikbaar Uitgeschakeld
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
bij +1.0 van -3 naar -4.5
bij +0.6 van -3 naar -3.0
bij +0.5 van -3 naar -1.5
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Kijk wat er gebeurt bij andere temperaturen buiten alles wel even goed blijven monitoren tot dat je de voor jou de ideale lijn hebt gevonden. Zonodig weer iets corrigeren zo blijf je van de straat. 😂😂hemertje schreef op dinsdag 17 december 2024 @ 20:58:
ik heb de Too Warm correction aangepast
bij +1.0 van -3 naar -4.5
bij +0.6 van -3 naar -3.0
bij +0.5 van -3 naar -1.5
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
vanmorgen was de temp in de woonkamer nog steeds boven de 21GrCPietjebel10 schreef op dinsdag 17 december 2024 @ 21:36:
[...]
Kijk wat er gebeurt bij andere temperaturen buiten alles wel even goed blijven monitoren tot dat je de voor jou de ideale lijn hebt gevonden. Zonodig weer iets corrigeren zo blijf je van de straat. 😂😂
ik heb nu de bovenlijn van de 'WAR temperature profile' gewijzigd van 35GrC naar 33GrC
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
vanavond de kamertemperatuur nog steeds op 22GrChemertje schreef op woensdag 18 december 2024 @ 08:15:
[...]
vanmorgen was de temp in de woonkamer nog steeds boven de 21GrC
ik heb nu de bovenlijn van de 'WAR temperature profile' gewijzigd van 35GrC naar 33GrC
de WAR boventemp verlaagd van 33GrC naar 30GrC
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Je gebruikt nog geen RTC om eerst je stooklijn goed te krijgen (wat verstandig is idd)?hemertje schreef op woensdag 18 december 2024 @ 20:46:
[...]
vanavond de kamertemperatuur nog steeds op 22GrC
de WAR boventemp verlaagd van 33GrC naar 30GrC
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
jawel, maar dan moet ik heel veel gaan compenseren met hoge waarden?blb4 schreef op woensdag 18 december 2024 @ 20:50:
[...]
Je gebruikt nog geen RTC om eerst je stooklijn goed te krijgen (wat verstandig is idd)?
dus het leek mij verstandiger de WAR naar beneden bij te stellen en vandaaruit met RTC de juiste stooklijn op te zoeken?
/f/image/LtR56BDDt2l1ewlJMsj1aODL.png?f=fotoalbum_large)
:strip_exif()/f/image/3jJ40Zw5af3AiFKubb9g0Hrx.png?f=user_large)
of denk ik dan verkeerd?
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
de vraag is dan met welke combinatie je in het stookseizoen van oktober t/m april de gewenste temperatuur in huis hebt en houdt
FF hardop denken, waarom heb je de WAR nodig als je met RTC ook kunt corrigeren?
Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal