Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Blocky] Trigger only one time

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Blocky] Trigger only one time

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

      Hallo ldittmar

      Ein Trigger überwacht Zustände und reagiert auf deren Änderung.

      Das macht er immer. Sonst wäre es kein Trigger.

      Wenn ein Trigger seine Aktionen nur einmalig ausführen soll setzt man am besten ein Flag.

      Trigger in Trigger machen KEINEN Sinn.
      147_beispiel.png

      Grüße

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

        @rantanplan:

        Trigger in Trigger machen KEINEN Sinn. `
        Hi Ratanplan,

        natürlich machen Trigger im Trigger Sinn! Folgendes Beispiel:

        Trigger: Warte bis Alarmknopf gedrückt wurde

        Starte zweiten Trigger: Wenn Haustür geschlossen wurde, setze Alarm auf scharf

        Jetzt MUSS der zweite Trigger ja beendet werden, wenn ich will ja nicht dass der Alarm immer schaft gestellt wird, wenn die Tür zu geht.

        Noch ein Beispiel:

        Trigger: Nachruhe Knopf wurde gedrückt

        Starte zweiten Trigger: Wenn das Lich im Schlafzimmer ausgeschaltet wird, dann beginnt die Nachtruhe

        Auch hier muss der zweite Trigger gestoppt werden.

        Beispiel im Garten:

        Trigger: Starte Rasensprenger im Garten um 22 Uhr wenn Terassentür zu ist (also niemand sich im Garten befindet). Sollte die Tür offen sein:

        Starte zweiten Trigger: Warte bis die Terrassentür geschlossen wurde und starte dann den Rasensprenger.

        Hier muss ebenfalls den zweiten Trigger beendet werden.

        Grüße,

        ldittmar

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

          Was ldittmar vorhat ist gar nicht so abwegig. In reinem JS gibt es subscribe und unsubscribe, um Trigger zu aktivieren und (z.B. nach dem Auslösen) wieder zu entfernen.

          So etwas als Reaktion auf einen weiteren Trigger auszuführen (also geschachtelt) ist IMO legitim. Dabei sollte aber darauf geachtet werden, dass der Trigger nicht schon aktiv ist (z.b. bei zweimaligem Auslösen des äußeren Triggers).

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

            Also… hier das Ganze mal als JS mit 3 Triggern: (Kurzfassung vom dem was ich zuhause nutze)

            var setAlarmOn, setAlarmOff;
            
            on({id: "amazon-dash.0.ac-63-be-09-fc-15.pressed"/*Alarmanlage einschalten*/, change: "ne"}, function (obj){
                console.log('Alarmanlage Knopf gedrückt!');
                setAlarmOn = on({id: "hm-rpc.0.MEQ0031988.1.STATE"/*EG_Haustuer_Sensor.STATE*/, change: "ne"}, function (obj2){
                    if (obj2.state.val == false) {
                        unsubscribe(setAlarmOn);
                        console.log('Alaranlage scharf geschaltet.');
                        setTimeout(function () {
                            setAlarmOff = on({id: "hm-rpc.0.MEQ0031988.1.STATE"/*EG_Haustuer_Sensor.STATE*/, change: "ne"}, 
                            function (obj3){
                                if (obj3.state.val == false) {
                                    console.log('Alarmanlage aus');
                                    unsubscribe(setAlarmOff);
                                }
                            });
                        }, 3000);
                    }
                });
            });
            
            
            1 Reply Last reply Reply Quote 0
            • Dutchman
              Dutchman Developer Most Active Administrators last edited by

              @AlCalzone:

              Was ldittmar vorhat ist gar nicht so abwegig. In reinem JS gibt es subscribe und unsubscribe, um Trigger zu aktivieren und (z.B. nach dem Auslösen) wieder zu entfernen.

              So etwas als Reaktion auf einen weiteren Trigger auszuführen (also geschachtelt) ist IMO legitim. Dabei sollte aber darauf geachtet werden, dass der Trigger nicht schon aktiv ist (z.b. bei zweimaligem Auslösen des äußeren Triggers). `

              was waere der unterschied zwischen dieser loesung und einer if abfrage ? Trigger immer aber ausfuerhung nur wen IF (value check) = true ?

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

                @AlCalzone:

                Dabei sollte aber darauf geachtet werden, dass der Trigger nicht schon aktiv ist (z.b. bei zweimaligem Auslösen des äußeren Triggers). `
                Deshalb bleibe ich bei meiner Aussage. 😉

                Viel zu umständlich, gefährlich und unübersichtlich. Fehlersuche ohne einen richtigen Debugger so gut wie unmöglich.

                Grüße

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

                  @Dutchman:

                  was waere der unterschied zwischen dieser loesung und einer if abfrage ? Trigger immer aber ausfuerhung nur wen IF (value check) = true ? `

                  Danke Dutchman.

                  Mein reden.

                  Grüße

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

                    @Dutchman:

                    was waere der unterschied zwischen dieser loesung und einer if abfrage ? Trigger immer aber ausfuerhung nur wen IF (value check) = true ? `
                    Ohne bewerten zu wollen:

                    Die Logik wird anders abgebildet. Bei komplexeren Logiken kann es übersichtlicher sein, wenn zusammen bleibt was zusammen gehört.

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

                      @AlCalzone:

                      Ohne bewerten zu wollen:

                      Die Logik wird anders abgebildet. Bei komplexeren Logiken kann es übersichtlicher sein, wenn zusammen bleibt was zusammen gehört. `
                      Da bin ich bei Dir!

                      Muss man aber nicht über aktivierte/nicht aktivierte Trigger lösen 😉

                      Ich bin bei dem Thema raus.

                      Liebe Grüße

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

                        Mein Gedanke ist: warum soll ein Trigger 24 Stunden aktiv sein, wenn er z.B. nur einmal am Tag gebraucht wird? Ich halte mein Speicher gerne sauber. 😉

                        Grüße,

                        ldittmar

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        842
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        4
                        11
                        3211
                        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