Homematic Bewegungsmelder löst immer dreimal notify aus

Begonnen von Phlox, 03 Februar 2015, 16:07:35

Vorheriges Thema - Nächstes Thema

Phlox

Hi,

ich habe es endlich geschafft mit sendEmail und gmx als Provider emails bei notify über das raspberry wheezy zu verschicken:

code in fhem.cfg:

define Bewegungsmeldung notify Flur.Bewegung:motion.* {\
DebianMail('empfänger@@gmx.net','Bewegung','Bewegung im Eingangsbereich:   '.localtime);;\
}


Leider werden bei motion immer 3 mails verschickt und das genau in 5sec Abstand. Gibt es da eine Möglichkeit diese notify Auslösung auf eine zu beschränken, und dann das ganze evtl. 30sec. sperren? Ich habe da mal was von short gelesen, ist das evtl. der richtige Weg. Aber ich kapier das mit short nicht so richtig.

Hier mein Log nach Auslösung des Ereignises motion:

2015.02.03 14:52:59 1: sendEmail Subject: Bewegung
2015.02.03 14:52:59 1: sendEmail Text: Bewegung im Eingangsbereich:   Tue Feb  3 14:52:59 2015
2015.02.03 14:53:04 1: sendEmail returned: Feb 03 14:53:04 rasp sendEmail[3978]: Email was sent successfully!
2015.02.03 14:53:04 1: sendEmail RCP: empfänger@gmx.net
2015.02.03 14:53:04 1: sendEmail Subject: Bewegung
2015.02.03 14:53:04 1: sendEmail Text: Bewegung im Eingangsbereich:   Tue Feb  3 14:53:04 2015
2015.02.03 14:53:09 1: sendEmail returned: Feb 03 14:53:09 rasp sendEmail[3982]: Email was sent successfully!
2015.02.03 14:53:09 1: sendEmail RCP: empfänger@gmx.net
2015.02.03 14:53:09 1: sendEmail Subject: Bewegung
2015.02.03 14:53:09 1: sendEmail Text: Bewegung im Eingangsbereich:   Tue Feb  3 14:53:09 2015
2015.02.03 14:53:13 1: sendEmail returned: Feb 03 14:53:13 rasp sendEmail[3986]: Email was sent successfully!
2015.02.03 15:39:23 1: sendEmail RCP: empfänger@gmx.net


Ähnliche Erfahrungen habe ich mit einem Schaltaktor. Löse ich den Einschaltvorgang über den Floorplan oder der fhem Webseite aus, erhalte ich nur eine email. Im Log steht dann auch nur eine notify Auslösung.
Schalte ich den Schaltaktor jedoch mit einer Fernbedienung ein, dann werden 10 und mehr emails verschickt, bzw. notifys ausgelöst. Je länger ich auf den Fernbedienungsknopf drücke, desto mehr werden verschickt.

Ich brauche also irgend einen Code, der nach dem Auslösen des notify ein weiteres Auslösen für eine gewisse Zeit (30sec.) verhindert oder unterdrückt. Kann mir da jemand helfen?

Danke

stromer-12

Dann schau mal in deinen EventMonitor, wieviele Events mit motion bei einer Bewegung erzeugt werden und setze dein notify entsprechend.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

nesges

Dein Problem ist wahrscheinlich weniger die Mail, als das mehrfache Auslösen von motion-Events durch Flur.Bewegung. Sieh dir mal die Ausgabe des Event-Monitors beim Auslösen an und lies dir "event-on-change-readings" unter http://fhem.de/commandref_DE.html#readingFnAttributes durch.

Phlox

Mein EventMonitor sieht so aus:

2015-02-03 16:20:15 CUL_HM Flur.Bewegung trigDst_26ECE4: noConfig
2015-02-03 16:20:15 CUL_HM Flur.Bewegung motion
2015-02-03 16:20:15 CUL_HM Flur.Bewegung motion: on (to HMLAN1)
2015-02-03 16:20:15 CUL_HMFlur.Bewegung motionCount: 12_next:116s
2015-02-03 16:20:15 CUL_HM Flur.Bewegung brightness: 254

Also wird hier das ganze doch nur einmal ausgelöst, oder?

Ich les mir das mit event-on-change-readings mal durch. Wenn ich das nicht kapier, dann rühr ich mich nochmal, ok?

marvin78

#4
Du siehst 3 Events, die mit motion beginnen, also löst dein Regex mit motion.* auch 3 mal aus. Du musst das mit event-on-(change|update)-reading einschränken oder korrekt auf das Event reagieren. Alles dazu steht in der commandref.

attr Flur.Bewegung event-on-update-reading motion,brightness

oder ähnliches.

Markus

#5
Ich hab das so gelöst also im besten Fall nur alle 15 minuten eine Nachricht

define Batterie_wird_Lehr notify USV_Batterie:off { \
if (Value("USV_2000_Batterie") eq "off" && Value{"batterie_petze"} ne "nein" ) \
{fhem "set batterie_petze nein ;; delete batterie_petzen ;; define batterie_petzen at +00:15:00 set batterie_petze ja" }\
{NMA_send("USV ","Accu Ladung beträgt unter 20 Prozent",5,"Markus")} \
}



aber das müsste auch gehen

define Bewegungsmeldung notify Flur.Bewegung:motion {\
DebianMail('empfänger@@gmx.net','Bewegung','Bewegung im Eingangsbereich:   '.localtime);;\
}

Gruss Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

nesges


Damian

Zitat von: Markus am 03 Februar 2015, 16:30:12
Ich hab das so gelöst also im besten Fall nur alle 15 minuten eine Nachricht

define Batterie_wird_Lehr notify USV_Batterie:off { \
if (Value("USV_2000_Batterie") eq "off" && Value{"batterie_petze"} ne "nein" ) \
{fhem "set batterie_petze nein ;; delete batterie_petzen ;; define batterie_petzen at +00:15:00 set batterie_petze ja" }\
{NMA_send("USV ","Accu Ladung beträgt unter 20 Prozent",5,"Markus")} \
}


Gruss Markus

oder einfach:

define di_motion DOIF ([Flur.Bewegung:?motion])({DebianMail...})
attr di_motion do always
attr di_motion cmdpause 900



Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Phlox

Ich habe jetzt mal ein wenig um das "event-on-update-reading" oder "event-on-change-reading" im Internet rumgelesen. Dann müsste ja eigentlich für den Bewegungsmelder das attr "event-on-update-reading" sinnvoll erscheinen, da ja der Status motion bestehen bleibt und sich nur updatet.

Ich probierte mal

attr Flur.Bewegung event-on-update-reading motion

mal

attr Flur.Bewegung event-on-change-reading motion

und auch mal beides zusammen

attr Flur.Bewegung event-on-update-reading motion
attr Flur.Bewegung event-on-change-reading motion

aus.

Doch sobald ich diese Änderungen vorgenommen habe, erhalte weder ein notify noch ne email.

Jetzt probier ich mal die anderen Sachen wie bei Batterie oben angegeben aus....



Phlox

Problem gelöst.

Es war der .* nach motion. Ich weiß nicht welcher Teufel mich da geritten hat. Wenn man diese 2 Zeichen weglässt dann funktioniert#s mit eben nur diesen einer Benachrichtigungsmail.

Der richtige Code lautet also:


define Bewegungsmeldung notify Flur.Bewegung:motion {\
DebianMail('empfänger@@gmx.net','Bewegung','Bewegung im Eingangsbereich:   '.localtime);;\
}

Ich danke allen für eure Hilfe. der entscheidende Hinweis war von nesges.  Danke

Kann geschlossen werden...und ich kann endlich wieder schlafen-man hat mich das gewurmt