Flow für Rolllädensteuerung und manueller Eingriff

Hallo zusammen,

es gibt folgende Ausgangssituation: 8 Rollläden werden in Abhängigkeit von Licht- und Zeitverhältnissen mithilfe von Qubino Flush Shutters vom Homey automatisch gesteuert, was auch einigermaßen zufriedenstellend funktioniert (mit Parameter Zeit, Temperatur, Helligkeit muss ich noch weiter spielen).

Ziel: Nach einem manuellen Eingriff zur Positionsveränderung (am Schalter oder per App) soll der zu dem Zeitpunkt gültige Flow nicht mehr positionskorrigierend getriggert werden. Das soll so für einzelne Rollladen gelten und am nächsten Tag wieder mit Automatik beginnen.

Momentan gib’s folgende Flows, die für alle Rollläden gelten:

Flow 1: Rollläden rauf (morgens)
Wenn: Es ist 8 Uhr
Dann: Fahre jedes Rollo auf 100%

Flow 2: Rollläden runter (bei viel Sonne)
Wenn: Heiligkeit am Sensor hat sich verändert
Und: Helligkeit ist größer als 70000
Und: Temperatur draußen ist größer als 22
Und: Zeit ist zwischen 8 und 20 Uhr
Dann: Setze Position jedes Rollos auf 40%

Flow 3: Rollläden rauf (bei wenig Sonne)
Wenn: Heiligkeit am Sensor hat sich verändert
Und: Helligkeit ist kleiner als 20000
Und: Zeit ist zwischen 8 und 20 Uhr
Dann: Setze Position jedes Rollos auf 100%

Flow 4: Rollläden runter (abends)
Wenn: Heiligkeit am Sensor hat sich verändert
Und: Helligkeit ist kleiner als 300
Und: Zeit ist später als 20 Uhr
Dann: Setze Position jedes Rollos auf 50%

Es ist mir klar, dass ich beim manuellen Eingriff einen Flag setzen, diesen in jeweiligen Flows auswerten und morgens im Flow1 wieder zurücksetzen muss. Ich stehe aber irgendwie auf dem Schlauch, wie ich es vermeiden könnte, dass aus diesen 4 Flows für alle 8 Rollläden nicht 32 Flows und 32 Flags für einzelne Flows x Rollladen werden.

Hat jemand eventuell eine pfiffigere Idee, wie ich es realisieren könnte? Vielleicht mit einem ganz anderen Ansatz…

1 Like

Wenn wirklich alle 8 Rollläden separat voneinander auf irgendwelche Aktionen reagieren oder nicht reagieren sollen, wird man deutlich mehr Flows brauchen. Wie Du selber schreibst, wäre das durch den Einsatz von Variablen oder virtuellen Geräten wäre das möglich.

Die aktuellen Flows sollten also so oder so überarbeit werden.
In Deinem Beispiel werden die Rollos bzw. die Qubino Flush Shutters bei jeder Helligkeitsänderung von > 70000 Lux und gleichzeitiger Erfüllung der restlichen Bedingungen immer wieder getriggert. Theoretisch müsste man jedes Mal ein Relais klicken hören, was generell zu vermeiden ist. Ändert man zwischenzeitlich die Position eines Rollos, wird dieses beim nächsten Durchlauf des Flows wieder auf Position 40 % gesetzt.

Beispiel mit einer Variablen zu Flow 2:

Flow 2.0
Wenn: Heiligkeit am Sensor hat sich verändert
Und: Helligkeit ist größer als 70000
Und: Temperatur draußen ist größer als 22
Und: Zeit ist zwischen 8 und 20 Uhr
Und: Variable XYZ ist = Nein
Dann: Setze Variable XYZ auf Ja

Flow 2.1
Wenn: Variable XYZ sich ändert
Und: Variable XYZ = Ja
Dann: Setze Position jedes Rollos auf 40%

Flow 2.2
Wenn: Es ist 20:01 Uhr
Und: Variable XYZ = Ja
Dann: Setze Variable XYZ auf Nein

Die Rollläden fahren also nur dann auf 40 % wenn sich die Variable von Nein auf Ja ändert, und dies passiert in der Regel nur 1x, es sei denn Flow 3 wurde ausgelöst und setzt die Variable XYZ wieder auf Nein.
Die zusätzliche Abfrage des Status der XYZ-Variable im Bereich Und mach ich u.A. genau aus diesem Grund. Ohne zusätzliche Abfrage würde in meinem Beispiel zwar kein Gerät sondern nur die Variable jedesmal gesetzt, aber das wäre eine unnötige Rechenbelastung für Homey.

Ich hoffe das ist einigermaßen verständlich, ansonsten bitte fragen.

Der ganz andere Ansatz könnte der Einsatz der H.O.O.P.-App aus dem Community Store sein. Da ich mich selber noch nicht mit der App beschäftigt habe, kann ich allerdings keine konkrete Aussage machen noch unterstützend helfen. Allerdings gibt’s einige Threads zu dieser App mit Erklärungen und Beispielen.

Nein, die Relais klicken nicht bei jeder Wertveränderung am Sensor, solange die Position nicht manuell verändert wurde. Ich vermute, dass der Flush Shuter klug genug ist, zu wissen, dass die aktuelle Position der gewünschten entspricht. Und wenn Position manuell verändert wurde, dann greift der Flow erwartungsgemäß korrigierend.

Dein Beispiel verstehe ich so, das es verhindert soll, dass bei jeder Wertänderung am Helligkeitssensor die Shutter ihre aktuelle Position auswerten und ggf. korrigieren sollen. Alternativ dazu spricht natürlich nichts dagegen, anstatt bei jeder Veränderung der Helligkeit nur beim Überschreiten der Schwellen den Flow zu triggern, was auch zum selben Ergebnis führen würde und die Korrektur der manuellen Positionsveränderungen innerhalb der Schwellen (in meinem Beispiel zwischen 20000 – 70000) verhindern.

Nur Randbemerkung: Ich weis zwar nicht, wie es bei Homey ist, aber normalerweise braucht das Setzen einer booleschen Variable weniger Rechenleistung als jede logische Abfrage.

Die Beschreibung der H.O.O.P.-App liest sich echt spannend. Ich werde mir irgendwann mal die Zeit dafür nehmen und diese kennenlernen.

Kann man eigentlich in einem Flow abfragen, ob ein anderer Flow in diesem Moment auch ausgeführt wird? Können Flows überhaupt parallel laufen?

Solange die Position über das Dimlevel in % angefahren wird, und so machst Du es ja auch, stimmt das, da hast Du recht. Das hatte ich nicht richtig auf dem Schirm, sorry.
Nur zur Erklärung warum ich es erwähnt hatte: Bei einigen Roller Shuttern die vor ca. 1-2 Jahren inkludiert wurden besteht die Möglichkeit neben das Dimlevel in % auch den Status Oben/Stopp/Unten zu setzen. Und wenn das Rollo bereits vollständig geöffnet ist und dann per Flow der Status Oben erneut getriggert wird, klicken die Relais. Ob das jedes Relais macht weiß ich nicht, meine Fibaro RS2 machen es jedenfalls.

Korrekt.

Wenn Du die Karte “Helligkeit wird mehr als…” meinst, dann spricht generell erstmal nichts dagegen und wäre hinsichtlich der Homey Rechenlast die beste Wahl, das stimmt, aber…
Nehmen wir Deinen Flow 2, diesmal entsprechend modifiziert, wieder als Beispiel:

Flow 2: Rollläden runter (bei viel Sonne)
Wenn: Heiligkeit wird mehr als 70000 Lux
Und: Temperatur draußen ist größer als 22
Und: Zeit ist zwischen 8 und 20 Uhr
Dann: Setze Position jedes Rollos auf 40%

Der einzige Trigger in diesem Fall ist das Überschreiten des Lux-Wertes von 70000.
Wenn zu diesem Zeitpunkt die Temperatur noch bei 21 °C liegt werden die Rollos nicht geschlossen, was ja auch richtig ist. Steigt die Temperatur in der Zeit zwischen 8 und 20 Uhr noch über 22 °C an, der Lux-Wert hat zu diesem Zeitpunkt aber bereits die 70000 überschritten hat, werden die Rollos nicht geschlossen.
Erst wenn der Lux-Wert mal unter 70000 fallen, z.B. durch eine Wolke, und dann wieder über 70000 ansteigen würde, bei gleichzeitiger Erfüllung der anderen Bedingungen (> 22 °C, 8 - 20 Uhr), würden die Rollos auf 40 % geschlossen werden.
Deshalb hatte ich mich für den zusätzlichen Flow mit der Variable entschieden. Die Rechenlast von Homey wird damit zwar auch nicht verringert, aber Du hättest die Möglichkeit den Zustand der Rollos manuell zu verändern ohne das diese alle paar Sekunden/Minuten wieder auf 40 % fahren.

Das kann ich nicht beantworten. Man kann die Abfrage der Variable ja auch weglassen.

Da bin ich auch überfragt, aber so ein Flow läuft in der Regel ja in einem Bruchteil einer Sekunde durch. Wie sich Verzögerungen/Delays auf die Durchlaufgeschwindigkeit auswirken weiß ich auch nicht.
Wofür wäre das denn wichtig?

Soweit ich weiß werden Flows nacheinander abgearbeitet.
Aber das ist nur gefährliches Halbwissen von mir, sorry.

Ja, das ist ein sehr guter Einwand, den ich beim Schreiben meines Posts nicht auf dem Schirm hatte, und auch der eigentliche Grund gewesen, warum ich es nicht so in meinem Flow habe.

Wenn ich in mehereren Flows als Trigger “Helligkeit am Sensor hat sich veränder” (oder “Position des Rollos hat sich verändert”) habe, welcher Flow wird als erster ablaufen oder werden die alle gleichzeitig getriggert?

Ich hatte mal so folgenden Gedanken:

Flow 1: Morgens Rollos auf & Vars rücksetzen
Wenn: Zeit ist 8 Uhr
Dann: Rollos auf 100% && Variable AUTO_ROLL_SONNE auf TRUE

Flow 2: Rollos runter bei Sonne
Wenn: Heiligkeit am Sensor hat sich verändert
Und: Variable AUTO_ROLL_SONNE ist TRUE
Und: Helligkeit ist größer als 70000
Und: Temperatur draußen ist größer als 22
Und: Zeit ist zwischen 8 und 20 Uhr
Dann: Setze Position jedes Rollos auf 40%

Flow 3: Manueller Eingriff
Wenn: Position der Rollos hat sich verändert
Und: Flow 2 ist nicht gestartet
Dann: Setze Variable AUTO_ROLL_SONNE auf FALSE

Hier würde ich im Flow 3 wissen können, dass die Positionsänderung des Rollos nicht duch Flow 2 verursacht wurde = dann war es der Schalter → manueller Eingriff

Leider fand ich bis jetzt keine Möglichkeit abzufragen, ob ein bestimmter Flow gerade ausgeführt wird.

Oder kann ich irgendwie anders unterscheiden, ob Rollos durch Flow oder Schalter ausgelöst wurden?

Hm, kann Dir nicht ganz folgen.
Bei “Helligkeit am Sensor hat sich verändert” kommt es ja erstens auf den Schwellenwert in Lux an und zweitens auf die anderen Bedingungen im Bereich Und…
Der Schwellenwert und/oder die Bedingungen müssen letztendlich ja unterschiedlich sein, ansonsten benötigst Du ja nur diesen einen Flow.
Man kann auch mit einem Flow andere Flows starten welche wiederum Bedingungen enthalten. Das kann man sich dann wie ein FlowChart vorstellen.
Komplexere Automatisation erstelle ich übrigens erst mal als Flowchart. Dadurch bekommt man schon eine relativ gute Übersicht aller Flows.

Wann soll der manuelle Eingriff erfolgen? Vor 8 Uhr? Zwischen 8 - 20 Uhr wenn die Rollos noch nicht auf 40 % sind, oder zwischen 8 - 20 Uhr wenn die Rollos bereits auf 40 % sind?
Eine Karte “Flow 2 ist noch nicht gestartet” gibt’s nicht. Diese Abfrage müsstest Du mit einer weiteren Variablen oder einem virtuellen Gerät machen (welches Ein-/Ausschaltbar ist).

Ich glaube Du hast da nach wie vor einen Denkfehler. Ein Flow wird getriggert und läuft im Bruchteil einer Sekunde durch (wenn alle Bedingungen erfüllt waren), Delays mal ausgenommen.
Ein Flow kann gestartet, deaktiviert oder aktiviert werden.
Gestartet: Der Flow wird getriggert, die Bedingungen werden geprüft, die Aktion wird ausgeführt
Aktiviert: Der Flow kann getriggert/ausgeführt werden
Deaktiviert: Der Flow kann nicht getriggert/ausgeführt werden
Es existiert auch keine Abfrage “Wenn Flow XYZ gestartet wurde…”. Aber das kann wie bereits gesagt mittels einer Variablen oder eines VDs gemacht werden.
Dann würde die Karte im Bereich Wenn… so heißen:
Variable: Eine Variable hat sich geändert (im Bereich Und… wird dann die Änderung abgefragt)
VD: Angeschaltet, Ausgeschaltet, Gedrückt/verändert

Das hilft zwar nicht wirklich bei Deinen Flows, aber in der Homey App gibt es eine Möglichkeit nachzuschauen wodurch Geräte z.B. ein- bzw. ausgeschaltet wurden. Diese Möglichkeit gibt es allerdings nicht bei allen Geräten, warum weiß ich nicht. Hier ein Fibaro Wall Plug:

Der manuelle Eingriff kann jederzeit erfolgen. Danach sollen die Automatik beim diesem Rollo bis zu nächsten Tag nicht mehr greifen. Aber ein “VD” ist ein sehr guter Tipp. Von dieser Möglichkeit habe ich bis jetzt nichts mitbekommen. Obwohl es auch nicht viel anders wäre als eine Zustandsvariable.

Das denke ich inzwischen auch schon…

Ich dachte, wenn mein Flow 2 vom vorigen Post getriggert wird (der ja Position des Rollos ändert), triggert er damit auch den Flow 3 (wenn sich Position geändert hat). Ich suche halt nach einer Möglichkeit unterscheiden zu könnnen, ob Position manuell per Schalter oder automatisch per Flow 2 geändert wurde. Sollte der Schalter dazu geführt haben, muss der Flow 2 bis zum nächsten Tag etnweder deaktiviert oder mittels eines Flags verhindert werden.

Ich denke aber, dass ich mir es selber zu kompliziert mache, um auf diesem Wege Homey besser kennenzulernen. Eigentlich würde mir vollkommen ausreichen, wenn ich die Temp-Abfrage aus dem Flow 2 herausnehme, die Flows nur beim Überschreiten der Helligkeitsschwellwerten ausführe, damit dazwischen die manuellen Positionsanpassungen möglich sind.

Für Deine Anregungen bin ich aber sehr dankbar. Diese helfen schon, die “Homeysprache” besser zu greifen %)

Manuelle Anpassungen sind doch immer möglich.
Entweder über Alexa, Dashboard oder schlicht durch einen Taster am Rollo.
Wobei ich nur Shelly 2.5 für die Rollos nutze.
Da hast Du ja richtig mit dem Kopf gedacht, wäre mir alles zu aufwendig.
Zumal ich persönlich auch nicht ständige Rollofahrten bei einer Wolke will.
Und Rollomotoren wechseln fällt nicht unter muß ich haben
Wenn Temp und Helligkeit erreicht wird, dann fahren meine Rollos auf die gewünschte Position,
danach deaktiviert sich der Flow selbst für den Tag und fertig.
Ein 2.Flow aktiviert den obigen früh wieder mit Sonnenaufgang.
Wenns mir mal nicht gefällt, geh ich an den Taster (nur Einer für Auf, Ab und Stop) je Shelly
oder nehme Alexa.
Zeiten habe ich im Flow gar nicht gesetzt, weil die Sonne ja sowieso erst vormittags kommt.
Das normale Hoch und Runter machen bei mir die Shellys selber, 20 runter,
hoch je nach Raumnutzung 7 oder 8 Uhr.
Hat den Vorteil, wenn die Kuller mal ausfällt, fahren zumindest alle Grundfunktionen weiter
und der Taster macht manuell.

Vielleicht müsstest Du “jederzeit” doch noch was konkretisieren.
Fall 1:
Wenn ein Rollo vor 8 Uhr händisch bereits auf eine Position x gefahren wurde, soll dieses Rollo dann um 8 Uhr nicht vollständig hochfahren?
Und auch nicht auf 40 % fahren wenn der Flow für den Sonnenschutz aktiviert wird?

Fall 2:
Wenn nach 8 Uhr (= Rollos theoretisch vollständig geöffnet) ein Rollo auf 70 % geschlossen wurde, soll dieses dann bei Aktivierung des Sonnenschutzes nicht auf 40 % geschlossen werden?
Soll sich das Rollo anders verhalten wenn es vor dem Sonnenschutz z.B. auf eine Position < 40 % geschlossen wurde?

Wie Du siehst sind mit “jederzeit” sehr viele Varianten, mMn auch sinnlose Varianten möglich.

Von der eigentlichen Funktion innerhalb des Flows nicht. Der ganz klare Vorteil eines VDs, man kann es in der Homey App oder per Schalter/Fernbedienung zusätzlich händisch ein- und ausschalten.
Man kann eine Variable zwar auch händisch “schalten”, der Aufwand ist aber deutlich komplizierter.

Wenn die Bedingungen des 2. Flows erfüllt werden und sich als Aktion die Position der Rollos ändert, dann wird auch der 3. Flow getriggert, allerdings existiert halt keine Abfrage “Flow 2 ist nicht gestartet”.

Eine Homey Flow Abfragekarte gibt es nicht. Eventuell ist dies mit Homey Script möglich, da bin ich aber leider nicht der richtige Ansprechpartner, sorry.

Eine Möglichkeit die mir noch eingefallen ist, wäre das Dimlevel der Rollos abzufragen. Weicht das Dimlevel eines Rollos von den Positionen 100 % , 50 % oder 40 % ab (das sind die Dimlevel nach Durchführung der Flows aus dem ersten Post), wurde das Dimlevel des Rollos manuell verändert.
Ich hab’s ausprobiert und es funktioniert (Geräte: Fibaro Roller Shutter 2).

Beispiel-Flow

Lass Dich von der Better Logic App nicht irritieren, das funktioniert mit der Build-In Logik von Homey genauso.

Wenn Du das so umsetzen würdest, dann müsste man z.B. um 3:00 Uhr Nachts die Variablen allerdings wieder auf True setzen, auch wenn das Rollo keine der 3 Positionen hat. Ansonsten würde der Flow um 8 Uhr in der Früh nicht ausgeführt werden, da die Variable noch auf “False” stehen würde.
Würde man um 7:30 das Rollo dann aber manuell verstellen, würde dieses dann um 8 Uhr ebenfalls nicht geöffnet werden (Thema “jederzeit”).
Ach ja, von der Vorstellung mit den 4 Flows solltest Du Dich definitiv verabschieden… :wink:

Das will ich auch nicht. Ich wollte damit nur größere Helligkeitssprünge abfangen. In dem Testbeispiel fahren die Rollos bei 70000 runter und erst bei 20000 wieder hoch (die optimalen Werte muss ich für mich noch herausfinden).

Auch ich gehe dann zum Schalter, die manuelle Änderung soll auch so bleiben. Die Nutzung von den ganzen Sprachassistenten versuche ich, bis jetzt erfolgreich, zu vermeiden. Ich fühle mich einfach unwohl bei den ganzen in die Wolken sendenden Mikros. Den “Komfort”-Verlust empfinde ich (noch) nicht als kritisch. Aber das ist halt mein persönliches “Makel” und muss hier nicht weiter diskutiert werden %))))

Zeiten brauche ich auch nicht unbedingt. Es gibt aber den Wunsch, verschiedene Positionen tagsüber als “Sonnenschutz” und abends als “Sichtschutz” anzufahren, wobei die Helligkeit zeitweise gleich sein könnte.

Das alles ist noch ein Spiel- bzw Testszenario…

Der Flow um 8 Uhr wird immer getriggert. Der einzige Parameter dort ist die Uhrzeit. Da soll quasi alles von vorn beginnen. Alle Variablen zurückgesetzt usw.

Ansonsten bedeutet “manueller Eingriff jederzeit”, dass nach einem manuellen Eingriff der für diesen Tagesabschnitt gültiger Flow für dieses Rollo nicht mehr ausgeführt werden soll, auch wenn alle übrigen Bedingungen dafür erfüllt sind.

Ja, den Vorteil sehe ich jetzt auch.

Ja! Das ist die pfiffige Lösung, nach der ich suche! Verstehe nicht, warum ich selbst nicht darauf kommen konnte und mich in der Suche nach Möglichkeit, den laufenden Flow abzufragen, verfangen habe. Ich danke Dir!

Ich werde es ausprobieren und hier berichten…

Das habe ich auch schon eingesehen %)

So luxuriös will ich nicht.
Wenn einmal am Tag wegen viel warm und hell bis Wunschstellung runter,
darf das bei mir in der Regel für den Tag so bleiben.
Es sei denn die Damenwelt wünscht Änderungen, dann bitte per Taster.
Habe gerade mal meine Rolladensegmente kontrolliert, gut, hängen paar Jahre,
aber besonders der Oberste an der Einhängung, wird durch viel fahren heftig belastet,
ist reichlich spröde geworden und eingerissen, also austauschen.
Dazu einen Achsmotor gewechselt, die Dinger werden ja sehr schnell sehr heiß
und sind Kollektormotoren, wahrscheinlich aber ein Montagsgerät.
Deshalb spare ich da lieber mit zu häufigen Änderungen.
Problem ist nämlich Ersatz in der gleichen Farbe zu bekommen.

Ich staune nur über Deine Helligkeitswerte bei mir sind 7000 Lux volle Sonneneinstrahlung
in einen Philipssensor. Das ist derzeit mein Auslösewert.

Sehr vernünftig das, Leider hab ich mir mal den Schrott zugelegt.

Da kommt aber dann ein wenig Arbeit auf Dich zu. :nerd_face:
Ich hab nur 5 Rollo Flows

Lux-Werte von heute, tlw. bewölkter Himmel:

Blau (Philips Hue Outdoor Sensor, Ausrichtung ca. NW): ca. 30.000 Lux
Grün (Xiaomi Lichtsensor, Ausrichtung ca. SW): ca. 75.000 Lux

Schön, dann hat meiner wohl ne Macke der ist noch nie über 10000 gekommen. Da werd ich wohl mal die Amazon bemühen.

Mein Xiaomi Sensor zeigt jetzt um 10 Uhr 80.000 an und liegt auf der SW-Seite

Bei uns ist’s grade stark bewölkt, deshalb nur unter 20.000 Lux.
Lt. Info misst der Xiaomi zwischen 0 - 83.000 Lux.
Für den Philips Hue Outdoor Sensor habe ich diesbezüglich keine entsprechenden Daten gefunden.

Ich hab ihn reklamiert, war ja noch Garantie.
Hat zwar sonst funktioniert, aber wer weiß was da irgendwann noch kommt.

@DirkG, der von Dir vorgeschlagene Lösungsweg funktionierte zwar. Nur waren es mir am Ende doch viel zu viele Flows, die ich dafür machen (und später pflegen) musste. Was ich aber bei der ganzen Testerei gemerkt habe, war folgendes. Wenn während der automatischen Positionsveränderung eines Rollos einer seiner Wandschlater (rauf oder runter) umgekippt und so belassen wird, dann stoppt die aktuelle Bewegung sofort und wird von keinem Flow mehr gestartet bis der Schlater in seine “neutrale” Position umgeswitcht wird. Somit kann man quasi manuell am Schalter bestimmen, ob die Automatik greifen soll, was mir (bzw. meiner Frau) genügt )) Somit bin ich jetzt mit den wenigen Flows bedient, die Deinem ersten Vorschlag ähnlich aufgebaut sind (Variablenänderung wird überwacht und triggert die Positionsänderung der Rollos).

Eigentlich ist es fast egal wie der Lösungsweg aussieht, Hauptsache man ist zufrieden und es funktioniert auf irgendeine Art und Weise. :+1:t3: