Notifizierung bei Unterschreitung eines Temperaturwertes

Begonnen von Alex85, 04 Dezember 2015, 12:32:38

Vorheriges Thema - Nächstes Thema

Alex85

Hallo zusammen,

wollte mir eine einfache Notifizierung erstellen, wenn die Warmwasssertemperatur <= Heizraumtemperatur ist.
Leider funktioniert es nicht wenn ich den temperatursensor (OneWire_Sensor1) auf einen Wert unter dem von OneWire_Sensor0 einstelle über:
set OneWire_Sensor1 19 oder auch set OneWire_Sensor1 19.00

Das hier ist die Definition der Überwachung:

#Überwachung: Heizung
define WarmwasserBetrieb dummy
attr WarmwasserBetrieb alias Warmwasserbereitung
attr WarmwasserBetrieb devStateIcon off:ampel_rot on:ampel_gruen
attr WarmwasserBetrieb event-on-change-reading state
attr WarmwasserBetrieb room Keller,Zentralheizung

define WarmwasserBetriebAn notify OneWire_Sensor1:state.* {fhem ("set WarmwasserBetrieb on") if (ReadingsNum("OneWire_Sensor1","state","") > (ReadingsNum("OneWire_Sensor0","state","") && Value("WarmwasserBetrieb") ne "on"))}

define WarmwasserBetriebAus notify OneWire_Sensor1:state.* {fhem ("set WarmwasserBetrieb off") if (ReadingsNum("OneWire_Sensor1","state","") <= (ReadingsNum("OneWire_Sensor0","state","") && Value("WarmwasserBetrieb") ne "off"))}

#Benachrichtigen bei zu niedriger Warmwassertemperatur: Hirschtal
define WarmwasserPushover notify WarmwasserBetrieb:off { system ("curl -s -F 'token=xyz' -F 'user=xyz' -F 'message=Warmwassertemperatur niedrig:\nHeizung überprüfen!' https://api.pushover.net/1/messages.json")}


Warum funktioniert das notify nicht?
Kann da jmd. einen Tipp geben? (vlt. auch wie ich das anders umsetzen könnte - brauche ich hier einen watchdog?)

rudolfkoenig

Um Hilfe zu Selbsthilfe zu geben:
- state wird normalerweise im notify _nicht_ verarbeitet, dazu ist ein Attribut notwendig
- Reading nicht mit Event gleichsetzen. Am besten den Event-Monitor beobachten, oder die Werte aus eventType bzw. Notify-Regexp-Wizard nehmen.
- Die von notify ausgefuehrten Befehle kann man direkt in der Eingabezeile ausfuehren, bzw. das notify mit einem passenden trigger selbst dazu veranlassen.

frank

ich denke, dass dein notify funktioniert.
die klammersetzung im if entspricht wahrscheinlich nicht dem, was du eigentlich möchtest. wahrscheinlich willst du dieses:

if ((ReadingsNum("OneWire_Sensor1","state","") > ReadingsNum("OneWire_Sensor0","state","")) && (Value("WarmwasserBetrieb") ne "on"))
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Alex85

Danke Frank.
Das war das Problem.
Jetzt scheint es zu funktionieren.