Standard Bewegungsmelder an Fibaro Dimmer

Hallo zusammen. Folgende Konstellation: Ich habe einen Standard Bewegungsmelder BJ Wächter 70 an einen Fibaro Dimmer an den Eingang S2 angeschlossen. Der BW schaltet bei Bewegung den Eingang S2 für 1min auf die Phase. Der Dimmer ist auf Taster konfiguriert , da an S1 eine Wechselschaltung hängt (mit Taster). Die SceneActivation ist aktiv. Das ganze funktioniert auch grundsätzlich. Wird eine Bewegung erkannt, triggert meine Scene im Homecenter 2. In der Scene selbst triggere ich auf das Hold Event. Dort werden dann verschieden Lampen eingeschaltet und nach einer Verzögerungszeit wieder ausgeschaltet. Hier ist aber jetzt das Problem - wurde in der Zeit in der die Szene noch läuft erneut eine Bewegung erkannt, passiert nichts. Das heißt man steht manchmal im Dunkeln:(. Kann man den Schaltzustand von S2 innerhalb der Szene abfragen? Dann könnte man am Ende der Szene nochmal prüfen ob S2 noch/wieder aktiv ist und die Verzögerungszeit erneut ablaufen lassen.

Das ist meiner jetzige Code

--[[
%% properties
74 sceneActivation
%% globals
--]]

----------------------------------------- 
--   SCENE ACTIVATED BY DIMMER SWITCH  --
-----------------------------------------

-- Making sure that only one instance of the scene is running.
if (fibaro:countScenes() > 1) then
  fibaro:abort();
end
    
-- setup some local variables
local startSource = fibaro:getSourceTrigger();
local id= 74; 


function GetEinschalten() 
  local month = tonumber(os.date('%m'))
  local tabm = { [1] = "1800", [2] = "1800", [3] ="1900", [4] = "1900", [5] = "2030", [6] = "2130",
    [7] = "2145", [8] = "2100", [9] ="2000", [10] = "1900", [11] = "1800", [12] = "1800" }    
  return tonumber(tabm[month])
end 


-- MAIN CODE ---------------------------------------------------------

if (tonumber(fibaro:getValue(id, "sceneActivation"))==26) then
	  fibaro:debug("26");
end

if (tonumber(fibaro:getValue(id, "sceneActivation"))==24) then
	  fibaro:debug("24");
end

if (tonumber(fibaro:getValue(id, "sceneActivation"))==25) then
	  fibaro:debug("25");
end

if (tonumber(fibaro:getValue(id, "sceneActivation"))==22) then --hold
      fibaro:debug(string.format(os.date("%d.%m.%Y")))
  	  fibaro:debug("Bewegungsmelder aktiv");
  	  fibaro:call(2,"sendEmail","Ausloesung BWM Garage","Bewegungsmelder Garage aktiv")

  
  	  if (tonumber(os.date("%H%M")) >= GetEinschalten() or tonumber(os.date("%H%M")) <= 0700) then
        fibaro:debug("Beleuchtung einschalten");

        fibaro:call(140, "turnOn")
        fibaro:call(141, "turnOn")
        fibaro:call(142, "turnOn")
        fibaro:call(143, "turnOn")
      
        fibaro:call(69, "turnOn")
      
        fibaro:sleep(math.random(5000, 15000)) ; --5 bis 15 Sek. warten 
        
        fibaro:call(74, "turnOn")
        
        fibaro:sleep(120*1000)
      
        fibaro:debug("Beleuchtung ausschalten");
        
        fibaro:call(140, "turnOff")
        fibaro:call(141, "turnOff")
        fibaro:call(142, "turnOff")
        fibaro:call(143, "turnOff")
      
        fibaro:call(69, "turnOff")
        
       	fibaro:sleep(math.random(5000, 15000)) ; --5 bis 15 Sek. warten 
      
        fibaro:call(74, "turnOff")    
      end
end


if (tonumber(fibaro:getValue(id, "sceneActivation"))==23) then --release
  	  fibaro:debug("Bewegungsmelder inaktiv");
end

if (tonumber(fibaro:getValue(id, "sceneActivation"))==20) then
	  fibaro:debug("20");
end

if (tonumber(fibaro:getValue(id, "sceneActivation"))==21) then
	  fibaro:debug("21");
end

if (tonumber(fibaro:getValue(id, "sceneActivation"))==24) then
	  fibaro:debug("24");
end

if (tonumber(fibaro:getValue(id, "sceneActivation"))==25) then
	  fibaro:debug("25");
end

Diesen Code möchte ich einbauen wenn S2 noch aktiv

repeat
fibaro:sleep(1000);
timer = timer-1
– Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
if ??? then
timer=starttimer;
end
until (timer<1)

Ich hoffe es hat einer eine Idee