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 smartboart

    @wendy2702
    Also als ich das script bearbeitet habe habe ich mit sekunden schedule getestet... Nach ein paar Einträgen kann man schon sagen das es klappt.
    Dann das script gestoppt und alle states gelöscht. Dann das script im monatlichen schedule neu gestartet.
    Ich arbeite mit redis und habe festgestellt, dass man hier ruihg etwas warten sollte nachdem man die states gelöscht hat...

    wendy2702W Offline
    wendy2702W Offline
    wendy2702
    wrote on last edited by
    #81

    @smartboart Ich habe es aktuell gestoppt. Warte jetzt bis morgen und starte es dann mit monatlichem Trigger.

    Danke für deine Hilfe.

    Bitte keine Fragen per PN, die gehören ins Forum!

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    1 Reply 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

      G Offline
      G Offline
      glitzi
      wrote on last edited by glitzi
      #82

      ich kann es nicht mehr löschen, meine Frage hat sich erledigt...

      1 Reply Last reply
      0
      • wendy2702W Offline
        wendy2702W Offline
        wendy2702
        wrote on last edited by
        #83

        Leider ist das Thema bei mir etwas eingeschlafen.

        Hat jemand noch das aktuell funktionierende Script, ich kann das zuletzt laufende auf meinem Rechner leider nicht mehr finden.

        Bitte keine Fragen per PN, die gehören ins Forum!

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        A 1 Reply Last reply
        0
        • wendy2702W wendy2702

          Leider ist das Thema bei mir etwas eingeschlafen.

          Hat jemand noch das aktuell funktionierende Script, ich kann das zuletzt laufende auf meinem Rechner leider nicht mehr finden.

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

          @wendy2702
          siehe ersten Beitrag von smartboart

          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

          381

          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