FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Eisix am 08 Dezember 2016, 11:55:32

Titel: UserReading filter für Messwert Ausreißer
Beitrag von: Eisix am 08 Dezember 2016, 11:55:32
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
Titel: Antw:UserReading filter für Messwert Ausreißer
Beitrag von: igami am 08 Dezember 2016, 12:42:26
ich glaube suppressReadings ist dafür gedacht
Titel: Antw:UserReading filter für Messwert Ausreißer
Beitrag von: Eisix am 08 Dezember 2016, 13:30:08
Ist das nicht um das komplette Reading zu unterdrücken?
Ich möchte ja nur bestimmte Values eines Readings ausfiltern.
Titel: Antw:UserReading filter für Messwert Ausreißer
Beitrag von: igami am 08 Dezember 2016, 15:54:27
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.
Titel: Antw:UserReading filter für Messwert Ausreißer
Beitrag von: Eisix am 09 Dezember 2016, 17:56:45
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