NEWS
Solaredge Adapter (Photovoltaikanlage)
-
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Hier mal mein aktueller Stand mit Solaredge SE10K und Solaredge Stromsensor und BYD LVS 24.0:
Wow. Vielen Dank. Da werde ich mir etwas Zeit für nehmen müssen.
Die Batterieregister packe ich Dir hier mal dazu.
Was Du suchst ist 102853 State of Energy SOE Batterieladung %
Siehe unten.
1 102837 Batterieleistung Leistung Batterie W floatsw 2 1 0 level true false false 1 102853 State of Energy SOE Batterieladung % floatsw 2 1 0 level true false false 1 102855 Batterie Status Battery operating state: 0 – Off; 1 – Standby; 2 – Init; 3 – Charge; 4 – Discharge; 5 – Fault; 7 - Idle uint32sw 2 1 0 level true false false 1 102787 Batt Rated Energy Batt Rated Energy Wh floatsw 2 1 0 level true false false 1 102829 Batt1_Avg_T Batterie 1 Average Temperature °C °C floatsw 2 1 0 level true false false 1 103237 StCtrlMode Storage Control Mode uint16be 1 1 0 level true false false 1 101763 AdvancedPwrControlEn AdvancedPwrControlEn uint32sw 2 1 0 level true false false 1 101701 ReactivePwrConfig ReactivePwrConfig uint32sw 2 1 0 level true false false 1 103247 Remote Control Charge Limit Remote Control Charge Limit W floatsw 2 1 0 level true false false 1 101697 CommitSettings Commit Power Control Settings uint16be 1 1 0 level true false false 1 103243 StChDisChMode Storage Charge/Discharge Default Mode uint16be 1 1 0 level true false false
In der Liste sind auch Register enthalten um das Ladeprofil der Batterie zu modifizieren (70%-Limitierung vermeiden). Siehe dazu hier https://www.photovoltaikforum.com/thread/152402-storedge-se10k-ladeleistung-batterie/?postID=2235131#post2235131
Gruß,
Oli -
Das Register 102853 funktioniert bei mir eben nicht
Die Speicherladung 102837 funktioniert, aber bei 102853 kommt nichts. Auch einen Wert drunter und drüber habe ich schon probiert.
-
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Die Speicherladung 102837 funktioniert, aber bei 102853 kommt nichts. Auch einen Wert drunter und drüber habe ich schon probiert.
Was sagt Dein Log des Modbus-Adapters beim Pollen?
-
@osu Oh, da habe ich diese Meldung gesehen:
(31435) Poll error count: 2 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
Da steht leider nicht welche Adresse illegal ist. Ich habe dann einzeln die Adressen deaktiviert und gesehen, dass es wohl an dieser Zeile lag:
Ohne diese Zeile wird nun auch der SoC in % korrekt ausgelesen! Super
-
Jetzt fehlt mir nur noch die korrekte Berechnung von Hausverbrauch und Solarpanel-Leistung. Wie wird die Batterie Ladung und Entladung da korrekt eingerechnet?
-
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
@osu Oh, da habe ich diese Meldung gesehen:
(31435) Poll error count: 2 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
Da steht leider nicht welche Adresse illegal ist. Ich habe dann einzeln die Adressen deaktiviert und gesehen, dass es wohl an dieser Zeile lag:
Ohne diese Zeile wird nun auch der SoC in % korrekt ausgelesen! Super
Probier mal, ob's am Datentyp liegt (glaube ich aber nicht).
Du hast da uint16, ich habe da uint32sw.Das Register funktioniert bei mir zuverlässig.
-
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Jetzt fehlt mir nur noch die korrekte Berechnung von Hausverbrauch und Solarpanel-Leistung. Wie wird die Batterie Ladung und Entladung da korrekt eingerechnet?
Da bin ich gerade noch am rumpfriemeln.
Ich habe da bisher folgende Probleme
-
falsche Datentypen (einfach lösbar durch Lesen der Doku und Abgleich) führen zu einem Werteüberlauf. Ich vermute ich habe da ggf. noch das eine oder andere Issue, muss ich nochmal genauer unter die Lupe nehmen.
-
unterschiedliche Taktung der Werteermittlung: klar ist, dass die Skalierungsfaktoren gleichzeitig mit den zu skalierenden Werten gelesen werden müssen, sonst liefert der Wert Müll.
Wenn ich nun aber einen Zusammenhang aus den per Modbus gelesenen Werten schaffen will, muss ich die zusammenhängenden Werte ebenfalls zum selben Zeitpunkt lesen und verarbeiten um daraus Werte zu berechnen (wieviel produziere ich auf dem Dach? Was ist mein Hausverbrauch?). Da hapert's leider noch bei mir. Denn obwohl ich die Werte im selben Blockly aus dem Modbus lese und dann lokal speichere passt das häufig nicht zusammen und sorgt ggü. der Berechnungsgrundlage für Deltas. -
mir noch unerklärliche Spikes in meinen Zahlen. Kann eine Folge von oben sein.
Was ich derzeit ermittle ist z.B. folgendes:
Ermittelt mit folgendem Blockly (kann beliebig falsch sein):
Führt zu folgender Visualisierung:
Die Werte sind aber noch Murks, denn auf diese Weise gibt es Abweichungen bei der PV Produktion Ist (objects) vom Soll (Formel / Blockly) wie folgt:
Wie gesagt. Bin noch beim Versuch zu verstehen.
Wenn Du Ideen hast oder die Dinge auffallen, immer her damit.
Gruß,
Oli -
-
@osu Das mit den Spikes und Werte-Überläufen usw. kommt wohl wirklich vom Problem, dass die Werte nicht immer gleichzeitig mit den Skalierungs-Faktoren gelesen werden. Ich habe das so gelöst:
Nachdem sich der Leistungswert geändert hat, warte ich 200 ms bis ich den Skalierungsfaktor lese und umrechne. Damit hatte ich bisher keine Probleme mehr.
Ich lese die Werte eh nur alle 10 Sekunden, was mehr als genug ist. Ev. erhöhe ich die Pause noch auf eine Sekunde.
Zusätzlich habe ich bei den Objekten noch plausible Minimal- und Maximal-Werte definiert, so können Werte die nicht passen gar nicht geschrieben werden.
-
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Nachdem sich der Leistungswert geändert hat, warte ich 200 ms bis ich den Skalierungsfaktor lese und umrechne. Damit hatte ich bisher keine Probleme mehr.
Was genau versprichst Du Dir von der Verzögerung nach dem Event?
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Ich lese die Werte eh nur alle 10 Sekunden, was mehr als genug ist.
Mache ich ebenfalls so.
Was bei mir noch nicht passt, ist dass keine Deltas (siehe Tabelle oben) zur Formel entstehen (sprich die Werte zusammenpassen).
Du hattest nach Produktion und Hausverbrauch gefragt. Meinen Ansatz findest Du im obigen Blockly. Wie läuft das nun bei Dir?
Gruß,
Oli -
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
@osu Das mit den Spikes und Werte-Überläufen usw. kommt wohl wirklich vom Problem, dass die Werte nicht immer gleichzeitig mit den Skalierungs-Faktoren gelesen werden. Ich habe das so gelöst:
Die Spikes scheinen mit dem Timeout weg zu sein. Bei mir umfasst er nun die komplette Berechnung.
Wie gesagt passen die Werte damit dennoch nicht 100% zusammen. (Deltas im Excelsheet)
Wenn der Modbus gepollt wird, hole ich innerhalb eines sehr kurzen Zeitraums alle meine Werte.
Ich kann aber nicht beeinflussen, ob zum Zeitpunkt des Abholens auf dem Modbus alle Werte 100% zusammenpassen (wann diese geschrieben wurden).- modbus.0.holdingRegisters.102837_Batterieleistung
- modbus.0.holdingRegisters.40084_I_AC_Leistung
- modbus.0.holdingRegisters.40207_M_AC_Power
Gruß,
Oli -
@osu Wenn der Modbus-Adapter die Werte einliest, dauert das vielleicht eine Sekunde, bis alle Werte da sind.
Wenn jetzt das Blockly schon triggert, wenn der erste Wert da ist und sofort den (dann noch alten) Umrechnungsfaktor benutzt dann ist der Wert um einen Faktor zu gross oder zu klein. Deshalb warte ich, nachdem sich der Wert geändert hat etwas, damit sicher alle Werte in diesem Poll-Zyklus gelesen und aktualisiert wurden. Dann ist auch der richtige Umrechnungsfaktor bereit.
-
@osu Kann es sein, dass die Werte nicht genau passen, weil du die DC-Leistung verwendest? Die ignoriere ich mittlerweile, weil die eben immer leicht von der AC-Leistung abweicht (halt durch die Wandlungsverluste denke ich). Deshalb muss ich aber von der AC-Leistung wieder zurückrechnen, um die PV-Leistung zu bekommen. Also z.B. die Speicherladung dazuzählen oder die Entladung abzählen.
-
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Wenn jetzt das Blockly schon triggert, wenn der erste Wert da ist und sofort den (dann noch alten) Umrechnungsfaktor benutzt dann ist der Wert um einen Faktor zu gross oder zu klein
Passt. Ergibt Sinn.
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Kann es sein, dass die Werte nicht genau passen, weil du die DC-Leistung verwendest?
Hausverbrauch rechne ich aus
modbus.0.holdingRegisters.40084_I_AC_Leistung
minus
modbus.0.holdingRegisters.40207_M_AC_PowerBei der Produktionsleistung der PV werden dann aber AC und DC vermengt:
modbus.0.holdingRegisters.40207_M_AC_Power
plus
modbus.0.holdingRegisters.102837_Batterieleistung
plus
HausverbrauchVermutlich liegt's daran. Was denkst Du?
Gruß,
Oli -
@stevie77 Vielen Dank für deinen Export. Import hat wunderbar geklappt.
Allerdings kann ich mit den Werten noch nichts anfangen. Auch die Strings wie "SolarEdge" scheinen abgeschnitten. Habe ich hier noch irgendwie einen Fehler?
Vielen Dank -
Habe es lösen können. Bei mir waren es Register-Adressen -1
-
@aulin Ja, irgendwie gibt es bei SE zwei Register-Varianten. Neuere/ältere Geräte? Hatten wir im Verlauf schon mal festgestellt hier im Forum (oder anderswo?), dass bei mir (oder anderen) alle Adressen um 1 verschoben sind.
-
@stevie77
Quelle: Technical Note – SunSpec Logging in SolarEdge Inverters, S. 15Gruß,
Oli -
Die Daten des Wechselrichters kommen alle einwandfrei über den Modbus Adapter an, jedoch will es mit den Daten der Batterie nicht klappen. Mein Wechselrichter verwendet die base 0 Adressierung und somit -1 zu den hier meist genannten Adressen. Bei den Batterie Einstellungen habe ich natürlich einiges probiert, aber ohne Erfolgt. Muss sonst noch etwas beachtet werden (z.B. bei den Adapter-Einstellungen oder so)?
Fehler im Log: "errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"
Erkennt hier jemand ein Fehler? -
@al-bundy Die Modbus-Einstellungen werden stimmen, wenn die restlichen Daten vom WR schon sauber kommen. Der WR schickt ja die Daten der Batterie über sein Modbus-Interface weiter.
Ich kann dir nur meine Daten nochmals zeigen. Ev. musst du bei den Adressen noch + oder - 1 versuchen. Die sind bei mir verschoben zu dir.
Ich hatte aber auch lange rumprobiert bis es bei mir zufällig geklappt hat.
-
@chrisprefect Danke erstmal
Hab da schon einiges probiert:
Kommt aber nie was zurück. Könnte das evtl. auch eine Konfiguration auf dem WR sein, die anders eingestellt werden muss? Oder sonst was (z.B. mehrere Geräte IDs in der Adapter Einstellungen).