FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Frood42 am 16 April 2019, 22:54:25

Titel: userReadings tempdiff:temperature.* difference { ReadingsVal
Beitrag von: Frood42 am 16 April 2019, 22:54:25
Ich wollte die Überprüfung der Temperatur-Ausreißer die bisher so passiert:

defmod temp_kitchen_sens_korrektur notify temp_ki.*:temperature:.* {if ($EVTPART1 > 15 and $EVTPART1 < 40) {fhem("sleep 0.1;; setreading $NAME tempkorr $EVTPART1")}}


ein bisschen schlauer machen - und das Ganze von der Differenz zum Vorgänger Reading abhängig machen. Das wäre dann zu diesem Zeitpunkt des notify hoffentlich möglich.

Dazu erstelle ich ein userReadings am Temperatur Sensor und gedachte die Differenz, die dort gespeichert wird, in mein Notify mit einzubeziehen.
Nun nehme ich die Suche und die Command Ref: https://fhem.de/commandref_DE.html
Zitatattr myPowerMeter userReadings power differential { ReadingsVal("myPowerMeter","counters.A",0)/1250.0}

und mache daraus
attr temp_kitchen userReadings tempdiff:temperature.* difference { ReadinsVal("temp_kitchen","temperature",0) }

und kriege ein
ZitatError evaluating temp_kitchen userReading tempdiff: Undefined subroutine &main::ReadinsVal called at (eval 517) line 1.

Das verstehe ich nun wirklich nicht. Habe auch readingsNum versucht und ' anstatt " aber nee.  :o :o :o :o
Das entspricht doch jetzt echt einem Beispiel aus der Referenz, oder nicht!?
Titel: Antw:userReadings tempdiff:temperature.* difference { ReadingsVal
Beitrag von: mumpitzstuff am 16 April 2019, 23:29:55
Mach das doch mit einem Event aggregator:

attr temp_kitchen event-aggregator temperature::none:median:120

120 ist die Zeit in Sekunden, über die der Median berechnet werden soll. Die sollte so gewählt sein, das da mind. 3 Werte in der Zeit rein kommen.
Titel: Antw:userReadings tempdiff:temperature.* difference { ReadingsVal
Beitrag von: mumpitzstuff am 16 April 2019, 23:30:29
DOIF bietet auch sowas an.
Titel: Antw:userReadings tempdiff:temperature.* difference { ReadingsVal
Beitrag von: MadMax-FHEM am 17 April 2019, 03:19:28
Nur als Hinweis:

es heißt auch ReadingsVal und nicht ReadinsVal ;)

ZitatError evaluating temp_kitchen userReading tempdiff: Undefined subroutine &main::ReadinsVal called at (eval 517) line 1.

Gruß, Joachim
Titel: Antw:userReadings tempdiff:temperature.* difference { ReadingsVal
Beitrag von: Frood42 am 17 April 2019, 10:30:15
okay. Das mit dem ReadinsVal ist ein schlagendes Argument. Muss ein G beim copy'n'paste auf der Strecke geblieben sein  :o :o :o und das bestätigt auch dass zu viel Bildschirm irgendwann echt auf die Augen  :o geht...
Funktioniert jetzt. Das Posting hätte ich mir schon sparen müssen.

Vielen Dank für den Hinweis & Hilfe!!

Frood