Page 1 sur 1

[Résolu] Script Lua qui pose soucis

Publié : 20 févr. 2022, 18:31
par jacques68
Bonjours à tous
Je suis entrain de faire un script LUA tout simple. Quand je passe la porte d'entrée, via un detecteur cela m'allume 2lampes
Voici le script:

Code : Tout sélectionner

commandArray = {}
if (devicechanged['Capteur porte entree'] =='On')  then
 print('security on')
        commandArray['Lampe1']='On'
        commandArray['Lampe2']='On'
      
end

return commandArray
Jusque là aucun soucis cela fonctionne. :D
L'idée finale est de faire une alarme. Donc j'ai créé un switch virtuel nommé Alarme. Via le planning de ce dernier il s'active à partir de 22h00 le soir en passant à l'état On et à 07h00 le matin il repasse sur Off.

J'ai donc modifié le code comme cela:

Code : Tout sélectionner

commandArray = {}
if (devicechanged['Capteur porte entree'] =='On') and (otherdevices['Alarme'] =='On') then
 print('security on')
        commandArray['Lampe1']='On'
        commandArray['Lampe2']='On'

end

return commandArray
Sauf que là, ben...ça fonctionne pas!!! :( :( :oops: :oops:
Dans les logs j'ai juste comme quoi le détecteur passe à On puis à Off et puis rien,...

Là je sèche complètement ce n'est pourtant pas le premier script que je fais, ou je commence à me faire vieux.... :roll: :roll:
Merci de votre aide

Re: Script Lua qui pose soucis

Publié : 20 févr. 2022, 18:38
par Jeff
Quand on veut faire plusieurs actions à la suite dans un script, on doit passer les command array de cette façon :

Code : Tout sélectionner

commandArray[# commandArray +1]={['Group:Lampes']='Off AFTER 15'} -- seconds
commandArray[# commandArray +1]={['OpenURL']='192.168.1.110/control?cmd=event,alarmon'}
Edit : pour ton script, le device alarme est bien un interrupteur qui renvoi On et Off ou un autre état !

Re: Script Lua qui pose soucis

Publié : 20 févr. 2022, 18:53
par jacques68
Pour répondre le device alarme est bien un interrupteur qui renvoi On ou Off.
Par contre concernant les command array, dans le premier script elles passent très bien, le soucis du second script est qu'à la base il n'est même pas lu puisque le "print" que j'ai mi dedans n'apparait meme pas dans les logs... :|

Re: Script Lua qui pose soucis

Publié : 20 févr. 2022, 19:03
par Neutrino
Pour le commandArray, les 2 se valent et fonctionnent.

Est-ce que le Alarme tout seul fonctionne ?

Re: Script Lua qui pose soucis

Publié : 20 févr. 2022, 19:13
par jacques68
Oui il fonctionne

Re: Script Lua qui pose soucis

Publié : 20 févr. 2022, 19:55
par Neutrino
On va rajouter des parenthèses :

Code : Tout sélectionner

if ((devicechanged['Capteur porte entree'] =='On') and (otherdevices['Alarme'] =='On'))then

Re: Script Lua qui pose soucis

Publié : 20 févr. 2022, 20:43
par Keros
Tu peux rajouter des print() avant la condition pour connaitre l'état de 'Capteur porte entree' et 'Alarme' ?

Re: Script Lua qui pose soucis

Publié : 22 févr. 2022, 20:17
par jacques68
Bonjour à tous!!
Bon ben voilà j'ai enfin compris pourquoi ça marche pas. J'ai tenté de rajouter des parenthèses sans succès. Idem pour les print, rien...
J'ai alors eu l'idée de jeter un œil dans mes dispositifs inutilisés et j'ai trouvé un second dispositif nommé alarme qui vient de je ne sais ou....... :mrgreen: :mrgreen:
Du coup je l'ai renommé et du cout mon script c'est mis à fonctionner!!! :D :D
Plus qu'à rajouter une temporisation et j'en aurai finit...
Merci pour votre aide!! :P :P

Re: [Résolu] Script Lua qui pose soucis

Publié : 22 févr. 2022, 21:04
par Keros
Normalement, avec les prints, tu aurais dû voir que l'info de débogage ne correspondait pas à celle de ton widget. Là, on se serait certainement demandé si tu n'avais pas un doublon de widget.

C'est résolu, tant mieux :)