le principe : ce script vérifie toutes les deux minutes si il n'y a pas une augmentation de température anormale dans une des pièces référencées dans le tableau les_températures. le nom de chaque sonde doit être encadrer de " et suivi d'une virgule. exemple :"nom sonde 1", "nom sonde2",
il compare chaque température au seuil fixé par la variable seuil_notification (en °). Si une ou plusieurs températures sont supérieures à ce seuil, envoie d'une notification pour chacune d'elle.
/!\ si le seuil est fixé trop bas, cela risque de générer beaucoup de notifications et d'éventuellement bloquer les services de type pushbullet.
version 1.1 = ajout fonctionnalité envoi par mail uniquement
Code : Tout sélectionner
--[[
name : script_time_prealarme incendie.lua
auteur : papoo
version : 1.10
MAJ : 16/08/2016
version 1.1 : ajout fonctionnalité envoi par mail uniquement
création : 15/08/2016
Principe : ce script vérifie toutes les deux minutes si il n'y a pas une augmentation de température anormale dans une des pièces référencées dans le tableau les_températures. le nom de chaque sonde doit être encadrer de " et suivi d'une virgule. exemple :"nom sonde 1", "nom sonde2",
il compare chaque température au seuil fixé par la variable seuil_notification (en °). Si une ou plusieurs températures sont supérieures à ce seuil, envoie d'une notification pour chacune d'elle.
/!\ si le seuil est fixé trop bas, cela risque de générer beaucoup de notifications et d'éventuellement bloquer les services de type pushbullet.
URL post : http://easydomoticz.com/forum/viewtopic.php?f=17&t=2319
]]--
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local debugging = true -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local seuil_notification=40 -- seuil température au delà duquel les notifications d'alarme seront envoyées
local les_temperatures = {"Temp ch1", "Temp ch2", "Temp ch3", "Temp Entree", "T° salon","Couloir 1er étage", "Sonde Cave", "T° tableau elec", "Temp Douche"};
local only_mail = true -- true si l'on ne souhaite être notifié que par mail, false si l'on souhaite toutes les notifications disponible.
local EmailTo = 'email@email.com' -- adresse mail, séparées par ; si plusieurs
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local indexArray=0
local message = {}
local alarmes = 0
commandArray = {}
--------------------------------------------
---------------- Fonctions -----------------
--------------------------------------------
function voir_les_logs (s, debugging)
if (debugging) then
if s ~= nil then
print ("<font color='#f3031d'>".. s .."</font>")
else
print ("<font color='#f3031d'>aucune valeur affichable</font>")
end
end
end
now=os.date("*t")
--------------------------------------------
-------------- Fin Fonctions ---------------
--------------------------------------------
if now.min % 2 == 0 then
voir_les_logs("--- --- --- script_time_prealarme incendie.lua --- --- ---",debugging)
voir_les_logs("--- --- --- seuil de notification ".. seuil_notification .."°C",debugging)
for i,d in ipairs(les_temperatures) do
local v=otherdevices[d]
voir_les_logs("--- --- --- device value "..d.." = "..(v or "nil"),debugging)
if string.match(v, ';') then
v=v:match('^(.-);')
voir_les_logs("--- --- --- svalue "..d.." = "..(v or "nil"),debugging)
end
if v~= nil then
if tonumber(v) > tonumber(seuil_notification) then
alarmes = alarmes+1
table.insert(message, 'température '..d..' : '..v..'°C, supérieure au seuil fixé à '..seuil_notification..'°C <br>')
if only_mail ~= true then
commandArray[indexArray] = {['SendNotification'] = 'Alerte préalarme incendie#température '..d..' : '..v..'°C, supérieure au seuil fixé à '..seuil_notification..'°C'}
indexArray=indexArray+1
end
end
end
end
if alarmes >= 1 and only_mail == true then
voir_les_logs("--- --- --- Nb d'alarmes : "..alarmes,debugging)
objet = 'Alerte préalarme incendie '..os.date("%H:%M")
commandArray['SendEmail']= objet..'#'.. table.concat(message) .. '#' .. EmailTo
voir_les_logs("--- --- --- Objet:"..objet,debugging)
voir_les_logs("--- --- --- Corps du message: "..table.concat(message),debugging)
voir_les_logs("--- --- --- Destinataire: "..EmailTo,debugging)
end
voir_les_logs("--- --- --- Fin script_time_prealarme incendie.lua --- --- ---",debugging)
end -- if now
return commandArray