oha da muss ich passen, mit defmod und setstate habe ich auch noch nicht gearbeitet.
Das Thema mit dem 2 Minuten Sendeintervall habe ich auch nicht näher bearbeitet, ich nutze es aber für den Reset solange Bewegung im Raum ist. Erst wenn kein 2 Minuten-Intervall-Signal kommt ist auch keine Bewegung mehr im Raum und Fhem schaltet das Licht mit Verzögerung aus. Damit ist das Licht eben maximal so lange noch an wie die Verzögerung einprogrammiert hat.
Wie gesagt mein Code ist womöglich mega umständlich, aber er ist schrittweise gewachsen und erweitert worden bis es funktioniert hat. Vom Ablauf, wie beschrieben: EOSC-motion:on löst einen notify aus, der notify setzt den Licht_helper Dummy auf on mit on-for-timer Funktion, das überschreibt sich so lange wie die 2-Minuten-Intervalle gesendet werden, fällt der Licht_helper zurück auf off löst dies einen weiteren notify aus, der das Licht über den virtuellen FHEM-Schalter hart ausschaltet. Zusätzlich wird das Licht noch ausgeschaltet, wenn der EOSC ein motion:off sendet (für den Notfall)
ich versuche mal alles zusammenzukopieren was wichtig sein könnte (ich benutze ausschießlich EnOcean Produkte hierbei)
Grundsätzliche Lichtansteuerung - RCM250 und PTM 210, sowie einen virtuellen Schalter aus FHEM heraus (mit einer freien ID des USB300) - beides im RCM eingelernt:
define virtLicht_KiZi EnOcean FF8B6005
attr virtLicht_KiZi IODev USB300
attr virtLicht_KiZi eventMap B0:off BI:on
attr virtLicht_KiZi manufID 00B
attr virtLicht_KiZi subType switch
Der EOSC:
define EOSC_KiZi EnOcean 019F20DE
attr EOSC_KiZi IODev USB300
attr EOSC_KiZi manufID 00B
attr EOSC_KiZi subType occupSensor.01
der Licht_helper Dummy:
define virtLicht_KiZi_helper dummy
attr virtLicht_KiZi_helper setList on off
attr virtLicht_KiZi_helper useSetExtensions 1
(das useSetExtensions 1 habe ich irgendwo im Forum gefunden, war irgendwie nötig für die richtige Dummy-Funktion)
die drei Notify´s:
define Licht_KiZi_off_notify notify EOSC_KiZi:motion:.off set virtLicht_KiZi off
define Licht_KiZi_on_notify notify EOSC_KiZi:motion:.on set virtLicht_KiZi_helper on-for-timer 180
define Licht_KiZi_helper_off_notify notify virtLicht_KiZi_helper:state:.off set virtLicht_KiZi off
attr Licht_KiZi_helper_off_notify addStateEvent 1
(das add StateEvent 1 habe ich ebenfalls irgendwo im Forum gefunden, war irgendwie auch nötig)
Grüße Svenergy