Mithilfe von InfluxDB könnt ihr viele spannende Projekte mit openHAB angehen. Im Grundsatz dient die InfluxDB zur Speicherung von einfachen Zeitreihen. Das bedeutet, ihr könnt jeden Zustand und jede Veränderung eines Items (oder alle Mitglieder einer Gruppe) von OpenHAB in einer Datenbank speichern und habt damit jederzeit Zugriff auf historische Werte. Damit erweiterst du die Möglichkeiten deine Smarthome-Installation, da du auch die historischen Werte nutzen kannst. Ein einfaches Beispiel ist, ob die Temperatur deiner Sensoren in der letzten Stunde angestiegen ist und auf dieser Basis den Lüfter anschalten. Eine weitere Möglichkeit ist eine ansprechende Visualisierung des Temperaturverlaufs über den Tag mithilfe von Grafana.
Installation von InfluxDB
Mithilfe von InfluxDB hast du eine auf Geschwindigkeit optimierte Datenbank für Zeitreihen und damit für die Nutzung von Sensordaten.
Laden des openHAB-Images von Docker Hub
Als Basis für die Installation von InfluxDB musst du als erstes das Image von der offiziellen Seite von Docker Hub downloaden. In der Containerstation kannst du das Image mit einem Klick herunterladen oder du nutzt den folgenden Befehl:
docker pull influxdb
Einrichtung von Ordnern
Um eine Speicherung der Daten außerhalb von Docker zu ermöglichen, musst du als erstes den folgenden Ordner auf deinem System anlegen:
influxdb
Erstellung des InfluxDB-Containers
Im Anschluss kannst du den Container über die Containerstation bzw. die richtigen Docker-Befehle starten. Da du im Anschluss die IP-Adresse sowie den Port benötigst, solltest du diese Werte kurz zwischenspeichern.
Einrichtung von InfluxDB
Um einzelne Daten von eurer openHAB-Instanz in der InfluxDB speichern zu können, musst du im ersten Moment deine InfluxDB einrichten – der Code dafür ist:
influx
CREATE DATABASE openhab_db
CREATE USER admin WITH PASSWORD 'admin' WITH ALL PRIVILEGES
CREATE USER openhab WITH PASSWORD 'openhab'
CREATE USER grafana WITH PASSWORD 'grafana'
GRANT ALL ON openhab_db TO openhab
GRANT READ ON openhab_db TO grafana
Mit diesem Code legst du die notwendige Datenbank an und erstellst Nutzer, die mit unterschiedlichen Rechten diese Datenbank einsehen können. Da du im folgenden Tutorial mit Grafana die Daten visualisieren wirst, erstellst du bereits in den Zeilen 5 und 7 einen Grafana-Nutzer. Wenn du das nicht möchtest, kannst du diese Zeilen einfach löschen.
Verknüpfung mit openHAB
Im nächsten Schritt konfigurierst du openHAB soweit, um die Daten von Items oder Gruppen in der InfluxDB speichern zu können.
Dafür installierst du im ersten Schritt die Erweiterung für die InfluxDB in openHAB. Die notwendige Zeile findest du in der Datei „conf/services/addons.cfg“:
persistence = influxdb
Im Anschluss musst du die Zugangsdaten eintragen, damit openHAB auf die InfluxDB zugreifen kann. Dies erfolgt in der Datei „conf/services/addons.cfg“:
url=http://IP_ADRESSE:PORT
user=openhab
password=openhab
db=openhab_db
retentionPolicy=autogen
Als letzten Schritt musst du openHAB noch mitteilen, welche Items du in welchem Intervall speichern willst. Hier kannst du jederzeit Items hinzfügen, damit diese in deiner InfluxDB gespeichert werden:
Strategies
{
everyFiveMinutes : "0 0/5 * * * ?"
default = everyChange
}
Items
{
ITEM_NAME : strategy = everyChange
GROUP_NAME* : strategy = everyFiveMinutes
}
Mit dem obigen Code wird das Item mit der Bezeichnung ITEM_NAME bei jeder Veränderung in der InfluxDB gespeichert. Zudem werden alle Items der Gruppe mit der Bezeichnung GROUP_NAME alle fünf Minuten in der InfluxDB gespeichert.
Prüfung der Datensätze in InfluxDB
Eine Prüfung der Datensätze ist über die Shell innerhalb des Containers möglich. In der Containerstation ist dafür nur ein Klick aus das Terminal notwendig gefolgt von dem Kommando „/bin/sh“.
Alternativ kannst du die Shell mit dem folgenden Befehl starten:
docker run -it –rm CONTAINER_NAME /bin/sh
Im Anschluss kannst du mit den folgenden Befehlen in der Reihenfolge deine gespeicherten Items betrachten:
influx
USE openhab_db
SELECT * FROM ITEM_NAME
Weiterer Ausblick
In der Einleitung habe ich bereits einige Möglichkeiten für deine openHAB-Installation aufgedeckt. Ich nutze die InfluxDB oftmals für eine Visualisierung mithilfe von Grafana und den Habpanels in openHAB. Daher werde ich im kommenden Beitrag die Installation dafür näher erläutern.
Ich wünsche dir weiterhin viel Spaß beim Lesen!
Matthias