Lua + Mysensors V2 security Lock fonctionne pas

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Triple0s
Messages : 37
Inscription : 23 sept. 2015, 15:13

Lua + Mysensors V2 security Lock fonctionne pas

Message 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) 
Dernière modification par Triple0s le 17 nov. 2016, 19:58, modifié 1 fois.
Domoticz sur Linux Mint
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Lua + Mysensors V2 security Lock fonctionne pas

Message 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
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Triple0s
Messages : 37
Inscription : 23 sept. 2015, 15:13

Re: Lua + Mysensors V2 security Lock fonctionne pas

Message par Triple0s »

J'avais fait cette solution aussi mais même résultat
Domoticz sur Linux Mint
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Lua + Mysensors V2 security Lock fonctionne pas

Message 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"
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Triple0s
Messages : 37
Inscription : 23 sept. 2015, 15:13

Re: Lua + Mysensors V2 security Lock fonctionne pas

Message par Triple0s »

vil1driver, je sors ce script de l'exemple fournit par domoticz :o

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
Domoticz sur Linux Mint
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Lua + Mysensors V2 security Lock fonctionne pas

Message 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.

Code : Tout sélectionner

for deviceName,deviceValue in pairs(otherdevices) do... 
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 ?
Dernière modification par vil1driver le 17 nov. 2016, 14:28, modifié 1 fois.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Lua + Mysensors V2 security Lock fonctionne pas

Message par vil1driver »

Tu n'as pas répondu, Security Panel existe ?
Tu le vois parmi tes switchs ?
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Triple0s
Messages : 37
Inscription : 23 sept. 2015, 15:13

Re: Lua + Mysensors V2 security Lock fonctionne pas

Message 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
Domoticz sur Linux Mint
boitier RFXtrx 433 (sondes température, température/hygro, zkp1a, chacon, blyss)
Mysensors (Capteurs PIR, Double relais, relais avec bouton)
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Lua + Mysensors V2 security Lock fonctionne pas

Message par vil1driver »

je ne comprends pas trop pourquoi ton node mysensors plante à cause d'une simple lecture de status.. :|
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Lua + Mysensors V2 security Lock fonctionne pas

Message 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.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Répondre