Page 1 sur 1

[LUA] LowBat --> alerte mail ou plus si affinité

Publié : 08 févr. 2017, 12:24
par vil1driver
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 :twisted:

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 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)

Re: LowBat --> alerte mail ou plus si affinité

Publié : 21 janv. 2020, 14:01
par Doudy
Hello,

J'ai une petite erreur dans l’exécution de ce script :

Code : Tout sélectionner

2020-01-21 10:44:00.891 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_lowBatAlert.lua:
/home/pi/domoticz/scripts/lua/script_time_lowBatAlert.lua:44: 
attempt to concatenate global 'admin' (a nil value)
Je ne sais pas d'ou vient "admin" :oops:
Une idée ?
Merci
;)

Re: LowBat --> alerte mail ou plus si affinité

Publié : 21 janv. 2020, 14:08
par vil1driver
Salut,

admin est une variable contenant l'adresse mail (initialement dans modules.lua mais supprimée).
Indique ton mail à la place tout simplement

Re: LowBat --> alerte mail ou plus si affinité

Publié : 19 févr. 2020, 21:21
par vil1driver
Good ?