Où sont les scripts ?
Les scripts se situent dans votre répertoire d'installation de domoticz, dans scripts/lua . Pour ma part cela donne /home/pi/domoticz/scripts/lua ).Dans ce repertoire ce situent deux scripts exemples : script_time_demo.lua et script_device_demo.lua
A savoir que les scripts contenant comme dernier mot "demo" sont ignorés par le système. Il peut être judicieux d'aller consulter le contenu de ces scripts pour se donner une première idée.
Qui déclenche les scripts ?
Il existe deux méthodes de déclenchement :
- Device : le changement d'état d'un périphérique. Lorsque je presse un bouton sur ma télécommande ou que mon capteur de mouvement détecte une présence, cela induit un changement d'état : le système va donc parcourir tous les script débutant par script_device_xxxx.lua et executant leur contenu. Nous verrons par la suite comment utiliser ces scritps.
- Time : Le déclenchement est basé sur le temps. Pour ceux qui connaissent le monde Unix on peu assimiler cette partie aux taches planifiées dans Cron. Pour faire simple : le script peut se déclencher sans requérir de changement d'état. Le script de demo présente une manière simple de tester si une porte de garage est ouverte depuis plus de 10 minutes, et ainsi de notifier par mail de cet état. Il n'y a donc pas de changement d'état déclenchant ce script, juste le temps.
Un exemple : une alarme simple
- Dans cet exemple je pars ce cette configuration initiale, notez bien que la casse est très importante !
- 1 capteur de mouvement appelé "Motion Salon".
- 1 capteur de mouvement appelé "Motion Couloir".
- 1 Interrupteur Virtuel appelé "Alarme", permettant d'armer ou pas l'alarme.( pour créer un virtual switch on peut s'inspirer de: http://domoticz.blogspot.fr/2014/03/domoticz-un-virtual-switch-pour-les.html )
Voici le fameux script que nous allons décrypter un peu plus bas :
commandArray = {}
if ((otherdevices['Alarme'] == 'On') and (devicechanged['Motion Salon'] == 'On' or devicechanged['Motion Couloir'] == 'On')) then
--recupere qui a change
mydevice="rien"
if(devicechanged['Motion Salon']=='On')then
mydevice = "Salon"
end
if(devicechanged['Motion Couloir']=='On')then
mydevice = "Couloir"
end
--notifie l'android via NMA
commandArray['SendNotification']='Alarme '..tostring(mydevice)..'#Mouvement detecte avec alarme activee ! !!'
commandArray['SendEmail']='Alarme '..tostring(mydevice)..'#Attention alarme activee#yourmail@gmail.com'
print('Detection sur alarme activee : '..tostring(mydevice))
end
return commandArray
commandArray = {}: Initialise le tableau de commandes qui va être retourné en fin de script. Tous les scripts débutent ainsi.
if ((otherdevices['Alarme'] == 'On') and (devicechanged['Motion Salon'] == 'On' or devicechanged['Motion Couloir'] == 'On')) then: La boucle d'entrée vérifiant que les conditions sont réunies.
devicechanged contient les données sur l'élément ayant changé d'état ( et qui a donc ainsi déclenché le lancement du script). otherdevices contient les données des autres éléments , qui eut n'ont pas changé d'état. Cette ligne vérifie que si
- Le switch "alarme" est bien en état activé.
- Et que soit "Motion Salon" ou "Motion Couloir" ont changé d'état en passant à "On".
commandArray['SendNotification']='Alarme #Mouvement detecte avec alarme activee ! !!'Ajoute Au tableau de commandes retournée en fin de script l'envoi d'une Notification Via NotifyMyAndroid.
commandArray['SendEmail']='Alarme#Attention alarme activee#tonmail@gmail.com' print('Detection sur alarme activee : 'Ajoute Au tableau de commandes retournée en fin de script l'envoi d'une Notification Via Mail. Formalisme : " TITRE DU MAIL#CONTENU DU MESSAGE#mail destinataire. Et voici notre premier script, qu'il ne reste plus qu'à renommer en script_device_alarme.lua ! Une alarme vous notifiera des mouvements , du moment que le virtual switch "alarme" est sur "on".
Aucun commentaire:
Enregistrer un commentaire