Pushover mit Klingeltaster

Begonnen von Kakaomonster, 07 März 2014, 09:22:09

Vorheriges Thema - Nächstes Thema

Kakaomonster

Guten Morgen,

ich hoffe auf Eure Hilfe bei einem vermutlichen Denkfehler. Follgendes:

Ich möchte, dass ich ein Pushover über den Dienst Pushover.net an mein iPhone gesendet bekomme, wenn die Klingel betätigt wird.(In diesem Fall die Haustürklingel) Mein Eintrag in die FHEM.cfg sieht wie folgt aus:

define Pushover2 Pushover TOKEN USERCODE

define Klingeltaster.LastReactTime IT 000000000F FF F0
attr Klingeltaster.LastReactTime room hidden

define Klingeltaster.Notify notify Klingeltaster {\
my $now = time;;\
my $lastReactTime = Value("Klingeltaster.LastReactTime");;\
if ($lastReactTime + 5 < $now)\
{\
fhem("set Klingeltaster.LastReactTime $now");;\
fhem("set Pushover2 msg 'Wohnung' 'Es hat geklingelt!' '' 0 ''");;\
}\
}


Nach einem reloadfhem.cfg und dem Betätigen des Tasters auf der Weboberfläche (bin remote, daher das Klingeln nur per fhem ausgelöst) erhalte ich im LOG follgendes:

2014.03.07 09:03:59 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 15096
2014.03.07 09:03:59 2: PRESENCE: LG could not be checked (retrying in 10 seconds)
2014.03.07 09:03:59 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 15098
2014.03.07 09:03:59 2: PRESENCE: Uwe could not be checked (retrying in 10 seconds)
2014.03.07 09:03:59 1: Including fhem.cfg
2014.03.07 09:03:59 3: telnetPort: port 7072 opened
2014.03.07 09:03:59 3: FHEM2FHEM opening FhemFritz at 192.168.178.1:7072
2014.03.07 09:03:59 3: FHEM2FHEM device opened (FhemFritz)
2014.03.07 09:03:59 3: WEB: port 8083 opened
2014.03.07 09:03:59 3: WEBphone: port 8084 opened
2014.03.07 09:03:59 3: WEBtablet: port 8085 opened
2014.03.07 09:03:59 3: Opening CUL_0 device /dev/ttyACM0
2014.03.07 09:03:59 3: Setting CUL_0 baudrate to 9600
2014.03.07 09:03:59 3: CUL_0 device opened
2014.03.07 09:03:59 3: CUL_0: Possible commands: BCFiAZEGMRTVWXefmltux
2014.03.07 09:04:00 2: eventTypes: loaded 280 events from demolog/eventTypes.txt
2014.03.07 09:04:00 2: eventTypes: loaded 280 events from ./log/eventTypes.txt
2014.03.07 09:04:00 1: Including FHEM/licht.cfg
2014.03.07 09:04:00 1: Including FHEM/Wetter.cfg
2014.03.07 09:04:01 1: Including FHEM/sunrise.cfg
2014.03.07 09:04:01 1: Including FHEM/lan-ping.cfg
2014.03.07 09:04:01 1: Including FHEM/light_scene.cfg
2014.03.07 09:04:01 1: Including FHEM/pushover.cfg
2014.03.07 09:04:01 1: Including FHEM/test.cfg
2014.03.07 09:04:01 1: Including ./log/fhem.save
2014.03.07 09:04:44 2: IT set Klingeltaster.LastReactTime on


Das der Pushover funktioniert konnte ich an einem anderen Test feststellen der so aussieht:
define Pushover1 Pushover TOKEN USERCODE
define at_Push at *16:39 set Pushover1 msg 'Titel' 'Dies ist ein Pushovertest.' '' 0 ''


FHem ist auf dem aktuellen stand nach einem update von gestern abend. Es läuft alles auf einem BeagleBoneBlack unter Debian. Fhem selbst läuft einwandfrei und ist konfiguriert.

Den o.g. Code habe ich jedoch zusammengewürfelt aus allem was ich gefunden habe. Einen ähnlichen (Anwesenheitserkennung) zum prüfen einer Bedingung und dann erst ausführen ... habe ich auch integriert, dieser funktioiert auch, doch leider ebenfalls wieder nicht mit der Klingel.

Ich vermute das ich hier nur eine kleinigkeit übersehen habe und hoffe das dies jemand erkennt und mir weiter helfen kann. Wenn noch Infos benötigt werden, liefere ich diese natürlich sofort nach, ich muss nur wissen was noch fehlt.

Da ich define Klingeltaster.LastReactTime aus einem Beispiel habe, bin ich mir grade auch nicht sicher, ob xxx.LastReactTime wirklich da rein muss oder ob dies lediglich zum Beispiel gehört oder ob ich auch einfach define Klingeltaster dummy oder ähnliches nehmen könnte. Der Klingeltaster war übrigends auch bereits als define wzKlingel definiert und funktionierte. Daher habe ich den Code aus diesem define übernommen.

Danke erstmal im voraus,
Ralf
FHEM auf Raspi m.12cm Antenne, BBB als Server für Zusatz (apache,php,sql)
1 USB CUL/RAW (ReadAnswer):  V 1.61
2 MAX Thermostate, 1 MAX Wanthermostast
1 FHT8V Thermostat, Schaltaktoren,Bewegungsmelder, Wandtatser Elro & IT
1 HMT 360, 4 7"Tablets, FB 7490

Alex85

Habe für das Ganze auch eine Lösung gebraucht und bin auf die gleiche Lösung wie du gekommen.

Bei mir reicht allerdings dieser Code in der FHEM cgf aus um die Nachricht zu bekommen. (Austausch von <token> & <user>)


#Pushover Notification bei Schliesserkontakt1:closed
define Schliesserkontakt1Pushover notify Schliesserkontakt_Sw_01:closed { system ("curl -s -F 'token=<token>' -F 'user=<user>' -F 'message=Erdgeschoss\n!!! Es hat geklingelt !!!' https://api.pushover.net/1/messages.json")}


Ich weiss nicht ob du den ganzen Schnick-Schnack mit der LastReacttime unbedingt brauchst, weil du in der pushOver App selbst die jeweilige Zeit immer eingeblendet bekommst ...

Gruß,
Alex

Kakaomonster

Hallo Alex,

ich werde dies gleich mal testen, danke für den Hinweis. Zu Deiner Anregung, nein den ganzen krims krams benötige ich nicht wirklich, ich wusste ehrlich gesagt bisher auch nicht so genau was es bewirkt :-) mir geht es ja nur darum, dass eine push nachricht kommt, sobald geklingelt wird. Beim lokalen test mit send nachricht dauert es ja nur ca 2 sekunden, dass würde mir auch für die klingel ausreichen.

Muss nun nur mal schnell schauen wie ich nun meinen Klingeltaster Code in Deinen unterbringe, damit es auch funktioniert und gebe auch Rückmeldung, wenn ich es geschafft habe :-)

Grüsse, Ralf
FHEM auf Raspi m.12cm Antenne, BBB als Server für Zusatz (apache,php,sql)
1 USB CUL/RAW (ReadAnswer):  V 1.61
2 MAX Thermostate, 1 MAX Wanthermostast
1 FHT8V Thermostat, Schaltaktoren,Bewegungsmelder, Wandtatser Elro & IT
1 HMT 360, 4 7"Tablets, FB 7490

Kakaomonster

Hallo Alex,

leider habe ich es nicht hinbekommen mit Deinem Code. Ich gehe mal davon aus, dass ich den gleichen Fehler mache wie auch bei meinem. Nun DACHTE ich das ich eine gute Lösung habe:

define Pushover1 Pushover TOKEN USERCODE
#Pushover Notification bei Schliesserkontakt1:closed
define Schliesserkontakt1Pushover notify KlingelTuere:on set Pushover1 msg 'Klingel' 'Es hat an der Türe /n GEKLINGELT' '' 0 ''


Um mal ein wenig von Deinen schnippseln noch mit zu nehmen. Nun sieht es so aus, wenn ich auf der Weboberfläche die Klingel auf ON stelle bekomme ich meine Nachricht. Dumm nur, dass ich KEINE bekomme, wenn ich den KlingelTaster betätige. Dies ist der aus dem oberen Post

define KlingelTuere IT 000000000F FF F0
attr KlingelTuere model itswitch


Der somit also auch definiert wurde. Wo habe ich nun schon wieder Gedankenfehler? Hilfe :-(
FHEM auf Raspi m.12cm Antenne, BBB als Server für Zusatz (apache,php,sql)
1 USB CUL/RAW (ReadAnswer):  V 1.61
2 MAX Thermostate, 1 MAX Wanthermostast
1 FHT8V Thermostat, Schaltaktoren,Bewegungsmelder, Wandtatser Elro & IT
1 HMT 360, 4 7"Tablets, FB 7490

Alex85

Mal so ne blöde Frage: Welches Gerät verwendest du um FHEM merken zu lassen, dass es geklingelt hat?
Ich frage, weil es so aussieht als hättest du in igendeiner Form den Zustand von einem Dummy als Auslöser für die PushOver-Nachricht, richtig?!
Falls ja, dann nehme lieber direkt den Zustand des jeweiligen physikalischen "Zustandsmelders" statt den Dummyzustand.

netbus

Ich habs mit einem HM Taster so realisiert:
# Pushover Credentials
define Pushover1 Pushover xxxxxxxxxx xxxxxxxx

# Pushover bei klingeln
define glocke_Push notify glocke.on set Pushover1 msg 'Glocke' 'Es hat jemand angeläutet' '' 1 'bike' 30 3600

# Klingeltaste
define klingel.1 notify glocken_taste.01:Short.* { fhem ("set glocke on ;; define glocke1.off at +00:00:30 set glocke off") if (Value("glocke")) eq "off"}
define klingel.2 notify glocken_taste.01:Long.* { fhem ("set glocke on ;; define glocke2.off at +00:00:30 set glocke off") if (Value("glocke")) eq "off"}

define glocke dummy