Home Assistant – Daten in einer InfluxDB speichern

Da ich selber aus dem Datenbereich komme, bin ich ein Freund von Auswertungen und Visualisierungen.
Home Assistant bietet da zwar mit den Dashboards schon ein paar Möglichkeiten. Diese dienen aber eher zur Bedienung des Smarthomes als um die grafische Auswertung von Daten.

Aus diesem Grund möchte ich gerne mein aktuelles Setup um eine InfluxDB und ein Grafana erweitern. Den Anfang mache ich mit dem Speichern der Daten in der InfluxDB. Was ich genau dazu gemacht habe, will ich in diesem Artikel etwas genauer beleuchten.

InfluxDB Docker Setup

Da ich bereits Home Assistant und ZigBee2MQTT im Container laufen habe, liegt es nahe, dass ich auch die InfluxDB in einem Container laufen habe möchte.

Der naheliegende Gedanke ist jetzt, alles in eine große Docker Compose Datei zu basteln, damit alles an einem Platz ist. Ich persönlich mag Docker Compose, aber trenne einzelne Services ganz gerne, um etwas flexibler zu sein.

Das heißt ganz konkret, dass ich für Home Assistant, ZigBee2MQTT und nun auch für die InfluxDB eine eigene docker-compose.yml anlege.

Die docker-compose.yml für die InfluxDB sieht bei mir wie folgt aus:

version: '3'
services:
  influxdb:
    image: "influxdb:1.8.10"
    restart: unless-stopped
    volumes:
      - "./data:/var/lib/influxdb"
    healthcheck:
      test: ["CMD", "curl", "-sI", "http://127.0.0.1:8086/ping"]
      interval: 30s
      timeout: 1s
      retries: 24
    ports:
      - 127.0.0.1:8086:8086

Das ganze lässt sich dann mittels docker-compose Befehl starten. Zuvor muss im selben Ordner wo die docker-compose.yml angelegt ist auch noch der Ordner data angelegt werden. Dieser Ordner wird in den Container gemountet und dient zur Persistierung der Daten.

Ich starten das ganze dann mit dem folgenden Befehl:

docker-compose up

Konfiguration InfluxDB

Nachdem der InfluxDB Container gestartet wurde, muss man sich für die erste Konfiguration in den Container verbinden.
Dazu lassen wir uns mittels docker ps die Container ID anzeigen und verwenden diese, um uns mit exec zu verbinden.

##output docker ps
314b34ba6919   influxdb:1.8.10                                "/entrypoint.sh infl…"   6 days ago      Up 4 minutes (healthy)   127.0.0.1:8086->8086/tcp   influxdb-1

##In den Container verbinden
docker exec -it 314b34ba6919 influx

Nach dem Verbinden wird als erstes eine Datenbank für die Home Assistant Daten angelegt und noch mal geprüft.

// anlegen der Datenbank
create database homeassistant
// Kontrolle
show databases

Nun noch einen User anlegen und diesem entsprechende Rechte auf die homeasssistant Datenbank geben.

//Anlegen des Benutzers
create user homeassistant with password 'supersecurepassword123'
// Kontrolle
show users

// Rechte auf die Datenbank geben
grant all on homeassistant to homeassistant

Damit ist die Home Assistant Datenbank in InfluxDB angelegt und alles für das Speichern der Daten vorbereitet. Als nächstes müssen wir nur noch Home Assistant für die InfluxDB konfigurieren.

Home Assistant Daten in InfluxDB speichern

Als nächstes wollen wir im Home Assistant die Konfiguration so anpassen, dass die Daten in der InfluxDB gespeichert werden. Dazu sind entsprechende Anpassungen in der configuration.yaml notwendig.

Der folgende Absatz muss in der Datei ergänzt werden:

influxdb:
  host: influxdb-1
  port: 8086
  ssl: false

  database: homeassistant
  username: homeassistant
  password: supersecurepassword123
  max_retries: 3

  measurement_attr: entity_id
  include:
    domains:
      - sensor

Ich denke, die meisten Einträge sind recht eindeutig.

Im ersten Block werden die Verbindungsinformationen zum Docker Container eingetragen. Im zweiten Block dann die Zugangsdaten.
Der dritte Absatz ist der Interessanteste. Hier definieren wir, welche Daten in der InfluxDB gespeichert werden sollen. Dies kann beliebig komplex werden. Eine gute Übersicht dazu findet man direkt in der Home Assistant Dokumentation.

Nun muss der Home Assistant Container einmal neugestartet werden, damit die angepasste Konfiguration geladen werden kann.

Fazit

Wenn keine Fehler aufgetreten sind, haben wir nun ein Home Assistant Setup, welches die Daten in einer InfluxDB speichert. Falls Fehler aufgetretensind, gerne in die Kommentare damit.

Ich persönlich werde das ganze nun ein paar Wochen laufen lassen, damit ein paar Daten gesammelt und in der InfluxDB gespeichert werden.

Danach geht es weiter mit der Installation von Grafana und dem ersten Anlegen von Dashboards. Dazu wird es dann hier auch weitere Artikel geben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert