[LUA] Températures min/max et envoi par mail
Publié : 24 janv. 2016, 14:38
Salut à tous
J'suis trop content, j'ai enfin réussi à écrire un script .... et il fonctionne
Le but du script est de mémoriser les températures mini et maxi de ma sonde de température extérieur, puis de m'envoyer le résultat par courriel chaque matin à 7h. Ca donne un mail du genre:
Objet: Température du 24
Corps: Cette nuit, la température est descendue à -1.4°C à 1h56. Hier la température maxi a été de 8°C à 13h31
Pour commencer, il faut créer des variables utilisateurs: Attention de bien respecter la casse (minuscule/majuscule) et le type de variable. Si vous voulez changer les noms, il faudra aussi changer ces valeurs dans le script.
Voilà, j'espère que ça sera utile à quelqu'un... 
J'suis trop content, j'ai enfin réussi à écrire un script .... et il fonctionne
Le but du script est de mémoriser les températures mini et maxi de ma sonde de température extérieur, puis de m'envoyer le résultat par courriel chaque matin à 7h. Ca donne un mail du genre:
Objet: Température du 24
Corps: Cette nuit, la température est descendue à -1.4°C à 1h56. Hier la température maxi a été de 8°C à 13h31
Pour commencer, il faut créer des variables utilisateurs: Attention de bien respecter la casse (minuscule/majuscule) et le type de variable. Si vous voulez changer les noms, il faudra aussi changer ces valeurs dans le script.
Code : Tout sélectionner
commandArray = {}
---------------------------------
------ Variables à adapter ------
---------------------------------
local EmailTo = 'adresse@gmail.com' -- adresse mail, séparées par ; si plusieurs
local sonde = 'Extérieur' -- nom de la sonde à surveiller
local debug = 'oui' -- oui ou non pour avoir des valeurs dans le log
---------------------------------
---------------------------------
if (devicechanged[sonde])
then
temp = tonumber(otherdevices_svalues[sonde])
temp_min = tonumber(uservariables["Temp_min_ext"])
temp_max = tonumber(uservariables["Temp_max_ext"])
hour = tonumber(os.date("%H"));
min = tonumber(os.date("%M"));
day = tonumber(os.date("%d"));
if (debug == 'oui') then
print('#### Debug script température ####')
print('sonde '..sonde..' = '..temp..'°C')
print('Temp_max_ext = '..temp_max..'°C')
print('Temp_min_ext = '..temp_min..'°C')
print('Nous sommes le '..day..', il est '..hour..'h'..min..'min')
end
if (tonumber(uservariables["Temp_ext_day"]) ~= day)
then
commandArray['Variable:Temp_min_ext']= tostring(30)
commandArray['Variable:Temp_ext_day'] = tostring(day)
if (debug == 'oui') then
print('Variable "day" changée, maintenant :'..day)
print('Variable Temp_min_ext passée à 30')
end
end
if (temp < temp_min)
then
commandArray['Variable:Temp_min_ext']= tostring (temp)
commandArray['Variable:Temp_min_ext_hour']= tostring (hour)
commandArray['Variable:Temp_min_ext_min']= tostring (min)
print('Temp_min_ext mis à jour : '..temp..' °c à '..hour..'h'..min)
end
if (temp > temp_max)
then
commandArray['Variable:Temp_max_ext']= tostring (temp)
commandArray['Variable:Temp_max_ext_hour']= tostring (hour)
commandArray['Variable:Temp_max_ext_min']= tostring (min)
print('Temp_max_ext mis à jour : '..temp..' °c à '..hour..'h'..min)
end
if (hour==07 and min==00)
then
objet = 'Températures du '..day
message = 'Cette nuit, la température est descendue à '..uservariables["Temp_min_ext"]..'°C à ' ..uservariables["Temp_min_ext_hour"]..'h'..uservariables["Temp_min_ext_min"]..'. Hier la température maxi a été de '..uservariables["Temp_max_ext"]..'°C à '..uservariables["Temp_max_ext_hour"]..'h'..uservariables["Temp_max_ext_min"]..'.'
commandArray['SendEmail']= objet..'#'.. message .. '#' .. EmailTo
commandArray['Variable:Temp_max_ext']= tostring(0)
if (debug == 'oui') then
print('message envoyé')
print('Objet:'..objet)
print('Corps du message: '..message)
print('Destinataire: '..EmailTo)
end
end
if (debug == 'oui') then
print('#### Fin du debug ####')
end
end
return commandArray