2023 PV Dashboard
Meine PV Anlage ist nun fertig installiert und in Betrieb gegangen. Da ich auch meine Heizung bereits ausgiebig überwache, liegt es nahe die auch für die PV Anlage umzusetzen. Wie ich das mittels Prometheus, Grafana und Node-RED umgesetzt habe, zeige ich hier.
Vorab die harten Fakten.
Meine PV Anlage besteht aus folgenden Komponenten:
- SMA Tripower Smart Energy Wechselrichter 10kW
- BYD HVS Akku mit 7.7 kW
- 20 Luxor Black Module mit 440W
Die verwendete Software:
- Prometheus + Prometheus Push Gateway
- Grafana
- Node-RED
Auf der Suche nach fertiger Software bin ich immer nur auf Projekte gestoßen die nicht zu meinem Wechselrichter passen. Oder einfach zu komplexe Abhängigkeiten hatten. Also selbst machen!
Also habe ich wie immer damit begonnen das Web Interface des Wechelrichters zu analysieren. Dabei habe ich mit Hilfe der Chrome Developer Tools das Webinterface analysiert. Einige Aufrufe sind sofort ins Auge gefallen.
- Login erfolgt via POST Request auf
/dyn/login.json
Zurück kommt eine SID die beiden nachfolgenden Zugriffen als Query Parameter sid= angehangen werden. - Logout erfolgt über POST Request auf
/dyn/logout.json?sid=<sid>
mit leerem Payload - Alle Parameter sind über
/dyn/getAllOnlValues.json?sid=<sid>
abrufbar - Beschreibung aller Parameter unter
/#/spotvalues
- Hinter dem Button “Alle Momentanwerte exportieren” verbirgt sich ein Download als HTML Datei der alle technischen Parameter beinhaltet. Diese benötigen wir später für das zerlegen der JSON Daten von
/dyn/getAllOnlValues.json
Mit diesen Erkenntnissen habe ich einen Node-RED Flow erstellt der jede Minute alle Daten aus dem SMA Webgui ausliest
- HTTP POST auf /dyn/login.json
- sid auslesen
- HTTP POST auf getAllOnlValues.json mit Übergabe der sid
- Daten über Function Node für Prometheus aufbereiten
- HTTP POST Request auf Prometheus Push Gateway mit Übergabe der Daten
- HTTP POST auf /dyn/logout.json
Der gesamte Flow ist in etwa 100ms abgearbeitet. Damit kann ich gut leben.
Alle Daten liegen nun in Prometheus vor und können in Grafana Dashboards verwendet werden.