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