You need to add 'Filter' Filtr On-On / Off-__ between the outbut from your 'Lock out' and the input of your Stairase lighting function.
When you use this it only sent a 1 and never sent a 0.
the help says about input 1:
Start of the module by a telegram with the value not equal to zero. Output 1 has a one for the duration. If this input receives a zero, then Output 1 switches to zero.
i did made a script and do the same, but it also checks if the doors are closed, it all the doors are closed, then it goes off, if not, it stay on.
*at my script, more doors enable the lights, but not at all doors are the check if it is closed.
but it is a script, not blockly like you used.
Code:
--Read current status/value
deur_berging = grp.getvalue('14/0/57')            --'Deur Berging'
Garage_loopdeur = grp.getvalue('14/0/65')        --'Garage Loopdeur'
Poort = grp.getvalue('14/0/45')                --'Poort Buiten'
Schemering = grp.getvalue('5/0/9')            --'Schemering'
Buitenlamp_achterdeur = grp.getvalue('1/4/162')        --'B verl. Achterdeurlamp (tm)'    
--if one of these go open, set light on
if (deur_berging or Garage_loopdeur or Poort == true) 
        and Buitenlamp_achterdeur == false
        and Schemering < 200
then grp.checkwrite('1/1/162', true)            --'B verl. Achterdeurlamp (s)'
end 
os.sleep (300)                        --wacht voor 300 seconden (5 minuten)
repeat    -- repeat all below till 'Buitenlamp_achterdeur' is off
        
--Read current status/value (find because update time, doenst work with getvalue
deur_berging =         grp.find('14/0/57')            --'Deur Berging'
Garage_loopdeur =     grp.find('14/0/65')            --'Garage Loopdeur'
Poort =         grp.find('14/0/45')            --'Poort Buiten'
--calculate the time differents between now and last time of a true
now = os.time()                                -- current timestamp in seconds
delta_deur_berging    = now - deur_berging.updatetime         -- last object update relative time
delta_Garage_loopdeur     = now - Garage_loopdeur.updatetime         -- last object update relative time
delta_Poort         = now - Poort.updatetime             -- last object update relative time
--Read current status/value
get_deur_berging =     grp.getvalue('14/0/57')            --'Deur Berging'
get_Garage_loopdeur =     grp.getvalue('14/0/65')            --'Garage Loopdeur'
get_Poort =         grp.getvalue('14/0/45')            --'Poort Buiten'
Buitenlamp_achterdeur = grp.getvalue('1/4/162')            --'B verl. Achterdeurlamp (tm)'    
        
--if all is closed for set time turn light off
if         delta_deur_berging >    (1 * 60 ) -- minuten        -- controleer of de PIR niet meer actief is geweest voor de laatste 1 minuut
        and     delta_Garage_loopdeur >    (1 * 60 ) -- minuten        -- controleer of de PIR niet meer actief is geweest voor de laatste 1 minuut
        and     delta_Poort >        (1 * 60 ) -- minuten        -- controleer of de PIR niet meer actief is geweest voor de laatste 1 minuut
        and get_deur_berging == false
        and get_Garage_loopdeur == false
        and get_Poort == false
                and Buitenlamp_achterdeur == true
then    grp.checkwrite('1/1/162', false)            --'B verl. Achterdeurlamp (s)'
end
os.sleep (120)                        --wacht voor 120 seconden (2 minuten)
Buitenlamp_achterdeur = grp.getvalue('1/4/162')        --'B verl. Achterdeurlamp (tm)'    
until (Buitenlamp_achterdeur == false)