-
Notifications
You must be signed in to change notification settings - Fork 68
Installation InfluxDB, Grafana und Plugin
Es existiert ein neues InfluxDB Plugin für Smarthome.py das es ermöglich Meßwerte in eine Influx Datenbank zu schreiben. Die Influx Datenbank wurde entwickelt als quasi eine SQL-ähnliche Datenbank für zeitabhängige Meßreihen. Viele Nutzer des Smarthome.py bemängelten, das eine RRD Datenbank einfach Werte ausdünnt im Laufe der Zeit und andererseits der Ansatz mit der SQLite nicht genau genug ist.
Die folgende Anleitung geht davon aus, das ein stabiles System vorliegt mit Ubuntu 14.04.3 oder Debian als 64-bit Variante. Ihr könnt testen, welches System bei Euch installiert ist mit:
uname -i
Das ergibt für ein 64 Bit System x86_64
. Alternativ geht auch
getconf -a | grep LONG_BIT
(Alternativ kann man auch die Sourcen für InfluxDB holen und eine 32 Bit Version bauen. Allerdings sprengt das den Rahmen dieses How-to.
Für alle weiteren Installationsschritte nutzen wir eine Root Shell
sudo -i
Nun installieren die InfluxDB Datenbank mit
wget https://s3.amazonaws.com/influxdb/influxdb_0.9.4.1_amd64.deb
dpkg -i influxdb_0.9.4.1_amd64.deb
Jetzt muß Influx noch einmalig gestartet werden:
/etc/init.d/influxdb start
Damit das Plugin später auch Daten in eine Datenbank schreiben kann, legen wir eine Datenbank an. Dazu startet wir das influx command line interface:
/opt/influxdb/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
pip install influxdb
Am einfachsten ladet ihr Euch das Plugin als ZIP runter und kopiert den Inhalt in ein neues Unterverzeichnis /smarthome.py/plugins/influx
[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.
Damit die Daten nun auch hübsch präsentiert werden können, installieren wir uns noch ein grafisches Frontend Grafana
.
Wir nutzen wieder unsere Root Shell und erweitern unsere Liste für Repositories:
sudo -i
nano /etc/apt/sources.list
Dorthin idealerweise ganz unten einfügen:
deb https://packagecloud.io/grafana/stable/debian/ wheezy main
Jetzt müssen wir noch den Schlüssel holen damit wir signierte Packages installieren können:
curl https://packagecloud.io/gpg.key | sudo apt-key add -
Nächste Schritte sind aktualisieren der APT Datenbank und installieren von grafana
apt-get update
apt-get install grafana
Details der Grafana Installation:
Programm zu finden in /usr/sbin/grafana-server
Das Init.d Skript liegt unter /etc/init.d/grafana-server
, eine defaults Datei mit Umgebungsvariablen findet sich in /etc/default/grafana-server
und eine Konfigurationsdatei in /etc/grafana/grafana.ini
.
Weiter gibt es noch ein Logfile zu finden unter /var/log/grafana/grafana.log
und eine SQLite3 Datenbank als Basis für Grafana wird installiert unter /var/lib/grafana/grafana.db
.
Falls systemd vorhanden wird noch ein service installiert mit Namen grafana-server.service
Jetzt gilt es den Grafana Server zu starten mit
service grafana-server start
Jetzt könnt ihr auf den Grafana Server zuzugreifen mit der IP-Adresse und Port 3000. Benutzer und Passwort sind admin.
Damit der Grafana Server bei jedem Systemstart mitstartet, müssen wir ihn noch eintragen:
update-rc.d grafana-server defaults 95 10
So, nun sollte das ganze funktionieren. Bevor ihr an das Frontend vom Grafana geht, solltet ihr erstmal ein wenig Daten sammeln.
Wie oben müßt ihr mit Eurem Browser nun auf Port 3000 auf den Grafana Server zugreifen. Dort könnt ihr Euch dann mit Benutzer admin und Passwort admin anmelden.
Der nächste Schritt ist die Einrichtung der Datenverbindung. Dazu wählt ihr Data Sources
aus und dann oben in der Leiste Add New
. Danach gebt Ihr als Name influxdb
ein und als Type influxDB 0.9.x
; den Haken bei default setzt man zweckmäßigerweise auch.
Bei den http-Settings gebt Ihr die http://<IP>:8086
, Access auf direct
.
Bei den InfluxDB Details als Datenbank smarthome
mit User = root
und Passwort root
. Jetzt sollte Test Connection
erfolgreich sein. Mit Klick auf Save
seid Ihr jetzt einsatzfähig.
Ihr klickt jetzt auf Dashboards
und anschließend auf Home
. Weiter unten könnt Ihr nun +New
auswählen um ein neues Dashboard zu erzeugen. Wenn das geschehen ist, gibt es ein kleines grünes Rechteck.
Darauf klickt ihr und dann weiter auf Add Panel
und im Submenü Graph
. Jetzt erscheint ein leeres Feld mit einem roten Ausrufezeichen in der oberen linken Ecke und einer Überschrift no title (click here)
. Darauf klickt ihr nun und wählt aus dem Popup Dialog Edit
aus.
Unter Metrics ist jetzt eine Abfrage. Dort könnt Ihr - wenn bis dato alles richtig verlaufen ist und schon Werte in der Influx Datenbank zu finden sind - unter FROM
select measurement eure erste Datenreihe eintragen. Ein Klick ganz oben auf das Diskettensymbol speichert nun das dashboard. Der Rest geht am besten über ausprobieren. Ein Klick auf den Farbstrich der Datenreihenlegende erlaubt es zu wählen ob die linke oder rechte Achse zur Anzeige genommen und welche Farbe zur Anzeige verwendet wird.
Viel Spaß!