Neues Modul InfluxDBLogger

Begonnen von timmib, 07 Oktober 2020, 23:31:09

Vorheriges Thema - Nächstes Thema

Omega

Danke!
Habe zwar 'ne Weile gebraucht, bis ich das fehlerfrei in 99_myUtils umgesetzt hatte aber es funktioniert - freu.
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

timmib

Es werden nun https://fhem.de/commandref.html#readingFnAttributes unterstützt. (Danke nochmal an gvzdus)
Damit lassen sich die Events des Loggers selber unterdrücken.

meier81

Hab jetzt das Modul auch am laufen und bin fleißig am testen. Hab eine Frage zu "readingInclude": Ich habe bei mir die "readingInclude" folgendermaßen gesetzt:

\b(temperature|humidity|dewpoint|absoluteHumidity|pct|brightness|rainRate|wind|pressureAbs|Power_.*__kW|DesiredSupplyTemp|OutdoorTemp|Power|PowerModulation|PumpModulation|ReturnTemp|SupplyTemp|WaterDesiredTemp|WaterTemp|ENERGY_Power)\b


Jetzt habe ich in meinen Tasmota-MQTT-Devices das reading "TELEMETRY". Dieses entspricht ja keineswegs der readingInclude-Definition von oben, trotzdem bekomme ich die Meldung
dropped_writes_last_message   Trockner TELEMETRY {"Time"

Im reading "TELEMETRY" steht folgendes:
{"Time":"2020-12-17T21:41:25","ENERGY":{"TotalStartTime":"2019-01-22T17:26:26","Total":814.368,"Yesterday":2.379,"Today":0.413,"Period":0,"Power":0,"ApparentPower":0,"ReactivePower":0,"Factor":0.00,"Voltage":231,"Current":0.000}}

Hier findet sich der Name "Power" wieder vom "readingInclude", der hat ja aber eigentlich nichts mit dem reading-Namen zu tun, ist ja der Inhalt des readings.

Könnte das evtl. noch ein Fehler sein, hab das jetzt erstmal beim "readingExclude" gesetzt, denke aber das sollte ohne readingExclude auch nicht kommen.

Ansonsten erstmal alles super, super Modul  :)
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices || mehrere Homematic-IP und Homematic-Devices

meier81

Was mir eben zudem aufgefallen ist, es ist nicht möglich eine "readingInclude"-Definition mit ^ am Anfang und $ am Ende zu machen, das habe ich ansonsten häufig verwendet, musste ich hier auch mit \b am Anfang und am Ende machen.
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices || mehrere Homematic-IP und Homematic-Devices

meier81

#94
Zitat von: meier81 am 17 Dezember 2020, 21:46:41
Jetzt habe ich in meinen Tasmota-MQTT-Devices das reading "TELEMETRY". Dieses entspricht ja keineswegs der readingInclude-Definition von oben, trotzdem bekomme ich die Meldung
dropped_writes_last_message   Trockner TELEMETRY {"Time"

Hab gesehen warum das so ausgewertet wird, hast du ja in der commandref angegeben
Hinweis - das Format eines Ereignisses sieht so aus: 'state: on'

Zitat von: meier81 am 17 Dezember 2020, 22:38:13
Was mir eben zudem aufgefallen ist, es ist nicht möglich eine "readingInclude"-Definition mit ^ am Anfang und $ am Ende zu machen, das habe ich ansonsten häufig verwendet, musste ich hier auch mit \b am Anfang und am Ende machen.

Hat sich dadurch natürlich auch geklärt, das geht so dann natürlich auch nicht.

Ist es aber nicht sinnvoller das wirklich nur auf den reading-Namen zu beschränken, weiß leider nicht wie aufwändig das ist dies einzufügen.

Gruß Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices || mehrere Homematic-IP und Homematic-Devices

Omega

Gibt es Probleme mit Dummy-Devices?

Ich habe folgende Definition:
Internals:
   CFGFN     
   DATABASE   SmartMeter
   DEF        http://192.168.33.181:8086 SmartMeter sm.Heizungskeller,sm.Vorratskeller, d.PV
   FUUID      5fdccb3f-f33f-4155-18e0-b52e424fbb7b6c91
   NAME       influxDB.SmartMeter
   NOTIFYDEV  sm.Heizungskeller,sm.Vorratskeller,
   NR         67
   NTFY_ORDER 50-influxDB.SmartMeter
   STATE      Statistics: t=1387 s=155 f=0
   TYPE       InfluxDBLogger
   URL        http://192.168.33.181:8086
   READINGS:
     2020-12-18 16:47:57   state           Statistics: t=1387 s=155 f=0
     2020-12-18 16:47:57   succeeded_writes 155
     2020-12-18 16:47:57   total_writes    1387
Attributes:
   fields     $READINGNAME=$READINGVALUE
   measurement $DEVICE
   readingExclude total_feed_old
   room       Server
   tags       -


Änderungen von Readings im Dummy-Device d.PV werden nicht geloggt.
Auch das Internal "NOTIFYDEV" ignoriert das Device d.PV.
Auch nach einem shutdown restart finde ich folgenden Hinweis im Log:
020.12.18 16:31:11 3: InfluxDBLogger: [influxDB.SmartMeter] defined with server http://192.168.33.181:8086 database SmartMeter notifydev sm.Heizungskeller,sm.Vorratskeller,
wobei das Device d.PV auch hier nicht aufgeführt wird.
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

meier81

Zitat von: Omega am 18 Dezember 2020, 16:56:24
Internals:
   DEF        http://192.168.33.181:8086 SmartMeter sm.Heizungskeller,sm.Vorratskeller, d.PV

Du hast da ein Leerzeichen vor d.PV, das geht so natürlich nicht, probier das mal ohne.

Gruß

Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices || mehrere Homematic-IP und Homematic-Devices

Omega

Danke! Jetzt geht alles. Super
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

Wurstwasser

Mit dem Alias als Tag funktioniert wunderbar, wenn man Leerzeichen ersetzt. Danke!

baumix

Moin zusammen,

bevor ihr hier zu macht und ich das gut finden kann (die Idee an sich ist super!): entweder bin ich zu doof oder ich übersehe etwas Essentielles:

Internals:
   CFGFN     
   DATABASE   fhem
   DEF        http://influxdb.local.domaene.de:8086 fhem Heinzelmann:(battery|cleaning|consumables|device|error|event|fan|history_0|in|last|state|total|wifi).*
   FUUID      5ff88972-f33f-dfd6-553e-22f8ff02f7a138c6
   NAME       dbloginflux
   NOTIFYDEV  Heinzelmann:(battery|cleaning|consumables|device|error|event|fan|history_0|in|last|state|total|wifi).*
   NR         713
   NTFY_ORDER 50-dbloginflux
   STATE      Statistics: t=0 s=0 f=0 e=0
   TYPE       InfluxDBLogger
   URL        http://influxdb.local.domaene.de:8086
   passwd     saved
   READINGS:
     2021-01-08 17:42:52   dropped_writes  0
     2021-01-08 17:42:52   dropped_writes_last_message <none>
     2021-01-08 17:42:52   failed_writes   0
     2021-01-08 17:42:52   failed_writes_last_error <none>
     2021-01-08 17:42:52   state           Statistics: t=0 s=0 f=0 e=0
     2021-01-08 17:42:52   succeeded_writes 0
     2021-01-08 17:42:52   total_events    0
     2021-01-08 17:42:52   total_writes    0
Attributes:
   alias      Datenbank-Log InfluxDB neu
   api        v1
   conversions open=1,closed=0,tilted=2,true|on|yes=1,false|off|no=0
   disable    0
   icon       security
   readingInclude .*
   room       92_Database
   security   basic_auth
   username   fhem
   verbose    5


Ich nutze die Version, die mit fhem kommt. Was muss ich den mindestens konfigurieren, damit das funktioniert? Hier wird noch nicht mal versucht, eine Verbindung zur Datenbank aufzubauen. Im Log sehe ich nur ganz selten mal:


2021.01.08 18:22:33 5: InfluxDBLogger: [dbloginflux] set ?
2021.01.08 18:22:41 5: InfluxDBLogger: [dbloginflux] set ?


Die devspec habe ich schon massiv reduziert, die funktioniert unter influxlog aber ohne Probleme. Aber selbst die Minimal-Variante ändert nichts ... Events kommen definitiv ...
Hostname habe ich mehrfach geprüft, Usernamen und Passwort auch ... aber selbst mit falschem Account müsste ich zumindest mal Pakete auf Port 8086 rausgehen/ankommen sehen, selbst das ist nicht der Fall. Laut Stats wird es aber auch gar nicht versucht. Definition gelöscht und neu angelegt, keine Änderung ...
Wäre für jeden Tipp dankbar!

Grüße und danke

Baumix

meier81

Hallo Baumix,

ich glaube dein Problem könnte sein das du bei der Definition
http://influxdb.local.domaene.de:8086 fhem Heinzelmann:(battery|cleaning|consumables|device|error|event|fan|history_0|in|last|state|total|wifi).*
schon die Readings mit angibst, laut commandref werden hier aber nur die Devices angegeben. Müsste dann bei dir so aussehen:
http://influxdb.local.domaene.de:8086 fhem Heinzelmann

und dann definierst du noch das Attribut "readingInclude":
readingInclude (battery|cleaning|consumables|device|error|event|fan|history_0|in|last|state|total|wifi)

Hab dir mal meine Definition angehängt:
Internals:
   DATABASE   fhem
   DEF        http://127.0.0.1:8086 fhem Fuehler.*,Rolladen.*,Wetterstation,Strom_Haus,Buderus,Waschmaschine,Trockner
   FUUID      5fdb0036-f33f-c2d2-c41a-42af5de16fb6d519
   FVERSION   93_InfluxDBLogger.pm:0.233660/2020-12-16
   NAME       InfluxDB
   NOTIFYDEV  Fuehler.*,Rolladen.*,Wetterstation,Strom_Haus,Buderus,Waschmaschine,Trockner
   NR         244
   NTFY_ORDER 50-InfluxDB
   STATE      Statistics: t=143007 s=143006 f=1 e=223830
   TYPE       InfluxDBLogger
   URL        http://127.0.0.1:8086
   READINGS:
     2020-12-31 05:38:27   dropped_writes  24
     2020-12-31 05:38:27   dropped_writes_last_message Wetterstation temperature n/a
     2020-12-21 01:29:22   failed_writes   1
     2020-12-21 01:29:22   failed_writes_last_error read from http://127.0.0.1:8086 timed out
     2021-01-08 21:32:52   state           Statistics: t=143007 s=143006 f=1 e=223830
     2021-01-08 21:32:52   succeeded_writes 143006
     2021-01-08 21:32:52   total_events    223830
     2021-01-08 21:32:52   total_writes    143007
Attributes:
   conversions closed=0,open=1,tilted=2,false|off|no=0,true|on|yes=1
   deviceTagName device_name
   icon       time_note
   readingExclude TELEMETRY|ASC_ShadingMessage|command
   readingInclude \b(temperature|humidity|dewpoint|absoluteHumidity|pct|brightness|rainRate|wind|pressureAbs|Power_.*__kW|DesiredSupplyTemp|OutdoorTemp|Power|PowerModulation|PumpModulation|ReturnTemp|SupplyTemp|WaterDesiredTemp|WaterTemp|ENERGY_Power)\b


Die "\b" am Anfang und am Ende habe ich dazugemacht das wirklich nur readings benutzt werden die wirklich genauso heißen und nicht z.B. windGusts

Gruß

Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices || mehrere Homematic-IP und Homematic-Devices

baumix

Hallo Markus,

danke für die prompte Hilfe, das habe ich doch tatsächlich überlesen und bin einfach davon ausgegangen, dass es wie bei logdb und influxlog gehandhabt wird ...  :-[
Dank Deines Beispiels läuft das jetzt. Da habe ich ja noch einiges an Arbeit vor mir, um das wieder auseinander zu dröseln.
Ich verstehe das aber richtig, dass ich dann keine direkte Zuordnung mehr zwischen den Devices und den Readings habe, d. h. in den einem Device z. B. nur das Reading "temperature" und in dem anderen nur das Reading "humidity" geht dann nicht, sondern immer nur beides? Ich kann das natürlich über die Events in den Devices steuern  8)

Dann werde ich das mal am Wochenende ausführlich testen ...

Danke und schönes Wochenende

Baumix

fischit

Oder du machst dir mehrere influxdblogger devices

timmib

Zitatbevor ihr hier zu macht

Hallo,

ich plädiere weiterhin dazu, diesen Thread zu schliessen und alles Weitere in eigenen Threads zu behandeln.

Kostet ja nix und ich beobachte auch das komplette Subforum deswegen.

Viele Grüße

Tim

MarkusN

Sind conversions case sensitive oder würde folgende definition auch ein ON zu 1 übersetzen?


true|on|yes|open|opened=1,false|off|no|close|closed=0


Für mich sieht es so aus als wäre es case sensitive, will aber ein Fehler auf meiner Seite nicht ausschliessen.