NEWS
[Gelöst] Aktion wenn: Wert hat sich geändert und ist X Minuten im Zustand geblieben
-
Wie kann ich nach einer ON Subscription auf das Ändern eines Wertes prüfen, ob der Wert eine Minute lang diesen Wert behalten hat? Aktuell prüfe ich auf die Änderung, warte dann einen Timeout ab und prüfe anschließend nochmal. Gibt es hierfür eine elegantere Lösung (wenn es geht in Blockly)? Falls der Wert sich in der Zwischenzeit mehrach ändert und nach 1 Minute zufällig während des Flappens wieder in dem besagten Zustand ist, hätte meine Methode die zwischenzeitlichen Änderungen nicht mitbekommen und würde trotzdem die jeweilige Aktion ausführen.
Ich hoffe ihr versteht was ich meine.
2 Praxisbeispiele:
1. Ich führe etwas aus, wenn ich nach Hause komme. (Presenceerkennung über Fritbox) Jedoch flappt das manchmal, wenn ich durch den Hausflur gehe und dann komme ich quasi mehrfach an und die Aktion wird mehrfach ausgeführt. Das soll vermieden werden.
2. Ich prüfe wie lange der Mi Staubsauer nicht gefahren ist. Falls der Staubsauger nur kurz gestartet wird (bspw. meine Tochter drückt aus Spaß auf den Knopf und ich breche das kurz danach wieder ab), soll der Zähler nicht gleich zurückgesetzt werden, da er ja die Wohnung nicht gesaugt hat. Er soll nur zurückgesetzt werden, wenn er 1 Minute später immer noch am fahren ist. (siehe Blockly Bild)
EDIT: Es ginge natürlich eine Schleife die 60 Mal jede Sekunde den Wert prüft, aber wie schon gesagt: Gibt es da nichts eleganteres? Eine Timeout Option in der ON Subscription?
-
Wenn du an deinem "falls"-Block oben links auf das Zahnrad klickst und einen "sonst"-Block anfügst kannst du in dem "sonst"-Block das Timeout wieder stoppen und somit verhindern, dass eine Aktion ausgeführt wird.
-
Wenn du an deinem "falls"-Block oben links auf das Zahnrad klickst und einen "sonst"-Block anfügst kannst du in dem "sonst"-Block das Timeout wieder stoppen und somit verhindern, dass eine Aktion ausgeführt wird. `
Danke, das wars!