Notify löst mind. 5 mal aus

Begonnen von Tho-Gra, 26 Mai 2015, 13:56:23

Vorheriges Thema - Nächstes Thema

Tho-Gra

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

marvin78

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?

Zrrronggg!

#2
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") ...



FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Zrrronggg!

#3
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.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Riverghost

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

Tho-Gra

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