Neues Modul: 93_InfluxDBLog

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

Vorheriges Thema - Nächstes Thema

reinni123

Besteht nicht die Möglichkeit Grafana direkt mit mysql zu nutzen ohne die InfluxDB? -> http://docs.grafana.org/features/datasources/mysql/

pole23

Ja, in der aktuellen Version von grafana kann man direkt auf eine MySQL Datenbank gehen. Ist wohl aber noch im Status Alpha.
Ich habe es heute mal getestet und es funktioniert generell. Siehe Bild

reinni123

Was hast du eingestellt, das es bei dir funktioniert? Bei mir wollte es mit MariaDB nicht funktionieren.

pole23

Es ist ein normaler Graph, wo ich bei "Metrics" folgenden SQL Befehl ausführen lasse:
SELECT UNIX_TIMESTAMP(TIMESTAMP) as time_sec, VALUE as value, device as metric FROM fhem.history where READING="temp_knx"
Das Reading ist ein Userreading für die Temperaturen von KNX.
Das Format des Graphen ist "Time Series".

reinni123

#34
Tatsächlich funktioniert. Allerdings musste ich weiter filtern da bei mir unter dem reading "temperature" zu viele Sensoren erscheinen:

SELECT UNIX_TIMESTAMP(TIMESTAMP) as time_sec, VALUE as value, device as metric FROM fhem.history where READING="temperature" AND DEVICE="UG.Heizraum.Speicher.1.Tempsensor.1"

Man merkst allerdings das es deutlich länger zum laden braucht.

plin

Hi,

das Modul lief mit
define influxlog InfluxDBLog myserver 8086 fhem fhem fhem .*
auf Anhieb.

Ich wollte jetzt testweise den Status der Tür/Fensterkontakte mittels Grafana-Plugin Discrete darstellen (das kann Werte in andere übersetzen, also "open (to vccua)"->"1"). Das Reading "contact" gibt's aber nicht in der InfluxDB. Werden nur numerische Werte übertragen?

VG plin
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

deveth0

#36
Zitat von: reinni123 am 26 Juni 2017, 11:23:15
...
Man merkst allerdings das es deutlich länger zum laden braucht.

Hier ist das Problem, dass du alle Werte lädst und kein GROUP BY machst. Damit sollte es weitaus schneller gehen:

SELECT UNIX_TIMESTAMP(TIMESTAMP) as time_sec, VALUE as value, device as metric
FROM fhem.history
WHERE READING="temperature" AND DEVICE="UG.Heizraum.Speicher.1.Tempsensor.1" AND $__timeFilter(TIMESTAMP)
GROUP BY value, UNIX_TIMESTAMP(TIMESTAMP) DIV 300
ORDER BY time_sec asc;


Du solltest auch im Netzwerk-Monitor vom Browser sehen, dass ansonsten extrem viele Daten übertragen werden (ein einzelner meiner LaCrosse Sensor hat zB ~5MB pro Tag)

hermann1514

Hi.

Habe das Modul auch mal installiert und läuft schon einige Wochen.
SIeht gut aus. Jedoch habe ich zumindest ein Gerät / oder Typ bei dem die Daten nich in die INFLUXDB geschrieben werden:
Die EDIPLUG Steckdosen. Z.B. das Reading "current" wird nich tübernommen. Jedoch von meinen EC3000 Powermeter wird das Reading in die INFLUX DB geschrieben.
Die EDIPLUG Dinger haben auch noch power_day, power_month usw. aber diese werden auch nicht geschrieben.
Ich habe die DEF mit .* abgeschlossen - hatte vorher nur bestimmte Einträge drinne - aber es wird von diesen Geräte nichts geschrieben.

Kann ich im LOG (welches??) irgendetwas sehen?

Danke.
Gruß
Hermann

hermann1514

Hi,

habe das Problem nun gefunden. Im Reading stand noch die Einheit "W". Ich habe nun ein Userreading nur mit dem Wert erstellt und dieses wurde sofort in die DB geschrieben.

Gruß
Hermann

PichlAlex

Hallo!

ich bin gerade ganz begeistert über diesen Thread.
Wie ist denn der aktuelle Implementierungsstatus? gibt es bereits (oder in näherer Zukunft) eine Integration ins DBLOG oder wie wollt ihr weiter mit dem Thema umgehen?
Ich werde ebenfalls die InfluxDB zu meiner FHEM Installation implementieren - möchte aber eine doppelte Implementierung vermeiden.

schöne Grüße
Alex

d.schoen

Hi Alex,

eine Integration in DBLog ist aktuell nicht vorgesehen. Das Modul von mir läuft aber seit Mai zu 100% stabil und darf gern verwendet werden.

Viele Grüße
Dominik
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

Ich habe gestern erst meine Sqlite3 DBLog Datenbank in eine MySQL Datenbank umgezogen und nutze diese nun direkt in Grafana.
Die MySQL-Datasource von Grafana scheint mittlerweile echt gut zu funktionieren.

Damit bleibt die einem die doppelte Datenhaltung erspart.
Auch sind String-Werte wie open/closed kein Problem und man erspart sich zusätzliche numerische Userreadings um das in InfluxDB loggen zu können.

Die Werte kann man dann direkt im SELECT Statement wieder zu Werten mappen um sie in Grafana in den Graphen zu bekommen.
Durch die vielfältigen Funktionen die bei einem SELECT möglich sind, brauchen viele Sachen auch gar nicht in Grafana integriert werden, da man das schon auf MySQL Seite erledigen kann.

z.B. Temperaturdaten ausdünnen und durch Mittelwerte ersetzen, damit der Graph schneller lädt / weniger Traffic erzeugt usw.
Oder Offsets auf Werte aufrechnen um mehrere Kurven übereinander in einem Graphen darzustellen.

Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

artcrime

Hallo,

bin ein totaler Fan von Influxdb / Grafana und freue mich das fhem direkt die Messwerte dort ablegen kann. Echt tolle Arbeit! Ist es auch möglich den Alias eines Messwerte als weiteren Tag in die Influxdb zu schreiben?
Ich möchte für die Grafana Dashboards Template Variablen nutzen was zwar funktioniert aber die Namen meiner Temperatursensoren entsprechen nicht den Raumnamen. Weitere Tags an den Messwerten würden die Templateerstellung deutlich vereinfachen. Am besten fände ich es wenn der Alias des Gerätes als Tag mit geschrieben wird (oder wenn es optional wäre).

Gruß Sascha

plin

Und wie schaut es mit Tür-/Fensterkontakten aus? Die haben den Status open / closed der als 0 / 1 in die InfluxDB übertragen werden könnte.
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

artcrime

Da influxdb ein gute Web Schnittstelle zum Einfügen der Daten hat habe ich schon mal darüber nachgedacht bei jedem Schreibevent (wegen mir in den Txt / mysql Log) einen Benutzerdefinierten Curl Aufruf zu starten welcher die Daten in gewünschter Form in die Influxdb schreibt. Damit könnte man auch mehrere Values oder auch Strings in die Datenbank schreiben.

Die http Schnittstellen ist sehr gut dokumentiert. Schreiben in die Datenbank könnte z.B. so aussehen (Auszug aus der influxdb Doku):

curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'

Wäre meiner Meinung nach der flexibelste Weg!

Ich weiß nicht ob ich sowas mit fhem überhaupt machen könnte (nutze fhem erst seit ein paar Tagen und lese mich wenn ich Zeit habe in ein paar Themen ein).

Gruß