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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    989

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Stromzählerscript PV Anlage Finanzamt in Json oder html

Geplant Angeheftet Gesperrt Verschoben JavaScript
84 Beiträge 9 Kommentatoren 10.0k 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.
  • A ArnoD

    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 Offline
    smartboartS Offline
    smartboart
    schrieb am zuletzt editiert von smartboart
    #21

    @ArnoD ja hast du richtig erkannt.. Im Moment habe ich noch einen Tarif ohne Grundpreis... Das wird bestimmt aber bei mir auch bald ein Thema,da ich mir nicht vorstellen kann, dass die mich in dem Tarif lassen werden.. Vermutlich nach vertragsablauf wird das akut..

    Aber wenn du dafür ne Lösung gefunden hast.. Nehme ich die natürlich auch gleich mit..

    Mit 0 € wird die Formel glaube ich nicht funktionieren...

    Müsste das in vis konfigurierbar machen.. Mit und ohne Grundpreis.. Denke ein boolean zusätzlich mit ner if erledigt das im Handumdrehen..
    Ahh Sollte auch ohne gehen if 0 tuts bestimmt auch...
    super...

    smartboartS 1 Antwort Letzte Antwort
    0
    • smartboartS smartboart

      @ArnoD ja hast du richtig erkannt.. Im Moment habe ich noch einen Tarif ohne Grundpreis... Das wird bestimmt aber bei mir auch bald ein Thema,da ich mir nicht vorstellen kann, dass die mich in dem Tarif lassen werden.. Vermutlich nach vertragsablauf wird das akut..

      Aber wenn du dafür ne Lösung gefunden hast.. Nehme ich die natürlich auch gleich mit..

      Mit 0 € wird die Formel glaube ich nicht funktionieren...

      Müsste das in vis konfigurierbar machen.. Mit und ohne Grundpreis.. Denke ein boolean zusätzlich mit ner if erledigt das im Handumdrehen..
      Ahh Sollte auch ohne gehen if 0 tuts bestimmt auch...
      super...

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

      Komme heute aber nicht mehr dazu... Vlt. In der Mittagspause morgen. Brennt ja nicht an und du hast es ja schon hier eingestellt.. Ist ja nur ein spezieller Fall für mich den ich hier noch abbilden möchte..

      1 Antwort Letzte Antwort
      0
      • A ArnoD

        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 Offline
        smartboartS Offline
        smartboart
        schrieb am zuletzt editiert von
        #23

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

        StromPreis =(NettoGrundpreis / (nBezugZaehlerNeu+EigenverbrauchNeu))+ NettoStrompreis

        Im Beitrag hast es noch richtig...

        im Script unten hast du + NettoGrundpreis....

        Habe das Script oben angepasst... mit ner if Bedingung...

        meinst du wird sollten der Tabelle nen Timeout / bisschen Zeit geben bis die Variablen alle Sicher berechnet wurden?

        A 1 Antwort Letzte Antwort
        0
        • smartboartS smartboart

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

          StromPreis =(NettoGrundpreis / (nBezugZaehlerNeu+EigenverbrauchNeu))+ NettoStrompreis

          Im Beitrag hast es noch richtig...

          im Script unten hast du + NettoGrundpreis....

          Habe das Script oben angepasst... mit ner if Bedingung...

          meinst du wird sollten der Tabelle nen Timeout / bisschen Zeit geben bis die Variablen alle Sicher berechnet wurden?

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

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

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

          StromPreis =(NettoGrundpreis / (nBezugZaehlerNeu+EigenverbrauchNeu))+ NettoStrompreis

          Im Beitrag hast es noch richtig...

          im Script unten hast du + NettoGrundpreis....

          Habe das Script oben angepasst... mit ner if Bedingung...

          meinst du wird sollten der Tabelle nen Timeout / bisschen Zeit geben bis die Variablen alle Sicher berechnet wurden?

          Ja hast recht ist ein Kopierfehler, Danke.
          Etwas Zeit schadet nie, haben es ja nicht eilig die Umsatzsteuer zu zahlen :-)
          Du hast mich aber mit dem aufzeichnen der Kosten noch auf eine Idee gebracht.
          Würde gerne den Gewinn bzw. Einsparung in einer Spalte aufsummieren, ist einfach schön zu sehen wie die Summe steigt. :grinning:

          smartboartS 1 Antwort Letzte Antwort
          0
          • A ArnoD

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

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

            StromPreis =(NettoGrundpreis / (nBezugZaehlerNeu+EigenverbrauchNeu))+ NettoStrompreis

            Im Beitrag hast es noch richtig...

            im Script unten hast du + NettoGrundpreis....

            Habe das Script oben angepasst... mit ner if Bedingung...

            meinst du wird sollten der Tabelle nen Timeout / bisschen Zeit geben bis die Variablen alle Sicher berechnet wurden?

            Ja hast recht ist ein Kopierfehler, Danke.
            Etwas Zeit schadet nie, haben es ja nicht eilig die Umsatzsteuer zu zahlen :-)
            Du hast mich aber mit dem aufzeichnen der Kosten noch auf eine Idee gebracht.
            Würde gerne den Gewinn bzw. Einsparung in einer Spalte aufsummieren, ist einfach schön zu sehen wie die Summe steigt. :grinning:

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

            @ArnoD ja gute Idee... Warum nicht gleich ne amotisierungseechnung mit rein packen? Nen konfigteil für Investitionskosten mit rein packen.

            A 1 Antwort Letzte Antwort
            0
            • smartboartS smartboart

              @ArnoD ja gute Idee... Warum nicht gleich ne amotisierungseechnung mit rein packen? Nen konfigteil für Investitionskosten mit rein packen.

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

              @smartboart Das wäre dann perfekt. Denke nur das es dann zu viele Daten sind die man manuell eingeben muss, aber wir können es ja mal versuchen.

              1 Antwort Letzte Antwort
              0
              • A Offline
                A Offline
                ArnoD
                schrieb am zuletzt editiert von ArnoD
                #27

                Was müsste da alles mit rein ?
                Kaufpreis Netto - Förderung - AfA - Monatliche Einsparung Strom nach Abzug USt + Versicherung und Wartungskosten Netto

                A smartboartS 2 Antworten Letzte Antwort
                0
                • A ArnoD

                  Was müsste da alles mit rein ?
                  Kaufpreis Netto - Förderung - AfA - Monatliche Einsparung Strom nach Abzug USt + Versicherung und Wartungskosten Netto

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

                  @smartboart
                  AfA geht nicht weil sich die bei jedem anders auswirkt, dafür müsste es noch eine Position Einsparung Einkommenssteuer pro Jahr geben.

                  smartboartS 1 Antwort Letzte Antwort
                  0
                  • A ArnoD

                    @smartboart
                    AfA geht nicht weil sich die bei jedem anders auswirkt, dafür müsste es noch eine Position Einsparung Einkommenssteuer pro Jahr geben.

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

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

                    @smartboart
                    AfA geht nicht weil sich die bei jedem anders auswirkt, dafür müsste es noch eine Position Einsparung Einkommenssteuer pro Jahr geben.

                    ja ich hatte mit der AFA glück, im mai bezahlt konnte ich das fürs volle jahr ansetzen..
                    das würde es einfach machen... Aber im Prinzip ist ja nur das 1. und das letzte Jahr hier unterschiedlich. evtl. kann man das auch mit nem konfigteil lösen...

                    1. jahr , die jahre dazwischen und letztes jahr..
                    1 Antwort Letzte Antwort
                    0
                    • A ArnoD

                      Was müsste da alles mit rein ?
                      Kaufpreis Netto - Förderung - AfA - Monatliche Einsparung Strom nach Abzug USt + Versicherung und Wartungskosten Netto

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

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

                      Was müsste da alles mit rein ?
                      Kaufpreis Netto - Förderung - AfA - Monatliche Einsparung Strom nach Abzug USt + Versicherung und Wartungskosten Netto

                      vlt. noch zusätzlich investitionen ( hatte z.B nen Tastkopf Smartmeter und ein Modbus Meßgerät gekauft ) evtl Anlagenerweiterung. Bei mir passen noch 2 panels drauf und ne Batterie findet auch noch platz...

                      1 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        Abyss
                        schrieb am zuletzt editiert von Abyss
                        #31

                        hi @smartboart

                        ich habe dein Script natürlich auch am laufen. ;)
                        Jetzt war endlich der Monatswechsel und ich war gespannt was passiert.
                        Mir ist aber schon aufgefallen, dass er bei mir das Object für den Json-String nicht anlegt.
                        Wie erwartet.....immer noch nichts. :(
                        NetbezugAlt, NetzeinspeisungAlt und SolarproduktionAlt wurden aber sauber gespeichert.

                        Ich habe dann heute versucht das Script nochmal neu reinzubringen und bekommen jetzt einige Fehler im Log.
                        anbei mein Script:

                        // 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' });
                        createState('PVAnlage.Stromzaehler.Zaehlerstaende.Mehrwertsteuersatz',    16, {name: 'aktueller Mehrwertsteuersatz', type: 'number', unit: '%' });
                        createState('PVAnlage.Stromzaehler.Zaehlerstaende.Nettostrompreis',    0.2638, {name: 'Strompreis netto pro kwh', type: 'number', unit: '€' });
                        createState('PVAnlage.Stromzaehler.Zaehlerstaende.NettoGrundpreis',    10, {name: 'Grundpreis netto pro Monat', type: 'number', unit: '€' });
                          
                         
                        const idJson = 'PVAnlage.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("* * * * *", function() { 
                         
                            if (debug)log('Schedule Monatliche Berechnung fürs Finanzamt aktiv');      
                         	var nBezugZaehlerAktuell = Math.floor(getState('sonoff.0.IR-Lesekopf.STROM_Bezug').val);
                         	var nEinspeiseZaehlerAktuell = Math.floor(getState('sonoff.0.IR-Lesekopf.STROM_Einspeisung').val);
                         	var PvZaehlerAktuell=Math.floor(getState('sourceanalytix.0.modbus__0__holdingRegisters__40068_PV_Leistung.Meter_Readings.Current_Reading'/*12288 E3dc Lieferung Summe*/).val);;
                            var MWST = getState('PVAnlage.Stromzaehler.Zaehlerstaende.Mehrwertsteuersatz').val;
                            var NettoStrompreis = getState('PVAnlage.Stromzaehler.Zaehlerstaende.Nettostrompreis').val;
                            var NettoGrundpreis = getState('PVAnlage.Stromzaehler.Zaehlerstaende.NettoGrundpreis').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 = 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('PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',nEinspeiseZaehlerAktuell);
                            setState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt',nBezugZaehlerAktuell);
                            setState('PVAnlage.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.StrompreisGesamt = StromPreis + ' €/kWh';
                            obj.Strompreis = NettoStromPreis + ' €/kWh';
                            obj.Grundgebüren = NettoGrundpreis + ' €/Monat'
                         
                            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'});
                            
                            },2000);
                         
                        });
                        

                        Und hier noch die Fehler im Log von Heute:

                        javascript.0	2020-09-01 09:39:02.204	error	(591) at processTimers (internal/timers.js:492:7)
                        javascript.0	2020-09-01 09:39:02.204	error	(591) at listOnTimeout (internal/timers.js:551:17)
                        javascript.0	2020-09-01 09:39:02.204	error	(591) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2001:34)
                        javascript.0	2020-09-01 09:39:02.204	error	(591) at Object.<anonymous> (script.js.VIS-Script.PV-Stromzaehler:63:78)
                        javascript.0	2020-09-01 09:39:02.203	error	(591) Error in callback: ReferenceError: Cannot access 'arr' before initialization
                        javascript.0	2020-09-01 09:39:02.004	error	(591) at processTimers (internal/timers.js:492:7)
                        javascript.0	2020-09-01 09:39:02.004	error	(591) at listOnTimeout (internal/timers.js:551:17)
                        javascript.0	2020-09-01 09:39:02.004	error	(591) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2001:34)
                        javascript.0	2020-09-01 09:39:02.004	error	(591) at Object.<anonymous> (script.js.VIS-Script.PV-Stromzaehler:86:22)
                        javascript.0	2020-09-01 09:39:02.003	error	(591) Error in callback: ReferenceError: NettoStromPreis is not defined
                        
                        javascript.0	2020-09-01 09:40:02.235	error	(591) at processTimers (internal/timers.js:492:7)
                        javascript.0	2020-09-01 09:40:02.235	error	(591) at listOnTimeout (internal/timers.js:551:17)
                        javascript.0	2020-09-01 09:40:02.235	error	(591) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2001:34)
                        javascript.0	2020-09-01 09:40:02.235	error	(591) at Object.<anonymous> (script.js.VIS-Script.PV-Stromzaehler:63:78)
                        javascript.0	2020-09-01 09:40:02.234	error	(591) Error in callback: ReferenceError: Cannot access 'arr' before initialization
                        

                        Irgendeine Idee wo ich ansetzen kann?
                        Danke schon mal ;)

                        smartboartS 1 Antwort Letzte Antwort
                        0
                        • A Abyss

                          hi @smartboart

                          ich habe dein Script natürlich auch am laufen. ;)
                          Jetzt war endlich der Monatswechsel und ich war gespannt was passiert.
                          Mir ist aber schon aufgefallen, dass er bei mir das Object für den Json-String nicht anlegt.
                          Wie erwartet.....immer noch nichts. :(
                          NetbezugAlt, NetzeinspeisungAlt und SolarproduktionAlt wurden aber sauber gespeichert.

                          Ich habe dann heute versucht das Script nochmal neu reinzubringen und bekommen jetzt einige Fehler im Log.
                          anbei mein Script:

                          // 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' });
                          createState('PVAnlage.Stromzaehler.Zaehlerstaende.Mehrwertsteuersatz',    16, {name: 'aktueller Mehrwertsteuersatz', type: 'number', unit: '%' });
                          createState('PVAnlage.Stromzaehler.Zaehlerstaende.Nettostrompreis',    0.2638, {name: 'Strompreis netto pro kwh', type: 'number', unit: '€' });
                          createState('PVAnlage.Stromzaehler.Zaehlerstaende.NettoGrundpreis',    10, {name: 'Grundpreis netto pro Monat', type: 'number', unit: '€' });
                            
                           
                          const idJson = 'PVAnlage.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("* * * * *", function() { 
                           
                              if (debug)log('Schedule Monatliche Berechnung fürs Finanzamt aktiv');      
                           	var nBezugZaehlerAktuell = Math.floor(getState('sonoff.0.IR-Lesekopf.STROM_Bezug').val);
                           	var nEinspeiseZaehlerAktuell = Math.floor(getState('sonoff.0.IR-Lesekopf.STROM_Einspeisung').val);
                           	var PvZaehlerAktuell=Math.floor(getState('sourceanalytix.0.modbus__0__holdingRegisters__40068_PV_Leistung.Meter_Readings.Current_Reading'/*12288 E3dc Lieferung Summe*/).val);;
                              var MWST = getState('PVAnlage.Stromzaehler.Zaehlerstaende.Mehrwertsteuersatz').val;
                              var NettoStrompreis = getState('PVAnlage.Stromzaehler.Zaehlerstaende.Nettostrompreis').val;
                              var NettoGrundpreis = getState('PVAnlage.Stromzaehler.Zaehlerstaende.NettoGrundpreis').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 = 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('PVAnlage.Stromzaehler.Zaehlerstaende.NetzeinspeisungAlt',nEinspeiseZaehlerAktuell);
                              setState('PVAnlage.Stromzaehler.Zaehlerstaende.NetzbezugAlt',nBezugZaehlerAktuell);
                              setState('PVAnlage.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.StrompreisGesamt = StromPreis + ' €/kWh';
                              obj.Strompreis = NettoStromPreis + ' €/kWh';
                              obj.Grundgebüren = NettoGrundpreis + ' €/Monat'
                           
                              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'});
                              
                              },2000);
                           
                          });
                          

                          Und hier noch die Fehler im Log von Heute:

                          javascript.0	2020-09-01 09:39:02.204	error	(591) at processTimers (internal/timers.js:492:7)
                          javascript.0	2020-09-01 09:39:02.204	error	(591) at listOnTimeout (internal/timers.js:551:17)
                          javascript.0	2020-09-01 09:39:02.204	error	(591) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2001:34)
                          javascript.0	2020-09-01 09:39:02.204	error	(591) at Object.<anonymous> (script.js.VIS-Script.PV-Stromzaehler:63:78)
                          javascript.0	2020-09-01 09:39:02.203	error	(591) Error in callback: ReferenceError: Cannot access 'arr' before initialization
                          javascript.0	2020-09-01 09:39:02.004	error	(591) at processTimers (internal/timers.js:492:7)
                          javascript.0	2020-09-01 09:39:02.004	error	(591) at listOnTimeout (internal/timers.js:551:17)
                          javascript.0	2020-09-01 09:39:02.004	error	(591) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2001:34)
                          javascript.0	2020-09-01 09:39:02.004	error	(591) at Object.<anonymous> (script.js.VIS-Script.PV-Stromzaehler:86:22)
                          javascript.0	2020-09-01 09:39:02.003	error	(591) Error in callback: ReferenceError: NettoStromPreis is not defined
                          
                          javascript.0	2020-09-01 09:40:02.235	error	(591) at processTimers (internal/timers.js:492:7)
                          javascript.0	2020-09-01 09:40:02.235	error	(591) at listOnTimeout (internal/timers.js:551:17)
                          javascript.0	2020-09-01 09:40:02.235	error	(591) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2001:34)
                          javascript.0	2020-09-01 09:40:02.235	error	(591) at Object.<anonymous> (script.js.VIS-Script.PV-Stromzaehler:63:78)
                          javascript.0	2020-09-01 09:40:02.234	error	(591) Error in callback: ReferenceError: Cannot access 'arr' before initialization
                          

                          Irgendeine Idee wo ich ansetzen kann?
                          Danke schon mal ;)

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

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

                          NettoStrompreis

                          ja...scheint ein Schreibfehler zu sein...
                          NettoStromPreis und NettoStrompreis

                          lass das script einfach mal mit minütlichem Trigger laufen, dann kannst es kontrollieren ob es macht was es soll.
                          der json string wird erst angelegt wenn er zum 1. mal gefüllt wird...das hat aber bei dir zu Problemen geführt weil der Schreibfehler das verhinderte.
                          Den json string kannst dann bearbeiten um deinen Eintrag für letzten Monat zu haben...

                          hab den Rechtschreibfehler oben korrigiert...

                          DutchmanD A 2 Antworten Letzte Antwort
                          0
                          • smartboartS smartboart

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

                            NettoStrompreis

                            ja...scheint ein Schreibfehler zu sein...
                            NettoStromPreis und NettoStrompreis

                            lass das script einfach mal mit minütlichem Trigger laufen, dann kannst es kontrollieren ob es macht was es soll.
                            der json string wird erst angelegt wenn er zum 1. mal gefüllt wird...das hat aber bei dir zu Problemen geführt weil der Schreibfehler das verhinderte.
                            Den json string kannst dann bearbeiten um deinen Eintrag für letzten Monat zu haben...

                            hab den Rechtschreibfehler oben korrigiert...

                            DutchmanD Offline
                            DutchmanD Offline
                            Dutchman
                            Developer Most Active Administrators
                            schrieb am zuletzt editiert von Dutchman
                            #33

                            Hey @smartboart, sehr interessant ich habe mal einen reminder fuer mich gemacht ob man es eventueel in SA integrieren könnten da einige Elementen hiervon dort bereits enthalten sind.

                            https://github.com/iobroker-community-adapters/ioBroker.sourceanalytix/issues/185

                            Cheers,

                            Dutch

                            1 Antwort Letzte Antwort
                            2
                            • smartboartS smartboart

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

                              NettoStrompreis

                              ja...scheint ein Schreibfehler zu sein...
                              NettoStromPreis und NettoStrompreis

                              lass das script einfach mal mit minütlichem Trigger laufen, dann kannst es kontrollieren ob es macht was es soll.
                              der json string wird erst angelegt wenn er zum 1. mal gefüllt wird...das hat aber bei dir zu Problemen geführt weil der Schreibfehler das verhinderte.
                              Den json string kannst dann bearbeiten um deinen Eintrag für letzten Monat zu haben...

                              hab den Rechtschreibfehler oben korrigiert...

                              A Offline
                              A Offline
                              Abyss
                              schrieb am zuletzt editiert von
                              #34

                              @smartboart

                              danke dir. Machmal is es so einfach. ;)
                              Jetzt scheint es zu laufen und hat mir auch den Json angelegt.

                              Danke.

                              1 Antwort Letzte Antwort
                              0
                              • A Offline
                                A Offline
                                Abyss
                                schrieb am zuletzt editiert von
                                #35

                                @smartboart

                                kleine Anmerkung noch von meiner Seite.
                                In Zeile 70 in deinem Script fehlen die Klammern nach dem arr.shift
                                Dadurch funktioniert die Begrenzung der Arrayeinträge nicht.

                                if(arr.length > 15) arr.shift();
                                
                                smartboartS 1 Antwort Letzte Antwort
                                0
                                • A Abyss

                                  @smartboart

                                  kleine Anmerkung noch von meiner Seite.
                                  In Zeile 70 in deinem Script fehlen die Klammern nach dem arr.shift
                                  Dadurch funktioniert die Begrenzung der Arrayeinträge nicht.

                                  if(arr.length > 15) arr.shift();
                                  
                                  smartboartS Offline
                                  smartboartS Offline
                                  smartboart
                                  schrieb am zuletzt editiert von smartboart
                                  #36

                                  @Abyss habs oben angepasst..
                                  und auf 12 monate geändert.
                                  Ich habe es bei mir aber raus genommen. lasse es über die gesamte laufzeit laufen..

                                  1 Antwort Letzte Antwort
                                  0
                                  • L Offline
                                    L Offline
                                    lstorm
                                    schrieb am zuletzt editiert von
                                    #37

                                    Hallo,

                                    ich bin auch sehr interessiert an dem Script.
                                    Allerdings habe ich Probleme das Wigdet zu importieren. Was benötige ich noch um die Material-Design-Tabelle anzuzeigen?
                                    Gibt es einen Adapter? Habe keinen gefunden. Oder muss ich Dateien von Material-Design von GitHub installieren?

                                    Ein Kurzer Hinweis wäre super. Velen Dank!

                                    Gruß Lars

                                    smartboartS 1 Antwort Letzte Antwort
                                    0
                                    • L lstorm

                                      Hallo,

                                      ich bin auch sehr interessiert an dem Script.
                                      Allerdings habe ich Probleme das Wigdet zu importieren. Was benötige ich noch um die Material-Design-Tabelle anzuzeigen?
                                      Gibt es einen Adapter? Habe keinen gefunden. Oder muss ich Dateien von Material-Design von GitHub installieren?

                                      Ein Kurzer Hinweis wäre super. Velen Dank!

                                      Gruß Lars

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

                                      @lstorm nein nichts besonderes....nur den Adapter material design widgets..

                                      1 Antwort Letzte Antwort
                                      0
                                      • L Offline
                                        L Offline
                                        lstorm
                                        schrieb am zuletzt editiert von
                                        #39

                                        @smartboart Danke, hab es eben auch gefunden. Hatte mein Repo nicht auf latest stehen, deswegen war der Adapter nicht dabei.
                                        https://www.smarthome-tricks.de/software-iobroker/vis-material-design-widgets-teil-1-installation-der-adapter/

                                        1 Antwort Letzte Antwort
                                        0
                                        • L Offline
                                          L Offline
                                          lstorm
                                          schrieb am zuletzt editiert von
                                          #40

                                          Ich habe noch ein Problem mit dem Script. Die Json Tabelle wird nicht automatisch angelegt. Wenn ich sie von hand anlege kann er die Daten nicht pushen.

                                          Bekomme immer den Fehler:
                                          20:25:02.002 error javascript.0 (1012) at Object.<anonymous> (script.js.common.Photovoltaik.Finanzamt:79:13)

                                          In Zeile 79 steht: arr.push(obj);

                                          Bestimmt nur eine Kelinigkeit, aber ich stehe momentan auf dem Schlauch...

                                          Schon mal vielen Dank.

                                          Gruß Lars

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          756

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          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