NEWS
Stromzählerscript PV Anlage Finanzamt in Json oder html
-
@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...@smartboart Ich habe es aktuell gestoppt. Warte jetzt bis morgen und starte es dann mit monatlichem Trigger.
Danke für deine Hilfe.
-
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

-
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.
@wendy2702
siehe ersten Beitrag von smartboart