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
    1.0k

  • 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.
  • paul53P 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'});
    
    smartboartS Offline
    smartboartS Offline
    smartboart
    schrieb am zuletzt editiert von
    #3

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

    1 Antwort Letzte Antwort
    0
    • paul53P 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'});
      
      smartboartS Offline
      smartboartS Offline
      smartboart
      schrieb am zuletzt editiert von
      #4

      @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'});
      });
      
      paul53P 1 Antwort Letzte Antwort
      0
      • smartboartS smartboart

        @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'});
        });
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #5

        @smartboart sagte:

        Also so...

        Ja.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        smartboartS 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @smartboart sagte:

          Also so...

          Ja.

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

          @paul53
          super vielen lieben Dank...

          smartboartS 1 Antwort Letzte Antwort
          0
          • smartboartS smartboart

            @paul53
            super vielen lieben Dank...

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

            @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'});
            });
            
            smartboartS paul53P 2 Antworten Letzte Antwort
            0
            • smartboartS 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'});
              });
              
              smartboartS Offline
              smartboartS Offline
              smartboart
              schrieb am zuletzt editiert von
              #8

              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 Antwort Letzte Antwort
              0
              • smartboartS 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'});
                });
                
                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #9

                @smartboart sagte:

                Skript zuammen gekürzt

                Die Masseinheiten sind falsch. Richtig: kWh

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                smartboartS 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @smartboart sagte:

                  Skript zuammen gekürzt

                  Die Masseinheiten sind falsch. Richtig: kWh

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

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

                  smartboartS 1 Antwort Letzte Antwort
                  0
                  • smartboartS smartboart

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

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

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

                    smartboartS 1 Antwort Letzte Antwort
                    0
                    • smartboartS smartboart

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

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

                      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 Antwort Letzte Antwort
                      0
                      • smartboartS smartboart

                        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 Offline
                        A Offline
                        ArnoD
                        schrieb am zuletzt editiert von
                        #13

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

                        Danke auch an paul53 :-)

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

                          @smartboart
                          Hier hast du noch Kopierfehler drin. richtig ist:

                              
                              obj.Netzeinspeisezähler = nBezugZaehlerAktuell + ' kWh';
                              obj.Netzbezugszähler = nEinspeiseZaehlerAktuell + ' kWh';
                              obj.PVzähler = PvZaehlerAktuell + ' kWh';
                              
                          
                          smartboartS 1 Antwort Letzte Antwort
                          0
                          • A 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';
                                
                            
                            smartboartS Offline
                            smartboartS Offline
                            smartboart
                            schrieb am zuletzt editiert von
                            #15

                            @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 Antwort Letzte Antwort
                            0
                            • smartboartS smartboart

                              @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 Offline
                              A Offline
                              ArnoD
                              schrieb am zuletzt editiert von ArnoD
                              #16

                              @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));
                              
                              smartboartS 1 Antwort Letzte Antwort
                              0
                              • A 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));
                                
                                smartboartS Offline
                                smartboartS Offline
                                smartboart
                                schrieb am zuletzt editiert von
                                #17

                                @ArnoD habs geändert

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

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

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

                                    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 1 Antwort Letzte Antwort
                                    0
                                    • A Offline
                                      A Offline
                                      ArnoD
                                      schrieb am zuletzt editiert von ArnoD
                                      #20

                                      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 1 Antwort Letzte Antwort
                                      0
                                      • 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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          808

                                          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