Page 1 sur 2
Lua + Mysensors V2 security Lock fonctionne pas
Publié : 16 nov. 2016, 22:28
par Triple0s
bonsoir
J'ai un soucis de script ou de domoticz.
En fait je viens de faire un sensor de type Security Lock a base d'un lecteur RFID. Celui-ci fonctionne très bien, il est reconnu en tant que switch et il envoi bien le On ou le Off; pas de soucis de ce côté la.
Je me décide à faire un srcipt qui active ou non le panneau de sécurité de domoticz suivant si On ou Off.
Si j'active l'alarme avec le rfid, ça fonctionne. Par contre, si je repasse le rfid pour désactiver l'alarme, rien ne se passe.
Dans le log, le changement d'état n'est même pas vu par domoticz, et je suis obligé de réinitialiser le node mysensor.
J'ai le même soucis si je met le security panel en dispositif esclave du rfid.
et si je désactive le lua ou le dispositif esclave, j'ai bien mes on et off du rfid.
Aurais je loupé quelque chose ou est un bug/fonctionnement normal ?
ci dessous mon script_device lua
Code : Tout sélectionner
commandArray = {}
if (deviceName=='Lecteur RFID')then
if deviceValue == "On" then
print('Activation Alarme par le lecteur RFID')
commandArray['Security Panel']='Arm Away'
elseif deviceValue == 'Off' then
print('Désactivation Alarme par le lecteur RFID')
commandArray['Security Panel']='Disarmed'
end
end
return commandArray
et le log ou l'on voit bien la détection de MySensors
Code : Tout sélectionner
2016-11-16 22:26:29.688 (MySensors V2) Lighting 2 (Lecteur RFID)
2016-11-16 22:26:37.377 (MySensors V2) Lighting 2 (Lecteur RFID)
2016-11-16 22:26:38.146 (Rfxcom) Temp + Humidity (Temp SDB Haut)
2016-11-16 22:26:38.576 (Rfxcom) Temp (Temp Entrée)
2016-11-16 22:26:45.452 Hardware Monitor: Fetching data (System sensors)
2016-11-16 22:26:46.412 (MySensors V2) Lighting 2 (Lecteur RFID)
Re: Lua + Mysensors V2 security Lock fonctionne pas
Publié : 16 nov. 2016, 22:37
par thier
je remplacerais ton script par
Code : Tout sélectionner
commandArray = {}
if (devicechanged['Lecteur RFID']== 'On') then
print('Activation Alarme par le lecteur RFID')
commandArray['Security Panel']='Arm Away'
elseif (devicechanged['Lecteur RFID']== 'Off') then
print('Désactivation Alarme par le lecteur RFID')
commandArray['Security Panel']='Disarmed'
end
return commandArray
et j'enregistrerais en script_device pour que le script réagisse à chaque changement d'état du switch
Re: Lua + Mysensors V2 security Lock fonctionne pas
Publié : 16 nov. 2016, 23:01
par Triple0s
J'avais fait cette solution aussi mais même résultat
Re: Lua + Mysensors V2 security Lock fonctionne pas
Publié : 17 nov. 2016, 03:49
par vil1driver
Salut,
Pourtant le script de Thier est bien meilleur, d'où sors tu deviceName et deviceValue ?
Ça n'existe pas !
Est ce que ton dispositif 'Security Panel' existe ?
De plus il te faut utiliser "Disarm"
Re: Lua + Mysensors V2 security Lock fonctionne pas
Publié : 17 nov. 2016, 10:03
par Triple0s
vil1driver, je sors ce script de l'exemple fournit par domoticz
Si tu vas dans les reglages/evenements et que tu choisis LUA au lieu de blocky, il affiche ce code
Code : Tout sélectionner
--
-- Domoticz passes information to scripts through a number of global tables
--
-- otherdevices, otherdevices_lastupdate and otherdevices_svalues are arrays for all devices:
-- otherdevices['yourotherdevicename'] = "On"
-- otherdevices_lastupdate['yourotherdevicename'] = "2015-12-27 14:26:40"
-- otherdevices_svalues['yourotherthermometer'] = string of svalues
--
-- uservariables and uservariables_lastupdate are arrays for all user variables:
-- uservariables['yourvariablename'] = 'Test Value'
-- uservariables_lastupdate['yourvariablename'] = '2015-12-27 11:19:22'
--
-- other useful details are contained in the timeofday table
-- timeofday['Nighttime'] = true or false
-- timeofday['SunriseInMinutes'] = number
-- timeofday['Daytime'] = true or false
-- timeofday['SunsetInMinutes'] = number
-- globalvariables['Security'] = 'Disarmed', 'Armed Home' or 'Armed Away'
--
-- To see examples of commands see: http://www.domoticz.com/wiki/LUA_commands#General
-- To get a list of available values see: http://www.domoticz.com/wiki/LUA_commands#Function_to_dump_all_variables_supplied_to_the_script
--
-- Based on your logic, fill the commandArray with device commands. Device name is case sensitive.
--
commandArray = {}
print ("All based event fired");
-- loop through all the devices
for deviceName,deviceValue in pairs(otherdevices) do
-- if (deviceName=='myDevice') then
-- if deviceValue == "On" then
-- print("Device is On")
-- elseif deviceValue == "Off" then
-- commandArray['a device name'] = "On"
-- commandArray['Scene:MyScene'] = "Off"
-- end
-- end
end
-- loop through all the variables
for variableName,variableValue in pairs(uservariables) do
-- if (variableName=='myVariable') then
-- if variableValue == 1 then
-- commandArray['a device name'] = "On"
-- commandArray['Group:My Group'] = "Off AFTER 30"
-- end
-- end
end
return commandArray
Mon premier script etait la solution de thier (merci à lui)et je le trouve bien plus propre et facile que celui-ci.
Mais malheureusement, il a le même comportement que celui-ci ou même en blocky directement.
Celà me plante Mysensor à tous les coups. Je suis obligé de relancer le node
Re: Lua + Mysensors V2 security Lock fonctionne pas
Publié : 17 nov. 2016, 13:49
par vil1driver
Dans cet exemple deviceName et deviceValue sont des variables créés et remplies par la boucle FOR qui va lire la table otherdevices.
Tu ne peux pas les utiliser directement dans ton code comme tu l'as fait
Ça doit d'ailleurs certainement se voir dans les logs avec la mention 'atempt to compare with a nill value'
Tu surveilles les logs ?
Et en utilisant le script de thier (en modifiant Disarmed par Disarm) tu vois quels print dans tes logs ?
Ton script est du coups dans la base de données ?
Tu l'as bien déclaré de type device ?
Re: Lua + Mysensors V2 security Lock fonctionne pas
Publié : 17 nov. 2016, 14:28
par vil1driver
Tu n'as pas répondu, Security Panel existe ?
Tu le vois parmi tes switchs ?
Re: Lua + Mysensors V2 security Lock fonctionne pas
Publié : 17 nov. 2016, 14:35
par Triple0s
Alors je suis pas chez moi pour tester le script

je le serais ce soir
Oui je surveille le log et non je n'avais pas d'erreur.
Mon script n'est pas dans la base, il est en direct dans le répertoire script/lua de domoticz
Il est bien déclaré en device oui.
Security Panel existe bien, il bascule bien de "Normal" à "arm away" lorsque je presente mon badge RFID et que le lecteur le reconnais et bascule aussi le switch dans dz
Re: Lua + Mysensors V2 security Lock fonctionne pas
Publié : 17 nov. 2016, 14:55
par vil1driver
je ne comprends pas trop pourquoi ton node mysensors plante à cause d'une simple lecture de status..

Re: Lua + Mysensors V2 security Lock fonctionne pas
Publié : 17 nov. 2016, 17:17
par thier
Si tu surveilles les log tu dois voir apparaître la ligne 'Désactivation Alarme par le lecteur RFID' ce qui valide la ligne 'elseif (devicechanged['Lecteur RFID']== 'Off') then'. L’intérêt de mettre des print c'est que ça te permet de voir ou coince ton script. Si tu as la ligne et que ça ne désarme par l'alarm c'est que Vill à raison et tu remplaces ton Disarmed.