Gelöst: SolarEdge Abfrage der Werte via ModBus TCP

Begonnen von tomix, 01 April 2020, 08:15:44

Vorheriges Thema - Nächstes Thema

tomix

Hallo zusammen

Ich nutze folgendes Modul für den SolarEdge Wechselrichter SE12.5K:
$Id: 98_SolarEdge.pm 0021 2019-06-24 17:54:00Z CaptainRoot $
Das relevante funktioniert und ich dann AC Power loggen und plotten.
Einige Werte werden jedoch im Gegensatz zu der Variante wie im Wiki beschrieben nicht ausgegeben (dafür gibt es keine Ausreisser auf Grund von nicht passendem SF Wert). Ich erhalte zudem folgende Warnung:

2020.04.01 00:00:38 3: SolarEdge: CheckEval for ParseObj warning evaluating expr for I_AC_VoltageAB, val=�, expr=$val/10: Argument "^O�" isn't numeric in division (/) at (eval 302303) line 1.

2020.04.01 00:00:38 3: SolarEdge: CheckEval for ParseObj warning evaluating expr for I_AC_VoltageBC, val=�, expr=$val/10: Argument "^O�" isn't numeric in division (/) at (eval 302304) line 1.

2020.04.01 00:00:38 3: SolarEdge: CheckEval for ParseObj warning evaluating expr for I_AC_VoltageCA, val=�, expr=$val/10: Argument "^O�" isn't numeric in division (/) at (eval 302305) line 1.

2020.04.01 00:00:38 3: SolarEdge: CheckEval for ParseObj warning evaluating expr for I_AC_VoltageAN, val= , expr=$val/10: Argument "^I^N" isn't numeric in division (/) at (eval 302306) line 1.

2020.04.01 00:00:38 3: SolarEdge: CheckEval for ParseObj warning evaluating expr for I_AC_VoltageBN, val= , expr=$val/10: Argument "^I^^" isn't numeric in division (/) at (eval 302307) line 1.

2020.04.01 00:00:38 3: SolarEdge: CheckEval for ParseObj warning evaluating expr for I_AC_VoltageCN, val= !, expr=$val/10: Argument "^I!" isn't numeric in division (/) at (eval 302308) line 1.

2020.04.01 00:01:37 3: SolarEdge: CheckEval for ParseObj warning evaluating expr for I_AC_VoltageAB, val=�, expr=$val/10: Argument "^O�" isn't numeric in division (/) at (eval 302326) line 1.

2020.04.01 00:01:37 3: SolarEdge: CheckEval for ParseObj warning evaluating expr for I_AC_VoltageBC, val=�, expr=$val/10: Argument "^O�" isn't numeric in division (/) at (eval 302327) line 1.

Ich wollte daher I_AC_Voltage* mal deaktivieren und habe daher im der Datei /opt/fhem/FHEM/98_SolarEdge.pm unter anderem folgende Zeilen auskommentiert:

#    "h40077" => {                                                                                    #AC Voltage Phase BC value
#        'reading' => 'I_AC_VoltageBC',
#        'expr'    => '$val/10',
#        'setexpr' => '$val',
#    },

Allerdings führt dies zu keiner Änderung? Was mache ich falsch (muss man das Modul neu einlesen)?

Gruss
tomix

pejonp

@tomix

versuche mal dieses Modul hier (https://github.com/pejonp/FHEM---SolarEdge), ich habe seine Änderungen eingepflegt. Er hatte mein Modul geforkt.
Oder du schriebst Ihn an.

Welches WIKI meinst du ?

pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

tomix

Zitat von: pejonp am 04 April 2020, 23:58:17
versuche mal dieses Modul hier (https://github.com/pejonp/FHEM---SolarEdge), ich habe seine Änderungen eingepflegt. Er hatte mein Modul geforkt.
Danke für das einpflegen. Ich wollte vor allen die Tageswerte. Also mal:

update all https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/master/controls_SolarEdge.txt

FHEM neugestartet und das Device neu angelegt:

defmod SolarEdge SolarEdge 1 60 192.168.178.20:502 TCP

Sieht aktuell gut aus, wobei das etwas schwierig zu sagen ist im Moment:

...
setstate SolarEdge 2020-04-05 21:20:29 I_Status Sleeping Night mode
setstate SolarEdge 2020-04-05 21:20:29 I_Temp_HeatSink 0 °C
...

Wobei das mit der Temperatur wohl immer noch nicht stimmt ;-) .

Zitat von: pejonp am 04 April 2020, 23:58:17
Welches WIKI meinst du ?
Das hier:
https://wiki.fhem.de/wiki/SolarEdge_SE10k

Gruss
tomix

pejonp

@tomix

bei mir steht jetzt auch : Sleeping Night mode und Temp ist 0 Grad. Ich denke das paßt.

pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

tomix

Morgen mal gucken.

Aktuell versuche ich mich daran, da kann man auch Nachts rumüben:
https://forum.fhem.de/index.php/topic,109904.0.html

Gruss
tomix

tomix

Alle Werte werden sauber ausgegeben. Schade ist, dass man mit ModBus keinen Zugriff auf die Werte der einzelnen Strings hat (auf die der Module sowieso nicht). Da könnte SolarEdge doch mal ein entsprechendes Firmware-Update machen.

setstate SolarEdge 2020-04-06 07:39:30 I_DC_Voltage 747.7
setstate SolarEdge 2020-04-06 07:39:30 I_DC_Voltage_SF -1
setstate SolarEdge 2020-04-06 07:39:30 I_Status Inverter is ON and producing power
setstate SolarEdge 2020-04-06 07:39:30 I_Temp_HeatSink 31 °C
setstate SolarEdge 2020-04-06 00:00:29 PV_2020_3 0
setstate SolarEdge 2020-04-06 07:39:30 X_PV_Energy 667072
setstate SolarEdge 2020-04-06 00:00:29 X_PV_EnergyCurrentMonth 0
setstate SolarEdge 2020-04-06 00:00:29 X_PV_EnergyCurrentWeek 0
setstate SolarEdge 2020-04-06 07:39:30 X_PV_EnergyToday 128
setstate SolarEdge 2020-04-05 21:16:26 state opened


Nicht verstanden habe ich wieso es ein state PV_2020_3 mit dem Wert 0 gibt. Aber egal den Tageswert von gestern im LogFile nachgetragen und nun sollte es wieder das machen was ich will.

Gruss
tomix

pejonp

@tomix

Schau mal hier https://github.com/jbuehl/solaredge. Da werden die solarmodule/converter ausgelesen. Man benötigt ein Device (raspi, kleinen pc, Nano pi) als "man in the middle" der den Datenverkehr mitliest. Ich hatte es schön mal eingerichtet. Hat funktioniert, bin dann aber wieder von angekommen. Die Daten würden in eine MySQL db geschrieben.

Pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

tomix

Zitat von: pejonp am 06 April 2020, 08:43:01
Schau mal hier https://github.com/jbuehl/solaredge.
Das habe ich bereits gefunden, aber den Aufwand ist mir das nicht Wert (vielleicht mache ich es dann trotzdem noch, um die Module loggen zu können ohne die Daten an SolarEdge zu senden). Schön und einfach wäre wenn die paar Werte auch via ModBus ausgegeben werden. Mir würde schon Leistung pro String reichen.
Gruss
tomix