Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]Geänderter Wert soll erst nach 2 Minuten wieder ausgewertet werden

    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

    [gelöst]Geänderter Wert soll erst nach 2 Minuten wieder ausgewertet werden

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

      Hallo,

      ich bräuchte mal Eure Hilfe zu einem Blockly Script.

      Ein Helligkeitssensor an einem Node-MCU liefert bei einem bestimmten Helligkeitsschwellenwert "true für hell" und "false für dunkel". Das Problem ist nun, dass der Schwellenwert in einer undefinierbaren Zeit um true und false schwankt. Letztlich soll false eine Lampe schalten. Da aber true und false im Stakkato kommen (es wird ja nicht schlagartig dunkel) und nicht abzusehen ist, wie lange es dauert bis der Wechsel zwischen true und false zum Ende kommt möchte ich nach dem ersten Wechsel von true auf false zwei Minuten warten, bevor das Objekt erneut betrachtet wird. Das bekomme ich aber nicht hin, da ja der Wechsel des Helligkeitsschwellenwertes (true oder false) der Trigger ist. Hat jemand eine Idee, wie das gehen könnte?

      Besten dank für den Input

      Jo

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

        Suche im Forum nach "https://forum.iobroker.net/viewtopic.php?f=21&t=15442&p=162221#p162221".

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

          Hallo Paul, danke für den Hinweis, mir fehlte tatsächlich der richtige Suchbegriff…

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

            Nochmal hallo @Paul,

            mir ist in Deinem Beispiel nicht ganz klar, ob es für meinen Zweck dienlich ist. In dem Beispiel wird ja nur einmal geöffnet, also auch nur einmal getriggert. In meiner Frage ist aber der Trigger der Zustand des Helligkeitswertes, der in einer unbekannten Zeit unbekannte Anzahl von Änderungen von true auf false aufweist. Mit jeder Änderung würde doch das Skript erneut getriggert und abgearbeitet. Es soll ja nur einmal durch den Trigger gestartet in den nächsten zwei Minuten nicht erneut getriggert werden.

            Oder verstehe ich Dein Skript nicht richtig?

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

              @XxJooO:

              Mit jeder Änderung würde doch das Skript erneut getriggert und abgearbeitet. Es soll ja nur einmal durch den Trigger gestartet in den nächsten zwei Minuten nicht erneut getriggert werden. `
              Das mit dem Triggern ist richtig, aber die Aktion auf den Trigger wird nur beim ersten Mal ausgeführt und weitere Aktionen werden während der Entprelldauer gesperrt.

              Per Javascript geht es auch so:

              var timer = null;
              
              on(idTrigger, function(dp) { // triggert bei Wertänderung
                 if(!timer) {
                    // Aktion
                    timer = setTimeout(function() {
                       timer = null;
                    }, 120000); // 2 Minuten
                 }
              });
              
              1 Reply Last reply Reply Quote 0
              • XxJooO
                XxJooO last edited by

                Hallo Paul,

                ich habe keinen Zweifel daran, dass es so funktionieren wird, denn es ist ja erprobt. Werde also versuchen, das in mein Skript einzubauen.

                Aber um es mit JWvG zu sagen: "…allein mir fehlt der Glaube"... oder will sagen, ich würde gerne verstehen, warum es so reagiert und nicht beim nächsten ändern des Wertes vom Objekt erneut getriggert wird.

                Vielen Dank für Deine Erklärung

                Jo

                PS: Beim Einbau in mein Skript hat es mir dann auch eingeleuchtet. Es wird natürlich bei jeder Änderung des Wertes getriggert, arbeitet den dann folgenden Code aber erst dann wieder ab, wenn die Hilfsvariable nach der Zeit zurück gesetzt wurde. Geradezu gruselig einfach...

                Somit gelöst

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

                Support us

                ioBroker
                Community Adapters
                Donate

                910
                Online

                31.9k
                Users

                80.2k
                Topics

                1.3m
                Posts

                2
                6
                482
                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