DbLogExclude nur Dezimalzahlen von einem Reading loggen

Begonnen von CoolTux, 28 Mai 2016, 16:27:56

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo Leute,

Ich wurde bei einem _Clima Kanal von einem Homematic Thermostaten das desired-temp gerne nur loggen lassen wenn Dezimalzahlen im Reading sind. Sowas wie on oder off soll nicht geloggt werden.
Aber alles was ich bis jetzt gefunden habe ist, das man wohl nur ganze Readings aus dem logg excluden kann. Ist dem wirklich so?



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Nach intensiver Suche und Analyse des Codes des Modulfiles bezieht sich das Exclude nur auf Readingsnamen. Die Regexp dann natürlich ebenfalls. Schade, filtern nach Werten geht leider nicht.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

marvin78

Das kannst du aber sicher im RegEx von DBLog erledigen oder? Ein anderer Weg wäre, userReadings zu verwenden und nur diese zu loggen. Dann kannst du besser steuern.

CoolTux

Dadurch das ich in DBlog die Readings als RegEx angebe und ich bei anderen Readings wiederum nicht nur Zählen haben will, ist das nach meinem Kenntnisstand nicht möglich.


./contrib/dblog/db.conf .*:(temperature|dewpoint|humidity|measured-temp|desired-temp|ValvePosition|smoke.*|level|.*battery|energy.*|power.*|kWh|stat.*|teamCall|Diesel|SuperE10|deviceState|presence|recentAlarm|download|upload|ping).*


userReadings würden sicherlich gehen. Dachte aber geht einfacher.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich hatte nun endlich Zeit mir alles in Ruhe an zu schauen.
Kurz mein Hintergrund.
Ich habe meine Heizung auf Sommermodus umgestellt und somit desired-temp auf on gestellt. Nun habe ich diverse Fehlermeldungen bekommen.

1.

2016.05.29 18:14:41 1: PERL WARNING: Argument "on" isn't numeric in subtraction (-) at (eval 59041) line 1.

2.

2016.05.29 18:34:15 1: PERL WARNING: Argument "on" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1502


Die Fehlermeldungen hängen aber nicht miteinander direkt zusammen wie ich immer dachte.
Nummer ein kommt von meinen Heizungsthermostat ReadingsGroups, wo einige Formatierungen und Berechnungen von desired-temp gemacht werden. Also habe ich folgendes gemacht

valueSuffix  {"desired-temp"=>'{ return "" if( $VALUE eq "off");;return "" if( $VALUE eq "on");; return " °C";;}', "measured-temp"=>" °C", "ValvePosition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)", "batteryLevel"=>" (".ReadingsVal($DEVICE,$READING,0)." V)"}

und

valueStyle  {if ($READING eq "measured-temp") {my $t=$VALUE;; my $d=ReadingsVal($DEVICE,'desired-temp',0);; $d=0 if($d eq "on" or $d eq "off");; if($t-$d>=1) {'style="color:rgb(251,63,11);;"'}elsif($t-$d<=-1) {'style="color:rgb(79,58,251);;"'}else{'style="color:rgb(12,251,12);;"'}}}


Damit hatte ich dann schon mal die Meldung 1 weg bekommen.
Nun noch zu Fehler 2 und zum Thema Plot schreiben. Ein Plot kann nur mit Zahlen als Daten was anfangen, alles andere muß man umwandeln. Genau das war mein Problem. Mein Plot konnte mit on nichts anfangen. Daher


HeizungsThermostatBadezimmer_Cli:desired-temp:::$val=($val=~'on'?10:$val)


Ist der Wert von desired-temp on dann mach daraus eine 10. Fertig. Alle Fehlermeldungen sind weg.





Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net