Home Assistant mit InfluxDB und Grafana erweitern

Home Assistant kann den Verlauf von Sensoren bereits selbst darstellen. Für umfangreiche Langzeitauswertungen, frei gestaltbare Diagramme und den Vergleich größerer Zeiträume bietet sich jedoch die Kombination aus InfluxDB und Grafana an.

InfluxDB übernimmt dabei die langfristige Speicherung der Messwerte. Grafana liest diese Daten aus und stellt sie als Diagramme, Statistiken, Tabellen oder komplette Dashboards dar.

In diesem Tutorial installieren wir beide Anwendungen direkt unter Home Assistant OS. Ein zusätzlicher Server, ein NAS oder eine separate Docker-Umgebung wird dafür nicht zwingend benötigt.

  • InfluxDB direkt unter Home Assistant OS installieren
  • Eine Datenbank für Home Assistant anlegen
  • Ausgewählte Entitäten langfristig speichern
  • Grafana installieren und mit InfluxDB verbinden
  • Ein erstes Diagramm erstellen
  • Leistungs- und Speicherbedarf begrenzen

Grundlagen

Welche Aufgabe übernimmt welche Komponente?

Home Assistant, InfluxDB und Grafana erfüllen drei unterschiedliche Aufgaben.

Home Assistant
      │
      │ überträgt Zustandsänderungen
      ▼
   InfluxDB
      │
      │ stellt gespeicherte Messwerte bereit
      ▼
    Grafana
  • Home Assistant empfängt die Werte deiner Geräte und Sensoren.
  • InfluxDB speichert ausgewählte Zustandsänderungen als Zeitreihendaten.
  • Grafana fragt diese Daten ab und stellt sie grafisch dar.

Grafana zeichnet selbst keine Home-Assistant-Daten auf. Die eigentliche Aufzeichnung und Speicherung übernimmt InfluxDB.

Wichtig

InfluxDB und Grafana benötigen zusätzliche Ressourcen

InfluxDB und Grafana können direkt auf derselben Hardware wie Home Assistant betrieben werden. Sie teilen sich dann allerdings die vorhandene Prozessorleistung, den Arbeitsspeicher und den Speicherplatz mit Home Assistant.

InfluxDB schreibt für jede übertragene Zustandsänderung einen neuen Datenpunkt. Je mehr Entitäten aufgezeichnet werden und je häufiger sich deren Werte ändern, desto schneller wächst die Datenbank.

Grafana speichert die Sensordaten zwar nicht selbst, benötigt aber ebenfalls Leistung. Große Dashboards, lange Abfragezeiträume, viele gleichzeitig sichtbare Diagramme und sehr kurze Aktualisierungsintervalle verursachen zusätzliche Datenbankabfragen.

  • Nur tatsächlich benötigte Entitäten an InfluxDB übertragen.
  • Nicht pauschal alle Home-Assistant-Sensoren aufzeichnen.
  • Grafana-Dashboards nicht jede Sekunde aktualisieren.
  • Den freien Speicherplatz regelmäßig kontrollieren.
  • Regelmäßige vollständige Backups erstellen und extern speichern.
  • Bei einem Raspberry Pi für größere Datenmengen möglichst eine SSD verwenden.

01

Voraussetzungen

Für dieses Tutorial benötigst du eine Installation von Home Assistant OS mit Zugriff auf die integrierte App-Verwaltung.

  • Home Assistant OS auf einem Home Assistant Green
  • Home Assistant Yellow
  • Raspberry Pi mit Home Assistant OS
  • Mini-PC oder virtuelle Maschine mit Home Assistant OS
  • Administratorzugriff auf Home Assistant
  • Zugriff auf die Datei configuration.yaml
  • Ausreichend freier Speicherplatz

Die Datei configuration.yaml kann beispielsweise mit der App Studio Code Server, dem File Editor, über Samba oder über ein Terminal bearbeitet werden.

Hinweis

Home Assistant Container besitzt keine App-Verwaltung

Bei einer reinen Home-Assistant-Container-Installation können InfluxDB und Grafana nicht über die Home-Assistant-App-Verwaltung installiert werden.

In diesem Fall müssen beide Anwendungen separat als Docker-Container, virtuelle Maschine oder auf einem anderen Server betrieben werden. Der grundsätzliche Aufbau bleibt trotzdem gleich.

02

InfluxDB installieren

Öffne in Home Assistant die App-Verwaltung:

Einstellungen
→ Apps
→ App installieren

Suche dort nach InfluxDB. Die Anwendung befindet sich im Repository der Home Assistant Community Apps.

  1. Öffne den Eintrag InfluxDB.
  2. Klicke auf Installieren.
  3. Aktiviere nach der Installation Beim Systemstart starten.
  4. Optional kannst du den Watchdog aktivieren.
  5. Starte die InfluxDB-App.
  6. Kontrolliere im Bereich Protokoll, ob die Anwendung fehlerfrei gestartet wurde.
  7. Öffne anschließend die Weboberfläche.

Die InfluxDB-App enthält zusätzlich Chronograf. Diese Verwaltungsoberfläche verwenden wir zum Anlegen der Datenbank, zum Erstellen von Benutzern und zum Überprüfen der gespeicherten Messwerte.

Tipp

Die Option Authentifizierung sollte in der Konfiguration der InfluxDB-App aktiviert bleiben. Eine Datenbank ohne Benutzeranmeldung ist auch in einem privaten Heimnetz keine gute Lösung.

03

Datenbank und Benutzer anlegen

Öffne die Weboberfläche der InfluxDB-App. In der linken Navigation befindet sich der Bereich InfluxDB Admin.

Datenbank erstellen

  1. Öffne InfluxDB Admin.
  2. Wechsle zum Bereich Databases.
  3. Erstelle eine neue Datenbank.
  4. Verwende als Namen beispielsweise homeassistant.

Benutzer für Home Assistant erstellen

  1. Wechsle in den Bereich Users.
  2. Erstelle einen Benutzer mit dem Namen homeassistant.
  3. Vergib ein sicheres Passwort.
  4. Erteile dem Benutzer für die Datenbank homeassistant die Berechtigung ALL.

Benutzer für Grafana erstellen

Grafana benötigt nur lesenden Zugriff auf die gespeicherten Daten. Deshalb erstellen wir einen zweiten Benutzer.

  1. Erstelle einen Benutzer mit dem Namen grafana.
  2. Vergib ein eigenes sicheres Passwort.
  3. Erteile diesem Benutzer nur Leserechte auf die Datenbank homeassistant.
VerwendungBenutzerBerechtigung
Home AssistanthomeassistantLesen und Schreiben
GrafanagrafanaNur lesen

Sicherheit

Verwende für Home Assistant und Grafana getrennte Benutzer. Dadurch erhält jede Anwendung nur die Berechtigungen, die sie tatsächlich benötigt.

04

InfluxDB mit Home Assistant verbinden

Die Verbindung zur Datenbank wird in aktuellen Home-Assistant-Versionen über die Benutzeroberfläche eingerichtet.

Einstellungen
→ Geräte & Dienste
→ Integration hinzufügen
→ InfluxDB

Wähle die Konfiguration für InfluxDB 1.x und trage die Verbindungsdaten ein.

EinstellungWert
URLhttp://a0d7b954-influxdb:8086
Benutzernamehomeassistant
PasswortDas zuvor vergebene Passwort
Datenbankhomeassistant
SSL überprüfenDeaktiviert

Der Hostname a0d7b954-influxdb ist die interne Adresse der InfluxDB-App innerhalb von Home Assistant OS.

Nach erfolgreicher Einrichtung erscheint InfluxDB unter den eingerichteten Integrationen.

Wichtig

Verbindungsdaten nicht mehr vollständig in YAML eintragen

Ältere Anleitungen zeigen häufig eine vollständige InfluxDB-Konfiguration mit Hostname, Port, Datenbank, Benutzername und Passwort in der Datei configuration.yaml.

Diese Verbindungsdaten werden inzwischen über die InfluxDB-Integration in der Benutzeroberfläche eingerichtet. In der YAML-Datei bleiben nur zusätzliche Optionen wie Filter, Tags oder Messwertattribute.

05

Nur benötigte Entitäten speichern

Home Assistant kann Zustandsänderungen aller Entitätstypen an InfluxDB übertragen. Das bedeutet allerdings nicht, dass jede Entität langfristig gespeichert werden sollte.

Gerade auf kleiner Hardware sollte die Auswahl bewusst begrenzt werden. Dazu wird in der Datei configuration.yaml ein Include-Filter angelegt.

influxdb:
  include:
    entities:
      - sensor.aussentemperatur
      - sensor.wohnzimmer_temperatur
      - sensor.stromverbrauch_gesamt

Die verwendeten Entitäts-IDs sind Beispiele und müssen durch die IDs deiner eigenen Sensoren ersetzt werden.

Die korrekten Entitäts-IDs findest du unter:

Entwicklerwerkzeuge
→ Zustände

Mehrere zusammengehörende Sensoren auswählen

Besitzen mehrere Sensoren einen gemeinsamen Namensanfang, können Platzhalter verwendet werden.

influxdb:
  include:
    entity_globs:
      - sensor.waermepumpe_*
      - sensor.stromzaehler_*

Einzelne Entitäten ausschließen

Alternativ können auch bestimmte Entitäten oder ganze Gruppen ausgeschlossen werden.

influxdb:
  exclude:
    entities:
      - sensor.unwichtiger_diagnosewert
    entity_globs:
      - sensor.*_signalstaerke

Nach einer Änderung der configuration.yaml muss Home Assistant vollständig neu gestartet werden.

Achtung

In der Datei configuration.yaml darf nur ein Hauptabschnitt mit dem Namen influxdb: vorhanden sein.

Existiert bereits eine InfluxDB-Konfiguration, müssen die neuen Filter in diesen bestehenden Abschnitt eingefügt werden.

Empfehlung

Mit wenigen Sensoren beginnen

Für den Einstieg reichen drei bis zehn ausgewählte Sensoren vollkommen aus. Weitere Entitäten können später jederzeit ergänzt werden.

  • Außentemperatur
  • Raumtemperatur
  • Aktuelle elektrische Leistung
  • Energieverbrauch
  • Photovoltaikleistung
  • Vorlauf- und Rücklauftemperatur

06

Gespeicherte Daten überprüfen

Nach dem Neustart von Home Assistant kannst du prüfen, ob die ersten Werte in InfluxDB angekommen sind.

  1. Öffne die Weboberfläche der InfluxDB-App.
  2. Öffne den Data Explorer.
  3. Wähle die Datenbank homeassistant.
  4. Wähle einen kurzen Zeitraum wie die letzten 15 Minuten.
  5. Suche nach einem der zuvor ausgewählten Sensoren.

Bereits vor der Einrichtung vorhandene Verlaufsdaten werden nicht automatisch nachträglich übertragen. Die Aufzeichnung beginnt mit neuen Zustandsänderungen nach der erfolgreichen Einrichtung.

Messwerte und Entitäts-IDs

Home Assistant verwendet standardmäßig häufig die Einheit eines Sensors als sogenannte Measurement-Gruppe.

SensorartTypische Measurement-Gruppe
Temperatur°C
LeistungW
EnergiekWh
Luftfeuchtigkeit%
FrequenzHz

Aus der Home-Assistant-Entität:

sensor.wohnzimmer_temperatur

wird innerhalb der Measurement-Gruppe häufig der Tag:

entity_id = wohnzimmer_temperatur

07

Grafana installieren

Öffne erneut die App-Verwaltung:

Einstellungen
→ Apps
→ App installieren
  1. Suche nach Grafana.
  2. Öffne die Grafana-App aus dem Community-Repository.
  3. Klicke auf Installieren.
  4. Aktiviere Beim Systemstart starten.
  5. Optional kannst du den Watchdog aktivieren.
  6. Starte Grafana.
  7. Kontrolliere das Protokoll auf Fehler.
  8. Öffne die Weboberfläche.

08

InfluxDB als Datenquelle einrichten

Grafana benötigt eine Datenquelle, über die auf die InfluxDB-Datenbank zugegriffen wird.

Connections
→ Add new connection
→ InfluxDB
→ Add new data source

Trage folgende Einstellungen ein:

EinstellungWert
NameHome Assistant
URLhttp://a0d7b954-influxdb:8086
AbfragespracheInfluxQL
Datenbankhomeassistant
Benutzergrafana
PasswortPasswort des Grafana-Datenbankbenutzers
Min time interval1m

Authentifizierungsoptionen wie Basic Auth können deaktiviert bleiben. Benutzername und Passwort werden im Bereich der InfluxDB-Einstellungen der Datenquelle eingetragen.

Klicke anschließend auf Save & test. Grafana sollte nun bestätigen, dass die Verbindung zur Datenquelle hergestellt werden konnte.

Häufiger Fehler

Nicht localhost verwenden

Der Eintrag localhost würde aus Sicht der Grafana-App auf Grafana selbst zeigen.

Für die Verbindung zur InfluxDB-App muss deshalb die interne Adresse verwendet werden:

http://a0d7b954-influxdb:8086

09

Das erste Diagramm erstellen

Als erstes Beispiel erstellen wir ein einfaches Diagramm für eine Raumtemperatur.

  1. Öffne in Grafana den Bereich Dashboards.
  2. Klicke auf New.
  3. Wähle New dashboard.
  4. Klicke auf Add visualization.
  5. Wähle die Datenquelle Home Assistant.

Die InfluxQL-Abfrage für einen Temperatursensor kann beispielsweise so aussehen:

SELECT mean("value")
FROM "°C"
WHERE ("entity_id" = 'wohnzimmer_temperatur')
  AND $timeFilter
GROUP BY time($__interval) fill(null)

Ersetze wohnzimmer_temperatur durch die ID deines eigenen Sensors. Der vorangestellte Teil sensor. wird in dieser Abfrage nicht verwendet.

Panel konfigurieren

  • Visualisierung: Time series
  • Titel: Wohnzimmer Temperatur
  • Einheit: Temperature → Celsius
  • Nachkommastellen: beispielsweise 1
  • Legende: nach Bedarf unten oder rechts

Speichere anschließend das Panel und danach das gesamte Dashboard.

Beispiel für einen Leistungssensor

SELECT mean("value")
FROM "W"
WHERE ("entity_id" = 'aktuelle_leistung')
  AND $timeFilter
GROUP BY time($__interval) fill(null)

Beispiel für einen Energiezähler

SELECT last("value")
FROM "kWh"
WHERE ("entity_id" = 'stromverbrauch_gesamt')
  AND $timeFilter
GROUP BY time($__interval) fill(null)

Bei einem fortlaufenden Zählerstand ist häufig der letzte Wert eines Zeitabschnitts sinnvoller als der Mittelwert.

Systemlast und Speicherverbrauch reduzieren

InfluxDB ist für große Mengen an Zeitreihendaten ausgelegt. Das bedeutet jedoch nicht, dass auf kleiner Home-Assistant-Hardware unbegrenzt Daten gesammelt werden sollten.

Nur sinnvolle Werte speichern

  • Temperaturen
  • Luftfeuchtigkeit
  • Stromverbrauch und Leistung
  • Photovoltaikerzeugung
  • Wärmepumpenwerte
  • Lüftungswerte
  • Wasserverbrauch

Entitäten wie WLAN-Signalstärke, Firmware-Versionen, Diagnosewerte oder ständig wechselnde interne Statusinformationen sind für Langzeitauswertungen häufig nicht notwendig.

Grafana nicht zu häufig aktualisieren

Temperatur-, Heizungs- und Energiedaten müssen normalerweise nicht jede Sekunde neu abgefragt werden.

  • Live-Dashboard: etwa 10 bis 30 Sekunden
  • Normales Übersichtsdashboard: etwa 30 Sekunden bis 1 Minute
  • Langzeitauswertungen: manuelle Aktualisierung oder mehrere Minuten

Abfragezeitraum begrenzen

Ein Diagramm über die letzten 24 Stunden benötigt deutlich weniger Daten als eine sekundengenaue Abfrage über mehrere Jahre.

Verwende für normale Dashboards kurze Zeiträume. Größere Langzeitauswertungen sollten nur bei Bedarf geöffnet werden.

Speicher und Backups kontrollieren

  • Freien Speicherplatz regelmäßig überprüfen
  • Größe der InfluxDB-Datenbank beobachten
  • Home-Assistant-Backups extern sichern
  • Bei einem Raspberry Pi möglichst eine SSD verwenden
  • Bei dauerhaft hoher Last eine Auslagerung erwägen

Merksatz: Nicht Grafana füllt den Speicher mit Sensordaten, sondern InfluxDB. Grafana kann das System aber durch umfangreiche und häufig wiederholte Abfragen zusätzlich belasten.

Gut zu wissen

InfluxDB ersetzt nicht die Home-Assistant-Datenbank

Die InfluxDB-Integration läuft parallel zur internen Home-Assistant-Datenbank.

Die normale Verlaufsansicht, das Logbuch und der Recorder von Home Assistant verwenden weiterhin die interne Datenbank. Die ausgewählten Zustandsänderungen werden zusätzlich an InfluxDB übertragen.

10

Optionaler externer Server

Für kleine und mittlere Installationen können InfluxDB und Grafana direkt auf der Home-Assistant-Hardware betrieben werden.

Bei sehr vielen Sensoren, großen Dashboards oder umfangreichen Langzeitauswertungen kann es sinnvoll sein, beide Anwendungen auf ein leistungsfähigeres System auszulagern.

  • Unraid
  • Proxmox
  • Synology oder anderes NAS
  • Separater Docker-Server
  • Zusätzlicher Mini-PC

Der Datenfluss bleibt dabei gleich:

Home Assistant
      │
      │ Netzwerk
      ▼
Externe InfluxDB
      │
      ▼
Externe Grafana-Instanz

Lediglich die interne Adresse a0d7b954-influxdb wird dann durch die IP-Adresse oder den DNS-Namen des externen Servers ersetzt.

Häufige Probleme und Lösungen

In InfluxDB erscheinen keine Daten

Prüfe zuerst, ob die InfluxDB-App gestartet ist und im Protokoll keine Fehler angezeigt werden.

  • Benutzername, Passwort und Datenbankname kontrollieren
  • Verbindung der InfluxDB-Integration überprüfen
  • Include-Filter in der configuration.yaml kontrollieren
  • Home Assistant vollständig neu starten
  • Prüfen, ob sich der Sensorwert seit der Einrichtung geändert hat
Grafana kann InfluxDB nicht erreichen

Verwende bei der Home-Assistant-App nicht localhost, sondern die interne Adresse:

http://a0d7b954-influxdb:8086
  • Prüfen, ob beide Apps gestartet sind
  • Benutzer grafana und dessen Passwort kontrollieren
  • Leserechte auf die Datenbank kontrollieren
  • Abfragesprache InfluxQL auswählen
Der Sensor wird in Grafana nicht gefunden

Prüfe zuerst im Data Explorer von InfluxDB, ob der Sensor dort vorhanden ist.

  • Measurement-Gruppe wie °C, W oder kWh kontrollieren
  • In der Abfrage den Präfix sensor. entfernen
  • Groß- und Kleinschreibung kontrollieren
  • Unterstriche in der Entitäts-ID überprüfen
Home Assistant wird langsamer

Reduziere zunächst die Anzahl der an InfluxDB übertragenen Entitäten.

  • Unnötige Platzhaltermuster entfernen
  • Grafana-Aktualisierungsintervall vergrößern
  • Kürzere Zeiträume abfragen
  • Freien Speicherplatz kontrollieren
  • InfluxDB und Grafana bei hoher Dauerlast auslagern
Die configuration.yaml meldet einen Fehler

Kontrolliere die Einrückung des YAML-Abschnitts. YAML verwendet Leerzeichen und reagiert empfindlich auf falsche Einrückungen.

influxdb:
  include:
    entities:
      - sensor.aussentemperatur

Verwende keine Tabulatoren und stelle sicher, dass nur ein Hauptabschnitt influxdb: vorhanden ist.

Zusammenfassung

Home Assistant liefert die Zustandsänderungen der ausgewählten Entitäten.

InfluxDB speichert diese Werte langfristig als Zeitreihendaten.

Grafana liest die gespeicherten Daten aus und stellt sie in frei gestaltbaren Dashboards dar.

Beide Anwendungen können direkt unter Home Assistant OS installiert werden. Auf kleiner Hardware sollte jedoch bewusst entschieden werden, welche Entitäten gespeichert werden und wie häufig Grafana die Daten aktualisiert.

Wer zunächst mit wenigen Sensoren beginnt, den Speicherplatz im Blick behält und sinnvolle Aktualisierungsintervalle verwendet, erhält eine leistungsfähige Langzeitauswertung, ohne das Home-Assistant-System unnötig zu belasten.

Praxisbeispiel

Mein Grafana-Dashboard in der Praxis

Das folgende Dashboard ist ein Beispiel aus meiner eigenen Home-Assistant-Installation. Die dargestellten Werte werden von Home Assistant an InfluxDB übertragen und anschließend mit Grafana visualisiert.

Beispiel eines Grafana-Dashboards mit langfristig gespeicherten Home-Assistant-Daten.

Das Dashboard zeigt beispielhaft verschiedene Messwerte aus dem Smart Home. Dazu können unter anderem Temperaturen, Energieverbrauch, Wärmepumpendaten, Photovoltaikerzeugung oder Werte einer Lüftungsanlage gehören.

  • Aktuelle Messwerte als übersichtliche Statistiken
  • Zeitliche Verläufe über Stunden, Tage oder Monate
  • Vergleich mehrerer Sensoren in einem Diagramm
  • Berechnete Werte wie Tagesverbrauch, Laufzeiten oder Mittelwerte

Dieses Beispiel soll vor allem zeigen, was nach der grundlegenden Einrichtung möglich ist. Das Dashboard muss nicht sofort vollständig aufgebaut werden. Sinnvoller ist es, zunächst mit wenigen wichtigen Sensoren zu beginnen und die Darstellung anschließend Schritt für Schritt zu erweitern.

Download

Grafana-Beispieldashboard

Beispiel-Dashboard zur Visualisierung von Home-Assistant-Daten aus InfluxDB. Die enthaltenen Abfragen und Datenquellen müssen an das eigene System angepasst werden.

ZIP-Archiv · Grafana JSON · kostenlos

Hinweis: Vor dem Import müssen Datenquelle, Entitätsnamen und gegebenenfalls die verwendeten Measurements angepasst werden.