971jmd Posté(e) le 5 mai 2020 Auteur Signaler Partager Posté(e) le 5 mai 2020 Après une nuit de sommeil tout fonctionne function foncA (a, b ) arg_A = a arg_B = b return arg_A end local aze = 10 if aze == 10 then arg_A = 2 --- print(arg_A) end local aze = 10 if aze == 10 then arg_B = 100 --- print(arg_A) end if arg_A == 2 then print("arg A ok") end if arg_B == 100 then print("arg B ok") end 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jang Posté(e) le 5 mai 2020 Signaler Partager Posté(e) le 5 mai 2020 Il y a 15 heures, 971jmd a dit : I did like that may be missing something local function make_p() local x=0 return {variables = function() x=x+1; return x end} end local p = make_p() print(p.variables()) print(p.variables()) ----------------------- do local x=0 function p() x=x+1; return x end end print(p()) print(p()) --------------------- p = (function() local x = 0; return function() x=x+1; return x end end)() print(p()) print(p()) --------------------- 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 6 mai 2020 Auteur Signaler Partager Posté(e) le 6 mai 2020 Salut J'ai un code simple que je n'arrive pas à faire fonctionner Soi je suis c.. ou fatiguée si ma lampe id38 On alors OFF id 369 ou si ma lampe id369 On alors OFF id 368 --[[ %% properties 368 value 369 value %% events %% globals --]] local lp1 = tonumber(fibaro:getValue(368, "value")) local lp2 = tonumber(fibaro:getValue(369, "value")) if lp1 == 1 then fibaro:call(369, "turnOff") fibaro:abort() end if lp2 == 1 then fibaro:call(368, "turnOff") fibaro:abort() end Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 7 mai 2020 Signaler Partager Posté(e) le 7 mai 2020 (modifié) comme tes 2 lampes sont trigger de la scène, il faut en plus de la valeur, que tu teste qui déclenche la scène avec un fibaro:getSourceTrigger() car sinon, le cas où les 2 lampes sont allumées en même temps, ta deuxième conditions ne prendra pas effet... local trigger = fibaro:getSourceTrigger() -- renvoie 368 ou 369 selon le module qui déclenche la scène if tonumber(trigger.deviceID) == 368 and tonumber(fibaro:getValue(368, "value")) == 1 then fibaro:call(369, "turnOff") elseif tonumber(trigger.deviceID) == 369 and tonumber(fibaro:getValue(369, "value")) == 1 then fibaro:call(368, "turnOff") end à tester... pas sûr que ça suffise... Modifié le 7 mai 2020 par jjacques68 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 7 mai 2020 Auteur Signaler Partager Posté(e) le 7 mai 2020 Merci, je teste demain matin. je doit avouer que cette semaine je sature sur le LUA mai je m’accroche 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 7 mai 2020 Signaler Partager Posté(e) le 7 mai 2020 faut savoir faire des pauses aussi 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 7 mai 2020 Auteur Signaler Partager Posté(e) le 7 mai 2020 (modifié) oui Bon ça fonctionne en deux mots quel est la fonction de fibaro:getSourceTrigger() Moi je comprends que c'est OU Modifié le 7 mai 2020 par 971jmd Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 7 mai 2020 Auteur Signaler Partager Posté(e) le 7 mai 2020 if tonumber(trigger.deviceID) == 368 and tonumber(fibaro:getValue(368, "value")) == 1 then fibaro:call(369, "turnOff") si ????????? est égale à Id368 et si la valeur de Id 368 égale 1 aloes Off Id 369 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ghoosti Posté(e) le 14 novembre 2020 Signaler Partager Posté(e) le 14 novembre 2020 (modifié) Bonjour à vous, Je suis novice, j'ai mis ceci dans la boucle principal d'un VD, mon but est de récupérer les valeurs des labels pour ensuite modifier une variable. if Label3 == "OFF" and Label4 == "OFF" and Label6 == "OFF" and Label7 == "OFF" and Label8 == "OFF" and Label10 == "OFF" and Label11 == "OFF" and Label12 == "OFF" and Label13 == "OFF" and Label15 == "OFF" and Labe117 == "OFF" then fibaro:setGlobal('EclMode', 'AUTO') else fibaro:setGlobal('EclMode', 'MANU') end ça fonctionne uniquement sur la 1er ligne ? Le but est de récupérer les valeurs des labels du VD pour ensuite modifier ma variable Une autre solution serait d'utiliser une Fonction ou Table ? Merci pour votre aide et conseils.... Modifié le 14 novembre 2020 par Ghoosti Ajout Fonction ou table Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 2 mai 2022 Auteur Signaler Partager Posté(e) le 2 mai 2022 (modifié) salut à tous j'ai souhaite votre aide Je souhaite réaliser un petit code, pour me permettre de réalisée trois actions sur des volets roulants 1 click ouvre 1 click Stop 1 Click Ferme etc Ça ne fonctionne pas très bien { conditions = { { id = 143, isTrigger = true, operator = "==", property = "centralSceneEvent", type = "device", value = { keyAttribute = "Pressed", keyId = 1 } } }, operator = "all" } if fibaro.getGlobalVariable("AZERTY") == "A" then fibaro.call(279, 'open') --- OUVRE ---fibaro:sleep(3000) fibaro.setGlobalVariable('AZERTY', 'B') --end elseif fibaro.getGlobalVariable("AZERTY") == "B" then fibaro.call(279, 'stop') --- STOP ---fibaro:sleep(3000) fibaro.setGlobalVariable('AZERTY', 'C') ---end elseif fibaro.getGlobalVariable("AZERTY") == "C" then fibaro.call(279, 'close') --- CLOSE --- fibaro:sleep(3000) fibaro.setGlobalVariable('AZERTY', 'D') ---end elseif fibaro.getGlobalVariable("AZERTY") == "D" then fibaro.call(279, 'stop') --- fibaro:sleep(3000) fibaro.setGlobalVariable('AZERTY', 'A') end ---vérification de la position du volet haut ou bas --haut local a = fibaro:getValue(279, 'value') if tonumber(a) >= 90 then fibaro.setGlobalVariable('AZERTY', 'C') end --- bas local b = fibaro:getValue(279, 'value') if tonumber(b) <= 90 then fibaro.setGlobalVariable('AZERTY', 'A') end Modifié le 2 mai 2022 par 971jmd Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés