Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Stromzählerscript PV Anlage Finanzamt in Json oder html

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Stromzählerscript PV Anlage Finanzamt in Json oder html

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @smartboart last edited by 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'});
      
      smartboart 2 Replies Last reply Reply Quote 1
      • smartboart
        smartboart @paul53 last edited by

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

        1 Reply Last reply Reply Quote 0
        • smartboart
          smartboart @paul53 last edited by

          @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'});
          });
          
          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @smartboart last edited by

            @smartboart sagte:

            Also so...

            Ja.

            smartboart 1 Reply Last reply Reply Quote 0
            • smartboart
              smartboart @paul53 last edited by

              @paul53
              super vielen lieben Dank...

              smartboart 1 Reply Last reply Reply Quote 0
              • smartboart
                smartboart @smartboart last edited by 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'});
                });
                
                smartboart paul53 2 Replies Last reply Reply Quote 0
                • smartboart
                  smartboart @smartboart last edited by

                  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 Reply Quote 0
                  • paul53
                    paul53 @smartboart last edited by

                    @smartboart sagte:

                    Skript zuammen gekürzt

                    Die Masseinheiten sind falsch. Richtig: kWh

                    smartboart 1 Reply Last reply Reply Quote 0
                    • smartboart
                      smartboart @paul53 last edited by

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

                      smartboart 1 Reply Last reply Reply Quote 0
                      • smartboart
                        smartboart @smartboart last edited by

                        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...

                        smartboart 1 Reply Last reply Reply Quote 0
                        • smartboart
                          smartboart @smartboart last edited by

                          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 Reply Quote 0
                          • A
                            ArnoD @smartboart last edited by

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

                            Danke auch an paul53 🙂

                            1 Reply Last reply Reply Quote 0
                            • A
                              ArnoD last edited by 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';
                                  
                              
                              smartboart 1 Reply Last reply Reply Quote 0
                              • smartboart
                                smartboart @ArnoD last edited by

                                @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 Reply Quote 0
                                • A
                                  ArnoD @smartboart last edited by 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));
                                  
                                  smartboart 1 Reply Last reply Reply Quote 0
                                  • smartboart
                                    smartboart @ArnoD last edited by

                                    @ArnoD habs geändert

                                    1 Reply Last reply Reply Quote 0
                                    • A
                                      ArnoD last edited by

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

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        ArnoD last edited by

                                        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;

                                        smartboart 1 Reply Last reply Reply Quote 0
                                        • A
                                          ArnoD last edited by 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'});
                                          });
                                          
                                          smartboart 1 Reply Last reply Reply Quote 0
                                          • smartboart
                                            smartboart @ArnoD last edited by 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...

                                            smartboart 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            825
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            84
                                            6581
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo