Neues Modul: 93_InfluxDBLog

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

Vorheriges Thema - Nächstes Thema

ChrisW

#105
Edit:
Okay da er immer 65000 hochzählt hab ich das mal mit den letzten15 minuten versucht bin gespannt. Hoffe nur das das nie mal ausfällt
Raspberry PI3 mit allem möglichen.

kadettilac89

Zitat von: ChrisW am 26 Januar 2019, 19:19:39
Edit:
Okay da er immer 65000 hochzählt hab ich das mal mit den letzten15 minuten versucht bin gespannt. Hoffe nur das das nie mal ausfällt

wenn du das Skript in Crontab hast mache den Zähler raus, der flutet dir sonst das daemon-log.

plin

Ich hätte da einen Wunsch fürs Modul selbst:

Bei nicht numerischen Werten gibt es Fehlermeldungen im Log. Die würde ich überspringen.

Praktisch wäre außerdem ein Mapping für den Status

  • on => 1
  • off => 0
  • open => 1
  • closed => 0
Sieht bei mir dann so aus:

diff 93_InfluxDBLog.pm 93_InfluxDBLog.pm.orig
114,121c114
<   my $value = $arr[1];
<   return if ! ( $value =~ /^[0-9,.E]+$/ );
<   $value = 1   if ( lc $value eq "on");       # state on
<   $value = 0   if ( lc $value eq "off");      # state off
<   $value = 1   if ( lc $value eq "open");     # contact open
<   $value = 0   if ( lc $value eq "closed");   # contact closed
<
<   my $data = "$arr[0],site_name=$NAME value=$value";
---
>   my $data = "$arr[0],site_name=$NAME value=$arr[1]";


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

kadettilac89

Zitat von: plin am 27 Januar 2019, 15:39:00
Ich hätte da einen Wunsch fürs Modul selbst:

Bei nicht numerischen Werten gibt es Fehlermeldungen im Log. Die würde ich überspringen.

Praktisch wäre außerdem ein Mapping für den Status

  • on => 1
  • off => 0
  • open => 1
  • closed => 0


muss der modulauthor entscheiden.  ... nice to have aber es gibt wichtigere requests. mapping im fhem device selber ...

https://forum.fhem.de/index.php/topic,71551.msg839403.html#msg839403

plin

#109
Zitat von: kadettilac89 am 27 Januar 2019, 17:49:33
mapping im fhem device selber ...

Na ja, wie wär's denn mit der Variante: Im InfloxDBLog-Modul wird das Regelwerk in einem oder mehreren Attributen als Tabelle hinterlegt
s/on/1/
s/off/0/
s/open/1/
s/closed/0/


Die Attribute könnten den Namen des Readings beinhalten auf das die regex angewandt werden sollen

  • process_state
  • process_power
  • process_metrikname
Wenn die Variable $value im Modul gefüllt ist, kann das Regelwerk angewandt werden.

Beispiel:
#!/usr/bin/perl

my $value = "closed";
@trial_array = ("s/on/1/", "s/off/0/", "s/open/1/", "s/closed/0/");
foreach $regex (@trial_array)
{
    my $formula = "\$value =~ ".$regex.";";
    eval($formula);
}
print $value."\n";


Der Vorteil dieser Lösung: man muss die Regeln nur einmal zentral definieren und nicht in jedem Device einzeln.
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

kadettilac89



Zitat von: plin am 27 Januar 2019, 18:59:17
Der Vorteil dieser Lösung: man muss die Regeln nur einmal zentral definieren und nicht in jedem Device einzeln.

Wie gesagt. Muss der Autor entscheiden. Das Modul wurde schon eine Weile nicht mehr angepasst.


plin

#111
Zitat von: kadettilac89 am 27 Januar 2019, 19:50:07
Das Modul wurde schon eine Weile nicht mehr angepasst.
Seine persönliche Forumseite sagt

Letzter Besuch:
    02 Mai 2018, 13:16:22

Wenn der nicht mehr aktiv ist (sein Problem ist gelöst) muss man vielleicht einen Fork starten ...

P.S. Habe ihm gerade eine PN geschickt.
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

kadettilac89

Könnte man, ja. Ds_starter, maintainer vom dblog wollte sich das Thema mal ansehen. Aktuell ist die Nachfrage aber gering. Es funktioniert und es gibt wenige Nutzer.

DS_Starter

#113
ZitatKönnte man, ja. Ds_starter, maintainer vom dblog wollte sich das Thema mal ansehen. Aktuell ist die Nachfrage aber gering.
Hallo ihr zwei. Ich lese tatsächlich immer mal mit.
Es ist tatsächlich so, dass ich einfach zu wenig Zeit habe und momentan mit meinen Modulen und deren Weiterentwicklung gut beschäftigt bin.  ;)
Und da ich influxDbLog selbst nicht einsetze, ist die Motivation nicht so dramatisch hoch. Bin eher im MySQL/MariaDB Umfeld tätig.
Eigentlich hatte ich vor einen DbLog-Nachfolger nur für MySQL über das Winterhalbjahr zu bauen, was sich wirklich nur um das Logging kümmert. Alles andere liegt im DbRep. Ich weiß nicht ob ich es noch schaffen werde.

Dann könnte man evtl. influxDb als noSQL mit integrieren. Es war nämlich mein Problem, dass die vielen Zusatzfunktionen die es seit langem im DbLog gibt, nicht mit einer noSQL harmonieren und schlecht programmtechnisch zusammengeführt werden können.
Bei einem neuen Modul könnte man es im Design berücksichtigen.

Mal schauen ... Aber vielleicht macht der Influx-Autor auch nur eine schöpferische Pause. :)

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

ChrisW

also ich als nichts mysql Profi finde dieses Influx echt super.
Die Auswertungen mit Grafana sind echt Kinderleich. Glaub wenn es da eine Schnitstelle direkt im dblog gibt werden das viel mehr benutzen.

DBlog und mysql funktioniert ja sehr gut. Influxdb hier legt leider mein FHEM lahm :(
Raspberry PI3 mit allem möglichen.

d.schoen

Hallo, ich war in der Tat länger nicht mehr da und das Modul auch nur so ein Testfeld.

Es freut mich natürlich, dass mein Modul Anklang findet. ,,Leider" bin ich kittlerweile aber auf OpenHAB umgestiegen.

Macht daher gern einen Fork und entwickelt das Modul nach euren Wünschen weiter.
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

Jede DB hat ihre Stärken und nicht für jeden Zweck ist jede DB gleich gut geeignet. Es gibt natürlich nicht nur Influx als noSQL, sondern  z.B. auch MongoDB und mehr.
Damit die Influx dein FHEM nicht ausbremst, wäre wahrscheinlich eine ähnliche Technik wie ich sie bei DbLog mit dem asynchronen Mode eingebaut habe, ausreichend. Allerdings kenne ich mich mit der InfluxDB nicht aus, müßte mich erst intensiv damit befassen.
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

kadettilac89

Zitat von: ChrisW am 27 Januar 2019, 21:11:56
Influxdb hier legt leider mein FHEM lahm :(

du kannst ja mal testen was plin gemacht hat. die idee hatte ich auch mal aber plin war schneller :)

mach dir eine 2. fhem instanz die nur dazu da ist, in influxdb zu schreiben. hauptinstanz mach normale arbeit, zweite instanz hat das influxdb device und schreibt. verbunden über fhem2fhem. ist ein asynchron-workaround.

MarkusN

Zitat von: plin am 27 Januar 2019, 15:39:00
Ich hätte da einen Wunsch fürs Modul selbst:

Bei nicht numerischen Werten gibt es Fehlermeldungen im Log. Die würde ich überspringen.

Praktisch wäre außerdem ein Mapping für den Status

  • on => 1
  • off => 0
  • open => 1
  • closed => 0
Sieht bei mir dann so aus:

diff 93_InfluxDBLog.pm 93_InfluxDBLog.pm.orig
114,121c114
<   my $value = $arr[1];
<   return if ! ( $value =~ /^[0-9,.E]+$/ );
<   $value = 1   if ( lc $value eq "on");       # state on
<   $value = 0   if ( lc $value eq "off");      # state off
<   $value = 1   if ( lc $value eq "open");     # contact open
<   $value = 0   if ( lc $value eq "closed");   # contact closed
<
<   my $data = "$arr[0],site_name=$NAME value=$value";
---
>   my $data = "$arr[0],site_name=$NAME value=$arr[1]";


VG plin

Habe das mal eingebaut, aber zumindest der state scheint dabei nicht geloggt zu werden. Funktioniert das so bei dir?
Mir ist auch aufgefallen dass offenbar keine negativen werte mit diesem Plugin geloggt werden. Kann das jemand bestätigen?

kadettilac89

Zitat von: MarkusN am 31 Januar 2019, 14:23:02
Habe das mal eingebaut, aber zumindest der state scheint dabei nicht geloggt zu werden. Funktioniert das so bei dir?
Mir ist auch aufgefallen dass offenbar keine negativen werte mit diesem Plugin geloggt werden. Kann das jemand bestätigen?

ich logge kein state da es m. e. keinen sinn macht. negative werte an sich habe ich aber in der db und diese werden auch in grafana angezeigt. s. angehängtem screenshot