LOGDB + SVG Plot + Texte

Begonnen von peter_w, 10 Mai 2022, 15:56:23

Vorheriges Thema - Nächstes Thema

peter_w

Hallo zusammen,

ich habe den Status eines Schalters den ich gerne plotten möchte. Die Daten kommen so rein:
2022-05-10_08:20:36 on
2022-05-10_14:05:50 set_off
2022-05-10_14:05:51 off
2022-05-10_14:13:02 set_on
2022-05-10_14:13:02 on
2022-05-10_14:13:21 set_toggle
2022-05-10_14:13:21 off


Mit der Zeile:

#logdb K_Dehumid3:state:::$val=~s/.*(on|off|ON|OFF).*/$1eq"on"?1:$1eq"ON"?1:0/eg

habe ich folgendes erreicht:

2022-05-10_08:20:36 1
2022-05-10_08:20:36 1
2022-05-10_14:05:50 0
2022-05-10_14:05:51 0
2022-05-10_14:13:02 1
2022-05-10_14:13:02 1
2022-05-10_14:13:21 set_toggle
2022-05-10_14:13:21 0


Also bleibt der Wert "set_toggle" unverändert und kann nicht geplottet werden. Das war der Startpunkt.
Was ich mir wünschen würde: alle Werte die nicht genau "on" oder "off" sind komplett zu entfernen (sind ja sonst doppelt) und nicht mit in den Plot zu übernehmen.
Leider habe ich keine Idee wie ich die in der SVG Datei komplett rausfiltern kann und die Suche hat mich auch nicht weiter gebracht.

Release  : 5.8
Raspberry Pi 3
CUL V 1.63 CSM868 HomeMatic (SCC)
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-SCo,HM-WDS10-TH-O

DS_Starter

#1
Hallo Peter,

Warum löscht du "set_toggle" nicht einfach aus der DB wenn du den Wert ohnehin nicht brauchst bzw. loggst "set_toggle" garnicht erst ?

LG
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

peter_w

Ich muss zugeben dass diese Frage ausgesprochen gut ist.
Bisher habe ich es mir beim Loggen sehr leicht gemacht und fast alles mitgeschnitten was es gab und u.a. grundsätzlich "state" mit geloggt.

./db.conf .*:(state|measured-temp|desired-temp|desiredTemperature|ValvePosition|valveposition|temperature|...


Kann ich im das am Gerät K_Dehumid3 mit DbLogExclude bewerkstelligen oder muß dass über DbLogInclude gehen ? Hättest du mal ein Beispiel  ?
Also nur "on" "off" soll rein und alles mit "set*" soll nicht rein wäre das Ziel.
Das in der DB nachträglich zu löschen bekomme ich hin.

Vielen Dank
Release  : 5.8
Raspberry Pi 3
CUL V 1.63 CSM868 HomeMatic (SCC)
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-SCo,HM-WDS10-TH-O

DS_Starter

DbLogExclude / DbLogInclude  wirken auf die Readings(namen) und können das filtern.
Du brauchst aber einen Filter auf einen bestimmten Wert, evtl. in Verbindung mit einem bestimmten Readingnamen.
Dazu kannst du Attr valueFn  im DbLog-Device bzw. DbLogValueFn in den Quelldevices verwenden.

Hier ein Beispiel zur Verwendung von valueFn  im DbLog Device:


attr <dblog> valueFn  {
  if ($READING eq "state" && $VALUE =~ /^set/xi) {
    $IGNORE=1;
  }
}


Das kann man beliebig ausbauen. Vergleiche dazu die Hilfe zu den Attributen im DbLog.

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

peter_w

Release  : 5.8
Raspberry Pi 3
CUL V 1.63 CSM868 HomeMatic (SCC)
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-SCo,HM-WDS10-TH-O