Appearance
Grafana â
Grafanaâ¶
Grafana dient zur grafischen Darstellung und Auswertung der in InfluxDB gespeicherten Messwerte.
Damit können zeitliche VerlÀufe von Raumklima- und Systemdaten direkt im Womo-Netz betrachtet werden.
Grafana lÀuft auf dem Raspberry Pi tsg-bobil als Docker-Container.
Als Datenquelle wird InfluxDB verwendet.
WÀhrend das Womo-Handbuch hauptsÀchlich die aktuellen Messwerte anzeigt, dient Grafana zur Betrachtung und Auswertung der historischen Messwerte.
Aufgabe im IT-System â
Der grundsÀtzliche Datenfluss sieht so aus:
text
Sensor / Systemwert
â
âŒ
Node-RED
â
âŒ
InfluxDB
â
âŒ
GrafanaGrafana greift dabei ausschlieĂlich auf die bereits in InfluxDB gespeicherten Messwerte zu.
Die Erfassung und Aufbereitung der Daten erfolgt vorher durch Node-RED.
Zugriff â
đĄGrafana im Wohnmobil
Im lokalen Fahrzeugnetz steht zusĂ€tzlich ein Grafana-Dashboard zur Auswertung der historischen Messwerte zur VerfĂŒgung.
Dort können unter anderem Temperatur, Luftfeuchtigkeit, Luftdruck und weitere Systemwerte ĂŒber lĂ€ngere ZeitrĂ€ume betrachtet werden.
Die aktuellen Live-Werte stehen nur im lokalen Fahrzeugnetz zur VerfĂŒgung.
Datenquelle â
Grafana verwendet die auf tsg-bobil laufende InfluxDB als Datenquelle.
Die derzeit ausgewerteten Daten befinden sich in:
| Einstellung | Wert |
|---|---|
| Organisation | womo |
| Bucket | metrics_90d |
| Raumklimadaten | Measurement raumklima |
| Systemdaten | Measurement system |
Weitere Informationen zur Datenstruktur befinden sich im Kapitel:
Dashboard Womo-Raumklima â
FĂŒr die Darstellung der Raumklima- und Systemdaten wurde das Dashboard
text
Womo-Raumklimaangelegt.
Das Dashboard enthÀlt derzeit:
- Temperaturverlauf der drei Innenraumbereiche
- Verlauf der relativen Luftfeuchtigkeit
- Luftdruckverlauf
- aktuellen Batteriestand der drei Raumklimasensoren
- Temperaturverlauf des Raspberry Pi
Temperatur â
Das Panel Temperaturen stellt die Temperaturen der drei Raumklimasensoren gemeinsam dar.
Angezeigt werden:
- Wohnraum
- Laderaum
- Fahrgastraum
Die Daten stammen aus:
text
Measurement: raumklima
Field: temperature
Tag: sensorDie technischen Sensornamen werden fĂŒr die Anzeige in Grafana auf verstĂ€ndliche Bezeichnungen umgesetzt:
| Sensor | Anzeige |
|---|---|
RTF_01_WR | Wohnraum |
RTF_02_LR | Laderaum |
RTF_03_FR | Fahrgastraum |
Die Einheit der Darstellung ist:
text
°CRelative Luftfeuchtigkeit â
Das Panel Luftfeuchtigkeit zeigt den zeitlichen Verlauf der relativen Luftfeuchtigkeit fĂŒr:
- Wohnraum
- Laderaum
- Fahrgastraum
Die Daten stammen aus:
text
Measurement: raumklima
Field: humidity
Tag: sensorDie Einheit der Darstellung ist:
text
%Luftdruck â
Das Panel Luftdruck zeigt den zeitlichen Verlauf des von den drei Raumklimasensoren gemessenen Luftdrucks.
Die Daten stammen aus:
text
Measurement: raumklima
Field: pressure
Tag: sensorDie Einheit der Darstellung ist:
text
hPaBatteriestand der Raumklimasensoren â
Das Panel Batteriestand Sensoren zeigt den jeweils zuletzt empfangenen Batteriestand der drei Raumklimasensoren.
Im Gegensatz zu Temperatur, Luftfeuchtigkeit und Luftdruck wird der Batteriestand nicht als Zeitdiagramm, sondern als kompakte Statusanzeige dargestellt.
Angezeigt werden:
- Wohnraum
- Laderaum
- Fahrgastraum
Die Daten stammen aus:
text
Measurement: raumklima
Field: battery
Tag: sensorDie Einheit ist:
text
%Farbliche Kennzeichnung â
Der Batteriestand wird abhÀngig vom aktuellen Wert farblich dargestellt:
| Batteriestand | Darstellung |
|---|---|
| unter 30 % | Rot |
| 30 bis unter 80 % | Gelb |
| ab 80 % | GrĂŒn |
Dadurch ist ein niedriger Batteriestand direkt im Dashboard erkennbar.
Raspberry-Pi-Temperatur â
Das Panel Pi-Temperatur zeigt den zeitlichen Verlauf der CPU-Temperatur des Raspberry Pi tsg-bobil.
Die Daten stammen aus:
text
Measurement: system
Field: temperature
Tag:
host = tsg-bobilDie CPU-Temperatur wird derzeit von Node-RED einmal pro Minute erfasst und in InfluxDB gespeichert.
Die Einheit der Darstellung ist:
text
°CIn der Legende wird die Messreihe als
text
Raspberry Pi 8angezeigt.
Auswahl des Zeitraums â
Der in den Diagrammen dargestellte Zeitraum kann ĂŒber die Zeitauswahl von Grafana geĂ€ndert werden.
Dadurch können beispielsweise betrachtet werden:
- die letzte Stunde
- mehrere Stunden
- die letzten Tage
- lÀngere ZeitrÀume innerhalb der gespeicherten Daten
Die Diagramme passen ihre zeitliche Auflösung automatisch an den ausgewÀhlten Zeitraum an.
Aufbewahrungszeitâ¶
Grafana selbst speichert keine Messwerte.
Die verfĂŒgbaren historischen Daten werden aus InfluxDB gelesen.
FĂŒr den verwendeten Bucket metrics_90d ist derzeit eine Aufbewahrungszeit von 90 Tagen eingestellt.
Flux-Abfragen â
Grafana verwendet fĂŒr die Abfrage der InfluxDB-Daten Flux.
FĂŒr die Temperatur der Raumklimasensoren wird beispielsweise folgende Abfrage verwendet:
flux
from(bucket: "metrics_90d")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "raumklima")
|> filter(fn: (r) => r._field == "temperature")
|> filter(fn: (r) =>
r.sensor == "RTF_01_WR" or
r.sensor == "RTF_02_LR" or
r.sensor == "RTF_03_FR"
)
|> aggregateWindow(
every: v.windowPeriod,
fn: mean,
createEmpty: false
)
|> map(fn: (r) => ({
r with
sensor:
if r.sensor == "RTF_01_WR" then "Wohnraum"
else if r.sensor == "RTF_02_LR" then "Laderaum"
else if r.sensor == "RTF_03_FR" then "Fahrgastraum"
else r.sensor
}))
|> yield(name: "mean")v.timeRangeStart und v.timeRangeStop werden dabei von der in Grafana gewÀhlten Zeitspanne vorgegeben.
Mit v.windowPeriod passt Grafana die Zusammenfassung der Messwerte automatisch an den betrachteten Zeitraum an.
Sicherung des Dashboards â
Das Dashboard Womo-Raumklima wird zusÀtzlich zur internen Grafana-Speicherung als JSON-Datei exportiert.
Die Sicherungsdatei befindet sich auf tsg-bobil im Git-Repository tsg-bobil-config.
Sie wird im Git-Repository tsg-bobil-config versioniert und auf GitHub gesichert.
Der Aufbau ist:
text
tsg-bobil-config
â
âââ grafana
â âââ dashboards
â âââ womo-raumklima.json
â
âââ influxdb
âââ README.mdDashboard nach Ănderungen sichernâ¶
Ănderungen an einem Grafana-Dashboard werden zunĂ€chst nur innerhalb von Grafana gespeichert.
Nach relevanten Ănderungen am Dashboard sollte deshalb zusĂ€tzlich ein neuer JSON-Export erstellt werden.
Die vorhandene Datei womo-raumklima.json wird dabei durch den neuen Export ersetzt und die Ănderung anschlieĂend mit Git committed und auf GitHub ĂŒbertragen.
Die Versionshistorie ĂŒbernimmt Git. Es ist daher nicht notwendig, dauerhaft mehrere Exporte mit Datum oder Zeitstempel aufzubewahren.
Wiederherstellung â
Die als JSON gesicherte Dashboard-Konfiguration kann bei einer Neuinstallation von Grafana wieder importiert werden.
Damit lassen sich unter anderem wiederherstellen:
- Panel-Aufteilung
- Flux-Abfragen
- Einheiten
- Anzeigenamen
- Legenden
- Schwellwerte
- Visualisierungseinstellungen
Die eigentlichen historischen Messwerte befinden sich dagegen in InfluxDB und sind nicht Bestandteil des Dashboard-Exports.
Erweiterung â
Das Dashboard kann jederzeit um weitere Messwerte ergÀnzt werden.
Denkbar sind insbesondere Daten des elektrischen Bordnetzes, beispielsweise:
- Batteriespannung
- Batteriestrom
- Ladezustand
- aktuelle Lade- oder Entladeleistung
- Solarleistung
- Solarertrag
Sobald solche Daten in InfluxDB zur VerfĂŒgung stehen, können entsprechende Panels in Grafana ergĂ€nzt werden.