Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Betriebsstundenzähler funktioniert nicht

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Betriebsstundenzähler funktioniert nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      G.Hawk @paul53 last edited by

      @paul53
      Da sind überall Daten drin
      Sonst lösche ich das Skript und schreib es noch mal

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @G.Hawk last edited by paul53

        @Martin-0 sagte:

        Sonst lösche ich das Skript und schreib es noch mal

        Poste vorher mal den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.

        G 1 Reply Last reply Reply Quote 0
        • G
          G.Hawk @paul53 last edited by

          @paul53
          Was ist die letzte Zeile?

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @G.Hawk last edited by paul53

            @Martin-0 sagte:

            Was ist die letzte Zeile?

            Wenn du in die Javascript-Ansicht wechselst, siehst Du unten eine ewig lange Zeile mit XML-Code. Die Zeile lass bitte weg.

            G 2 Replies Last reply Reply Quote 0
            • G
              G.Hawk @paul53 last edited by

              @paul53 ```
              code_text

              
              
              on({id: 'hm-rpc.0.JEQ0063840.1.STATE', change: "lt", ack: false}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                timeout4 = setTimeout(function () {
                  Einschaltdauer_S_C3_BCd = ((obj.state ? obj.state.lc : "") - (obj.oldState ? obj.oldState.lc : "")) / 60000;
                  setState("javascript.0.Bewaesserung.Betriebsstundenzähler_Süd"/*Betriebsstundenzähler Süd*/, Einschaltdauer_S_C3_BCd);
                  timeout = setTimeout(function () {
                    setState("javascript.0.Bewaesserung.Betriebsstundenzähler_Süd"/*Betriebsstundenzähler Süd*/, Math.round(getState("javascript.0.Bewaesserung.Betriebsstundenzähler_Süd").val*10)/10);
                  }, 10000);
                }, 5000);
              });
              
              on({id: "hm-rpc.0.JEQ0063840.2.STATE"/*Bewässerung West.STATE*/, change: "lt", ack: false}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                Einschaltdauer_West = ((obj.state ? obj.state.lc : "") - (obj.oldState ? obj.oldState.lc : "")) / 60000;
                setState("hm-rpc.0.JEQ0063840.2.STATE"/*Bewässerung West.STATE*/, Einschaltdauer_West, true);
              });
              
              on({id: "hm-rpc.0.JEQ0063840.3.STATE"/*Bewässerung Nord.STATE*/, val: false, ack: false}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                timeout6 = setTimeout(function () {
                  Einschaltdauer_Nord = ((obj.state ? obj.state.lc : "") - (obj.oldState ? obj.oldState.lc : "")) / 60000;
                  setState("javascript.0.Bewaesserung.Betreibstundenzähler_Nord"/*Betreibstundenzähler Nord*/, Einschaltdauer_Nord);
                  timeout3 = setTimeout(function () {
                    setState("javascript.0.Bewaesserung.Betreibstundenzähler_Nord"/*Betreibstundenzähler Nord*/, Math.round(getState("javascript.0.Bewaesserung.Betreibstundenzähler_Nord").val*10)/10);
                  }, 10000);
                }, 5000);
              });
              1 Reply Last reply Reply Quote 0
              • G
                G.Hawk @paul53 last edited by

                @paul53

                var timeout2, timeout4, Einschaltdauer_West, timeout6, Einschaltdauer_S_C3_BCd, Einschaltdauer_Nord, timeout, timeout3;
                
                
                on({id: 'hm-rpc.0.JEQ0063840.1.STATE', change: "lt", ack: false}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  timeout4 = setTimeout(function () {
                    Einschaltdauer_S_C3_BCd = ((obj.state ? obj.state.lc : "") - (obj.oldState ? obj.oldState.lc : "")) / 60000;
                    setState("javascript.0.Bewaesserung.Betriebsstundenzähler_Süd"/*Betriebsstundenzähler Süd*/, Einschaltdauer_S_C3_BCd);
                    timeout = setTimeout(function () {
                      setState("javascript.0.Bewaesserung.Betriebsstundenzähler_Süd"/*Betriebsstundenzähler Süd*/, Math.round(getState("javascript.0.Bewaesserung.Betriebsstundenzähler_Süd").val*10)/10);
                    }, 10000);
                  }, 5000);
                });
                
                on({id: "hm-rpc.0.JEQ0063840.2.STATE"/*Bewässerung West.STATE*/, change: "lt", ack: false}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  Einschaltdauer_West = ((obj.state ? obj.state.lc : "") - (obj.oldState ? obj.oldState.lc : "")) / 60000;
                  setState("hm-rpc.0.JEQ0063840.2.STATE"/*Bewässerung West.STATE*/, Einschaltdauer_West, true);
                });
                
                on({id: "hm-rpc.0.JEQ0063840.3.STATE"/*Bewässerung Nord.STATE*/, val: false, ack: false}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  timeout6 = setTimeout(function () {
                    Einschaltdauer_Nord = ((obj.state ? obj.state.lc : "") - (obj.oldState ? obj.oldState.lc : "")) / 60000;
                    setState("javascript.0.Bewaesserung.Betreibstundenzähler_Nord"/*Betreibstundenzähler Nord*/, Einschaltdauer_Nord);
                    timeout3 = setTimeout(function () {
                      setState("javascript.0.Bewaesserung.Betreibstundenzähler_Nord"/*Betreibstundenzähler Nord*/, Math.round(getState("javascript.0.Bewaesserung.Betreibstundenzähler_Nord").val*10)/10);
                    }, 10000);
                  }, 5000);
                });
                
                
                G 1 Reply Last reply Reply Quote 0
                • G
                  G.Hawk @G.Hawk last edited by

                  Das war nix

                  G 1 Reply Last reply Reply Quote 0
                  • G
                    G.Hawk @G.Hawk last edited by G.Hawk

                    var Einschaltdauer_S_C3_BCd, Einschaltdauer_West, Einschaltdauer_Nord;
                    
                    
                    on({id: 'hm-rpc.0.JEQ0063840.1.STATE', change: "lt", ack: false}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      Einschaltdauer_S_C3_BCd = ((obj.state ? obj.state.lc : "") - (obj.oldState ? obj.oldState.lc : "")) / 60000;
                      setState("javascript.0.Bewaesserung.Betriebsstundenzähler_Süd"/*Betriebsstundenzähler Süd*/, Einschaltdauer_S_C3_BCd);
                      setState("javascript.0.Bewaesserung.Betriebsstundenzähler_Süd"/*Betriebsstundenzähler Süd*/, Math.round(getState("javascript.0.Bewaesserung.Betriebsstundenzähler_Süd").val*10)/10);
                    });
                    
                    on({id: "hm-rpc.0.JEQ0063840.2.STATE"/*Bewässerung West.STATE*/, change: "lt", ack: false}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      Einschaltdauer_West = ((obj.state ? obj.state.lc : "") - (obj.oldState ? obj.oldState.lc : "")) / 60000;
                      setState("hm-rpc.0.JEQ0063840.2.STATE"/*Bewässerung West.STATE*/, Einschaltdauer_West, true);
                      setState("hm-rpc.0.JEQ0063840.2.STATE"/*Bewässerung West.STATE*/, Math.round(getState("javascript.0.Bewaesserung.Betriebsstundenzähler_West").val*10)/10, true);
                    });
                    
                    on({id: "hm-rpc.0.JEQ0063840.3.STATE"/*Bewässerung Nord.STATE*/, val: false, ack: false}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      Einschaltdauer_Nord = ((obj.state ? obj.state.lc : "") - (obj.oldState ? obj.oldState.lc : "")) / 60000;
                      setState("javascript.0.Bewaesserung.Betreibstundenzähler_Nord"/*Betreibstundenzähler Nord*/, Einschaltdauer_Nord);
                      setState("javascript.0.Bewaesserung.Betreibstundenzähler_Nord"/*Betreibstundenzähler Nord*/, Math.round(getState("javascript.0.Bewaesserung.Betreibstundenzähler_Nord").val*10)/10);
                    

                    So

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @G.Hawk last edited by paul53

                      @Martin-0

                      1. Bei "Bewässerung West" wird in den falschen Datenpunkt geschrieben.
                      2. Man kann nicht erst den nicht gerundeten Wert in einen Datenpunkt schreiben, diesen anschließend wieder auslesen und anschließend den gerundeten Wert zurück schreiben, da das Schreiben asynchron erfolgt, d.h. noch nicht fertig ist, wenn der Wert wieder eingelesen wird.
                        Richtig: Den Wert der Variablen gerundet in den Datenpunkt schreiben:

                      Blockly_temp.JPG

                      Meinen Vorschlag hast Du offenbar ignoriert.

                      1 Reply Last reply Reply Quote 0
                      • G
                        G.Hawk @paul53 last edited by

                        @paul53
                        Es läuft einwandfrei.
                        Danke

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        646
                        Online

                        32.0k
                        Users

                        80.4k
                        Topics

                        1.3m
                        Posts

                        blockly
                        4
                        30
                        1638
                        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