FHEM und Grafana – Tool zum Visualisieren von Messdaten

Mit den LogFiles und den SVG-Graphen bietet FHEM bereits eine gute Möglichkeit Messwerte zu speichern und grafisch darzustellen.

In diesem Beitrag möchte ich euch nun eine Möglichkeit aufzeigen, wie ihr mit Hilfe einer InfluxDB Messdaten speichert und über Grafana visuell darstellen könnt. Die Daten für die Datenbank kommen direkt aus FHEM.

Was ist Grafana?

Grafana ist eine Software mit einer Weboberfläche, welche dazu verwendet werden kann Messdaten grafisch darzustellen. Dabei können verschiedene Typen von Graphen verwendet werden. Grafana verwendet dabei Daten aus einer Datenbank. 

In diesem Fall verwenden wir InfluxDB und schreiben später die Daten direkt aus FHEM in diese Datenbank. Grafana liest dann diese Daten und stellt diese visuell da. 

Vorbereitung

Bevor mit der eigentlichen Definition in FHEM begonnen werden kann, müssen ein paar Vorbereitungen getroffen werden. Zum einen die Einrichtung der Datenbank und zum anderen die Installation von Grafana. Zusätzlich muss in FHEM noch das korrespondierende Modul installiert werden, damit FHEM mit der InfluxDB Daten austauschen kann. 

Einrichtung der InfluxDB

Die Installation der InfluxDB bezieht sich hier auf das Betriebssystem Raspbian auf einem Raspberry Pi 3. 

Zunächst wird der Signaturschlüssel der Paketquelle hinzugefügt, damit anschließend diese selbst hinzugefügt werden kann. Zum Schluss wird dann InfluxDB installiert.

# Signaturschlüssel installieren
wget -O - https://repos.influxdata.com/influxdb.key | sudo apt-key add -
# Paketquelle hinzufügen
echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
# InfluxDB installieren
sudo apt-get update && sudo apt-get install influxdb

Nach der Installation kann der InfluxDB-Server gestartet werden.

sudo systemctl daemon-reload
sudo systemctl enable influxdb.service
sudo systemctl start influxdb.service

Um zu schauen, on die Installation erfolgreich war, könnt ihr kurz das InfluxDB-Terminal öffnen:

influx

Mit "exit" könnt ihr das InfluxDB-Terminal wieder verlassen.

Installation von Grafana

Nach der Installation der InfluxDB kann mit der Installation von Grafana begonnen werden.

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_5.3.2_armhf.deb
sudo dpkg -i grafana_5.3.2_armhf.deb

Stand November 2018 ist die Version 5.3.2 aktuell. Die neuste Version kannst du auf der Grafana-Seite nachlesen.

Damit der Zugriff auf Grafana später einfacher geht, deaktivieren wir die Benutzerregistrierung und aktivieren den anonymen Zugriff auf die Daten. Dies kann man durch bearbeiten der Grafana-Configdatei:

sudo nano /etc/grafana/grafana.ini

Grafana kann nun gestartet werden. Standardmäßig startet Grafana auf dem Port 3000. Über die oben genannte Config-Datei kann dieser Port angepasst werden.

systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server

Für einen automatischen Start von Grafana könnt ihr folgenden Befehl ausführen:

sudo systemctl enable grafana-server.service

Die Weboberfläche von Grafana könnt ihr nun über die IP eures Raspberrys erreichen.

http://192.168.2.101:3000

Benutzername und Passwort sind "admin"

Bevor nun Grafana weiter eingerichtet wird, erstellen wir zunächst ein InfluxDB und definieren das Modul für FHEM 

Erstellen einer InfluxDB

Bevor nun das Modul in FHEM definiert werden kann, muss eine Datenbank angelegt werden, mit der sich FHEM dann verbinden soll. Dazu loggen wir uns wieder mit dem Befehl "influx" in das InfluxDB-Terminal ein und definieren zunächst einen USER und dann die eigentliche Datenbank.

Installation des FHEM-Moduls "influx"

Die Kommunikation zwischen FHEM und der InfluxDB übernimmt das FHEM-Modul "Influx", welches vom FHEM-Forum-User d.schoen entwickelt wurde.

Damit das Modul beim FHEM-Update installiert wird, muss dies zur Update-Routine hinzugefügt werden.

update add https://raw.githubusercontent.com/dsgrafiniert/fhem-InfluxDBLog/master/controls_influx.txt

Anschließend kann mit "update" das Modul installiert werden und mit "update restart" FHEM neu gestartet werden.

Anschließend kann nun mit der Definition des Moduls begonnen werden. Die Definition des Moduls lautet wie folgt:

define <name> InfluxDBLog <host> <port> <DB> <username> <passwort> <regex>

Ich habe mir das Modul wie folgt definiert um alle Readings meines Yahoo-Wetter-Moduls in die Datenbank zu speichern:

define InfluxDBWetter InfluxDBLog 192.168.2.101 8086 fhem_wetter Daniel FhemInFluxDB YahooWetter

Die Readings des Yahoo-Wetter-Devices werden nun in die InfluxDB geschrieben.

Einrichten von Grafana

Die Vorbereitungen sind nun abgeschlossen und es kann mit der Einrichtung von Grafana begonnen werden. Dazu loggen wir uns in die Weboberfläche von Grafana ein. 

Ihr werdet sofort aufgefordert eine Datenquelle hinzuzufügen. In unserem Fall ein InfluxDB.

Der Name kann frei gewählt werden. Er dient später dazu die passende Datenbank beim Erstellen von Graphen auszuwählen. Unter URL tragt ihr "http://localhost:8086". Unter InfluxDB Details wird der Name der erstellten Datenbank und dessen Login-Daten eingetragen. 

Ihr habt nun die InfluxDB als Datenquelle hinzugefügt und könnt nun mit dessen Daten Graphen erstellen. Dazu öffnet ihr über die linke Spalte ein vorhandenes Dashboard oder erstellt ein neues Dashboard.

Anschließend könnt ihr bereits den ersten Graphen zum Dashboard hinzufügen. In meinem Fall ein einfacher Graph.

Über den Titel des Graphen lässt sich dieser bearbeiten. Hier lassen sich nun über "Metrics" einstellen, welche Daten in den Graph angezeigt werden sollen.

Hier lassen sich nun die gewünschten Kurven definieren. Wichtig ist, dass ihr unter Data Source die eingerichtete InfluxDB angibt. 

Über die anderen Reitern lassen sich nun noch weitere Einstellungen vornehmen, z.B. die Beschriftung der Achsen. Am besten klickt ihr euch einfach durch die Einstellungen und testen bisschen rum. Es lässt sich nämlich verdammt viel konfigurieren.  

Sobald die ersten Readings in die Datenbank geschrieben wurden, werden diese nun vom Graphen angezeigt.

Ich finde die Graphen von Grafana sehr ansprechend und die Konfiguration ist relativ simpel. Möchte man nur Messdaten anzeigen würde ich Grafana Tablet UI vorziehen. Mein nächstes Projekt wird es also sein, alle möglichen Daten in Graphen packen und mir dann ein altes Tablet zum Anzeigen einrichten. 

Durch das Einrichten eines Benutzer nur mit View-Rechten lässt sich ein sehr gutes Anzeige-Tablet für den Hausflur erstellen. 

Hinterlasse einen Kommentar

avatar
Fotos und Bilder
 
 
 
sonstiges Dateiformat
 
 
 
  Subscribe  
Benachrichtige mich zu: