Umbiegen von "ungültigen" Werten im Plot (Verwendung von logProxy und DbLog)

Begonnen von Joker, 17 April 2015, 19:35:34

Vorheriges Thema - Nächstes Thema

Joker

Hallo,
ich habe jetzt gerade ne Ewigkeit im Forum rumgesucht und diverse ähnliche Probleme gefunden, aber ich kapiere noch nicht was ich machen muss.

Szenario: Seit heute habe ich meine Heizung ausgestellt und meine Heizkörperthermostate (Homematic CC-RT-DN) in den "Frostschutzmodus" gefahren, soll heißen die desired-temp steht nun auf "off".

Natürlich bekomme ich nun folgende Fehlermeldungen im Log, wenn ich meine Plots anzeige:
2015.04.17 19:27:52 1: PERL WARNING: Argument "off" isn't numeric in subtraction (-) at (eval 14364) line 1.

Die sinnvollste Lösung wäre ja nun wahrscheinlich, dem SVG-Modul zu sagen, es soll "off" (und auch "on") einfach als "0" interpretieren. Wie/wo/was muss ich da jetzt tun? Die betreffende Zeile im Plot-File sieht so aus:
#lp DbLog:myDbLog:Wohnzimmer.Wandthermostat.Climate:desired-temp

chris1284

Zitat von: Joker am 17 April 2015, 19:35:34
Die sinnvollste Lösung wäre ja nun wahrscheinlich, dem SVG-Modul zu sagen, es soll "off" (und auch "on") einfach als "0" interpretieren. Wie/wo/was muss ich da jetzt tun? Die betreffende Zeile im Plot-File sieht so aus:

das muss in dblog geändert werden. filelog behandelt diese meldungen schon seit geraumer zeit vernüntig, dblog nicht.
der maintainer von dblog, tobias, wurde darauf wohl schon einige male hingewiesen....

http://forum.fhem.de/index.php/topic,28838.msg216580.html#msg216580

stromer-12

Zitat von: Joker am 17 April 2015, 19:35:34
Szenario: Seit heute habe ich meine Heizung ausgestellt und meine Heizkörperthermostate (Homematic CC-RT-DN) in den "Frostschutzmodus" gefahren, soll heißen die desired-temp steht nun auf "off".

Ich setze bei mir "on" auf 27 und "off" auf 5 mit folgenden Code:
#lp DbLog:myDbLog:Wohnzimmer.Wandthermostat.Climate:desired-temp:0::$val=~s/(on|off).*/$1eq"on"?27:5/eg

Gruß
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

chris1284

schöner workaround aber irgend wie nicht zielführend da man dies für jedes device wiederholen muss was man evtl plotten will und es nicht nur zahlen liefert....

stromer-12

DbLog hat sowieso schon sehr viele Workarounds drin. Bei FBDECT musste ich auch nachhelfen, damit die Statistic Werte mit gespeichert werden.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

vbs

Zitat von: chris1284 am 19 April 2015, 11:09:52
schöner workaround aber irgend wie nicht zielführend da man dies für jedes device wiederholen muss was man evtl plotten will und es nicht nur zahlen liefert....
Wenn man die gplot-Files als Templates auslegt, braucht man nicht für jedes Device ein eigenes gplot-File. Das kann man dann parametrisiert aufrufen. Ist natürlich weiterhin ein Workaround...

justme1968

was soll daran workaround sein?

plots sind dazu da numerische daten zu visualisieren. wenn man bestimmte nicht numerische werte hierbei auf bestimmte numerische werte abbilden möchte muss man das individuell machen. woher soll dblog wissen welche werte der anwender haben will. 27 und 5 sind nun wirklich nicht die allgemein gültigen on und off werte.

hierbei über $val zu gehen ist der offizielle weg.

universell wäre höchstens ewas wie die quersumme über die ascii werte. aber das ist ganz sicher nicht sinnvoll.

gruß
  andre

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

chris1284

fillog unterbindet auch die fehlermeldungen bei nicht numerichen werten. ergo müsste man nur prüfen ob der rückgabewert numeri
Zitat von: justme1968 am 19 April 2015, 15:08:42
woher soll dblog wissen welche werte der anwender haben will.
muss es garnicht. es reicht es wenn es numeriche werte liefert und nicht numerische halt nicht. selbe plots aus filelog bringt die meldungen jedenfalls nicht...

Zitat von: justme1968 am 19 April 2015, 15:08:42
plots sind dazu da numerische daten zu visualisieren.

würde ich so nicht sagen. plots generell erstmal da um daten zu visualisieren (nicht nur numerische, ich könnt auch on/off einer lampe plotten)

vbs

Mal ne blöde Frage, ich kann dazu absolut nix finden. Weder bei Google, noch im Wiki/commandref, noch in der Suche: Was genau bedeutet denn "off" und "on" als Wert für desired-temp?

Joker

Das steht in der Anleitung zum CC-RT-DN.

off heißt das Ventil is komplett zu, es wird lediglich geöffnet wenn Frostgefahr besteht
on heißt komplett auf, nur Verkalkungsschutz aktiv. Das ist für Heizpausen gedacht, also wenn im Sommer die Heizung aus ist.

Ich werde mal den "Workaround" ausprobieren. Bin selber noch unschlüssig wie das allgemein zu lösen ist. Aber ich denke es wäre gut wenn dblog und filelog sich da gleich Verhalten würden.

stromer-12

Zitat von: chris1284 am 19 April 2015, 16:10:23
fillog unterbindet auch die fehlermeldungen bei nicht numerichen werten. ergo müsste man nur prüfen ob der rückgabewert numerimuss es garnicht. es reicht es wenn es numeriche werte liefert und nicht numerische halt nicht. selbe plots aus filelog bringt die meldungen jedenfalls nicht...

Aber ich glaube auch nur wenn bei FileLog der logtype "fht" mitgegeben wird. Bei logtype "text" wird es auch Fehlermeldungen geben.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Tobias

Zitat von: justme1968 am 19 April 2015, 15:08:42
was soll daran workaround sein?

plots sind dazu da numerische daten zu visualisieren. wenn man bestimmte nicht numerische werte hierbei auf bestimmte numerische werte abbilden möchte muss man das individuell machen. woher soll dblog wissen welche werte der anwender haben will. 27 und 5 sind nun wirklich nicht die allgemein gültigen on und off werte.

hierbei über $val zu gehen ist der offizielle weg.

universell wäre höchstens ewas wie die quersumme über die ascii werte. aber das ist ganz sicher nicht sinnvoll.

gruß
  andre

Andre hat recht, hat im DBLog Modul nichts zu suchen. Schließlich kommt "off" vom Modul und so wird es auch geloggt. Wenn man die Werte nicht haben will muss man in der Plotfunction diese Werte "umbiegen auf sinnvolle werte. Wie und wohin ist jeden selbst überlassen und kann ich mit dblog nicht vorschreiben.
Genau dafür habe ich die Arithmetik im letzten Parameter implementiert
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter