Beispiel: OpenWB Visualisierung mit InfluxDB + Grafana

Antworten
truckl
Beiträge: 42
Registriert: Sa Nov 09, 2019 10:32 am

Beispiel: OpenWB Visualisierung mit InfluxDB + Grafana

Beitrag von truckl » Mo Nov 25, 2019 8:03 am

Hallo Zusammen,

ich hab mich rein interessehalber damit befaßt die Daten aus OpenWB über die Monitoring Toolchain aus InfluxDB, Telegraf und Grafana zu visualisieren.

Gleich vorweg: Grund dafür war nur der "Spieltrieb" und keinerlei Kritik an der Visualisierung durch OpenWB selbst.
Einziger Vorteil wären vermutlich die Unterstützung für beliebig viele OpenWBs im selben GUI (host umschaltbar) sowie die extrem mächtigen und fein-granular konfigurierbaren Alterungsstrategien von InfluxDB (Rententions, Continuous Queries). Spart euch aber bitte die Arbeit dieses Setup extra für eine einzelne OpenWB aufzusetzen! Außer es treibt auch euch der "Spieltrieb".

Ich möchte hier nicht die Installation von InfluxDB und Grafana erklären.
Falls ihr es neu aufsetzen wollt, gibt es dazu hinreichend Quellen im Internet für alle Varianten des Serverbetriebs (Docker, APT, ...).

Kurz eingehen möchte ich auf die Installation von Telegraf auf dem OpenWB RASPI. Das funktioniert meiner Meinung nach am einfachsten über diese Anleitung (falls nicht hält das Internet genug Alternativen bereit):

Code: Alles auswählen

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/os-release
echo "deb https://repos.influxdata.com/debian $VERSION_CODENAME stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update
sudo apt-get install telegraf
Nach der Installation von Telegraf deaktiviert ihr ihn erst mal wieder bis die Konfiguration angepaßt ist:

Code: Alles auswählen

sudo service telegraf stop
Jetzt könnt ihr euch die anghängte "telegraf.conf.template.txt" vornehmen. Sie wurde auf das Nötigste reduziert. Am Ende der Datei wird die Datensammlung von OpenWB über MQTT konfiguriert.
  • Falls ihr Telegraf schon in Betrieb habt, den Teil ab "[[inputs.mqtt_consumer]]" mit eurer existieren "telegraf.conf" vereinigen. Dabei ggf. bei "servers" die Adresse der OpenWB Wallbox eintragen falls euer Telegraf nicht auf dem OpenWB RASPI läuft.
  • Ansonsten in meiner Version nach "<your-" suchen und dort eure Daten eintragen (den Text in den spitzen Klammern sowie die Klammern selbst ersetzen). Hier könnt ihr auch anpassen welche Topics überhaupt in InfluxDB landen sollen. Bitte nicht "openWB/#" (also alles) weiterleiten. Denn Telegraf/InfluxDB würden das Datenformat für die OpenWB Graphen im Web-GUI nicht verstehen und reichlich Fehlermeldungen ausspucken. Die "telegraf.conf.template.txt" kommt nun nach "/etc/telegraf/telegraf.conf" (unbedingt das .template.txt entfernen) auf den RASPI der OpenWB.
Optional könnt ihr (z.B. bei Angst vor Performance-Problemen) natürlich auch die Inputs für das RASPI-Monitoring weg lassen. Ich konnte durch die angehängte Konfiguration bei meiner OpenWB aber keinerlei Probleme feststellen.

Dann Telegraf wieder starten und prüfen ob er wie gewünscht läuft:

Code: Alles auswählen

sudo service telegraf start
sudo tail -n 100 /var/log/telegraf/telegraf.log
Nur wenn der letzte Befehl Zeilen ähnlich dieser hier ausgibt kommuniziert Telegraf erfolgreich sowohl mit Influx als auch dem OpenWB MQTT Broker:

Code: Alles auswählen

2019-11-24T16:39:50Z I! Loaded inputs: cpu disk mem processes file exec diskio kernel swap system net mqtt_consumer
2019-11-24T16:39:50Z I! Loaded aggregators:
2019-11-24T16:39:50Z I! Loaded processors:
2019-11-24T16:39:50Z I! Loaded outputs: influxdb
2019-11-24T16:39:50Z I! Tags enabled: host=openWB
2019-11-24T16:39:50Z I! [agent] Config: Interval:27s, Quiet:false, Hostname:"openWB", Flush Interval:10s
2019-11-24T16:39:50Z D! [agent] Initializing plugins
2019-11-24T16:39:50Z D! [agent] Connecting outputs
2019-11-24T16:39:50Z D! [agent] Attempting connection to [outputs.influxdb]
2019-11-24T16:39:50Z D! [agent] Successfully connected to outputs.influxdb
2019-11-24T16:39:50Z D! [agent] Starting service inputs
2019-11-24T16:39:50Z I! [inputs.mqtt_consumer] Connected [tcp://127.0.0.1:1883]
2019-11-24T16:40:10Z D! [outputs.influxdb] Wrote batch of 50 metrics in 70.765514ms
[...]

Für die Visualisierung könnt ihr euch entweder selbst ein Grafana-Dashboard zusammenklicken. Oder ihr probiert das Dashboard dessen JSON-Konfiguration ich hier angehängt habe. Für letzteres in Grafana auf "Dashboards -> Manage -> Import" und den JSON-Text in das entsprechende Feld ("Or paste JSON") kopieren.
Ich habe versucht das angehängte Dashboard so universell wie möglich zu halten. Aber leider hab ich derzeit weder eine PV und/oder Speicher noch mehrere Ladepunkte. Entsprechend konnte ich dafür leider keine Dashbaord-Panels bauen.
Außerdem müßt ihr vielleicht die Limits an die eurer Installation anpassen.

Ein Beispiel was ihr damit bekommt seht ihr hier:
Grafana12hrsWeb.jpg
Screenshot des Beispiel-Dashboards
Grafana12hrsWeb.jpg (78.87 KiB) 94 mal betrachtet
Der Teil "CP #1" sollte beim Vorliegen von Daten für mehrere Ladepunkte automatisch mehrfach erscheinen. Was ich aber in Ermangelung mehrerer LPs bei mir nicht testen konnte.
Viel Spaß damit! Vielleicht hilft's ja dem Einen oder Anderen.

Die RASPI-Daten könnt ihr z.B. mit diesem vordefinierten Dashboard visualisieren.

Ich bin jederzeit offen für Kritik oder Verbesserungsvorschläge. Gerne aktualisiere ich auch das angehängte Grafana Dashboard oder ihr postet einfach selbst eure eigenen Versionen.

[2019-11-25]
Anhänge aktualisiert für Ladepunktnummern in separatem Subtopic
Dateianhänge
telegraf.conf.template.txt
Vorlage einer Telegraf-Konfiguration. Alle Stellen mit "<your-" suchen und anpassen. Dann als "/etc/telegraf.conf" auf dem OpenWB RASPI ablegen
(11.75 KiB) 2-mal heruntergeladen
OpenWbGrafanaDashboard.json.txt
Beispiel Grafana Dashboard für OpenWB (import in Grafana über "Dashboards -> Manage -> Import")
(76.61 KiB) 2-mal heruntergeladen
Zuletzt geändert von truckl am Mo Nov 25, 2019 2:08 pm, insgesamt 1-mal geändert.

aiole
Beiträge: 552
Registriert: Mo Okt 08, 2018 4:51 pm

Re: Beispiel: OpenWB Visualisierung mit InfluxDB + Grafana

Beitrag von aiole » Mo Nov 25, 2019 8:24 am

Wow - sehr beeindruckend truckl!
Danke für Deinen "Spieltrieb" ;).

Ich würde noch die openWB-MQTT-Umstellung abwarten, bis ich mich da ranwage.
Aktuell ist die Logging-Anzeige noch nicht perfekt, aber Kevin hatte schon angedeutet, dass Chart.js wohl eine gute Alternative für die Standardinstallation ist.

Deine toolchain erlaubt dann noch krassere Konstellationen.

@Kevin
Würdest Du die in anderem thread angesprochene MQTT-Namensgebung jetzt mit "gerade" ziehen, um den Unterbau dann gut nutzbar zu haben?

VG aiole

Antworten