fhem Module und notifys bzw. Interrups

Begonnen von olwaldi, 07 Februar 2026, 12:30:00

Vorheriges Thema - Nächstes Thema

olwaldi

Ich habe eine generelle Verständnisfrage zur Abarbeitungsreihenfolge von Modulfunktion wie z.B X_Set, X_Notify, X_Read. Insbesondere ist mir unklar, ob z.B X_Read oder X_Notify ein gerade laufendes X_Set "unterbrechen" kann. Dann wäre ja eine Art locking erforderlich, um sich davor schützen zu können. Für mich sieht es allerdings so aus, als wenn fhem.pl die einzelnen subs der Reihe nach aufruft, aber NICHT unterbricht. Ist dann quasi aus fhem-Sicht maximal EINE sub eines Moduls gleichzeitig aktiv? Das hieße dann aber auch, daß X_Read nicht unmittelbar bei Datenverfügbarkeit aufgerufen wird, sondern erst, wenn die aktuell laufende Modulfunktion "fertig" ist, richtig?

Grüßle, Michael

olwaldi

Im Prinzip kann ich mir selber antworten - die Funktionen X_Set u.Ä. werden grundsätzlich nicht unterbrochen, da fhem m.W. das fhem-interne Multitasking über die Aufrufe dieser X_* Funftionen aller Module steuert. Das macht das Perl-Programmieren für fhem deutlich einfacher!

Grüßle, Michael

Beta-User

Das betreffende Modul ist "wild":
Zitat von: olwaldi am 11 Februar 2026, 10:23:11Beim Debuggen sieht man sofort, daß viele Geräte dem Denon-Receiver notifys zuschicken, z.B. meine Lampen oder Heizung. Was wäre hier eine sinnvolle Einschränkung? Aktuell nutze ich "unreflektiert"
$hash->{NOTIFYDEV} = "global";Oder ist das schon "zu wenig"?

Grüßle, Michael


Eigentlich benötigt man für so eine Art Modul gar keine NotifyFn, sondern
a) eine AttrFn, die die dort im Moment enthaltenen Funktionen abbildet, und
b) einen durch das define ausgelösten Timer, der die ersten Infos vom Receiver holt.

Dispatch wird imo auch unnötig aufgerufen und macht vermutlich die Trigger durch Endupdate kaputt...
Server: HP-elitedesk@Debian 13, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors