Probléme avec GPIO dans Domoticz

Forum dédié aux questions concernant la configuration de votre serveur sous Linux
Did21
Messages : 11
Inscription : 27 nov. 2014, 11:09
Localisation : Côté d'or

Probléme avec GPIO dans Domoticz

Message 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
@+
mike913
Messages : 159
Inscription : 18 oct. 2014, 10:22
Localisation : Morsang / Orge - Essonne
Contact :

Re: Probléme avec GPIO dans Domoticz

Message 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
DS718+ 2 x 3To(SHR) - Firmware: DSM 7.0.1-42218
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Probléme avec GPIO dans Domoticz

Message 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
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Did21
Messages : 11
Inscription : 27 nov. 2014, 11:09
Localisation : Côté d'or

Re: Probléme avec GPIO dans Domoticz

Message par Did21 »

Bonsoir
Je teste cela demain et je vous tiens au courant du résultat.
Merci pour cette réponse rapide.
Did21
Messages : 11
Inscription : 27 nov. 2014, 11:09
Localisation : Côté d'or

Re: Probléme avec GPIO dans Domoticz

Message 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
Jihem
Messages : 337
Inscription : 19 sept. 2014, 13:04
Localisation : Finistère Sud

Re: Probléme avec GPIO dans Domoticz

Message 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.
Hard:Raspberry Pi4 + SSD Arduino Tablette murale Archos
Soft: Domoticz WireGuard vpn Homebridge Tradfri Ikea
Devices:[/colore]Rfxtrx433 DI-O Chacon Sonoff touch Anémomètre, pluviometre, sondes Orégon, capteurs humidité Miflora, téléinfo
Did21
Messages : 11
Inscription : 27 nov. 2014, 11:09
Localisation : Côté d'or

Re: Probléme avec GPIO dans Domoticz

Message 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?
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Probléme avec GPIO dans Domoticz

Message par patrice »

Bonsoir

Tu as modifié le script comment ?
Donnes en un exemplaire ici STP
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Did21
Messages : 11
Inscription : 27 nov. 2014, 11:09
Localisation : Côté d'or

Re: Probléme avec GPIO dans Domoticz

Message 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)
@+
Jihem
Messages : 337
Inscription : 19 sept. 2014, 13:04
Localisation : Finistère Sud

Re: Probléme avec GPIO dans Domoticz

Message 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
Hard:Raspberry Pi4 + SSD Arduino Tablette murale Archos
Soft: Domoticz WireGuard vpn Homebridge Tradfri Ikea
Devices:[/colore]Rfxtrx433 DI-O Chacon Sonoff touch Anémomètre, pluviometre, sondes Orégon, capteurs humidité Miflora, téléinfo
Répondre