Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly nach Alarm nicht mehr ausführen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly nach Alarm nicht mehr ausführen

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

      Hallo zusammen,

      ich habe eine Shelly Plug S an einem Gerät hängen. Wenn dort der Strom zwischen 2 Werten liegt, soll ich einen Pushover Alarm bekommen. Soweit klappt das auch mit diesem Skript:

      ab2e2fe6-391f-4b2e-8bf4-12efac2c5f13-image.png

      Das Problem ist allerdings, dass er den Alarm immer wieder rausschickt, sobald sich der Wert innerhalb des Bereichs ändert. Ich möchte aber dass er nur EINMAL alarmiert und dann erst wieder wenn der Wert einmal AUßERHALB des "Fehler-Bereichs" war und dann wieder IN den Bereich wandert. Außerdem hätte ich noch gerne eine Verzögerung nach der Prüfung um false positive auszuschließen.

      Beipspiel: Normalstrom sind 14-16 Watt AN und 0 Watt AUS. Besteht mein "Fehler", zieht das Gerät ca 7 Watt.
      Wenn nun also der Wert auf 7 Watt steht, hätte ich gerne EINMAL eine Nachricht. Dann behebe ich den Fehler, Wert geht auf 0 oder 14-16 Watt (je nachdem ob an oder aus). Und dann soll er bim nächsten mal wenn er bei 7 Watt ist wieder alarmiert werden.
      Und die Verzögerung bei der Prüfung hätte ich gerne, dass ich nicht beim normalen Ausschalten, wenn der Wert mal kurz im Bereich liegt direkt ein Alarm kommt.

      Ich hoffe ich hab das soweit verständlich ausgedrückt. 🙂 Geht das so wie ich mir das vorstelle?

      Gruß

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

        @chesterb sagte: nur EINMAL alarmiert und dann erst wieder wenn der Wert einmal AUßERHALB des "Fehler-Bereichs" war und dann wieder IN den Bereich wandert.

        Versuche es mal so:

        Bild_2021-10-09_140001.png

        Anmerkung: Man muss erst eine dummy-Variable erstellen, um an die Timer-Variable timeout zu gelangen.

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

          @paul53 Besten dank, werde ich testen!

          Asgothian 1 Reply Last reply Reply Quote 0
          • Asgothian
            Asgothian Developer @chesterb last edited by Asgothian

            @chesterb damit wirst du maximal einmal pro “timeout” eine Meldung bekommen - die erste erst wenn “timeout” um ist - bei dem Beispiel also Max. eine Meldung alle 1000 ms.

            Ich würde Folgendes tun:

            Einen Trigger auf wurde geändert.

            Darin ein falls “wert” < Grenzwert und “vorheriger Wert >= Grenzwert => ein timeout, darin dann die Nachricht.
            Mit einem sonst falls wert >= Grenzwert stop timeout.

            Die Bausteine “wert” und “vorheriger Wert” sind der gleiche Baustein unterschiedlich eingestellt.

            (Hab leider kein Zugriff auf Blockly)

            Damit wird der timeout nur aktiv wenn der Wert unter den Grenzwert fällt. Unterhalb des Grenzwertes kann der Wert machen was er will, es gibt erst dann eine 2. Meldung wenn er wieder über den Grenzwert geklettert ist.

            A.

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

              @asgothian sagte: damit wirst du maximal einmal pro “timeout” eine Meldung bekommen

              Solange der Wert im Bereich zwischen 5 und 10 schwankt, kommt keine weitere Meldung, denn weitere Meldungen werden durch "sonst falls nicht timeout" verhindert. Die Timer-Variable timeout wird erst durch "stop timeout" auf null zurück gesetzt.

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

                @paul53 meines Wissens wird die timeout Variable auch bei ausführen des timeout auf null bzw. Undefined gesetzt.

                A.

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

                  @asgothian sagte: meines Wissens wird die timeout Variable auch bei ausführen des timeout auf null bzw. Undefined gesetzt.

                  Teste es.

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  654
                  Online

                  32.0k
                  Users

                  80.5k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  649
                  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