Umfangreiches Logging mit Grafana (+Anleitung)

  • Es gibt ja mittlerweile doch einige die ihren WR (mit Speicher) über Grafana Monitoren.

    Trotzdem wollte ich mal mein Dashboard und mein Vorgehen vorstellen, da das Dashboard gerade in der Langzeitauswertung von historischen Daten deutlich mehr kann als die anderen die ich gesehen habe. Vielleicht will’s ja irgendjemand auch verwenden.

    Ich persönlich betreibe es mit einem Kostal Plenticore, aber das ist natürlich auch mit anderen Wechselrichtern möglich.

    Das neue Kostal-Portal kann das meiste davon natürlich auch, manches besser, manches schlechter. Trotzdem ist es mir einfach sympathischer die Daten selbst zu speichern und auszuwerten, und Spaß macht das ganze ja auch ;)


    Als Datenkollektor verwende ich OpenWB. OpenWB ist eigentlich eine Software zur Steuerung von Wallboxen. Um den PV-Überschuss auszunutzen greift diese per Modbus auf meinen Wechselrichter zu und liest dort alle relevanten Daten aus. Ich wollte nicht noch mit einem zweiten Gerät über Modbus auf den WR zugreifen, deswegen habe ich einfach die Daten von OpenWB verwendet, die von openWB angenehm über MQTT bereitgestellt werden. Das ganze ist natürlich auch deutlich einfacher als die Daten direkt per Modbus abzufragen.

    Wer keine openWB Wallbox hat, aber auch nicht mit einem eigenen Skript auf den WR zugreifen will, der kann natürlich auch openWB auf einem weiteren Raspberry/einer VM laufen lassen, ist ja openSource. Installationsanleitung gibts auf GitHub.


    Das eigentliche Logging macht bei mir kein Raspberry sondern eine VM auf meinem NAS-System, geht aber natürlich auch auf einem Raspberry (sollte nur nicht der sein auf dem auch oWB läuft).


    Auf dieser VM arbeite ich mit InfluxDB, Telegraf und natürlich Grafana:

    Die Daten werden mit Telegraf vom MQTT-Broker der OpenWB abgefragt und dann von Telegraf in eine InfluxDB Datenbank gespeichert und dann mit Grafana ausgewertet.

    Für die Installation der Tools Telegraf/InfluxDB/Grafana gibt viele Anleitungen, z.B.:



    https://www.bjoerns-techblog.d…a-auf-dem-raspberry-pi-3/


    Oder im OpenWB Forum:


    https://openwb.de/forum/viewtopic.php?f=6&t=629


    Die Installationsmethode weicht vielleicht ab je nach dem wo man die Tools installieren möchte (VM, Raspberry...), da gibt’s auf den Websites von InfluxDB und Grafana die entsprechenden Befehle für jedes System.


    Die telegraf.conf muss entsprechend so angepasst werden, dass Telegraf die entsprechenden MQTT-Topics abfragt, ein Beispiel für die Verwendung mit openWB findet sich in dem oben verlinkten Thread im openWB Forum. Außerdem muss hier natürlich die Verknüpfung zur InfluxDB Datenbank eingestellt werden.


    Zusätzlich zu den PV-Daten hab ich in InfluxDB noch PV-Vorhersage Daten von Solcast. Dafür Verwende ich Node Red und die Flows von hier, da hat jemand tolle Vorarbeit geleistet:


    https://discourse.nodered.org/…pi-influxdb-grafana/28037


    Kurz gesagt fragen die Flows einerseits von Solcast die Prognose-Werte der nächsten Tage ab und speichern diese auch in InfluxDB und andererseits senden sie die PV-Erträge der vergangenen Zeit (indem sie diese aus InfluxDB auslesen) an Solcast. Damit kann Solcast seine Prognose „tunen“ und unglaublich genau werde. Bei den folgenden Screenshots habe ich die Daten noch nicht lange an Solcast gesendet, weswegen ein Tuning noch nicht stattgefunden hat und die Prognose noch relativ ungenau ist.


    Außerdem habe ich noch den Sonnenstand visualisiert, definitiv kein Must-Have, sieht aber schick aus.

    Dafür habe ich das Grafana Sun and Moon Plugin verwendet, das wird hier genauer beschrieben:


    https://grafana.com/grafana/pl…n-datasource/installation


    Soweit mal wie ich an die verschiedenen Daten komme, kommen wir zu Grafana.

    Das Grafana-Dashboard habe ich als JSON-File angehängt.

    Ich erklär einfach mal kurz für jeden Teil was ich mir dabei gedacht habe:


    Aktuelle Werte und Tageswerte:

    Hier findet man alle aktuellen Werte und die Werte des aktuellen Tages für den schnellen Überblick. Dabei sind die Werte für PV (Aktuelle Leistung und Gesamtleistung des aktuellen Tages, PV-Prognose des aktuellen Tages bis zum aktuellen Zeitpunkt), für das Netz (aktuelle Netzleistung, Bezug des aktuellen Tages, Einspeisung des aktuellen Tages), für den Speicher (aktuelle Leistung, aktueller SoC, geladene kWh des aktuellen Tages, Entladene kWh), für den Hausverbrauch (aktueller Hauverbrauch, Hausverbrauch des aktuellen Tages, Direktverbrauch des aktuellen Tages) und ein kurze Info dazu ob gerade bezogen oder eingespeist wird und ob der Speicher lädt oder entlädt. Außerdem ist oben noch das aktuelle Datum (auch ein Grafana-Plugin) und der Timestamp der Daten zu finden, den published openWB gemeinsam für alle Daten.

    Alle Daten hier sind unabhängig vom oben rechts ausgewähltem Zeitraum, es sind immer die aktuellen!


    Detailgraph Allgemein:

    Das ist der klassische Graph, in dem fast alles visualisiert wird (auch die Prognose und der SoC des Speichers). Der Zeitraum kann über den Zeit-Picker oben rechts in Grafana gewählt werden, standardmäßig ist es bei mir der aktuelle Tag. Das ist bei allen jetzt folgenden Graphen so.

    Aufgrund der vielen Linien wird der Graph schnell unübersichtlich und ist nicht zum auswerten von längeren Zeiträumen geeignet, ich denke ein Tag ist das Maximum wo man hier noch was erkennt.


    Detailgraph Aufteilung Hausverbrauch und PV-Erzeugung:

    Hier wird die Zusammensetzung des Hausverbrauchs aus PV (Direktverbrauch), Speicherentladung und Netzbezug in einem Graph dargestellt und die Aufteilung der PV-Erzeugung auf Speicherladung, Direktverbrauch und Netzeinspeisung.

    Auch diese Graphen werden schnell unübersichtlich und verwende ich für Zeiträume von maximal einem Tag. Für längere Auswertungen gibt es später noch bessere Graphen.


    Detailgraphen Netz:

    Hier gibt’s ein paar Detailgraphen zu Spannung, Stromstärke und Schieflast, eher Nice-to-have als wirklich notwendig und ebenfalls nur für kürzere Zeiträume geeignet.


    PV:

    Ab hier können größere Zeiträume ausgewertet werden.

    Links wird der PV-Ertrag angezeigt (positiv) und die von Solcast erwartete Erzeugung (negativ), und zwar wie immer in dem oben rechts gewählten Zeitbereich.

    Will man die Prognosen für die nächsten Tage wissen, muss der Zeitraum also logischerweise auf die Zukunft eingestellt werden.

    Die Gruppierung der Balken wird über eine Variable (oben links in Grafana) geregelt. Hier ein Bild davon. Am Anfang des Dashboards habe ich rechts noch Verknüpfungen zum springen in andere Dashboards, könnte ihr einfach ignorieren.


    Möchte man also z.B. die Monatserträge in einem Jahr vergleichen, stellt man die Variable für die Gruppierung (oben links) auf einen Monat ein und den Zeitraum (oben rechts) auf des entsprechende Jahr.

    Will man dagegen die Erträge von verschiedene Jahren vergleichen, stellt man als Gruppierung ein Jahr ein und als Zeitraum die Jahre zum Vergleichen.

    So kann mach auch die verschiedene Tageswerte miteinander vergleichen: Als Zeitraum z.B. die Woche die ausgewertet werden soll und als Gruppierung ein Tag.

    Man ist so also relativ flexibel...

    Dieses Prinzip der Gruppierung bleibt jetzt bei allen weiteren Graphen.

    Außerdem wird unter PV rechts noch die Aufteilung des PV-Ertrags auf Direktverbrauch, Speicher laden und Netzeinspeisung in Prozent dargestellt. Im Prinzip in etwa wie der Graph oben, nur dass man hier durch die freie Gruppierung beliebig lange Zeiträume auswerten kann.


    Hausverbrauch:

    Hier ist es eigentlich das gleiche wie bei PV, einmal links die Höhe des Hausverbrauchs dargestellt und dann rechts die Zusammensetzung davon aus Speicher Entladen, PV und Netzbezug in Prozent.


    Speicher:

    Hier werden zum einen geladene und entladene kWh im entsprechenden Zeitraum mit der entsprechenden Gruppierung dargestellt (positive und negative Balken). Zusätzlich wird aber auch noch der durchschnittliche maximale und minimale SoC des Speichers dargestellt (gestrichelte Linie).

    Bei einer Gruppierung von einem Tag ist es dann eben der maximale und minimale SoC des Tages, bei einer Gruppierung von z.B. einer Woche dann dagegen der durchschnittliche maximale und minimale SoC und nicht der in der ganzen Woche maximal/minimal erreichte SoC

    Das finde ich ganz interessant um z.B. zu sehen, wie voll der Speicher im Winter wird und wie regelmäßig er leer wird.


    Netz:

    Hier wird der Bezug (negativ) und die Einspeisung (positiv) dargestellt.


    Eigenverbrauch und Autarkie:

    Hier wird der Eigenverbrauch (der Anteil von Direktverbrauch und Speicher Laden von der PV-Erzeugung; negativ) und die Autarkie (der Anteil von Speicher entladen und Direktverbrauch von dem Hausverbrauch; positiv) in Prozent dargestellt.

    Ich bin nicht der Meinung, dass das wichtige Werte sind und dass möglichst hohe Werte bei beidem erreicht werden sollten, zu so einer Auswertung gehört es finde ich aber einfach dazu.

    —>maximal 10 Anhänger erlaubt, Bild kommt in extra Post


    Ersparnis und Einnahmenrechner:

    Einnahmen sind für mich die Einspeisevergütungen, also eingespeiste kWh mal Vergütung

    Ersparnis ist für mich das Geld, für das ich ohne eine die PV Strom gekauft hätte, also Hausverbrauch minus Netzbezug mal meine Stromkosten.

    Die Einspeisevergütung und die Stromkosten müssen in der Query des Panels natürlich angepasst werden.

    Wenn der Wert der Einnahmen und Ersparnisse zusammen also die PV-Kosten erreichen ist die PV bezahlt.

    Hier werden zuerst die Gesamtwerte angezeigt und dann wieder die beiden Werte in einem Graph.

    Ob meine Berechnung so wirklich richtig ist bin ich mir noch unsicher, mal schauen wie sich das entwickelt.

    —>maximal 10 Anhänger erlaubt, Bild kommt in extra Post


    So, ist doch ganz schön lang geworden, aber vielleicht hilft’s ja irgendwem.

    Das Dashboard ist die „erste“ Version und die PV läuft noch nicht lange, ich werde also bestimmt noch das ein oder andere ändern und das dann auch hier posten. Im Anhang noch das Dashboard als JSON.



  • Hallo,

    sehr schöne Arbeit.

    Gibt es eine einfache Methode das ganze mal live auf eine andere Datenquelle zu migrieren?

    Muss man das vor dem Import ins Grafana machen oder erste danach?


    Ich betreibe einen Plenticore mit Speicher und die Daten sind in einer MySQL Datenbank.

    Wenn ich es schaffen würde das zu adaptieren, wären noch weitere Anwender im Fhem Forum, die meine Installation nachgebaut haben. Einige meiner Diagramme hast Du ja sicher bereits im anderen Thread gesehen.


    VG

    Christian

  • Ohne es böse zu meinen aber für das ganz gibt es eine mega simple Lösung. Auf solaranzeige.de kann man ein fertiges Image laden wo man fast alle gängigen wr einbinden kann und mit Grafana darstellt. Selbst Wall Boxen sind da schon mit steuerbar. Homematic ebenfalls. Und ich weiß das es auch einen fehm Adapter gibt um Daten in die Influx dB u schreiben. Ich selbst nutze es in Verbindung mit iobroker und grade erst habe ich mit dem ir lesekopf auch meine Zählerstände noch integriert.

  • FHEM und Solaranzeige sind etwas andere Ansätze und nicht jeder möchte zwei proprietäre Ansätze parallel betreiben.

    Solaranzeige ist kein Smarthome und die Integration eines WR plus Zubehör auch kein Hexenwerk, das die Haussteuerung gerne auch mit in der Datenbank aufnimmt. Diagramme sind auch bereits vorhanden und ein schönes Topping durch Grafana kann nicht schaden.

  • Ohne es böse zu meinen aber für das ganz gibt es eine mega simple Lösung.


    Das habe ich mir davor wirklich ausführlich angeschaut. Eine mega simple Lösung ja, aber auch eine mega simple Auswertung. Zur sinnvollen Auswertung von Langzeitdaten ist Solaranzeige leider nicht zu gebrauchen. Klar man kann den Zeitraum oben rechts ändern, aber damit ist ja noch keine sinnvolle Auswertung geschaffen.


    Natürlich könnte man Solaranzeige als Datenkollektor nehmen und dann ein eigenes Grafana Dashboard machen, aber dann würden ja wie schon geschrieben zwei Geräte, nämlich openWB und Solaranzeige, per Modbus auf den WR zugreifen, was ich eben vermeiden wollte.


    Außerdem soll das ganze bei mir ja auf einem NAS in einer VM laufen, aufgrund der anderen Architektur bin ich mir ziemlich sicher, dass das fertige Image da nicht funktionieren würde.


    Und noch zur Steuerung von Wallboxen: Ganz ehrlich, openWB ist da vom Funktionsumfang wirklich auf einem ganz anderen Level als Solaranzeige.


    Das ganze soll Solaranzeige jetzt nicht schlecht machen, es ist eine einfache, gut funktionierende Lösung zum Anzeigen der aktuellen Daten. Aber mehr finde ich halt auch nicht.

    • Offizieller Beitrag

    Gehen tut das schon, einfacher waere es vermutlich das dashboard erst zu importieren und dann die Abfragen im Editor der Web-UI auf dein Setup anzupassen.

  • Gibt es eine einfache Methode das ganze mal live auf eine andere Datenquelle zu migrieren?

    Muss man das vor dem Import ins Grafana machen oder erste danach?

    Erstmal musst du MySQL mit Grafana verknüpfen, aber das hat du ja denke ich schon gemacht.

    Dann importierst du zuerst das Dashboard in Grafana.

    Danach kannst du die einzelneren Panels editieren und bei den einzelnen Queries die entsprechenden MySQL Queries hinterlegen, die auf deine Daten führen. Ich weiß nicht genau wie die Queries bei MySQL aussehen, wird aber sicher etwas anders als bei InfluxDB sein.

    Wenn du bei manchen Queries fragen hast, welche Daten die bei mir liefern, einfach fragen!