Wie kann man das Temperatur-Event registrieren?

Begonnen von pi-user, 20 Februar 2016, 16:41:14

Vorheriges Thema - Nächstes Thema

pi-user

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. :)

marvin78

Deine Stichworte für die commandref sind event-on-change-reading und notify.

pi-user

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 ''")}\
}}

marvin78

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.

pi-user

Danke für den Tipp. Es sieht so aus, dass ich mich noch tiefer damit auseinander setzen muss, um drei Zeilen Code zu schreiben!