Appuis long poussoir GPIO

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 <\>.
poopeye
Messages : 41
Inscription : 13 janv. 2016, 19:28

Appuis long poussoir GPIO

Message 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?
V 2.3530
poopeye
Messages : 41
Inscription : 13 janv. 2016, 19:28

Re: Appuis long poussoir GPIO

Message 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...
V 2.3530
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Appuis long poussoir GPIO

Message 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..
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
poopeye
Messages : 41
Inscription : 13 janv. 2016, 19:28

Re: Appuis long poussoir GPIO

Message 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
V 2.3530
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: Appuis long poussoir GPIO

Message 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.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Appuis long poussoir GPIO

Message 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..
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
poopeye
Messages : 41
Inscription : 13 janv. 2016, 19:28

Re: Appuis long poussoir GPIO

Message 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..
V 2.3530
MelloXVI
Messages : 113
Inscription : 28 avr. 2015, 20:17

Re: Appuis long poussoir GPIO

Message 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
Psypok
Messages : 5
Inscription : 20 févr. 2018, 12:55

Re: Appuis long poussoir GPIO

Message 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.
Douns
Messages : 64
Inscription : 04 oct. 2018, 20:38
Localisation : Meurthe-et-Moselle

Re: Appuis long poussoir GPIO

Message 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?
Domoticz V4.10717 sur raspberry pi 3 B+
RFLink Gateway Nodo 433Mhz
Contrôleur Aeon Labs Z-Wave Plus Z-Stick GEN5
Répondre