Seite 1 von 3
SolarEdge: PV und Speicher Leistung wird nicht mehr ausgelesen
Verfasst: Mo Aug 12, 2019 5:07 pm
von liZErd
Hallo zusammen,
nachdem snaptec und ich gerade nicht mehr weiter kommen, wende ich mich mal an die Community.
Vielleicht hat ja jemand ein ähnliches Problem oder noch besser eine Lösung dazu.
Konfiguration:
Ich hatte über mehrere Monate openWB (als Standalone auf einem NanoPi) mit einem SolarEdge Wechselrichter (EVU, PV und Speicher Modul über Modbus TCP, angeschlossen ist eine Powerwall 1) und go-e Charger problemlos am Laufen. Alle drei sind mit einen Fritz Powerline 540E verbunden (Wechselrichter und openWB über Netzwerkkabel, go-e über WLAN), der Adapter ist über eine stabile 100Mbit Verbindung ans Netzwerk angebunden.
Problembeschreibung:
Vor Kurzem habe ich auf die series2 Standalone mit Display geupgraded, erst mal war alles plug-and-play und lief genauso problemlos weiter. Seit Mitternacht (soweit ich den Graphen richtig deute) vom 27. auf den 28.07. wird jedoch die PV und Speicher Leistung nicht mehr ausgelesen und steht konstant auf 0W. Seltsamerweise wird die EVU Leistung nach wie vor problemlos ausgelesen, ebenfalls über Modbus TCP und ebenfalls vom Wechselrichter. Auch die Steuerung der go-e sowie das Zoe SoC Modul funktionieren weiter problemlos, weswegen ich Netzwerkprobleme eigentlich ausschließen möchte.
Ich habe weder an Hard- noch Software-Setup aktiv etwas verändert, und soweit ich sehen konnte gab es auch keine automatischen Updates von Wechselrichter oder Netzwerkomponenten.
Seltsamerweise komme ich über den CAS Modbus Scanner über die IP des Wechselrichters aber an den PV Wert im Modbus Register 40084 (die ausgelesene Leistung stimmt auch mit dem PV Wert im SolarEdge Monitoring überein), was bedeuted dass der WR den Wert nach wie vor über Modbus TCP ausgibt. Daher vermute ich das Problem eigentlich in openWB. snaptec will sich das Ganze nochmal selbst über VPN anschauen.
Was wurde bisher versucht:
- Neustart von openWB über reboot Button, woraufhin openWB in einer Bootschleife hing. Nach Ein- und Ausstecken lief openWB wieder stabil, Fehler aber nach wie vor vorhanden. Über die Zeit gab es mehrere Neustarts als Lösungsversuch.
- PV Installation mehrmals über Sicherung vom Netz getrennt und somit über mehrere Minuten stromlos gemacht
- Powerline Adapter und FritzBox neu gestartet
- openWB eingeschickt und Kevin hat ein neues Firmware Image geflasht
- openWB komplett neu eingerichtet
Ich hoffe einer von euch hat eine Idee hierzu, das Ganze ist schon sehr seltsam.
Immerhin funktioniert nach wie vor die Nur PV Regelung (erst sobald der Speicher voll ist), da der EVU Wert ja noch verfügbar ist. So lässt sich openWB zumindest eingeschränkt nutzen, bgzl. Logging und Speicherberücksichtigung ist das aber natürlich kein aktzeptabler Dauerzustand.
Viele Grüße,
Bastian
Re: SolarEdge: PV und Speicher Leistung wird nicht mehr ausgelesen
Verfasst: Mo Aug 12, 2019 8:05 pm
von okaegi
Hallo bastian
Ich mag mich vage an eine Änderung im Solaredge driver erinnern, wo bei gleicher ip Adresse von der Pv Anlage und dem Speicher die pv Leistung korrigiert wird.
Sind die Ip adressen vom Speicher und dem Wr noch gleich ?
Sonst würde ich vorschlagen, das wir auf Stufe openwb driver die unteren traces einbauen, dann sehen wir was abgeht...
Gruss Oliver
('04/14/2019, 12:43:03', ' T62836 ', [40960, 17731])
('04/14/2019, 12:43:03', ' storagepower ', 3130)
('04/14/2019, 12:43:03', ' T40083 ', [6210, 65535])
('04/14/2019, 12:43:03', ' T40084 ', [65535, 49982])
('04/14/2019, 12:43:03', ' pvwatt ', -621)
('04/14/2019, 12:43:23', ' T62836 ', [0, 0])
('04/14/2019, 12:43:23', ' storagepower ', 0)
Re: SolarEdge: PV und Speicher Leistung wird nicht mehr ausgelesen
Verfasst: Mo Aug 12, 2019 8:10 pm
von openWB
Das komische, evu funktioniert, pv/speicher nicht.
Traceback (most recent call last):
File "/var/www/html/openWB/modules/speicher_solaredge/solaredge.py", line 15, in <module>
raw = struct.pack('>HH', rr.getRegister(1), rr.getRegister(0))
AttributeError: 'ExceptionResponse' object has no attribute 'getRegister'
So 28. Jul 22:42:58 CEST 2019
speicherleistung 0 speichersoc 0
pvwatt 0 ladeleistung 6980 llalt 12 nachtladen 0 nachtladen 0 minimalA 8 maximalA 25
lla1 11 llas11 llas21 mindestuberschuss 1400 abschaltuberschuss 300 lademodus 0
lla2 11 llas12 llas22 sofortll 12 wattbezugint 17 wattbezug 17 uberschuss -17
lla3 11 llas13 llas23 soclp1 63 soclp2
evua 1 0 2 0 3 1
Sofort ladung erreicht bei 12 A
Traceback (most recent call last):
File "/var/www/html/openWB/modules/wr_solaredge/solaredge.py", line 19, in <module>
raw = struct.pack('>HH', rr.getRegister(1), rr.getRegister(0))
AttributeError: 'ExceptionResponse' object has no attribute 'getRegister'
Re: SolarEdge: PV und Speicher Leistung wird nicht mehr ausgelesen
Verfasst: Mo Aug 12, 2019 8:21 pm
von okaegi
Bastian,
Zeigt er den im solaredge Portal den Speicher und die pv Leistung noch an ?
Gruss Oliver
Re: SolarEdge: PV und Speicher Leistung wird nicht mehr ausgelesen
Verfasst: Mo Aug 12, 2019 9:13 pm
von liZErd
Ja, im Monitoring Portal haut immer noch alles hin.
Speicher hat (glaube ich) keine eigene IP, kommuniziert nur über RS485 mit den WR.
Danke schon mal für deine Mühen. VPN Zugriff haut jetzt hin?
Re: SolarEdge: PV und Speicher Leistung wird nicht mehr ausgelesen
Verfasst: Di Aug 13, 2019 3:31 am
von okaegi
Hm..was mir noch so einfällt:
Solaredge wr driver
Also in der Parmetrisierung braucht er zweimal die gleiche ip adresse (Speicher und wr) damit er erkennt, dass er die pv leistung um die Speicherleistung korrigieren muss.
Das passiert im solaredge wr modul.
Solaredge Speicher
Im solaredge speicher modul wird ebenfalls die Speicherleistung ausgelesen und auf die radisk geschrieben.
Was auch noch im solaredge wr driver ist:
Wir hatten doch am Anfang mit Solaredge 0 Werte, dann wurde zweimal kurz hintereinander der scale factor der pv leistung gelesen.
Wenn der nicht gleich ist wird nichts gerechnet.
Was ich so machen würde:
Regelintervall auf langsam oder sehr langsam stellen
Traces auf reg ebene einbauen, vieleich schickt ja solaredge neue Scalefactoren mit
Ging glaub so (hat dann alles in die xxlog1 geschrieben )
#trace
named_tuple = time.localtime() # get struct_time
time_string = time.strftime("%m/%d/%Y, %H:%M:%S", named_tuple)
if batwrsame == 1:
rr = client.read_holding_registers(62836, 2, unit=1)
print(time_string, ' T62836 ', rr.registers)
raw = struct.pack('>HH', rr.getRegister(1), rr.getRegister(0))
storagepower = int(struct.unpack('>f', raw)[0])
print(time_string, ' storagepower ', storagepower)
if batwrsame == 0:
print(time_string, ' No batt detected ')
#trace
Und dann hat es in der main noch das gebraucht
sudo python /var/www/html/openWB/modules/wr_solaredge/solaredge3.py $solaredgepvip $solaredgepvslave1 $solaredgepvslave2 $solaredgepvslave3 $Solaredgebatwr >> /var/www/html/openWB/ramdisk/xxlog1
Re: SolarEdge: PV und Speicher Leistung wird nicht mehr ausgelesen
Verfasst: Di Aug 13, 2019 5:38 am
von openWB
Der VPN den liZErd mir eingerichtet hat läuft leider nicht.
Das komische ist ja das es ein Wechselrichter bzw. eine IP ist.
EVU geht auslesen, PV & Speicher aber nicht.
Der WR ist grundsätzlich erreichbar, antwortet aber Müll:
Code: Alles auswählen
Traceback (most recent call last):
File "/var/www/html/openWB/modules/wr_solaredge/solaredge.py", line 19, in <module>
raw = struct.pack('>HH', rr.getRegister(1), rr.getRegister(0))
AttributeError: 'ExceptionResponse' object has no attribute 'getRegister'
Traceback (most recent call last):
File "/var/www/html/openWB/modules/speicher_solaredge/solaredge.py", line 15, in <module>
raw = struct.pack('>HH', rr.getRegister(1), rr.getRegister(0))
AttributeError: 'ExceptionResponse' object has no attribute 'getRegister'
Wenn der WR garnicht erreichbar ist (Neustart durch ihn) sieht die Fehlermeldung anders aus:
Code: Alles auswählen
pymodbus.exceptions.ConnectionException: Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.101.8:502)]
Traceback (most recent call last):
File "/var/www/html/openWB/modules/speicher_solaredge/solaredge.py", line 14, in <module>
rr = client.read_holding_registers(62836, 2, unit=1)
File "/usr/local/lib/python2.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers
return self.execute(request)
File "/usr/local/lib/python2.7/dist-packages/pymodbus/client/sync.py", line 107, in execute
raise ConnectionException("Failed to connect[%s]" % (self.__str__()))
pymodbus.exceptions.ConnectionException: Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.101.8:502)]
Traceback (most recent call last):
File "/var/www/html/openWB/modules/bezug_solaredge/solaredge.py", line 15, in <module>
resp= client.read_holding_registers(40206,1,unit=1)
File "/usr/local/lib/python2.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers
return self.execute(request)
File "/usr/local/lib/python2.7/dist-packages/pymodbus/client/sync.py", line 107, in execute
raise ConnectionException("Failed to connect[%s]" % (self.__str__()))
pymodbus.exceptions.ConnectionException: Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.101.8:502)]
Traceback (most recent call last):
File "/var/www/html/openWB/modules/wr_solaredge/solaredge.py", line 18, in <module>
rr = client.read_holding_registers(62836, 2, unit=1)
File "/usr/local/lib/python2.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers
return self.execute(request)
Da kann die openWB erst garkeine Verbindung aufbauen.
Warum Bezug geht und PV/Speicher nicht ist nun die Frage.
Re: SolarEdge: PV und Speicher Leistung wird nicht mehr ausgelesen
Verfasst: Di Aug 13, 2019 8:10 pm
von okaegi
Das was ich noch im netz gefunden habe ist in manchen konfigurationen ein timeoutproblem während dem Verbindngsaufbau und dann ein ablehnen aller folgenden Abfragen, hier wird ein timeoutwert von 10 empfohlen.
Ebenso dann jede Abfrage mit isError ein if-en um zu verhindern das schrot in den Variablen landet.
Vieleicht hat es ja plötzlich Netzlast gegeben und der Verbinungsaufbau dauert zu lange... (das erklärt aber auch nicht das ein par Werte kommen und andere nicht, vielleicht weil der Speicherwert zweimal abgefragt wird im speicher und im wr driver)
Gruss Oliver
rom pymodbus.client.sync import ModbusTcpClient
client = ModbusTcpClient(ipaddress, port=502,timeout=10)
#batterie auslesen und pv leistung korrigieren
storagepower = 0
if batwrsame == 1:
rr = client.read_holding_registers(62836, 2, unit=1)
raw = struct.pack('>HH', rr.getRegister(1), rr.getRegister(0))
storagepower = int(struct.unpack('>f', raw)[0])
resp= client.read_holding_registers(40084,2,unit=slave1id)
if not resp.isError():
multipli = resp.registers[0]
multiplint = format(multipli, '04x')
fmultiplint = int(struct.unpack('>h', multiplint.decode('hex'))[0])
Re: SolarEdge: PV und Speicher Leistung wird nicht mehr ausgelesen
Verfasst: Di Aug 13, 2019 8:48 pm
von openWB
Zum Verständnis:
Jede EVU Auslesung klappt. Jede PV/Speicher Auslesung schlägt fehl.
Das von jetzt auf gleich ohne ändern der Config.
Da es ein WR ist müsste EVU dann ja auch nicht gehen, oder?
Re: SolarEdge: PV und Speicher Leistung wird nicht mehr ausgelesen
Verfasst: Mi Aug 14, 2019 3:10 am
von okaegi
Du hast recht, das ist inhaltlich nicht klar.
Aber:
Ich hab mir überlegt in welchen drivern die jeweiligen Werte ausgelesen werden
Evu Wert: bezug_Solaredge, wr_solaredge
Pv Wert (zumindest der Scale Faktor) zweimal : wr_solaredge
Batterie Wert: speicher_solaredge, wr_solaredge
Jeder driver baut eine modbus Verbindung zum solaredge auf.
Wenn nur vom einem Driver die Verbindung in einem Regelintervall erfolgreich klappt, wäre das zumindest ein Ansatz einer Erklärung.
Werden noch andere Werte vom Solaredge die sich einem Driver zuorden lassen geupdatet ( z.b Ampere pro Phase)
Was passiert wenn das Regelintervall auf sehr langsam steht ?
Gruss Oliver
(Ein Nachbar hatte mal von einem Tag auf den anderen rechte Netzprobleme in seinem Lan, alle Verbindungsaufbauten gingen Faktor 2 bis 5. Bis das er herausfand, das sein Sohn einen Virus auf seinem Gamerpc hatte, der Mails in die ganze Welt schickte und sein Hausnetz zumachte)