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.