Hallo Kurt,
hier mal ein Versuch in fhem-DOIF. Ich habe es hoffentlich verstanden, war ja nicht sooo einfach

Du kannst die die DOIF-Definition und z.B. die licht1 und licht2 Definition per RAW-import anlegen. Alle Devices erscheinen im Raum di_licht. Die Ausgabe erscheint im Log, der command-state des DOIF ändert sich nicht, wenn z.B. licht1 und dann licht2 dunkel werden.
Das DOIF ist generisch aufgebaut, d.h. wenn Du weitere Devices lichtx mit dem selben reading illuminance_lux definierst werden diese auch berücksichtigt. Solltest Du ein Device löschen bleiben die Readings im DOIF erhalten, die musst Du dann von Hand rausnehmen, falls sie stören.
defmod di_licht DOIF (["^licht:^illuminance_lux",20] < 10 and [?$SELF:l_$DEVICE,"dunkel"] eq "hell")\
({Log3 "undef",3,"Warnung - Licht aus $DEVICE"}, setreading $SELF l_$DEVICE dunkel)\
DOELSE\
(setreading $SELF l_$DEVICE hell)\
\
##licht1 licht2 licht3
attr di_licht do always
attr di_licht room di_Licht
das DOIF triggert auf eine Änderung von illuminance_lux eines beliebigen lichtx devices, vergleicht, ob der Wert < 10 UND das Reading l_lichtx auf hell steht. Nur dann ist der gesamte Ausdruck wahr. Das "hell" in der Abfrage ist ein default-Wert und wird für den Fall gebraucht, dass das Reading noch nicht existiert.
Zum spielen noch 2 lichtx-Devices, die Anzahl kannst Du zum testen dann beliebig erhöhen:
defmod licht1 DOIF ##
attr licht1 event-on-update-reading illuminance_lux
attr licht1 room di_Licht
attr licht1 stateFormat ist: illuminance_lux
attr licht1 uiTable {\
package ui_Table;;\
}\
\
\
widget([$SELF:illuminance_lux],"uzsuToggle,5,15")
setstate licht1 ist: 15
setstate licht1 2022-05-13 16:01:14 cmd 0
setstate licht1 2022-05-13 16:19:07 illuminance_lux 15
setstate licht1 2022-05-13 16:01:14 mode enabled
setstate licht1 2022-05-13 16:01:14 state initialized
defmod licht2 DOIF ##
attr licht2 event-on-update-reading illuminance_lux
attr licht2 room di_Licht
attr licht2 stateFormat ist: illuminance_lux
attr licht2 uiTable {\
package ui_Table;;\
}\
\
\
widget([$SELF:illuminance_lux],"uzsuToggle,8,18")
setstate licht2 ist: 8
setstate licht2 2022-05-13 16:01:14 cmd 0
setstate licht2 2022-05-13 16:18:29 illuminance_lux 8
setstate licht2 2022-05-13 16:01:14 mode enabled
setstate licht2 2022-05-13 16:01:14 state initialized
ein
delete TYPE=DOIF:FILTER=room=di_Licht
löscht das DOIF und die lichtx Devices wieder.
Viel Erfolg!
Sany