Homey Community Forum

Flow Logik Increment Operation nicht atomar

Hallo zusammen

ich habe drei Rolladen/Jalousien, die am Morgen automatisch schliessen wenn das Wetter warm wird. Wenn sie ganz unten sind, möchte ich sie wieder ein kleines Stück aufstellen. Das aufstellen mache ich aber erst, wenn alle 3 unten sind. Daher gibts ne Variable die ich mit “+1” hochzähle. Das Problem ist, sie kommen relativ zeitgleich unten an und es passiert ab und zu, dass der der Counter nur 2 statt 3 anzeigt, wohl weil ein Increment verschluckt wurde. Das ist natürlich suboptimal. Hat jemand einen Tipp wie ich zuverlässig eine Zahl hochzählen kann, ohne das Homey “falsch” zählt?

Homey führt die einzelnen Schritte im Flow asynchron aus. Daher kann es zu dem Verhalten kommen.
Du könntest das mit der Semaphore-App umgehen. Damit kann man bei abhängigen Aktionen die folgende warten lassen, bis die vorherige fertig ist.
Das nur als Tipp. Ich habe.mich damit noch nicht näher beschäftigt. Das “Sperren” deiner Aktion mit der Semaphore-App wartet dann so lange, bis es durch die parallele Aktion wieder entsperrt ist.

Ich kenne bzw. verstehe den Hintergrund nicht, warum die Lamellen (?) sich erst aufstellen sollen wenn alle drei Jalousien unten sind. Du schreibst ja selber, dass diese relativ gleichzeitig ankommen was letztendlich zu dem Problem führt. Deshalb sind meine Vorschläge eventuell völliger Quatsch.

Vorschlag 1
Das Aufaddieren der Variable „RL_Essen_Unten_No“ bei zwei Jalousien durch die Option „Verzögerung“ entzerren. Dann startet das Aufstellen ca. 2 s später.

Vorschlag 2
In dem Flow der die Jalousie(n) schließt, nach der „Schließen/Dimmen auf“ Karte eine weitere Karte mit „Öffnen/Dimmen auf“ mit entsprechender Verzögerung hinzufügen. Dann könnte man sich die zusätzliche Variable sparen.

Danke euch beiden. Manchmal sieht man ja den Wald vor lauter Bäumen nicht mehr. Das mit dem Delay habe ich mir selbst schon überlegt, das wäre wohl die simpelste Lösung. Auch die Semaphore Geschichte wäre wohl zielführend, aber mit Kanonen auf Spatzen geschossen. Der Grund warum alle gleichzeitig aufgehen ist eigentlich nur, weil ich nicht 3 verschiedene Variablen machen wollte. Aber Dank euren Kommentaren werde ich das vermutlich nun doch genau so machen. Vielen Dank für die Inputs :-)!