azrael783
Active member
Da hier der ein oder andere User (@rednag ) bereits danach gefragt hat, hier mal eine Schritt für Schritt Anleitung wie man die Sensorwerte aus Home Assistant in einer time-based Datenbank (influxDB) abspeichert und diese dann in Grafana visualisieren kann.
1. Einrichtung influxDB
Zu erst benötigen wir natürlich eine Datenbank in der die Daten gespeichert werden können. Ich habe die DB auf meinem NAS (QNAP) liegen und in der Container-Station eine "App" erstellt:
Das ganze kann natürlich auch auf jedem anderen Host laufen, der Docker beherscht
Die "App" enthält zum einen die Datenbank Anwendung und zum anderen eine grafische Benutzeroberfläche - Chronograf - zur Verwaltung der Datenbank. Ich muss noch dazu sagen, dass ich influxDB "nur" in der Version 1.8 verwende. Die Version 2 bringt einige Änderungen mit, die ich mir noch nicht näher angeschaut habe. Es ist daher wichtig, dass das korrekte Image für influxDB ausgewählt wird. Mit der "latest" Version von influxDB wird das so ohne Anpassungen nicht funktionieren.
Wenn die Container erstellt wurden, ruft man mit
Wechselt nun zur "InfluxDB-Admin" Seite. Hier könnt ihr nun eine Datenbank für HA und auch einen User samt Passwort anlegen - hier bietet es sich jetzt an auch für Grafana einen User anzulegen . Beim Anlegen der Datenbank könnt ihr die sogenannte "Retention Policy" festlegen. Diese legt fest wie lange die Daten gespeichert werden sollen. Standardmäßig steht die Policy auf Unendlich, das habe ich auch so belassen. Ihr könnt die Daten natürlich auch nur ein Jahr, ein Monat, ein Tag, etc. behalten. Nach dem Anlegen des Users müsst ihr diesem noch die Rechte einstellen, ansonsten kann HA nicht in die Datenbank schreiben.
Damit ist die Einrichtung der Datenbank abgeschlossen und wir können diese in HA einbinden.
2. Einbindung der Datenbank in HA
Damit HA die Daten in der influxDB ablegen kann, muss diese in der
Über die "Parameter" exclude und include bestimmt ihr dann welche Werte in der Datenbank landen und welche nicht. Ich speichere hauptsächlich Sensorwerte ab. Nach einem Neustart von HA sollten die Daten jetzt in der Datenbank landen. Falls HA die Datenbank nicht erreichen kann, oder nicht in die Datenbank schreiben kann, erfahrt ihr dies in den Logs
3. Einrichtung von Grafana und Visualisierung der Daten
Als nächstes richten wir Grafana ein. Bei mir läuft die Anwendung auf dem Raspberry Pi auf dem auch HA läuft, prinzipiell kann die Anwendung aber auch wieder überall da laufen, wo Docker läuft. Als erstes müssen wir ein Volume für Grafana und seine Daten anlegen
Ich habe noch die ID des Users Pi angegeben, der ist aber glaube nur notwendig, wenn man anstatt eines Volumes einen Order auf dem Host verwenden möchte. Wenn ihr nun Grafana aufruft werdet ihr nach einem User und einem Passwort gefragt. Hier gibt ihr beides Mal "admin" ein und vergebt anschließend ein eigenes Passwort.
Nun müssen wir Grafana zunächst die Datenquelle bekannt machen. Dazu wechseln wir in die Einstellungen (Zahnradsymbol) und geben hier die Daten der influxDB ein.
Anhang anzeigen 380
Wenn alle Daten eingetragen sind, zeigt ein Klick auf "Save & test" auch direkt ob die Verbindung funktioniert.
Nun können wir unser erstes Dashboard erstellen. Dazu klicken wir auf das "+" Symbol links in der Menüleiste und wählen "Dashboard" aus. Im nun geöffneten Fenster wählen wir "Add new Panel" aus und landen auf folgender Seite:
Im oberen Bereich (roter Rahmen) wird euch das Diagramm dargestellt - da noch keine Datenabfrage erstellt wurde, ist das momentan noch leer. Im unteren Bereich (blauer Rahmen) erstellt ihr eine Datenabfrage, die im oberen Bereich dann dargestellt wird. Im rechten Bereich (grüner Rahmen) könnt ihr die Darstellung beeinflussen und darüber (gelber Rahmen) könnt ihr auswählen, wie die Daten dargestellt werden sollen, als Diagramm, Torten-Diagramm, etc. Weiter geht es dann im zweiten Teil - ich kann nämlich "nur" fünf Bilder an einen Beitrag anhängen
1. Einrichtung influxDB
Zu erst benötigen wir natürlich eine Datenbank in der die Daten gespeichert werden können. Ich habe die DB auf meinem NAS (QNAP) liegen und in der Container-Station eine "App" erstellt:
YAML:
version: '2'
services:
influxdb:
image: influxdb:1.8
container_name: influx_db
restart: unless-stopped
volumes:
- /pfad-zur-datenbank:/var/lib/influxdb
ports:
- 8086:8086
networks:
influxdb:
chronograf:
image: chronograf:1.8
container_name: chronograf
restart: unless-stopped
volumes:
- /pfad-zur-config:/var/lib/chronograf
ports:
- 8888:8888
command:
"--influxdb-url=http://influxdb:8086"
networks:
influxdb:
networks:
influxdb:
external: false
Das ganze kann natürlich auch auf jedem anderen Host laufen, der Docker beherscht
Die "App" enthält zum einen die Datenbank Anwendung und zum anderen eine grafische Benutzeroberfläche - Chronograf - zur Verwaltung der Datenbank. Ich muss noch dazu sagen, dass ich influxDB "nur" in der Version 1.8 verwende. Die Version 2 bringt einige Änderungen mit, die ich mir noch nicht näher angeschaut habe. Es ist daher wichtig, dass das korrekte Image für influxDB ausgewählt wird. Mit der "latest" Version von influxDB wird das so ohne Anpassungen nicht funktionieren.
Wenn die Container erstellt wurden, ruft man mit
http://nas-ip:8888
Chronograf auf:Wechselt nun zur "InfluxDB-Admin" Seite. Hier könnt ihr nun eine Datenbank für HA und auch einen User samt Passwort anlegen - hier bietet es sich jetzt an auch für Grafana einen User anzulegen . Beim Anlegen der Datenbank könnt ihr die sogenannte "Retention Policy" festlegen. Diese legt fest wie lange die Daten gespeichert werden sollen. Standardmäßig steht die Policy auf Unendlich, das habe ich auch so belassen. Ihr könnt die Daten natürlich auch nur ein Jahr, ein Monat, ein Tag, etc. behalten. Nach dem Anlegen des Users müsst ihr diesem noch die Rechte einstellen, ansonsten kann HA nicht in die Datenbank schreiben.
Damit ist die Einrichtung der Datenbank abgeschlossen und wir können diese in HA einbinden.
2. Einbindung der Datenbank in HA
Damit HA die Daten in der influxDB ablegen kann, muss diese in der
configuration.yaml
angegeben werden:
YAML:
# InfluxDB Storage
influxdb:
host: nas-ip
port: 8086
database: datenbank
username: user
password: !secret influxdb_pwd
ssl: false
max_retries: 3
default_measurement: state
exclude:
domains:
- automation
- weblink
- updater
entities:
- sun.sun
- sensor.moon
- sensor.date_time
- sensor.daylight
include:
domains:
- sensor
- switch
- binary_sensor
Über die "Parameter" exclude und include bestimmt ihr dann welche Werte in der Datenbank landen und welche nicht. Ich speichere hauptsächlich Sensorwerte ab. Nach einem Neustart von HA sollten die Daten jetzt in der Datenbank landen. Falls HA die Datenbank nicht erreichen kann, oder nicht in die Datenbank schreiben kann, erfahrt ihr dies in den Logs
3. Einrichtung von Grafana und Visualisierung der Daten
Als nächstes richten wir Grafana ein. Bei mir läuft die Anwendung auf dem Raspberry Pi auf dem auch HA läuft, prinzipiell kann die Anwendung aber auch wieder überall da laufen, wo Docker läuft. Als erstes müssen wir ein Volume für Grafana und seine Daten anlegen
docker volume create grafana_data
, danach könnt ihr Grafana mit dem Befehl docker run -d -p 3000:3000 --name=grafana -v grafana_data:/var/lib/grafana grafana/grafana
starten. Ihr könnt auch eine Compose Datei verwenden:
YAML:
version: "3.3"
services:
grafana:
container_name: grafana
image: grafana/grafana
ports:
- 3000:3000
user: "1000"
volumes:
- grafana_data:/var/lib/grafana
environment:
- "GF_INSTALL_PLUGINS=grafana-piechart-panel"
Nun müssen wir Grafana zunächst die Datenquelle bekannt machen. Dazu wechseln wir in die Einstellungen (Zahnradsymbol) und geben hier die Daten der influxDB ein.
Anhang anzeigen 380
Wenn alle Daten eingetragen sind, zeigt ein Klick auf "Save & test" auch direkt ob die Verbindung funktioniert.
Nun können wir unser erstes Dashboard erstellen. Dazu klicken wir auf das "+" Symbol links in der Menüleiste und wählen "Dashboard" aus. Im nun geöffneten Fenster wählen wir "Add new Panel" aus und landen auf folgender Seite:
Im oberen Bereich (roter Rahmen) wird euch das Diagramm dargestellt - da noch keine Datenabfrage erstellt wurde, ist das momentan noch leer. Im unteren Bereich (blauer Rahmen) erstellt ihr eine Datenabfrage, die im oberen Bereich dann dargestellt wird. Im rechten Bereich (grüner Rahmen) könnt ihr die Darstellung beeinflussen und darüber (gelber Rahmen) könnt ihr auswählen, wie die Daten dargestellt werden sollen, als Diagramm, Torten-Diagramm, etc. Weiter geht es dann im zweiten Teil - ich kann nämlich "nur" fünf Bilder an einen Beitrag anhängen