chrispec Posté(e) le 20 octobre 2015 Signaler Posté(e) le 20 octobre 2015 Bonjour, Que pensez-vous du code (action sur un bouton de minimote): Local VarianteCouleur == { "12", "13", "14", "15", "16", "17", "18", "19"} Local i = 1 elseif (tonumber(MinimoteTest) == 3) and i<= 8 then fibaro:call(VdHUE, "pressButton", VarianteCouleur[i]) i = i + 1 if i = 8 then i = 1 end VdHUE est l'id du VD d'une ampoule HUE. Objectif: une nouvelle couleur (bouton du VD) à chaque nouvelle impulsion de bouton de minimote Je vous remercie de vos commentaires. A la clé ... VD Hue + Scène de la minimote en partage ... et en option* ... une scène pour X minimotes (même cas d'utilisation: une Hue principale dans les chambres des enfants ) Un VD pour X Hue ? * si ça veut bien marcher !
chrispec Posté(e) le 20 octobre 2015 Auteur Signaler Posté(e) le 20 octobre 2015 Peut-être ce code ? Local VarianteCouleur = 12 elseif (tonumber(MinimoteTest) == 3) and VarianteCouleur <= 19 then fibaro:call(VdHUE, "pressButton", VarianteCouleur) VarianteCouleur = VarianteCouleur + 1 if VarianteCouleur = 19 then VarianteCouleur = 12 end
jojo Posté(e) le 20 octobre 2015 Signaler Posté(e) le 20 octobre 2015 ça ne pourra pas fonctionner. D'abord, il ne faut pas commencer un test avec elseif (ligne 4, mais avec if(comme ligne 10) En ligne 13 tu devrait "fermer" le if de la ligne 4 avec un end. S'agit-il d'un VD ou d'une scène ? Je n'ai pas de Hue ni de minimote, alors difficile à simuler.. Ceci-dit je ferais cela dans une scène dont le trier est la pression sur la touche de la minimote. Puis (mais je ne sais pas comment fonctionne Hue) il faudrait lire la variante actuelle du HUE et l'incrémenter ou revenir à une valeur initiale
chrispec Posté(e) le 20 octobre 2015 Auteur Signaler Posté(e) le 20 octobre 2015 Bonsoir @jojo! Merci de ta réponse. En fait, ce code est une partie de code. Il y a 8 boutons ... un IF et une suite de 7 ELSEIF ... pour la question ... j'aurais pu mettre un IF ... Un IF ou ELSEIF 'si bouton 1 à 8 appuyé ... then ... (boutons physiques de la minimote) Le code ci-dessus est dans une scène. VarianteCouleur est le numéro du bouton dans un VD. J'ai 8 boutons du VD (boutons virtuels) de 12 à 19. Le premier appui sur le bouton 3 de la télécommande Minimote donne la couleur 'rouge' à l'ampoule (bouton n°12 du VD) Le second appui sur le bouton 3 de la télécommande Minimote donne la couleur 'orange' à l'ampoule (bouton n°13 du VD) ... Voilà ...
pepite Posté(e) le 21 octobre 2015 Signaler Posté(e) le 21 octobre 2015 Salut messieurs, @Steven a proposé un code dans le sujet de la telecommande Nodon, certainement adaptable à ton besoin avec des fonctions, j'ai un peu adapté, voir juste changé 2 lignes lol pour voir si ca peut correspondre à ton besoin, mais je pense que ca devrait le faire --[[ %% properties XXXXXXXX sceneActivation %% globals --]] local actions = { [10] = function() fibaro:debug("appui bouton 3 Minimote-couleur rouge") fibaro:call(VdHUE, "pressButton", VarianteCouleur) end, [20] = function() fibaro:debug("appui bouton 3 long-couleur orange") fibaro:call(VdHUE, "pressButton", VarianteCouleur) end, } local action = tonumber(fibaro:getValue(XXXXXXX, "sceneActivation")) actions[action]()
chrispec Posté(e) le 21 octobre 2015 Auteur Signaler Posté(e) le 21 octobre 2015 bonjour pépite, Je te remercie ! Je testerai ce soir! Dois-je ajouter une boucle de test ? Ex: si 10 choix de VarianteCouleur ( if VarianteCouleur <10 then ... et VarianteCouleur = VarianteCouleur + 1) ? Comment me conseillerais-tu de procéder alors ?
pepite Posté(e) le 21 octobre 2015 Signaler Posté(e) le 21 octobre 2015 Je comprends pas bien ce que tu fais faire avec ta variante couleur, j'avoue j'ai pas bien percuté ;-) Et le code vient de Steven, pas de moi ;-) J'ai cru comprendre que ta variante couleur correspondait à un bouton de VD non ?
chrispec Posté(e) le 21 octobre 2015 Auteur Signaler Posté(e) le 21 octobre 2015 Je comprends pepite. J'ai un bouton sur la minimote... le n°3 J'ai un VD avec 10 boutons: chaque bouton de ce VD donne une couleur pour une ampoule Hue. L'appui sur le bouton de la minimote permettra d'incrémenter une variable de 1 à 10. Et dans la table, il y a les 10 id des boutons du VD ... En résumé ... regrouper 10 boutons du VD sur un seul de la télécommande. Je change de couleur l'ampoule à chaque nouvel appui.
pepite Posté(e) le 22 octobre 2015 Signaler Posté(e) le 22 octobre 2015 Salut, T'as essaye le code de Steven en l'adaptant ? Ok donc tout avec le même bouton et chaque appui change la couleur ;-) Ca y est j'ai compris..long à la détente le type lol je regarde ;-)
chrispec Posté(e) le 22 octobre 2015 Auteur Signaler Posté(e) le 22 octobre 2015 Salut Malheureusement l'adaptation n'a pas marché et bébé ne m'a pas laissé trop de temps non plus Pour la compréhension Je n'avais certainement pas dû bien expliquer au premier post... Je retenterai ce soir ...
pepite Posté(e) le 22 octobre 2015 Signaler Posté(e) le 22 octobre 2015 Re, En partant du principe ou tu incrémentes une variable a chaque appui, je l'ai fait avec les couleurs comme tu m'as dit, 12:rouge, 13:orange Sans passer par un tableu, ca fait donc bcp de if/elseif ;-) Peut-etre que ca ferait le boulot mais pour 1 bouton. Faudra vraiment l'ecrire avec un tableau si tu veux faire la meme chose pour les 8 boutons de la minimote ;-) vais essayer avec celui de @steven, ca fait plus pro ;-) local VdHUE = xx local bouton3minimote = tonumber(fibaro:getValue(xxx, "sceneActivation")) local recupcouleur = fibaro:getGlobalValue("CouleurHUE") fibaro:debug(bouton3minimote) fibaro:debug(recupcouleur) if (bouton3minimote = 3) then --1er appui local VarianteCouleur = 12 fibaro:setGlobal("CouleurHUE", "rouge") fibaro:call(VdHUE, "pressButton", VarianteCouleur) elseif (bouton3minimote = 3) and (recupcouleur = "orange") then --2eme appui local VarianteCouleur = 13 fibaro:setGlobal("CouleurHUE", "orange") fibaro:call(VdHUE, "pressButton", VarianteCouleur) end
chrispec Posté(e) le 22 octobre 2015 Auteur Signaler Posté(e) le 22 octobre 2015 Bonsoir pepite, merci pour tes propositions! J'ai essayé il ne marche pas Il m'affiche la première couleur, mais après rien, même pas de 'bug' ... comme avec mon code
pepite Posté(e) le 23 octobre 2015 Signaler Posté(e) le 23 octobre 2015 Salut Chrispec, Heuu je suis un gros boulet, j'ai oublié un signe "=" pour comparer les valeurs :-) et avec mon petit copier-coller l'erreur du rouge et orange dans le 2eme appui et as tu bien créé une variable pour tester ? J'ai rajouté des debug pour se situer ;-) Essaie cela, mais relis moi tout de même, suis pas un expert lol local VdHUE = xx local bouton3minimote = tonumber(fibaro:getValue(xxx, "sceneActivation")) local recupcouleur = fibaro:getGlobalValue("CouleurHUE") fibaro:debug(bouton3minimote) fibaro:debug(recupcouleur) if (bouton3minimote = 3) then --1er appui local VarianteCouleur = 12 fibaro:setGlobal("CouleurHUE", "rouge") fibaro:debug("Variante :" ..VarianteCouleur) fibaro:debug("CouleurHUE :" ..recupcouleur) fibaro:call(VdHUE, "pressButton", VarianteCouleur) elseif (bouton3minimote = 3) and (recupcouleur == "rouge") then --2eme appui local VarianteCouleur = 13 fibaro:setGlobal("CouleurHUE", "orange") fibaro:debug("Variante :" ..VarianteCouleur) fibaro:debug("CouleurHUE :" ..recupcouleur) fibaro:call(VdHUE, "pressButton", VarianteCouleur) end
chrispec Posté(e) le 23 octobre 2015 Auteur Signaler Posté(e) le 23 octobre 2015 Bonjour pepite Merci de ton support ! Oui, j'ai bien créé une VG CouleurHUE. Je n'ai pas envie de passer à autre chose tant que cela n'est pas résolu Je retenterai ce soir... Merci encore;)
pepite Posté(e) le 23 octobre 2015 Signaler Posté(e) le 23 octobre 2015 De rien, c'est sympa ;-) Oui oui je suis d'accord Courage.. Après c'est sur que le code avec if/elseif n'est pas opimisé..on verra après ;-)
chrispec Posté(e) le 23 octobre 2015 Auteur Signaler Posté(e) le 23 octobre 2015 dommage pour le tableau ce sera aussi pour plus tard ... cela semble la solution la plus optimisée ... d'un point de vue principe et maintenance de code ...
pepite Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 Salut chrispec, alors ? T'en es où ? Résolu ?
chrispec Posté(e) le 26 octobre 2015 Auteur Signaler Posté(e) le 26 octobre 2015 Bonjour Je n'ai pas eu le temps de tester encore. Je tenterai ce soir. Entre tondre, scarifier et regarnir le gazon cramé de cet été ... j'ai eu un sacré WE ... Je te tiens au jus
chrispec Posté(e) le 26 octobre 2015 Auteur Signaler Posté(e) le 26 octobre 2015 Testé et toujours que la première couleur "Rouge" ... (pas de problème de 'cAsE') A s’arracher les cheveux! --[[ %% properties 255 sceneActivation %% globals --]] local IdMinimoteTest = 255 local IdVDTest = 256 local NumSceneTest = fibaro:getValue(IdMinimoteTest, "sceneActivation") local RecupCouleurHue = fibaro:getGlobalValue("CouleurHue") if (tonumber(NumSceneTest) == 1) then fibaro:call(34, "turnOn") fibaro:sleep(2000) local VarianteCouleurHue = 12 fibaro:setGlobal("CouleurHue", "Rouge") fibaro:call(256, "pressButton", VarianteCouleurHue) fibaro:debug(RecupCouleurHue) elseif (tonumber(NumSceneTest) == 1) and (RecupCouleurHue == "Rouge") then local VarianteCouleurHue = 13 fibaro:setGlobal("CouleurHue", "Orange") fibaro:call(256, "pressButton", VarianteCouleurHue) fibaro:debug(RecupCouleurHue) elseif (tonumber(NumSceneTest) == 1) and (RecupCouleurHue == "Orange") then local VarianteCouleurHue = 14 fibaro:setGlobal("CouleurHue", "Jaune") fibaro:call(256, "pressButton", VarianteCouleurHue) fibaro:debug(RecupCouleurHue) elseif (tonumber(NumSceneTest) == 1) and (RecupCouleurHue == "Jaune") then local VarianteCouleurHue = 15 fibaro:setGlobal("CouleurHue", "Vert") fibaro:call(256, "pressButton", VarianteCouleurHue) fibaro:debug(RecupCouleurHue) elseif (tonumber(NumSceneTest) == 1) and (RecupCouleurHue == "Vert") then local VarianteCouleurHue = 16 fibaro:setGlobal("CouleurHue", "Ciel") fibaro:call(256, "pressButton", VarianteCouleurHue) fibaro:debug(RecupCouleurHue) elseif (tonumber(NumSceneTest) == 1) and (RecupCouleurHue == "Ciel") then local VarianteCouleurHue = 17 fibaro:setGlobal("CouleurHue", "Bleu") fibaro:call(256, "pressButton", VarianteCouleurHue) fibaro:debug(RecupCouleurHue) fibaro:debug("MiniMote button 1 pressed") end
chrispec Posté(e) le 26 octobre 2015 Auteur Signaler Posté(e) le 26 octobre 2015 [DEBUG] 00:00:12: Rouge [DEBUG] 00:00:14: Rouge [DEBUG] 00:00:16: Rouge ...
pepite Posté(e) le 27 octobre 2015 Signaler Posté(e) le 27 octobre 2015 Salut chrispec, Ca fonctionne tout de même ? Ca change bien la couleur ? Ne manquerait il pas des parentheses ? Peut-etre : elseif (tonumber(NumSceneTest) == 1) and (RecupCouleurHue == "Rouge") par elseif ((tonumber(NumSceneTest) == 1) and (RecupCouleurHue == "Rouge")) Et comme ceci peut-etre, encore moins joli, mais on voit bien on en est, le temps de trouver où l'on bugge ;-), pourtant c'est un code simple lol, mode boulet pépite ON ;-) if (tonumber(NumSceneTest) == 1) then fibaro:call(34, "turnOn") fibaro:sleep(2000) fibaro:setGlobal("CouleurHue", "Rouge") fibaro:call(256, "pressButton", 12) fibaro:debug(RecupCouleurHue) end if ((tonumber(NumSceneTest) == 1) and (RecupCouleurHue == "Rouge")) then fibaro:setGlobal("CouleurHue", "Orange") fibaro:call(256, "pressButton", 13) fibaro:debug(RecupCouleurHue) end
chrispec Posté(e) le 27 octobre 2015 Auteur Signaler Posté(e) le 27 octobre 2015 Bonjour Pepite, la couleur rouge est la seule à marcher (avec le code d'hier) ... à chaque nouvelle impulsion ... l'ampoule reste rouge et un nouveau [DEBUG]...: rouge Je verrai à nouveau ce soir avec les parenthèses en plus Merci de l'idée...
Messages recommandés