FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Tho-Gra am 26 Mai 2015, 13:56:23

Titel: Notify löst mind. 5 mal aus
Beitrag von: Tho-Gra am 26 Mai 2015, 13:56:23
Guten Tag,

Ich lasse mich benachrichtigen sobald meine Wohnungstür geöffnet/geschlossen wird.

Problem ist das mein Notify bei einmaligen öffnen/schließen ca. 5 mal ausgeführt wird.
Das ist bei meiner Handybenachrichtigung etwas sehr lässtig.

Hat wer eine Ahnung was ich falsch gemacht habe?

Grüße

Tho-Gra

Zitat
define PushOver_FL.Tuer notify FL.Tuer {if (Value("FL.Tuer") eq "open") {system ("curl -s -F 'token=TOKEN' -F 'user=USERKEY' -F 'message=Wohnung\nTür wurde geöffnet :-)' https://api.pushover.net/1/messages.json")} \
elsif (Value("FL.Tuer") eq "closed") {system ("curl -s -F 'token=TOKEN' -F 'user=USERKEY' -F 'message=Wohnung\nTür wurde geschlossen :-)' https://api.pushover.net/1/messages.json")}}
attr PushOver_FL.Tuer group PushOver
attr PushOver_FL.Tuer room Flur
Titel: Antw:Notify löst mind. 5 mal aus
Beitrag von: marvin78 am 26 Mai 2015, 14:02:54
Ich weiß nicht, was du für einen Sensor du hast. Ich nehme an, dass dein Sensor beim Öffnen und Schließen nicht nur ein sondern fünf Events produziert. Da dein notify aber auf alle und nicht nur auf ein Event reagiert, bekommst du die Nachricht 5 mal.

Je nachdem, wie dein Event wirklich aussieht, könnte sowas hier funktionieren.

FL.Tuer:(open|closed) {
  if ($EVENT eq "open") {
    system ("curl -s -F 'token=TOKEN' -F 'user=USERKEY' -F 'message=Wohnung\nTür wurde geöffnet :-)' https://api.pushover.net/1/messages.json");
  }
  else {
     system ("curl -s -F 'token=TOKEN' -F 'user=USERKEY' -F 'message=Wohnung\nTür wurde geschlossen :-)' https://api.pushover.net/1/messages.json");
  }
}


Schau dir auch "event-on-(change|update)-reading in der commandref an.

BTW: Warum verwendest du nicht das Pushover Modul?
Titel: Antw:Notify löst mind. 5 mal aus
Beitrag von: Zrrronggg! am 26 Mai 2015, 22:52:14
notify FL.Tuer

löst bei allen Meldungen des Sensors aus. Ggf. sendet der Sensor neben dem Fakt dass er geöffnet wurde auch gleich noch den Batteriestatus mit, oder ob das Gehäuse auf ist etc. Das könte je nach dem, wie sich der Wert von
FL.Tuer
dann ändert nochmals auslösen.



Dies hier:
define PushOver_FL.Tuer notify FL.Tuer {if (Value("FL.Tuer") eq "open") ...
ist ggf besser so zu lösen:
define PushOver_FL.Tuer notify FL.Tuer:open ...
Da du jetzt das Problem hast das elsif nie eintrifft, würde ich dein Konstrukt durch 2 Defines ersetzen:
define PushOver_FL.Tuer_open notify FL.Tuer:open ...
define PushOver_FL.Tuer_closed notify FL.Tuer:closed ...



Edit:
Eben eingefallen, anstatt 2 defines kannst du auch dies machen:
define PushOver_FL.Tuer notify FL.Tuer:open|FL.Tuer:closed {if (Value("FL.Tuer") eq "open") ...



Titel: Antw:Notify löst mind. 5 mal aus
Beitrag von: Zrrronggg! am 26 Mai 2015, 23:37:32
Weil mich das interessiert, habe ich das eben noch mal bei mir mit einem FHT80TF-2 (FHTTK) nachgestellt:

mein FHTTK erzeugt folgende Events:

Zitat2015-05-26 23:28:26 CUL_FHTTK Tuer_Waschkeller Closed
2015-05-26 23:28:26 CUL_FHTTK Tuer_Waschkeller Window: Closed
2015-05-26 23:28:26 CUL_FHTTK Tuer_Waschkeller Reliability: ok
2015-05-26 23:28:26 CUL_FHTTK Tuer_Waschkeller Battery: ok


Ttasächlich löst eine simples
notify Tuer_Waschkeller
bei JEDEM dieser Events aus UND eine Test der Art
{if (Value("Tuer_Waschkeller") eq "Closed")
ist auch immer TRUE, da z.b.: "Tuer_Waschkeller Reliability: ok" den Wert von "Tuer_Waschkeller" nicht ändert, der steht nach wie vor auf Closed.

Folgerichtig wird genau wie bei dir sowas hier:
define blubber notify Tuer_Waschkeller {if (Value("Tuer_Waschkeller") eq "Closed") ...
bei JEDER Closed-Meldung 4x ausgelöst!

Ich habe dann
define blubber notify Tuer_Waschkeller {if (Value("Tuer_Waschkeller") eq "Closed") ...
durch
define blubber notify Tuer_Waschkeller:Closed|Tuer_Waschkeller:Open {if (Value("Tuer_Waschkeller") eq "Closed") ...
ersetzt. Jetzt wird define blubber nur noch 1x ausgelöst, denn
Zitat2015-05-26 23:28:26 CUL_FHTTK Tuer_Waschkeller Window: Closed
2015-05-26 23:28:26 CUL_FHTTK Tuer_Waschkeller Reliability: ok
2015-05-26 23:28:26 CUL_FHTTK Tuer_Waschkeller Battery: ok
lösen jetzt nicht mehr aus.
Titel: Antw:Notify löst mind. 5 mal aus
Beitrag von: Riverghost am 27 Mai 2015, 18:11:22
Hallo,

ich hatte zufälligerweise gerade auch das Problem mit den mehrfachen Events.

Vielen Dank an Zrrronggg! für den Tipp!

Jetzt funktionierts.  ;D

Gruß
Riverghost
Titel: Antw:Notify löst mind. 5 mal aus
Beitrag von: Tho-Gra am 31 Mai 2015, 21:33:46
Hallo alle zusammen,

ich bin positiv überrascht über die Anzahl der Antworten.

Ich war sehr beschäftigt und konnte deshalb nicht vorher antworten/testen....

Aber dank eurer Hilfe habe ich in sehr kurzer Zeit die passende Lösung gehabt.

Vielen Lieben Dank nochmal

Der gefragte Sensor ist folgender : HM-SEC-SC-2

Hier mein neuer Passender Code (PS: Danke auch für den "Pushover_Modul" Tipp).

define PushOver_FL.Tuer notify FL.Tuer:closed|FL.Tuer:open {if (Value("FL.Tuer") eq "open") {fhem("set PushOver_Thomas msg 'FHEM' 'Die Wohnungstür wurde geöffnet!'");;} \
elsif (Value("FL.Tuer") eq "closed") {fhem("set PushOver_Thomas msg 'FHEM' 'Die Wohnungstür wurde geschlossen!'");;}}



Grüße

Tho-Gra