NOTIFYDEV, notifyRegexpChanged mit TYPE=DOIF|CUL_HM| ...

Begonnen von Ellert, 09 Januar 2017, 07:01:50

Vorheriges Thema - Nächstes Thema

Ellert

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?




rudolfkoenig

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.

Ellert


Tobias

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
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Markus Bloch

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

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.

Markus Bloch

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

aktives Mitglied des FHEM e.V. (Technik)