Ausgehend von diesem Zitat https://forum.fhem.de/index.php/topic,64382.msg556060.html#msg556060
habe ich eine Frage zu NOTIFYDEV.
Ich verwende im Modul DOIFtools eine Regex auf TYPE und setze NOTIFYDEV direkt, wie hier beschrieben https://wiki.fhem.de/wiki/DevelopmentModuleIntro#X_Notify
$hash->{NOTIFYDEV} = global,sh,TYPE=DOIF|CUL_HM| ...
Ich würde gern der Empfehlung folgen und NOTIFYDEV mit notifyRegexpChanged setzen.
Der Benutzer wählt eine Liste von TYPE und ich bekomme TYPE1,TYPE2,...TYPEx in der SetFN als Zeichenkette.
Wie müsste ich das formulieren?
notfyRegexpChanged erwartet ein Regexp, wie das notify/watchdog/FileLog etc benoetigen, also in der Form geraet1:event1|geraet2:event2, usw, weiterhin gibt es eine Beschraenkung auf max 10 Geraete. Damit wird die Funktion aus deinem Beispiel kein NOTIFYDEV generieren.
Aber ich bezweifele, dass NOTIFYDEV in deinem Fall wirklich hilft, da es damit kaum Events gibt, die nicht deinem NotifyFn zugestellt werden, dafuer wird die Abarbeitung in manchen Faellen langsamer, da zwei Schleifen (einmal fuers Geraet selbst, und einmal fuer .*) abgearbeitet werden.
Danke, dann weiss ich was zu tun ist.
Frage zum selben Thema:
ich habe in einem meiner Module:$hash->{NOTIFYDEV} = $device;
Ist das jetzt noch in Ordnung? Ich habe gelesen das man nicht mehr direkt NOTIFYDEV beschreiben sollte.
Was macht die Funktion notifyRegexpChanged ? Wo kann ich das nachlesen? Im Wiki (https://wiki.fhem.de/wiki/DevelopmentModuleIntro) finde ich keinen Hinweis drauf
Werde ich noch hinzufügen, hatte ich vergessen.
ZitatWas macht die Funktion notifyRegexpChanged ? Wo kann ich das nachlesen?
fhem.pl, Zeile 4492 und folgende.
Versucht aus den ueblichen Regexps ala device:event die Geraete zu extrahieren.
Habe einen entsprechenden Hinweis im Wiki ergänzt.
Generell möchte ich aber darauf hinweisen, dass notifyRegexpChanged() nur dann verwendet werden kann, wenn das entsprechende Modul ebenfalls Events ähnlich wie das Modul notify interpretiert (mit Doppelpunkt).
Bspw:
<Definitionsnamen>
<Definitionsnamen>:<Event>
Sollte die Regexp bspw. nur auf <Event> von einem anderweitig festgelegten Definitionsnamen matchen, kann notifyRegexpChanged() nicht verwendet werden.
Gruß
Markus