[PATCH] - FileLog/notify - notifyRegexpChanged() bei global:INITIALIZED

Begonnen von Markus Bloch, 19 Februar 2017, 15:03:57

Vorheriges Thema - Nächstes Thema

Markus Bloch

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
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

rudolfkoenig

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).

Markus Bloch

Ja, das funktioniert auch und hat den selben Effekt. Gerade bei notify erfolgreich getestet.

Find ich gut.  :)

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus Bloch

Hier nun der Patch mit deinem Vorschlag. Getestet für beide Module.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

rudolfkoenig