Zum Inhalt

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.

mkdir -p ~/docker/ha-statistik && cd ~/docker/ha-statistik

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.

printf 'Passwort: '; cat influx-password; printf 'Token: '; cat influx-token

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.

docker compose up -d

Prüfe anschließend den Zustand beider Container.

docker compose ps

Beide Einträge sollen den Zustand Up oder running anzeigen. Bei Fehlern liefern die nächsten Befehle die jeweiligen Protokolle.

docker compose logs --tail=100 influxdb
docker compose logs --tail=100 grafana

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.

curl -I http://<server-ip>:8086/health

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.

cd ~/docker/ha-statistik && docker compose stop

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.

docker compose start

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.

docker compose down

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. localhost bezeichnet 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 include und exclude.

11. Quellen und Video

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.