Installation der InfluxDB Datenbank

Damit SmarthomeNG Meßwerte loggen kann existiert eine Schnittstelle zur SQLite Datenbank. Als Alternative für umfangreichere Auswertungen und mehr Performance gibt es ein neues Plugin um Meßdaten in eine Influx Datenbank zu schreiben. Die Influx Datenbank wurde speziell entwickelt für Meßwerte mit Zeitstempeln. Sie verfügt über Schnittstellen zu gängigen Programmiersprachen und es gibt eine interaktives Command Line Interface.

Vorbedingung

Die folgende Anleitung geht davon aus, das ein Debian Jessie System als 64-bit Variante vorliegt und damit der systemd benutzt wird um Dienste zu starten und zu beenden. Ihr könnt testen, welches System bei Euch installiert ist mit:


getconf -a | grep LONG_BIT

Das ergibt für ein 64 Bit System LONG_BIT 64.

(Alternativ kann man auch die Sourcen für InfluxDB holen und eine 32 Bit Version bauen. Allerdings sprengt das den Rahmen dieses How-to.

Zunächst der Download der InfluxDB Datenbank mit


wget https://dl.influxdata.com/influxdb/releases/influxdb_0.12.2-1_amd64.deb
sudo dpkg -i influxdb_0.12.2-1_amd64.deb 

Jetzt muß Influx noch einmalig gestartet werden:


sudo systemctl start influxdb.service

Ob die Datenbank nun im Hintergrund läuft, läßt sich prüfen mit


sudo systemctl status influxdb.service

Damit das Plugin später auch Daten in eine Datenbank schreiben kann, legen wir eine Datenbank an. Dazu starten wir das influx command line interface:


influx

Um die existierenden Datenbanken aufzulisten, geben wir das Kommando SHOW DATABASES ein. Da wir frisch installiert haben, sollten lediglich name und _internal gelistet werden. Nun erstellen wir eine neue Datenbank mit


CREATE DATABASE smarthome

Zur Prüfung geben wir erneut das Kommando SHOW DATABASES ein. Das Ergebnis sollte nun sein:


name: databases
---------------
name
_internal
smarthome

>

Mit quit kann das Command Line Interface wieder verlassen werden.

Installieren des InfluxDB Python Clients

Um die InfluxDB mit Python und damit mit SmarthomeNG nutzen zu können, bmuß noch ein passendes Zugriffsmodul installiert werden:


sudo pip3 install influxdb

Installieren des Plugins

In den nächsten Versionen von SmarthomeNG (> V1.1) wird das Plugin sicher Bestandteil des Masters werden. Bis es soweit ist, muss es nachinstalliert werden:


cd /usr/local/smarthome/plugins
mkdir influx
cd influx
wget https://github.com/SgtSeppel/smarthome-influxdb/archive/master.zip
unzip -j master.zip
rm master.zip

Konfiguration des Plugins

plugin.yaml


influxdb:
    class_name: InfluxDB
    class_path: plugins.influx
#   influx_host: localhost
#   influx_port: 8083
#   influx_user: root
#   influx_pass: root
#   influx_db: smarthome
    influx_keyword: influx

Der Eintrag influx_keyword legt fest, welche Daten in die Datenbank geschrieben werden. Ihr könnt entweder z.B. influx wählen und dann würde dieses item in die Datenbank geschrieben werden:


Vorlauftemperatur:
    name: Vorlaufemperatur
    type: num
    knx_dpt: 9
    influx: true
    visu_acl: rw
    knx_init: 8/1/1
    cache: on

Eine Superidee des Entwicklers ist es jedoch als influx_keyword nun sqlite auszuwählen, dann werden alle Daten die in die SQLite Datenbank geschrieben werden zugleich auch in die Influx Datenbank geschrieben.

Nun müßt ihr noch smarthome.py neu starten, damit das Plugin auch genutzt wird.

Wenn nun das Frontend Grafana genutzt werden soll um unabhängig von einer Visu auf dir nun frisch geloggten Daten zuzugreifen, dann bitte bei der Anleitung für Grafana fortfahren.


0 Kommentare

Schreibe einen Kommentar

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