NEWS
2 unterschiedliche Trigger sollen gleiche Routine starten
-
Hallo zusammen
Ich habe zwischenzeitlich schon viele coole und nützliche Scripts mit Blockly realisiert. Aktuell habe ich folgendes Skript realisiert:
Wenn ich ins Schlafzimmer gehe und die Nachttischlampe und die Stehlampe anschalte und eine gewisse Uhrzeit bereits überschritten ist, wird die Sonos-Boxe mit Schlafmusik gestartet, ein Timer gestellt und nach einer gewissen Zeit alle über eine Variable als "schlafend" markiert, damit die Alarmanlage aktiv wird.
Soweit funktioniert alles. Ich musste aber einen kleinen Umweg machen, den ich unschön finde und bei dem ihr mir sicherlich einen besseren Weg aufzeigen könnt.
Ich möchte nämlich die Schlafroutine nur starten, wenn beide Lampen brennen. Ich habe deshalb als Trigger die Lampe A genommen und wenn die angeschaltet wird prüft das Skript, ob die Lampe B auch brennt. In der Realität brennt die Lampe B dann auch schon, aber leider gibt's eine zeitliche Verzögerung, bis iobroker den Status der Lampe aktualisiert, weshalb das Skript immer meint, die Lampe würde nicht brennen.
Tja, ich habe nun eine pragmatische Variante gewählt und den ganzen Codeblock kopiert und prüfe deshalb auch, ob Lampe B angestellt wurde und wenn ja, ob die Lampe A auch an ist.
Ich bin nun aber sicher, das geht viel einfacher, als die Blöcke zu duplizieren. Ich würde eigentlich gerne die zwei Trigger-Abfolgen lassen und dann am Ende der Trigger einfach sagen, dass er die Routine XY ausführen soll, anstelle alles zu duplizieren. Geht das irgendwie?
Danke für eure Hilfe!!
-
@danielos Du könntest doch einfach eine Pause einfügen
dann sollte doch genügend Zeit sein, dass der iobroker den Status der 2. Lampe aktualisiert hat.
-
@danielos Der "pragmatische" Weg ist:
Man baue sich mit Blockly eine Funktion mit dem obersten Baustein des folgenden Screenshot.
Diese kann man dann mit dem dazu gehörigen letzten Baustein aufrufen. Auch mehrmals aus mehreren Triggern
-
@asgothian Herzlichen Dank, genau das habe ich gesucht!! Ich habe mir unter "Funktion" etwas ganz anderes vorgestellt. Aber es ist genau das, was ich eigentlich gesucht habe. Danke vielmals!