Aller au contenu

Messages recommandés

Posté(e)

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 !

Posté(e)

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
Posté(e)

ç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

Posté(e)

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

Posté(e)

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]()
Posté(e)

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 ?

Posté(e)

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 ?

Posté(e)

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.

Posté(e)

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 ;-)

Posté(e)

Salut

Malheureusement l'adaptation n'a pas marché :D et bébé ne m'a pas laissé trop de temps non plus

Pour la compréhension :D Je n'avais certainement pas dû bien expliquer au premier post...

Je retenterai ce soir ...

Posté(e)

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
   
Posté(e)

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

Posté(e)

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
Posté(e)

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

Je retenterai ce soir...

 

Merci encore;)

Posté(e)

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 ;-)

Posté(e)

dommage pour le tableau :D ce sera aussi pour plus tard ... cela semble la solution la plus optimisée ... d'un point de vue principe et maintenance de code ...

Posté(e)

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 ;)

Posté(e)

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


Posté(e)

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
Posté(e)

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

×
×
  • Créer...