FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Ellert am 09 Januar 2017, 07:01:50

Titel: NOTIFYDEV, notifyRegexpChanged mit TYPE=DOIF|CUL_HM| ...
Beitrag von: Ellert am 09 Januar 2017, 07:01:50
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?



Titel: Antw:NOTIFYDEV, notifyRegexpChanged mit TYPE=DOIF|CUL_HM| ...
Beitrag von: rudolfkoenig am 09 Januar 2017, 11:33:05
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.
Titel: Antw:NOTIFYDEV, notifyRegexpChanged mit TYPE=DOIF|CUL_HM| ...
Beitrag von: Ellert am 09 Januar 2017, 11:44:12
Danke, dann weiss ich was zu tun ist.
Titel: Antw:NOTIFYDEV, notifyRegexpChanged mit TYPE=DOIF|CUL_HM| ...
Beitrag von: Tobias am 10 Januar 2017, 07:15:41
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
Titel: Antw:NOTIFYDEV, notifyRegexpChanged mit TYPE=DOIF|CUL_HM| ...
Beitrag von: Markus Bloch am 10 Januar 2017, 09:05:26
Werde ich noch hinzufügen, hatte ich vergessen.
Titel: Antw:NOTIFYDEV, notifyRegexpChanged mit TYPE=DOIF|CUL_HM| ...
Beitrag von: rudolfkoenig am 10 Januar 2017, 09:08:23
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.
Titel: Antw:NOTIFYDEV, notifyRegexpChanged mit TYPE=DOIF|CUL_HM| ...
Beitrag von: Markus Bloch am 10 Januar 2017, 10:02:52
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