Aller au contenu
vonboss

Module Virtuel Rgbw

Recommended Posts

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

 

Partager ce message


Lien à poster
Partager sur d’autres sites

pour récupérer la valeur d'un slider

-- SET Slider
local id = fibaro:getSelfId();
local slider = fibaro:getValue(id, "ui.Slider1.value");

où Slider1 est l'ID de ton slider

Partager ce message


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

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

ceci plutot, à  tester.

fibaro:call(25, "setvalue", Slider)

Partager ce message


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

Partager ce message


Lien à poster
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)

Partager ce message


Lien à poster
Partager sur d’autres sites

Autre petite question.

 

Comment mettre a jour le slider avec une commande extérieur ?

Partager ce message


Lien à poster
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

Partager ce message


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

Partager ce message


Lien à poster
Partager sur d’autres sites

Non cest assez simple je crois que Steven donne des exemples sur le forum mais je sais plus ou

Envoyé de mon SM-G900F en utilisant Tapatalk

Partager ce message


Lien à poster
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]);

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
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.." ")

Partager ce message


Lien à poster
Partager sur d’autres sites

il n'y a pas de String.format possible?

J'ai cherché un peu les différents paramètre pour formater une valeur, mais j'ai pas trouvé.

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

ok merci,

je pensais qu'il y avait un moyen plus simple de formatage,

je test ça

 

merci encore

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est très simple surtout que tu veux garder un nombre

Envoyé de mon SM-G900F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

oui, ma solution n'arrondit pas, mais elle doit être combinée àla tienne.

Si tu as comme résultat 19.52, il risque d'afficher 19.5200000000 ou 19.51999999, sauf si tu rajoutes un espace àla fin

Partager ce message


Lien à poster
Partager sur d’autres sites

Ca formate bien la valeur, mais dans le label ca affiche quand même une flopée de zero.

j'ai donc suivis le conseil de jojo, je l'avais oublié cette astuce. 

Affaire réglée.

 

merci à  vous deux.

Partager ce message


Lien à poster
Partager sur d’autres sites

×