Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Skotti

    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

    S
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 1
    • Best 0
    • Groups 0

    Skotti

    @Skotti

    0
    Reputation
    8
    Profile views
    1
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Skotti Follow

    Latest posts made by Skotti

    • Script zur Ermittlung stündlicher/täglicher Stromaufnahme funktioniert nicht

      Hallo zusammen.

      Dies ist mein erster Post im Forum. Bitte verzeiht wenn meine Frage unangebracht erscheint, aber ich komme einfach nicht weiter.
      Das folgende Script soll einfach nur einmal pro Stunde bzw. einmal am Tag die Differenz des Stromzählers zum vorherigen Aufruf in eine Variable speichern. Die Werte sollen in einer SQL-Datenbank geloggt und in einem FLOT-Diagramm visualisiert werden. Für Diagnose-Zwecke habe ich auch noch eine Variable mit einem Zeitstempel angelegt und augenscheinlich werden die beiden definierten Funktionen auch zum gewünschten Zeitpunkt ausgeführt (Zeitstempel wie im schedule-Job vorgegeben, siehe Screenshot unten)Stromzähler-Variablen.png
      Leider werden keine Werte aus der Berechnung aufgezeichnet. Die einzelnen Peaks sind nur beim Testen und neustarten des Scripts entstanden).Hat jemand eine Idee?
      Stromzähler-FLOT-Diagramm.png

      So sieht mein Script aus:

      createState('Strom.Stunde.Aktuell', 0, {name: 'Stromverbrauch Stunde', unit: 'kWh', desc: 'Stromverbrauch letzte Stunde', type: 'number'});
      createState('Strom.Stunde.Gespeichert', 0, {name: 'Stromzählerwert Stunde', unit: 'Wh', desc: 'Stromzählerwert absolut letzte Stunde', type: 'number'});
      createState('Strom.Stunde.Zeitstempel', 0, {name: 'Zeitstempel Stunde', desc: 'Zeitstempel letzte Aktualisierung stündliche Stromaufnahme', type: 'string'});
      createState('Strom.Tag.Aktuell', 0, {name: 'Stromverbrauch Tag', unit: 'kWh', desc: 'Stromverbrauch letzter Tag', type: 'number'});
      createState('Strom.Tag.Gespeichert', 0, {name: 'Stromzählerwert Tag', unit: 'Wh', desc: 'Stromzählerwert absolut letzter Tag', type: 'number'});
      createState('Strom.Tag.Zeitstempel', 0, {name: 'Zeitstempel Tag', desc: 'Zeitstempel letzte Aktualisierung tägliche Stromaufnahme', type: 'string'});
      
      var instanz = 'javascript.0.';
      var idStrom_Stunde_Aktuell = instanz + 'Strom.Stunde.Aktuell';
      var idStrom_Stunde_Gespeichert = instanz + 'Strom.Stunde.Gespeichert';
      var idStrom_Stunde_Zeitstempel = instanz + 'Strom.Stunde.Zeitstempel';
      var idStrom_Tag_Aktuell = instanz + 'Strom.Tag.Aktuell';
      var idStrom_Tag_Gespeichert = instanz + 'Strom.Tag.Gespeichert';
      var idStrom_Tag_Zeitstempel = instanz + 'Strom.Tag.Zeitstempel';
      var Stromzähler_Aktuell = getState("hm-rpc.0.PEQ0544375.1.ENERGY_COUNTER").val;
      
      if (getState(idStrom_Stunde_Gespeichert).val == 0) {setState(idStrom_Stunde_Gespeichert, Stromzähler_Aktuell, true)};
      if (getState(idStrom_Tag_Gespeichert).val == 0) {setState(idStrom_Tag_Gespeichert, Stromzähler_Aktuell, true)};
      
      function fStromStunde(Obj) {
          setState(idStrom_Stunde_Aktuell, (Stromzähler_Aktuell - getState(idStrom_Stunde_Gespeichert).val) / 1000, true);
          setState(idStrom_Stunde_Gespeichert, Stromzähler_Aktuell, true);
          setState(idStrom_Stunde_Zeitstempel, formatDate(new Date(), "TT.MM.JJJJ SS:mm:ss"), true);
      };
      
      function fStromTag(Obj) {
          setState(idStrom_Tag_Aktuell, (Stromzähler_Aktuell - getState(idStrom_Tag_Gespeichert).val) / 1000, true);
          setState(idStrom_Tag_Gespeichert, Stromzähler_Aktuell, true);
          setState(idStrom_Tag_Zeitstempel, formatDate(new Date(), "TT.MM.JJJJ SS:mm:ss"), true);
      };
      
      schedule("0 * * * *", fStromStunde);
      schedule("0 0 * * *", fStromTag);
      
      posted in JavaScript
      S
      Skotti
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo