Skip to content

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
        │
        ▌
      Grafana

Grafana 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:

EinstellungWert
Organisationwomo
Bucketmetrics_90d
RaumklimadatenMeasurement raumklima
SystemdatenMeasurement system

Weitere Informationen zur Datenstruktur befinden sich im Kapitel:

InfluxDB

Dashboard Womo-Raumklima ​

FĂŒr die Darstellung der Raumklima- und Systemdaten wurde das Dashboard

text
Womo-Raumklima

angelegt.

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:         sensor

Die technischen Sensornamen werden fĂŒr die Anzeige in Grafana auf verstĂ€ndliche Bezeichnungen umgesetzt:

SensorAnzeige
RTF_01_WRWohnraum
RTF_02_LRLaderaum
RTF_03_FRFahrgastraum

Die Einheit der Darstellung ist:

text
°C

Relative 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:         sensor

Die 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:         sensor

Die Einheit der Darstellung ist:

text
hPa

Batteriestand 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:         sensor

Die Einheit ist:

text
%

Farbliche Kennzeichnung ​

Der Batteriestand wird abhÀngig vom aktuellen Wert farblich dargestellt:

BatteriestandDarstellung
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-bobil

Die CPU-Temperatur wird derzeit von Node-RED einmal pro Minute erfasst und in InfluxDB gespeichert.

Die Einheit der Darstellung ist:

text
°C

In der Legende wird die Messreihe als

text
Raspberry Pi 8

angezeigt.

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.md
⚠Dashboard 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.

← IT-System