Page 1 sur 1

Recherche l'exclusion sur une boucle

Publié : 29 déc. 2017, 08:52
par landaisbenj
Bonjour a tous.

Je viens soliciter votre aide pour un petit script.

Je fais une detection de presence avec trois capteur de mouvement:
-Si un passage devant un capteur, je verifie si il y a deja eu un passage il y a moins de 30 s
Sinon je boucle sur les autres capteurs pour verifier si il y a eu un passage il y a moins de 600 s sur au moins un autre.

Le problème c'est que ma boucle prend en compte les 3 capteurs et je cherche a exclure le premier testé:

Code : Tout sélectionner

local PIR={}
PIR['0']='Motion entree'
PIR['1']='Motion couloir'
PIR['2']='Motion salon'

--recuperer l'etat du device
local etat=devicechanged[next(devicechanged)]

--si un presence etait deja detecté alors j'attends 10min
if etat=='On' and (od['Detection presence']=='Off' or (od['Detection presence']=='On' and lastSeen('Detection presence')>600)) then
--si le motion était déjà a on il y a moins de 30s alors Detection de presence passe a ON
if lastSeen(next(devicechanged))<30 then
warn(script..' 1 Detection presence sur deuxieme etat en moins de 30s valide: '..etat..' '..lastSeen(next(devicechanged)), debug)
    switchOn('Detection presence')
--sinon je vérifie qu'au moins un autre motion était à ON depuis 60 secondes
else
    for deviceValue,deviceName in pairs(PIR) do
        if lastSeen(deviceName)<600 then
            switchOn('Detection presence')
warn(script..'1.2 Detection presence sur un autre device: '..deviceName..': '..deviceValue, debug)
break
        end
    end
end
Auriez-vous une idée ?