NEWS
Blockly: Trigger - Ausschalten, aber keine Ausschaltverzögerung
-
Ich vermute die Steckdose sendet regelmäßig Statusupdates, während sie angeschaltet ist (alle 5 Minuten?). Jedes dieser Updates startet einen weiteren Trigger, der 60 Min später die Steckdose ausschaltet.
Du solltest deinen Trigger ändern, dass er
1. nur auf anerkannt = wahr reagiert (also wenn die Steckdose wirklich an ist und nicht wenn der Befehl kam)
2. nur reagiert, wenn der Wert sich geändert hat (also beim Umschalten von aus zu an) und wahr ist.
Wie genau 2. in Blockly am einfachsten geht, weiß ich gerade nicht. Eventuell gibts nen erweiterten Trigger-Block.
-
Ich vermute die Steckdose sendet regelmäßig Statusupdates, während sie angeschaltet ist (alle 5 Minuten?). Jedes dieser Updates startet einen weiteren Trigger, der 60 Min später die Steckdose ausschaltet. `
Ne, dieser "Lookup" geschieht immer alle 5 Minuten.
Habe mal das SONOFF Logfile angehangen:
-
Lookup zu jeder 2:21 und 7:21 Minute (gelegentlich plus 1 Sekunde)
-
einmal Licht anschalten um 09:49:21
-
nach 10 Minuten wird es durch den Trigger 2x ausgeschaltet um 09:59:21
-
danach kommen in den folgenden 10 Minuten zu jedem Lookup weiterhin ein OFF Befehl
-
20 Minuten nach dem Anschalten kommt mit dem Lookup um 10:12:23 kein OFF Befehl mehr
09:42:21 MQT: tele/sonoff/STATE = {"Time":"2018.05.25 09:42:21","Uptime":17,"Vcc":3.469,"POWER":"OFF","Wifi":{"AP":1,"SSId":"xxx","RSSI":100,"APMac":"80:2A::::"}} 09:47:21 MQT: tele/sonoff/STATE = {"Time":"2018.05.25 09:47:21","Uptime":17,"Vcc":3.469,"POWER":"OFF","Wifi":{"AP":1,"SSId":"xxx","RSSI":98,"APMac":"80:2A::::"}} 09:49:21 MQT: stat/sonoff/RESULT = {"POWER":"ON"} 09:49:21 MQT: stat/sonoff/POWER = ON 09:52:22 MQT: tele/sonoff/STATE = {"Time":"2018.05.25 09:52:22","Uptime":17,"Vcc":3.466,"POWER":"ON","Wifi":{"AP":1,"SSId":"xxx","RSSI":100,"APMac":"80:2A::::"}} 09:57:22 MQT: tele/sonoff/STATE = {"Time":"2018.05.25 09:57:22","Uptime":17,"Vcc":3.471,"POWER":"ON","Wifi":{"AP":1,"SSId":"xxx","RSSI":100,"APMac":"80:2A::::"}} 09:59:21 MQT: stat/sonoff/RESULT = {"POWER":"OFF"} 09:59:21 MQT: stat/sonoff/POWER = OFF 09:59:21 MQT: stat/sonoff/RESULT = {"POWER":"OFF"} 09:59:21 MQT: stat/sonoff/POWER = OFF 10:02:00 MQT: tele/sonoff/UPTIME = {"Time":"2018.05.25 10:02:00","Uptime":18} 10:02:23 MQT: tele/sonoff/STATE = {"Time":"2018.05.25 10:02:23","Uptime":18,"Vcc":3.468,"POWER":"OFF","Wifi":{"AP":1,"SSId":"xxx","RSSI":98,"APMac":"80:2A::::"}} 10:02:23 MQT: stat/sonoff/RESULT = {"POWER":"OFF"} 10:02:23 MQT: stat/sonoff/POWER = OFF 10:07:23 MQT: tele/sonoff/STATE = {"Time":"2018.05.25 10:07:23","Uptime":18,"Vcc":3.466,"POWER":"OFF","Wifi":{"AP":1,"SSId":"xxx","RSSI":92,"APMac":"80:2A::::"}} 10:07:23 MQT: stat/sonoff/RESULT = {"POWER":"OFF"} 10:07:23 MQT: stat/sonoff/POWER = OFF 10:12:23 MQT: tele/sonoff/STATE = {"Time":"2018.05.25 10:12:23","Uptime":18,"Vcc":3.468,"POWER":"OFF","Wifi":{"AP":1,"SSId":"xxx","RSSI":96,"APMac":"80:2A::::"}} 10:17:23 MQT: tele/sonoff/STATE = {"Time":"2018.05.25 10:17:23","Uptime":18,"Vcc":3.468,"POWER":"OFF","Wifi":{"AP":1,"SSId":"xxx","RSSI":96,"APMac":"80:2A::::"}}
Deine Tipps werde ich nachher zuhause testen. Danke.
-
-
Dann hat dieser "Lookup" vermutlich eine Aktualisierung des States zur Folge, was meine Theorie bestätigt.
-
Dann hat dieser "Lookup" vermutlich eine Aktualisierung des States zur Folge, was meine Theorie bestätigt. `
Wenn ich Dich richtig verstehe, siehst Du einen Re-Trigger durch das Lookup. Nur, warum endet es dann nach der eingetragenen Verzögerung? Eigentlich müsste es sich dann unendlich wiederholen. Oder nicht?
-
Nein, du triggerst ja auf Power = wahr. Nach 60 Minuten wird abgeschaltet, d.h. ab da wird kein neuer Timeout erstellt. Dann werden allerdings noch die zuvor erstellten Timeouts ausgeführt, d.h. 11 oder 12x sollte alle 5 Minuten ein Abschaltbefehl kommen. Nach insgesamt 120 Minuten sind alle Timeouts fertig, d.h. dann bist du wieder im Ausgangszustand angekommen.
-
…Dann werden allerdings noch die zuvor erstellten Timeouts ausgeführt, d.h. 11 oder 12x sollte alle 5 Minuten ein Abschaltbefehl kommen... `
Puuuh, Du hast sowas von Recht :!:
Mist, das habe ich nicht bedacht…
Wie ändere ich meinen Trigger, dass er nur auf anerkannt = wahr reagiert? Zur Auswahl gibt es nur "egal", "Update" und "Befehl".
-
Das müsste "Update" (=Bestätigung vom Gerät) sein. Das wichtigste ist aber dass du nur auf Änderung Power = falsch => wahr triggerst.
Dürfte mit diesem Block
https://github.com/ioBroker/ioBroker.ja … ate-change
gehen und einer darin geschachtelten Abfrage ob der Wert true ist.
-
Das müsste "Update" (=Bestätigung vom Gerät) sein. Das wichtigste ist aber dass du nur auf Änderung Power = falsch => wahr triggerst. `
Allein das Ändern auf Update hat noch keine Änderung gebracht. Nun schaue ich mir Deinen github Link an. Wobei ich von Hand nach "Trigger on state change" suchen musste - der Link selber hat mich wo ganz anders auf die Seite gebracht
-
Allein das Ändern auf Update hat noch keine Änderung gebracht. `
Richtig, das schließt nur einen einzigen Trigger aus, wenn du manuell der Steckdose befiehlst, anzugehen.
Wenn das dann mal läuft, kannst du dieses Problem auch lösen:
> Schön wäre auch ein "Nachtriggern", wenn in den 60 Minuten mal die Kameras aus- und wieder eingeschaltet wurden…
=> Stichpunkt "löschen falls läuft" -
Versuche mal anstelle "ist wahr" mit "ist größer als letztes" zu triggern.
-
Hallo Ihr beiden.
Danke für den schnellen Support :!:
Versuche mal anstelle "ist wahr" mit "ist größer als letztes" zu triggern. `
> Schön wäre auch ein "Nachtriggern", wenn in den 60 Minuten mal die Kameras aus- und wieder eingeschaltet wurden…
=> Stichpunkt "löschen falls läuft" `Habe nun beides eingebaut. Mal gucken, wie das Ergebnis gleich ausfällt…
1. Update: "Update" führt weiterhin, das gar nicht mehr abgeschaltet wird. Habe wieder auf "egal" gestellt.
2. Update: Nun scheint es korrekt zu funktionieren. Danke