Page 1 sur 2

Probléme avec GPIO dans Domoticz

Publié : 27 nov. 2014, 11:48
par Did21
Bonjour à tous
J’essaie de reproduire le fonctionnement de cette vidéo en utilisant les GPIO:
https://www.youtube.com/watch?v=7ve0KLruhU4
Dans Domoticz j'arrive à déclarer l'entrée et la sortie que je veux utiliser.
L'entrée passe à 1 fermée lorsque j'actionne le bouton et à 0 lorsque je le relache.
La sotie est bien pilotable depuis Domoticz lorsque je la force en direct l'ampoule s'allume et ma led s'allume et si je rappuie l'ampoule s'eteint et la led de ma sortie aussi.

Si je mets mon bouton en dispositif esclave de la sortie je voie bien le bouton se fermer et l'ampoule dans Domoticz s'allume mais ma LED ne veut pas changer d'état et elle reste éteinte.
J'ai un message dans le terminal:
(GPIO Port) Lighting 1 (E17)
GPIO: Done processing interrupt for GPIO 18.

Je suis donc passé par un script Lua comme dans la vidéo " script_device_gpio.lua ":

Code : Tout sélectionner

commandArray = {}
if (deviceschanged['E17'] == 'Open') and otherdevices['S18'] == 'Off') then
commandArray['S18'] = 'On'
end
if (deviceschanged['E17'] == 'Closed') and otherdevices['S18'] == 'On') then
commandArray['S18'] = 'Off'
end
return commandArray
Je n'y connaît rien en ligne de programmation et je pense qu'il y a des erreurs car le terminal me renvoie ceci:
/home/pi/domoticz/scripts/lua/script_device_gpio.lua:2: 'then' expected near ')'

Merci de m'aider à comprendre pourquoi cette Led ne s'allume pas
@+

Re: Probléme avec GPIO dans Domoticz

Publié : 27 nov. 2014, 12:04
par mike913
Bonjour

Il y a un problème de parenthèse: il faut supprimer la parenthèse après 'Open'
if ( deviceschanged['E17'] == 'Open' and otherdevices['S18'] == 'Off ') then

Code : Tout sélectionner

commandArray = {}
if (deviceschanged['E17'] == 'Open') and otherdevices['S18'] == 'Off') then
commandArray['S18'] = 'On'
end
if (deviceschanged['E17'] == 'Closed') and otherdevices['S18'] == 'On') then
commandArray['S18'] = 'Off'
end
return commandArray

Re: Probléme avec GPIO dans Domoticz

Publié : 27 nov. 2014, 12:05
par patrice
Bonjour

Parenthéses en trop apres tes 2 'Open'
commandArray = {}
if (deviceschanged['E17'] == 'Open') and otherdevices['S18'] == 'Off') then
commandArray['S18'] = 'On'
end
if (deviceschanged['E17'] == 'Closed') and otherdevices['S18'] == 'On') then
commandArray['S18'] = 'Off'
end
return commandArray

Bon Appétit

Re: Probléme avec GPIO dans Domoticz

Publié : 27 nov. 2014, 19:36
par Did21
Bonsoir
Je teste cela demain et je vous tiens au courant du résultat.
Merci pour cette réponse rapide.

Re: Probléme avec GPIO dans Domoticz

Publié : 28 nov. 2014, 10:53
par Did21
Bonjour
J'ai modifié le script et j'ai une erreur:

Code : Tout sélectionner

Error: /home/pi/domoticz/scripts/lua/script_device_gpio.lua:2: attempt to index global 'deviceschanged' (a nil value)
Avez vous une idée du problème ?
Ou puis je trouver une liste des messages d'erreur pour les scripts LUA ?
Merci

Re: Probléme avec GPIO dans Domoticz

Publié : 01 déc. 2014, 07:39
par Jihem
Bonjour
Peux tu nous dire à quoi correspond E17?
Si c'est un interupteur il faut mettre On ou Off
Si c'est un contact c'est bien Open et Closed.

Re: Probléme avec GPIO dans Domoticz

Publié : 02 déc. 2014, 18:21
par Did21
Bonjour
E17 est un bouton poussoir branché sur GPIO 17.
Dans domoticz il correspond à un contact nommé E17
Lorsque je reste appuyé sur le bouton poussoir ,E17 dans Domoticz change bien d'état et si je le relâche il revient à l'état repos.
Vois tu quelque chose qui ne correspond pas dans l'écriture du script?

Re: Probléme avec GPIO dans Domoticz

Publié : 02 déc. 2014, 21:44
par patrice
Bonsoir

Tu as modifié le script comment ?
Donnes en un exemplaire ici STP

Re: Probléme avec GPIO dans Domoticz

Publié : 03 déc. 2014, 08:05
par Did21
Bonjour
J'ai conservé mon script initial en supprimant les parenthèses comme j'ai posté plus haut.
Avec toujours la même erreur qui s'affiche:
Error: /home/pi/domoticz/scripts/lua/script_device_gpio.lua:2: attempt to index global 'deviceschanged' (a nil value)
@+

Re: Probléme avec GPIO dans Domoticz

Publié : 03 déc. 2014, 08:11
par Jihem
Bonjour

Essayes d'envoyer depuis ton navigateur la commande

Code : Tout sélectionner

http://IPraspberry:port domoticz/json.htm?type=devices&rid=IDX

en remplaçant IPraspberry-portdomoticz et IDX par tes valeurs, tu va recevoir une liste de données dans laquelle tu cherches: "Status" : et ça te donneras ce qui faut mettre dans ton script

Code : Tout sélectionner

commandArray = {}
if (deviceschanged['E17'] == 'Open')
ou 
commandArray = {}
if (deviceschanged['E17'] == 'On')
Si le statut n'est pas bon ça renvoi une erreur