FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: pi-user am 20 Februar 2016, 16:41:14

Titel: Wie kann man das Temperatur-Event registrieren?
Beitrag von: pi-user am 20 Februar 2016, 16:41:14
Hallo zusammen,

ich möchte nicht zu einem bestimmten Zeitpunkt den Temperaturwert eines Sensors abfragen, sondern nur dann, wenn der Temperaturwert sich geändert hat!

Wie kann man auf dieses Event reagieren und wie sehen die Parameter von der Funktion ReadingsVal aus, damit ich den Temperaturwert abfragen kann? 

Z.B.:

Der Temperaturwert hat sich gerade geändert ---> dann folgende Zeile ausführen:
if(ReadingsVal()) und so weiter..

Vielen Dank im Voraus. :)
Titel: Antw:Wie kann man das Temperatur-Event registrieren?
Beitrag von: marvin78 am 20 Februar 2016, 16:49:33
Deine Stichworte für die commandref sind event-on-change-reading und notify.
Titel: Antw:Wie kann man das Temperatur-Event registrieren?
Beitrag von: pi-user am 20 Februar 2016, 17:11:09
Wie kann ich verhindern, dass die Nachricht nicht ständig rausgeschickt wird? Ich möchte nur einmal die Benachrichtigung haben, bis der Wert sich verbessert hat.

define Kuehlschrank LaCrosse 19
attr Kuehlschrank IODev myJeeLink
attr Kuehlschrank event-min-interval state:600,battery:3600,temperature:300,humidity:300
attr Kuehlschrank event-on-change-reading state
attr Kuehlschrank event-on-update-reading .*
attr Kuehlschrank room Kuehlschrank
define FileLog_Kuehlschrank FileLog ./log/Kuehlschrank-%Y.log Kuehlschrank
attr FileLog_Kuehlschrank logtype text
attr FileLog_Kuehlschrank room LaCrosse


define Kuehlschrank notify Kuehlschrank:temperature:.* {\
   if(ReadingsVal("Kuehlschrank","temperature","") > 9) {\
     {fhem ("set PushMsg msg 'Kuehlschrank' 'Die Temperatur ist zu hoch' '' 0 ''")}\
}}
Titel: Antw:Wie kann man das Temperatur-Event registrieren?
Beitrag von: marvin78 am 20 Februar 2016, 17:16:52
Da kann vielleicht DOIF helfen. Das ist jedoch nicht mein Gebiet und wird es nicht werden.

Ich mache sowas, in dem ich einen Zähler in ein reading im Device schreibe (setreading) und diesen dann abfrage. Dieser wird dann ggf. zurück gesetzt, wenn nötig. Man könnte auch alternativ einen dummy nehmen und dessen Value als Zähler oder Flag verwenden. Manche schwören drauf, ich habe gerne so wenig Devices, wie möglich und verwende deshalb ein eigenes Reading im entsprechenden Device. So hat man auch alles an einem Platz.
Titel: Antw:Wie kann man das Temperatur-Event registrieren?
Beitrag von: pi-user am 20 Februar 2016, 17:38:55
Danke für den Tipp. Es sieht so aus, dass ich mich noch tiefer damit auseinander setzen muss, um drei Zeilen Code zu schreiben!