Page 1 sur 3
Capteur de porte en LUA
Publié : 08 déc. 2017, 19:13
par JRCondat
Bonjour à tous,
Problème toujours d'actualité, mis à jour : https://easydomoticz.com/forum/viewtopi ... 983#p45983
j'ai des capteurs d'ouverture de portes/fenêtres qui me remontent une trame 433Mhz que j'arrive bien à capter avec mon RFLink et donc qui apparaissent comme des Contact Door dans ma liste.
J'ai besoin de réaliser une action dès qu'une trame est reçue, la trame apparait bien dans les logs pas de souci mais dans mes scripts LUA je ne peux jamais la voir car devicechanged ne change jamais puisque l'état est toujours ouvert.
En bref, je ne sais pas si j'ai été clair mais j'aimerai réaliser une action à chaque trame reçue mais malheureusement ça ne donne rien
Code : Tout sélectionner
commandArray = {}
debugging = true
print('Test de script 08/12')
local porteSalon1 = 'Détecteur Ouvt Porte Salon 1'
local porteMaison = 'Détecteur Ouvt Porte Entrée'
commandArray = {}
if (devicechanged['porteSalon1'] == 'Open' or devicechanged['porteSalon1'] == 'On') then
commandArray['Prise commandée A']='On'
print('Porte du salon ouverte')
end
if (devicechanged['porteMaison'] == 'Open' or devicechanged['porteMaison'] == 'On') then
commandArray['Prise commandée A']='On'
print('Porte principale ouverte')
end
return commandArray
Re: Capteur de porte en LUA
Publié : 08 déc. 2017, 19:54
par jackslayter
Re: Capteur de porte en LUA
Publié : 08 déc. 2017, 20:12
par JRCondat
Malheureusement sans résultat

comme on peut le voir dans les logs on voit bien la trame arriver mais rien ne se passe pour autant :
Code : Tout sélectionner
2017-12-08 19:01:12.601 (RFlink) Light/Switch (Détecteur Ouvt Porte Salon 1)
2017-12-08 19:01:18.949 (RFlink) Light/Switch (Détecteur Ouvt Porte Salon 1)
2017-12-08 19:01:41.159 dzVents: Test de script 08/12
2017-12-08 19:01:41.161 (RFlink) Light/Switch (Détecteur Ouvt Porte Salon 1)
2017-12-08 19:02:02.642 Netatmo: No Weather Station devices found...
2017-12-08 19:02:04.312 (RFlink) Light/Switch (Détecteur Ouvt Porte Salon 1)
Re: Capteur de porte en LUA
Publié : 08 déc. 2017, 21:31
par JRCondat
En fait devicechanged n'est jamais bon car le sensor est toujours à On ou Open donc même si la trame arrive On/Open arrive, il était déjà à On/Open donc pas de changement...
Re: Capteur de porte en LUA
Publié : 08 déc. 2017, 21:35
par vil1driver
Salut,
devicechanged est lié à la mise à jour et non au changement..
Re: Capteur de porte en LUA
Publié : 08 déc. 2017, 22:11
par JRCondat
D'accord mais alors dans ce cas, je ne comprends pas pourquoi ça ne passe jamais dans ma boucle

Re: Capteur de porte en LUA
Publié : 08 déc. 2017, 22:25
par Neutrino
Bonsoir,
La bonne nouvelle, c'est que ton script se lance.
Le truc bizarre, c'est qu'il apparaît en dzVents dans les logs.
Un petit nettoyage de cache s'impose pour commencer.
Ensuite vire moi les
'
Code : Tout sélectionner
if (devicechanged[porteSalon1] == 'Open' or devicechanged[porteSalon1] == 'On') then
Re: Capteur de porte en LUA
Publié : 08 déc. 2017, 22:54
par JRCondat
Pas mieux

Mon code :
Code : Tout sélectionner
-- Fichier LUA pour faire l'alarme à la maison commandArray = {}
debugging = true print('Test de script 08/12 CLI')
local porteSalon1 = 'Détecteur Ouvt Porte Salon 1'
local porteMaison = 'Détecteur Ouvt Porte Entrée'
commandArray = {}
if (devicechanged[porteMaison] == 'Open' or devicechanged[porteMaison] == 'On') then
commandArray['Prise commandée A']='On'
print('Porte principale ouverte')
end
if (devicechanged[porteSalon1] == 'Open' or devicechanged[porteSalon1] == 'On') then
commandArray['Prise commandée A']='On'
print('Porte salon ouverte')
end
return commandArray
Et mes logs :
Code : Tout sélectionner
2017-12-08 22:52:25.723 dzVents: Test de script 08/12 CLI
2017-12-08 22:52:25.724 (RFlink) Light/Switch (Détecteur Ouvt Porte Salon 1)
Toujours ce foutu dzVents mais surtout l'état devicechanged non détecté alors qu'on le voit bien dans les logs
Re: Capteur de porte en LUA
Publié : 08 déc. 2017, 23:11
par Neutrino
Ton script est un fichier ou tu utilises l'éditeur intégré ?
Il doit être du style "LUA" et "Device" dans l'éditeur.
Et je rajouterais bien un
histoire de voir quelle valeur doit être testée.
Re: Capteur de porte en LUA
Publié : 08 déc. 2017, 23:28
par JRCondat
Mon script est en fichier et non via l'éditeur. Je l'ai nommé script_device_myAlarm.lua
Grace à la ligne que tu m'as fait rajouter j'ai l'état mais visiblement ça ne suffit pas pour le devicechanger puisque voilà mes logs :
Code : Tout sélectionner
2017-12-08 23:23:11.462 dzVents: Test de script 08/12 CLI
2017-12-08 23:23:11.462 dzVents: Closed
2017-12-08 23:23:11.464 (RFlink) Light/Switch (Détecteur Ouvt Porte Salon 1)
Alors que le code est encore plus simplifié :
Code : Tout sélectionner
debugging = true print('Test de script 08/12 CLI')
local porteSalon1 = 'Détecteur Ouvt Porte Salon 1'
local porteMaison = 'Détecteur Ouvt Porte Entrée'
commandArray = {}
if (devicechanged[porteSalon1] == 'Closed') then
commandArray['Prise commandée A']='On'
print('Porte salon ouverte')
end
print (otherdevices[porteSalon1])
return commandArray
Et dans tous les cas, merci beaucoup de ton aide et patience
