Aller au contenu

Module Virtuel Rgbw


vonboss

Messages recommandés

Bonjour,
 
Je suis novice dans la programmation du code Lua et j'ai un petit problème avec le Slider pour modifier une des couleurs du Module RGBW
 
Pour commencer j'ai créer un module virtuel avec
1 Label
1 Bouton On
1 Bouton Off
1 Slider
 
Bouton On

fibaro:call(25,"setG", "55") -- on allume
fibaro:debug("Allumage de la lampe G25%")

 
Bouton Off

fibaro:call(25, "setG", "0") -- on eteint
fibaro:debug("Extinction de la lampe G0") 

 
Slider

local ID_VD = fibaro:getSelfId() -- Recupere l'id du module Virtuel
local Slider = fibaro:get(ID_VD,"ui.Slider1.value")
fibaro:debug(Slider)
--J'ai bien la valeur
--fibaro:call(25, "setR", "setProperty", "ui.Label1.value", Slider)

Comment on demande au Module RGBW de suivre la valeur du Slider sur une couleur ?

Merci

 

Lien vers le commentaire
Partager sur d’autres sites

J'ai compris comment on récupère la valeur du slider Enfin je crois.lol...

Mais la commande pour actionner le module sur une couleur.

fibaro:call(25, "setR", "setProperty", "ui.Label1.value", Slider)

Je dois faire une erreur (une grosse" sur la commande.

Lien vers le commentaire
Partager sur d’autres sites

J'ai fait beaucoup erreur de Majuscule et autre, pas évident au début

Voici le bon code

local id = fibaro:getSelfId();
local slider = fibaro:getValue(id, "ui.slider1.value")
fibaro:debug(slider)
fibaro:call(25, "setR", slider)

Merci Jojo pour le lien pour les fonctions et Pepite qui ma mis sur la bonne voie..

Lien vers le commentaire
Partager sur d’autres sites

Avec un réglage 0, 255.

local id = fibaro:getSelfId();
local slider = fibaro:getValue(id, "ui.slider1.value")
fibaro:debug(slider)
-- la valeur slider
function map_range( a1, a2, b1, b2, s )
return b1 + (s-a1)*(b2-b1)/(a2-a1)
end
local slider = map_range(0, 100, 0, 255, _sliderValue_ );
-- nombres entier
local slider = math.floor(slider)
-- Commande W
fibaro:call(25, "setW", slider)
fibaro:debug(slider)
Lien vers le commentaire
Partager sur d’autres sites

Jr vois que l'on utilise map_range lol

Tu peux faire cela via l api de la box

Envoyé de mon SM-G900F en utilisant Tapatalk

Oui car sur le premier teste avec le slider à  fond la valeur été sur 100 donc j'ai du utilisé ta fonction

Bien utile les tutos pour les nuls lool

 

Pour utiliser l'API. ça va être compliqué pour moi.

Lien vers le commentaire
Partager sur d’autres sites

J'ai bien trouvé un bout de code que j'ai mis dans la Main loup

le debug me donne la bonne valeur du module, mais le slider ne suis pas il doit me manquer une ligne de commande pour remonter l'info

aaaah dur dur

function colorSetToEclairage(colorSet)
  if (colorSet=='' or colorSet==nil) then return false end;
  local t, i = {}, 1;
  for v in string.gmatch(colorSet,"(%d+)") do      
      t[i] = v;
      i = i + 1;
  end
  return t;
end

local slider1 = colorSetToEclairage (fibaro:getValue(25, "lastColorSet"));
--fibaro:debug('R Eclairage ='..Eclairage[1]);
fibaro:debug('G Variateur ='..slider1[2]);
Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Hello world,

Je me permets de continuer ce post pour une question toute con et qui ne demande pas un topic à  elle toute seul, 

@mprinfo, ca concerne la fonction map_range que je viens de découvrir car je fais mon 1er VD avec un Slider.

Pour avoir un nombre entier, il faut utiliser la fonction math.floor

si on ne l'utilise pas on se retrouve avec énormément de chiffre aprés la virgule, existe il un moyen de n'avoir que 2 nombre après celle-ci?

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

il me semble avoir lu de Steven que pour les problèmes de décimales, cela était réglé en concaténant le résultat avec un espace

fibaro:debug("ta variable numérique avec bcp de décimales : "..variable.." ")
Lien vers le commentaire
Partager sur d’autres sites

@MasterBT

lol pour les chiffres il suffit de faire des maths :D

 

on multiplie par 100 on prend l'entier et enfin on divise par 100

 

ex

a = math.floor(100*0.546788888888888888)

--A va être égale a 54

resultat  = a / 100

--le résultat est 0.54
print(resultat)


@jojo on veut pas du string on veut du number donc pourquoi faire compliquer alors qu'il y a très simple ;)

 

 

http://www.luteus.biz/Download/LoriotPro_Doc/LUA/LUA_Training_FR/LUA_Fonctions_Math.html

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...