Rechercher dans la communauté
Affichage des résultats pour les étiquettes 'bouton'.
3 résultats trouvés
-
CODER UN BOUTON FONCTIONNANT UNIQUEMENT SUR DOUBLE-CLIQUE Les boutons des modules virtuels ne permettent malheureusement pas grand chose d'autre que de cliquer dessus. Il arrive même parfois que nous cliquions sur un bouton par inadvertance. Dans la plus part des cas cela n'est pas grave mais pour certaines opérations sensibles, il serait judicieux de pouvoir valider notre clique. L'idée (soumise par @Moicphil) est de déclencher l'action uniquement lors d'un double-clique sur le bouton. Pour réaliser cela, il nous faut : Un bouton Un label Le label va nous servir à avertir l'utilisateur qu'un double-clique est nécessaire, mais il va surtout nous servir à savoir si un clique précédent a été effectuer. Au premier clique, le système affiche le message pendant un temps limité. Si pendant ce temps, l'utilisateur ré appuie sur le bouton, l'action est confirmée, sinon on retire le message et la confirmation est annulée. Voici donc le code a implémenter derrière votre bouton : -- ---------------------------- -- Ne pas toucher -- -- ---------------------------- function confirm(msg, labelId, secondes) local current = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") if (current == msg) then fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", " ") return true else fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", msg) fibaro:sleep(secondes*1000) fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value","") return fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") == " " end end -- ---------------------------- -- A vous de jouer --- -- ---------------------------- local message = "Ré-appuyer pour confirmer" -- le message de confirmation local label_id = "lblMessage" -- l'ID du label qui recevra le message local duree = 1 -- la durée max entre 2 clique (en seconde) if ( confirm(message, label_id, duree) ) then fibaro:log("Confirmé") -- votre code ici en cas de confirmation else fibaro:log("Annulé") -- votre code ici en cas d'annulation end Le code n'est pas si compliqué et la partie qui vous intéresse début à la ligne 21. Voilà , j'espère que cela puisse vous éviter quelque catastrophe P.S. Il y a aussi moyen d'utiliser une variable global à la place du label mais l'insertion d'une valeur dans une variable globale est trop lente pour être viable.
- 80 réponses
-
- 11
-
Bonsoir, J'ai un probleme je n'arrive pas a ajouter une scene sur un appui bouton x1 Loading ... sans m'ajouter ma scene. Peut-on coder en Lua les appuis boutons de facon à ce que je puisse lancer des scenes avec mes differents appui bouton. Merci
-
Module Virtuel - Numérotation Des Boutons
mprinfo a posté un sujet dans La Home Center pour les nuls
Pour faire très simple car j'ai du mal avec ma droite et ma gauche Voici comment sont numérotés les boutons sur un module Virtuel Attention : Si on modifie l'ordre des boutons les numéros changent Voici le nouvel Ordre des Boutons Après avoir descendu les 2, 3, 4 Commandes LUA fibaro:call(fibaro:getSelfId(), "pressButton", "4") -- ou local IdModuleVirtuel = fibaro:getSelfId() fibaro:call(IdModuleVirtuel, "pressButton", "4") Code a mettre dans la boucle principale (MainLoop) pour un appui a 00h01 while true do local Var_Heure = os.date("%H:%M") --fibaro:debug("heure OS : " ..Var_Heure) if Var_Heure == "00:01" then fibaro:call(fibaro:getSelfId(), "pressButton", "4") fibaro:debug("heure OS : " ..Var_Heure .."Le Button 4 a été actionné") end fibaro:sleep(60*1000) end Boucle de Monsieur STEVEN local nbHeure = 12 local i = 0 while true do if (i >= (nbHeure*2) or i == 0) then i = 0 fibaro:call(fibaro:getSelfId(), "pressButton", "5") end fibaro:sleep(30*60*1000) i = i + 1 end A bientôt pour un nouveau tuto Ajout d'octobre 2016 : Script de Berale24 pour appeler un bouton depuis son ID au lieu de son numéro Ajout de janvier 2018 : Module Virtuel de Lazer pour lister les ID des boutons et sliders.-
- 9
-
- module virtuel
- vd
-
(et %d en plus)
Étiqueté avec :