Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly Wert schreiben mit Verzögerung

    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

    Blockly Wert schreiben mit Verzögerung

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

      Hallo zusammen,

      Ich habe mir eine Regensensor gebaut, und möchte nun die Werte in einen Datenpunkt schreiben.

      Soweit funktioniert der Sensor zuverlässig und meldet mir folgenden Status:

      Wenn es regnet, liegt die Spannung bei 0 Volt, wenn er trocken ist, liefert er 10,6 Volt.

      Mein Datenpunkt lautet "rain" und soll entweder "True" oder "false" sein.

      Das ist mein dazugehöriges Blockly.

      var timeout;
      
      
      on({ id: 'shelly.0.SHUNI-1#C8C9A31B3CCD#1.ADC.Power' /* Power Measurement */, change: 'ne' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        if ((obj.state ? obj.state.val : '') < 5) {
          (() => { if (timeout) { clearTimeout(timeout); timeout = null; }})();
          setState('0_userdata.0.Regensensor.rain' /* rain */, true, true);
        } else {
          timeout = setTimeout(async () => {
            timeout = null;
            setState('0_userdata.0.Regensensor.rain' /* rain */, false, true);
          }, 1800000);
        }
      });
      

      301f0a8a-9b07-4c00-9d20-31ee84e165a6-grafik.png

      Die Verzögerung soll dazu dienen, das er nicht direkt wieder auf "false" springt, wenn der Regen mal für ein paar Minuten unterbrochen ist.

      Das Problem ist, das wenn der Sensor abgetrocknet ist und innerhalb der 30 Min neuer Regen beginnt, meldet das Blockly trotzdem "false" nach 30 Minuten.

      Wo liegt mein Fehler?

      N Codierknecht 2 Replies Last reply Reply Quote 0
      • N
        Nordischerjung @Feinfinger last edited by

        @feinfinger Moin,

        bau doch mal ein Debug mit dem "Wert" ein, dann siehst du wann und mit welchem Wert er schaltet
        zB
        c6d53c2e-3440-420d-9d42-b546d837f6fb-image.png

        1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @Feinfinger last edited by

          @feinfinger sagte in Blockly Wert schreiben mit Verzögerung:

          Wo liegt mein Fehler?

          Du stoppst den Timeout nur 1x, wenn der Wert unter 5V liegt.
          Pendelt er um Werte >= 5V, startest Du mehrere Timer. Einer davon feuert dann und liefert die Meldung.

          Du darfst den Timeout nur 1x starten. Nämlich dann, wenn der Wert das erste Mal von < 5 auf >= 5 wechselt.

          34620822-8179-4d59-881b-e8b75907179c-image.png

          F 1 Reply Last reply Reply Quote 0
          • F
            Feinfinger @Codierknecht last edited by

            @codierknecht

            Also so?

            4c73c77b-ca6b-4979-a773-4eca26996088-grafik.png

            Codierknecht 1 Reply Last reply Reply Quote 0
            • Codierknecht
              Codierknecht Developer Most Active @Feinfinger last edited by

              @feinfinger sagte in Blockly Wert schreiben mit Verzögerung:

              Also so?

              Nein. Schau Dir mein Beispiel an.
              Du stoppst den Timeout jetzt bei jeder Änderung. Die Wahrscheinlichkeit, dass der Wert bei >= 5 über eine halbe Stunde konstant bleibt, halte ich für ziemlich gering.
              Du musst mit "vorheriger Wert" arbeiten und darfst ihn nur stoppen, wenn der (aktuelle) Wert unter 5V sinkt.

              F 1 Reply Last reply Reply Quote 0
              • F
                Feinfinger @Codierknecht last edited by

                @codierknecht

                Danke!

                Jetzt hab ich auch die Änderung erkannt 👍

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

                Support us

                ioBroker
                Community Adapters
                Donate

                852
                Online

                31.9k
                Users

                80.1k
                Topics

                1.3m
                Posts

                blockly
                3
                6
                284
                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