Hauptmenü

Temperatur nach Notify

Begonnen von saxandl, 27 Januar 2016, 10:22:11

Vorheriges Thema - Nächstes Thema

saxandl

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





Otto123

schau einfach im eventmonitor wie die events aussehen die der Sensor liefert
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

saxandl

#2
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?

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

#4
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

@betateilchen Da hast Du Recht  ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

saxandl

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

Otto123

#8
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz