Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Falls sich Wert über längere Zeit nicht ändert, mache ...

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Falls sich Wert über längere Zeit nicht ändert, mache ...

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

      Hi Leute,

      ich habe das Problem, dass sich mein Wettersensor des öfteren aufhängt und keine Daten mehr übermittelt. Über Ping ist er aber ganz normal erreichbar, daher wäre mein Ansatz folgender:

      Falls sich der übermittelte Temperaturwert länger als 1h nicht ändert, dann starte den Sensor neu.

      Ich hätte das mit folgendem Blockly versucht, erhalte aber eine Fehlermeldung:

      a3fca64d-85fc-4200-a7c2-65239425f037-image.png

      Hier die Fehlermeldung:

      204565a2-f5f9-425e-b33e-eccaaf977a30-image.png

      Kann mir jemand helfen, den Fehler zu finden.

      Danke.

      Beste Grüße

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Qlink last edited by

        @Qlink sagte in Falls sich Wert über längere Zeit nicht ändert, mache ...:

        Hier die Fehlermeldung:

        Das ist nicht die Fehlermeldung selbst, sonder nur, wo der Fehler auftritt.

        umschalten in Javascript ansicht und in Zeile 10 den markierten Fehler suchen

        Q 1 Reply Last reply Reply Quote 0
        • Q
          Qlink @Homoran last edited by Qlink

          @Homoran

          Hier das Script in javascript

          var timeout;
          
          
          // Wenn sich Termperatur ändert -> Script triggern
          on({id: 'hm-rega.0.49599', change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            // Wenn sich Temperatur ändert -> Timer Stop
            // -> nichts passiert
            (function () {if (unbenannt) {clearTimeout(unbenannt); unbenannt = null;}})();
            // Wenn sich Temperatur für 60min NICHT ändert
            // -> Mail schicken + reset ausführen
            timeout = setTimeout(function () {
              console.warn('weatherman restart, weil temperatur 60min keine Änderung');
              sendTo("email.0", "send", {
                 text: 'Weatherman prüfen !',
                 to: '...',
                 subject: 'Weatherman prüfen !'
              });
              console.log("email: " + 'Weatherman prüfen !');
              try {
                require("request")('http://192.168.30.12/?reset:').on("error", function (e) {console.error(e);});
              } catch (e) { console.error(e); }
              console.log("request: " + 'http://192.168.30.12/?reset:');
            }, 3600000);
          });
          

          Wo wäre hier in Zeile 10 ein Fehler ?

          Hier das log:

          javascript.0	2020-09-13 07:47:59.859	error	(2804) at process.topLevelDomainCallback (domain.js:126:23)
          javascript.0	2020-09-13 07:47:59.859	error	(2804) at processImmediate (timers.js:658:5)
          javascript.0	2020-09-13 07:47:59.859	error	(2804) at tryOnImmediate (timers.js:676:5)
          javascript.0	2020-09-13 07:47:59.859	error	(2804) at runCallback (timers.js:705:18)
          javascript.0	2020-09-13 07:47:59.859	error	(2804) at Immediate.setImmediate (C:\iobroker\iob01\node_modules\iobroker.js-controller\lib\adapter.js:5384:37)
          javascript.0	2020-09-13 07:47:59.859	error	(2804) at Object.stateChange (C:\iobroker\iob01\node_modules\iobroker.javascript\main.js:451:25)
          javascript.0	2020-09-13 07:47:59.859	error	(2804) at Object.callback (C:\iobroker\iob01\node_modules\iobroker.javascript\lib\sandbox.js:1052:38)
          javascript.0	2020-09-13 07:47:59.859	error	(2804) at Object.<anonymous> (script.js.weatherman_data_check:10:78)
          javascript.0	2020-09-13 07:47:59.859	error	(2804) at script.js.weatherman_data_check:10:17
          javascript.0	2020-09-13 07:47:59.859	error	(2804) Error in callback: ReferenceError: unbenannt is not defined
          

          Warum meint er "unbenannt is not defined" ?

          Xenon 1 Reply Last reply Reply Quote 0
          • Xenon
            Xenon Forum Testing Developer @Qlink last edited by Xenon

            @Qlink sagte in Falls sich Wert über längere Zeit nicht ändert, mache ...:

            @Homoran

            Hier das Script in javascript

            var timeout;
            
            
            // Wenn sich Termperatur ändert -> Script triggern
            on({id: 'hm-rega.0.49599', change: "ne"}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              // Wenn sich Temperatur ändert -> Timer Stop
              // -> nichts passiert
              (function () {if (unbenannt) {clearTimeout(unbenannt); unbenannt = null;}})();
              // Wenn sich Temperatur für 60min NICHT ändert
              // -> Mail schicken + reset ausführen
              timeout = setTimeout(function () {
                console.warn('weatherman restart, weil temperatur 60min keine Änderung');
                console.log("email: " + 'Weatherman prüfen !');
                try {
                  require("request")('http://192.168.30.12/?reset:').on("error", function (e) {console.error(e);});
                } catch (e) { console.error(e); }
                console.log("request: " + 'http://192.168.30.12/?reset:');
              }, 3600000);
            });
            

            Wo wäre hier in Zeile 10 ein Fehler ?

            if (unbenannt) {clear(unbenannt); unbenannt = null; }})();

            er findet den timeout "unbenannt" nicht, ändere mal einfach den timeoutnamen in deinem blockly

            Q 1 Reply Last reply Reply Quote 1
            • Q
              Qlink @Xenon last edited by

              @Xenon

              Das wars tatsächlich!

              Warum vergisst er den Namen ?
              Kann man das irgendwie zukünftig verhindern ?

              Vielen Dank für die Hilfe 🙂

              Beste Grüße

              dslraser Xenon 2 Replies Last reply Reply Quote 0
              • dslraser
                dslraser Forum Testing Most Active @Qlink last edited by

                @Qlink
                @Xenon
                in den JS Ansichten in den Beiträgen ist nun die E-Mail sichtbar.
                Nur als Info....

                Q 1 Reply Last reply Reply Quote 0
                • Q
                  Qlink @dslraser last edited by

                  @dslraser

                  Danke für den Hinweis.
                  Ist wohl noch zu früh am morgen.

                  @Xenon

                  Bitte die Adresse in dem Quoting von deinem Post entfernen.

                  Danke.

                  Beste Grüße

                  Xenon 1 Reply Last reply Reply Quote 0
                  • Xenon
                    Xenon Forum Testing Developer @Qlink last edited by

                    @Qlink erledigt, hatte ich nicht gesehen

                    1 Reply Last reply Reply Quote 0
                    • Xenon
                      Xenon Forum Testing Developer @Qlink last edited by

                      @Qlink das ist leider ein bekanntes problem bei blockly, gerade wenn man updates macht. Ich nutze nur JS, habe damals mit blockly angefangen und hatte immer wieder timeouts kaputt

                      Homoran 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @Xenon last edited by

                        @Xenon sagte in Falls sich Wert über längere Zeit nicht ändert, mache ...:

                        @Qlink das ist leider ein bekanntes problem bei blockly, gerade wenn man updates macht

                        So stimmt das nicht!
                        Es war ein Bug in einer Version von Javascript.
                        Das wurde damals sehr intensiv kommuniziert, dass bei einem Update die timeouts überprüft werden sollten.

                        Xenon 1 Reply Last reply Reply Quote 1
                        • Xenon
                          Xenon Forum Testing Developer @Homoran last edited by

                          @Homoran ich hatte danach selbst mehrfach Probleme gehabt. Einmal hatte ich einen Stromausfall und meine system ist neugestartet, selbst da waren timeouts weg.

                          Wie es jetzt aussieht -> keine Ahnung, ich arbeite ausschließlich nur noch mit JS

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          815
                          Online

                          32.0k
                          Users

                          80.5k
                          Topics

                          1.3m
                          Posts

                          4
                          11
                          555
                          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