Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Wie verhindern, dass ein trigger mehrfacht feuert?

    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

    Wie verhindern, dass ein trigger mehrfacht feuert?

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

      @padrino sagte:

      externen Skript die absolute Luftfeuchtigkeit berechne

      Dann ist das der zuletzt erzeugte Wert, also sollte darauf getriggert werden.

      1 Reply Last reply Reply Quote 1
      • paul53
        paul53 @padrino last edited by

        @padrino sagte:

        rflink.0.channels.

        Versuche es mal mit diesem RegExp:

        ^rflink\.0\.channels\..+\.ABS$
        
        1 Reply Last reply Reply Quote 0
        • padrino
          padrino Most Active last edited by padrino

          @OliverIO
          Ich erzeuge den Trigger für beide Werte, da sich ja jeder für sich ändern kann, aber nicht zwingend immer beide sich ändern, aber wenn sich nur einer ändert, dann hat das ja Einfluss auf die absolute LF. 🙂
          Ne, sind keine super komplizierten Berechnungen, also die Formeln schon irgendwie, aber nicht, dass da Raketenwissenschaft betrieben wird. 😉

          @paul53
          Stimmt! Ich könnte natürlich auf .ABS triggern, aber ich hätte gedacht, das würde auch dann mehrfach greifen... wie gesagt, hätte, denn wie sich herausstellt (für mich setsameweise) triggert ein

          (rflink.0.channels.*.HUM|rflink.0.channels.*.TEMP)
          

          seltener als ein

          (rflink.0.channels.Auriol_V3_1|Baldr_1|F007_TH_1|Firstline_1.HUM|rflink.0.channels.Auriol_V3_1|Baldr_1|F007_TH_1|Firstline_1.TEMP)
          

          (die einzelne Auflistung hatte ich nur vorgenommen, da ich Geräte ausnehmen wollte, was aber evtl. gar nicht nötig ist)

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

            @padrino sagte:

            seltener als ein

            Der triggert auch nur die Datenpunkte .TEMP und .HUM, während der andere auf alle Datenpunkte eines Kanales triggert.

            @padrino sagte in Wie verhindern, dass ein trigger mehrfacht feuert?:

            aber ich hätte gedacht, das würde auch dann mehrfach greifen

            Nur, wenn sich Temperatur und rH gleichzeitig ändern, wobei man das im Skript mit der Berechnung der abs. Feuchte verhindern kann.

            1 Reply Last reply Reply Quote 0
            • E
              el_malto @padrino last edited by el_malto

              @padrino So ganz check ich nicht was dein Trigger macht (keine Ahnung von RegExp oder sowas).
              Aber bedeutet das, dass dein trigger quasi innerhalb von 1 sec. mehrfach triggert weil sich merhere Werte in RegExp innerhalb weniger ms ändern und der trigger das immer merkt?
              Wenn ich das so richtig verstanden habe, kannst du das ja mit einen "Entpreller" sperren.
              Hier ein Beispiel von meiner Klingel.
              Bild Text
              Mein Magnetkontakt merkt das sich das Magnetfeld in der Spule von meiner Klingel beim klingeln gefühlt 1000 mal in der Sekunde ändert und dann würde ich z.B. 1000 Meldungen bekommen das es geklingelt hat. Mit dem "Entpreller" wird der Trigger erst wieder nach 10 Sekunden "freigeschaltet".

              1 Reply Last reply Reply Quote 1
              • paul53
                paul53 @padrino last edited by

                @padrino sagte:

                Gibt es eine Möglichkeit, wie ich eine solche "Mehrfachabarbeitung" verhindern kann?

                Ja, vor das Ausführen timeout in 300 ms ein stop timeout setzen.

                1 Reply Last reply Reply Quote 1
                • madjack84
                  madjack84 @padrino last edited by

                  @padrino du hast das Skript aber nicht unter "global" oder? das hatte ich mal und hab mich gewundert warum die Dinger öfter ausgelöst werden...

                  1 Reply Last reply Reply Quote 1
                  • padrino
                    padrino Most Active last edited by

                    @el_malto & @paul53
                    Das mit dem "Entpreller" bzw. timeout/stop muss ich mir mal anschauen. Danke!

                    @paul53
                    Hmm, kannst Du mir das mit der RegExp (einfach 😇 ) erklären?
                    Wieso ist das mit den Pipes nicht einfach "oder" (also a|b) sondern der ganze "Kanal" und bei "*" an der Stelle nicht?

                    @madjack84
                    Ne, den Fehler mit "global" hab ich nur einmal gaaaanz am Anfang gemacht, da lief dann aber gar kein Skript. Seither nutze ich immer "common". 😃

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

                      @padrino sagte:

                      Wieso ist das mit den Pipes nicht einfach "oder"

                      Das ist es, aber da spielt die Klammer (Capturing Group) eine große Rolle. Was Du möchtest, sollte etwa so aussehen:

                      ^rflink\.0\.channels\.(Auriol_V3_1|Baldr_1|F007_TH_1|Firstline_1)\.(HUM|TEMP)$
                      

                      regex101.com:
                      RegExp_Gruppen.JPG

                      1 Reply Last reply Reply Quote 1
                      • padrino
                        padrino Most Active last edited by

                        Hmm, dachte, das hätte ich mal so gehabt, hat nicht geklappt, daher der Versuch mit dem "oder" und dem ganzen Ausdruck zweimal... 🤔
                        Muss ich mir mal nochmal anschauen, vielleicht hatte ich ja die Klammern doch irgendwie vermurkst. 🙄

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        973
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        5
                        12
                        1731
                        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