Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    508

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

Stromzählerscript PV Anlage Finanzamt in Json oder html

Geplant Angeheftet Gesperrt Verschoben JavaScript
84 Beiträge 9 Kommentatoren 10.5k Aufrufe 12 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • smartboartS smartboart

    @wendy2702 schau vorher mal ob die Datei angelegt wurde und ob diese weiter beschrieben wird... Dann liegt es am json state.. Aber da müsste Dann auch was im log stehen...

    wendy2702W Offline
    wendy2702W Offline
    wendy2702
    schrieb am zuletzt editiert von
    #75

    @smartboart Datei wird angelegt.

    Aktuell stehen die letzten Einträge von gestern drin.

    In der Tabelle aber nur bis 26.02.

    Werden alte einträge in der Tabelle nicht raus geschoben oder sollte ich einen Scrollbalken bekommen?

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

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

    A smartboartS 2 Antworten Letzte Antwort
    0
    • wendy2702W wendy2702

      @smartboart Datei wird angelegt.

      Aktuell stehen die letzten Einträge von gestern drin.

      In der Tabelle aber nur bis 26.02.

      Werden alte einträge in der Tabelle nicht raus geschoben oder sollte ich einen Scrollbalken bekommen?

      A Offline
      A Offline
      ArnoD
      schrieb am zuletzt editiert von ArnoD
      #76

      @wendy2702
      Welches Widget verwendest du zur Anzeige ?
      Du solltest eine Scrollbalken bekommen, wenn nicht dann mal die Einstellungen vom Widget prüfen.

      1 Antwort Letzte Antwort
      0
      • wendy2702W wendy2702

        @smartboart Datei wird angelegt.

        Aktuell stehen die letzten Einträge von gestern drin.

        In der Tabelle aber nur bis 26.02.

        Werden alte einträge in der Tabelle nicht raus geschoben oder sollte ich einen Scrollbalken bekommen?

        smartboartS Offline
        smartboartS Offline
        smartboart
        schrieb am zuletzt editiert von smartboart
        #77

        @wendy2702 die Tabelle wird nur auf 12 einträge begrenzt wenn du die variable entsprechend auf true gesetzt hast:

        var Begrenzung = false; // Wenn auf 12 Monatseinträge begrenzt werden soll, auf true setzen..

        Wenn die Werte aber in der Datei sind, müssen sie auch im json state sein...wenn nicht stimmt damit was nicht. Die Tabelle zeigt den Inhalt des JSOn state an Was da nicht drinne ist ist auch nicht in der Tabelle. Hast den Stet mal neu angelegt wie ich es schon mal vorgeschlagen habe und oder mal im log nach Fehler geschaut wie z.B das der state nicht beschrieben werden kann oder nicht da ist?

        Bei dem Script kann man eigentlich nix falsch machen. Es müssen nur die 3 Stromzähler angepasst werden , dann läuft es...
        Natürlich sollten die Parameter wie Strompreis usw.auch angepasst werden. sind aber nicht essentiell für die Lauffähigkeit.

        wendy2702W 1 Antwort Letzte Antwort
        0
        • smartboartS smartboart

          @wendy2702 die Tabelle wird nur auf 12 einträge begrenzt wenn du die variable entsprechend auf true gesetzt hast:

          var Begrenzung = false; // Wenn auf 12 Monatseinträge begrenzt werden soll, auf true setzen..

          Wenn die Werte aber in der Datei sind, müssen sie auch im json state sein...wenn nicht stimmt damit was nicht. Die Tabelle zeigt den Inhalt des JSOn state an Was da nicht drinne ist ist auch nicht in der Tabelle. Hast den Stet mal neu angelegt wie ich es schon mal vorgeschlagen habe und oder mal im log nach Fehler geschaut wie z.B das der state nicht beschrieben werden kann oder nicht da ist?

          Bei dem Script kann man eigentlich nix falsch machen. Es müssen nur die 3 Stromzähler angepasst werden , dann läuft es...
          Natürlich sollten die Parameter wie Strompreis usw.auch angepasst werden. sind aber nicht essentiell für die Lauffähigkeit.

          wendy2702W Offline
          wendy2702W Offline
          wendy2702
          schrieb am zuletzt editiert von
          #78

          @smartboart Ich schaue mir das morgen nochmal an.

          Heute komme ich nicht mehr dazu.

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

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

          1 Antwort Letzte Antwort
          0
          • wendy2702W Offline
            wendy2702W Offline
            wendy2702
            schrieb am zuletzt editiert von
            #79

            File wird scheinbar beschrieben.

            Da finde ich aktuelle Daten drin.

            Allerdings kann ich den View weder im Editor noch in der VIS öffnen. Browser sagen immer das die Seite nicht mehr reagiert. Denke das liegt an den mittlerweile reichlich Werten.

            Werde das nochmal von vorne Starten und den Schedule auf einmal Monatlich ändern. Mal sehen ob es dann auch bei mir läuft.

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

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

            smartboartS 1 Antwort Letzte Antwort
            0
            • wendy2702W wendy2702

              File wird scheinbar beschrieben.

              Da finde ich aktuelle Daten drin.

              Allerdings kann ich den View weder im Editor noch in der VIS öffnen. Browser sagen immer das die Seite nicht mehr reagiert. Denke das liegt an den mittlerweile reichlich Werten.

              Werde das nochmal von vorne Starten und den Schedule auf einmal Monatlich ändern. Mal sehen ob es dann auch bei mir läuft.

              smartboartS Offline
              smartboartS Offline
              smartboart
              schrieb am zuletzt editiert von smartboart
              #80

              @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 1 Antwort Letzte Antwort
              0
              • 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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von glitzi
                  #82

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

                  1 Antwort Letzte Antwort
                  0
                  • wendy2702W Offline
                    wendy2702W Offline
                    wendy2702
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #84

                      @wendy2702
                      siehe ersten Beitrag von smartboart

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      728

                      Online

                      32.5k

                      Benutzer

                      81.8k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe