Page 1 sur 1
Différer notification selon maintien état
Publié : 23 déc. 2015, 11:42
par kassor
Bonjour,
Je tourne un peu en rond et ne parviens pas à solutionner de manière simple mon besoin suivant :
Si la porte reste ouverte plus d'une minute, envoyer une notification par email.
Sous-entendu que si elle a été refermée dans le délai imparti, pas de notification.
J'ai tenté blocky, switch virtuel, shell script avec un sleep, mais dans tous les cas (à moins que je m'y suis mal pris), la notification fini par être envoyée, immédiatement ou en différé, sans tenir compte que la porte s'est refermée rapidement...
Un coup de pouce serait le bienvenue, surtout si il y a une façon simple et que je suis passé à côté !

Re: Différer notification selon maintien état
Publié : 23 déc. 2015, 11:52
par vil1driver
Salut,
Dans le dossier lua il y a un script demo qui fait exctement cela

Re: Différer notification selon maintien état
Publié : 23 déc. 2015, 16:12
par kassor
Merci vil1driver
Effectivement, je n'avais pas pensé à regarder de ce côté. Et bien que je sois à l'aise en shell scripting, je n'ai encore jamais touché au lua... donc j'avoue que j'étais resté sur des méthodes qui me soient accessibles rapidement.
Ceci dit, après avoir regardé le script de demo, ça n'a pas l'air bien compliqué, mais mon premier test n'est pas concluant, puisque je ne reçois rien.
Et je n'ai pas trace de son exécution dans le log (le fameux print du début de script). Y'a t'il un deamon spécifique pour activer lua sur le serveur ? Ou mon script est-il incorrect ?
Code : Tout sélectionner
print('lancement du script de compte a rebours pour la porte ouverte')
t1 = os.time()
s = otherdevices_lastupdate['PorteEntree']
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)
commandArray = {}
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = (os.difftime (t1, t2))
if (otherdevices['PorteEntree'] == 'On' and difference > 60 and difference < 600) then
commandArray['SendNotification']='Porte ouverte depuis plus d une minute !#La porte n a probablement pas ete refermee...'
end
return commandArray
Re: Différer notification selon maintien état
Publié : 23 déc. 2015, 16:59
par vil1driver
Si tu ne l'as pas renommé c'est normal.
Demo dans son nom le désactive..
Re: Différer notification selon maintien état
Publié : 23 déc. 2015, 19:38
par kassor
si si, j'ai bien recréé un fichier après avoir lu le demo
le script est le suivant :
/home/pi/domoticz/scripts/lua/porte_timer.lua
et comme je bosse sous root, je lui ai mis des droits "pi" comme les exemples présents :
-rw-r--r-- 1 pi root
Re: Différer notification selon maintien état
Publié : 23 déc. 2015, 20:59
par vil1driver
Les droits ne sont pas bien importants..
Par contre le nom extrêmement et en l'occurrence il est mauvais.
Renomes le en
script_time_blabla.lua
Vas lire les articles du blog sur lua ainsi que le wiki..
Re: Différer notification selon maintien état
Publié : 23 déc. 2015, 23:25
par kassor
Quel bleu je fais ! (surtout que je suis souvent le premier à conseiller : RTFM lol)
Merci vil1driver , l'erreur était effectivement au niveau du nom, en renommant le script selon ton conseil ça marche à merveille !
Re: Différer notification selon maintien état
Publié : 23 déc. 2015, 23:27
par vil1driver