Autor Thema: Ermittlung von devices für NOTIFYDEV mittels notifyRegexpChanged  (Gelesen 5620 mal)

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25479
Antw:Ermittlung von devices für NOTIFYDEV mittels notifyRegexpChanged
« Antwort #45 am: 26 Januar 2022, 11:08:48 »
Zitat
Und wenn schon "undef" als Argument möglich sein soll, warum dann zwingend?
Weil meiner Ansicht nach setNotifyDev($hash, undef) verstaendlicher ist, als setNotifyDev($hash).
Ich habe aus diesem Grund einen separaten setDisableNotifyFn($hash, 1) hinzugefuegt.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18685
Antw:Ermittlung von devices für NOTIFYDEV mittels notifyRegexpChanged
« Antwort #46 am: 26 Januar 2022, 12:36:43 »
Danke, auch für die Erläuterung.
Bin zwar nicht sicher, ob es eine separate Funktion gebraucht hätte, aber so kann man es ggf. einfacher erklären.

Habe ein paar entsprechende Ergänzungen in https://wiki.fhem.de/wiki/DevelopmentModuleAPI bzw. https://wiki.fhem.de/wiki/DevelopmentModuleIntro reingenommen, dass das da nicht verloren geht.
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9654
Antw:Ermittlung von devices für NOTIFYDEV mittels notifyRegexpChanged
« Antwort #47 am: 26 Januar 2022, 17:06:37 »
Ich habe jetzt bei mir setDisableNotifyFn eingebaut, für den Fall, dass im DOIF-Device das Attribut disable gesetzt bzw. gelöscht wird.

Es scheint zu funktionieren. Irritierend finde ich allerdings die Kleinschreibung im Internal.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9654
Antw:Ermittlung von devices für NOTIFYDEV mittels notifyRegexpChanged
« Antwort #48 am: 19 Februar 2022, 15:51:01 »
Könnte es sein, dass setNotifyDev mit FHEM2FHEM nicht funktioniert?
siehe https://forum.fhem.de/index.php/topic,103401.msg1209160.html#msg1209160
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25479
Antw:Ermittlung von devices für NOTIFYDEV mittels notifyRegexpChanged
« Antwort #49 am: 20 Februar 2022, 18:19:31 »
Zitat
Könnte es sein, dass setNotifyDev mit FHEM2FHEM nicht funktioniert?
Bei bestimmten Kombinationen ist das richtig.

NOTIFYDEV spezifiziert die Liste der lokalen FHEM-Geraete, deren Events zu einem NotifyFn Aufruf fuehren sollten.
Bei FHEM2FHEM:Log kann es vorkommen, dass ein Geraet lokal nicht vorhanden ist, und von FHEM2FHEM fuer die Event-Behandlung temporaer angelegt wird, und die relativ teure Neuerstellung der der Warteschlangen via createNtfyHash nicht durchgefuehrt wird.

Solche Faelle koennen auch notify verwirren: wenn lokal DEV1 existiert, DEV2 nur remote, das notify-Regexp auf DEV.* angelegt wird, dann wird notify fuer die DEV2-Events nicht aufgerufen. Fuer solche Faelle muss man entweder einen lokalen DEV2 (z.Bsp. als dummy) anlegen, oder den Regexp als (DEV1|DEV2) spezifizieren.

Die korrekte Loesung waere in FHEM2FHEM:Log vor und nach der Eventbehandlung solcher Geraete createNtfyHash aufzurufen.
Bin noch leicht unsicher, was wichtiger ist: ein in Sonderfaellen korrektes Verhalten, oder Geschwindigkeit.

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9654
Antw:Ermittlung von devices für NOTIFYDEV mittels notifyRegexpChanged
« Antwort #50 am: 20 Februar 2022, 18:54:33 »
ja, das habe ich mir schon gedacht, daher habe ich dem TE bereits geraten, ein entsprechendes Device im Hostsystem manuell anzulegen: siehe https://forum.fhem.de/index.php/topic,103401.msg1209300.html#msg1209300

Da bin ich mal gespannt, wie viele noch mit diesem Problemchen kommen, da es zuvor mit dem eigenen Filter (ohne NOTIFYDEV) im DOIF ohne Device-Kopie funktionierte.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9654
Antw:Ermittlung von devices für NOTIFYDEV mittels notifyRegexpChanged
« Antwort #51 am: 20 Februar 2022, 18:59:28 »
nächstes Problem kommt dann gleich um die Ecke: https://forum.fhem.de/index.php/topic,126321.msg1209412.html#msg1209412

Diese Regex hat wohl ohne NOTIFYDEV im DOIF funktioniert: Licht[.].*(?<!till)

mit NOTIFYDEV wohl nicht mehr
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

 

decade-submarginal