Berale64 Posté(e) le 19 septembre 2015 Signaler Posté(e) le 19 septembre 2015 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) 1
Rem's Posté(e) le 19 septembre 2015 Auteur Signaler Posté(e) le 19 septembre 2015 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
Rem's Posté(e) le 19 septembre 2015 Auteur Signaler Posté(e) le 19 septembre 2015 Super merci à tous les 2 Math.min (100) .... je dois les mettre ou ces 2 lignes ...? Cela me suffit pour faire marcher le truc ??
Berale64 Posté(e) le 19 septembre 2015 Signaler Posté(e) le 19 septembre 2015 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
pepite Posté(e) le 19 septembre 2015 Signaler Posté(e) le 19 septembre 2015 encore mieux avec la fonction ;-) ne pas oublier de declarer valeurdimmer, enfin je crois ;-) local valeurdimmer = ...
Rem's Posté(e) le 19 septembre 2015 Auteur Signaler Posté(e) le 19 septembre 2015 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 !!
Berale64 Posté(e) le 19 septembre 2015 Signaler Posté(e) le 19 septembre 2015 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)
Rem's Posté(e) le 19 septembre 2015 Auteur Signaler Posté(e) le 19 septembre 2015 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 !!
pepite Posté(e) le 19 septembre 2015 Signaler Posté(e) le 19 septembre 2015 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 ;-)
Rem's Posté(e) le 19 septembre 2015 Auteur Signaler Posté(e) le 19 septembre 2015 Ben presque, mais j'ai une erreur (j'arrive pas à mettre la photo direct sur le post) Merci pour ton aide !!!
Berale64 Posté(e) le 19 septembre 2015 Signaler Posté(e) le 19 septembre 2015 Ligne 19 remplace "10" par valeurDimmer.
Rem's Posté(e) le 19 septembre 2015 Auteur Signaler Posté(e) le 19 septembre 2015 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
pepite Posté(e) le 19 septembre 2015 Signaler Posté(e) le 19 septembre 2015 ta ligne 10, remplace ton "setValue" par "valueSensor" je crois
Rem's Posté(e) le 19 septembre 2015 Auteur Signaler Posté(e) le 19 septembre 2015 "value" tout court, ça ca passe. En revanche il ne rajoute pas 10% si j'appuie de nouveau ...
pepite Posté(e) le 19 septembre 2015 Signaler Posté(e) le 19 septembre 2015 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.
pepite Posté(e) le 19 septembre 2015 Signaler Posté(e) le 19 septembre 2015 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 ?
Berale64 Posté(e) le 19 septembre 2015 Signaler Posté(e) le 19 septembre 2015 Tu as encore des quotes autour de valueDimmer.
Rem's Posté(e) le 19 septembre 2015 Auteur Signaler Posté(e) le 19 septembre 2015 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 ....!!!
Rem's Posté(e) le 19 septembre 2015 Auteur Signaler Posté(e) le 19 septembre 2015 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
Berale64 Posté(e) le 19 septembre 2015 Signaler Posté(e) le 19 septembre 2015 Lignes 20 et 29, enlève les quotes de valeurDimmer.
Rem's Posté(e) le 19 septembre 2015 Auteur Signaler Posté(e) le 19 septembre 2015 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 !!!
Rem's Posté(e) le 19 septembre 2015 Auteur Signaler Posté(e) le 19 septembre 2015 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 ....!!
Berale64 Posté(e) le 20 septembre 2015 Signaler Posté(e) le 20 septembre 2015 Comprends pas tout Je suis un sous-doué du Lua !! Tu vois bien que non !!!
Berale64 Posté(e) le 20 septembre 2015 Signaler Posté(e) le 20 septembre 2015 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'à !!!
Messages recommandés