Skip to content

InfluxDB

ℹ️InfluxDB

InfluxDB ist die Zeitreihendatenbank des IT-Systems im Wohnmobil.

Sie speichert Messwerte zusammen mit ihrem jeweiligen Zeitstempel und ermöglicht dadurch die spätere Auswertung zeitlicher Verläufe.

InfluxDB läuft auf dem Raspberry Pi tsg-bobil als Docker-Container.

Aktuelle Messwerte werden zunächst von Node-RED verarbeitet. Werte, die historisch aufgezeichnet werden sollen, schreibt Node-RED zusätzlich in InfluxDB.

Die gespeicherten Daten werden anschließend von Grafana für Diagramme und Auswertungen verwendet.

Aufgabe im IT-System

InfluxDB übernimmt die Speicherung historischer Messwerte.

Der grundsätzliche Datenfluss sieht dabei so aus:

text
Sensor / Systemwert


     Node-RED


     InfluxDB


      Grafana

InfluxDB stellt dabei keine eigentliche Benutzeranzeige bereit.

Die Visualisierung und Auswertung der gespeicherten Daten erfolgt über Grafana.

Zugriff

Die Weboberfläche von InfluxDB ist im Womo-Netz erreichbar unter:

text
http://192.168.8.10:8086

Im Heimnetz ist tsg-bobil derzeit erreichbar unter:

text
http://192.168.2.194:8086
⚠️Zugriff

Der Zugriff auf die InfluxDB-Weboberfläche ist für die Administration des Systems vorgesehen.

Zugangsdaten und Zugriffstoken werden nicht im Womo-Handbuch dokumentiert.

Organisation

Für das Womo-System wird folgende InfluxDB-Organisation verwendet:

text
womo

Bucket

Die Messwerte werden derzeit im Bucket

text
metrics_90d

gespeichert.

Für diesen Bucket ist eine Aufbewahrungszeit von:

text
90 Tagen

eingestellt.

Messwerte, die älter als 90 Tage sind, werden von InfluxDB automatisch entfernt.

ℹ️Aufbewahrungszeit

Die InfluxDB-Daten dienen hauptsächlich zur Beobachtung und Auswertung der letzten Tage und Wochen.

Eine dauerhafte Archivierung der Messwerte ist derzeit nicht vorgesehen.

Die begrenzte Aufbewahrungszeit verhindert gleichzeitig, dass die Datenbank durch kontinuierlich eintreffende Messwerte unbegrenzt wächst.

Datenstruktur

InfluxDB organisiert die gespeicherten Daten unter anderem über:

  • Measurements
  • Fields
  • Tags
  • Zeitstempel

Ein Measurement fasst zusammengehörige Messwerte zusammen.

Fields enthalten die eigentlichen Messwerte.

Tags dienen zur Unterscheidung und Filterung verschiedener Datenquellen.

Measurement raumklima

Die Messwerte der drei Raumklimasensoren werden im Measurement

text
raumklima

gespeichert.

Sensoren

Die einzelnen Sensoren werden über den Tag sensor unterschieden.

SensorBereich
RTF_01_WRWohnraum
RTF_02_LRLaderaum
RTF_03_FRFahrgastraum

Fields

Für jeden Raumklimasensor werden folgende Fields gespeichert:

FieldBedeutungEinheit
temperatureTemperatur°C
humidityrelative Luftfeuchtigkeit%
pressureLuftdruckhPa
batteryBatteriestand des Sensors%

Datenfluss

Die Daten gelangen über Zigbee2MQTT und Mosquitto zu Node-RED.

text
Zigbee-Sensor

      │ Zigbee

 Zigbee2MQTT

      │ MQTT

  Mosquitto


   Node-RED


   InfluxDB

Node-RED bereitet die eingehenden Daten für InfluxDB auf.

Die Daten werden dabei beispielsweise in folgender Struktur übergeben:

text
Measurement: raumklima

Tag:
sensor = RTF_01_WR

Fields:
temperature
humidity
pressure
battery

Die gleiche Struktur wird für die Sensoren im Laderaum und Fahrgastraum verwendet.

Measurement system

Neben den Raumklimadaten werden auch ausgewählte Betriebswerte des Raspberry Pi gespeichert.

Diese werden im Measurement

text
system

abgelegt.

Host

Zur Zuordnung des Rechners wird der Tag host verwendet:

text
host = tsg-bobil

Fields

Derzeit wird folgender Systemwert gespeichert:

FieldBedeutungEinheit
temperatureCPU-Temperatur des Raspberry Pi°C

Erfassung der CPU-Temperatur

Node-RED liest die CPU-Temperatur des Raspberry Pi regelmäßig aus.

Die Temperatur kann unter Linux über folgende Systemdatei abgefragt werden:

text
/sys/class/thermal/thermal_zone0/temp

Der dort gelieferte Wert wird von Node-RED in Grad Celsius umgerechnet und auf eine Nachkommastelle gerundet.

Die Messung erfolgt derzeit:

text
einmal pro Minute

Anschließend wird der Wert in InfluxDB gespeichert.

Der Datenfluss ist damit:

text
Raspberry Pi

     │ CPU-Temperatur

  Node-RED


  InfluxDB


   Grafana

Schreiben der Daten durch Node-RED

Node-RED verwendet für das Schreiben der Messwerte die vorhandene InfluxDB-Verbindung.

Die wesentlichen Einstellungen sind:

EinstellungWert
Organisationwomo
Bucketmetrics_90d
ZeitgenauigkeitMillisekunden

Raumklima

Für die Raumklimadaten wird verwendet:

text
Measurement: raumklima

Raspberry Pi

Für die Systemdaten wird verwendet:

text
Measurement: system

Dadurch bleiben Raumklima- und Systemdaten innerhalb desselben Buckets logisch voneinander getrennt.

Auswertung mit Grafana

Grafana verwendet InfluxDB als Datenquelle.

Die gespeicherten Messwerte können dadurch über frei wählbare Zeiträume dargestellt werden.

Im Dashboard Womo-Raumklima werden derzeit ausgewertet:

  • Temperatur von Wohnraum, Laderaum und Fahrgastraum
  • relative Luftfeuchtigkeit von Wohnraum, Laderaum und Fahrgastraum
  • Luftdruck von Wohnraum, Laderaum und Fahrgastraum
  • Batteriestand der drei Raumklimasensoren
  • CPU-Temperatur des Raspberry Pi

Weitere Informationen zur Darstellung befinden sich im Kapitel:

Grafana

Aktuelle Datenstruktur

Die derzeit verwendete Struktur lässt sich vereinfacht so zusammenfassen:

text
Organisation
└── womo

    └── Bucket
        └── metrics_90d

            ├── Measurement: raumklima
            │   │
            │   ├── Tag: sensor
            │   │   ├── RTF_01_WR
            │   │   ├── RTF_02_LR
            │   │   └── RTF_03_FR
            │   │
            │   └── Fields
            │       ├── temperature
            │       ├── humidity
            │       ├── pressure
            │       └── battery

            └── Measurement: system

                ├── Tag: host
                │   └── tsg-bobil

                └── Fields
                    └── temperature

Datensicherung

Die eigentlichen Messdaten werden derzeit nicht über Git gesichert.

Aufgrund der begrenzten Aufbewahrungszeit von 90 Tagen sind die historischen Messdaten nicht als dauerhaftes Archiv vorgesehen.

Die für einen Wiederaufbau wichtige Struktur der InfluxDB-Konfiguration wird dagegen im Git-Repository

text
tsg-bobil-config

dokumentiert.

Dort befindet sich die InfluxDB-Dokumentation unter:

text
influxdb/README.md

Das Grafana-Dashboard wird zusätzlich als JSON-Datei im gleichen Repository gesichert.

ℹ️Git und Messdaten

Git dient zur Sicherung der Konfiguration und Dokumentation, nicht zur Sicherung der laufenden InfluxDB-Messdaten.

Die eigentlichen Zeitreihendaten im Bucket metrics_90d werden daher nicht in das Git-Repository übernommen.

Erweiterung

Die vorhandene Struktur kann später um weitere Measurements und Messwerte ergänzt werden.

Vorgesehen bzw. denkbar sind beispielsweise Daten aus dem elektrischen Bordnetz wie:

  • Batteriespannung
  • Batteriestrom
  • Ladezustand
  • Lade- und Entladeleistung
  • Solarleistung
  • Energieerträge

Diese Daten können nach ihrer Anbindung ebenfalls über Node-RED in InfluxDB gespeichert und anschließend in Grafana ausgewertet werden.

← IT-System