FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Markus Bloch am 19 Februar 2017, 15:03:57

Titel: [PATCH] - FileLog/notify - notifyRegexpChanged() bei global:INITIALIZED
Beitrag von: Markus Bloch am 19 Februar 2017, 15:03:57
Hallo zusammen,

aktuell wird bei den Modulen notify und FileLog die Funktion notifyRegexpChanged() nur im Rahmen der DefineFn aufgerufen. Da bei einem Start von FHEM zum Zeitpunkt des Aufrufs evtl. die entsprechenden Definitionen noch nicht existieren, kann es vorkommen, dass kein NOTIFYDEV angelegt wird.

Im Anhang daher ein Patch, der notifyRegexpChanged() beim triggern von global:(INITIALIZED|REREADCFG) aufruft, sofern die User-Regexp nicht erfolgreich ist. In der DefineFn wird notifyRegexpChanged() nur noch bei $init_done aufgerufen.

Gruß
Markus
Titel: Antw:[PATCH] - FileLog/notify - notifyRegexpChanged() bei global:INITIALIZED
Beitrag von: rudolfkoenig am 19 Februar 2017, 15:42:50
Es stoert mich, dass dadurch in der innersten Schleife eine meist unnoetige Regexp-Pruefung reinkommt.
Was haeltst du von
InternalTimer(0, sub(){  notifyRegexpChanged($hash, $re); }, $hash);
im DefineFn (statt notifyRegexpChanged direkt auzurufen, ungetestet).
Titel: Antw:[PATCH] - FileLog/notify - notifyRegexpChanged() bei global:INITIALIZED
Beitrag von: Markus Bloch am 19 Februar 2017, 15:49:05
Ja, das funktioniert auch und hat den selben Effekt. Gerade bei notify erfolgreich getestet.

Find ich gut.  :)

Gruß
Markus
Titel: Antw:[PATCH] - FileLog/notify - notifyRegexpChanged() bei global:INITIALIZED
Beitrag von: Markus Bloch am 19 Februar 2017, 17:44:58
Hier nun der Patch mit deinem Vorschlag. Getestet für beide Module.

Gruß
Markus
Titel: Antw:[PATCH] - FileLog/notify - notifyRegexpChanged() bei global:INITIALIZED
Beitrag von: rudolfkoenig am 19 Februar 2017, 19:14:55
Danke, habs eingecheckt.