Gelöst: notify erzeugt 5 mails, trotz nur einmaligem Statuswechsel

Begonnen von MrBob, 18 September 2015, 21:18:49

Vorheriges Thema - Nächstes Thema

MrBob

Hallo zusammen,

ich habe folgenden notify angelegt, der mir beim öffnen der Garage (nur beim öffnen) eine Mail schicken soll:

define MAILgarage notify TKgarage {
  Log 1, 'TKgarage: ' . OldValue("TKgarage") . ' to ' . ReadingsVal("TKgarage", "state", "");;
  if (ReadingsVal("TKgarage", "state", "") ne OldValue("TKgarage")) {
    if (ReadingsVal("TKgarage", "state", "") eq "open") {
      DebianMail('mail@me.de', 'Garage offen', 'Die Garage wurde geoeffnet');;
    };;
  };;
}


Funktioniert zwar insofern, daß der Wechsel von closed auf open erkannt wird, doch die mail wird 5 mal versendet. Log:


2015.09.18 20:21:50 4: CUL_Parse: CUL1 A 0C A8 A641 3491AF 081508 01A3C8CB -100.5
2015.09.18 20:21:50 4: CUL_send:  CUL1As 0D A8 8002 081508 3491AF 0101C800
2015.09.18 20:21:50 1: TKgarage: closed to open
2015.09.18 20:21:50 1: sendEmail RCP: mail@me.de
2015.09.18 20:21:50 1: sendEmail Subject: Garage offen
2015.09.18 20:21:50 1: sendEmail Text: Die Garage wurde geoeffnet
2015.09.18 20:21:51 1: sendEmail returned: Sep 18 20:21:51 raspberrypi sendEmail[28594]: Email was sent successfully!
2015.09.18 20:21:51 1: sendEmail RCP: mail@me.de
2015.09.18 20:21:51 1: sendEmail Subject: Garage offen
2015.09.18 20:21:51 1: sendEmail Text: Die Garage wurde geoeffnet
2015.09.18 20:21:53 1: sendEmail returned: Sep 18 20:21:52 raspberrypi sendEmail[28596]: Email was sent successfully!
2015.09.18 20:21:53 1: sendEmail RCP: mail@me.de
2015.09.18 20:21:53 1: sendEmail Subject: Garage offen
2015.09.18 20:21:53 1: sendEmail Text: Die Garage wurde geoeffnet
2015.09.18 20:21:54 1: sendEmail returned: Sep 18 20:21:54 raspberrypi sendEmail[28599]: Email was sent successfully!
2015.09.18 20:21:54 1: sendEmail RCP: mail@me.de
2015.09.18 20:21:54 1: sendEmail Subject: Garage offen
2015.09.18 20:21:54 1: sendEmail Text: Die Garage wurde geoeffnet
2015.09.18 20:21:55 1: sendEmail returned: Sep 18 20:21:55 raspberrypi sendEmail[28601]: Email was sent successfully!
2015.09.18 20:21:55 1: sendEmail RCP: mail@me.de
2015.09.18 20:21:55 1: sendEmail Subject: Garage offen
2015.09.18 20:21:55 1: sendEmail Text: Die Garage wurde geoeffnet
2015.09.18 20:21:57 1: sendEmail returned: Sep 18 20:21:56 raspberrypi sendEmail[28603]: Email was sent successfully!


was mache ich hier falsch ?

Puschel74

#1
TKgarage
ist auch ein Regexp das auf ALLES triggert was das Device sendet  ::)
Da hatten wir aber doch schon x-Beiträge dazu.
EventMonitor öffnen - TKgarage auslösen und schauen welche Events kommen - das Regexp anpassen.
Anfängerfragen wäre der bessere Bereich gewesen für die "Frage".

Edith: Und was die if-Abfragen sollen erschliesst sich mir grad nicht - wozu sollen die gut sein  :o
if (ReadingsVal("TKgarage", "state", "") ne OldValue("TKgarage")) {
    if (ReadingsVal("TKgarage", "state", "") eq "open") {


Edith1: Verwendest du eventMap?
Dann ist open != offen
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

MrBob

Hallo Puschel74,

sorry, wenn Du solche Fragen schon X-Mal gelesen hast, ich konnte jedoch mit der SuFu keine Treffer landen. Und "Anfänger" müsste erstmal genauer definiert werden, denn als blutigen Anfänge möchte ich mich nicht bezeichnen, auch wenn ich mich nicht so intensiv mit FHEM befasst habe.
Egal, schön jedenfalls, das sich jemand die Mühe macht, die Frage dennoch zu beantworten. Vielen Dank.

Demnach müsste ich nach define MAILgarage notify TKgarage noch ein ":open" hinzufügen um auf solche zu reagieren ? Wenn dem so ist, dann verstehe ich auch deine Frage, was denn die if-Abfragen sollen, denn dann würde ja nur auf ein open hin die Mail versendet. Ich hatte hiermit den alten und neuen Status abgefragt um nur auf ein open zu reagieren, wenn es nicht bereits open ist.

Und nein, ein EventMap habe ich nicht definiert, es ist in der Tat "open" und "closed".

rudolfkoenig

Manche Module (insb. CUL_HM) erzeugen bei einem Statuswechsel ein ganze Menge von Events, und notify behandelt jeden dieser Events einzeln. Bei notify-Problemen sollte man zunaechst verstehen, welche Events generiert werden (EventMap), danach am besten per notify-regexp nur die notwendigen auswaehlen. Testen kann man das notify danach auch mit dem FHEM-Befehl trigger.

@Puschel74: habe bitte etwas mehr Geduld mit den Fragestellern. Ja, ich weiss, einige wollen sich auf den Knochen der anderen ausruhen, allerdings hilft bei diesen eine Erziehung nicht, das sind keine kleinen Kinder.  Falls dich so ein Verhalten nervt, dann Antworte nicht. Ich ertappe mich auch immer wieder beim "hatten wir schon", allerdings ist nicht mal fuer mich trivial die richtigen Worte bei der Suche zu verwenden, um das Thema zu finden. Wenn ich es finde, dann verlinke ich es, wenn nicht, dann verschlucke ich meinen Kommentar, jedenfalls neuerdings  :)

justme1968

und bei readings die zwischen zuständen wechseln ist auch event-on-change-reading sinnvoll. das spart dann die prüfung auf den alten zustand.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Puschel74

Es geht aber nicht um diesen einen Satz von mir oder  ???
ZitatDa hatten wir aber doch schon x-Beiträge dazu.
Macht mal halblang - ich hab ja niemanden angegriffen damit und das man mit den Suchbegriffen durchaus aus mal "spielen" muss oder
auch über Google schneller die richtigen Treffer findet bestreite ich ja nicht.

Nun gut, Rudi du hast recht (mal wieder).
Es ist nervenschonender wenn ich auf diverse Fragen einfach nichtmehr antworte.
Und das ich "keine Geduld" hätte stimmt ja auch nicht - sonst hätte ich ja nicht doch etwas ausführlicher geantwortet und
eine Hilfestellung gegeben wie sich der TE zukünftig selbst helfen kann.

Hier ist übrigens der nächste Kanditat:
http://forum.fhem.de/index.php/topic,41222.msg334479.html#msg334479
Darf sich gerne jemand anderer drum kümmern und helfen.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

marvin78


MrBob

Vielen Dank für Eure Antworten, es funktioniert nun wie gewünscht.


attr TKgarage event-on-change-reading state

und

define MAILgarage notify TKgarage:open ...

haben zum Ziel geführt, dank Eurer Hinweise.

@Puschel74: Nicht gleich an die Decke gehen, ist doch alles gut ;-) Im Ersten Moment las sich das eben etwas "angep...t". Trotzdem hast Du geholfen und damit zur Lösung meines Problems beigetragen, klingt also alles schlimmer als es ist.

Schönes Wochenende noch !