Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Stromzählerscript PV Anlage Finanzamt in Json oder html

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    905

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Stromzählerscript PV Anlage Finanzamt in Json oder html

Scheduled Pinned Locked Moved JavaScript
84 Posts 9 Posters 10.8k Views 12 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • smartboartS Offline
    smartboartS Offline
    smartboart
    wrote on last edited by smartboart
    #1

    Hallo Leute,
    ArnoD war so freundlich sein script für die Aufbereitung von Zählerdaten bei Überschusseinspeisung als Unternehmer mit Umsatzsteuervoranmeldung hier im Forum zu teilen.
    https://forum.iobroker.net/topic/32976/e3dc-hauskraftwerk-steuern/197
    Nach Rückfrage, ob er was dagegen hätte hierfür einen neuen Threat zu eröffnen, um das Script weiter aufzubohren, hatte er dies begüßt.

    Hintergrund ist nun, dass diese Menge an States und Daten besser in einer Json Tabelle oder html Tabelle aufgehoben wären um die Daten in Vis darzustellen und evtl. zusätzlich als txt Datei lokal oder auf dem NAS abzulegen.

    EDIT:
    ich habe das Skript von ArnoD mit Hilfe von paul53 weiter aufgebohrt un um die Kostenberechnung für die Privatentnahme erweitert. Ebenfalls 2 States hinzu um die Stromkosten und mittlerweile wechselhafte MWST über vis anzupassen.

    EDIT:
    Taelle erweitert um aktuelle Mwst und aktueller Strompreis und log Ausgabe.

    EDIT:
    Skript erweitert, es werden nunzusätzlich alleDaten in eine CSV Datei geschrieben.

    /*
    Zweck: Stromzählerscript / Smartmeter PV Anlage Tabelle für Finanzamt in Json 
    Stand: 10.10.2020
    Forumthreat:
    https://forum.iobroker.net/topic/35659/stromz%C3%A4hlerscript-pv-anlage-finanzamt-in-json-oder-html
    Änderungen: 10.10.2020 - Smartboart: Export der Liste in json auf das filesystem / Festplatte.
    
    26.02.2020 - Smartboard: Forumswunsch Erweiterung Verguetung
    */
    // Hausstromverbrauch aktuell berechnen **************************************************************************
    createState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
    createState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
    createState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
    
    createState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.Mehrwertsteuersatz',    16, {name: 'aktueller Mehrwertsteuersatz', type: 'number', unit: '%' });
    createState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.Nettostrompreis',    0.2638, {name: 'Strompreis netto pro kwh', type: 'number', unit: '€' });
    createState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NettoGrundpreis',    0, {name: 'Grundpreis netto pro Monat', type: 'number', unit: '€' });
    
    
    const idJson = 'javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.JsonTable';
    
    var logging = true;
    var debug = false;
    var Begrenzung = false; // Wenn auf 12 Monatseinträge begrenzt werden soll, auf true setzen
    var Verguetung_kwh = 0.0903; // €pro kWh
    
    var LogPath = "/home/pi/Smartmeter/Finanzamt_Tabelle.json";
    var fs = require('fs');  
    var logflag = true; 
    
    
    writelog();
    
    //Um 00:00:55 am 1 in jeden Monat speichern für das Finanzamt
    schedule('55 0 0 1 * *', function() { 
    if (logging)log('Smartmeter Zählerstände FA Tabelle: Schedule Monatliche Berechnung fürs Finanzamt aktiv');       
    var nBezugZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:1_8_0__255.value').val);
    var nEinspeiseZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:2_8_0__255.value').val);
    var PvZaehlerAktuell=Math.floor(getState('modbus.0.holdingRegisters.12288_E3DC_Lieferung Summe'/*12288 E3dc Lieferung Summe*/).val);
    var MWST = getState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.Mehrwertsteuersatz').val;
    var NettoStromPreis = getState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.Nettostrompreis').val;
    var NettoGrundpreis = getState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NettoGrundpreis').val;
    var nBezugZaehlerAlt = getState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt').val;
    var nEinspeiseZaehlerAlt = getState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt').val;
    var PvZaehlerAlt=getState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt').val;
    var nBezugZaehlerNeu = nBezugZaehlerAktuell - nBezugZaehlerAlt;
    var nEinspeiseZaehlerNeu = nEinspeiseZaehlerAktuell - nEinspeiseZaehlerAlt;
    var Einspeiseverguetung = Math.round ((nEinspeiseZaehlerNeu * Verguetung_kwh)*100)/100;
    var PvZaehlerNeu = PvZaehlerAktuell - PvZaehlerAlt;
    var EigenverbrauchNeu = PvZaehlerNeu - nEinspeiseZaehlerNeu;
    var AutarkieNeu = Math.round(EigenverbrauchNeu / ((nBezugZaehlerNeu+EigenverbrauchNeu)/100)); 
    if(NettoGrundpreis > 0 ) var StromPreis = (NettoGrundpreis/(nBezugZaehlerNeu+EigenverbrauchNeu))+ NettoStromPreis;
    if(NettoGrundpreis == 0 ) var StromPreis = NettoStromPreis;
    var Entnahme = Math.round((EigenverbrauchNeu*StromPreis)*100)/100;
    var UstAnmeldung = Math.round((Entnahme/100*MWST)*100)/100;
    // Datum vom Vortag berechnen
    var jetzt = new Date();
    var Theute = jetzt.getDate();
    var Tgestern = new Date();
    Tgestern.setDate(Theute-1);
    var DatumAkt=((Tgestern.getDate())+'.'+ (Tgestern.getMonth()+1) +'.'+ Tgestern.getFullYear());
    var MonatAkt=(Tgestern.getMonth()+1);
    setTimeout(function(){
    setState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',nEinspeiseZaehlerAktuell);
    setState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt',nBezugZaehlerAktuell);
    setState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt',PvZaehlerAktuell);
    setTimeout(function(){
    if(debug)log('Smartmeter Zählerstände FA Tabelle: Json aktualisiert ' + JSON.stringify(arr));
    writelog();
    },200);
    // für Json aufbereiten
    let obj = {};
    obj.Datum = DatumAkt;
    obj.Einspeisung = nEinspeiseZaehlerNeu + ' kWh';
    obj.Netzbezug = nBezugZaehlerNeu + ' kWh';
    obj.Solarproduktion = PvZaehlerNeu + ' kWh';
    obj.Eigenverbrauch = EigenverbrauchNeu + ' kWh';
    obj.Autarkie = AutarkieNeu + ' %';
    obj.Netzeinspeisezaehler = nEinspeiseZaehlerAktuell + ' kWh';
    obj.Netzbezugszaehler = nBezugZaehlerAktuell + ' kWh';
    obj.PVzaehler = PvZaehlerAktuell + ' kWh';
    obj.Privatentnahme = Entnahme + ' €';
    obj.Ust = UstAnmeldung + ' €';
    obj.Mwst = MWST + ' %'
    obj.StrompreisGesamt = StromPreis + ' €/kWh';
    obj.Strompreis = NettoStromPreis + ' €/kWh';
    obj.Grundgebuehren = NettoGrundpreis + ' €/Monat'
    obj.Verguetung = Einspeiseverguetung + ' €';
    let arr = [];
    if(existsState(idJson)) arr = JSON.parse(getState(idJson).val);
    arr.push(obj);
    if(arr.length > 12 && Begrenzung) arr.shift();
    if(existsState(idJson)) setState(idJson, JSON.stringify(arr), true);
    else createState(idJson, JSON.stringify(arr), {type: 'string'});
        },2000);
    });
    
    
    // Funktion schreibt einen Logeintrag in das Filesystem 
    function writelog() {
        var string = getState(idJson).val;
        if (logflag === true) {
            fs.readFile(LogPath, 'utf8', function(err,data){
                if (!err) {  
                    fs.writeFileSync(LogPath, string );
                }else{
                    if(logging)log("Smartmeter: Finanzamt Tabelle - Json nicht gefunden - wird angelegt"), "info";
                    fs.writeFileSync(LogPath, string );
                }
            });       
        } ; 
    }
    
    
    
    

    hier die widgets

    widget.txt

    Unbenannt.JPG

    paul53P G 2 Replies Last reply
    0
    • smartboartS smartboart

      Hallo Leute,
      ArnoD war so freundlich sein script für die Aufbereitung von Zählerdaten bei Überschusseinspeisung als Unternehmer mit Umsatzsteuervoranmeldung hier im Forum zu teilen.
      https://forum.iobroker.net/topic/32976/e3dc-hauskraftwerk-steuern/197
      Nach Rückfrage, ob er was dagegen hätte hierfür einen neuen Threat zu eröffnen, um das Script weiter aufzubohren, hatte er dies begüßt.

      Hintergrund ist nun, dass diese Menge an States und Daten besser in einer Json Tabelle oder html Tabelle aufgehoben wären um die Daten in Vis darzustellen und evtl. zusätzlich als txt Datei lokal oder auf dem NAS abzulegen.

      EDIT:
      ich habe das Skript von ArnoD mit Hilfe von paul53 weiter aufgebohrt un um die Kostenberechnung für die Privatentnahme erweitert. Ebenfalls 2 States hinzu um die Stromkosten und mittlerweile wechselhafte MWST über vis anzupassen.

      EDIT:
      Taelle erweitert um aktuelle Mwst und aktueller Strompreis und log Ausgabe.

      EDIT:
      Skript erweitert, es werden nunzusätzlich alleDaten in eine CSV Datei geschrieben.

      /*
      Zweck: Stromzählerscript / Smartmeter PV Anlage Tabelle für Finanzamt in Json 
      Stand: 10.10.2020
      Forumthreat:
      https://forum.iobroker.net/topic/35659/stromz%C3%A4hlerscript-pv-anlage-finanzamt-in-json-oder-html
      Änderungen: 10.10.2020 - Smartboart: Export der Liste in json auf das filesystem / Festplatte.
      
      26.02.2020 - Smartboard: Forumswunsch Erweiterung Verguetung
      */
      // Hausstromverbrauch aktuell berechnen **************************************************************************
      createState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
      createState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
      createState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
      
      createState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.Mehrwertsteuersatz',    16, {name: 'aktueller Mehrwertsteuersatz', type: 'number', unit: '%' });
      createState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.Nettostrompreis',    0.2638, {name: 'Strompreis netto pro kwh', type: 'number', unit: '€' });
      createState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NettoGrundpreis',    0, {name: 'Grundpreis netto pro Monat', type: 'number', unit: '€' });
      
      
      const idJson = 'javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.JsonTable';
      
      var logging = true;
      var debug = false;
      var Begrenzung = false; // Wenn auf 12 Monatseinträge begrenzt werden soll, auf true setzen
      var Verguetung_kwh = 0.0903; // €pro kWh
      
      var LogPath = "/home/pi/Smartmeter/Finanzamt_Tabelle.json";
      var fs = require('fs');  
      var logflag = true; 
      
      
      writelog();
      
      //Um 00:00:55 am 1 in jeden Monat speichern für das Finanzamt
      schedule('55 0 0 1 * *', function() { 
      if (logging)log('Smartmeter Zählerstände FA Tabelle: Schedule Monatliche Berechnung fürs Finanzamt aktiv');       
      var nBezugZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:1_8_0__255.value').val);
      var nEinspeiseZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:2_8_0__255.value').val);
      var PvZaehlerAktuell=Math.floor(getState('modbus.0.holdingRegisters.12288_E3DC_Lieferung Summe'/*12288 E3dc Lieferung Summe*/).val);
      var MWST = getState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.Mehrwertsteuersatz').val;
      var NettoStromPreis = getState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.Nettostrompreis').val;
      var NettoGrundpreis = getState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NettoGrundpreis').val;
      var nBezugZaehlerAlt = getState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt').val;
      var nEinspeiseZaehlerAlt = getState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt').val;
      var PvZaehlerAlt=getState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt').val;
      var nBezugZaehlerNeu = nBezugZaehlerAktuell - nBezugZaehlerAlt;
      var nEinspeiseZaehlerNeu = nEinspeiseZaehlerAktuell - nEinspeiseZaehlerAlt;
      var Einspeiseverguetung = Math.round ((nEinspeiseZaehlerNeu * Verguetung_kwh)*100)/100;
      var PvZaehlerNeu = PvZaehlerAktuell - PvZaehlerAlt;
      var EigenverbrauchNeu = PvZaehlerNeu - nEinspeiseZaehlerNeu;
      var AutarkieNeu = Math.round(EigenverbrauchNeu / ((nBezugZaehlerNeu+EigenverbrauchNeu)/100)); 
      if(NettoGrundpreis > 0 ) var StromPreis = (NettoGrundpreis/(nBezugZaehlerNeu+EigenverbrauchNeu))+ NettoStromPreis;
      if(NettoGrundpreis == 0 ) var StromPreis = NettoStromPreis;
      var Entnahme = Math.round((EigenverbrauchNeu*StromPreis)*100)/100;
      var UstAnmeldung = Math.round((Entnahme/100*MWST)*100)/100;
      // Datum vom Vortag berechnen
      var jetzt = new Date();
      var Theute = jetzt.getDate();
      var Tgestern = new Date();
      Tgestern.setDate(Theute-1);
      var DatumAkt=((Tgestern.getDate())+'.'+ (Tgestern.getMonth()+1) +'.'+ Tgestern.getFullYear());
      var MonatAkt=(Tgestern.getMonth()+1);
      setTimeout(function(){
      setState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',nEinspeiseZaehlerAktuell);
      setState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt',nBezugZaehlerAktuell);
      setState('javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt',PvZaehlerAktuell);
      setTimeout(function(){
      if(debug)log('Smartmeter Zählerstände FA Tabelle: Json aktualisiert ' + JSON.stringify(arr));
      writelog();
      },200);
      // für Json aufbereiten
      let obj = {};
      obj.Datum = DatumAkt;
      obj.Einspeisung = nEinspeiseZaehlerNeu + ' kWh';
      obj.Netzbezug = nBezugZaehlerNeu + ' kWh';
      obj.Solarproduktion = PvZaehlerNeu + ' kWh';
      obj.Eigenverbrauch = EigenverbrauchNeu + ' kWh';
      obj.Autarkie = AutarkieNeu + ' %';
      obj.Netzeinspeisezaehler = nEinspeiseZaehlerAktuell + ' kWh';
      obj.Netzbezugszaehler = nBezugZaehlerAktuell + ' kWh';
      obj.PVzaehler = PvZaehlerAktuell + ' kWh';
      obj.Privatentnahme = Entnahme + ' €';
      obj.Ust = UstAnmeldung + ' €';
      obj.Mwst = MWST + ' %'
      obj.StrompreisGesamt = StromPreis + ' €/kWh';
      obj.Strompreis = NettoStromPreis + ' €/kWh';
      obj.Grundgebuehren = NettoGrundpreis + ' €/Monat'
      obj.Verguetung = Einspeiseverguetung + ' €';
      let arr = [];
      if(existsState(idJson)) arr = JSON.parse(getState(idJson).val);
      arr.push(obj);
      if(arr.length > 12 && Begrenzung) arr.shift();
      if(existsState(idJson)) setState(idJson, JSON.stringify(arr), true);
      else createState(idJson, JSON.stringify(arr), {type: 'string'});
          },2000);
      });
      
      
      // Funktion schreibt einen Logeintrag in das Filesystem 
      function writelog() {
          var string = getState(idJson).val;
          if (logflag === true) {
              fs.readFile(LogPath, 'utf8', function(err,data){
                  if (!err) {  
                      fs.writeFileSync(LogPath, string );
                  }else{
                      if(logging)log("Smartmeter: Finanzamt Tabelle - Json nicht gefunden - wird angelegt"), "info";
                      fs.writeFileSync(LogPath, string );
                  }
              });       
          } ; 
      }
      
      
      
      

      hier die widgets

      widget.txt

      Unbenannt.JPG

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #2

      @smartboart
      Prinzip:

      const idJson = 'PVAnlage.Stromzaehler.JsonTable';
      
      let obj = {};
      // 6 Spalten
      obj.Datum = DatumAkt;
      obj.Einspeisung = nEinspeiseZaehlerNeu;
      obj.Netzbezug = nBezugZaehlerNeu;
      obj.Solarproduktion = PvZaehlerNeu;
      obj.Eigenverbrauch = EigenverbrauchNeu;
      obj.Autarkie = AutarkieNeu + ' %';
      let arr = [];
      if(existsState(idJson)) arr = JSON.parse(getState(idJson).val);
      arr.push(obj);
      if(arr.length > 12) arr.shift;
      if(existsState(idJson)) setState(idJson, JSON.stringify(arr), true);
      else createState(idJson, JSON.stringify(arr), {type: 'string'});
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      smartboartS 2 Replies Last reply
      1
      • paul53P paul53

        @smartboart
        Prinzip:

        const idJson = 'PVAnlage.Stromzaehler.JsonTable';
        
        let obj = {};
        // 6 Spalten
        obj.Datum = DatumAkt;
        obj.Einspeisung = nEinspeiseZaehlerNeu;
        obj.Netzbezug = nBezugZaehlerNeu;
        obj.Solarproduktion = PvZaehlerNeu;
        obj.Eigenverbrauch = EigenverbrauchNeu;
        obj.Autarkie = AutarkieNeu + ' %';
        let arr = [];
        if(existsState(idJson)) arr = JSON.parse(getState(idJson).val);
        arr.push(obj);
        if(arr.length > 12) arr.shift;
        if(existsState(idJson)) setState(idJson, JSON.stringify(arr), true);
        else createState(idJson, JSON.stringify(arr), {type: 'string'});
        
        smartboartS Offline
        smartboartS Offline
        smartboart
        wrote on last edited by
        #3

        @paul53 Danke....werde mich bei nächster Gelegenheit mal daran versuchen...

        1 Reply Last reply
        0
        • paul53P paul53

          @smartboart
          Prinzip:

          const idJson = 'PVAnlage.Stromzaehler.JsonTable';
          
          let obj = {};
          // 6 Spalten
          obj.Datum = DatumAkt;
          obj.Einspeisung = nEinspeiseZaehlerNeu;
          obj.Netzbezug = nBezugZaehlerNeu;
          obj.Solarproduktion = PvZaehlerNeu;
          obj.Eigenverbrauch = EigenverbrauchNeu;
          obj.Autarkie = AutarkieNeu + ' %';
          let arr = [];
          if(existsState(idJson)) arr = JSON.parse(getState(idJson).val);
          arr.push(obj);
          if(arr.length > 12) arr.shift;
          if(existsState(idJson)) setState(idJson, JSON.stringify(arr), true);
          else createState(idJson, JSON.stringify(arr), {type: 'string'});
          
          smartboartS Offline
          smartboartS Offline
          smartboart
          wrote on last edited by
          #4

          @paul53
          das ja schon fertig...
          hab mir es eben mal genau angeschaut...
          Im Prinzip muss ich es nur anhängen oder?
          Also so...

          // Hausstromverbrauch aktuell berechnen **************************************************************************
          createState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzbezug.alt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
          createState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzeinspeisung.alt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
          createState('PVAnlage.Stromzaehler.Zaehlerstaende.Solarproduktion.alt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
          
          for(var i = 1; i<= 12; i++) {
          
          createState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzbezug.Monat'+ i,    0, {name: 'Zählerstand Netzbezug Monat'+ i, type: 'number', unit: 'kWh' });
          createState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzeinspeisung.Monat'+ i,    0, {name: 'Zählerstand Netzeinspeisung Monat'+ i, type: 'number', unit: 'kWh' });
          createState('PVAnlage.Stromzaehler.Zaehlerstaende.Solarproduktion.Monat'+ i,    0, {name: 'Zählerstand PV-Anlage Monat'+ i, type: 'number', unit: 'kWh' });
          createState('PVAnlage.Stromzaehler.Berechnung.Netzeinspeisung.Monat'+ i,    0, {name: 'Ins Netz eingespeiste kWh im Monat'+ i, type: 'number', unit: 'kWh' });
          createState('PVAnlage.Stromzaehler.Berechnung.Netzbezug.Monat'+ i,    0, {name: 'Aus Netz bezogene kWh im Monat'+ i, type: 'number', unit: 'kWh' });
          createState('PVAnlage.Stromzaehler.Berechnung.Solarproduktion.Monat'+ i,    0, {name: 'Erzeugter Strom PV-Anlage im Monat'+ i, type: 'number', unit: 'kWh' });
          createState('PVAnlage.Stromzaehler.Berechnung.Eigenverbrauch.Monat'+ i,    0, {name: 'Selbst verbrauchter PV-Strom im Monat'+ i, type: 'number', unit: 'kWh' });
          createState('PVAnlage.Stromzaehler.Berechnung.Autarkie.Monat'+ i,    0, {name: 'Autarkie Grad im Monat'+ i, type: 'number', unit: '%' });
          createState('PVAnlage.Stromzaehler.Berechnung.Datum'+ i);
          createState('PVAnlage.Stromzaehler.Berechnung.Datum'+ i,    '', {name: 'Ablesedatum im Monat'+ i});
          }
          
          
          const idJson = 'PVAnlage.Stromzaehler.JsonTable';
          
          // Zählerstände Monatlich um 23:55 speichern für Finanzamt
          
          schedule("0 0 1 * *", function() {
          var nBezugZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:1_8_0__255.value').val);
          var nEinspeiseZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:2_8_0__255.value').val);
          var PvZaehlerAktuell=Math.floor(getState('modbus.0.holdingRegisters.12288_E3DC_Lieferung Summe'/*12288 E3dc Lieferung Summe*/).val);
          var nBezugZaehlerAlt = getState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzbezug.alt').val;
          var nEinspeiseZaehlerAlt = getState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzeinspeisung.alt').val;
          var PvZaehlerAlt=getState('PVAnlage.Stromzaehler.Zaehlerstaende.Solarproduktion.alt').val;
          var nBezugZaehlerNeu = nBezugZaehlerAktuell - nBezugZaehlerAlt;
          var nEinspeiseZaehlerNeu = nEinspeiseZaehlerAktuell - nEinspeiseZaehlerAlt;
          var PvZaehlerNeu = PvZaehlerAktuell - PvZaehlerAlt;
          var EigenverbrauchNeu = PvZaehlerNeu - nEinspeiseZaehlerNeu;
          var AutarkieNeu = EigenverbrauchNeu / ((nBezugZaehlerNeu+EigenverbrauchNeu)/100);
          // Datum vom Vortag berechnen
          var jetzt = new Date();
          var Theute = jetzt.getDate();
          var Tgestern = new Date();
          Tgestern.setDate(Theute-1);
          var DatumAkt=((Tgestern.getDate())+'.'+ (Tgestern.getMonth()+1) +'.'+ Tgestern.getFullYear());
          var MonatAkt=(Tgestern.getMonth()+1);
          setState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzbezug.Monat'+ MonatAkt,nBezugZaehlerAktuell);
          setState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzeinspeisung.Monat'+ MonatAkt,nEinspeiseZaehlerAktuell);
          setState('PVAnlage.Stromzaehler.Zaehlerstaende.Solarproduktion.Monat'+ MonatAkt,PvZaehlerAktuell);
          setState('PVAnlage.Stromzaehler.Berechnung.Netzeinspeisung.Monat'+ MonatAkt,nEinspeiseZaehlerNeu);
          setState('PVAnlage.Stromzaehler.Berechnung.Netzbezug.Monat'+ MonatAkt,nBezugZaehlerNeu);
          setState('PVAnlage.Stromzaehler.Berechnung.Solarproduktion.Monat'+ MonatAkt,PvZaehlerNeu);
          setState('PVAnlage.Stromzaehler.Berechnung.Eigenverbrauch.Monat'+ MonatAkt,EigenverbrauchNeu);
          setState('PVAnlage.Stromzaehler.Berechnung.Autarkie.Monat'+ MonatAkt,AutarkieNeu);
          setState('PVAnlage.Stromzaehler.Berechnung.Datum'+ MonatAkt,DatumAkt);
          setState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzeinspeisung.alt',nEinspeiseZaehlerAktuell);
          setState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzbezug.alt',nBezugZaehlerAktuell);
          setState('PVAnlage.Stromzaehler.Zaehlerstaende.Solarproduktion.alt',PvZaehlerAktuell);
          // für Json aufbereiten
          
          let obj = {};
          // 6 Spalten
          obj.Datum = DatumAkt;
          
          obj.Einspeisung = nEinspeiseZaehlerNeu;
          
          obj.Netzbezug = nBezugZaehlerNeu;
          
          obj.Solarproduktion = PvZaehlerNeu;
          
          obj.Eigenverbrauch = EigenverbrauchNeu;
          
          obj.Autarkie = AutarkieNeu + ' %';
          
          let arr = [];
          
          if(existsState(idJson)) arr = JSON.parse(getState(idJson).val);
          
          arr.push(obj);
          
          if(arr.length > 12) arr.shift;
          
          if(existsState(idJson)) setState(idJson, JSON.stringify(arr), true);
          
          else createState(idJson, JSON.stringify(arr), {type: 'string'});
          });
          
          paul53P 1 Reply Last reply
          0
          • smartboartS smartboart

            @paul53
            das ja schon fertig...
            hab mir es eben mal genau angeschaut...
            Im Prinzip muss ich es nur anhängen oder?
            Also so...

            // Hausstromverbrauch aktuell berechnen **************************************************************************
            createState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzbezug.alt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
            createState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzeinspeisung.alt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
            createState('PVAnlage.Stromzaehler.Zaehlerstaende.Solarproduktion.alt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
            
            for(var i = 1; i<= 12; i++) {
            
            createState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzbezug.Monat'+ i,    0, {name: 'Zählerstand Netzbezug Monat'+ i, type: 'number', unit: 'kWh' });
            createState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzeinspeisung.Monat'+ i,    0, {name: 'Zählerstand Netzeinspeisung Monat'+ i, type: 'number', unit: 'kWh' });
            createState('PVAnlage.Stromzaehler.Zaehlerstaende.Solarproduktion.Monat'+ i,    0, {name: 'Zählerstand PV-Anlage Monat'+ i, type: 'number', unit: 'kWh' });
            createState('PVAnlage.Stromzaehler.Berechnung.Netzeinspeisung.Monat'+ i,    0, {name: 'Ins Netz eingespeiste kWh im Monat'+ i, type: 'number', unit: 'kWh' });
            createState('PVAnlage.Stromzaehler.Berechnung.Netzbezug.Monat'+ i,    0, {name: 'Aus Netz bezogene kWh im Monat'+ i, type: 'number', unit: 'kWh' });
            createState('PVAnlage.Stromzaehler.Berechnung.Solarproduktion.Monat'+ i,    0, {name: 'Erzeugter Strom PV-Anlage im Monat'+ i, type: 'number', unit: 'kWh' });
            createState('PVAnlage.Stromzaehler.Berechnung.Eigenverbrauch.Monat'+ i,    0, {name: 'Selbst verbrauchter PV-Strom im Monat'+ i, type: 'number', unit: 'kWh' });
            createState('PVAnlage.Stromzaehler.Berechnung.Autarkie.Monat'+ i,    0, {name: 'Autarkie Grad im Monat'+ i, type: 'number', unit: '%' });
            createState('PVAnlage.Stromzaehler.Berechnung.Datum'+ i);
            createState('PVAnlage.Stromzaehler.Berechnung.Datum'+ i,    '', {name: 'Ablesedatum im Monat'+ i});
            }
            
            
            const idJson = 'PVAnlage.Stromzaehler.JsonTable';
            
            // Zählerstände Monatlich um 23:55 speichern für Finanzamt
            
            schedule("0 0 1 * *", function() {
            var nBezugZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:1_8_0__255.value').val);
            var nEinspeiseZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:2_8_0__255.value').val);
            var PvZaehlerAktuell=Math.floor(getState('modbus.0.holdingRegisters.12288_E3DC_Lieferung Summe'/*12288 E3dc Lieferung Summe*/).val);
            var nBezugZaehlerAlt = getState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzbezug.alt').val;
            var nEinspeiseZaehlerAlt = getState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzeinspeisung.alt').val;
            var PvZaehlerAlt=getState('PVAnlage.Stromzaehler.Zaehlerstaende.Solarproduktion.alt').val;
            var nBezugZaehlerNeu = nBezugZaehlerAktuell - nBezugZaehlerAlt;
            var nEinspeiseZaehlerNeu = nEinspeiseZaehlerAktuell - nEinspeiseZaehlerAlt;
            var PvZaehlerNeu = PvZaehlerAktuell - PvZaehlerAlt;
            var EigenverbrauchNeu = PvZaehlerNeu - nEinspeiseZaehlerNeu;
            var AutarkieNeu = EigenverbrauchNeu / ((nBezugZaehlerNeu+EigenverbrauchNeu)/100);
            // Datum vom Vortag berechnen
            var jetzt = new Date();
            var Theute = jetzt.getDate();
            var Tgestern = new Date();
            Tgestern.setDate(Theute-1);
            var DatumAkt=((Tgestern.getDate())+'.'+ (Tgestern.getMonth()+1) +'.'+ Tgestern.getFullYear());
            var MonatAkt=(Tgestern.getMonth()+1);
            setState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzbezug.Monat'+ MonatAkt,nBezugZaehlerAktuell);
            setState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzeinspeisung.Monat'+ MonatAkt,nEinspeiseZaehlerAktuell);
            setState('PVAnlage.Stromzaehler.Zaehlerstaende.Solarproduktion.Monat'+ MonatAkt,PvZaehlerAktuell);
            setState('PVAnlage.Stromzaehler.Berechnung.Netzeinspeisung.Monat'+ MonatAkt,nEinspeiseZaehlerNeu);
            setState('PVAnlage.Stromzaehler.Berechnung.Netzbezug.Monat'+ MonatAkt,nBezugZaehlerNeu);
            setState('PVAnlage.Stromzaehler.Berechnung.Solarproduktion.Monat'+ MonatAkt,PvZaehlerNeu);
            setState('PVAnlage.Stromzaehler.Berechnung.Eigenverbrauch.Monat'+ MonatAkt,EigenverbrauchNeu);
            setState('PVAnlage.Stromzaehler.Berechnung.Autarkie.Monat'+ MonatAkt,AutarkieNeu);
            setState('PVAnlage.Stromzaehler.Berechnung.Datum'+ MonatAkt,DatumAkt);
            setState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzeinspeisung.alt',nEinspeiseZaehlerAktuell);
            setState('PVAnlage.Stromzaehler.Zaehlerstaende.Netzbezug.alt',nBezugZaehlerAktuell);
            setState('PVAnlage.Stromzaehler.Zaehlerstaende.Solarproduktion.alt',PvZaehlerAktuell);
            // für Json aufbereiten
            
            let obj = {};
            // 6 Spalten
            obj.Datum = DatumAkt;
            
            obj.Einspeisung = nEinspeiseZaehlerNeu;
            
            obj.Netzbezug = nBezugZaehlerNeu;
            
            obj.Solarproduktion = PvZaehlerNeu;
            
            obj.Eigenverbrauch = EigenverbrauchNeu;
            
            obj.Autarkie = AutarkieNeu + ' %';
            
            let arr = [];
            
            if(existsState(idJson)) arr = JSON.parse(getState(idJson).val);
            
            arr.push(obj);
            
            if(arr.length > 12) arr.shift;
            
            if(existsState(idJson)) setState(idJson, JSON.stringify(arr), true);
            
            else createState(idJson, JSON.stringify(arr), {type: 'string'});
            });
            
            paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #5

            @smartboart sagte:

            Also so...

            Ja.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            smartboartS 1 Reply Last reply
            0
            • paul53P paul53

              @smartboart sagte:

              Also so...

              Ja.

              smartboartS Offline
              smartboartS Offline
              smartboart
              wrote on last edited by
              #6

              @paul53
              super vielen lieben Dank...

              smartboartS 1 Reply Last reply
              0
              • smartboartS smartboart

                @paul53
                super vielen lieben Dank...

                smartboartS Offline
                smartboartS Offline
                smartboart
                wrote on last edited by smartboart
                #7

                @ArnoD
                hier das widget zum script ( matrial design Tabelle)

                Unbenannt.JPG


                [{"tpl":"tplVis-materialdesign-Table","data":{"oid":"javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.JsonTable","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"countCols":"8","tableLayout":"cardOutlined","showHeader":true,"headerTextSize":"small","showColumn0":true,"colType0":"text","textAlign0":"center","showColumn1":true,"colType1":"text","textAlign1":"center","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"showColumn2":true,"colType2":"text","textAlign2":"center","showColumn3":true,"colType3":"text","textAlign3":"center","showColumn4":true,"colType4":"text","textAlign4":"center","showColumn5":true,"colType5":"text","textAlign5":"center","showColumn6":true,"colType6":"text","textAlign6":"center","showColumn7":"true","colType7":"text","textAlign7":"center","showColumn8":true,"colType8":"text","textAlign8":"center","showColumn9":"true","colType9":"text","textAlign9":"center","showColumn10":"true","colType10":"text","textAlign10":"center","showColumn11":"true","colType11":"text","textAlign11":"center","showColumn12":"true","colType12":"text","textAlign12":"center","showColumn13":"true","colType13":"text","textAlign13":"center","showColumn14":"true","colType14":"text","textAlign14":"center","showColumn15":"true","colType15":"text","textAlign15":"center","showColumn16":"true","colType16":"text","textAlign16":"center","showColumn17":"true","colType17":"text","textAlign17":"center","headerRowHeight":"50","label0":"Ablese-<br>Datum","colTextColor0":"#9c9c9c","prefix0":"","colorHeaderRowText":"#9c9c9c","dividers":"#9c9c9c","colorBackground":"rgb(50,50,50)","colorHeaderRowBackground":"rgb(50,50,50)","columnWidth0":"","label1":"Einspeisung","label2":"Netzbezug","label3":"Solarproduktion","suffix3":"","suffix2":"","suffix1":"","label4":"Eigen-<br>Verbrauch","suffix4":"","label5":"Autarkie","suffix5":"","label6":"Netzeinspeise-<br>Zähler","suffix6":"","label7":"Netzbezugs-<br>Zähler","suffix7":"","label8":"PV Zähler","suffix8":"","label9":"Datum","suffix9":"","label10":"Dauer","rowHeight":"30","colorRowText":"#9c9c9c","borderColor":"transparent","colorRowBackground":"rgb(50,50,50)","dataJson":"","colNoWrap1":true,"colNoWrap0":true,"colNoWrap3":false,"showColumn18":"true","colType18":"text","textAlign18":"center","showColumn19":"true","colType19":"text","textAlign19":"center","showColumn20":"true","colType20":"text","textAlign20":"center","colNoWrap5":true,"colNoWrap4":false,"colNoWrap6":true,"colNoWrap7":true,"colNoWrap8":true,"colNoWrap9":true,"colNoWrap10":true,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","colTextColor2":"red","colTextColor10":"lightgreen","fixedHeader":true,"colTextColor3":"green","colTextColor1":"lightgreen","colTextColor4":"orange","colTextColor5":"yellow","colNoWrap2":true,"columnWidth6":"120","colTextColor6":"lightgreen","colTextColor7":"red","colTextColor8":"green","columnWidth7":"120","columnWidth3":"110","columnWidth4":"120"},"style":{"left":"0px","top":"1px","width":"942px","height":"430px","z-index":"1","background-color":"rgb(50,50,50)","overflow-x":"auto","overflow-y":"auto"},"widgetSet":"materialdesign"}]

                EDIT:
                Skript zuammen gekürzt nur noch die benötigten States enthalten.

                // Hausstromverbrauch aktuell berechnen **************************************************************************
                createState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
                createState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
                createState('PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
                
                const idJson = 'PVAnlage.Stromzaehler.Zaehlerstaende.JsonTable';
                
                // Zählerstände Monatlich um 23:55 speichern für Finanzamt
                
                schedule("0 0 1 * *", function() {   
                var nBezugZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:1_8_0__255.value').val);
                var nEinspeiseZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:2_8_0__255.value').val);
                var PvZaehlerAktuell=Math.floor(getState('modbus.0.holdingRegisters.12288_E3DC_Lieferung Summe'/*12288 E3dc Lieferung Summe*/).val);
                var nBezugZaehlerAlt = getState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt').val;
                var nEinspeiseZaehlerAlt = getState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt').val;
                var PvZaehlerAlt=getState('PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt').val;
                var nBezugZaehlerNeu = nBezugZaehlerAktuell - nBezugZaehlerAlt;
                var nEinspeiseZaehlerNeu = nEinspeiseZaehlerAktuell - nEinspeiseZaehlerAlt;
                var PvZaehlerNeu = PvZaehlerAktuell - PvZaehlerAlt;
                var EigenverbrauchNeu = PvZaehlerNeu - nEinspeiseZaehlerNeu;
                var AutarkieNeu = EigenverbrauchNeu / ((nBezugZaehlerNeu+EigenverbrauchNeu)/100);
                // Datum vom Vortag berechnen
                var jetzt = new Date();
                var Theute = jetzt.getDate();
                var Tgestern = new Date();
                Tgestern.setDate(Theute-1);
                var DatumAkt=((Tgestern.getDate())+'.'+ (Tgestern.getMonth()+1) +'.'+ Tgestern.getFullYear());
                var MonatAkt=(Tgestern.getMonth()+1);
                setState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',nEinspeiseZaehlerAktuell);
                setState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt',nBezugZaehlerAktuell);
                setState('PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt',PvZaehlerAktuell);
                // für Json aufbereiten
                let obj = {};
                // 9 Spalten
                obj.Datum = DatumAkt;
                obj.Netzeinspeisezähler = nEinspeiseZaehlerNeu + ' kWh';
                obj.Netzbezugszähler = nBezugZaehlerNeu + ' kWh';
                obj.PVzähler = PvZaehlerNeu + ' kWh';
                obj.Einspeisung = nEinspeiseZaehlerNeu + ' kWh';
                obj.Netzbezug = nBezugZaehlerNeu + ' kWh';
                obj.Solarproduktion = PvZaehlerNeu + ' kWh';
                obj.Eigenverbrauch = EigenverbrauchNeu + ' kWh';
                obj.Autarkie = AutarkieNeu + ' %';
                let arr = [];
                if(existsState(idJson)) arr = JSON.parse(getState(idJson).val);
                arr.push(obj);
                if(arr.length > 12) arr.shift;
                if(existsState(idJson)) setState(idJson, JSON.stringify(arr), true);
                else createState(idJson, JSON.stringify(arr), {type: 'string'});
                });
                
                smartboartS paul53P 2 Replies Last reply
                0
                • smartboartS smartboart

                  @ArnoD
                  hier das widget zum script ( matrial design Tabelle)

                  Unbenannt.JPG


                  [{"tpl":"tplVis-materialdesign-Table","data":{"oid":"javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.JsonTable","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"countCols":"8","tableLayout":"cardOutlined","showHeader":true,"headerTextSize":"small","showColumn0":true,"colType0":"text","textAlign0":"center","showColumn1":true,"colType1":"text","textAlign1":"center","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"showColumn2":true,"colType2":"text","textAlign2":"center","showColumn3":true,"colType3":"text","textAlign3":"center","showColumn4":true,"colType4":"text","textAlign4":"center","showColumn5":true,"colType5":"text","textAlign5":"center","showColumn6":true,"colType6":"text","textAlign6":"center","showColumn7":"true","colType7":"text","textAlign7":"center","showColumn8":true,"colType8":"text","textAlign8":"center","showColumn9":"true","colType9":"text","textAlign9":"center","showColumn10":"true","colType10":"text","textAlign10":"center","showColumn11":"true","colType11":"text","textAlign11":"center","showColumn12":"true","colType12":"text","textAlign12":"center","showColumn13":"true","colType13":"text","textAlign13":"center","showColumn14":"true","colType14":"text","textAlign14":"center","showColumn15":"true","colType15":"text","textAlign15":"center","showColumn16":"true","colType16":"text","textAlign16":"center","showColumn17":"true","colType17":"text","textAlign17":"center","headerRowHeight":"50","label0":"Ablese-<br>Datum","colTextColor0":"#9c9c9c","prefix0":"","colorHeaderRowText":"#9c9c9c","dividers":"#9c9c9c","colorBackground":"rgb(50,50,50)","colorHeaderRowBackground":"rgb(50,50,50)","columnWidth0":"","label1":"Einspeisung","label2":"Netzbezug","label3":"Solarproduktion","suffix3":"","suffix2":"","suffix1":"","label4":"Eigen-<br>Verbrauch","suffix4":"","label5":"Autarkie","suffix5":"","label6":"Netzeinspeise-<br>Zähler","suffix6":"","label7":"Netzbezugs-<br>Zähler","suffix7":"","label8":"PV Zähler","suffix8":"","label9":"Datum","suffix9":"","label10":"Dauer","rowHeight":"30","colorRowText":"#9c9c9c","borderColor":"transparent","colorRowBackground":"rgb(50,50,50)","dataJson":"","colNoWrap1":true,"colNoWrap0":true,"colNoWrap3":false,"showColumn18":"true","colType18":"text","textAlign18":"center","showColumn19":"true","colType19":"text","textAlign19":"center","showColumn20":"true","colType20":"text","textAlign20":"center","colNoWrap5":true,"colNoWrap4":false,"colNoWrap6":true,"colNoWrap7":true,"colNoWrap8":true,"colNoWrap9":true,"colNoWrap10":true,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","colTextColor2":"red","colTextColor10":"lightgreen","fixedHeader":true,"colTextColor3":"green","colTextColor1":"lightgreen","colTextColor4":"orange","colTextColor5":"yellow","colNoWrap2":true,"columnWidth6":"120","colTextColor6":"lightgreen","colTextColor7":"red","colTextColor8":"green","columnWidth7":"120","columnWidth3":"110","columnWidth4":"120"},"style":{"left":"0px","top":"1px","width":"942px","height":"430px","z-index":"1","background-color":"rgb(50,50,50)","overflow-x":"auto","overflow-y":"auto"},"widgetSet":"materialdesign"}]

                  EDIT:
                  Skript zuammen gekürzt nur noch die benötigten States enthalten.

                  // Hausstromverbrauch aktuell berechnen **************************************************************************
                  createState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
                  createState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
                  createState('PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
                  
                  const idJson = 'PVAnlage.Stromzaehler.Zaehlerstaende.JsonTable';
                  
                  // Zählerstände Monatlich um 23:55 speichern für Finanzamt
                  
                  schedule("0 0 1 * *", function() {   
                  var nBezugZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:1_8_0__255.value').val);
                  var nEinspeiseZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:2_8_0__255.value').val);
                  var PvZaehlerAktuell=Math.floor(getState('modbus.0.holdingRegisters.12288_E3DC_Lieferung Summe'/*12288 E3dc Lieferung Summe*/).val);
                  var nBezugZaehlerAlt = getState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt').val;
                  var nEinspeiseZaehlerAlt = getState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt').val;
                  var PvZaehlerAlt=getState('PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt').val;
                  var nBezugZaehlerNeu = nBezugZaehlerAktuell - nBezugZaehlerAlt;
                  var nEinspeiseZaehlerNeu = nEinspeiseZaehlerAktuell - nEinspeiseZaehlerAlt;
                  var PvZaehlerNeu = PvZaehlerAktuell - PvZaehlerAlt;
                  var EigenverbrauchNeu = PvZaehlerNeu - nEinspeiseZaehlerNeu;
                  var AutarkieNeu = EigenverbrauchNeu / ((nBezugZaehlerNeu+EigenverbrauchNeu)/100);
                  // Datum vom Vortag berechnen
                  var jetzt = new Date();
                  var Theute = jetzt.getDate();
                  var Tgestern = new Date();
                  Tgestern.setDate(Theute-1);
                  var DatumAkt=((Tgestern.getDate())+'.'+ (Tgestern.getMonth()+1) +'.'+ Tgestern.getFullYear());
                  var MonatAkt=(Tgestern.getMonth()+1);
                  setState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',nEinspeiseZaehlerAktuell);
                  setState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt',nBezugZaehlerAktuell);
                  setState('PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt',PvZaehlerAktuell);
                  // für Json aufbereiten
                  let obj = {};
                  // 9 Spalten
                  obj.Datum = DatumAkt;
                  obj.Netzeinspeisezähler = nEinspeiseZaehlerNeu + ' kWh';
                  obj.Netzbezugszähler = nBezugZaehlerNeu + ' kWh';
                  obj.PVzähler = PvZaehlerNeu + ' kWh';
                  obj.Einspeisung = nEinspeiseZaehlerNeu + ' kWh';
                  obj.Netzbezug = nBezugZaehlerNeu + ' kWh';
                  obj.Solarproduktion = PvZaehlerNeu + ' kWh';
                  obj.Eigenverbrauch = EigenverbrauchNeu + ' kWh';
                  obj.Autarkie = AutarkieNeu + ' %';
                  let arr = [];
                  if(existsState(idJson)) arr = JSON.parse(getState(idJson).val);
                  arr.push(obj);
                  if(arr.length > 12) arr.shift;
                  if(existsState(idJson)) setState(idJson, JSON.stringify(arr), true);
                  else createState(idJson, JSON.stringify(arr), {type: 'string'});
                  });
                  
                  smartboartS Offline
                  smartboartS Offline
                  smartboart
                  wrote on last edited by
                  #8

                  im Prinzip braucht man die ganzen states garnicht mehr...
                  ob ein Export ins filesystem nötig ist , bin ich mir garnicht so sicher...Ein screenschot würde mir schon reichen fürs Finanzamt...

                  1 Reply Last reply
                  0
                  • smartboartS smartboart

                    @ArnoD
                    hier das widget zum script ( matrial design Tabelle)

                    Unbenannt.JPG


                    [{"tpl":"tplVis-materialdesign-Table","data":{"oid":"javascript.1.PVAnlage.Stromzaehler.Zaehlerstaende.JsonTable","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"countCols":"8","tableLayout":"cardOutlined","showHeader":true,"headerTextSize":"small","showColumn0":true,"colType0":"text","textAlign0":"center","showColumn1":true,"colType1":"text","textAlign1":"center","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"showColumn2":true,"colType2":"text","textAlign2":"center","showColumn3":true,"colType3":"text","textAlign3":"center","showColumn4":true,"colType4":"text","textAlign4":"center","showColumn5":true,"colType5":"text","textAlign5":"center","showColumn6":true,"colType6":"text","textAlign6":"center","showColumn7":"true","colType7":"text","textAlign7":"center","showColumn8":true,"colType8":"text","textAlign8":"center","showColumn9":"true","colType9":"text","textAlign9":"center","showColumn10":"true","colType10":"text","textAlign10":"center","showColumn11":"true","colType11":"text","textAlign11":"center","showColumn12":"true","colType12":"text","textAlign12":"center","showColumn13":"true","colType13":"text","textAlign13":"center","showColumn14":"true","colType14":"text","textAlign14":"center","showColumn15":"true","colType15":"text","textAlign15":"center","showColumn16":"true","colType16":"text","textAlign16":"center","showColumn17":"true","colType17":"text","textAlign17":"center","headerRowHeight":"50","label0":"Ablese-<br>Datum","colTextColor0":"#9c9c9c","prefix0":"","colorHeaderRowText":"#9c9c9c","dividers":"#9c9c9c","colorBackground":"rgb(50,50,50)","colorHeaderRowBackground":"rgb(50,50,50)","columnWidth0":"","label1":"Einspeisung","label2":"Netzbezug","label3":"Solarproduktion","suffix3":"","suffix2":"","suffix1":"","label4":"Eigen-<br>Verbrauch","suffix4":"","label5":"Autarkie","suffix5":"","label6":"Netzeinspeise-<br>Zähler","suffix6":"","label7":"Netzbezugs-<br>Zähler","suffix7":"","label8":"PV Zähler","suffix8":"","label9":"Datum","suffix9":"","label10":"Dauer","rowHeight":"30","colorRowText":"#9c9c9c","borderColor":"transparent","colorRowBackground":"rgb(50,50,50)","dataJson":"","colNoWrap1":true,"colNoWrap0":true,"colNoWrap3":false,"showColumn18":"true","colType18":"text","textAlign18":"center","showColumn19":"true","colType19":"text","textAlign19":"center","showColumn20":"true","colType20":"text","textAlign20":"center","colNoWrap5":true,"colNoWrap4":false,"colNoWrap6":true,"colNoWrap7":true,"colNoWrap8":true,"colNoWrap9":true,"colNoWrap10":true,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","colTextColor2":"red","colTextColor10":"lightgreen","fixedHeader":true,"colTextColor3":"green","colTextColor1":"lightgreen","colTextColor4":"orange","colTextColor5":"yellow","colNoWrap2":true,"columnWidth6":"120","colTextColor6":"lightgreen","colTextColor7":"red","colTextColor8":"green","columnWidth7":"120","columnWidth3":"110","columnWidth4":"120"},"style":{"left":"0px","top":"1px","width":"942px","height":"430px","z-index":"1","background-color":"rgb(50,50,50)","overflow-x":"auto","overflow-y":"auto"},"widgetSet":"materialdesign"}]

                    EDIT:
                    Skript zuammen gekürzt nur noch die benötigten States enthalten.

                    // Hausstromverbrauch aktuell berechnen **************************************************************************
                    createState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
                    createState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
                    createState('PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
                    
                    const idJson = 'PVAnlage.Stromzaehler.Zaehlerstaende.JsonTable';
                    
                    // Zählerstände Monatlich um 23:55 speichern für Finanzamt
                    
                    schedule("0 0 1 * *", function() {   
                    var nBezugZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:1_8_0__255.value').val);
                    var nEinspeiseZaehlerAktuell = Math.floor(getState('smartmeter.0.1-0:2_8_0__255.value').val);
                    var PvZaehlerAktuell=Math.floor(getState('modbus.0.holdingRegisters.12288_E3DC_Lieferung Summe'/*12288 E3dc Lieferung Summe*/).val);
                    var nBezugZaehlerAlt = getState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt').val;
                    var nEinspeiseZaehlerAlt = getState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt').val;
                    var PvZaehlerAlt=getState('PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt').val;
                    var nBezugZaehlerNeu = nBezugZaehlerAktuell - nBezugZaehlerAlt;
                    var nEinspeiseZaehlerNeu = nEinspeiseZaehlerAktuell - nEinspeiseZaehlerAlt;
                    var PvZaehlerNeu = PvZaehlerAktuell - PvZaehlerAlt;
                    var EigenverbrauchNeu = PvZaehlerNeu - nEinspeiseZaehlerNeu;
                    var AutarkieNeu = EigenverbrauchNeu / ((nBezugZaehlerNeu+EigenverbrauchNeu)/100);
                    // Datum vom Vortag berechnen
                    var jetzt = new Date();
                    var Theute = jetzt.getDate();
                    var Tgestern = new Date();
                    Tgestern.setDate(Theute-1);
                    var DatumAkt=((Tgestern.getDate())+'.'+ (Tgestern.getMonth()+1) +'.'+ Tgestern.getFullYear());
                    var MonatAkt=(Tgestern.getMonth()+1);
                    setState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',nEinspeiseZaehlerAktuell);
                    setState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt',nBezugZaehlerAktuell);
                    setState('PVAnlage.Stromzaehler.Zaehlerstaende.SolarproduktionAlt',PvZaehlerAktuell);
                    // für Json aufbereiten
                    let obj = {};
                    // 9 Spalten
                    obj.Datum = DatumAkt;
                    obj.Netzeinspeisezähler = nEinspeiseZaehlerNeu + ' kWh';
                    obj.Netzbezugszähler = nBezugZaehlerNeu + ' kWh';
                    obj.PVzähler = PvZaehlerNeu + ' kWh';
                    obj.Einspeisung = nEinspeiseZaehlerNeu + ' kWh';
                    obj.Netzbezug = nBezugZaehlerNeu + ' kWh';
                    obj.Solarproduktion = PvZaehlerNeu + ' kWh';
                    obj.Eigenverbrauch = EigenverbrauchNeu + ' kWh';
                    obj.Autarkie = AutarkieNeu + ' %';
                    let arr = [];
                    if(existsState(idJson)) arr = JSON.parse(getState(idJson).val);
                    arr.push(obj);
                    if(arr.length > 12) arr.shift;
                    if(existsState(idJson)) setState(idJson, JSON.stringify(arr), true);
                    else createState(idJson, JSON.stringify(arr), {type: 'string'});
                    });
                    
                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #9

                    @smartboart sagte:

                    Skript zuammen gekürzt

                    Die Masseinheiten sind falsch. Richtig: kWh

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    smartboartS 1 Reply Last reply
                    0
                    • paul53P paul53

                      @smartboart sagte:

                      Skript zuammen gekürzt

                      Die Masseinheiten sind falsch. Richtig: kWh

                      smartboartS Offline
                      smartboartS Offline
                      smartboart
                      wrote on last edited by
                      #10

                      @paul53 Danke für den Hinweis..habs geändert.

                      smartboartS 1 Reply Last reply
                      0
                      • smartboartS smartboart

                        @paul53 Danke für den Hinweis..habs geändert.

                        smartboartS Offline
                        smartboartS Offline
                        smartboart
                        wrote on last edited by
                        #11

                        Habe noch die 3 Spalten hinzu genommen...
                        hatte ich vergessen...

                        obj.Netzeinspeisezähler = nEinspeiseZaehlerNeu + ' kWh';
                        obj.Netzbezugszähler = nBezugZaehlerNeu + ' kWh';
                        obj.PVzähler = PvZaehlerNeu + ' kWh';

                        Skript oben aktualisiert...

                        smartboartS 1 Reply Last reply
                        0
                        • smartboartS smartboart

                          Habe noch die 3 Spalten hinzu genommen...
                          hatte ich vergessen...

                          obj.Netzeinspeisezähler = nEinspeiseZaehlerNeu + ' kWh';
                          obj.Netzbezugszähler = nBezugZaehlerNeu + ' kWh';
                          obj.PVzähler = PvZaehlerNeu + ' kWh';

                          Skript oben aktualisiert...

                          smartboartS Offline
                          smartboartS Offline
                          smartboart
                          wrote on last edited by
                          #12

                          so ich habe mal den 1. Beitrag aktualisiert...
                          hier findet sich dann immer das aktuellste Skript..

                          ich habe das Skript von ArnoD mit Hilfe von paul53 weiter aufgebohrt und zusätzlich um die Kostenberechnung für die Privatentnahme erweitert. Ebenfalls 2 States hinzu um die Stromkosten und mittlerweile wechselhafte MWST über vis anzupassen.
                          Die widgets gibts noch obendrauf...
                          Wie das ganze aussieht... siehe im 1. Beitrag

                          A 1 Reply Last reply
                          0
                          • smartboartS smartboart

                            so ich habe mal den 1. Beitrag aktualisiert...
                            hier findet sich dann immer das aktuellste Skript..

                            ich habe das Skript von ArnoD mit Hilfe von paul53 weiter aufgebohrt und zusätzlich um die Kostenberechnung für die Privatentnahme erweitert. Ebenfalls 2 States hinzu um die Stromkosten und mittlerweile wechselhafte MWST über vis anzupassen.
                            Die widgets gibts noch obendrauf...
                            Wie das ganze aussieht... siehe im 1. Beitrag

                            A Offline
                            A Offline
                            ArnoD
                            wrote on last edited by
                            #13

                            @smartboart tolle Arbeit, sieht ja klasse aus.
                            Werde ich gleich mal bei mir testen.

                            Danke auch an paul53 :-)

                            1 Reply Last reply
                            0
                            • A Offline
                              A Offline
                              ArnoD
                              wrote on last edited by ArnoD
                              #14

                              @smartboart
                              Hier hast du noch Kopierfehler drin. richtig ist:

                                  
                                  obj.Netzeinspeisezähler = nBezugZaehlerAktuell + ' kWh';
                                  obj.Netzbezugszähler = nEinspeiseZaehlerAktuell + ' kWh';
                                  obj.PVzähler = PvZaehlerAktuell + ' kWh';
                                  
                              
                              smartboartS 1 Reply Last reply
                              0
                              • A ArnoD

                                @smartboart
                                Hier hast du noch Kopierfehler drin. richtig ist:

                                    
                                    obj.Netzeinspeisezähler = nBezugZaehlerAktuell + ' kWh';
                                    obj.Netzbezugszähler = nEinspeiseZaehlerAktuell + ' kWh';
                                    obj.PVzähler = PvZaehlerAktuell + ' kWh';
                                    
                                
                                smartboartS Offline
                                smartboartS Offline
                                smartboart
                                wrote on last edited by
                                #15

                                @ArnoD sagte in Stromzählerscript PV Anlage Finanzamt in Json oder html:

                                @smartboart
                                Hier hast du noch Kopierfehler drin. richtig ist:

                                    
                                    obj.Netzeinspeisezähler = nBezugZaehlerAktuell + ' kWh';
                                    obj.Netzbezugszähler = nEinspeiseZaehlerAktuell + ' kWh';
                                    obj.PVzähler = PvZaehlerAktuell + ' kWh';
                                    
                                

                                Oh ja super....Gut aufgepasst....Danke sehr....
                                ist mir nicht aufgefallen, weil beim 1. Monat hats ja gestimmt..

                                Habs geändert...

                                A 1 Reply Last reply
                                0
                                • smartboartS smartboart

                                  @ArnoD sagte in Stromzählerscript PV Anlage Finanzamt in Json oder html:

                                  @smartboart
                                  Hier hast du noch Kopierfehler drin. richtig ist:

                                      
                                      obj.Netzeinspeisezähler = nBezugZaehlerAktuell + ' kWh';
                                      obj.Netzbezugszähler = nEinspeiseZaehlerAktuell + ' kWh';
                                      obj.PVzähler = PvZaehlerAktuell + ' kWh';
                                      
                                  

                                  Oh ja super....Gut aufgepasst....Danke sehr....
                                  ist mir nicht aufgefallen, weil beim 1. Monat hats ja gestimmt..

                                  Habs geändert...

                                  A Offline
                                  A Offline
                                  ArnoD
                                  wrote on last edited by ArnoD
                                  #16

                                  @smartboart
                                  Ich habe diese Zeile auch noch geänder, da bei dem % Wert keine Nachkommastellen benötigt werden und spart Platz in der Tabelle in VIS :-)

                                  var AutarkieNeu = Math.round(EigenverbrauchNeu / ((nBezugZaehlerNeu+EigenverbrauchNeu)/100));
                                  
                                  smartboartS 1 Reply Last reply
                                  0
                                  • A ArnoD

                                    @smartboart
                                    Ich habe diese Zeile auch noch geänder, da bei dem % Wert keine Nachkommastellen benötigt werden und spart Platz in der Tabelle in VIS :-)

                                    var AutarkieNeu = Math.round(EigenverbrauchNeu / ((nBezugZaehlerNeu+EigenverbrauchNeu)/100));
                                    
                                    smartboartS Offline
                                    smartboartS Offline
                                    smartboart
                                    wrote on last edited by
                                    #17

                                    @ArnoD habs geändert

                                    1 Reply Last reply
                                    0
                                    • A Offline
                                      A Offline
                                      ArnoD
                                      wrote on last edited by
                                      #18

                                      @smartboart
                                      Habe mal eine Frage, wie berechnest du eigentlich den Strompreis ohne Grundpreis? oder hast du keinen Grundpreis

                                      1 Reply Last reply
                                      0
                                      • A Offline
                                        A Offline
                                        ArnoD
                                        wrote on last edited by
                                        #19

                                        Steuerlich richtig wäre doch folgende Berechnung:

                                        StromPreis =(NettoGrundpreis / (nBezugZaehlerNeu+EigenverbrauchNeu))+ NettoStrompreis
                                        Entnahme = Math.round((EigenverbrauchNeu*StromPreis)100)/100;
                                        UstAnmeldung = Math.round((Entnahme/100
                                        MWST)*100)/100;

                                        smartboartS 1 Reply Last reply
                                        0
                                        • A Offline
                                          A Offline
                                          ArnoD
                                          wrote on last edited by ArnoD
                                          #20

                                          Habe es mal geändert falls du es übernehmen willst:

                                          // Hausstromverbrauch aktuell berechnen **************************************************************************
                                          createState('Test.Stromzaehler.Zaehlerstaende.NetzbezugAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
                                          createState('Test.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
                                          createState('Test.Stromzaehler.Zaehlerstaende.SolarproduktionAlt',    0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' });
                                          createState('Test.Stromzaehler.Zaehlerstaende.Mehrwertsteuersatz',    16, {name: 'aktueller Mehrwertsteuersatz', type: 'number', unit: '%' });
                                          createState('Test.Stromzaehler.Zaehlerstaende.Nettostrompreis',    0.2638, {name: 'Strompreis netto pro kwh', type: 'number', unit: '€' });
                                          createState('Test.Stromzaehler.Zaehlerstaende.NettoGrundpreis',    8.5, {name: 'Grundpreis netto pro Monat', type: 'number', unit: '€' });
                                          
                                          const idJson = 'Test.Stromzaehler.Zaehlerstaende.JsonTable';
                                          
                                          var debug = true;
                                          //Math.round((ProduktionGesamt-EinspeisungGesamt)*100)/100,true,200 );
                                          // Zählerstände Monatlich um 23:55 speichern für Finanzamt
                                          schedule("0 0 1 * *", function() { 
                                              if (debug)log('Schedule für Monatliche Berechnung fürs Finanzamt aktiv');      
                                              var nBezugZaehlerAktuell = Math.floor(getState('hm-rpc.0.QEQ0337064.1.IEC_ENERGY_COUNTER').val);
                                              var nEinspeiseZaehlerAktuell = Math.floor(getState('hm-rpc.0.QEQ0337064.2.IEC_ENERGY_COUNTER').val);
                                              var PvZaehlerAktuell=Math.floor(getState('hm-rpc.0.QEQ0337042.1.IEC_ENERGY_COUNTER').val);
                                              var MWST = getState('Test.Stromzaehler.Zaehlerstaende.Mehrwertsteuersatz').val;
                                              var NettoStrompreis = getState('Test.Stromzaehler.Zaehlerstaende.Nettostrompreis').val;
                                              var NettoGrundpreis = getState('Test.Stromzaehler.Zaehlerstaende.NettoGrundpreis').val;
                                              var nBezugZaehlerAlt = getState('Test.Stromzaehler.Zaehlerstaende.NetzbezugAlt').val;
                                              var nEinspeiseZaehlerAlt = getState('Test.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt').val;
                                              var PvZaehlerAlt=getState('Test.Stromzaehler.Zaehlerstaende.SolarproduktionAlt').val;
                                              var nBezugZaehlerNeu = nBezugZaehlerAktuell - nBezugZaehlerAlt;
                                              var nEinspeiseZaehlerNeu = nEinspeiseZaehlerAktuell - nEinspeiseZaehlerAlt;
                                              var PvZaehlerNeu = PvZaehlerAktuell - PvZaehlerAlt;
                                              var EigenverbrauchNeu = PvZaehlerNeu - nEinspeiseZaehlerNeu;
                                              var AutarkieNeu = Math.round(EigenverbrauchNeu / ((nBezugZaehlerNeu+EigenverbrauchNeu)/100));
                                              var StromPreis = (NettoGrundpreis/(nBezugZaehlerNeu+EigenverbrauchNeu))+NettoStrompreis;
                                              var Entnahme = Math.round((EigenverbrauchNeu*StromPreis)*100)/100;
                                              var UstAnmeldung = Math.round((Entnahme/100*MWST)*100)/100;
                                          
                                              // Datum vom Vortag berechnen
                                              var jetzt = new Date();
                                              var Theute = jetzt.getDate();
                                              var Tgestern = new Date();
                                              Tgestern.setDate(Theute-1);
                                              var DatumAkt=((Tgestern.getDate())+'.'+ (Tgestern.getMonth()+1) +'.'+ Tgestern.getFullYear());
                                              var MonatAkt=(Tgestern.getMonth()+1);
                                              setState('Test.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',nEinspeiseZaehlerAktuell);
                                              setState('Test.Stromzaehler.Zaehlerstaende.NetzbezugAlt',nBezugZaehlerAktuell);
                                              setState('Test.Stromzaehler.Zaehlerstaende.SolarproduktionAlt',PvZaehlerAktuell);
                                              if(debug)setTimeout(function(){log('Json aktualisiert ' + JSON.stringify(arr))},200);
                                          
                                              // für Json aufbereiten
                                              let obj = {};
                                          
                                              // 12 Spalten
                                              obj.Datum = DatumAkt;
                                              obj.Einspeisung = nEinspeiseZaehlerNeu + ' kWh';
                                              obj.Netzbezug = nBezugZaehlerNeu + ' kWh';
                                              obj.Solarproduktion = PvZaehlerNeu + ' kWh';
                                              obj.Eigenverbrauch = EigenverbrauchNeu + ' kWh';
                                              obj.Autarkie = AutarkieNeu + ' %';
                                              obj.Netzeinspeisezähler = nBezugZaehlerAktuell + ' kWh';
                                              obj.Netzbezugszähler = nEinspeiseZaehlerAktuell + ' kWh';
                                              obj.PVzähler = PvZaehlerAktuell + ' kWh';
                                              obj.Privatentnahme = Entnahme + ' €';
                                              obj.Ust = UstAnmeldung + ' €';
                                              obj.Mwst = MWST + ' %'
                                              obj.Strompreis = StromPreis + ' €/kWh';
                                              let arr = [];
                                              if(existsState(idJson)) arr = JSON.parse(getState(idJson).val);
                                              arr.push(obj);
                                              if(arr.length > 12) arr.shift;
                                              if(existsState(idJson)) setState(idJson, JSON.stringify(arr), true);
                                              else createState(idJson, JSON.stringify(arr), {type: 'string'});
                                          });
                                          
                                          smartboartS 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          300

                                          Online

                                          32.6k

                                          Users

                                          82.2k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe