971jmd Posté(e) le 5 mai 2020 Auteur Signaler 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
jang Posté(e) le 5 mai 2020 Signaler 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
971jmd Posté(e) le 6 mai 2020 Auteur Signaler 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
jjacques68 Posté(e) le 7 mai 2020 Signaler 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
971jmd Posté(e) le 7 mai 2020 Auteur Signaler 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
jjacques68 Posté(e) le 7 mai 2020 Signaler Posté(e) le 7 mai 2020 faut savoir faire des pauses aussi 1
971jmd Posté(e) le 7 mai 2020 Auteur Signaler 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
971jmd Posté(e) le 7 mai 2020 Auteur Signaler 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
Ghoosti Posté(e) le 14 novembre 2020 Signaler 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
971jmd Posté(e) le 2 mai 2022 Auteur Signaler 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
Messages recommandés