FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: sampix am 29 November 2015, 10:22:07

Titel: HM-CC-RT-DN Benachrichtigung
Beitrag von: sampix am 29 November 2015, 10:22:07
Hallo zusammen,

ich möchte bei meinem Heizkörperthermostat (HM-CC-RT-DN) eine SMS-Benachrichtigung erhalten, sobald die gemessene Temperatur (measured-temp) über 25° steigt.

Folgenede Versuche sind leider gescheitert:


define WZTempDummy dummy

attr WZTempDummy event-on-change-reading state

define WZTemp notify WZ_Heizung_Clima:T.* { if(ReadingsVal("WZ_Heizung_Clima","T","") > 25.0) { fhem("set WZTempDummy zuwarm");;}}

define WZTempAlert notify WZTempDummy:zuwarm {system ('sudo /opt/fhem/pushbullet.sh&');;}


oder :


define WZTempDummy dummy

attr WZTempDummy event-on-change-reading measured-temp

define WZTemp notify WZ_Heizung_Clima:measured-temp.* { if(ReadingsVal("WZ_Heizung_Clima","measured-temp","") > 25.0) { fhem("set WZTempDummy zuwarm");;}}

define WZTempAlert notify WZTempDummy:zuwarm {system ('sudo /opt/fhem/pushbullet.sh&');;}


Kann mir jemand helfen, vielen Dank im Voraus !

Gruß
sam

Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: dev0 am 29 November 2015, 10:34:02
Wird das notify getriggert? Wenn ja, wird die if Bedingung durchlaufen? Gibt es eine Fehlermeldung im fhem-log, wenn das notify getriggert wird?
Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: sampix am 29 November 2015, 10:53:00
Ja notify wird getriggert und obwohl ich mehrmals in die Logfile reingeschaut habe, habe diese Zeile übersehen :

PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 872) line 1.

Gruß
sam
Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: dev0 am 29 November 2015, 10:55:28
Versuch es mit gt statt >
Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: sampix am 29 November 2015, 11:11:02
Jetzt gibt es keine Fehlermeldung mehr, aber auch keine Benachrichtigung, das Skript pushbullet.sh funktioniert ...

Gruß
Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: dev0 am 29 November 2015, 11:18:42
Wird die if Bedingung durchlaufen?
Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: sampix am 29 November 2015, 12:00:02
Nein, ich glaube nicht, in der Logfile gibt es keinen Hinweis darauf !

Gruß
sam
Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: marvin78 am 29 November 2015, 12:06:55
Es sieht so aus, als hätte dein Device WZ_Heizung_Clima kein Reading T. Und wenn du einen numerischen Wert auswerten möchtest, macht es zum einen Sinn, ReadingsNum und wenn ReadingsVal, dann als Fallback-Wert keinen String zu verwenden.
Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: dev0 am 29 November 2015, 12:37:34
Zitat von: marvin78 am 29 November 2015, 12:06:55
ReadingsNum
Definitiv besser, hatte ich nicht dran gedacht.
Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: sampix am 29 November 2015, 13:06:06
Mit ReadingsNum funktioniert die if-Anweisung auch nich, falls der Syntax mit ReadingsNum stimmt :)


define WZTempDummy dummy

attr WZTempDummy event-on-change-reading state

define WZTemp notify WZ_Heizung_Clima:T.* { if(ReadingsNum("WZ_Heizung_Clima","T","") gt 20.0) { fhem("set WZTempDummy zuwarm");;}}

define WZTempAlert notify WZTempDummy:zuwarm {system ('sudo /opt/fhem/pushbullet.sh&');;}




Bei WZ_Heizung_Clima unter Readings steht z.B.  :

state T: 24 desired: 22.0 valve: 0
measured-temp 24.0

Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: dev0 am 29 November 2015, 13:23:11
Wenn ReadingsNum, dann auch wieder ">" statt "gt". Versuch auch besser auf measured-temp zu triggern als auf T, was vermutlich eher reading "state" als "T" ist. Mit Log oder Log3 kannst Du das auch selbst gut debuggen.
Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: sampix am 29 November 2015, 14:07:33
Leider keine Änderung :



define WZTempDummy dummy

attr WZTempDummy event-on-change-reading state

define WZTemp notify WZ_Heizung_Clima:measured-temp.* { if(ReadingsNum("WZ_Heizung_Clima","measured-temp","") > 20.0) { fhem("set WZTempDummy zuwarm");;}}

define WZTempAlert notify WZTempDummy:zuwarm {system ('sudo /opt/fhem/pushbullet.sh&');;}


In der Log 5 steht :

Triggering WZ_Heizung_Clima (9 changes)
Notify loop for WZ_Heizung_Clima ValvePosition: 0
Triggering WZTemp
WZTemp exec { if(ReadingsNum("WZ_Heizung_Clima","measured-temp","") > 20.0) { fhem("set WZTempDummy zuwarm");;}}
Cmd: >{ if(ReadingsNum("WZ_Heizung_Clima","measured-temp","") > 20.0) { fhem("set WZTempDummy zuwarm");}}<
Cmd: >set WZTempDummy zuwarm<
dummy set WZTempDummy zuwarm


Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: frank am 29 November 2015, 17:26:26
dummy set WZTempDummy zuwarm
das notify funktioniert doch.

vielleicht fehlt deinem dummy das attr setList.
Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: Hollo am 29 November 2015, 17:47:14
Verständnis-Frage:
Warum mit einem notify einen Dummy setzen und mit einem notify auf diesen Dummy dann eine Aktion ausführen?
Kann man nicht direkt measured-temp: 25.0 als Bedingung nehmen und dann die Nachricht schicken?
Titel: Antw:HM-CC-RT-DN Benachrichtigung
Beitrag von: sampix am 29 November 2015, 22:38:06
@Hollo

Es war sehr einfach ohne dummy zu lösen :)

Gruß
sam