Aller au contenu
BSD

Désactiver un bouton dans un VD

Recommended Posts

Bonjour le forum.

Une petite question sur les modules virtuels :

 

Pensez-vous qu'il soit possible, en LUA, de désactiver ponctuellement un bouton ou un slider de module virtuel pendant qu'une boucle 'while true do' ou un 'fibaro:sleep' ou même un autre delai quelconque ne soit atteint ?

 

Je m'explique :

J'ai créé un VD avec deux boutons (Avant - Arrière), et un Slider.

Un clic sur 'Avant' ou sur 'Arrière' lance une action pendant un temps déterminé. 

 

Je souhaite interdire toute nouvelle action tant que le delai n'est pas terminé.

Pour cela, j'aimerai pouvoir 'griser' et interdire les actions des deux boutons et du slider jusqu'à la fin du delai.

 

Qu'en pensez-vous ?

Je ne trouve rien sur ce sujet.

Par avance, merci de vos retours et reflexions en espérant vivement que celà soit possible.

Partager ce message


Lien à poster
Partager sur d’autres sites

avec une variable globale ou un label, qui doit avoir une cernaine valeur pour que le scénario puisse fonctionner

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci jojo de ta réponse.

N'y aurait-il pas plus simple avec une fonction du style :

fibaro:get(ID_VD,"ui.Slider.true")

ou

fibaro:get(ID_VD,"ui.Slider.false")

 

Ce serait idéal, non !

Modifié par BSD

Partager ce message


Lien à poster
Partager sur d’autres sites

regarde ici, tu as toutes les fonctions possible fibaro en LUA

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai bien regardé mais rien !

Ce n'est pas complet car la fonction :

'fibaro:get(ID_VD,"ui.Slider.true")'

par exemple est correcte et ne retourne pas d'erreur dans le debug mais n'est pas documentée...

 

Je pense que dans fibaro:get(ID_VD,"ui.Slider.xxx")

"ui" = user interface

"Slider" = le bouton ou slider

"value", "true", "false" = l'action à réaliser mais ce sont toutes ces actions que je ne trouve pas...

Je cherche encore.

Dans tous les cas, merci de ton aide

 

 

Modifié par BSD

Partager ce message


Lien à poster
Partager sur d’autres sites

bonnes recherches. De tout façon n'ayant plus de box depuis janvier, je ne pourrai pas t'aider plus

Partager ce message


Lien à poster
Partager sur d’autres sites

Pas de soucis et merci encore

J'espère que d'autres bonnes âmes auront une idée de génie... 

Partager ce message


Lien à poster
Partager sur d’autres sites

n'espère pas trop, je suis le seul génie du forum :98:

sauf peut-être @... et @..., et encore ... j'ai des doutes ...

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Lol

Dans tous les cas, tu sembles le seul genie à ne pas être en vacances...

Attends un peu, je vais quand même essayer de frotter ma HC2 pour voir ce qui en sort...

:60:   :93:

 

Mais faute de génie...

N'y aurait-il pas un Dieu du LUA qui entendrait ma prière ?

:13:

Modifié par BSD

Partager ce message


Lien à poster
Partager sur d’autres sites

> Dieu du LUA

@Did ? :P

 

Non mais sérieux, j'aurais proposé comme Jojo, de passer par une variable globale. Un test au début du code LUA du bouton permet de déterminer si on a la droit de continuer ou non.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 Non, moi c'est Dieu du forum (en vacances de Lua) ou Quiche du Lua, tu saisies la nuance? :)

En ce moment, je patauge plutôt dans mes conditions de scénario Jeedom que dans Lua.

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Dieu Lazer et Génie Jojo

:74:

Et tant pis pour moi Did si Jeedom l'emporte... lol

Dans tous les cas, vos conclusions recoupent les miennes sur le fonctionnement des boutons.

Sur le fond la solution fonctionne bien pour les boutons uniquement...

Sur la forme c'est moins fun !

J'espérais pouvoir désactiver (griser) les boutons pour ne pas qu'ils puissent être utilisés et qu'il soit bien visible qu'une action est en cours de traitement.

Pour ce qui est du Slider, cliquer dessus revient à déplacer le curseur ce que je ne voudrais pas lorsqu'une boucle est lancée. C'est pourquoi je cherche à l'inhiber.

En d'autres termes, lorsque un bouton est pressé il ne doit plus être actif et je souhaiterais que le Slider ne devienne plus qu'un simple 'bargraph'  (inactif donc) jusqu'à la fin d'exécution du code...

Oui je sais... Je suis exigeant !

C'est bien pour celà que je m'adresse aux meilleurs pour ce cas d'école. 

D'ailleur et sauf erreur, ils ne se sont pas tous encore manifesté !

Ok... :98: aussi !

 

Une question me taraude quand même :

A quoi servent les "true" et "false" dans :

fibaro:get(ID_VD,"ui.Slider.true") et

fibaro:get(ID_VD,"ui.Slider.false") ?

et 

Où puis-je trouver toutes les actions possible à cette fonction

fibaro:get(UI.xxx."value, true, false...") ?

 

Merci de vos réflexions et recherches acharnées...

Modifié par BSD

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour, je n'avais jamais vu ces true ou false :-)

Envoyé de mon Nexus 5X en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Pepite.

Moi non plus je n'avais jamais vu "true" et "false"

J'ai trouvé ça bêtement en testant ces commandes.

C'est comme ça que je me suis aperçu qu'il n'y avait pas d'erreur remontée dans le debug et que ce sont donc des fonctions valides.

Peut-être qu'il en existe d'autre, mais comment le savoir, et où trouver ces fonctions documentées ?

C'est un mystère...

Je cherche donc toujours une solution pour inhiber un 'Bouton' ou 'Slider' dans un VD !

Partager ce message


Lien à poster
Partager sur d’autres sites

pour empêcher ton slider, même solution que la variable qui dit qu'une action est en cours.

tu stocke la valeur du slider dans une variable (ou label). et si on le bouge alors qu'une action est en cours, tu le remets à sa position définie par la valeur précédemment stockée dans la variable.

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est ce que j'ai fait !

Mais faut avouer que ce n'est pas très 'classieux', non ?

J'ai aussi modifier un Label pendant une action en cours avec des "..."

C'est du bricolage qui ne me satisfait qu'à moitié...

Je fouille encore...

Modifié par BSD

Partager ce message


Lien à poster
Partager sur d’autres sites
Citation

fibaro:get(UI.xxx."value, true, false...")

 

Ce n'est pas parce que tu n'a pas d'erreur en debug que ça existe... Essaie avec fibaro:get(ID, "ui.slider.bonnesoupe") tu verras :)

Partager ce message


Lien à poster
Partager sur d’autres sites

:13: En effet...

Je n'ai plus qu'a arrêter d'inventer et me contenter d'espérer que tout ce que je veux faire peut se faire avec Fibaro. Lol

J'ai encore beaucoup à apprendre. 

Merci de l'info.

Partager ce message


Lien à poster
Partager sur d’autres sites

×