Neues Modul: 93_InfluxDBLog

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

Vorheriges Thema - Nächstes Thema

fischit


artcrime

Richtig, influxdb kann sehr wohl Strings. Siehe https://docs.influxdata.com/influxdb/v1.5/write_protocols/line_protocol_reference/  unter Data Types.
Evtl. konnten ältere Versionen von influxdb das jedoch nicht.

g0t0

Das meinte ich gar nicht. Unanhänig davon ob influxDB oder das Modul Strings unterstützt oder nicht müsste ich doch z.B. "30 lum" oder "10 C" über eine Regex zu einem Integer machen können. Oder muss ich es dazu in Perl noch zum Integer casten?

Geht das überhaupt in einem Statement wie .*:.*[:Regex]

Anscheinend castet Perl automatisch von String auf Integer, wenn man 0 addiert:
my $var1 = "123abc";
print $var1 + 0;
--> ergibt 123


Ist das eine nicht eine einfache Anpassung um mehr Werte von fhem in influxDB zu bekommen?

Unabhängig davon:
Wie sieht es bei euch mit Performance aus? Bei kamen vermehrt Perfmon-freezes im log, seit ich influxDB (und DBlog in PostgreSQL) aktiviert hatte.
fhem läuft bei mir auf einem RPi3, influxDB und PostgreSQL und Grafana auf einem anderen RPi3 in Docker.

artcrime

Interessant ich wusste nicht das fhem das kann. Davon abgesehen ist die Syntax um Strings in die influxdb einzufügen leicht anders als bei Integer oder Float:

https://docs.influxdata.com/influxdb/v1.5/write_protocols/line_protocol_reference/

Evtl. muss dazu eine Änderung am Modul vorgenommen werden. Davon abgesehen macht es wenig den Wert mit der Einheit zu mischen da bei der Ausgabe wieder alles auseinander genommen werden muss. sinniger wäre es bei influxdb dafür eine tag zu vergeben z.B. unit=Celsius denn der Tag ist gleich ein Index ähnlich wie in mysql und das macht die Suche in den Daten sehr schnell.

Zur Performance kann ich nur sagen das ich keinerlei Probleme mit meinem Pi3 habe. Habe dort divers influxdb Datenbanken drauf. Z.B. Temperatur Logging mit knapp 4 Millionen Measurements über mehrere Jahre. Wenn ich mir dort mit Grafana alle Werte der Aussentemperatur der letzten 5 Jahre raussuche (knapp 550000 Werte) werden die Daten auf 7 Tage gruppiert und das Ganze dauert 30 Sekunden.

Gleichzeitig läuft auf dem selben pi3 eine mysql Datenbank, fhem und in die Influxdb wird ständig sehr viel geschrieben. Probleme bekomme ich nur wenn ich zuviel rumdaddele....

pano

Hat schon jemand Erfahrungen mit annotations in Grafana? Wenn ich das richtig sehe, kann man per CLI "Ereignisse" übergeben, die Mann dann in Grafana im Grafen anzeigen kann.

Man könnte zB das öffnen von Fenstern als Annotations im Grafen hinterlegen (senkrechte Linie im Grafen mit Detailinfos beim "Mouseover")

Ggf. kann man das im Modul ja auch unterbringen... (wenn man deutlich mehr Ahnung hat von Perl als ich ;-)

artcrime

Genau das mache ich bereits. Man kann die Annotations für ein Dashboard auch aus einer anderen Datenquelle laden. In meinem Fall kommen die Daten für die Kurven aus der influxdb und die Annotations aus mysql.
Man kann auch mehrere Annotations aus verschiedenen Datenquellen oder mit verschiedenen Farben laden. Ist nicht wirklich kompliziert.

Alternativ kann man auch selbst Annotations anlegen wenn man mit CTRL-linksklick im Graph bestimmte Stellen markiert.

sparkiie

Besteht eigentlich anders herum die Möglichkeit Daten aus einer bestehenden influxdb als Readings im FHEM zu nutzen?

kadettilac89

ich habe mir den Thread mal durchgelesen. Habe ein paar Fragen dazu. Läuft vermutlich bei einigen schon ein paar Monate

define influxlog InfluxDBLog localhost 8086 fhem user pw .*
--> das ".*" legt fest für welche Events in die Datenbank geschrieben wird. Gibt es eine Möglichkeit hier explizit Devices ein- oder auszuschließen?

Hat jemand einen Vergleich um wieviel größer oder kleiner der Speicherplatz von InfluxDb in Vergleich zu MySQL ist?

Gibt es ein Script das von MySQL nach InfluxDb migriert? Zumindest die Readings mit numerischen Werten.

gerhardg

Speicherplatz hängt halt davon ab wie viele Geräte du hast und wie oft du Werte wegschreibst. Ich nutze dieses Modul seit 21.05.2017 und die DB für fhem ist aktuell 148mb groß.

kadettilac89

Zitat von: gerhardg am 26 August 2018, 08:54:50
Speicherplatz hängt halt davon ab wie viele Geräte du hast und wie oft du Werte wegschreibst. Ich nutze dieses Modul seit 21.05.2017 und die DB für fhem ist aktuell 148mb groß.

Muss ich mal versuchen die Daten aus MySQL in Influx zu pushen. Ist halt nicht direkt vergleichbar (Kombination measurments + points). Wie du sagst, Größe ist abhängig von Geräten, Retention time und Häufigkeit.

DanielStern

Hallo zusammen,
danke erst einmal für diese tolle Erweiterung. Hat schon jemand Erfahrungen damit, wenn die InfluxDB nicht erreichbar ist. Ich hatte gestern das Phänomen, dass meine externe InfluxDB offline war (wegen Wartungsarbeiten). Das hat dazu geführt, dass sich die gesamte Kommunikation in FHEM die auf einem anderen Server läuft verabschiedet hat. FHEM verlor die Verbindung zur Homatic-Bridge und anderen LAN-Komponenten. Reboots des FHEM-Servers und der Tausch von Hardware hatten nicht geholfen. Erst als ich meine zwei Zeilen InfluxDBLog-Konfiguration in der fhem.cgf auskommentierte hat FHEM wieder richtig funktioniert.

Hat jemand schon einmal ähnliches beobachtet, wenn sein lokaler oder externer InfluxDB-Service nicht erreichbar ist? Gibt es in der Erweiterung einen Fallback, wenn eben genau dies passiert?
Beste Grüße
Danny

plin

Zitat von: DanielStern am 07 September 2018, 10:00:43
Hat jemand schon einmal ähnliches beobachtet, wenn sein lokaler oder externer InfluxDB-Service nicht erreichbar ist?
Kommt mir bekannt vor ...
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

volschin

Ist leider wie bei einer ganzen Anzahl anderer Komponenten. FHEM ist da nicht besonders fehlertolerant und das gesamte System wird blockiert.  :(
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

kadettilac89

Zitat von: DanielStern am 07 September 2018, 10:00:43
Hat jemand schon einmal ähnliches beobachtet, wenn sein lokaler oder externer InfluxDB-Service nicht erreichbar ist? Gibt es in der Erweiterung einen Fallback, wenn eben genau dies passiert?

Im DBLog ist das von DS_Starter gut gelöst, da wird asynchron geschrieben - per Attribut aktivierbar. Wenn die DB kurzzeitig nicht erreichbar ist läuft FHEM seelenruhig weiter.

kadettilac89

Zitat von: kadettilac89 am 26 August 2018, 09:49:56
Muss ich mal versuchen die Daten aus MySQL in Influx zu pushen. Ist halt nicht direkt vergleichbar (Kombination measurments + points). Wie du sagst, Größe ist abhängig von Geräten, Retention time und Häufigkeit.
mal eine Zahl hierzu, vielleich interessiert es jemanden. Habe mal zum Test meine MySQL Db in Influx eingelesen.

Zeilen ca. 500.000
Nahezu alle Readings sind numerisch

- MySQL Format MyISAM 47MB
- InfluxDB 51MB