Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Solaredge Adapter (Photovoltaikanlage)

    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

    Solaredge Adapter (Photovoltaikanlage)

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      lisalisa @ChrisPrefect last edited by lisalisa

      Bitte löschen

      1 Reply Last reply Reply Quote 0
      • K
        Kanumouse @Glasfaser last edited by

        @glasfaser

        Hi,

        ich wollte mal fragen, ob du auch so ein Verhalten der Batterieleistung (57716 Battery_1 Instantaneous Power) nachts hast.
        Wo kommt die Ladeleistung immer nachts her, das kann nicht sein?
        Batterie.jpg

        Wechselrichter SE 8k RWS, Batterie BYD LVS 4.0

        Glasfaser 1 Reply Last reply Reply Quote 0
        • Glasfaser
          Glasfaser @Kanumouse last edited by

          @kanumouse sagte in Solaredge Adapter (Photovoltaikanlage):

          Wo kommt die Ladeleistung immer nachts her, das kann nicht sein?

          Habe ich auch (manchmal ) .
          Die LG Batterie ist dann bei 9 % im Leerlauf / aus bei mir und wird manchmal dann per 1000 W Ladung ( Erhaltungsladung ) beladen und bleibt dann bei 10 % .

          96f130b4-04b6-4c4c-ad9b-a4b707c34a19-grafik.png

          K 1 Reply Last reply Reply Quote 0
          • K
            Kanumouse @Glasfaser last edited by

            @glasfaser
            Danke für die schnelle Antwort. Konnte ich mir nicht erklären.

            Glasfaser 1 Reply Last reply Reply Quote 0
            • Glasfaser
              Glasfaser @Kanumouse last edited by

              @kanumouse sagte in Solaredge Adapter (Photovoltaikanlage):

              Konnte ich mir nicht erklären.

              Ist aber normal , google mal nach Erhaltungsladung

              K 1 Reply Last reply Reply Quote 0
              • K
                Kanumouse @Glasfaser last edited by

                @glasfaser

                ok, ich wusste nicht, dass die Batterie von Zeit zu Zeit mit einer Erhaltungsladung beaufschlagt wird. Der Zustand tritt natürlich in diesen dunklen Tagen öffter auf.

                Ich habe aber noch ein anderes Phänomän.
                Für Batterie-/Wechselrichter-Fehler und Batterieuntertemperatur (bei mir Temperatur < 5 °C, da meine Batterie in der Garage steht) habe ich ein kleines Programm, dass mir die Fehler/Untertemperatur per WhatsApp gemeldet werden.
                Ich werte die entsprechenden Holding-Statusregister aus.

                Nun habe ich immer wieder feststellen müsssen, das sowohl Fehler als auch Untertemperatur gemeldet werden, obwohl es gar nicht an dem ist (Batteriedurchschnittstemperatur z. B. 11 °C).

                Hast du das auch?

                Glasfaser 1 Reply Last reply Reply Quote 0
                • Glasfaser
                  Glasfaser @Kanumouse last edited by

                  @kanumouse sagte in Solaredge Adapter (Photovoltaikanlage):

                  Hast du das auch?

                  Nein habe ich nicht , habe alles im HAR installiert und wie schon erwähnt eine LG Chem RESU 10

                  Batterie-/Wechselrichter-Fehler

                  .... Fehler als auch Untertemperatur gemeldet ..
                  ist (Batteriedurchschnittstemperatur z. B. 11 °C).

                  Welches Register fragst du dazu genau ab und
                  wie macht sich das im Register bemerkbar , dauerhaft oder sporalisch .

                  Du kannst ja auch mal im Solaredge-Portal überprüfen ob Fehler vorliegen .

                  Auf den Wechselrichter , rechte Maustaste dann auf Info , dann kommt ein neuer Reiter dort bei Fehler .

                  b99fbefb-f070-4923-a632-6b0037c619bd-grafik.png

                  K 1 Reply Last reply Reply Quote 0
                  • K
                    Kanumouse @Glasfaser last edited by

                    @glasfaser

                    ich frage Register 577708 Battery_1 Average Temperatur und das Register 107 I_Status ab. Im SE-Portal werden keine Fehler angezeigt.

                    Glasfaser 1 Reply Last reply Reply Quote 0
                    • Glasfaser
                      Glasfaser @Kanumouse last edited by Glasfaser

                      @kanumouse

                      Zeichnest du das Register 40107_I_Status // 57708_Battery_1 Average Temperature auf

                      a276d35e-fc77-4887-b83a-f623cf720dab-grafik.png
                      .
                      994c2229-1941-4a7d-9c41-46244a6a69be-grafik.png
                      .

                      @glasfaser sagte in Solaredge Adapter (Photovoltaikanlage):
                      wie macht sich das im Register bemerkbar , dauerhaft oder sporalisch .

                      ?

                      K 1 Reply Last reply Reply Quote 0
                      • K
                        Kanumouse @Glasfaser last edited by

                        @glasfaser

                        Nein, ich habe erst vorhin die history-Funktion für beide Datenpunkte in Betrieb genommen, um eventuell die Ursachen zu ergründen.

                        Glasfaser 1 Reply Last reply Reply Quote 0
                        • Glasfaser
                          Glasfaser @Kanumouse last edited by Glasfaser

                          @kanumouse

                          57708_Battery_1 Average Temperature

                          ist eine Durchschnittstemperatur des Akkus , nicht die reine Umgebungstemperatur

                          Batterieuntertemperatur (bei mir Temperatur < 5 °C, da meine Batterie in der Garage steht) habe ich ein kleines Programm,

                          wohnst du am Nordpol oder ist deine Garage undicht , dafür gibt es von BYD extra für Innen- und Außenbereich ?

                          Lebensdauer ... usw :

                          https://bwg-solarkonzept.de/lebensdauer-von-solarstromspeicher/

                          K 1 Reply Last reply Reply Quote 0
                          • K
                            Kanumouse @Glasfaser last edited by

                            @glasfaser

                            Das ist mir schon klar, dass das die Durchschnittstemperatur des Akkus ist.

                            Bei diesen Außentemperaturen wird diese zwischen 10-13 °C angezeigt.
                            Bei frostigen Außentemperaturen und der ungeheizten Garage wird auch die Innentemperatur der Garage deutlich zurückgehen.
                            Aus der Erfahrung der vergangenen Jahre ist auch nicht ausgeschlossen, dass diese bis in den negativen Bereich sinkt.
                            Aus diesem Grunde habe ich zur Zeit die Temperaturüberwachung auf 5° C eingestellt.

                            Zur Zeit bin ich außerdem dabei die Batterie einzuhausen und intern mit einer eigenen Temperatursteuerung auszurüsten.

                            Vielen Dank für den Link zum Artikel, diesen hatte ich bereits gelesen.

                            1 Reply Last reply Reply Quote 0
                            • C
                              cybtrash last edited by

                              Hallo,

                              ich habe mich aus zeitlichen Gründen hiermit seit ein paar Monaten nicht beschäftigt. Hatte es damals eingerichtet und alles lief eigentlich.

                              Nun zeigt mir modbus.0.holdingRegisters.40083_I_AC_Leistung nachts Werte um 625 Watt (ebenso DC_Leistung). PV-Produktion ist jedoch natürlich 0 (keine Sonne) und die Batterie dümpelt im Idle Modus bei 10% herum (modbus.0.holdingRegisters.57716_Battery_1 Instantaneous Power = 0W)

                              Wisst ihr was hier los ist? Mein Wechselrichter wird ja nicht wirklich 600W verbraten im Leerlauf....

                              Skale-Faktor ist korrekt eingestellt, bzw. mit diesen Einstellungen hatte ich Monate zuvor korrekte Werte (um 30-60W Leerlauf-Eigenverbrauch nachts).

                              Glasfaser 1 Reply Last reply Reply Quote 0
                              • Glasfaser
                                Glasfaser @cybtrash last edited by

                                @cybtrash sagte in Solaredge Adapter (Photovoltaikanlage):

                                um 30-60W Leerlauf-Eigenverbrauch nachts

                                Das ist zu viel ...
                                da gibt es schon lange ein Update für den Wechselrichter , das er in den Standby/Nachtmodus geht ( ~9W)

                                Dieses ist aber ein Thema für dieses Forum :

                                https://www.photovoltaikforum.com/thread/149753-achtung-der-hybrid-wechselrichter-solaredge-sek10-rws-48v-mit-48-v-lg-6-5-batter/?pageNo=19

                                D 1 Reply Last reply Reply Quote 0
                                • D
                                  danielos @Glasfaser last edited by

                                  Guten Tag zusammen

                                  Ich habe seit kurzem einen Solaredge-Wechselrichter und bin auf diesen Thread gestossen. Nutzt ihr diesen Adapter hier? https://www.npmjs.com/package/iobroker.solaredge . Denn dieser startet bei mir nicht mal, obwohl ich die Anlagennummer und API-Token mit Bestimmtheit korrekt eingegeben habe.

                                  Danke für eure Hilfe.

                                  Gruss
                                  Danielos

                                  L 1 Reply Last reply Reply Quote 0
                                  • L
                                    lisalisa @danielos last edited by

                                    @danielos sagte in Solaredge Adapter (Photovoltaikanlage):

                                    ...Nutzt ihr diesen Adapter hier?...

                                    Nein, ich nutze den Adapter nicht, weil der bringt nichts.

                                    Aber habe ihn gerade mal installiert, funktionieren tut er schon, ruft alle 15 Minuten Daten von der Solaredge Seite ab.

                                    io solaredge.jpg

                                    Glasfaser 1 Reply Last reply Reply Quote 0
                                    • Glasfaser
                                      Glasfaser @lisalisa last edited by Glasfaser

                                      @danielos

                                      @lisalisa sagte in Solaredge Adapter (Photovoltaikanlage):
                                      funktionieren tut er schon, ruft alle 15 Minuten Daten von der Solaredge Seite ab.

                                      Habe Ihn auch mal vor langer Zeit mal getestet , aber ist nichts wares per API.

                                      Die Werte werden per API abgrufen , nachteil es kann nicht so oft abgefragt werden und usw .......
                                      Da ist schon die Abfrage mit Modbus zu empfehlen.

                                      Ist das gleich wie mit einem Script per request

                                      //
                                      
                                      // Abholen der livetime Daten Produktion via API
                                      
                                      //
                                      
                                      var request = require('request');
                                      
                                      const akey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
                                      
                                      const PATH='javascript.0.Solar.EdgeAPI';
                                      
                                      let ID_PROD=PATH+'ProduktionLifetime';
                                      
                                      let ID_CURP=PATH+'CurrentPower';
                                      
                                      let ID_DELTA=PATH+'ProduktionDelta2Modbus';
                                      
                                      let ID_MODBUSDATA='modbus.3.holdingRegisters.40093_I_AC_Energie_WH'
                                      
                                      let ID_CONVERTERSTATUS='modbus.3.holdingRegisters.40107_I_Status'/*Operation State*/
                                      
                                      
                                      
                                      
                                      // erstellen des Objekte, wenn noch nicht vorhanden
                                      
                                      mk_prodlifetime(ID_PROD);
                                      
                                      mk_CurrentPower(ID_CURP);
                                      
                                      mk_delta2modbus(ID_DELTA);
                                      
                                      mk_apikey(PATH);
                                      
                                      setState(PATH,akey,true);
                                      
                                      
                                      
                                      
                                      let api_key=getState(PATH+'apikey').val;
                                      
                                      let logging=true;
                                      
                                      
                                      
                                      
                                      
                                      
                                      
                                      
                                      // abholen der Daten nur, wenn PV produziert um Anzahl der API calls zu begrenzen
                                      
                                      // 4=prod
                                      
                                      //*/10 * * * *
                                      
                                      getOverviewSolaredge(api_key);
                                      
                                      
                                      
                                      schedule('* * * * *', function () {
                                      
                                         var statusPV=Number(getState(ID_CONVERTERSTATUS).val);
                                      
                                         tolog(logging,"StatusPV: "+statusPV);
                                      
                                         if (statusPV == 4) {
                                      
                                             tolog(logging,"Aktualisiere PV LifetimeProd");
                                      
                                             getOverviewSolaredge(api_key);
                                      
                                         }
                                      
                                      });
                                      
                                      
                                      
                                      on({id:ID_PROD,change:'ne'}, function (obj) {
                                      
                                         setState(ID_DELTA,obj.state.val-(getState(ID_MODBUSDATA).val/1000));
                                      
                                      });
                                      
                                      
                                      
                                      function getOverviewSolaredge(){
                                      
                                         var url = 'https://monitoringapi.solaredge.com/site/XXXXXXXX/overview.json?api_key=' + akey; //+akey
                                      
                                         tolog(logging,"GET DATA FROM: "+url);
                                      
                                         var answer;
                                      
                                         request(url, function (err, state, body){
                                      
                                             if (body) {
                                      
                                                 tolog(logging,'Request - alles ok');
                                      
                                                 var obTyp=typeof(body);
                                      
                                                 tolog(logging,"Reques return type:"+obTyp);
                                      
                                                 tolog(logging,"response: "+state);
                                      
                                                 if (testJSON(body) === true) {
                                      
                                                     body=JSON.parse(body);
                                      
                                                     var lifetimeProd=body.overview.lifeTimeData.energy/1000;
                                      
                                                     setState(ID_PROD,lifetimeProd,true);
                                      
                                                     tolog(logging,"get lifetime prod:"+lifetimeProd);
                                      
                                                     var currentPower=body.overview.currentPower.power;
                                      
                                                     setState(ID_CURP,currentPower,true);
                                      
                                                     tolog(logging,"Power:"+currentPower);
                                      
                                      
                                                 }
                                      
                                             } else {
                                      
                                                 log('Request meldet Fehler: ' + err, 'error');  
                                      
                                             }
                                      
                                      
                                      
                                         });
                                      
                                      }  
                                      
                                      
                                      
                                      function testJSON(text){
                                      
                                         if (typeof text!=="string"){
                                      
                                             return false;
                                      
                                         }
                                      
                                         try{
                                      
                                             JSON.parse(text);
                                      
                                             return true;
                                      
                                         }
                                      
                                         catch (error){
                                      
                                             return false;
                                      
                                         }
                                      
                                      }
                                      
                                      
                                      
                                      function mk_delta2modbus (path){
                                      
                                         
                                      
                                         var obj = {};
                                      
                                             obj.type = 'state';
                                      
                                             obj.common = {};
                                      
                                             obj.common.name = 'prodDelta2modbus';
                                      
                                             obj.common.type = 'number';
                                      
                                             obj.common.role = 'value';
                                      
                                             obj.common.unit = 'kWh' ;
                                      
                                             obj.common.read = true;
                                      
                                             obj.common.write = false;
                                      
                                         setzeObject(path, obj);
                                      
                                      }  
                                      
                                      
                                      
                                      function mk_prodlifetime (path){
                                      
                                         
                                      
                                         var obj = {};
                                      
                                             obj.type = 'state';
                                      
                                             obj.common = {};
                                      
                                             obj.common.name = 'Lifetime production';
                                      
                                             obj.common.type = 'number';
                                      
                                             obj.common.role = 'value';
                                      
                                             obj.common.unit = 'kWh' ;
                                      
                                             obj.common.read = true;
                                      
                                             obj.common.write = false;
                                      
                                         setzeObject(path, obj);
                                      
                                      }  
                                      
                                      function mk_CurrentPower (path){
                                      
                                         
                                      
                                         var obj = {};
                                      
                                             obj.type = 'state';
                                      
                                             obj.common = {};
                                      
                                             obj.common.name = 'CurrentPower';
                                      
                                             obj.common.type = 'number';
                                      
                                             obj.common.role = 'value';
                                      
                                             obj.common.unit = 'W' ;
                                      
                                             obj.common.read = true;
                                      
                                             obj.common.write = false;
                                      
                                         setzeObject(path, obj);
                                      
                                      }  
                                      
                                      
                                      function mk_apikey (id){
                                      
                                        var obj = {};
                                      
                                        obj.type = 'state';
                                      
                                        obj.common = {};
                                      
                                        obj.common.name = 'API api_key';
                                      
                                        obj.common.role = 'value';
                                      
                                        obj.common.read = true;
                                      
                                        obj.common.write = true;
                                      
                                        setzeObject(id, obj);
                                      
                                      }  
                                      
                                      
                                      
                                      function setzeObject(id, obj) {
                                      
                                        log("ID: "+id);
                                      
                                        //if(getObject(path + idDev + '.status')) return;
                                      
                                        
                                      
                                        
                                      
                                        if (getObject(id)) {
                                      
                                                 log("Objekt: "+id+" existiert lege es nicht erneut an");
                                      
                                         } else {
                                      
                                             log("Objekt: "+id+" existiert nicht, lege es an");
                                      
                                             setObject(id, obj, function(err) {
                                      
                                                 if(err) log('Cannot write object: ' + err);
                                      
                                                 else setState(id, obj.common.def);
                                      
                                             }); 
                                      
                                         }
                                      
                                         
                                      
                                      }
                                      
                                      
                                      
                                      
                                      
                                      
                                      
                                      
                                      
                                      function tolog(logging,val) {
                                      
                                         if (logging===true) {
                                      
                                             log(val);
                                      
                                         }
                                      
                                      }
                                      

                                      D 1 Reply Last reply Reply Quote 0
                                      • H
                                        hennerich last edited by

                                        Moin, auch ich sehe das so wie meine Vorgänger. Abfragen per API aus der Cloud machen nur dann Sinn, wenn du keine andere Möglichkeit hast mit deinem Wechselrichter zu kommunizieren.
                                        Besser (ja, und vermutlich auch komplizierter) ist der Abruf der Daten via Modbus.

                                        Grüße
                                        Henri

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          danielos @Glasfaser last edited by

                                          @glasfaser

                                          Danke euch für die Antwort. Bei mir ist es so, dass der Wechselrichter nicht direkt in meinem LAN drin ist im Moment. Dies, weil neben meinem noch mehrere andere stehen und diese dann gemeinsam einen mobilen Internetzugang haben, um die Infos ins Netz zu kriegen. In diesem Setup dürfte es wohl schwierig werden, an den Modbus zu kommen, oder? Und gibt‘s für die Modbus-Kommunikation bzw. das Abrufen und Speichern der Daten zwischenzeitlich ein „Quasi-Standard-Skript“? Ich sehe hier im Forum nur überall Skript-Fetzen…

                                          Danke euch und allen ein gutes neues Jahr!!

                                          O 1 Reply Last reply Reply Quote 0
                                          • O
                                            osu @danielos last edited by

                                            @danielos said in Solaredge Adapter (Photovoltaikanlage):

                                            Und gibt‘s für die Modbus-Kommunikation bzw. das Abrufen und Speichern der Daten zwischenzeitlich ein „Quasi-Standard-Skript“? Ich sehe hier im Forum nur überall Skript-Fetzen…

                                            Die Datenpunkte am Modbus-Adapter sind hersteller- und konfigurationsspezifisch (teils abweichende Registeradressen selbst bei Solaredge aber natürlich auch unterschiedliche Batteriespeicher sofern vorhanden). Das ist also nicht so einfach mit einem Standard-Skript abzudecken.

                                            Für den Modbus-Adapter musst Du aber ohnehin per TCP im LAN an Deinen Wechselrichter rankommen - wenn das nicht der Fall ist, ist die API (bzw. der Solaredge Adapter) aus meiner Sicht eine gangbare Lösung (je nach Anwendungsfall, für reine Visualisierung reichen vermutlich auch 15 Minuten Intervalle, für eine Überschussladesteuerung eines potentiellen E-Fahrzeugs eher nicht).

                                            Gruß,
                                            Oli

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            850
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            59
                                            431
                                            96775
                                            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