Encore un script d'alarme
Publié : 05 janv. 2020, 21:22
Bonjour,
pour faire mon original, je vous soumet un script d'alarme.
Et je demande un peu d'aide : la partie "effraction" de mon script ne se déclenche pas (et je ne vois pas pourquoi !)
quand ça fonctionnera correctement, je rajouterai un troisième morceau avec la détection incendie ...
je prends touts les critiques et les coup de main.
pour faire mon original, je vous soumet un script d'alarme.
Et je demande un peu d'aide : la partie "effraction" de mon script ne se déclenche pas (et je ne vois pas pourquoi !)
Code : Tout sélectionner
commandArray = {}
local counter = 'Niveau_Alerte_counter'
local detection = (tonumber(uservariables[counter] +3)) -- +3 = coeff de modification
local seuil = 8 -- <=8 un seuil de declenchement, soit 3 detections
local dureesirene = 3 -- duree de la gueulante
local effraction = (tonumber(uservariables[counter] +8)) -- +8 = coeff de modification
local log = 'oo Alarme oo -> '
local cmd ="tail -n 1000 /tmp/domoticz.txt |grep \'oo Alarme oo\'|sed 's/$/<BR>/'"
tc=next(devicechanged)
v=tostring(tc)
--- Each Time a device with a name who start by : " motion "
if (v:sub(1,6)== 'motion') and (tostring(globalvariables['Security']):sub(1,5) == 'Armed') then
print (log..'Détecteur '..v..' activé')
-- increment compteur/sensibilité
commandArray['Variable:Niveau_Alerte_counter']= tostring(detection)
if (detection <= seuil) then
else print (log.."Seuil déclenchement Alarme atteint suite détection")
-- seuil sensibilité/compteur atteint -- déclenchement sirene alarme
if otherdevices['Dummy_Sirene'] =='On' then -- print (log.."La sirene sonne deja")
else print (log.."Declenchement de la sirene")
commandArray['Dummy_Sirene'] = 'On FOR ' ..dureesirene
-- Envoi log par mail
local f = assert(io.popen(cmd,'r'))
local retourf = assert(f:read('*a'))
commandArray ['SendEmail'] = log..'#Declenchement de l\'alarme dans la maison : <BR> ' ..tc..'<BR>Les logs : <BR>'..retourf..'#xxx@xxx'
end
end
else
--- la même avec effraction
if (v:sub(1,10) == 'effraction') and (tostring(globalvariables['Security']):sub(1,5) == 'Armed') then
print (log..'effraction détecteur '..v)
-- increment compteur/sensibilité
commandArray['Variable:Niveau_Alerte_counter']= tostring(effraction)
if (effraction <= seuil) then -- print ("****** effraction detecteur " ..v)
else print (log.."Seuil déclenchement Alarme atteint suite effraction")
-- seuil sensibilité/compteur atteint -- déclenchement sirene
if otherdevices['Dummy_Sirene'] =='On' then -- print (log.."La sirene sonne deja")
else print (log.."Déclenchement de la sirene")
commandArray['Dummy_Sirene'] = 'On FOR ' ..dureesirene
local f = assert(io.popen(cmd,'r'))
local retourf = assert(f:read('*a'))
commandArray ['SendEmail'] = log..'#Declenchement de l\'alarme dans la maison : '..tc..'<BR>Les logs : <BR>'..retourf..'#xxx@xxx'
end
end
end
end
return commandArray
je prends touts les critiques et les coup de main.