Re: Fiabilisation des détecteurs de mouvement PIR chinois
Publié : 03 nov. 2017, 11:36
Hello.
Je déterre un peu car je cherchais un moyen de gérer ma présence suivant la totalité de mes capteurs de mouvement.
J’étais partie sur le même principe: si un détecteur passe a ON j'oublie, sauf si lui même ou un autre détecteur était déjà passé a ON il y a peu.
J'ai regardé un peu ce script mais je ne l'ai pas compris. Du coup, j'essai de faire le miens en collant a celui la mais sans les variables.
Je suis en plein dans la boucle for: Si le détecteur passe a ON mais c'est la première fois qu'il est a ON depuis 1 minutes je vérifie les autres. Si un des détecteur était a ON il y a moins d'une minute, je valide et je souhaite sortir de ma boucle de recherche pour ne pas vérifier les autres (et soulager domoticz).
Avez vous un moyen de sortir de la boucle for sans interrompre le script ?
Je déterre un peu car je cherchais un moyen de gérer ma présence suivant la totalité de mes capteurs de mouvement.
J’étais partie sur le même principe: si un détecteur passe a ON j'oublie, sauf si lui même ou un autre détecteur était déjà passé a ON il y a peu.
J'ai regardé un peu ce script mais je ne l'ai pas compris. Du coup, j'essai de faire le miens en collant a celui la mais sans les variables.
Je suis en plein dans la boucle for: Si le détecteur passe a ON mais c'est la première fois qu'il est a ON depuis 1 minutes je vérifie les autres. Si un des détecteur était a ON il y a moins d'une minute, je valide et je souhaite sortir de ma boucle de recherche pour ne pas vérifier les autres (et soulager domoticz).
Avez vous un moyen de sortir de la boucle for sans interrompre le script ?
Code : Tout sélectionner
--recuperer l'etat du device
local etat=devicechanged[next(devicechanged)]
local delai=60
--Ceci: next(devicechanged)..': '..devicechanged[next(devicechanged)]
--Affiche cela: " Motion test: On "
warn(script..'1 Verification sur device: '..device..': '..etat..' '..lastSeen(next(devicechanged)), debug)
--si j'allume le meme motion en moins de 10 secondes alors Detection de presence passe a On
if (etat=='On' and lastSeen(device)<delai) or (od['Television']=='On' or od['Presence benjamin'] == 'On' or od['Smartphone celine'] == 'On') then
warn(script..' 2 Detection presence sur deuxieme etat en moins de 10s valide: '..etat..' '..lastSeen(next(devicechanged)), debug)
switchOn('Detection presence')
--sinon je verifie qu'un autre motion n'etait pas deja a on depuis le delai en secondes
elseif etat=='On' then
for key, valeur in pairs(PIR) do
local etat=tostring(devicechanged[valeur])
warn(script..'1.2 Verification sur autre device: '..valeur..': '..etat..' '..lastSeen(valeur), debug)
if lastSeen(valeur)<delai then
switchOn('Detection presence')
warn(script..'2.2 Detection presence sur un autre device: '..valeur..': '..etat, debug)
--Sortir de la boucle car je viens de valider un deuxieme device.
end
end
end