Le script de Guillaume est presque parfait et merci a lui,ganq a écrit : 16 déc. 2015, 21:48 Bonjour j'ai crée un dummy Relevé Temp et je teste régulièrement tous les capteurs qui commencent par "Temp "grace à un script time. Si les valeurs sont plus vieille qu'une heure, le dummy se met à ON, un mail est envoyé et une notification NMA. Tant que le dummy n'est pas remis à 0, les alertes sont désactivées.
Code : Tout sélectionner
-- Guillaume Anquetil - 20/06/2015 -- ce script vérifie les données des capteurs de température (qui commence par 'Temp ')et envoie mail et nma si le capteur n'est pas actualisé -- Si un capteur ne fonctionne plus, on peut changer son nom pour éviter un mail toutes les heures commandArray = {} -- récupération de l'heure actuelle heure_actuelle=os.time() -- si debog différent de 0 ajoute des log et met un écart plus faible debog=0 if (debog~=0) then delai=100 print(otherdevices['Relevé Temp'] else delai=3600 end alerte=0 for i, v in pairs(otherdevices) do if (i:sub(1,5)=='Temp ') then if (debog~=0) then print (i,v) end i2 = tostring(i) s = otherdevices_lastupdate[i2] year = string.sub(s, 1, 4) month = string.sub(s, 6, 7) day = string.sub(s, 9, 10) hour = string.sub(s, 12, 13) minutes = string.sub(s, 15, 16) seconds = string.sub(s, 18, 19) t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds} if (debog~=0) then print (t2) end if (debog~=0) then print (heure_actuelle-t2) end if (heure_actuelle-t2 > delai) and (otherdevices['Relevé Temp']=='Off')then if (debog~=0) then print('alerte') end --envoyer notification nma cmd = ' /home/pi/domoticz/scripts/nma.sh Domoticz_'..i..'_erreur capteur température 0' os.execute(cmd) --envoyer mail mail = 'Domoticz Alerte Age Sonde Temperature #Attention aux sondes suivantes : '..i..' # XXX@free.fr' commandArray['SendEmail']=mail alerte=1 end end end if alerte==1 then commandArray['Relevé Temp']='On' end return commandArray
juste pour ceux qui comme moi veulent l'utiliser, a noter sur cette ligne de code "if (i:sub(1,5)=='Temp ') " que le nom du sensor de température doit être quelque chose comme "Temp " avec un espace(exemple: Temp chambre) ou bien changer le code en if (i:sub(1,4)=='Temp') si vous n'avez pas d'espace dans le nom du sensor.(par exemple: Temp_Chambre ou TempChambre)
la Deuxieme chose est que lorsqu'un sensor est "out" depuis longtemps (plusieurs jours ou plusieurs heures) le script se déclenche en permanence donc pour stopper ca effectivement il faut soit remettre le capteur en ligne, soit lui changer son nom et tout rentre dans l'ordre.
Pensez a changer l'adresse mail pour les notifications.
ce script m'est surtout utile pour surveiller les capteurs qui renvoient sur des devices virtuels et qui eux n'ont jamais le problème de déconnexion. Donc je pouvais me retrouver avec une température qui semblait a jour sur le device virtuel mais qui en realité n'etait pas a jour car le sensor était déconnecté (c'est le cas notamment des capteurs qui renvoient 2 datas temp et humidité, et dont je n'utilise que la température (en creant un capteur virtuel).
par contre il faut bien penser a mettre ces capteurs en 'utilisés' sinon ils ne seront pas surveillés par le script.
voila le retour pour moi...
cordialement
knasson