Flow niet herhalen

Ik laat mijn rolluiken omlaag gaan als de temperatuur boven de 25 graden komt. Dit doe ik via de OpenWeatherMap. In mijn flow heb ik bij logica de temperatuur is hoger dan 25 aangemaakt. Nu is mijn probleem dat deze flow keer op keer gestart wordt als de temperatuur verandert boven de 25 graden. Dus eerst start hij op 25,2 en dan weer op 25,7 etc. Hoe kan ik er voor zorgen dat de flow maar 1 keer gestart wordt?

Nu doe ik handmatig de rolluiken nog wel eens open boven de 25 graden, maar binnen de kortste keren gaan de luiken weer omlaag omdat de flow blijft starten.

Heb je een kaartje ā€œals de rolluiken open zijnā€ die je als EN kunt gebruiken?
Dan ben je er al.
Anders een variabele bij THEN op 1 zetten als je de rolluimen sluit. Bij openen zet je hem weer op 0.
In EN gebruik je dan ā€œals variabele 0 isā€.

Dank je. Soms kan het zo simpel zijn. Heb inderdaad de EN toegevoegd met ā€˜als de status omhoog isā€™. Ik zocht het meer in de kaarten van de temperatuur, maar daar moest ik dus niet zijnšŸ‘

1 Like

Toch kom ik er nog even op terug. Want het werkt nu wel, in die zin, dat flow eenmalig wordt gestart als de temperatuur boven de 25 graden komt.

Alleen als ik nu handmatig een rolluik open, gaat deze vrijwel direct weer dicht omdat de status van het rolluik weer anders is (door mijn handmatig actie). Kan ik ook instellen dat wanneer ik de rolluiken handmatig open doe, de flow het komende uur niet gestart wordt (en het rolluik dus open blijft)?

Denk dat het er aan ligt wat je met handmatig bedoelt. Loopt dat wel via Homey of geheel daar buitenom?
Als het via Homey loopt zou je bij een handmatige actie de automatische flow kunnen disablen en na een uur weer laten enablen via een timer.

Maar misschien is het dan logischer om bij handmatig sluiten een variabele op 1 te zetten en bij handmatig sluiten weer op 0.
Dan check je in de automatische flows deze variabele bij EN. Als de variabele op 1 staat doet de automatische flow dan niets.

De beste oplossing gebruikt homeyscript denk ik.

Je kan de voorgaande temperatuurmeting opslaan en een vergelijking maken met de huidige temperatuur. Maak vervolgens 2 flows, eentje voor het openen van de zonwering en eentje voor het sluiten die je allebei bij een verandering van temperatuur (of iedere paar minuten bijvoorbeeld) een script laat uitvoeren:

als (vorige_temperatuur < 25) en (huidige_temperatuur >= 25) dan sluit_zonwering;
vorige_temperatuur = huidige temperatuur;

en
als (vorige_temperatuur > 24) en (huidige_temperatuur <= 24) dan open_zonwering;
vorige_temperatuur = huidige temperatuur;

Voila.

Met handmatig bedoel ik: met de originele afstandsbediening van Somfy io. Dit gaat dus buiten Homey omā€¦

Dan wordt het lastiger en zul je het moeten hebben van de status die je rolluiken doorgeven aan Homey.

Mss kun je de afstandsbediening van Somfy ook koppelen met Homey? Dan kun je op het gebruik van de afstandsbediening ook acties zetten in Homeyā€¦

Dat kan helaas niet,
@Pieter_Bosman je zult dan een variabele (boolean, ja/nee) moeten maken die geset wordt als Homey de bediening omlaag doet en die variabele als voorwaarde gebruiken voor automatisch omhoog.

1 Like

Is de status van het scherm ook niet op te vragen via Homey die vraagt aan de Connexoon of het scherm dicht zit of hoe ver hij open staat?
IO is 2-weg communicatie.
Of zegt de Connexoon alleen maar open, dicht en stop?

Homey kan zien of het rolluik omhoog of omlaag is. Alleen wil ik dit wel eens ā€˜overrulenā€™ met de originele afstandsbediening. Als ik dat doe neemt de flow het binnen de kortste keren over omdat er een wijziging in temperatuur is (Van 25,2 naar 25,3 bijv). Bij die minimale wijziging wordt de flow opnieuw gestart als ik handmatig het rolluik open heb gedaan.

Homescript heb ik naar gekeken, maar dat gaat mijn pet te bovenā€¦

De oplossing die JPe aangeeft werkt in dat geval wel. Ik zal het even duidelijker toelichten :wink:

CreĆ«er een extra Ja/Nee variabele: ā€˜automatisch openā€™. Je zorgt bij de flows voor open en dicht dat deze ā€˜automatisch openā€™ ook op ja en nee zetten. Bijvoorbeeld: > 25Ā°C, zonwering dicht, open: nee.

In de voorwaarde voor het open doen moet je deze automatisch open op Nee staan, hiermee kan je het systeem dus overrulen. Als jij deze zelf namelijk open doet staat de variabele ā€˜automatisch openā€™ nog op nee.

Je kunt ook nog een extra variabele als tijdslot inbouwen, zodat je max een uur kan overrulen.

Gaat dat lukken zo?

Ik zou het veel simpeler maken

Flow 1

Als
temperatuur is veranderd

En
Temperatuur is groter dan 25 graden

Dan
Set ā€œautomatisch openā€ naar ja

Anders
Set ā€œautomatisch openā€ naar nee

flow 2

Als
variabele ā€œautomatisch openā€ is veranderd

En
Automatisch open is gelijk aan ja

Dan
Scherm open

(Optie als je wilt dat het scherm weer dicht gaat onder de 25 graden)
Anders
scherm dicht

Je kan het nog uitbreiden door in flow 2 een tijd slot of zonstand te zetten zodat hij bijv nachts niet open gaat.

Als je nu handmatig het scherm bediend dan zal deze in die stand blijven staan totdat de temperatuur weer boven of onder de 25 graden gaat

Dank je Tasz, toch snap ik je nog niet helemaal. Ik probeer jouw stappen te volgen.

Flow 1:

ALS
de temperatuur temperatuur verandert

EN
Temperatuur is groter dan 25

DAN
zet de status omlaag

Wat bedoel je dan met ANDERS?

Extra nieuw kaartje maken. Er op klikken, beethouden en naar beneden slepen. Er verschijnt dan vanzelf de ā€œandersā€ optie

1 Like

Dan heb ik nu dit bij Flow 1 (zie afbeelding). Jij hebt het alleen over ā€˜automatisch openā€™, en dan ja of nee. Ik heb ā€˜statusā€™ waar ik kan kiezen uit omhoog en omlaag. Is dit hetzelfde of doe ik het verkeerd?

Nee dat is niet hetzelfde. Je moet eerst een ja/nee variabele aanmaken. In mijn voorbeeld heb ik die automatisch open genoemd maar die mag ook een andere naam hebben.
Je kan dit vinden onder logica

Anders even zoeken op het forum. Het werken met variabele is wel een beetje basis kennis om dit soort dingen voor elkaar te krijgen

heb jij hier voorbeelden van hoe je dit vertaald naar script? ik vind dit ook zeer interessant maar heb ook geen idee waar ik moet beginnen.

Inmiddels heb ik 2 flows gemaakt zoals jij hebt beschreven. Dit lijkt goed te werken:

Flow 1

Als
temperatuur is veranderd

En
Temperatuur is groter dan 25 graden

Dan
Set ā€œautomatisch openā€ naar ja

Anders
Set ā€œautomatisch openā€ naar nee

flow 2

Als
variabele ā€œautomatisch openā€ is veranderd

En
Automatisch open is gelijk aan ja

Dan
Zet de status omlaag

Echter nu wil ik hetzelfde omgekeerd doen. Dus als temperatuur onder de 20 graden komt wil ik ik de schermen omhoog hebben. Als ik dan handmatig een scherm laat zakken (met een externe afstandsbediening) wil ik niet dat na elke temperatuurswijziging het scherm weer omhoog gaat.

Ik heb wederom 2 flows aangemaakt maar dan omgekeerd:
Flow 3

Als
temperatuur is veranderd

En
Temperatuur is kleiner dan 20 graden

Dan
Set ā€œautomatisch dichtā€ naar ja

Anders
Set ā€œautomatisch dichtā€ naar nee

flow 4

Als
variabele ā€œautomatisch dichtā€ is veranderd

En
Automatisch dicht is gelijk aan ja

Dan
Zet de status omhoog

Echter werkt dit niet goed. Het scherm gaat tussentijds toch omlaag. Moet ik een nieuwe logica aanmaken Bij flow 3 en 4 of kan ik dezelfde gebruiken van flow 1 en 2? Of doe ik iets anders fout?

Je flows zien er goed uit

Het scherm zal altijd omlaag gaan zodra de temperatuur boven de 25 graden komt en omhoog zodra de temperatuur onder de 20 graden komt.

Doe jij in de tussentijd het scherm met de hand omhoog en na bijvoorbeeld een half uur de temperatuur schommelt rond de 25 graden dan zal inderdaad het scherm weer omlaag gaan.
Dat is immers wat deze flows.doen.

Je zou een flow kunnen maken die een variabele schakeld zodra je de afstandsbediening bedient. Die variabele voeg je dan weer toe aan de EN voorwaarden flow 2 en 4.

Dus bijv

Als
Een knop van de afstandsbediening wordt ingedrukt

Dan
Set variabele ā€œscherm handbediendā€ naar ja
Set variabele ā€œscherm handbediendā€ naar nee na 300 minuten

In flow 2 en 4 voeg je dan toe bij EN
ā€œScherm handbediendā€ is gelijk aan NEE.

Hiermee zorg je ervoor dat het scherm voor 5 uur lang niet meer automatisch reageert zodra je hem met de hand bediend heb.

Die 5 uur is natuurlijk een voorbeeld

Wat ook een oplossing is dat je middels een variabele laat toestaan dat flow 1 en 3 maximaal 1 x per dag geactiveerd mogen worden