FHEM Forum

FHEM => Automatisierung => Thema gestartet von: peter_w am 10 Mai 2022, 15:56:23

Titel: LOGDB + SVG Plot + Texte
Beitrag von: peter_w am 10 Mai 2022, 15:56:23
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.

Titel: Antw:LOGDB + SVG Plot + Texte
Beitrag von: DS_Starter am 10 Mai 2022, 17:46:09
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
Titel: Antw:LOGDB + SVG Plot + Texte
Beitrag von: peter_w am 10 Mai 2022, 18:18:43
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
Titel: Antw:LOGDB + SVG Plot + Texte
Beitrag von: DS_Starter am 10 Mai 2022, 18:34:45
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
Titel: Antw:LOGDB + SVG Plot + Texte
Beitrag von: peter_w am 10 Mai 2022, 19:16:43
Super, vielen Dank.