Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Wie? Solar Produktion über Json Monatlich berechnen

NEWS

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    1.8k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    3.7k

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    3.4k

Wie? Solar Produktion über Json Monatlich berechnen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
16 Beiträge 2 Kommentatoren 43 Aufrufe 1 Beobachtet
  • Ä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.
  • machamsterM machamster

    hallo,

    ich habe meine Solaranlage schon über ein Json Script in meinen IoBroker einbinden können.

    Leider musste der Speicher getauscht werden.....lange rede.

    Mein Problem ist das die neue Anlage nur Lokal in meinem Netzwerk ist und keine Daten in die Cloud gesendet werden können( keine Ahnung warum Hersteller weis auch nicht weiter).

    Kann ich irgendwie mit Hilfe der Json Datei einen Zahler mir bauen der vom Ersten Tag des Monats bis Letzen Tag des Monats meine Pv Produktion zusammen Rechnet?

    Damit ich den Eigenverbrauch berechnen kann.
    Einspeisung und Zukaufstrom kann ich ja über den Stromzahler auslesen.

    {
    "ESSRealtimeStatus":{
    "ColecTm":"20260704125745",
    "PowerOutletPw":"0",
    "GridPw":3.22,
    "UnitPrice":0.00,
    "ConsPw":0.27,
    "BtSoc":93,
    "PcsPw":3493.00,
    "AbsPcsPw":3.49,
    "PvPw":3.49,
    "GridStusCd":"1",
    "BtStusCd":"2",
    "BtPw":0.00,
    "OperStusCd":"0",
    "EmsOpMode":"0",
    "RankPer":0,
    "ErrorCnt":0
    }
    }

    Das musste ja der Punkt "PvPW" sein.

    Ich habe selber keine Ahnung davon und würde mich sehr über Hilfe freuen .

    paul53P Offline
    paul53P Offline
    paul53
    schrieb zuletzt editiert von paul53
    #2

    @machamster [sagte]: Das musste ja der Punkt "PvPW" sein.

    Enthält er die PV-Leistung in kW?

    Wenn ja, könnte man es so angehen:

     const idJson   = ''; // Datenpunkt-ID eintragen!
    
     // Datenpunkte vom Typ "Zahl" unter "0_userdata.0.PV" erstellen!
     const idPower  = '0_userdata.0.PV.Leistung'; // kW
     const idEnergy = '0_userdata.0.PV.Energie'; // kWh
     const idAct    = '0_userdata.0.PV.aktueller_Monat'; // kWh
     const idLast   = '0_userdata.0.PV.letzter_Monat'; // kWh
     const idMonth  = '0_userdata.0.PV.Stand_Monat'; // kWh
    
     var energy = getState(idEnergy).val; // Zählerstand
     var stand  = energy; 
    
     on(idJson, function(dp) {
         const status = JSON.parse(dp.state.val).ESSRealtimeStatus;
         setState(idPower, status.PvPw, true);
     });
    
     on(idPower, function(dp) {
         energy += dp.oldState.val * (dp.state.lc - dp.oldState.lc) / 3600000;
         stand = Math.round(energy * 100) / 100; // Zählerstand kWh
         setState(idEnergy, stand, true);
         setState(idAct, stand - getState(idMonth).val, true);
     });
    
     schedule('55 59 23 28-31 * *', function() {
         if(new Date(Date.now() + 10000).getDate() == 1) { // letzter Monatstag
            setState(idLast, stand - getState(idMonth).val, true);
            setState(idMonth, stand, true);
         }
     });
    

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

    1 Antwort Letzte Antwort
    0
    • machamsterM Online
      machamsterM Online
      machamster
      schrieb zuletzt editiert von
      #3

      Screenshot 2026-07-04 142132.png
      Screenshot 2026-07-04 142155.png

      1 Antwort Letzte Antwort
      0
      • machamsterM Online
        machamsterM Online
        machamster
        schrieb zuletzt editiert von
        #4

        So weit habe ich das gemacht, aber ich kann bis jetzt keine Daten sehen.

        Habe ich irgend etwas falsch gemacht?

        paul53P 1 Antwort Letzte Antwort
        0
        • machamsterM machamster

          So weit habe ich das gemacht, aber ich kann bis jetzt keine Daten sehen.

          Habe ich irgend etwas falsch gemacht?

          paul53P Offline
          paul53P Offline
          paul53
          schrieb zuletzt editiert von paul53
          #5

          @machamster [sagte]: Habe ich irgend etwas falsch gemacht?

          idJson enthält keine Datenpunkt-ID, sondern eine URL.

          EDIT: Eine URL muss man pollen (Intervall):

           const url   = ''; // URL eintragen!
          
           // Datenpunkte vom Typ "Zahl" unter "0_userdata.0.PV" erstellen!
           const idPower  = '0_userdata.0.PV.Leistung'; // kW
           const idEnergy = '0_userdata.0.PV.Energie'; // kWh
           const idAct    = '0_userdata.0.PV.aktueller_Monat'; // kWh
           const idLast   = '0_userdata.0.PV.letzter_Monat'; // kWh
           const idMonth  = '0_userdata.0.PV.Stand_Monat'; // kWh
          
           var stand = getState(idEnergy).val; // Zählerstand
           var energy = 100 * stand; // 10 Wh
          
           setInterval(function() {
               httpGet(url, (err, response) => {
                  if (!err) {
                      const status = JSON.parse(response.data).ESSRealtimeStatus;
                      setState(idPower, status.PvPw, true);
                  } 
               });
           }, 5000); // alle 5 s
          
           on(idPower, function(dp) {
               energy += dp.oldState.val * (dp.state.lc - dp.oldState.lc) / 36000;
               stand = Math.round(energy) / 100; // Zählerstand kWh
               setState(idEnergy, stand, true);
               setState(idAct, stand - getState(idMonth).val, true);
           });
          
           schedule('55 59 23 28-31 * *', function() {
               if(new Date(Date.now() + 10000).getDate() == 1) { // letzter Monatstag
                  setState(idLast, stand - getState(idMonth).val, true);
                  setState(idMonth, stand, true);
                  setState(idAct, 0, true);
               }
           });
          

          Bitte Code in Code tags posten, damit man daraus kopieren kann.
          Verpasse den Datenpunkten noch Einheiten (kW / kWh) und setze sie auf "read only" mit der Rolle "value.power".

          Beachte bitte, dass ich um eine globale Variable stand ergänzt habe, die den berechneten Zählerstand auf zwei Nachkommastellen gerundet enthält.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

          1 Antwort Letzte Antwort
          0
          • machamsterM Online
            machamsterM Online
            machamster
            schrieb zuletzt editiert von
            #6

            OK ?? Was müsste ich da den Eintragen?

            Ich habe ein Skript am laufen was die Anlage ausliest.

            Muss ich da den Punkt eintragen?

            Screenshot 2026-07-04 150548.png
            Screenshot 2026-07-04 150610.png

            paul53P 1 Antwort Letzte Antwort
            0
            • machamsterM machamster

              OK ?? Was müsste ich da den Eintragen?

              Ich habe ein Skript am laufen was die Anlage ausliest.

              Muss ich da den Punkt eintragen?

              Screenshot 2026-07-04 150548.png
              Screenshot 2026-07-04 150610.png

              paul53P Offline
              paul53P Offline
              paul53
              schrieb zuletzt editiert von
              #7

              @machamster [sagte]: Ich habe ein Skript am laufen was die Anlage ausliest.

              Dort gibt es bereits den Datenpunkt "PvPw" mit der Leistung.
              Dadurch vereinfacht sich die Ermittlung der Energiewerte:

               const idPower  = '0_userdata.0.Solar.PvPw'; // kW
               const idEnergy = '0_userdata.0.PV.Energie'; // kWh
               const idAct    = '0_userdata.0.PV.aktueller_Monat'; // kWh
               const idLast   = '0_userdata.0.PV.letzter_Monat'; // kWh
               const idMonth  = '0_userdata.0.PV.Stand_Monat'; // kWh
              
               var stand = getState(idEnergy).val; // Zählerstand
               var energy = 100 * stand; // 10 Wh
              
               on(idPower, function(dp) {
                   energy += dp.oldState.val * (dp.state.lc - dp.oldState.lc) / 36000;
                   stand = Math.round(energy) / 100; // Zählerstand kWh
                   setState(idEnergy, stand, true);
                   setState(idAct, stand - getState(idMonth).val, true);
               });
              
               schedule('55 59 23 28-31 * *', function() {
                   if(new Date(Date.now() + 10000).getDate() == 1) { // letzter Monatstag
                      setState(idLast, stand - getState(idMonth).val, true);
                      setState(idMonth, stand, true);
                      setState(idAct, 0, true);
                   }
               });
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

              1 Antwort Letzte Antwort
              0
              • machamsterM Online
                machamsterM Online
                machamster
                schrieb zuletzt editiert von
                #8

                Screenshot 2026-07-04 151610.png

                Ist das so richtig?

                paul53P 1 Antwort Letzte Antwort
                0
                • machamsterM machamster

                  Screenshot 2026-07-04 151610.png

                  Ist das so richtig?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb zuletzt editiert von
                  #9

                  @machamster [sagte]: Ist das so richtig?

                  Ja.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                  1 Antwort Letzte Antwort
                  0
                  • machamsterM Online
                    machamsterM Online
                    machamster
                    schrieb zuletzt editiert von
                    #10

                    Screenshot 2026-07-04 152016.png

                    Stand_Monat und letzter_ Monat werden wahrscheinlich dann erst mit Ablauf der Zeit gefüllt?

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • machamsterM machamster

                      Screenshot 2026-07-04 152016.png

                      Stand_Monat und letzter_ Monat werden wahrscheinlich dann erst mit Ablauf der Zeit gefüllt?

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb zuletzt editiert von
                      #11

                      @machamster [sagte]: Stand_Monat und letzter_ Monat werden wahrscheinlich dann erst mit Ablauf der Zeit gefüllt?

                      Ja, am Monatsende.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                      1 Antwort Letzte Antwort
                      0
                      • machamsterM Online
                        machamsterM Online
                        machamster
                        schrieb zuletzt editiert von
                        #12

                        Mega mega gut. Viel viel viel Dank für deine Hilfe. Wirklich Klasse!!!!! Habe eben gesehen das du mir damals auch schon helfen konntest!!! 👍 👍

                        1 Antwort Letzte Antwort
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb zuletzt editiert von
                          #13

                          Übrigens kann auch der Sourceanalytix-Adapter aus der Leistung den Zählerstand und Periodenwerte ermitteln. Benötigt allerdings mehr Ressourcen als das kleine Skript.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                          1 Antwort Letzte Antwort
                          0
                          • machamsterM Online
                            machamsterM Online
                            machamster
                            schrieb zuletzt editiert von machamster
                            #14

                            Für mich war das viel mehr als ein kleines Skript. Vielen Dank dafür 😘😘. Den anderen Adapter werde ich mir mal anschauen 😁. Dazu muss ich wahrscheinlich den Stromzähler Auslesen?

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • machamsterM machamster

                              Für mich war das viel mehr als ein kleines Skript. Vielen Dank dafür 😘😘. Den anderen Adapter werde ich mir mal anschauen 😁. Dazu muss ich wahrscheinlich den Stromzähler Auslesen?

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb zuletzt editiert von
                              #15

                              @machamster [sagte]: Dazu muss ich wahrscheinlich den Stromzähler Auslesen?

                              Nein. In Sourceanalytix wird auch der DP "0_userdata.0.Solar.PvPw" ausgewertet.

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                              1 Antwort Letzte Antwort
                              0
                              • machamsterM Online
                                machamsterM Online
                                machamster
                                schrieb zuletzt editiert von
                                #16

                                Ok super. Vielen Dank. Werde mir das morgen mal in Ruhe anschauen 😎

                                1 Antwort Letzte Antwort
                                0

                                Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                Registrieren Anmelden
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                634

                                Online

                                33.0k

                                Benutzer

                                83.3k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2026
                                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