Überblick: Was macht was?
InfluxDB
Zeitreihendatenbank, speziell für Sensordaten optimiert. Speichert jeden Messwert mit Zeitstempel, komprimiert Altdaten automatisch und ermöglicht blitzschnelle zeitliche Abfragen.
Grafana
Visualisierungsplattform. Liest Daten aus InfluxDB (und vielen anderen Quellen) und stellt sie als interaktive Dashboards mit Graphen, Gauges und Alarmen dar.
Der komplette Datenfluss:
Telegraf ist der Bridge-Agent von InfluxDB — er liest MQTT-Topics und schreibt die Daten in die Datenbank.
1. InfluxDB installieren
Empfohlen: InfluxDB v2.x auf Raspberry Pi 4 oder kleinem Linux-Server (2 GB RAM minimum).
# Raspberry Pi (ARM64) / Ubuntu:
wget -q https://repos.influxdata.com/influxdata-archive_compat.key
echo '393e8779...key...' | gpg --dearmor > /etc/apt/trusted.gpg.d/influxdb.gpg
echo "deb [signed-by=...] https://repos.influxdata.com/debian stable main" \
| tee /etc/apt/sources.list.d/influxdb.list
apt-get update && apt-get install influxdb2
systemctl enable --now influxdb
# Setup aufrufen (im Browser):
# http://[IP]:8086 → Organisation, Bucket, Token anlegen
2. Telegraf als MQTT-Bridge
Telegraf liest MQTT-Topics und schreibt Daten in InfluxDB — ohne eigene Programmierung.
# /etc/telegraf/telegraf.d/mqtt.conf
[[inputs.mqtt_consumer]]
servers = ["tcp://localhost:1883"]
topics = ["gewaechshaus/#"]
username = "sensor_user"
password = "passwort"
data_format = "json"
# JSON-Felder (temperatur, feuchtigkeit etc.) werden automatisch erkannt
[[outputs.influxdb_v2]]
urls = ["http://localhost:8086"]
token = "DEIN_INFLUXDB_TOKEN"
organization = "grow-automation"
bucket = "sensordaten"
3. Grafana installieren und verbinden
# Grafana OSS Installation:
apt-get install -y apt-transport-https software-properties-common wget
wget -q -O /etc/apt/trusted.gpg.d/grafana.gpg https://apt.grafana.com/gpg.key
echo "deb https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list
apt-get update && apt-get install grafana
systemctl enable --now grafana-server
# Grafana läuft auf Port 3000
# http://[IP]:3000 → admin/admin → Passwort ändern
# Connections → Data Sources → InfluxDB → Flux → Token eingeben
4. Erste Abfrage (Flux)
Flux ist die Abfragesprache von InfluxDB v2. Eine einfache Abfrage für die Temperatur der letzten 24 Stunden:
// Flux Query: Temperatur Raum 1, letzte 24h
from(bucket: "sensordaten")
|> range(start: -24h)
|> filter(fn: (r) => r["_measurement"] == "mqtt_consumer")
|> filter(fn: (r) => r["topic"] =~ /raum1/)
|> filter(fn: (r) => r["_field"] == "temperatur")
|> aggregateWindow(every: 5m, fn: mean)
Dashboard-Empfehlungen
Zeitreihen-Graph
Für Temperatur, Feuchtigkeit, CO₂ im Verlauf. Referenzlinien für Sollwerte einzeichnen.
Gauge-Panels
Für aktuelle Werte: runde Anzeigen mit Farbschwellen (grün/gelb/rot). Auf einen Blick erkennbar.
Stat-Panels
Min/Max/Mittelwert der letzten 24h — ideal für tägliche Übersicht.
Alert Rules
Grafana kann direkt Alarme auslösen (E-Mail, Telegram, etc.) wenn Schwellwerte überschritten werden.
Tipp: Grafana Cloud als Alternative
Wer keinen eigenen Server betreiben möchte: Grafana Cloud hat einen kostenlosen Plan mit 10.000 Metriken und 3 Benutzern. InfluxDB Cloud bietet ebenfalls einen kostenlosen Tier. Ideal zum Starten ohne eigene Infrastruktur.