[LUA] LowBat --> alerte mail ou plus si affinité
Publié : 08 févr. 2017, 12:24
Salut,
je poste ici un script qui va nous alerter d'aller changer les piles de nos modules
serte domoticz intègre déjà cette fonction mais perso je n'aime pas trop me faire réveiller tous les soirs à minuit
parce-qu’un module réclame une pile neuve
alors voici le script qui va ne faire cette vérification que tous les dimanches midi
ce script utilise différentes fonctions que j'aime avoir dans un fichier séparé que j'ai nommé modules.lua (notamment utilisé dans speedUp)
ce fichier est chargé en début de script et évite d'avoir sans cesse à recopier les même fonctions.. ou d'aller modifier n scripts parce-que l'on a changé le port de domoticz etc.. et ça allège considérablement la lecture du script ce qui n'est pas non plus négligeable..
d'ailleurs tous les futurs scripts que je partagerai seront créés sur ce principe
pensez donc bien à créer ce fichier, sans quoi rien ne va fonctionner (voir ma signature)
je poste ici un script qui va nous alerter d'aller changer les piles de nos modules
serte domoticz intègre déjà cette fonction mais perso je n'aime pas trop me faire réveiller tous les soirs à minuit
parce-qu’un module réclame une pile neuve
alors voici le script qui va ne faire cette vérification que tous les dimanches midi
Code : Tout sélectionner
--[[
domoticz/scripts/lua/script_time_lowBatAlert.lua
ce script vérifie une fois par semaine (le dimanche à midi) l'état des piles de différents équipements
si le niveau est jugé insuffisant, un mail d'alerte est envoyé
--]]
-- chargement des modules
dofile("/home/pi/domoticz/scripts/lua/modules.lua")
local debug = false -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local lowBat = 30 -- niveau de batterie en deçà duquel il y a déclenchement de l'alerte
local capteurs = {}
-- liste de modules à contrôler
capteurs['0']='bureau'
capteurs['1']='fuite deau'
capteurs['2']='salle serveur'
capteurs['3']='douche'
capteurs['4']='chambre'
capteurs['5']='piscine'
capteurs['6']='thomas'
capteurs['7']='salon'
commandArray = {}
if (jour == 'dimanche' and heure == '12:00') then
for i, module in pairs(capteurs) do
local capteur = jsonInfos(module)
if (capteur.BatteryLevel >= lowBat) then
log('Batterie '..module..' : '..capteur.BatteryLevel..'%',debug)
else
warn('Batterie low /!\\ '..module..' : '..capteur.BatteryLevel..'%')
commandArray[tonumber(i)]={['SendEmail']='Battery Low#'..module..' (Level: Low)#'..admin}
end
end
end
return commandArray
ce fichier est chargé en début de script et évite d'avoir sans cesse à recopier les même fonctions.. ou d'aller modifier n scripts parce-que l'on a changé le port de domoticz etc.. et ça allège considérablement la lecture du script ce qui n'est pas non plus négligeable..
d'ailleurs tous les futurs scripts que je partagerai seront créés sur ce principe
pensez donc bien à créer ce fichier, sans quoi rien ne va fonctionner (voir ma signature)