Neues Modul: 93_InfluxDBLog

Begonnen von d.schoen, 05 Mai 2017, 11:52:12

Vorheriges Thema - Nächstes Thema

d.schoen

Hallo zusammen, wie der Titel des Threads schon sagt: Ich habe ein neues kleines Modul entwickelt.

Durch den Umzug vom Pi2 auf einen "richtigen" Server hat sich auch meine Infrastruktur für das Charting geändert. Ich setze da mittlerweile auf die Timeseries-DB InfluxDB (https://www.influxdata.com/) und das Charting Frontend Grafana (https://grafana.com/).

Bisher hatte ich mir meine Messwerte via DBLog in eine MySQL Datenbank gespeichert. Von dort dann über ein Script in die InfluxDB. Ich dachte mir aber, das muss doch auch direkt gehen.

Daher nun das Modul dafür.

Es kann über
update add https://raw.githubusercontent.com/dsgrafiniert/fhem-InfluxDBLog/master/controls_influx.txt in die normale Updateroutine von FHEM eingebunden werden.

Definiert wird das ganze dann folgendermaßen:
define <name> InfluxDBLog <host> <port> <DB> <username> <passwort> <regex>

Beispiel:
define influxlog InfluxDBLog localhost 8086 fhem user pw .*

Würde mich über Feedback aus der Community sehr freuen.

Viele Grüße
d.schoen
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

Thyraz

#1
Hallo d.schoen

Bin im Moment auch etwas unzufrieden mit meinen Charts in FHEM, vor allem wenn man mal schnell kurz was auswerten will, das man bisher noch nicht als Chart angelegt hatte.

InfluxDB und Grafana sieht sehr schön aus.
Gerade auch die Wahl des Zeitbereichs etc. was sogar über Mobilgeräte anständig bedienbar ist. :)
Werde ich mir später daheim mal ansehen.

Falls das gefällt, muss ich nur noch sehen wie ich die Altdaten in die InfluxDB bekomme...
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Thyraz

Wollte nur mal die Rückmeldung geben, dass das Modul soweit super funktioniert.
Hab die regex von meiner DBLog Instanz übernommen und jetzt nach ein paar Stunden mitloggen in Grafana die ersten Temperaturcharts meiner Thermometer erstellt. :)

Sehr cool und danke auch dafür, mich überhaupt auf Grafana gebracht zu haben.
Das war genau was ich gesucht habe um eine etwas flexiblere und modernere Charting Lösung zu bekommen.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Benni

Hätte man die InfluxDB-Unterstützung nicht sinnvollerweise in das DBLog-Modul integrieren können?

d.schoen

Wäre sicher irgendwie gegangen, allerdings ist der Zugriff auf eine InfluxDB grundlegend anders als der Zugriff auf eine relationale, klassische (bspw. MySQL) DB.

Es darf mein Code und/oder die Funktionalität natürlich gern in das DBLog-Modul integriert werden, für meine Zwecke ging es über ein eigenes Modul einfacher und schneller.
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

DS_Starter

Hi Benny und d.schoen,

eine Integration in das DbLog-Modul als weitere unterstützte DB wäre sicherlich sinvoll weil integrativ.
Ich würde mich nach meinem Urlaub auch damit mal beschäftigen und dich d.schoen bitten mich dabei zu unterstützen. (Benny natürlich auch  ;) )
Vorher habe ich aber noch ein paar laufendende ToDos in dem DbLog-Thread  hier -> https://forum.fhem.de/index.php/topic,65860.0.html . (Kein schlechter Thread um auch dieses Thema weiter zu verfolgen)
Von allen unterstützen DBs habe ich mir Testinstanzen aufgebaut und bräuchte die dann natürlich auch für die Influx.

@d.schoen, kannst du ein paar Links/Tipps zusammenstellen die die Installation dieser DB und Grafana auf Debian beschreiben ?
Ich hatte damit bisher nichts zu tun und kenne mich damit nicht aus. Es würde sehr helfen und Zeit sparen.

Also das ist lediglich ein Angebot wenn eine solche Integration gewünscht ist .... und sie muß natürlich auch sinnvoll umsetzbar sein mit diesem DB-Typ.

viele Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Benni

Hallo Heiko,

stelle mich natürlich gerne als Tester zur Verfügung.
Habe zwar bisher auch null Erfahrung mir InfluxDB oder Grafana, aber dann ist das Wahrscheinlich mal wieder so eine Gelegenheit, was Neues zu lernen.  ;D

Gruß Benni.

DS_Starter

ZitatHabe zwar bisher auch null Erfahrung mir InfluxDB oder Grafana, aber dann ist das Wahrscheinlich mal wieder so eine Gelegenheit, was Neues zu lernen.

Na dann sind wir schon zwei  :D

Ich schau mal wann ich dazu komme, will erstmal noch ein paar offene Dinge in dem Thread abarbeiten und erfahrungsgemäß dauert es länger als ursprünglich gedacht.
Also bis dann mal wieder ...

Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Thyraz

Das wäre natürlich sehr cool. 😊

Dann könnte man sein normales DBLog und Grafana unter einen einen Hut bekommen.
Das Ganze sieht auf alle Fälle schonmal recht performant aus. Auf meinem Pi2 läuft jetzt zusätzlich Influx und Grafana und die Charts sind sehr schnell geladen gegenüber Fhem Plots oder FTUI Charts.

Bin mir jetzt nicht sicher woran das liegt.
Ob InfluxDB mit seiner zeitorientierten Datenbank hier seine Stärken ausspielt,
Oder Grafana hier besser optimiert ist.

Grafana passt sich auch gut an Displays von Handys an und die Chartd können auch in andere Seiten embedded werden.

Debian Influx Repo findet man hier:
https://docs.influxdata.com/influxdb/v1.2/introduction/installation/

Grafana hat auch eines:
https://grafana.com/grafana/download

Grafana für Pi:
https://github.com/fg2it/grafana-on-raspberry

InfluxDB kann man dann über das Webinterface anlegen.
(Achtung Standardport nach der Installation ist 8083 wie auch bei Fhem.)

Dort kann man im "Query Template" Menu eine neue Datenbank anlegen.
Die Datenbankanbindubg selbst lauscht nachher auf Port 8086.

Grafana ist hingegen unter Port 3000 erreichbar.
Dort muss InfluxDB als neue Datasource angelegt werden.
Bei mir gab es einen kleinen Stolperstein:
Der Add Datasource Eintrag im Menü war nach der Login Erstellung im Webinterface noch nicht sichtbar.

Erst als ich mir zusätzlich übers Menü eine "Organisation" angelegt habe, ist das Datasource Menü aufgetaucht.

Hier mal noch ein Screenshot wie man die Graphen konfiguriert.
Bei weiteren Fragen zu Installation/Konfiguration einfach melden.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

d.schoen

Zunächst mal danke für die rege Diskussion und das offenkundige Interesse an der Idee.

@Heiko: Natürlich unterstütze ich gern, auch wenn ich mich beim besten Willen nicht als "Profi" für InfluxDB bezeichnen würde.

Die Zusammenfassung von Thyraz ist auf jeden Fall schon mal sehr gut, danke dir!
Ich habe mich für InfluxDB und Grafana grundsätzlich an folgende Anleitung gehalten (habe hier eine Docker-Infrastruktur): https://blog.laputa.io/try-influxdb-and-grafana-by-docker-6b4d50c6a446

Allerdings weiß ich tatsächlich nicht, inwieweit die Integration in das DBLog Modul sinnvoll ist. InfluxDB ist eine NoSQL Datenbank und verwendet als Interface für Queries und Dateneinspeisungen eine HTTP-Schnittstelle: https://docs.influxdata.com/influxdb/v1.2/guides/writing_data/
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

DS_Starter

Hallo Thyraz und d.schoen,

erstmal vielen Dank für die Informationen.
Es wird auf jeden Fall noch etwas Zeit vergehen ehe ich mich damit auseinandersetzen kann und die Sinnfälligkeit dieses Vorhabens kann ich momentan auch noch nicht einschätzen. Schauen wir einfach mal ...

Was mir aber schon bezüglich der Modularchitektur durch den Kopf ging ....
Wird den euerer Meinung nach der FHEM-User die InfluxDB als vollkommenen Ersatz zu einer SQL-DB verwenden oder eher als Add-on, welches quasi neben einer SQL-DB mitlaufen wird.  Sollte letzteres der Fall sein könnte man über ein Attr die DB zuschaltbar machen und die Regex würden dan automatisch mit greigen. Im anderen Fall müßte man alle nicht zutreffenden Set/get-Kommandos und/oder auch Attribute ausblenden sobald man Influx nutzt und umgedreht.
Das hat dann natürlich ziemliche Auswirkungen auf den zu betreibenden Aufwand .

Ich hoffe mein Gedankengang ist deutlich geworden und mich iteressiert eure Meinung dazu.

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

d.schoen

Puuh.... Ich denke das lässt sich kaum pauschal beantworten, da beide Settings denkbar sind.

Ich kann nur aus meiner Perspektive sprechen: Ich setze die InfluxDB alternativ zur bisherigen MySQL DB ein. Bisher diente die mir auch nur um numerische Werte abzuspeichern und damit die Plots zu erstellen. Da ist InfluxDB und Grafana eben DEUTLICH schneller und schöner.

Sicher ist aber auch der Use-Case, die InfluxDB parallel zu betreiben. Hierfür würde ich aber z.B. folgendes Script empfehlen: https://github.com/GreatLakesEnergy/Mysql-to-influxdb
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

wuast94

ihr behandelt gerade genau das was ich herausfinden wollte :D manchmal hat man auch glück.

Ich würde als "Laie" schon fast sagen das der größte Teil das dblog in Verbund mit MySQL nur für Plots nutzt.. dementsprechend könnte man sagen man kann MySQL weg lassen und einfach InfluxDB nehmen.

Allerdings gibt es sicherlich auch viele die mit Plots arbeiten (floorplan, Telegramm etc) und dementsprechend auf das vorhandene System nicht verzichten können. es sei denn alle anderen Module werden erweitert um die Funktion was denke ich ne menge arbeit heißt. Bin zwar kein Dev aber man hat ja bekannte und sammelt da seine Erfahrungen von außerhalb, ihr habt übrigens Größten Respekt von mir :)

Naja kurzgefasst denke ich das ein paralleles System mit beiden Datenbanken am sinnvollsten wäre. (und ich denke Leistungs Technisch wird da auch kein PI anfangen zu Brennen wenn da zwei DB´s laufen)
schön wäre natürlich wen dieses parallele loggen in 2 DB´s (und das kopieren der vorhandenen) möglichst automatisch passieren kann.

Ich hoffe das ich damit einen Sinnvollen Beitrag/Hilfe leisten konnte :)
Zigbee  Temp+Luftdruck+Humi Bewegungsmeldern Tür Kontakte, Klingel, TV, Denon, Schaltbare Steckdosen mit leistungsmessung, und weiteres

Homeassistant mit Nodered

Thyraz

Aber die anderen Module (Telegram etc.) greifen ja wahrscheinlich über DBLog auf die Daten zu, und nicht direkt auf die Datenbankschnittstelle, oder?
Würde InfluxDB also wirklich in DBLog integriert, könnte man sie schon als einzige Datebank für alle Zwecke verwenden denke ich...
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

wuast94

Zitat von: Thyraz am 09 Mai 2017, 08:47:39
Aber die anderen Module (Telegram etc.) greifen ja wahrscheinlich über DBLog auf die Daten zu, und nicht direkt auf die Datenbankschnittstelle, oder?
Würde InfluxDB also wirklich in DBLog integriert, könnte man sie schon als einzige Datebank für alle Zwecke verwenden denke ich...

Ich glaube nicht da die Grafen (auch je nach Theme/Style) als bild exportiert werden so wie sie in Fhem zu sehen sind .. also als wenn da n screen von gemacht wird :D und grafana ist ja dann nicht in fhem intigriert sondern eine extra homepage wenn mich nicht alles irrt :) und ich gehe nicht davon aus das Grafana in Fhem intigriert wird. Wobei ein komplett überarbeitetes Fhem plus Grafana .. naja Träumen muss man ja nicht :D
Zigbee  Temp+Luftdruck+Humi Bewegungsmeldern Tür Kontakte, Klingel, TV, Denon, Schaltbare Steckdosen mit leistungsmessung, und weiteres

Homeassistant mit Nodered