Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Blocky] Trigger only one time

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    826

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[Blocky] Trigger only one time

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
11 Beiträge 4 Kommentatoren 3.3k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • rantanplanR Online
    rantanplanR Online
    rantanplan
    schrieb am zuletzt editiert von
    #2

    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

    Rantanplan

    CCU3 / MS Server 2019(VM) / Scripten mit Blockly

    1 Antwort Letzte Antwort
    0
    • ldittmarL Offline
      ldittmarL Offline
      ldittmar
      Developer
      schrieb am zuletzt editiert von
      #3

      @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 Antwort Letzte Antwort
      0
      • AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        schrieb am zuletzt editiert von
        #4

        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).

        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

        1 Antwort Letzte Antwort
        0
        • ldittmarL Offline
          ldittmarL Offline
          ldittmar
          Developer
          schrieb am zuletzt editiert von
          #5

          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 Antwort Letzte Antwort
          0
          • DutchmanD Offline
            DutchmanD Offline
            Dutchman
            Developer Most Active Administrators
            schrieb am zuletzt editiert von
            #6

            @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 Antwort Letzte Antwort
            0
            • rantanplanR Online
              rantanplanR Online
              rantanplan
              schrieb am zuletzt editiert von
              #7

              @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

              Rantanplan

              CCU3 / MS Server 2019(VM) / Scripten mit Blockly

              1 Antwort Letzte Antwort
              0
              • rantanplanR Online
                rantanplanR Online
                rantanplan
                schrieb am zuletzt editiert von
                #8

                @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

                Rantanplan

                CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                1 Antwort Letzte Antwort
                0
                • AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  schrieb am zuletzt editiert von
                  #9

                  @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.

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  1 Antwort Letzte Antwort
                  0
                  • rantanplanR Online
                    rantanplanR Online
                    rantanplan
                    schrieb am zuletzt editiert von
                    #10

                    @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

                    Rantanplan

                    CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                    1 Antwort Letzte Antwort
                    0
                    • ldittmarL Offline
                      ldittmarL Offline
                      ldittmar
                      Developer
                      schrieb am zuletzt editiert von
                      #11

                      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 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      329

                      Online

                      32.6k

                      Benutzer

                      82.1k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe