Liebe Entwickler, liebe Community,
hallo zusammen, ich bin neu hier und hätte ein paar Verständnisfragen und Anregungen.
Kurz zu mir, ich komme beruflich aus dem Eventtechnik Bereich und bin da eher in der Hardwareecke, weniger in der Softwareentwicklung Zuhause.
Aktuell installiere ich mir gerade, als Autodidakt und DIYler, meine erste PV-Anlage 10kWp inkl. Niedervoltspeicher und Wallbox mit Fokus auf Eigenverbrauchsoptimierung und zukünftiger Anbindung weiterer steuerbare Verbraucher.
Aufgrund dieses Vorhabens kommt man kurz oder lang um das Thema EMS nicht herum. Ich betreibe fürs Smarthome iobroker womit man sicherlich das ein oder andere gut direkt Umsetzen könnte, das Themenfeld hat aber auch so seine Komplexität welche nur mit ordentlich Zeiteinsatz sinnvoll zu realisieren wäre. Warum also das Rad neu erfinden…?
Bei meinen Recherchen nach EMS Systemen welche meine Hardwareliste unterstützen könnte bin ich dann auf openEMS gestoßen.
Ich selbst bin jemand der nicht besonders auf geschlossene Systeme steht und es nicht scheut sich mit der Materie tiefer auseinanderzusetzten.
Plug & Play bringt erfahrungsgemäß Flexibilätseinschränkungen oder einen erhöhten Kostenumfang mit sich. Kurzum ich bin ein Fan von OpenSource und sehe dies als eine der besten Methoden diverse Systeme miteinander betreiben zu können.
Die Möglichkeit bei Fenecon und opernikus sich Live-Demo Anwendungen ansehen zu können hat mich direkt überzeugt das System ausprobieren zu wollen.
Hier schonmal ein großes Lob an die Entwickler!
Meine ersten Gehversuche mit openEMS habe ich bereits hinter mir und hab ein teilweise lauffähiges System mit einem funktionierenden Smartmeter und einem Wechselrichter vor mir.
Jedoch bedurfte es bis hierhin einer doch recht steilen Lernkurve, womit ich zu meiner ersten Frage komme:
Wie möchte das OpenSource Projekt „openEMS“ zu welchem Nutzerkreis verortet werden?
Dient es als Grundlage für eher kommerzielle/industrielle/professionelle Projekte also als Basis für Programmierer und Systementwickler (der Projektursprung durch Fenecon ist mir bekannt) oder möchte man auch breiter in die Masse in Form von DIYuser usw. gehen?
Subjektiv gesehen habe ich das Gefühl der Fokus geht in Richtung Professionalisierung jedoch denke ich das man hier ein gewisses Potential einer wachsenden/größeren Community in Form von Privatleuten & DIYler zu wenig bedient.
großer Nutzerkries=große Community=potentiell neue Entwicklungsressourcen
Um den Nutzerkreis außerhalb von Nutzern mit Entwicklungserfahrung auszuweiten sehe ich da jedoch noch einige Defizite und diese liegen primär an der Strukturierung der Doku.
Wenn sich jemand mit mäßigen Entwicklungskenntnissen wie ich sich an das Projekt openEMS wagt, sind die anfänglichen Hürden doch sehr groß. Dies fängt bei „Getting Started“ an, ich würde mich wetten trauen, dass 75% der Interessenten im DIY Bereich bis zum Punkt zwei lesen und spätestens mit dem Punkt eine Entwicklungsumgebung zu installieren zu müssen resignieren und es dann frustriert lassen.
Meiner Meinung nach spiegelt dies genau auch die Tatsache dar dass man auf Youtube nahezu keine Infos über openEMS (außer jene von openEMS selbst) geschweige irgendwelche howto`s finden kann wie dass System aufgesetzt und benützt wird.
In Wahrheit ist es aber doch so, wenn man weiß wie es geht kann man mit den fertigen Builds (entsprechende Infrastruktur vorausgesetzt Proxmox, Raspberry o.ä.) in etwa 10 min ein spielendes System (Edge + UI für zu Hause ausreichend) aufsetzen. Weitere 10 min später hat man ein Smartmeter und Datenspeicherung zu einer vorhandenen InfluxDB eingerichtet.
àErgebnis: Schon hat der Interessent ein Erfolgserlebnis und ist angefixt um damit weiterarbeiten zu wollen.
Bitte folgende Punkte als konstruktive Kritik eines Endanwenders betrachten, ich bin mir der Arbeit die in so einem Projekt inkl. Doku stecken sehr bewusst. Meine Intuition ist hier evlt. etwas Feedback zu geben um die bisher tolle Arbeit etwas bekannter zu machen. Leider fehlt es mir an Programmierkenntnissen um hier konstruktiv aktiv beitragen zu können.
Vorschläge meinerseits und Fallstricke die ich noch so erfahren habe:
-Vorschlag würde es nicht Sinn machen in der Doku zwischen Endanwender und Entwickler zu unterscheiden/leiten? Getting Stated ist ja eher für Entwickler interessant, der Endanwender braucht „Deploy OpenEMS Edge“ jedoch bis dahin werden die Wenigsten lesen.
-die Doku ist für eine Installation der UI wenig aussagekräftig, hier scheitert Ottonormalo schon am Webserver, hier half mir nur das Forum und die Doku von @klinki Edge + UI Deployment - ein grober Leitfaden, Raspberry Pi
-als nächstes das schon sehr oft im Forum angesprochene Thema Websocket mit unterschiedlichen Ports für die UI,
dies konnte ich auch wieder nur durch Forumsinfos lösen.
Wenn dies in der fertigen Build schon gesetzt wäre, gäbe es hier einen Fallstrick weniger (Leute die wissen was sie tun löschen das Modul für die API einfach und gut ist‘s als reiner Edge.
-dann wäre da noch der Tip mit der gehosteten Version der UI, wenn hier auch eine UI antworten würde wäre man hier nicht mit der nächsten Fehlersuche beschäftigt
-Eine detailliertere Beschreibung der Module und Funktionsumfang wäre nicht schlecht, hier meine ich explizit welche Module welche Abhängigkeiten brauchen um zu funktionieren und deren genauen Funktionen. Hier haben mir die Fenecon Dokumente am meisten weitergeholfen.
-Abhängigkeiten von Programmversionen z.B. welche Java Version aktuell benutzt werden sollte, war für mich nicht findbar.
Zusammenfassend denke ich würde man bei einer speziell auf Endanwender ausgerichteten Doku sehr viel Reichweite generieren können. Gerade im DIY Bereich gibt es viele Leute die dann auch extrem viel Zeit in Debugging & Weiterentwicklung stecken.
Evlt. wäre hier auch eine Art „Install Sript“ für die fertigen Builds hilfreich um noch schneller zu einem Ergebnis zu kommen.
Als weiteres Thema hätte ich noch gerne die Möglichkeit von „Universelle Geräte Module“ angesprochen.
Im Hinblick das System für Endanwender attraktiver zu machen steht man irgendwann vor dem Problem „wie bringe ich meine Geräte da rein?“ Wenn man jetzt nicht Hardware besitzt zu welcher es Module gibt ist hier die nächste Hürde erreicht.
Meiner bisherigen Erfahrung nach sprechen sehr viele wenn nicht sogar fast alle Geräte ModbusRTU bzw. ModbusTCP, wäre es nicht denkbar hier universale Module anzubieten mit welchen man schnell ohne explizite Codeanpassung per UI zu einem Ergebnis kommt?
Als Beispiel möchte ich Meter und Inverter Module nennen, eigentlich braucht es hier doch „nur“ eine Mapping Maske in welcher
-must have Datenpunkte,
-die Info in welchen Register diese zu finden sind
-einen Faktor um diese Daten für openEMS in die benötigte Einheit umzurechnen
-eina Angabe um welchen Datentyp es sich handelt
verknüpft werden?
Alle Meter Module sind doch lesender Natur?
Wenn man hier dann noch für das Mapping ein importieren/exportieren einbaut, bin ich mir sicher das hier sehr schnell neue Gerätebibliotheken entstehen.
Oder übersehe ich hier noch etwas grundlegendes?
Ähnliche Frage für das Sunspec Protokoll, das ist doch in openEMS bereits universal implementiert, wieso aber gibt es dazu kein Geräte Modul pv_inverter_Sunspec_unversal? Es dauert etwas bis man rausgefunden hat das man einfach mal andere Herstellermodule testet und feststellt das dies funktioniert warum also nicht gleich was universelles bauen bzw. so benennen. Hier bräuchte es für einphasige Umrichter analog zu Modul SMS Sunny Tripower auch die Möglichkeit die Einspeisende Phase zu definieren.
Einen schreibenden Wert für Leistungsreduktion sollte hier doch auch leicht umzusetzen sein da durch Sunspec definiert?
Für Speicher und Wallboxen sehe ich etwas mehr Entwicklungsbedarf jedoch ist die Logik hier hinter den Modbus Registern ähnlich bis immer die gleiche.
Ich entschuldige mich für Wörter wie „nur“ „einfach“ usw. ziemlich wahrscheinlich Ist es nicht so einfach wie man es sich als Laie vorstellt. Sollte jemand meine Gedanken gut finden und probieren wollen davon was umzusetzen, ich bin hier gerne mit im Boot und für Testzwecke immer zu haben.
Leider ist dieser Text jetzt etwas länger geworden, danke für alle die bis hierhin gelesen haben und sorry für die Ausschweifung!
Ich freue mich auf Feedback