jjacques68 Posté(e) le 29 avril 2020 Signaler Posté(e) le 29 avril 2020 il faut que tu fasses attention à la syntaxe et l'indentation de ton code... ce sera plus facile à comprendre et à relire. une action par ligne. il n'y a pas de soucis pour mettre plusieurs action dans le if : if a == 1 then print("action 1") print("action 2") -- ... print("action n") sleep(2) -- tu mets tout ce que tu veux à la suite Variable1 = 12345 Variable2 = "toto" else --idem ici end
971jmd Posté(e) le 29 avril 2020 Auteur Signaler Posté(e) le 29 avril 2020 ha aaaa ok merci encor la je suis bloquée sur la manier d'incrémenter exemple: sur la télécommande 1 appuie = ouv - 1 appuie = STOP - 1 appuie = ferme L'idée est d'incrémenté une variable ? j'ai tester avec des boucles comme while ou for mai ça ne fonctionne pas
971jmd Posté(e) le 29 avril 2020 Auteur Signaler Posté(e) le 29 avril 2020 je trouve pas J'ai même essayé avec la fonction liste enchainé
jjacques68 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 pour incrémenter une variable : MaVariable = Mavariable + 1
971jmd Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 oui j'ai déjà testé et rien le ci-dessous est pas propre, mais je cherche à comprendre un truc Pk quand je lance le scenario la variable A passe bien à + 1 donc a = 2 et quand je relance il recommence à 1 une variable global ne bouge pas a = 1 if a == 1 then return (a) + 1 elseif a == 1 then return (a) + 1 elseif a == 3 then return (a) -3 ---reset
971jmd Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 Bon je ne suis pas loin de laissée tomber sur fibaro impossible de réalisée un compteur local i = tonumber (fibaro:getValue(244, "value")) print("Valeur du Module = "..i.. "") local vari = 0 -- on définit la variable avec nom et valeur while i <= 50 do -- tant que i reste inférieur ou égal à 50 i = varie + 1 -- on incrémente i print(i) . . .
jjacques68 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 Il y a 12 heures, 971jmd a dit : Pk quand je lance le scenario la variable A passe bien à + 1 donc a = 2 et quand je relance il recommence à 1 c'est normal, vu que tu initialises ta variable à 1. A chaque fois,que tu relance le scénario, tu recommence tout, donc tu réinitialises à chaque fois la variable ! Si tu ne veux pas que ça arrive, il faut utiliser une variable globale dans la HC2. Qui sera mémorisée, même après chaque relance de la scène. il y a 7 minutes, 971jmd a dit : sur fibaro impossible de réalisée un compteur je comprends pas ce que tu cherches à faire, mais regarde un peu ta variable : une fois elle s'appelle "vari" une autre fois elle s'appelle "varie" !!
971jmd Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 Désolé je fatigue, mes yeux pouuu je fait une pause 1
971jmd Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 Impossible d'arrêté j'ai testé avec le code suivant sur la HC2 qui fonctionne mai je ne comprends pas pk quand j'alume ma lampe ID244 ma variable s'incrémente 2 fois --[[ %% properties 244 value %% weather %% events %% globals --]] function inc () fibaro:setGlobal('TEST', fibaro:getGlobalValue('TEST') +1); end local param1 = tonumber(fibaro:getValue(244, "value")) if param1 == 1 then inc() end print("Valeur du Module = " ..param1.. "")
jjacques68 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 ah étrange ça, tu es bien sûr ? ta lampe serait pas un dimmer par hasard ?
jjacques68 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 supprime voir dans l'entête le %%event, weather et global pour voir ! et ajoute un "tonumber" pour le getGlobalValue de "test" ! mais suis pas convaincu...
971jmd Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 (modifié) Ben non-rein ne fonctionne Modifié le 30 avril 2020 par 971jmd
jjacques68 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 tu aurais pas un double appel de la fonction plus bas dans le code ?
971jmd Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 (modifié) Pourtant quand je test le 244: --[[ %% properties 244 value %% weather %% events %% globals TEST --]] local param1 = tonumber(fibaro:getValue(244, "value")) print("Valeur du Module = " ..param1.. "") [DEBUG] 16:38:19: Valeur du Module = 1 [DEBUG] 16:38:23: Valeur du Module = 0 Modifié le 30 avril 2020 par 971jmd
jjacques68 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 sinon on faire du debug : on va compléter la fonction : function inc () local MaVg = tonumber(fibaro:getGlobalValue('TEST')) print("MaVg avant = "..MaVg) MaVg = MaVg + 1 fibaro:setGlobal('TEST', MaVg) MaVg = tonumber(fibaro:getGlobalValue('TEST')) print("MaVg après = "..MaVg) end
jjacques68 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 ah mais attention, il faut pas mettre 'TEST' dans %%Global !! c'est normal du coup que ça incrémenté 2 fois !
971jmd Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 avec pou sans c'est pareil
jjacques68 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 regarde la fonction que j'ai écrite puis haut, afin d'avoir plus de traces...
971jmd Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 --[[ %% properties 244 value %% weather %% events %% globals --]] function inc () local MaVg = tonumber(fibaro:getGlobalValue('TEST')) print("MaVg avant = "..MaVg) MaVg = MaVg + 1 fibaro:setGlobal('TEST', MaVg) MaVg = tonumber(fibaro:getGlobalValue('TEST')) print("MaVg après = "..MaVg) end local param1 = tonumber(fibaro:getValue(244, "value")) if param1 == 1 then inc() end [DEBUG] 16:46:58: MaVg avant = 0 [DEBUG] 16:46:59: MaVg après = 1 [DEBUG] 16:46:59: MaVg avant = 1 [DEBUG] 16:46:59: MaVg après = 2
jjacques68 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 et tu peux rajouter les traces avec la valeur du module ¿
971jmd Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 [DEBUG] 16:52:16: MaVg avant = 0 [DEBUG] 16:52:17: MaVg après = 1 [DEBUG] 16:52:17: MaVg avant = 1 [DEBUG] 16:52:17: Valeur i/o du module = 1 [DEBUG] 16:52:17: MaVg après = 2 [DEBUG] 16:52:17: Valeur i/o du module = 1 le module génère 2 en vois
jjacques68 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 tu n'aurais pas l'option du module "always on" activée par hasard ?
Messages recommandés