wie bekomm ich die aktuelle Temperatur eines Sensors in die notify nach folgendem Beispiel?
define einheizen notify <HIER_DIE_AKTUELLE_TEMP> ...
Der w1 Temp-Sensor hat NAME:Wohnzimmer, NTFY_ORDER:50-Wohnzimmer und DEF:28-031581e0c8ff
schau einfach im eventmonitor wie die events aussehen die der Sensor liefert
hab ich, liefert z.b. "GPIO4 Wohnzimmer temperature: 19.875"
jetzt möchte ich, dass LED's geschaltet werden, wenn eine grenztemp erreicht wurde:
DEF "Wohnzimmer: temperature:.* {if(ReadingsVal("Wohnzimmer","temperature") > 19) { fhem("set LED_rot on") } else { fhem("set LED_blau on") }}"
spricht aber nicht an.
auf einer anderen Seite hab ich eine Lösung gefunden, wo die Eventzeile in ein Array geschossen wird, und das Array-Element mit der Soll-Temp verglichen wird - hat auch nicht funktioniert.
Habe nirgends einen Hinweis gefunden, wie ich den aktuellen temp-Wert übergebe. Ist das so ein Mirakel?
Schau doch bitte erst einmal nach, wie man die Funktion ReadingsVal() richtig benutzt. Dann klappts auch mit dem notify.
Vermutlich hast Du sogar eine Fehlermeldung im Log stehen.
Naja ich würde readingsval nicht bemühen, Du hast ja den Wert schon im Event.
in der DEF würde ich als erstes schreiben Wohnzimmer:temperature:.*
Im if könntest Du mit $EVTPARTx arbeiten versuch mal $EVTPART3 könnte aber auch 2 sein.
Gruß Otto
Ich verwende in solchen Abfragen auch immer ReadingsVal() denn da ist auch nach längerer Zeit beim Nachlesen noch klar ersichtlich, um welchen Wert es eigentlich geht.
@betateilchen Da hast Du Recht ;)
Hallo Otto!
Vielen Dank - $EVTPART war der entscheidende Hinweis. In diesem Fall "1" - verhält sich offenbar wie ein array.
Ich code schon länger perl, daher war der Rest dann einfach.
Wenn wir schon dabei sind: ich möchte die Raumtemp über eine App wählen - kannst du mir einen hinweis geben,
wo ich die entsprechenden codes (nicht die app) finde?
greets
Richtig: Das Array beginnt mit Null und ich war mir nicht sicher was alles wirklich zum Event zählt. Leerzeichen ist die Trennung.
Im Zweifelsfall schreibt man im ersten Durchgang $EVENT in das Logfile und dann nimmt man gezielt $EVTPART.
Mit den codes kann ich Dir nicht weiterhelfen. Ich stelle meine Temperaturen über die HM Wandthermostate oder über die Dropdown in der FHEM Oberfläche.
Gruß Otto