Hallo,
ich möchte falsche Temperaturwerte eines Sensors ausfiltern mit einem UserReading.
userReadings temp Sensor_aussen:temperature[-]{0,1}[0-4]{0,1}\d.\d C
userReadings temp { (ReadingsVal ("Sensor_aussen","temperature","")[-]{0,1}[0-4]{0,1}\d.\d C) }
Beide Varianten funktionieren nicht. Ich habe noch nicht verstanden wie ich das ganze durch die regex jage. Kann mir jemand auf die Sprünge helfen.
Gruß
Eisix
ich glaube suppressReadings ist dafür gedacht
Ist das nicht um das komplette Reading zu unterdrücken?
Ich möchte ja nur bestimmte Values eines Readings ausfiltern.
Ich verwende es selbst nicht, aber da in der commandref steht, dass die zu unterdrückenden readings als regex angegeben werden müssen sollten auch auch nur bestimmte Werte aus filtern lassen
Edit: Habe mir eben den Thread dazu durchgelesen, es unterdrückt doch nur komplette readings, also kannst du das nicht verwenden.
Nach wilder Perl Suche kam ich zu diesem Ansatz der aber auch nicht funktioniert :-\
userReadings URtemperature {$mystring = {ReadingsVal("Sensor_aussen","temperature",0);;}; if($mystring =~ m/[-]{0,1}[0-4]{0,1}\d.\d C/) {print $mystring;}}
Dann noch die DOIF Variante aus der doku, geht auch nicht :-\
userReadings URtemperature [Sensor_aussen:temperature:"([-]{0,1}[0-4]{0,1}\d.\d C)":$1]
Fehlt da irgendwo noch noch eine Klammer oder ein Semikolon?
Gruß
Eisix