Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly: Trigger - Ausschalten, aber keine Ausschaltverzögerung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly: Trigger - Ausschalten, aber keine Ausschaltverzögerung

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      wollik last edited by

      Hi.

      Seit Tagen hänge ich über ein Phänomen, das ich mir endlich erklären - aber nicht lösen - konnte:

      Ich habe in VIS Schalter, womit ich SONOFF Steckdosen aktiveren kann. Daran hängen Lampen und Kameras. Da wir gelegentlich vergessen die Schalter auch wieder auszuschalten, wollte ich einen Ausschalttrigger setzen: Die Lampen sollen nach 10 Minuten und die Kameras nach 60 Minuten automatisch ausgeschaltet werden.

      Merkwürdigerweise wird der Schalter in der gleichen Zeitspanne <u>nach dem Ausschalten</u> durch den Trigger blockiert.

      Beispiel: Die Kameras wurden durch uns angeschaltet. Nach 60 Minuten stellt der Trigger die Kameras aus. In den folgenden 60 Minuten werden die Kameras bei Aktivierung durch uns umgehend ausgeschaltet. Nach den 60 Minuten funktioniert der Ausschaltmechanismus wieder normal. Auf der SONOFF Tomasoto Konsole sehe ich alle 5 Minuten in den ersten 60 Minuten nach der Triggerausschaltung mit dem IOBroker "Lookup" ein OFF Befehl vom IOBroker.

      Wo ist in meinem Blockly Skript der Denkfehler? Schön wäre auch ein "Nachtriggern", wenn in den 60 Minuten mal die Kameras aus- und wieder eingeschaltet wurden…

      Danke im Voraus.

      5839_ausschalttrigger-blockly.jpg

      1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer last edited by

        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.

        1 Reply Last reply Reply Quote 0
        • W
          wollik last edited by

          @AlCalzone:

          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.

          1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer last edited by

            Dann hat dieser "Lookup" vermutlich eine Aktualisierung des States zur Folge, was meine Theorie bestätigt.

            1 Reply Last reply Reply Quote 0
            • W
              wollik last edited by

              @AlCalzone:

              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?

              1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer last edited by

                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.

                1 Reply Last reply Reply Quote 0
                • W
                  wollik last edited by

                  @AlCalzone:

                  …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".

                  1 Reply Last reply Reply Quote 0
                  • AlCalzone
                    AlCalzone Developer last edited by

                    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.

                    1 Reply Last reply Reply Quote 0
                    • W
                      wollik last edited by

                      @AlCalzone:

                      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 😉

                      1 Reply Last reply Reply Quote 0
                      • AlCalzone
                        AlCalzone Developer last edited by

                        @wollik:

                        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"

                        1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 last edited by

                          Versuche mal anstelle "ist wahr" mit "ist größer als letztes" zu triggern.

                          1 Reply Last reply Reply Quote 0
                          • W
                            wollik last edited by

                            Hallo Ihr beiden.

                            Danke für den schnellen Support :!:

                            @paul53:

                            Versuche mal anstelle "ist wahr" mit "ist größer als letztes" zu triggern. `

                            @AlCalzone:

                            > 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…
                            5839_ausschalttrigger-blockly2.jpg

                            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 🙂

                            5839_ausschalttrigger-blockly3.jpg

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            622
                            Online

                            31.9k
                            Users

                            80.2k
                            Topics

                            1.3m
                            Posts

                            3
                            12
                            2401
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo