Hauptmenü

DBlog mit TYPE filtern

Begonnen von choetzu, 31 Januar 2018, 16:20:06

Vorheriges Thema - Nächstes Thema

choetzu

Hallo,

ich bin im Forum und bei Tante Google nicht fündig geworden. Ich möchte gerne, um die Logeinträge einzudämmen, nur von gewissen Devices eines speziellen TYPE loggen.. Ich habe folgendes versucht, was aber nicht geht.. WIe  wäre es richtig?

.*(FILTER=TYPE=myPoolcontroller):.*

danke für die Hilfe.
Lg TOm
Raspi3, EnOcean, Zwave, Homematic

kumue

mein Ansatz wäre
.*:FILTER=TYPE=myPoolcontroller:.*

aber sind deine Poolcontroller wirklich vom TYPE myPoolcontroller ?

choetzu

danke für die Antwort. das teste ich gleich.

hier meine Internals zum Type

Internals:
   DEF        IP login PW 300
   NAME       PoolController
   NR         79
   STATE      OK
   TYPE       myPoolcontroller
   hostname   IP NR
   interval   300
   name       PoolController
Raspi3, EnOcean, Zwave, Homematic

kumue

ein list .*:FILTER=TYPE=myPoolcontroller
sollte dir ja alle Devices des TYPE myPoolcontroller anzeigen...
dann noch :.* für alle Events .. so dachte ich mir das...

DS_Starter

Hallo zusammen,

im DbLog DEF werden die Angaben tatsächlich nur als Regex ausgewertet, DevSpec (https://fhem.de/commandref_DE.html#devspec) wirken an dieser Stelle nicht.

Dazu kann man in DbLog das (wahrscheinlich selten beachtete) Attribut "excludeDevs" verwenden. Hier kann eine Liste von Device, bzw. auch DevSpec, angegeben werden die vom Logging prinzipiell ausgeschlossen werden sollen. (ist höherwertig als die DEF Angabe)

In dem Beispielfall könntest du zunächst alles erlauben zu loggen, also im DEF:

.*:.*

und über das Attribut alles ausschließen was nicht vom Type myPoolcontroller ist:


attr ....excludeDevs TYPE!=myPoolcontroller


Du gibst aber nur TYPE an. Den Filter kannst du zusätzlich verwenden um weitere, feinere Abgrenzungen zu machen -> DevSpec-Commandref
So sollte es funktionieren was du möchtest.

Grüße
Heiko
Proxmox+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

choetzu

hallo zusammen, danke.

die Lösung von kumue hat in der Tat nicht funktioniert: ich hatte es wie folgt definiert:

.*:(temperature|humidity|co2|rain|wind|battery|dim|power|energy|frequency|luminance|Activity|state).*|Arlo_Dummy:.*|.*:FILTER=TYPE=myPoolcontroller:.*

ich werde deshalb wie vonn DS_Starter vorgeschlagen vorgehen, jedoch ohne ! bei TYPE=. Da ist dir vermutlich ein Schreibfehler unterloffen, oder?

Bei den zu berücksichtigenden Readings habe ich z.B. "wind" angegeben (siehe oben). Nun nimmt es mir alle Readings die "wind" im Wort haben. Ich möchte aber ausschliesslich das Reading "wind" und nix anderes.. Muss man da was spezielles angeben?
Raspi3, EnOcean, Zwave, Homematic

DS_Starter

#6
Schreibfehler nicht, vielleicht Verständnisfehler.
Also wenn du nur Devices loggen willst, die vom Typ myPoolcontroller sind, musst alle Devices in  "excludeDevs" angeben, die NICHT von diesem Typ sind. Deswegen schließe sie aus wenn Typ nicht myPoolcontroller:


attr ....excludeDevs TYPE!=myPoolcontroller


Im DEF würdest du angeben:


.*:wind


Das loggt von den nicht ausgeschlossenen Devices nur Readings, die genau "wind" heißen.
Mit verbose 4 siehst du übrigens Meldungen wenn/welche Devices vom Logging ausgeschlossen werden wenn ein Event verarbeitet wird.
Proxmox+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

choetzu

Zitat von: DS_Starter am 31 Januar 2018, 19:03:00


.*:wind


Das loggt von den nicht ausgeschlossenen Devices nur Readings, die genau "wind" heißen.
Mit verbose 4 siehst du übrigens Meldungen wenn/welche Devices vom Logging ausgeschlossen werden wenn ein Event verarbeitet wird.

herzlichen Dank. Das funktioniert bei mir noch nicht ganz. siehe Beispiel unten. Hier habe ich am Schluss .*:current gemacht. Und trotzdem nimmt es mir sämtliche Readings wie z.B: currentTitle (Sonos).

.*:(temperature|humidity|co2|rain|battery|dim|power|energy|frequency|luminance|Activity)|Arlo_Dummy:.*|.*:current

hmm, komisch..

Raspi3, EnOcean, Zwave, Homematic

DS_Starter

Der Regex-Filter von DbLog geht davon aus, dass der Regex in der Form:

<device name>:<event> 

angegeben ist. Das heißt der im DEF angegebene Regex wird mit dem oben angebenen Muster verglichen.
Versuche mal dein Regex möglichst nach diesem Muster auszurichten. Eine Möglichkeit wäre (ungetestet):


.*:(temperature|humidity|co2|rain|battery|dim|power|energy|frequency|luminance|Activity|current)|Arlo_Dummy:.*
Proxmox+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

choetzu

Danke für deine Geduld. Dein Vorschlag hatte ich auch schon probiert. Leider nimmt es auch die currenTrack Events von Sonos..

Woran das wohl liegen könnte?

Gesendet von iPhone mit Tapatalk
Raspi3, EnOcean, Zwave, Homematic

DS_Starter

Das war natürlich zu simpel von mir gedacht. Der Regex-Vergleich ist ja eine Mustersuche. Sobald "current" enthalten ist, ist die Suche wahr.
Probiers mal so (":" hinter current):


.*:(temperature|humidity|co2|rain|battery|dim|power|energy|frequency|luminance|Activity|current:)|Arlo_Dummy:.*


Der String muß nun "current:" sein, was bei currentTitle usw. nicht der Fall ist.

Grüße
Heiko
Proxmox+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