Homey Community Forum

Verwarming voor oa. ploegendienst / klimaat regeling deel 1

Ik werk in ploegendienst en ben voor de rest ook niet volgens een regelmatig patroon thuis. Dus een klokthermostaat al dan niet zelf lerend heb ik niet zo veel aan. Dus ik heb de domste slimme thermostaat die ik destijds kon vinden een Honeywell round connected modulation. Ik stuurde dat eerst aan via IFTTT, maar dat begon steeds meer te muiten. Dus de hele reden dat hier een Homey staat is het regelen van de verwarming. :grinning:

Na wat dingetjes proberen en testen heb ik nu een aantal flows waarmee het goed en betrouwbaar werkt zoals gewenst. Ik hoef mij er totaal niet mee te bemoeien. Omdat andere misschien ook opzoek zijn naar een oplossing voor een zelfde/vergelijkbare situatie wil ik bij deze toch de flows even delen.

Je ziet dat de flows elke minuut een aantal voorwaarden na lopen. Hier op het forum wordt wel eens geschreven dat dat onnodige systeembelasting geeft en dat je beter een verandering kan gebruiken. Maar volgens mij doet de Homey niks anders dan elke cyclus alle statussen na lopen anders kan deze ook geen verandering opmerken. Hoe dan ook met een systeembelasting van 0.17 denk ik niet dat de Homey (pro) er echt van in de stress raakt. :grinning:

Ik gebruik een aantal variabelen;

[Tijdklok]

  • Tijdvak waar in ik het 19,5/21 graden wil hebben als ik thuis ben.

[EcoMode]

  • Verwarming op 17 graden omdat er voldoende zonnestraling is om het huis op te warmen.

  • Ga zo slapen/weg voor ploegendienst.

  • staat een raam/deur open.

[Comfort]

  • 21 graden comfort tijdens bijvoorbeeld film kijken.

De flows:

[15 graden]

[17 graden]

[19,5 graden]

[21 graden]

3 Likes

Dank voor het delen. Ik was ook in de veronderstelling dat je het iedere minuut laten triggeren van flows beter kunt vermijden.
Hoe schakel je de logica, ecomodus, comfort e.d.? Dat mis ik nog in je verder mooie voorbeeld.
Cheers

Bedankt. Ik wilde ook voorkomen dat het één brei van flows werd dus eerst de basis waar eens gepost. vanwege de interesse bij deze de achterliggende logica. Je moet natuurlijk wel alles aanpassen naar je eigen situatie. Gebruik van temperatuur, vermogen en azimut zal je bijvoorbeeld af moeten stemmen op het gedrag van je eigen huis.

[Tijdklok]

De “ouderwetse” manier van denken. Verwarming kan bijvoorbeeld een uur eerder “uit” dan je normaal gesproken naar bed gaat. Ik hou verder geen rekening met het aanwarmen van het huis.Dit kan je uiteraard mee nemen in de flow. Daar heb ik verder nog niet over nagedacht. (bij mij ook niet echt noodzakelijk)

[EcoMode]

Hier in neem ik dus zaken als raam/deur open, ochtend- middagdienst, en opwaren van het huis door de zon mee. Hier zit weer extra logica in verwerkt. (zie volgende post)

[Comfort]

Zoals geschreven voor tijdens het kijken van TV/Film. Hiervoor gebruik ik dus status van mij AV apparatuur.

1 Like

Mijn [EcoMode] maakt dus weer gebruik van onderliggende logica. Hier mee schakel ik of er voldoende opwarming van het huis is door de zon. En of ik ochtend of middagdienst heb waardoor de verwarming eerder “uit” gezet kan worden. (scheelt weer nutteloos stoken, en dus gas verbruik)

[Zon Verwarming]

Hierin vraag ik een aantal dingen af om te bepalen of er voldoende zonnekracht is. Belangrijkste daar in zijn temperatuur en vermogen van de zonnepanelen. Ten eerste vergelijk ik de temperatuur op het kozijn (Fibaro deur/raam sensor) en in de kamer. Op het kozijn moet hoger zijn dan in de kamer. Dan vraag ik de kamertemperatuur en buitentemperatuur af. Dit moet je afstemmen op je huis omdat het pas vanaf een bepaald punt nut heeft. Ook zie je dat ik de eigen status en die van [Gasverwarming] afvraag. Dit is om te voorkomen dat Homey maar blijft schakelen bij elke verandering van het vermogen van de zonnepanelen. (te veel opdrachten achterelkaar aan de thermostaat)

[Gas Verwarming]

Terug zetten van de logica. Dit gaat op basis van temperatuur. Tevens vangnet voor als er toch onvoldoende zonnekracht is.

[TempratuurMonitor]

Deze wordt gebruikt is de [Gas verwaming] variabele. Dit om te bepalen of de temperatuur in huis stijgt of daalt.

1 Like

Als laatste wordt er in de [Ecomode] nog [Dienst] afgevraagd. Dit is zoals reeds geschreven om de verwarming eerder “uit” te zetten en werkt als volgt:

1 Like

Petje af, Johan. Ik weet dat je dat niet even in 1 keer bedenkt, maar dit is een professioneel economisch verwarmingssysteem zo!

Bedankt, maar had al geoefend op mijn werk waar ik samen met de programmeur het klimaat systeem verbeterd heb. Daar houden wij de temperatuur zo constant mogelijk door de kachels, dak, en gevel ventilatie te sturen. Wil ik eigenlijk ook nog wel in mijn huis toevoegen. Maar wil dan mijn ramen automatisch openen/sluiten. Ik heb daar nog niet iets voor gevonden waarvan ik zeg dat is het. Die dingen van AXA zijn leuk, maar als ik zo op YouTube kijk maken die dingen nog al een herrie. (Plus IR sturing)

https://www.axasecurity.com/home-security/nl-nl/producten/uitzetters/11?page=1

Wat wellicht wel interessant is is Aumueller. Maar meer gericht op Aluminium profiel systemen. Motor om het raam te openen en te vergrendelen zijn apart.
https://en.aumueller-gmbh.de/aumueller-product/aumueller-vent/drives-vent/

1 Like

Zie deel twee voor de AXA remote. :grin:

1 Like

Petje af voor deze oplossing! Zeker met ploegendiensten is de huis tuin en keuken klokthermostaat inderdaad niet “up to the job”. Ik zit zelf niet in ploegendienst dus ik heb het iets simpeler, maar wil nog wel een kleine bijdrage doen ten gunste van de iets slimmere thermostaatsystemen - in combinatie met dit soort hele nuttige aanvullingen.

Ik geef onmiddellijk toe, dan moet je gelijk ook wel wat dieper in de buidel tasten. Ik heb gekozen voor een hybride oplossing, slimme thermostaat én slimmere Homey.

Er zijn een aantal zaken die beide kunnen, en een aantal zaken waar een slimme thermostaat toch meerwaarde biedt:

Zone-verwarming: de traditionele domme thermostaten verwarmen alleen slaapkamers als de domme thermostaat in de woonkamer het koud vindt en dan en slechts dan de ketel aanzet.

Een goede slimme thermostaat kent alle temperaturen in alle kamers, en - daar zit dus de clou, schakelt de ketel in voor die ruimten die dat nodig hebben, onafhankelijk van de ruimte waar de hoofdthermostaat hangt. Als je slimme radiatoren aanstuurt met Homey maar de ketel staat uit gebeurt er nog niet zo veel. Juist als er mensen met verschillende dagritmen in een huis wonen kan dat relevant zijn.

Lerend vermogen: Zelflerend wordt vaak geinterpreteerd als: gokken wanneer je thuiskomt. Dat is een hype feature, die bij niemand goed werkt. Maar de term zelflerend wordt voor meer dingen gebruikt, waarvan thuisgokken de meest zinloze.

Wat ik bedoel is dit: Een goede slimme thermostaat leert hoe lang het duurt om een ruimte op temperatuur te krijgen, en maakt daarbij gebruik van externe omstandigheden als het weer. Wat een thermostaat moet doen, en Homey bij mijn weten niet kan, is het bepalen van de stookcurve. De stookcurve bepaalt hoe lang gestookt moet worden en hoe hard om de doeltemperatuur zo goed mogelijk te bereiken en behouden.

De stookcurve van de ketel kan met een zelflerend systeem aangepast worden op de warmtevraag, de eigenschappen van je huis en de invloeden van het weer. En - wederom - hoe meer het slimme systeem weet van de afzonderlijk ruimten en hun behoeften, hoe beter dat werkt, hoe comfortabeler je huis is en hoe zuiniger het systeem werkt.

Een goede stookcurve merk je niet, een foute wel. Als de warmte je naar de keel slaat als de verwarming ‘s ochtends net aan is, of als het nog kil is als je uit je bed komt. De moeilijk grijpbare effecten zie je in je stookkosten, of zelfs hoe vuil je ketel wordt van binnen tijdens het stoken. Stoken is namelijk meer dan de keten aan- en uitzetten, en daarvoor is een goede modulerende thermostaat nodig die zoveel mogelijk informatie benut.

Geofencing kan daarbij assisteren. Dat werkt ook goed bij ploegendiensten, want dat is niet tijdgebonden. Een slimme thermostaat kan als je je huis nadert al anticiperen op je komst en de stookcurve aanpassen - wederom lastig van buitenaf te regelen.

Kortom, er blijft voor slimme thermostaatsystemen genoeg over wat Homey dan weer minder makkelijk kan en waar de expertise van verwarmingsfabrikanten van pas komt. En dan blijft er nog heel veel over wat Homey inderdaad net zo goed of beter kan, omdat Homey dan vaak weer beter weet wie wel en niet thuis is, wie welke ruimten gebruikt en wanneer, welke ramen open en dicht gaan, wat er in je agenda staat over je ploegendienst en noem maar op.

Dit is zeker niet het geval. Iets of iemand verandert iets - er is altijd een oorzaak. Homey weet welke flows daarop reageren en gaat alleen die flows af, maar hoeft dat dus niet voor alle flows te doen. Als Homey dat zou moeten doen dan is het systeem binnen now time volledig unresponsive.

Het is niet verboden om periodiek iets te doen, en soms is het de enige optie. Maar als het event-based kan, doe dat! En inderdaad, met een load van 17% hoef je je niet direct zorgen te maken, mits de pieken ook op triggertijden ok zijn en je systeem response altijd in orde is.

Maar het gevaar is: als je te veel time based flows hebt, als de load ineens wel heel hoog is, of als de flows daardoor niet meer, of heel laat reageren dan wordt het heel lastig om al die periodieke flows weer om te schrijven.

Elke test die Homey doet in een flow en actie die Homey uitvoert kan weer andere acties uitlokken. Dan kan de belasting explosief groeien met het toenemen van het aantal apps, het aantal devices, het aantal tags en het aantal flows. Dus hoe minder vaak flow triggeren, hoe beter alles loopt.

Systemen die gebouwd zijn met de filosofie die je beschrijft bestaan ook. Daar is de reactietijd van alle handelingen variabel en afhankelijk van hoeveel tests er in de loop plaatsvinden en wanneer je gewenste flow weer aan de beurt is voor controle. Nadeel is dus dat je worst case zit te wachten tot alle andere flows ook hebben gecontroleerd of ze nog wat willen doen. En bijvoorbeeld de status van een apparaat opvragen in een ‘’als” test is niet altijd gratis

De opzet van Homey is echter anders: mits de load op het moment laag is kan Homey vrijwel onmiddellijk reageren op een event, en hoeft dus niet te wachten tot de betreffende flow langskomt in de loop. Maar hoe meer tegelijk gebeurt, hoe minder dat lukt. En hoe meer periodieke flows, hoe vaker er iets tegelijk gebeurt.

Wat ik bedoel is dat Homey elke cyclus alle sensoren na loopt. Maar dat boeit mij voor de toepassing niet. Omdat ik wil dat er vrij snel iets gaat gebeuren als de situatie veranderd heb ik de tijd om de 1 min staan. In mijn ventilatie sturing heb ik 5 min. Netatmo geeft het toch niet vaker door dus sneller heeft geen nut. Maar goed zelfs nu ik de ventilatie regeling er bij gezet heb zit ik nog steeds op een gemiddelde systeembelasting van 0.17 en een geheugengebruik van 115 MB. Op dat vlak dus nog geen paniek. Wat ik ook gedaan heb is de flow in een volgorde opbouwen. iets wat belangrijk is eerst, dan hoef je de rest niet af te vragen als niet aan de voorwaarden voldaan wordt.

Maar goed, thermostaat moet je inderdaad lekker zijn werk laten doen. Met Homey alleen de opdracht geven ik wil het nu x graden hebben. (programma functie overnemen) Hoe lang en met hoe veel vermogen de brander aan moet regen de thermostaat en de kachel samen wel. Indien aanwezig is zone regeling natuurlijk nog mooier. Dat heb ik echter niet. En ga in een huurhuis ook niet alles omzetten. Daarnaast is het huis redelijk in balans. (kranen afregelen) Dus het werkt eigenlijk prima met de ouderwetse oplossing met een modulerende thermostaat in de woonkamer.

Homey heeft dus geen cyclus die dat doet. Als een sensor wat opstuurt, dan reageert Homey daarop.

Niet handig: elke minuut kijk naar de temperatuur om te kijken wat je moet doen, of elke minuut kijken of het ergens tijd voor is.

Wel handig: als de temperatuur verandert doe dan wat
of als het een bepaalde tijd is, doe dan wat.

Als je structureel tegen de ontwerpfilosofie van Homey ingaat zal dat op termijn tot problemen leiden. Ik heb honderden flows, dat is onmogelijk als je veel flows hebt met doe elke xxx tijd iets.

Je wilt dat het snel gebeurt:

Een flow: Als temperatuur later wordt dan 19.5 graden gebeurt misschien een keer of 5 per dag en reageert binnen een seconde, en dus echt alleen als het nodig is om iets te doen bij dat kantelpunt.

Een flow Als de temperatuur verandert en de temperatuur is lager dan 19.5 graden gebeurt elke keer dat de temperatuur verandert en voert de actie elke keer uit dat de temperatuur ook echt ook onder de 19.5 graden is, dus ook als de temp verandert van 19.3 naar 19.2. Dat zal enkele honderden keren zijn maar reageert wel binnen de seconde. Kan nutting zijn, maar optie 1 is efficienter.

Kijk elke minuut of de temperatuur later is dan 19.5 graden gebeurt 1440 keer per dag en kan er een minuut over doen om te reageren op een verandering. Dat is dus de minst optimale oolossing, al werkt het uiteindelijk ook wel.

1 Like

Oké helder. Ik denk meer zo als ik dat gewent ben bij een PLC. Ik wil iets en daar komt een berg voorwaarden achteraan. Dat het niet helemaal zo bij Homey in elkaar steekt was ik al achter. Geeft niet, dat moet je inderdaad even weten. Wat ik alleen wil is zo veel mogelijk in één flow stoppen zodat je geen flows krijgt die langs elkaar gaan werken. Het nutteloos uitvoeren van flows voorkom ik door ook eigen status af te vragen. Als de ingestelde temperatuur van de thermostaat 19.5 is stopt de flow, en wordt de thermostaat dus niet nogmaals op 19.5 gezet. Voor het zetten van de thermostaat op de gewenste temperatuur laat ik het zo omdat het anders niet snel genoeg reageert naar mijn zin. Wachten tot de temperatuur een tiende zakt of stijgt gaat best een tijd overheen. Dan zou het voor kunnen komen dat je nutteloos gas aan het verstoken bent. Voor de achterliggende gebruikte logica en ventilatie flows zou ik het met jou informatie wat beter/mooier kunnen stroomlijnen omdat dat uiteindelijk iets anders is geworden dat dat ik begon met het maken van de flow. Dat zijn wel aparte flows geworden want je kan maar 3* een “OR” gebruiken in een flow kwam ik achter. Bedankt voor de info, ik ga nog even wat huiswerk maken. :wink:

Er is een flauw truukje waarmee je een or kunt maken met meer condities. Not(not A and not B and not C and not D) is hetzelfde als A or B or C or D. Dus al je flow maakt met allemaal ands en omgekeerde condities, en wat je wilt doen zin de else zet, dan heb je wat je zoekt. Boven de else zet ik meestal een FlowNotitie met de reden van de rare constructie. Helemaal leeg vindt Homey niet leuk en een notitie doet niets. :slight_smile:

2 Likes

Slimme truuk zeg, het omdraaien!

Verder wil ik jullie wijzen op de H.O.O.P. advanced flow editor.
Het is wel even “het vatten”, maar dan kun je bijna alles wat je met standaard flows niet kan.
Standaard if-or-or, en je kunt bijv. kiezen of je alle kaartjes asynchroon (Homey default) of synchroon, op volgorde, wil laten lopen.
Verder heb je else, elseif, or else, then else etc.

App: Homey Community Store
Forum: H.O.O.P. (Hope) - Homey Object Oriented Programming

Verder is de app Apparaat Mogelijkheden erg handig in het “luisteren” naar statuswijzigingen van capabilities die niet middels reguliere flowkaartjes beschikbaar zijn.
App: Apparaat mogelijkheden App voor Homey | Homey
Forum: Device Capabilities - Enhance the capabilities of devices

1 Like

Dat trucje had ik inderdaad al toegepast voor de [EcoMode] :grinning:

Een flow notie is een goed idee. Die kon ik nog niet, en daar liep ik tegen aan met mijn ventilatie regeling.

1 Like

Interessant, daar ga ik eens naar kijken. Heb je eigenlijk alles wat in PLC’s gebruikt wordt? Waarbij je dus ook tussen haakjes dingen kan regelen? Of is dat nog even een stap te complex voor Homey?

Andere vraag, maken jullie om dingen aan en uit te zetten, logica te schakelen aparte flows? Dus één voor aan, één voor uit / één voor ja, één voor nee, enz. Ik heb er nu een paar waar ik else gebruik.

Ik kom uit de elektrotechniek machinebouw, en heb nog met die ‘rekenmachines’ plc’s geprogrammeerd🙃. Later konden we met een modem inbellen op een plc, en vanaf de zaak de boel managen, dat was gaaf toenderdtijd.

Vlgs mij kan dat met bijv. if-elseif-elseif-endif-if-elseif-else-endif. Je kunt er zoveel voorwaardes in zetten als je wil (in theorie)
Je kunt in de app ook functies maken en bewaren, zoals een array, en deze oproepen in een flowkaartje.

V.w.b. je andere vraag, dat doe ik wel. Hangt er vanaf.
Ik heb bijv. een flow die kijkt of het boven of onder 20°C is. if temp >20° doe dit, else doe dat.
Maar het gevaar is "klapperen’ als t precies rond de 20°C is, al zet ik wel altijd vertraging op van x minuten op de ELSE kaartjes.
Ik zet liever een BoolVar False bij <19° en True bij >20°

Ik ben monteur en heb destijds beging jaren '90 ook op de 16 kanaals Télémécanique leren programmeren. Simpele dingetjes als, als ingang 1&4 hoog zijn zet dan na 4 sec. uitgang 8 aan. Hele tijd niks mee gedaan tot mijn huidige werk waar wij Beckhoff gebruiken. Ondertussen is het wel wat complexer dan IF, AND, OR, THEN. Ik programmeer niet, maar kan wel kijken of bijvoorbeeld een sensor wel binnen komt ed. Van onze vorige programmeur wel wat uitleg gekregen over één en ander tijdens storingen. Dus ik weet basis dingetjes. Nu hoef je met Homey geen servo assen aan te sturen. Maar het is dus nog wel een beetje omschakelen hier en daar hoe je dan met Homey het beste iets kan doen.

Tegen het “klapperen” hebben wij in ons klimaat systeem een filter in geprogrammeerd met een timer. Weet zo uit mijn hoofd niet meer hoe de programmeur dat precies gedaan heeft. Maar komt er dacht ik op neer dat er om de 30 sec. gekeken wordt of de waarde hoger of lager is dan de vorige waarde. In dat geval schrijf nieuwe waarde weg. Maar dan komt er dus elke 4 ms een nieuwe waarde binnen. (al ouder systeem, nieuwe draaien op 1ms) Thuis met de Netatmo om de 5 min. een nieuwe meting. Dus dan ben ik niet zo bang voor het blijven schakelen. Daarnaast is mijn ervaring dat je voor temperatuur schakelingen het best een hoge en lage waarde kan gebruiken. Dus bijvoorbeeld ventilator aan >20.2, uit <20.0

Maar goed, wordt wel een heel verhaal zo. Ik ga eerst maar eens even mijn huiswerk doen met de huidige flows. (met ik straks weer andere flows delen. :yum:)

1 Like

Je moet A B C D ook omdraaien.
Dus A+B+C+D wordt !(!A&!B&!C&!D )