Steven Posté(e) le 26 mars 2015 Auteur Signaler Partager Posté(e) le 26 mars 2015 Je regarde Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 26 mars 2015 Auteur Signaler Partager Posté(e) le 26 mars 2015 Voilà la version corrigée. Amuse toi bien. P.S: Vu que ma box est entrain de redémarrer, je te confirme que cela fonctionne correctement VirtualDevice-Reboot HC2.vfib Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nico Posté(e) le 26 mars 2015 Signaler Partager Posté(e) le 26 mars 2015 Il y a aussi un bouton reset all ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 26 mars 2015 Auteur Signaler Partager Posté(e) le 26 mars 2015 Tu parles pour la box ou pour mon cerveau ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
nigamais Posté(e) le 26 mars 2015 Signaler Partager Posté(e) le 26 mars 2015 Super merci bien Steven Lien vers le commentaire Partager sur d’autres sites More sharing options...
megabubu Posté(e) le 26 mars 2015 Signaler Partager Posté(e) le 26 mars 2015 merci Steven, comme d hab Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 1 décembre 2015 Signaler Partager Posté(e) le 1 décembre 2015 @Steven merci pour ce code très utile pour un vieux comme moi Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 31 mai 2016 Signaler Partager Posté(e) le 31 mai 2016 @Steven, Comme tu sais, j'use et abuse de ce code. Il me semble que depuis la 4.082b (en tout cas en 4.063b, ça fonctionnait) que ce code ne fonctionne plus. Il prend bien en compte le 1° clic (il y a le message), mais pas le second. Il affiche au bout du délais imparti "Annulé". Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 31 mai 2016 Auteur Signaler Partager Posté(e) le 31 mai 2016 Je confirme. Cela ne fonctionne plus. On dirait qu'il n'y a plus qu'une seule instance du "click" qui tourne à la fois. Tant que le 1er click n'a pas fini d'exécuter sont code les autres click ne sont pas déclenche rien. Vu que le 1er click fait un sleep ... c'est mort. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 31 mai 2016 Signaler Partager Posté(e) le 31 mai 2016 vois-tu une solution, ou faut-il abandonner cette fonctionnalité ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 31 mai 2016 Auteur Signaler Partager Posté(e) le 31 mai 2016 A part une solution à 2 boutons .. .ce qui serait pas pratique, je vois pas. Sinon il y a le VD de Krikroff avec le code pin mais on est plus vraiment dans le même usage. Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 31 mai 2016 Signaler Partager Posté(e) le 31 mai 2016 je crois en effet que le 2 boutons est mieux, car l'objectif du double click était d'éviter les fautes de frappe. Je l'utilise pour un restart de ma HC2, de mon modem, de mon Syno, ... Le code pin, c'est vraiment trop. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 2 juin 2016 Auteur Signaler Partager Posté(e) le 2 juin 2016 Voilà mon ami, c'est pas magnifique mais cela fonctionne : Bouton 1 : -- ---------------------------- -- Ne pas toucher -- -- ---------------------------- function confirm(msg, labelId, secondes) local current = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", msg) fibaro:sleep(secondes*1000) local result = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") == "" fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value","") return result end -- ---------------------------- -- A vous de jouer --- -- ---------------------------- local message = "Ré-appuyer pour confirmer" -- le message de confirmation local label_id = "Label1" -- l'ID du label qui recevra le message local duree = 3 -- la durée max entre 2 clique (en seconde) if (not confirm(message, label_id, duree)) then fibaro:log("Annulé") -- ton code d'annulation si besoin end Bouton 2 : -- ---------------------------- -- 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 return false end end -- ---------------------------- -- A vous de jouer --- -- ---------------------------- local message = "Ré-appuyer pour confirmer" -- le message de confirmation local label_id = "Label1" -- l'ID du label qui recevra le message local duree = 3 -- la durée max entre 2 clique (en seconde) if ( confirm(message, label_id, duree) ) then fibaro:log("Confirmé") -- ton code ici en cas de confirmation end 3 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 5 juin 2016 Signaler Partager Posté(e) le 5 juin 2016 Merci Steven et sorry d'avoir attendu si longtemps pour le mettre en application et répondre P.S. : as-tu vu ceci ? Merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 1 juillet 2016 Signaler Partager Posté(e) le 1 juillet 2016 je n'avais pas vu, je l'utilisais aussi ;-) merci Steven Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 5 juillet 2016 Signaler Partager Posté(e) le 5 juillet 2016 salut @Steven pense-tu qu'il serai possible d'un triple clique, une sorte de sceneactivation virtuel 1 clique action 1 (ouvre le volet chambre) 2 clique action 2 (ouvre le volet salon) 3 clique action 3 (ouvre tout les volet).... 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 5 juillet 2016 Auteur Signaler Partager Posté(e) le 5 juillet 2016 Non, cela n'est plus possible de puis quelque version. Sorry 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 5 juillet 2016 Auteur Signaler Partager Posté(e) le 5 juillet 2016 Il y a une solution qui fonctionne à 95%. Il faut créer un scène avec le code suivant : params = { duree_max_entre_click = 1000, -- en millisecondes clicks = { {name = 'Click 1', action = function(num_click) fibaro:debug("Click " .. num_click) end}, {name = 'Click 2', action = function(num_click) fibaro:debug("Click " .. num_click) end}, {name = 'Click 3', action = function(num_click) fibaro:debug("Click " .. num_click) end} }, started = function() fibaro:debug("Processus started") end, ended = function() fibaro:debug("Too late ") end } local num_click = fibaro:countScenes(); if (params.clicks[num_click]) then if (num_click == 1) then params.started() end params.clicks[num_click].action(num_click) fibaro:sleep(params.duree_max_entre_click) while (fibaro:countScenes() > num_click and num_click == 1) do fibaro:sleep(params.duree_max_entre_click) end if (fibaro:countScenes() == 1) then params.ended() end end Modifié les functions relatives au click 1, click 2, ... Puis derrière le bouton d'un VD, mettre le code suivant fibaro:startScene(<ID de la scène>) Pourquoi 95% et non pas 100%. Pour obtenir le 100% il faut utiliser une variable globale, hors, j'aime pas cela donc j'ai joué sur le nombre d'instance de la scène en cours et dans ce cas, il se peux que la fin du 2ème click se croise avec le début du 3ème click ... mais c'est rare. Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 5 juillet 2016 Signaler Partager Posté(e) le 5 juillet 2016 Le temps de donner un biberon. Et je te test le code merci encore Envoyé de mon iPhone en utilisant Tapatalk Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 5 juillet 2016 Signaler Partager Posté(e) le 5 juillet 2016 salut Steven tu pense qu'il est possible de stoper un fibaro:sleep en cours exemple 1 clic alors dans 3s passe la variable à A, si 2eme clic avant les 3s, alors passe le variable à B etc Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 7 juillet 2016 Auteur Signaler Partager Posté(e) le 7 juillet 2016 Non, il est impossible de stoper un sleep :-( 2 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Krikroff Posté(e) le 7 juillet 2016 Signaler Partager Posté(e) le 7 juillet 2016 Salut @Steven, je n'ai pas essayé mais un os.exit() ou os.exit(0) pourrait faire le job, l' idée est de tuer le bac à sable qui héberge la scène. 2 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 8 juillet 2016 Auteur Signaler Partager Posté(e) le 8 juillet 2016 T'es un violent Le soucis c'est que cela ne va pas stopper le sleep mais tuer la scène ce qui n'est pas ce que souhaite 971jmd. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yannick Posté(e) le 5 août 2016 Signaler Partager Posté(e) le 5 août 2016 Voilà mon ami, c'est pas magnifique mais cela fonctionne : Bouton 1 : -- ---------------------------- -- Ne pas toucher -- -- ---------------------------- function confirm(msg, labelId, secondes) local current = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", msg) fibaro:sleep(secondes*1000) local result = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") == "" fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value","") return result end -- ---------------------------- -- A vous de jouer --- -- ---------------------------- local message = "Ré-appuyer pour confirmer" -- le message de confirmation local label_id = "Label1" -- l'ID du label qui recevra le message local duree = 3 -- la durée max entre 2 clique (en seconde) if (not confirm(message, label_id, duree)) then fibaro:log("Annulé") -- ton code d'annulation si besoin end Bouton 2 : -- ---------------------------- -- 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 return false end end -- ---------------------------- -- A vous de jouer --- -- ---------------------------- local message = "Ré-appuyer pour confirmer" -- le message de confirmation local label_id = "Label1" -- l'ID du label qui recevra le message local duree = 3 -- la durée max entre 2 clique (en seconde) if ( confirm(message, label_id, duree) ) then fibaro:log("Confirmé") -- ton code ici en cas de confirmation end Salut @steven, je viens de modifier mon VD en apposant les 2 boutons et en collant ton code dedans. Mais je n'ai aucun effet. Désolé mais je suis un peu nul Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 5 août 2016 Signaler Partager Posté(e) le 5 août 2016 cela fonctionne très bien, mais il faut mettre les instructions lua àpartir de la ligne 24 (bouton 1) et 25 (bouton 2) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés