Aller au contenu

Gestion Table


chrispec

Messages recommandés

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 :D)

Un VD pour X Hue ?

 

 

 

 

* si ça veut bien marcher !

Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

ç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

Lien vers le commentaire
Partager sur d’autres sites

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à  ...

Lien vers le commentaire
Partager sur d’autres sites

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]()
Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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
   
Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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


Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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 :D

 

Merci de l'idée...

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...