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
Dann schau mal in deinen EventMonitor, wieviele Events mit motion bei einer Bewegung erzeugt werden und setze dein notify entsprechend.
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.
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?
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.
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
Zitat von: marvin78 am 03 Februar 2015, 16:29:17
korrekt auf das Event reagieren
This! :-) motion.* ist in dem Fall zu diffus
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
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....
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