Home-Assistant-Langzeitdaten mit InfluxDB und Grafana¶
Veröffentlicht am 12. August 2026 · Geschätzte Lesezeit: 5 Minuten
Home Assistant zeigt Verläufe an, doch für langfristige Auswertungen und frei gestaltete Diagramme ist eine Zeitreihendatenbank praktischer. InfluxDB speichert ausgewählte Sensorwerte, Grafana stellt sie als Dashboard dar. Die Einrichtung dauert ungefähr 35 bis 50 Minuten und verändert die normale Home-Assistant-Datenbank nicht.
Voraussetzungen
- Ein Server mit Docker und Docker Compose
- Eine laufende Home-Assistant-Installation im selben Heimnetz
- Etwa 2 GB freier Arbeitsspeicher und ausreichend Speicherplatz für Messwerte
- Zugriff auf die Home-Assistant-Einstellungen
1. Arbeitsordner anlegen¶
Führe diesen Befehl auf dem Docker-Server aus. Er erstellt den Ordner für die beiden Container und wechselt hinein.
2. Geheimnisse sicher anlegen¶
Die folgenden Befehle erzeugen drei nur für deinen Benutzer lesbare Dateien. Das Passwort und der Token werden zufällig erstellt und nicht in der Compose-Datei gespeichert.
umask 077
printf '%s' 'ha-admin' > influx-username
openssl rand -base64 24 > influx-password
openssl rand -hex 32 > influx-token
Zeige Passwort und Token einmal an und bewahre beide in einem Passwortmanager auf. Der Token wird später in Home Assistant und Grafana benötigt.
Token geheim halten
Der anfängliche Operator-Token hat weitreichende Rechte. Teile ihn nicht und veröffentliche weder die drei Dateien noch deren Inhalt. Für eine weiter gehende Absicherung kannst du später in InfluxDB getrennte Tokens mit nur Lese- beziehungsweise Schreibrechten erstellen.
3. Compose-Datei anlegen¶
Lege im Ordner ~/docker/ha-statistik eine Datei namens compose.yaml mit folgendem Inhalt an. influxdb:2 hält die Installation ausdrücklich auf der 2.x-Reihe; der Tag latest kann inzwischen auf eine andere Hauptversion zeigen.
services:
influxdb:
image: influxdb:2
container_name: influxdb
restart: unless-stopped
ports:
- "8086:8086"
environment:
DOCKER_INFLUXDB_INIT_MODE: setup
DOCKER_INFLUXDB_INIT_USERNAME_FILE: /run/secrets/influx-username
DOCKER_INFLUXDB_INIT_PASSWORD_FILE: /run/secrets/influx-password
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN_FILE: /run/secrets/influx-token
DOCKER_INFLUXDB_INIT_ORG: zuhause
DOCKER_INFLUXDB_INIT_BUCKET: homeassistant
secrets:
- influx-username
- influx-password
- influx-token
volumes:
- influxdb-data:/var/lib/influxdb2
- influxdb-config:/etc/influxdb2
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
depends_on:
- influxdb
secrets:
influx-username:
file: ./influx-username
influx-password:
file: ./influx-password
influx-token:
file: ./influx-token
volumes:
influxdb-data:
influxdb-config:
grafana-data:
Nur im Heimnetz betreiben
Die Ports 8086 und 3000 dürfen nicht per Router-Portfreigabe ins Internet gestellt werden. Für externen Zugriff ist ein VPN oder ein abgesicherter HTTPS-Reverse-Proxy erforderlich.
4. Container starten¶
Führe den Start im Ordner ~/docker/ha-statistik aus.
Prüfe anschließend den Zustand beider Container.
Beide Einträge sollen den Zustand Up oder running anzeigen. Bei Fehlern liefern die nächsten Befehle die jeweiligen Protokolle.
5. InfluxDB in Home Assistant verbinden¶
Öffne in Home Assistant Einstellungen → Geräte & Dienste → Integration hinzufügen und suche nach InfluxDB. Trage folgende Werte ein:
- URL:
http://<server-ip>:8086 - Organisation:
zuhause - Bucket:
homeassistant - Token: Inhalt der Datei
influx-token - SSL-Prüfung: ausgeschaltet, weil die Verbindung im Heimnetz per HTTP erfolgt
Ersetze <server-ip> durch die feste IP-Adresse des Docker-Servers, zum Beispiel 192.168.178.20. Der Token benötigt Schreibzugriff auf den Bucket.
Wenn du nur sinnvolle Messwerte übertragen möchtest, ergänze in der Home-Assistant-Datei configuration.yaml diesen Filter. Er überträgt Sensoren und Binärsensoren, aber keine Personen- oder Benachrichtigungsdaten.
influxdb:
include:
domains:
- sensor
- binary_sensor
exclude:
domains:
- persistent_notification
- person
tags_attributes:
- friendly_name
default_measurement: units
Keine doppelte Konfiguration
Wenn Home Assistant durch den Einrichtungsdialog bereits einen influxdb:-Abschnitt angelegt hat, ergänze dort nur die Filter. In configuration.yaml darf der Schlüssel influxdb: nicht zweimal auf oberster Ebene stehen.
Prüfe die Konfiguration in Home Assistant und starte Home Assistant anschließend neu.
6. Datenfluss prüfen¶
Öffne http://<server-ip>:8086, melde dich mit dem Benutzernamen ha-admin und dem gespeicherten Passwort an. Unter Data Explorer wählst du den Bucket homeassistant. Nach einigen Zustandsänderungen sollten erste Messreihen erscheinen.
Falls nichts ankommt, prüfe zuerst das Home-Assistant-Protokoll nach influxdb und teste vom Home-Assistant-Rechner aus die Erreichbarkeit. Ersetze <server-ip> wieder durch die IP des Docker-Servers.
7. InfluxDB in Grafana eintragen¶
Öffne http://<server-ip>:3000. Die erste Anmeldung erfolgt mit Benutzer admin und Passwort admin; Grafana verlangt danach sofort ein neues Passwort.
Gehe zu Connections → Data sources → Add data source → InfluxDB und verwende:
- Query language:
Flux - URL:
http://influxdb:8086 - Organization:
zuhause - Token: Inhalt von
influx-token - Default Bucket:
homeassistant
Klicke auf Save & test. Die interne Adresse influxdb funktioniert, weil beide Container im selben Compose-Netz liegen.
8. Erstes Diagramm erstellen¶
Öffne Dashboards → New → New dashboard → Add visualization. Wähle die InfluxDB-Datenquelle, danach den Bucket homeassistant, eine Messreihe und das Feld value. Stelle rechts einen Zeitraum wie Last 24 hours ein und speichere das Dashboard.
Mit wenigen Sensoren beginnen
Temperatur, Luftfeuchte und Energieverbrauch eignen sich gut für den Start. Weniger Messreihen sparen Speicherplatz und machen die Auswahl in Grafana übersichtlicher.
9. Backup und Rückweg¶
Stoppe vor einem konsistenten Backup beide Container.
Sichere die Docker-Volumes mit temporären Alpine-Containern in den aktuellen Ordner.
docker run --rm -v ha-statistik_influxdb-data:/data:ro -v "$PWD":/backup alpine tar -czf /backup/influxdb-data.tar.gz -C /data .
docker run --rm -v ha-statistik_grafana-data:/data:ro -v "$PWD":/backup alpine tar -czf /backup/grafana-data.tar.gz -C /data .
Der Präfix der Volumes kann abweichen. Prüfe ihn bei Bedarf mit docker volume ls. Starte danach alles wieder.
Für den Rückweg entfernst du die InfluxDB-Integration beziehungsweise den influxdb:-Abschnitt aus Home Assistant und startest Home Assistant neu. Die normale Verlaufsdatenbank bleibt davon unberührt. Danach kannst du den Stack stoppen, ohne Daten zu löschen.
Verwende docker compose down -v nur, wenn die gespeicherten Messwerte und Dashboards endgültig gelöscht werden dürfen.
10. Typische Fehler¶
- Port 3000 oder 8086 belegt: Ändere nur die linke Zahl der betreffenden Port-Zuordnung, zum Beispiel
"3001:3000". - Home Assistant erreicht InfluxDB nicht: Verwende die echte Server-IP statt
localhost.localhostbezeichnet aus einem Container oder einer VM immer das jeweilige System selbst. - 401 oder 403: Token falsch, unvollständig oder ohne Schreibrecht. Kopiere ihn ohne zusätzliche Leerzeichen.
- Grafana findet InfluxDB nicht: Innerhalb dieses Compose-Stacks lautet die URL
http://influxdb:8086, nicht die Server-IP. - Sehr hoher Speicherverbrauch: Begrenze die übertragenen Entitäten mit
includeundexclude.
11. Quellen und Video¶
- Home-Assistant-Dokumentation: InfluxDB
- InfluxData: InfluxDB 2 mit Docker Compose und Secrets
- Grafana: Docker-Installation
- Video: Home Assistant mit InfluxDB und Grafana
Fertig¶
Home Assistant schreibt nun ausgewählte Messwerte dauerhaft nach InfluxDB, und Grafana kann daraus eigene Langzeitdiagramme erstellen. Ändere testweise einen Sensorwert, warte kurz und prüfe, ob der neue Punkt im InfluxDB Data Explorer sowie im Grafana-Diagramm erscheint.