Hallo,
bin absoluter Frischling bei OpenEMS. Habe bisher erfolgreich ‘Getting Started’ durchgearbeitet und möchte nun meine heimische Installation bestehend aus Fronius Symo Wechselrichter, Keba Wallbox, Tesla Powerwall2 und Nibe Wärmepumpe in OpenEMS integrieren.
Mit der Keba Wallbox ist mir das erfolgreich gelungen, auch der SDM630 Stromzähler, der der Nibe vorgeschaltet ist, liefert Daten.
Tesla Powerwall wird wohl nach der Umstellung auf Authorisierung in der Tesla Api erst mal nicht funktionieren.
Was ich nicht ans Laufen bekomme ist der Fronius Wechselrichter. Dazu hatte ich eine weitere Modbus-Bridge mit der IP-Adresse des Wechselrichters eingerichtet und den Fronius PVInverter damit verknüpft. Ich bekomme jedoch keine Daten und im Log die Meldung: pvInverter0[L:UNDEFINED]
Der Inverter sollte korrekt konfiguriert sein, da bereits andere Systeme die Daten problemlos auslesen können.
Die Modbus-Schnittstelle im Symo ist eingeschaltet.
Die anderen Systeme sind einmal die openWB 1.9 Software, die in einer VM läuft und mit der Keba Wallbox Überschussladen macht. Über den Fronius-WR greift die openWB Software auch auf das Fronius-Smartmeter zu.
Weiterhin habe ich in einer VM die Software ‘Solaranzeige’ laufen, die die Ertragsdaten in eine influxdb schreibt, worauf ich dann per Grafana zugreife. Und ich hatte zwischenzeitlich unsere Nibe-WP so konfiguriert, dass sie per Modbus die Daten vom Fronius-WR abgreift.
Zuguterletzt hatte ich zwischenzeitlich auch zu Testszwecken mit python-Skripten Daten des Wechselrichter abgerufen.
Genau da KÖNNTE dein Problem liegen ober und unter mir
Eventuell lässt dein WR es nicht zu, dass man Ihn übertrieben gesagt 4 mal ausliest. Versuch es doch einfach mal nur mit einer Du brauchst eigentlich keine Solaranzeige mehr, wenn du openEMS nutzt, Überschussladen funktioniert mit der Keba Wallbox und openEMS z.B. EXTREM gut - auch kein openWB mehr nötig
Die WP kannst du mit einem Relaisboard (Digitale Eingänge der WP) einfach smart steuern
Somit hast du “alles unter einem Dach” und musst nicht 4 Systeme laufen haben, die alle unterm Strich das gleiche Versuchen
Zum eigentlichen Thema - mittlerweile liefert der Fronius WR Daten. Woran es lag, kann ich nicht abschließend sagen. Ich habe eine zweite Modbus-Bridge konfiguriert, die erfolgreich die Daten des Wärmepumpen-Zwischenzählers einliest. Diese Bridge habe ich deaktiviert und vom Fronius bekam ich plötzlich Daten. Auch als ich die Bridge des Zwischenzählers wieder aktivierte, blieb das so. Ob es daran lag, oder ob ich noch doch noch was anderes umkonfiguriert habe, k.A.
Was meine Umgebung angeht, so hast du natürlich recht, dass man das alles zusammenführen kann und muss. Genau deshalb schau ich mir das an. Meine Umgebung ist halt wie so oft historisch gewachsen. Aber ob OpenEMS wirklich alles abdeckt, weiß ich noch nicht. Ich betreibe neben den genannten Systemen beispielsweise auch noch eines, was mit telegram per modbus unsere Nibe-WP ausliest und vielleicht 50 verschiedene Werte in eine influxdb schiebt, von wo aus ich sie in Grafana nach belieben visualisiere. Da unsere WP erst eineinhalb Jahre alt ist und schon einige Störungen, Defekte und fehlerhafte Installation hinter sich hat, finde ich es super, dass ich, wenn ich einen weiteren Wert protokollieren will, einfach das Modbus-Register in die Telegram-Konfigurationsdatei eintrage. Dann landen dessen Daten automatisch in der Datenbank und ich kann direkt über Grafana zugreifen.
OpenEMS scheint mir sehr mächtig. Aber einiges von dem, was ich für meine Umgebung benötige, wie beispielsweise das Fronius SmartMeter, ist nach meinem ersten Eindruck noch nicht umgesetzt. Aber gerade das ist vielleicht auch eine Herausforderung. Ich habe seit 40 Jahren in einem IT-Unternehmen als Software-Entwickler gearbeitet und bin jetzt frisch gebackener Rentner, der nicht auf der faulen Haut sitzen will. Meine Java-Kenntnisse sind vielleicht nicht mehr auf der Höhe der Zeit, aber schauen wir mal.
bei mir sehe ich OpenEMS noch für einige Zeit eher im Parallelbetrieb. openWB unterstützt eine Vielzahl von Lade-Modi für die Keba Wallbox, die ich in OpenEMS noch nicht sehe. Der Wechselrichter unserer neuen zweiten PV wird nicht unterstützt. Einer meiner Verbraucher, der an einem SDM120 hängt, auch nicht. Bei der Wallbox fehlt die SOC-Abfrage meines Tesla-Model Y, ein Tesla-Powerwall Device gibt es zwar, funktioniert jedoch nicht, weil die Authentifizierung fehlt, die Tesla schon vor einiger Zeit eingeführt hat.
Und ich denke, das Thema Wärmepumpen wird (aus gutem Grund) recht stiefmütterlich behandelt. Ich hatte mir eine WP bewusst eine Wärmepumpe herausgesucht, die über modbus recht gut steuerbar ist. Da möchte ich halt nicht, mit Relais herumkaspern und Drähte ziehen und die Wärmepumpe allein entscheiden zu lassen, was sie mit dem Überschuss macht.
Die Fronous Smart-Meter Unterstützung können wir dennoch sehr gerne angehen. Ich möchte mich jedoch vorher noch etwas mehr in OpenEMS einlesen und ein paar einfachere Gehversuche wie die Erstellung eines Dummy-Devices und vielleicht die Unterstützung des SDM120 machen.
Wir haben hier ebenfalls ein Fronius WR mit angeschlossenem Smart-Meter. Daher die kurze Frage ob es evtl. schon eine Implementierung gibt? (habe zumindest bei den Komponenten im OpenEMS UI nichts gefunden…)
Wir nutzen einen Fronius Smart Meter TS 5kA-3. Wie Modbus TCP aussehen könnte weiß ich nicht. Es gibt eine REST API:
Für Netto-Bezug von Grid gesamt (kann auch negativ sein):
Ich habe vor längerer Zeit mal eine Implementierung für das TS63A gemacht, die seit einiger Zeit bei mir im Testbetrieb ist. Da mir die Zeit für einen PR fehlte, ist der Code nur in meinem Github-Repository von OpenEMS zu finden:
Um den Code zu übernehmen, muss man ihn. sicherlich noch an den heutigen Entwicklungsstand anpassen.
Die Implementierung ist wie gesagt bei mir nur im Testbetrieb und auch nur von mir getestet. Aber vielleicht hilft es.
Ich bin gewillt das zu probieren, wollte nur vorher fragen ob es Anpassungen gibt, die Menschen mit mehr Erfahrung im Projekt kennen und mir noch nicht bewusst sind.
Nichts für ungut
Ich bin mit meinem repository derzeit nicht auf aktuellem Stand. Ich müsste mir alle Änderungen holen und den Branch des Zählers einpflegen, um die Frage zu beantworten. Dann könnte ich das dann aber auich direkt wieder pushen und die Arbeit wäre erledigt. Ich rechne nicht mit großem Anpassungs-Aufwand. Die Anmerkung hatte ich nur gemacht, weil ich derzeit mit einem FroniusGen24 ESS-Treiber herumexperimentiere, wo ich den Code auch von jemanden aus dessen repository entnommen habe. Im Eclipse gab es keine Fehler. Aber zur Laufzeit gab es einige Exceptions und der Treiber funktionierte nicht, da der Code noch nicht ganz sauber war. Die TS63A Meter-Unterstützung ist in der Umsetzung aber um einiges einfacher.
Ich probiere gerade in meinem Fork die Fronius-Implementierung in die aktuelle OpenEMS Develop-Version zu integrieren. Hierbei komme ich in der IDE zur Fehlermeldung
The import io.openems.edge.bridge.modbus.sunspec.DefaultSunSpecModel.S213 cannot be resolved
Sorry, die JavaDoc habe ich zwar gesehen, aber ich verstehe es trotzdem nicht. Wo/wie muss ich den SunSpecCodeGenerator ausführen? Stehe irgendwie auf dem Schlauch…
Das SunSpec-Repository clonen. Der Generator erwartet es im Pfad System.getProperty("user.home") + "\\git\\sunspec\\json\\"; - das kann aber angepasst werden.
Aus den getIgnoreFiles() die entsprechenden neuen Models entfernen
In Eclipse IDE Rechtsklick auf SunSpecCodeGenerator → Run As → Java Application
Bei mir kommen da momentan ziemlich viele Änderungen auch in bestehenden Dateien und ein Fehler wegen einer neuen Einheit. Da müsste man jetzt also ran…