En convertissant une scène en mode block je suis tombé sur la fonction setTimeout.   Cette fonction retarde d'un delay défini l'exécution d'une séquence lua. Si la fonction sleep suspend le déroulement d'une scène, la fonction setTimeout met en arrière plan les instructions de la fonction, mais la scène lua poursuit son cours. --[[ %% properties 52 value 52 armed %% globals --]] fibaro:debug("Start"); fibaro:debug("scene n "..fibaro:countScenes()); local val = fibaro:getValue(52, "value"); local arm = fibaro:getValue(52, "armed"); fibaro:debug("Etat "..val.." "..arm); setTimeout(function() ------ début de la fonction local delayedCheck0 = false; local tempDeviceState0, deviceLastModification0 = fibaro:get(52, "value"); fibaro:debug("Temps écoulé "..os.time() - deviceLastModification0); if (( (tonumber(val) == 0 and tonumber(arm) == 0) ) and (os.time() - deviceLastModification0) >= 120) then delayedCheck0 = true; end if ( delayedCheck0 == true ) then fibaro:call(163, "turnOff"); end end, 120000) ------- fin de lafonction avec delai de 120 secondes fibaro:debug("End"); Le but de ce script est d'éteindre une lampe si plus d'activité (52 = détecteur de mouvement) pendant 2 mn.   Analyse du debug.     On voit que la scène s'exécute de Start à  End en mettant la fonction timeout en attente. A chaque passage, il y a deux scènes qui démarrent. Val = 1 activation du détecteur, val = 0 retour au repos après 20 secondes. Quand le délai arrive à  120 secondes et pas de modification de l'état du détecteur, les instructions sont exécutées. Ici, éteindre la lumière.   Il me semble que cette fonction peut ouvrir des horizons pour nos petit bidouillages.