ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]

Begonnen von BenMarloe, 09 Dezember 2017, 00:14:24

Vorheriges Thema - Nächstes Thema

Fowler

Kurze Frage:

Ich möchte von einem alten RaspberryPi auf einen neuen wechseln. Ich habe die komplette fhem-Installation bereits umgezogen und das meiste funktioniert auch bereits.

Ich habe jedoch das Problem, dass ich das SolarEdge-Modul nicht verbunden bekomme. Liegt das daran, dass die alte Installation noch läuft und es immer nur eine Verbindnung zum Wechselrichter über den ModBus geben kann?

Wie bekommt man denn die alte Verbindung weg und die neue eingerichtet?

Shadow3561

Moin,
die alte definition löschen und restart von Fhem,
dann restart vom neuen FHEM und die Verbindung sollte hergestellt werden können.

Grüsse,
Daniel

beejayf

Hallo zusammen,

vor ein paar Tagen habe ich eine seltsame Beobachtung in meiner Anzeige und den zugehörigen Logs gemacht (ich verwende mehrere Eigenbau Monitore, die Zustand von Wechselrichter und Batterie von FHEM abgreifen und anzeigen und diese Daten logge ich auch alle 5 Minuten mit einem Raspberry Pi mit.

Nach Einbruch der Dunkelheit und nachdem die Batterie auf 10% angekommen ist, schaltet der WR in einen Erhaltungsladungs-Modus (ich glaube das ist Modus 6) - und diesem wird eine PV-Leistung von ca. 600W angezeigt - zum Teil nur wenige Minuten - zum Teil auch 1h und mehr. Vor dem 10.11.24 habe ich so etwas noch nicht gesehen.

In der SolarEdge App sieht man davon nichts. Ich hatte zunächst meine Monitore im Verdacht, FHEM fehlerhaft auszulesen, aber tatsächlich zeigt FHEM in diesen Phasen Leistung DC und AC ebenfalls um 600W an.

Sieht noch einer von Euch diese Abweichungen?

Mike-Sbg

lt. SolarEdge haben sie etwas an den Definitionen verändert im September 2024.
Seither habe ich auch Probleme mit dem Auslesen und bekomme merkwürdige Werte zurück ... bei mir z.B. gibt es ein Problem mit dem Parameter: M_AC_POWER_SF   da stehen komische Werte oder "inf" drinnen, womit natürlich alle Werte ad absurdum geführt werden, wenn die Dezimale verschoben ist ...

Evt könnte das auch Dein Problem sein bzw. verursachen

beejayf

Die Probleme treten immer dann auf, wenn die Batterie sich nicht im Modus Laden oder Entladen befindet.

beejayf

@CaptainHook - wie kann ich unterstützen um das Auslesen in jedem Batterie Modus wieder richtigzustellen?

feli-x

Hallo alle,

seit ein paar Tagen bastle ich für die Solaranlage von einem Freund an einem Raspberry-Pi, der über FHEM die Daten aus einem SolarEdge-Wechselrichter speichern und darstellen soll. Zunächst habe ich den Wiki-Beitrag https://wiki.fhem.de/wiki/SolarEdge_Wechselrichter als Hilfe genommen. Die Daten wurden aber nicht alle korrekt dargestellt. Nach zwei Tagen fand ich hier über die späteren Forumsbeiträge heraus, dass die aktuelle Version des Moduls, um über Modbus mit dem SolarEdge-WR Daten auszutauschen, https://github.com/pejonp/FHEM---SolarEdge ist. Die Datenabfrage funktioniert jetzt gut :-)
  Gerade bin ich dabe, den Hausverbrauch auch im SVG-Plot darzustellen. Kann man eigentlich in den Menüs zum Plot irgendwelche Rechenoperationen, die auf die Daten angewendet werden sollen, einstellen? (Der Hausverbrauch ergibt sich ja aus der PV-Produktion und den Werten des Energy-Meters am Einspeisepunkt.)
  Oder muss man extra Readings erstellen, um Daten zu erzeugen, die dann direkt im SVG-Plot dargestellt werden? Ich habe hier im Forumsthread gelesen, dass User-Readings erzeugt werden können. Z.B. über
Zitat von: Mellowback am 22 September 2022, 18:17:03EigenverbrauchJetzt { ReadingsVal("SolarEdge", "I_AC_Power",0) - ReadingsVal("SolarEdge", "X_Meter_1_M_AC_Power",0) }

Ich vermute, wenn ich das in die FHEM-Kommandozeile eingeben will, muss ich schreiben
attr SEdge userReadings EigenverbrauchJetzt { ReadingsVal("SolarEdge", "I_AC_Power",0) - ReadingsVal("SolarEdge", "X_Meter_1_M_AC_Power",0) }
(Mein Device heißt SEdge. Ist das so richtig?)

Kann mir jemand einen Tipp geben?

Grüße Felix

Mike-Sbg

Zitat von: feli-x am 22 November 2024, 18:50:17Forumsthread gelesen, dass User-Readings erzeugt werden können. Z.B. über
Zitat von: Mellowback am 22 September 2022, 18:17:03EigenverbrauchJetzt { ReadingsVal("SolarEdge", "I_AC_Power",0) - ReadingsVal("SolarEdge", "X_Meter_1_M_AC_Power",0) }

Ich vermute, wenn ich das in die FHEM-Kommandozeile eingeben will, muss ich schreiben
attr SEdge userReadings EigenverbrauchJetzt { ReadingsVal("SolarEdge", "I_AC_Power",0) - ReadingsVal("SolarEdge", "X_Meter_1_M_AC_Power",0) }
(Mein Device heißt SEdge. Ist das so richtig?)

Kann mir jemand einen Tipp geben?

Grüße Felix

Evt. hilft Dir die Defintion die ich verwende (die bis vor ca. 1 Monat funktioniert hat):

Eigenverbrauch { sprintf("%.2f", ReadingsNum ('SolarEdge' ,'I_DC_Power',0) - ( ReadingsNum ('SolarEdge' ,'M_AC_POWER',0) + ReadingsNum ('SolarEdge' ,'B_Instantaneous_Power',0) ) )}

Mein Problem ist daß der M_AC_POWER Wert der eigentlich den Bezug oder das Einspeisen ins öffentliche Netz darstellen sollte, nicht mehr richtig ist ...


feli-x

Oh wow - das funktioniert! Danke Mike-Sbg *
  Dazu musste ich noch "shutdown restart" in die Kommandozeile von FHEM eingeben. Ich habe danach gemerkt, dass meine Definition von oben (attr SEdge userReadings EigenverbrauchJetzt { ... ) auch schon funktioniert hat. Ich hatte nur erwartet, dass "attr SEdge userReadings ... " in der fhem.cfg ganz unten erscheint. Es wird aber weiter oben eingeordnet. In dem Menü vom SVG-Plot, in dem man die Daten auswählt, sind jetzt "SEdge.Eigenverbrauch:" und "SEdge.EigenverbrauchJetzt:" zu sehen. Beide Kurven stimmen miteinander überein. Mich hatte auch gewundert, dass die Werte in /opt/fhem/log/fhem-2024-11.log nicht gespeichert werden. Die userReadings werden wohl nur rechnerisch aus den Rohdaten im Logfile ermittelt?
  Es ist doch nicht so einfach. Die Werte werden natürlich in /opt/fhem/log/SEdge-2024.log gespeichert (nicht in fhem-2024-11.log. Und wenn man mehrmals hintereinander User-Readings mit "attr SEdge user Readings Readingsname ..." eingibt mit verschiedenem "Readingsname", dann kommt wohl FHEM durcheinander. Jedenfalls werden in den Menüs vom SVG-Plot manchmal mehrere von den zuvor eingegebenen Readingsnamen angezeigt, obwohl es meiner Meinung nach so gedacht ist, dass immer nur ein Attribut "attr SEdge userReadings ..." aktiv sein kann. Manchmal wird dann bei einem veralteten Readingsname nur eine Linie bei y=0 angezeigt.
  Ich probier noch etwas herum und geb dann noch mal eine Rückmeldung.

Eine andere Frage:
 Warum ist eigentlich die Erstellung des SVG-Plot-Diagramms bei einem "SolarEdge-Device" so langsam? Liegt das daran, dass im Logfile auch immer die html-Tabellen des SolarEdge-Devices samt Werten gespeichert werden?

feli-x

Kurze Rückmeldung. Ich habe die letzten Nachrichten hier im Forumsthread noch einmal genauer gelesen. Aus der Antwort
Zitat von: Icinger am 22 September 2022, 18:30:36von Icinger
auf die Frage von Mellowback ist mir klar geworden, dass die userReadings eine "comma-separated list of definitions" sein können, man kann also mehrere userReadings definieren. Gleichzeitig ist mir klar geworden, dass man die Definitionen einfach in der Detailansicht vom einem SolarEdge-Device unter dem Menüpunkt "userReadings" einfügen kann, sofern man schon mal dafür ein userReading davor erzeugt hatte.

Jetzt habe ich in der Detailansicht von meinem Device namens "SEdge" als userReadings eingegeben:

P_pv { - ReadingsVal("SolarEdge", "I_AC_Power",0) } , P_netz { ReadingsVal("SolarEdge","X_Meter_1_M_AC_Power",0) } , P_haus { ReadingsVal("SolarEdge","I_AC_Power",0) - ReadingsVal("SolarEdge","X_Meter_1_M_AC_Power",0) }

Hintergrund dafür ist, dass ich die drei Werte konsistent in einem System darstellen will, in dem Erzeugung positiv und Verbrauch negativ gezählt werden. (So etwas wie das Verbraucherpfeilsystem in der Elektrotechnik, nur jetzt nicht für die Pfeile, sondern für die Leistungen der Teile des Gesamtsystems "Energieanlage in einem Haus".) Dann soll gelten:
P_pv + P_netz + p_haus = 0

Ich bin gespannt, ob das so klappt. (Mit der Definition von P_pv, wie oben zu sehen, hatte ich davor Probleme, ich weiß nicht warum. Es soll nur das Vorzeichen im Vergleich zu I_AC_Power gewechselt werden.)

Vielleicht gehe ich auch zu einem System über, in dem Erzeugung positiv gezählt wird und Verbrauch negativ, das ist wahrscheinlich intuitiver.

Sorry für meinen Monolog - vielleicht hilft das ja auch noch wem anders  ;D

Gruß Felix


feli-x

Eine Sache war noch falsch, statt des Modulnamens "SolarEdge" muss man den Namen des erstellten Devices - bei mir "SEdge" - angeben. Meine Definitionen für die userReadings sind also:

P_pv { - ReadingsVal("SEdge", "I_AC_Power",0) } , P_netz { ReadingsVal("SEdge","X_Meter_1_M_AC_Power",0) } , P_haus { ReadingsVal("SEdge", "I_AC_Power",0) - ReadingsVal("SEdge", "X_Meter_1_M_AC_Power",0) }

Jetzt läuft's. ;-)

beejayf


feli-x

@beejayf

Bisher ist noch keine Batterie im System. Es kommt aber bald eine SolarEdge Home Hochvolt-Batterie (9,7kWh) mit einem Batteriewechselrichter SE5000H AC BEN4 (4,6kW) dazu. Ich melde mich dann nochmal - sobald ich daran denke ;-) - ob das Gesamtsystem mit fhem funktioniert. Ansonsten bitte nachfragen ...

Grüße feli-x

rolizer

Hallo zusammen,
ich hab den PI neu aufgesetzt und starte von 0. Nun wollte ich mir die PowerControlProtocol Version von Github einbinden, aber das schlägt fehl - es geht nur die Master Version:
2025.01.14 11:40:07 1: Downloading https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/PowerControlProtocol/controls_SolarEdge.txt
2025.01.14 11:40:27 1: UPD ./FHEM/98_SolarEdge.pm
2025.01.14 11:40:28 1: Got 62931 bytes for ./FHEM/98_SolarEdge.pm, expected 64286
2025.01.14 11:40:28 1: aborting.
Hat jemand eine Idee, soll ich einfach die Filesize im Controlfile ändern?
LG