Page 1 sur 2
Appuis long poussoir GPIO
Publié : 21 janv. 2016, 22:20
par poopeye
Salut,
Je cherche à détecter un appuis long sur un bouton possoir paramétré en contact dans domoticz afin d'y joindre une action simple, du genre allumer une Led. Mon bouton est branché sur une broche GPIO toujours à Off. Si je fais un appuis bref, ma broche va passer à On furtivement avant de revenir à Off et rien ne se passera. Si je laisse appuié suffisament longtemps (disons 3 secondes), mon Gpio passe donc à On pendant le temps d'appuis (3sec) puis revient à off.
Dans ce cas je cherche à créer un script qui perçoive ce changement d'état de 3 secondes ou plus. Je n'arrive pas via bloky. je pense que ça doit être faisable avec lua mais je ne connais pas la syntaxe... Je pencherai vers quelquechose du genre:
commandArray = {}
if (devicechanged['bouton poussoir] == 'On') during 3 secondes then
commandArray['Led']='On'
end
return commandArray
Un petit coup de pouce?
Re: Appuis long poussoir GPIO
Publié : 25 janv. 2016, 21:43
par poopeye
Quelqu'un aurait une piste de reflexion? Jai essayé avec script_time, des lastupdate... mais rien ne marche!
Mon objectif est de m'affranchir des rebonds via une parade logicielle...
Re: Appuis long poussoir GPIO
Publié : 25 janv. 2016, 22:46
par vil1driver
salut,
les rebonds du bouton poussoir ?
pas joué avec les gpio mais un tout petit peux avec arduino et on utilise une fonction debouncer pour cela..
je ne sais pas pour WiringPi.. je serais assez surpris que ça ne soit pas implicite..
Re: Appuis long poussoir GPIO
Publié : 25 janv. 2016, 23:53
par poopeye
Salut,
Merci pour la réponse. Mais via Lua, y a til un terme qui permtrait de traduire mon "pendant au moins 3 secondes"?
J'aimerais réussir à traduire ça dans un script_device de manière à ce qu'il soit réactif (dès le chnagement d'état...)
commandArray = {}
if (devicechanged['bouton poussoir] == 'On') pendant au moins 3 secondes then
commandArray['Led']='On'
end
return commandArray
Re: Appuis long poussoir GPIO
Publié : 26 janv. 2016, 00:21
par rimram31
"pendant au moins 3 secondes" je comprends ton besoin mais au niveau du hardware, les gpio de domoticz ne détectent jamais que des "edge", soit front montant et du coup On, soit front descendant => Off.
Détecter de façon logicielle "On pendant au moins 3s" ? Je sais pas, il faudrait imaginer un timer armé sur le On, par exemple définir une variable, puis détecter soit la fin de ce timer (comment ?), soit dans le Off désarmer le timer. Je ne sais pas du tout si domoticz et un lastUpdate aurait une précision a quelques secondes, dz n'est pas vraiment fait pour ça.
Après, et le debounce aurait pu avoir du sens (mais ce serait a modifier au niveau du hardware gpio domoticz), pas impossible qu'un appui long tel qu'on le voit nous entraîne en fait plusieurs coupures sur la détection des On et des Off.
Re: Appuis long poussoir GPIO
Publié : 26 janv. 2016, 09:58
par vil1driver
Question con.. T'as essayé d'autres gpio ? Ils n'ont pas. Tous la même fonction, peut-être que celui que tu utilises n'aime pas la façon dont tu l'utilises

ou est simplement malade..
Re: Appuis long poussoir GPIO
Publié : 26 janv. 2016, 21:08
par poopeye
Salut,
Non je n'ai pas essayé d'autres gpio. A voir... Je cherche toujours comment traduire mon "on depuis au moins 3 secondes"... L'idée serait d'avoir 2 sorties avec un même BP (appuis long et appuis court.
Concernant les rebonds, au pire je les traiterai avec une solution hardware, enfin j'essayerai..
Re: Appuis long poussoir GPIO
Publié : 03 févr. 2016, 11:04
par MelloXVI
Hello, j'ai moi aussi regardé pour un bouton poussoir, une personne a réglé ça par une While. En gros le script tourne en boucle, quand il détecte une impulsion On il sort de cette boucle infini
Re: Appuis long poussoir GPIO
Publié : 23 oct. 2018, 15:29
par Psypok
Bonjour à tous,
Je me permet de réactiver ce post car j'ai un soucis similaire.
J'ai un relais 433 sans temporisation que je souhaite piloter avec un RFXcom et Domoticz et je voudrai qu'il reste collé 3 secondes.
Sur le dernier message de ce post, MelloXVI parle d'une personne qui a réglé ça avec une "while"... Ne sachant pas ce que c'est, quelqu'un serait-il en mesure de me renvoyer vers un lien, un script peut-être, ou m'expliquer plus en détail s'il vous plaît ?
Merci d'avance.
Re: Appuis long poussoir GPIO
Publié : 24 oct. 2018, 17:34
par Douns
Psypok a écrit : 23 oct. 2018, 15:29
Bonjour à tous,
Je me permet de réactiver ce post car j'ai un soucis similaire.
J'ai un relais 433 sans temporisation que je souhaite piloter avec un RFXcom et Domoticz et je voudrai qu'il reste collé 3 secondes.
Sur le dernier message de ce post, MelloXVI parle d'une personne qui a réglé ça avec une "while"... Ne sachant pas ce que c'est, quelqu'un serait-il en mesure de me renvoyer vers un lien, un script peut-être, ou m'expliquer plus en détail s'il vous plaît ?
Merci d'avance.
Salut, ton problème n'a rien avoir avec le reste du port!
Tu veux enclencher un relais durant 3 seconde? As-tu essayé de paramétrer le délais d'extinction à 3s sur le switch de ton relais dans domoticz?