NEWS
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
-
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). -
@al-bundy said in Solaredge Adapter (Photovoltaikanlage):
@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).Versuch mal die folgenden (ggf. +/- 1):
Leider spuckt Battery 1 Lifetime Export / Import Energy Counter bei mir wirres Zeug aus. Siehe Grafana:
Wie es scheint (und lt. eines Forenbeitrags im PV-Forum) zählt die Battery hoch und resetet den Counter hin und wieder auf 0.
Der Graph korreliert aber auf jeden Fall mit dem Hausverbrauch!
(Nachts haben wir einen Verbrauch von ca. 350Wh, danach tagsüber wurde das Haus von der PV-Anlage gespeist, daher kein Export und ab 18:30 Uhr wurde das E-Auto angeschlossen, die Batterie zügig entladen - was man an der hohen Frequenz der Zick-Zack Linien sieht.So - aber was bedeuten die Werte? Diese sind auf keinen Fall Wattstunden.
Nachts wo ich ungefähr 350W/h verbrauche hat er in einer Stunde von 20k-65k und 0-35k "hochgezählt", was "80.000" ergibt. Aber was sind diese 80.000 ???
edit: 80.000 / 350Wh = 228
Wenn ich also in Grafana alle Werte durch 228 teile dann passt ganz ungefähr. Ich müsste also den richtigen Dividenden finden, damit die Werte Sinn ergeben. Aber was zur Hölle soll das xD
-
@cybtrash viiiiiielen Dank!
Nun geht es, wie es soll:
Wo hast du diese Adressen gefunden?
Kannst du bitte auch den CSV Export bereit stellen? Macht den Import leichter und weniger fehleranfällig. -
@al-bundy said in Solaredge Adapter (Photovoltaikanlage):
Wo hast du diese Adressen gefunden?