Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Blockly
  5. Mehrfach Triggern verhindern? (Ohne Verlust)

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    836

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

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

Mehrfach Triggern verhindern? (Ohne Verlust)

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
25 Beiträge 5 Kommentatoren 2.8k Aufrufe 2 Beobachtet
  • Ä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.
  • NewpicselN Newpicsel

    Moin,

    Wer kennt es nicht, Trigger werden ab und an mal mehrfach ausgelöst…
    Einfachste Lösung ist wenn dies stört oft Ein Timeout der direkt vorher gestoppt wird.

    Dies bedeutet aber auch ein Verlust, wenn mehrere Objekte Anliegen und diese "gleichzeitig" auslösen.

    Gibt es eine Möglichkeit mehrfache Auslösung nur durch die selbe ID zu unterbinden?
    Mein erster Gedanke:
    einmalID_2.jpg

    Funktioniert leider nicht, ich vermute das Objekt ist einfach schneller als ich 😒

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #13

    @newpicsel sagte: Funktioniert leider nicht

    Du setzt den Trigger-Datenpunkt auf wahr, auch dann, wenn er schon wahr enthält. Ändere den Trigger auf "ist kleiner als letztes".

    @newpicsel sagte in Mehrfach Triggern verhindern? (Ohne Verlust):

    Ein Timeout

    Es bräuchte zu jedem Datenpunkt einen eigenen Timeout. Da aber die Datenpunkte nicht bekannt sind (RegExp), steht es schlecht um die Umsetzung.

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    NewpicselN 1 Antwort Letzte Antwort
    1
    • HomoranH Homoran

      @newpicsel sagte in Mehrfach Triggern verhindern? (Ohne Verlust):

      Meinst den "Stop timeout",

      nein, ich meine dass ein neuer timeout nur gestartet wird, wenn noch kein timeout läuft.
      Erfüllt wahrscheinlich aber auch nicht deine Kriterien.

      Ich hab aber immer noch nicht verstanden was genau die Erkennung unterschiedlicher Trigger für den Timeout bedeuten sollen.

      Du triggerst auf irgendwelche Netatmo DPs und willst irgend einen state auf wahr setzen, aber nicht wenn der selbe Datenpunkt innerhalb von 3 Sekunden zuschlägt.

      Wenn jetzt aber 2 verschiedene Datenpunkte alternierend im Millisekundentakt feuern, soll geschaltet werden

      NewpicselN Offline
      NewpicselN Offline
      Newpicsel
      schrieb am zuletzt editiert von
      #14

      @homoran said in Mehrfach Triggern verhindern? (Ohne Verlust):

      Du triggerst auf irgendwelche Netatmo DPs und willst irgend einen state auf wahr setzen, aber nicht wenn der selbe Datenpunkt innerhalb von 3 Sekunden zuschlägt.

      Wenn jetzt aber 2 verschiedene Datenpunkte alternierend im Millisekundentakt feuern, soll geschaltet werden

      Exakt 👍
      (Die DPs können von unterschiedlichen Quellen geändert werden, weshalb es durchaus vorkommen kann, dass sich diese Werte nahezu zeitgleich ändern, wobei hier dann tatsächlich nur jeweils die letzte Änderung eines gleichen DPs relevant ist.)

      Den steuere Block hab ich nur als Beispiel eingefügt 😅 da folgen einige abfragen wie (falls mache (falls mache () sonst falls () sonst()) sonst()) 🙈

      HomoranH 1 Antwort Letzte Antwort
      0
      • NewpicselN Newpicsel

        @homoran said in Mehrfach Triggern verhindern? (Ohne Verlust):

        Du triggerst auf irgendwelche Netatmo DPs und willst irgend einen state auf wahr setzen, aber nicht wenn der selbe Datenpunkt innerhalb von 3 Sekunden zuschlägt.

        Wenn jetzt aber 2 verschiedene Datenpunkte alternierend im Millisekundentakt feuern, soll geschaltet werden

        Exakt 👍
        (Die DPs können von unterschiedlichen Quellen geändert werden, weshalb es durchaus vorkommen kann, dass sich diese Werte nahezu zeitgleich ändern, wobei hier dann tatsächlich nur jeweils die letzte Änderung eines gleichen DPs relevant ist.)

        Den steuere Block hab ich nur als Beispiel eingefügt 😅 da folgen einige abfragen wie (falls mache (falls mache () sonst falls () sonst()) sonst()) 🙈

        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von Homoran
        #15

        @newpicsel sagte in Mehrfach Triggern verhindern? (Ohne Verlust):

        nur jeweils die letzte Änderung eines gleichen DPs relevant ist

        wenn ich es jetzt richtig verstanden habe, könnte dann sogar unter 3 Sekunden der selbe DP noch einmal triggern, wenn zwischendurch ein anderer DP getriggert hatte?

        dann würde nicht einmal die Idee von @paul53 helfen für jeden möglichen Datenpunkt ein fixes timeout festzulegen.

        Dann brauchst du im Prinzip gar keinen timeout
        wenn nie derselbe Datenpunkt zweimal ohne Wechsel auslösen darf

        kein Support per PN! - Fragen im Forum stellen -
        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        NewpicselN 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @newpicsel sagte: Funktioniert leider nicht

          Du setzt den Trigger-Datenpunkt auf wahr, auch dann, wenn er schon wahr enthält. Ändere den Trigger auf "ist kleiner als letztes".

          @newpicsel sagte in Mehrfach Triggern verhindern? (Ohne Verlust):

          Ein Timeout

          Es bräuchte zu jedem Datenpunkt einen eigenen Timeout. Da aber die Datenpunkte nicht bekannt sind (RegExp), steht es schlecht um die Umsetzung.

          NewpicselN Offline
          NewpicselN Offline
          Newpicsel
          schrieb am zuletzt editiert von
          #16

          @paul53 said in Mehrfach Triggern verhindern? (Ohne Verlust):

          @newpicsel sagte: Funktioniert leider nicht

          Du setzt den Trigger-Datenpunkt auf wahr, auch dann, wenn er schon wahr enthält. Ändere den Trigger auf "ist kleiner als letztes".

          Der würde dann bei jeder anderen ID auslösen nur nicht bei der gleichen? 🤔
          Interessant!
          Allerdings wie verhält es sich dann, wenn zwischenzeitlich kein anderer DPs den trigger auslöst? Unwahrscheinlich aber nicht unmöglich muss ich zumindest annehmen 😅

          @newpicsel sagte in Mehrfach Triggern verhindern? (Ohne Verlust):

          Ein Timeout

          Es bräuchte zu jedem Datenpunkt einen eigenen Timeout. Da aber die Datenpunkte nicht bekannt sind (RegExp), steht es schlecht um die Umsetzung.

          Deshalb die Überlegung den timeout über eine Funktion zu erstellen, bei der ich die variable frei setzen kann und hier die ObjektID in den Namen der variable einfließen lassen kann… 🤔
          (Nur eine undurchdachte Überlegung)

          1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @newpicsel sagte in Mehrfach Triggern verhindern? (Ohne Verlust):

            nur jeweils die letzte Änderung eines gleichen DPs relevant ist

            wenn ich es jetzt richtig verstanden habe, könnte dann sogar unter 3 Sekunden der selbe DP noch einmal triggern, wenn zwischendurch ein anderer DP getriggert hatte?

            dann würde nicht einmal die Idee von @paul53 helfen für jeden möglichen Datenpunkt ein fixes timeout festzulegen.

            Dann brauchst du im Prinzip gar keinen timeout
            wenn nie derselbe Datenpunkt zweimal ohne Wechsel auslösen darf

            NewpicselN Offline
            NewpicselN Offline
            Newpicsel
            schrieb am zuletzt editiert von
            #17

            @homoran

            Richtig, fixe timeout für jeden DP fällt auch raus, da diese unbekannt sind 🙈 ist etwas komplexer die Geschichte dahinter…

            Aber leider kann es durchaus vorkommen, dass (allerdings nicht relevant unter 3sek) der selbe DP den trigger auslösen könnte.

            HomoranH 1 Antwort Letzte Antwort
            0
            • NewpicselN Newpicsel

              @homoran

              Richtig, fixe timeout für jeden DP fällt auch raus, da diese unbekannt sind 🙈 ist etwas komplexer die Geschichte dahinter…

              Aber leider kann es durchaus vorkommen, dass (allerdings nicht relevant unter 3sek) der selbe DP den trigger auslösen könnte.

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #18

              @newpicsel sagte in Mehrfach Triggern verhindern? (Ohne Verlust):

              Aber leider kann es durchaus vorkommen, dass (allerdings nicht relevant unter 3sek) der selbe DP den trigger auslösen könnte

              können kann er!
              sollen aber wohl nicht.

              aber nach 3 Sekunden ohne anderen triggernden Datenpunkt, darf er wieder?

              Das muss dann in der Logik abgefangen werden.
              im Trigger ist das nicht möglich

              kein Support per PN! - Fragen im Forum stellen -
              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
              Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Antwort Letzte Antwort
              0
              • NewpicselN Newpicsel

                Moin,

                Wer kennt es nicht, Trigger werden ab und an mal mehrfach ausgelöst…
                Einfachste Lösung ist wenn dies stört oft Ein Timeout der direkt vorher gestoppt wird.

                Dies bedeutet aber auch ein Verlust, wenn mehrere Objekte Anliegen und diese "gleichzeitig" auslösen.

                Gibt es eine Möglichkeit mehrfache Auslösung nur durch die selbe ID zu unterbinden?
                Mein erster Gedanke:
                einmalID_2.jpg

                Funktioniert leider nicht, ich vermute das Objekt ist einfach schneller als ich 😒

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #19

                @newpicsel sagte: Trigger werden ab und an mal mehrfach ausgelöst…

                Was sind das für Datenpunkte, die sich so verhalten (kurz aufeinander den Wert ändern)?

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                NewpicselN 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @newpicsel sagte: Trigger werden ab und an mal mehrfach ausgelöst…

                  Was sind das für Datenpunkte, die sich so verhalten (kurz aufeinander den Wert ändern)?

                  NewpicselN Offline
                  NewpicselN Offline
                  Newpicsel
                  schrieb am zuletzt editiert von
                  #20

                  @paul53 said in Mehrfach Triggern verhindern? (Ohne Verlust):

                  Was sind das für Datenpunkte, die sich so verhalten (kurz aufeinander den Wert ändern)?

                  Das sind soll wert DP einer Heizung, diese werden hauptsächlich aus der API aktualisiert, allerdings kann hier jeder seinen Intervall selber einstellen und dann kommen noch manuelle Änderungen aus iobroker hinzu sowie Änderungen von Fenstersensoren.

                  Ich sag mal so, dass funktioniert schon so, nur ist es halt irgendwie auch nicht schön!
                  In der Regel erfolgen Änderungen nicht parallel aber ich kann nicht von der Regel ausgehen, es kann durch eine Intervall Aktualisierung durchaus auch vorkommen, dass sich Aktualisierungen überschneiden, auch gerade weil einige Änderungen eine Aktualisierung beinhalten was im Zweifel wenn es mal hart auf hart kommt, 2-3 sehr kurze Aktualisierungen bedeuten könnte! Ich versuche es natürlich zu unterbinden aber ich rechne eher mit der Ausnahme als mit der Regel…

                  B 1 Antwort Letzte Antwort
                  0
                  • NewpicselN Newpicsel

                    @paul53 said in Mehrfach Triggern verhindern? (Ohne Verlust):

                    Was sind das für Datenpunkte, die sich so verhalten (kurz aufeinander den Wert ändern)?

                    Das sind soll wert DP einer Heizung, diese werden hauptsächlich aus der API aktualisiert, allerdings kann hier jeder seinen Intervall selber einstellen und dann kommen noch manuelle Änderungen aus iobroker hinzu sowie Änderungen von Fenstersensoren.

                    Ich sag mal so, dass funktioniert schon so, nur ist es halt irgendwie auch nicht schön!
                    In der Regel erfolgen Änderungen nicht parallel aber ich kann nicht von der Regel ausgehen, es kann durch eine Intervall Aktualisierung durchaus auch vorkommen, dass sich Aktualisierungen überschneiden, auch gerade weil einige Änderungen eine Aktualisierung beinhalten was im Zweifel wenn es mal hart auf hart kommt, 2-3 sehr kurze Aktualisierungen bedeuten könnte! Ich versuche es natürlich zu unterbinden aber ich rechne eher mit der Ausnahme als mit der Regel…

                    B Offline
                    B Offline
                    Blockmove
                    schrieb am zuletzt editiert von
                    #21

                    @newpicsel

                    Eine Möglichkeit, die ich bei sowas nutze, ist die zyklische Abfrage von Signalen. Also z.B. Temperaturen oder Energieverbrauch im 30s Takt. Macht gegenseitige Abhängigkeiten, Regler, komplexe Logik usw. einfacher.
                    Ist in der Prozesstechnik weit verbreitet.

                    The difference beetween Man and Boys:
                    The price of their toys 😀

                    paul53P HomoranH 2 Antworten Letzte Antwort
                    0
                    • B Blockmove

                      @newpicsel

                      Eine Möglichkeit, die ich bei sowas nutze, ist die zyklische Abfrage von Signalen. Also z.B. Temperaturen oder Energieverbrauch im 30s Takt. Macht gegenseitige Abhängigkeiten, Regler, komplexe Logik usw. einfacher.
                      Ist in der Prozesstechnik weit verbreitet.

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #22

                      @blockmove sagte: zyklische Abfrage von Signalen.

                      Wie wendet man dabei den RegExp an?

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      B 1 Antwort Letzte Antwort
                      0
                      • B Blockmove

                        @newpicsel

                        Eine Möglichkeit, die ich bei sowas nutze, ist die zyklische Abfrage von Signalen. Also z.B. Temperaturen oder Energieverbrauch im 30s Takt. Macht gegenseitige Abhängigkeiten, Regler, komplexe Logik usw. einfacher.
                        Ist in der Prozesstechnik weit verbreitet.

                        HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von
                        #23

                        @blockmove sagte in Mehrfach Triggern verhindern? (Ohne Verlust):

                        Ist in der Prozesstechnik weit verbreitet.

                        da wird auch seltenst eventbasiert mit js gearbeitet.
                        Eine SPS tickt da anders

                        kein Support per PN! - Fragen im Forum stellen -
                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        B 1 Antwort Letzte Antwort
                        1
                        • HomoranH Homoran

                          @blockmove sagte in Mehrfach Triggern verhindern? (Ohne Verlust):

                          Ist in der Prozesstechnik weit verbreitet.

                          da wird auch seltenst eventbasiert mit js gearbeitet.
                          Eine SPS tickt da anders

                          B Offline
                          B Offline
                          Blockmove
                          schrieb am zuletzt editiert von
                          #24

                          @homoran said in Mehrfach Triggern verhindern? (Ohne Verlust):

                          @blockmove sagte in Mehrfach Triggern verhindern? (Ohne Verlust):

                          Ist in der Prozesstechnik weit verbreitet.

                          da wird auch seltenst eventbasiert mit js gearbeitet.
                          Eine SPS tickt da anders

                          Naja auch eine SPS hat Events (Hardware, Zeit, und im Prinzip auch Flanken).
                          Das schöne an ioBroker ist ja, dass ich auch im SPS-Stil Aufgaben lösen kann.
                          Für jede Aufgabe eben das richtige Werkzeug nehmen

                          The difference beetween Man and Boys:
                          The price of their toys 😀

                          1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @blockmove sagte: zyklische Abfrage von Signalen.

                            Wie wendet man dabei den RegExp an?

                            B Offline
                            B Offline
                            Blockmove
                            schrieb am zuletzt editiert von
                            #25

                            @paul53 said in Mehrfach Triggern verhindern? (Ohne Verlust):

                            @blockmove sagte: zyklische Abfrage von Signalen.

                            Wie wendet man dabei den RegExp an?

                            Innerhalb des Intervalls verknüpft man ja anhand der Logik die Werte von getStateAsync und schreibt dann mit setStateAync die Ergebnisse. Wenn das ganze mehrfach identisch passieren sool (z.B. mehrere Räume) dann ist es von Vorteil, wenn die entsprechenden Datenpunkte VOR dem Trigger bekannt sind und z.B. in Arrays oder Objekten vorhanden sind. Diese kann man dann innerhalb des Triggers z.B. mit each oder forEach abarbeiten. Das spart Rechenzeit innerhalb des Intervalls.
                            Die Regular Expressions verwende ich eigentlich nie. Du musst halt schauen, wie du sie auf z.B. GetObject zum Ermitteln der Datenpunkte anwenden kannst.
                            Natürlich ist das komplexer als ein einfaches:

                            on({id: new RegExp("0_userdata.0.Devices\.[a-zA-Z0-9]"), change:"ne"}, function (obj) {
                             tu irgendwas
                            });
                            

                            Vorteil ist, dass ich mehr Kontrolle über den Code-Ablauf habe und Eventkaskaden bei gegenseitiger Beeinflussung von Datenpunkten vermeide. Eben weil die Datenpunkte gar keine Events auslösen.

                            The difference beetween Man and Boys:
                            The price of their toys 😀

                            1 Antwort Letzte Antwort
                            0

                            Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                            Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                            Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                            Registrieren Anmelden
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            428

                            Online

                            32.8k

                            Benutzer

                            82.7k

                            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