FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: HoTi am 26 Februar 2015, 06:37:36

Titel: Problem mit doppelter Notify aufruf innerhalb einer Zeit
Beitrag von: HoTi am 26 Februar 2015, 06:37:36
Hallo zusammen,

ich habe folgenes Notify bei mir laufen:
define BM_Flur_Display notify BM_Flur:motion {fhem("set Display_FLUR_aktiv on;;define Display_FLUR_aktiv_off at +00:05:00 set Display_FLUR_aktiv off")}

Das Problem ist wenn innerhalb der 5 Minuten eine weitere Bewegungs festgestellt wird kommt folgender Log eintrag:

2015.02.01 08:54:18 3: set Display_FLUR_aktiv on;define Display_FLUR_aktiv_off at +00:05:00 set Display_FLUR_aktiv off : Display_FLUR_aktiv_off already defined, delete it first
2015.02.01 08:54:18 3: BM_Flur_Display return value: Display_FLUR_aktiv_off already defined, delete it first


Kann mir jemand helfen das zu optimieren?!

Titel: Antw:Problem mit doppelter Notify aufruf innerhalb einer Zeit
Beitrag von: Icinger am 26 Februar 2015, 08:22:38
Du kannst innerhalb des Notifys abfragen, ob der Timer schon definiert ist und ihn zB vor der Neuanlage löschen:
fhem("delete Display_FLUR_aktiv_off") if (defined($defs{'Display_FLUR_aktiv_off'}))

lg, Ici
Titel: Antw:Problem mit doppelter Notify aufruf innerhalb einer Zeit
Beitrag von: HoTi am 26 Februar 2015, 08:32:12
Danke aber damit ich es richtig versehe, du meinst so:


define Display_FLUR_aktiv_delete notify BM_Flur:motion {fhem("delete Display_FLUR_aktiv_off") if (defined($defs{'Display_FLUR_aktiv_off'}))}
define BM_Flur_Display notify BM_Flur:motion {fhem("set Display_FLUR_aktiv on;;define Display_FLUR_aktiv_off at +00:05:00 set Display_FLUR_aktiv off")}


Also bei Bewegung überprüfen ggf. löschen und dann neu ausführen?!
Titel: Antw:Problem mit doppelter Notify aufruf innerhalb einer Zeit
Beitrag von: Icinger am 26 Februar 2015, 10:04:27
Dafür brauchst du nicht wirklich 2 Notifys, das geht auch mit einem:

define BM_Flur_Display notify BM_Flur:motion {fhem("delete Display_FLUR_aktiv_off") if (defined($defs{'Display_FLUR_aktiv_off'}));
                fhem("set Display_FLUR_aktiv on;;define Display_FLUR_aktiv_off at +00:05:00 set Display_FLUR_aktiv off")}


Damit wird der Timer gelöscht, falls vorhanden, und danach auf jeden Fall neu angelegt.

lg, Ici