Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly zählt zu schnell!

    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 zählt zu schnell!

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

      Guten Morgen,

      ich versuche mich an einem einfachen (dachte ich zumindest) Blockly-Script zur Zeitmessung.

      Die Laufzeit nach dem Einschalten meiner Geräte (PC Kids, Waschmaschine, Trockner) möchte ich gerne visuell auf der VIS anzeigen lassen.

      Sollte ja, denke ich kein Problem sein - machte mich heran, mein erstes eigenes Blockly-Script zu schreiben - und …. scheitere jetzt an folgendem Problem.

      Hier erstmal mein Script:

      16387_bild1.jpg

      (ich weiß auch, das es ähnliche Scripte gibt, aber ich wollte einfach zur Einarbeitung, mein eigenes schreiben) 🙂

      Zum eigentlichem Problem.

      In diesem Fall, habe ich eine Lampe zum Start des Script herangenommen.

      Lampe an …. Script fängt an zu zählen .... 1,2,3, funktioniert auch so weit - nur nach ein paar Sekunden, läuft der Zähler zu schnell - es ignoriert quasi den Intervall. (nach ein paar Sekunden ist schon die erste Minute erreicht. Er zählt aber fleissig bis 59 hoch!)

      Könnt ihr mir sagen, wo mein Denkfehler in dem Script ist?

      Danke vorab.

      Gruß

      Brunoz

      1 Reply Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators last edited by

        Interessant sieht aus alsob er 100ms nimmt anstatt 1000ms.

        Oben rechts kannste von blockly nach JavaScript, stell das Mal drauf und poste den Code.

        Sent from my iPhone using Tapatalk

        1 Reply Last reply Reply Quote 0
        • B
          Brunoz last edited by

          Klar mach ich! 🙂

          
          var Intervall, LichtzaehlerSekunde, LichtzaehlerMinute, LichtzaehlerStunde;
          
          on({id: "tuya.0.002007555ccf7f53378d.1"/*switch_on*/, change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            if (getState("tuya.0.002007555ccf7f53378d.1").val == true) {
              LichtzaehlerSekunde = 0;
              LichtzaehlerMinute = 0;
              LichtzaehlerStunde = 0;
            }
          });
          
          on({id: "tuya.0.002007555ccf7f53378d.1"/*switch_on*/, val: true}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            Intervall = setInterval(function () {
              LichtzaehlerSekunde = (typeof LichtzaehlerSekunde == 'number' ? LichtzaehlerSekunde : 0) + 1;
              if (LichtzaehlerSekunde > 59) {
                LichtzaehlerMinute = (typeof LichtzaehlerMinute == 'number' ? LichtzaehlerMinute : 0) + 1;
                LichtzaehlerSekunde = 0;
              }
              if (LichtzaehlerMinute > 59) {
                LichtzaehlerStunde = (typeof LichtzaehlerStunde == 'number' ? LichtzaehlerStunde : 0) + 1;
                LichtzaehlerMinute = 0;
              }
              console.log(([LichtzaehlerStunde,' Stunde(n) ',LichtzaehlerMinute,' Minute(n)',LichtzaehlerSekunde,' Sekunde(n)'].join('')));
              setState("javascript.0.Zeit.DauerLicht"/*DauerLicht*/, ([LichtzaehlerStunde,' Stunde(n) ',LichtzaehlerMinute,' Minute(n)',LichtzaehlerSekunde,' Sekunde(n)'].join('')));
            }, 1000);
          });
          on({id: "tuya.0.002007555ccf7f53378d.1"/*switch_on*/, val: false}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
          });
          
          
          1 Reply Last reply Reply Quote 0
          • Dutchman
            Dutchman Developer Most Active Administrators last edited by

            Das Script ist OK, triggerr er eventuell öfter wodurch es mehrfach läuft?

            Sent from my iPhone using Tapatalk

            1 Reply Last reply Reply Quote 0
            • B
              Brunoz last edited by

              Danke für den Tipp!

              Da dran lags!

              Vielen Dank.

              1 Reply Last reply Reply Quote 0
              • Nashra
                Nashra Most Active Forum Testing last edited by

                @Brunoz:

                Danke für den Tipp!

                Da dran lags!

                Vielen Dank. `

                Moin, wie hast du das gelöst?

                Da ich genau sowas gesucht habe, dein Blockly mal nachgebaut.

                Aber bei mir fängt er auch an zu rennen.

                1 Reply Last reply Reply Quote 0
                • K
                  Kueppert last edited by

                  Ich würde vor dem Intervall ein Stop Intervall setzen. Damit verhindert man die mehrfach Ausführung vom Intervall…

                  Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

                  1 Reply Last reply Reply Quote 0
                  • Nashra
                    Nashra Most Active Forum Testing last edited by

                    @Kueppert:

                    Ich würde vor dem Intervall ein Stop Intervall setzen. Damit verhindert man die mehrfach Ausführung vom Intervall…

                    Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk `
                    Jow und wieder was gelernt, Danke

                    Jetzt rennt er nicht mehr und zählt sauber hoch.

                    1 Reply Last reply Reply Quote 0
                    • crunchip
                      crunchip Forum Testing Most Active last edited by

                      eine Frage hätte ich,

                      1.) wenn man so ein script laufen lässt, wie bekommt man das hin, das nicht das ganze log zugemüllt wird?

                      2.) wie bekomm ich das hin, das am Ende der Laufzeit ein Datenpunkt gesetzt wird, den ich z.b. in sql schreiben, um mir eine Statistik zu erstellen?

                      Gruss

                      1 Reply Last reply Reply Quote 0
                      • K
                        Kueppert last edited by

                        @crunchip:

                        eine Frage hätte ich,

                        1.) wenn man so ein script laufen lässt, wie bekommt man das hin, das nicht das ganze log zugemüllt wird?

                        2.) wie bekomm ich das hin, das am Ende der Laufzeit ein Datenpunkt gesetzt wird, den ich z.b. in sql schreiben, um mir eine Statistik zu erstellen?

                        Gruss ` Zu 1) du nutzt den Block "debug output" der soll das Log vollmüllen ;D

                        Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        862
                        Online

                        31.8k
                        Users

                        79.9k
                        Topics

                        1.3m
                        Posts

                        5
                        10
                        981
                        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