NEWS

Betriebsstundenzähler funktioniert nicht

  • Starter

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


  • @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.

  • Starter

    @paul53
    Was ist die letzte Zeile?


  • @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.

  • Starter

    @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);
    });
  • Starter

    @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);
    });
    
    
  • Starter

    Das war nix

  • Starter

    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


  • @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.

  • Starter

    @paul53
    Es läuft einwandfrei.
    Danke

Suggested Topics

1.2k
Online

34.9k
Users

40.9k
Topics

560.8k
Posts