Aller au contenu

Messages recommandés

Posté(e)

Plutôt qu'une série de if, il y  a des fonctions min et max.

 

valeurdimmer = math.min(100, valeurdimmer+10)

 

et

 

valeurdimmer = math.max(0, valeurdimmer-10)

  • Upvote 1
Posté(e)

Super merci pour vos réponses.

 

Math.min (..............  je les mets ou ces 2 lignes ??

Et ca suffit pour faire tourner le truc ??

 

Merci pour votre aide

Posté(e)

Super merci à  tous les 2

 

Math.min (100) .... je dois les mettre ou ces 2 lignes ...?

Cela me suffit pour faire marcher le truc ??

Posté(e)

Je reprends le code que j'avais mis sur la page précédente.

Je n'ai pas de dimmer, alors àtoi de compléter làou j'ai mis des commentaires ;)

--[[
%% properties
198 sceneActivation
%% globals
--]]
--fibaro:debug("start");
 

 
local val = tonumber(fibaro:getValue(198, "sceneActivation"))
fibaro:debug(val);
 
if (val == 20) then
--fibaro:debug("Simple clic bouton +");
-- ici tu mets le code pour augmenter
-- lecture de la valeur actuelle
valeurdimmer = math.min(100, valeurdimmer+10) -- pour éviter de dépasser 100%
-- envoi de la valeur au dimmer
 
elseif (val == 40) then
  --fibaro:debug("Simple clic bouton -");
  -- ici tu mets le code pour diminuer
-- lecture de la valeur actuelle
valeurdimmer = math.max(0, valeurdimmer-10) -- pour éviter de dépasser 0%
-- envoi de la valeur au dimmer
 
elseif (val == 23) then
  --fibaro:debug("Double clic bouton +");
  -- ici tu peux passer direct à100%
 
elseif (val == 43) then
  --fibaro:debug("Double clic bouton -");
  -- ici tu éteinds tout
end
 
Posté(e)

Comprends pas tout

--[[
%% properties
378 sceneActivation
%% globals
--]]
--fibaro:debug("start");

local val = tonumber(fibaro:getValue(378, "sceneActivation"))
fibaro:debug(val);

if (val == 20) then
  valeurdimmer = math.min(100, valeurdimmer+10)
  fibaro:debug("Simple clic bouton +");
-- ici tu mets le code pour augmenter
-- lecture de la valeur actuelle
-- envoi de la valeur au dimmer
  fibaro:call(9, "setValue", "valeurdimmer")
 
elseif (val == 40) then
  valeurdimmer = math.max(0, valeurdimmer-10)
  fibaro:debug("Simple clic bouton -");
  -- ici tu mets le code pour diminuer
-- lecture de la valeur actuelle
valeurdimmer = math.max(0, valeurdimmer-10) -- pour éviter de dépasser 0%
  -- envoi de la valeur au dimmer

elseif (val == 23) then
   fibaro:call(9, "turnOn")
   fibaro:debug("Double clic bouton +");
  -- ici tu peux passer direct à  100%

elseif (val == 43) then
  fibaro:call(9, "turnOff")
  fibaro:debug("Double clic bouton -");
  -- ici tu éteinds tout
end

J'ai fait ça, et j'ai une erreur sur la ligne mathmax ...

 

Une idée ?? en plus je pense que mon code est incomplet. Je suis un sous-doué du Lua !!

Posté(e)

A la ligne 13, valeurdimmer n'est pas défini.

Il faut que tu fasses un call sur le device pour avoir la valeur avant de l'incrémenter.

Aussi, ligne 18 valeurdimmer ne doit pas être entre quotes.

C'est le contenu de la variable valeurdimmer que tu passes et pas le string "valeurdimmer".

 

Capito ??? (pardon c'est l'approche du match qui fais ça) :D

Posté(e)

J'en suis la

--[[
%% properties
378 sceneActivation
%% globals
--]]
--fibaro:debug("start");

local val = tonumber(fibaro:getValue(378, "sceneActivation"))
local valeurDimmer = tonumber(fibaro:getValue(9, "setValue"))
fibaro:debug(val);
fibaro:call(9, "setValue", "10")
if (val == 20) then
  valeurDimmer = math.min(100, valeurDimmer+10)
  fibaro:debug("Simple clic bouton +");
-- ici tu mets le code pour augmenter
-- lecture de la valeur actuelle
-- envoi de la valeur au dimmer
  fibaro:call(9, "setValue", "10")
 
elseif (val == 40) then
  valeurdimmer = math.max(0, valeurdimmer-10)
  fibaro:debug("Simple clic bouton -");
  -- ici tu mets le code pour diminuer
  -- lecture de la valeur actuelle
  -- pour éviter de dépasser 0%
  -- envoi de la valeur au dimmer
   fibaro:call(9, "setValue", "valeurdimmer")

elseif (val == 23) then
   fibaro:call(9, "turnOn")
   fibaro:debug("Double clic bouton +");
  -- ici tu peux passer direct à100%

elseif (val == 43) then
  fibaro:call(9, "turnOff")
  fibaro:debug("Double clic bouton -");
  -- ici tu éteinds tout
end

Dis j'ai encore 10" avant la prise d'antenne ..... Help !!

Posté(e)

Ca devient bon :

 

Ligne 10 : remplace setValue par valueSensor

 

Ligne 12 : remplace et mets fibaro:debug(valeurDimmer)

 

Ligne 19 : remplace "10" par valeurDimmer (sans "guillemets")

 

Ligne 28 : ecris valeurDimmer à  la place de"valeurDimmer"

 

teste teste ;-)

Posté(e)

Ben presque, mais j'ai une erreur

 

(j'arrive pas à  mettre la photo direct sur le post)

 

Merci pour ton aide !!!

Posté(e)

En fait j'en suis

--[[
%% properties
378 sceneActivation
%% globals
--]]
--fibaro:debug("start");

local val = tonumber(fibaro:getValue(378, "sceneActivation"))
local valeurDimmer = tonumber(fibaro:getValue(9, "setValue"))
fibaro:debug(val);
fibaro:debug(valeurDimmer)
if (val == 20) then
  valeurDimmer = math.min(100, valeurDimmer+10)
  fibaro:debug("Simple clic bouton +");
-- ici tu mets le code pour augmenter
-- lecture de la valeur actuelle
-- envoi de la valeur au dimmer
  fibaro:call(9, "setValue", "valeurDimmer")
 
elseif (val == 40) then
  valeurdimmer = math.max(0, valeurdimmer-10)
  fibaro:debug("Simple clic bouton -");
  -- ici tu mets le code pour diminuer
  -- lecture de la valeur actuelle
  -- pour éviter de dépasser 0%
  -- envoi de la valeur au dimmer
   fibaro:call(9, "setValue", valeurDimmer)

elseif (val == 23) then
   fibaro:call(9, "turnOn")
   fibaro:debug("Double clic bouton +");
  -- ici tu peux passer direct à100%

elseif (val == 43) then
  fibaro:call(9, "turnOff")
  fibaro:debug("Double clic bouton -");
  -- ici tu éteinds tout
end
Posté(e)

sur un dimmer ca ne peut pas etre value pour recuperer la valeur de la luminosite.

Value permet de recupere "allume" ou "eteint" soit 1 ou 0. c'est pas ce dont tu as besoin, c'est pour cela qu'il ne rajoute pas 10

 

j'ai pas de dimmer vais chercher.

Posté(e)

bon, en plein match tout de meme ;-)

 

ton debug ligne 12 te renvoie quelle valeur ?

 

rajoute un fibaro:debug(valeurDimmer) ligne 15 pour connaitre la valeur après rajout de 10

 

As tu modifie ta ligne 19 ?

Posté(e)

J'ai cherché et essayé des fonctions, mais en vain.

 

Je t'ai mis l'imp écran du débug.

 

Sinon te prends pas la tete, je te re-branche à  la mi-temps ....!!! :60:

Posté(e)

Ben non je crois pas ...?

--[[
%% properties
378 sceneActivation
%% globals
--]]
--fibaro:debug("start");

local val = tonumber(fibaro:getValue(378, "sceneActivation"))
local valeurDimmer = tonumber(fibaro:getValue(9, "value"))
fibaro:debug(val);
fibaro:debug(valeurDimmer)
if (val == 20) then
  valeurDimmer = math.min(100, valeurDimmer +10)
  fibaro:debug("Simple clic bouton +");
  fibaro:debug(valeurDimmer)
-- ici tu mets le code pour augmenter
-- lecture de la valeur actuelle
-- envoi de la valeur au dimmer
  fibaro:call(9, "setValue", "valeurDimmer")
 
elseif (val == 40) then
  valeurdimmer = math.max(0, valeurDimmer -10)
  fibaro:debug("Simple clic bouton -");
  -- ici tu mets le code pour diminuer
  -- lecture de la valeur actuelle
  -- pour éviter de dépasser 0%
  -- envoi de la valeur au dimmer
   fibaro:call(9, "setValue", "valeurDimmer")

elseif (val == 23) then
   fibaro:call(9, "turnOn")
   fibaro:debug("Double clic bouton +");
  -- ici tu peux passer direct à100%

elseif (val == 43) then
  fibaro:call(9, "turnOff")
  fibaro:debug("Double clic bouton -");
  -- ici tu éteinds tout
end

Posté(e)

C'est fait, je l'ai ai enlevé

Cela fonctionne en montant la valeur, mais Pas en descendant sur appui du bouton "-", pas De 10% en moins ...

Merci pour ton aide ... Ca approche !!!

Posté(e)

Ca y est, ça fonctionne (pour la diminution c'était un "D" majuscule.

--[[
%% properties
378 sceneActivation
%% globals
--]]
--fibaro:debug("start");

local val = tonumber(fibaro:getValue(378, "sceneActivation"))
local valeurDimmer = tonumber(fibaro:getValue(9, "value"))
fibaro:debug(val);
fibaro:debug(valeurDimmer)

if (val == 20) then
-- ici tu mets le code pour augmenter
  valeurDimmer = math.min(100, valeurDimmer +10)
-- lecture de la valeur actuelle
  fibaro:debug("Simple clic bouton +");
  fibaro:debug(valeurDimmer)
-- envoi de la valeur au dimmer
  fibaro:call(9, "setValue", valeurDimmer)
 
elseif (val == 40) then
  -- ici tu mets le code pour diminuer
  valeurDimmer = math.max(0, valeurDimmer -10)
  -- lecture de la valeur actuelle
  fibaro:debug("Simple clic bouton -");
  fibaro:debug(valeurDimmer)
  -- pour éviter de dépasser 0%
  -- envoi de la valeur au dimmer
   fibaro:call(9, "setValue", valeurDimmer)

elseif (val == 23) then
   fibaro:call(9, "setValue", "100")
   fibaro:debug("Double clic bouton +");
  -- ici tu peux passer direct à  100%

elseif (val == 43) then
  fibaro:call(9, "turnOff")
  fibaro:debug("Double clic bouton -");
  -- ici tu éteinds tout
end

A toute fin utile pour ceux que cela peut intéresser, grâce à  votre aide, je post la version finale.

 

Encore merci pour votre aide à  tous les 2 ....!! :60:

Posté(e)

Maintenant, tu peux améliorer la chose en utilisant les deux autres boutons pour sélectionner un autre dimmer.

Deux boutons et simple et double clic, ça te fait 4 dimmers.

Il faut juste créer une variable globale dans laquelle tu stockes l'ID du dimmer.

 

Y'a plus qu'à  !!! :D

×
×
  • Créer...