Did Posté(e) le 26 février 2016 Signaler Partager Posté(e) le 26 février 2016 Donc là , les bandeaux passent bien en programme 546 (je les avais allumé en prog 6) pendant les 15 secondes puis s'éteignent alors qu'ils auraient dà» reprendre sur le programme 6. Le debug: [DEBUG] 11:10:24: Démarrage du script : 26/02/2016 11:10:24 [DEBUG] 11:10:24: Valeur CeL : 0 [DEBUG] 11:10:24: Couleur Master :0,0,0,0 [DEBUG] 11:10:24: Programme Master :6 [DEBUG] 11:10:24: Couleur Slave :0,0,0,0 [DEBUG] 11:10:24: Programme slave :6 [DEBUG] 11:10:24: Affectation PROG aux variables [DEBUG] 11:10:24: RGB sur Programme 546 [DEBUG] 11:10:24: tempo de 15 secs [DEBUG] 11:10:39: Remise valeur précédente Master [DEBUG] 11:10:39: Remise valeur précédente Slave [DEBUG] 11:10:39: Réinitialisation des variables Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 26 février 2016 Signaler Partager Posté(e) le 26 février 2016 Attends, il faut que j'épluche un peu mieux mes tests, je l'ai vu bien fonctionner quand un des bandeaux était éteint. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 26 février 2016 Auteur Signaler Partager Posté(e) le 26 février 2016 On avance ;-) Bon j'ai rajouté des debug pour verifier si les valeurs du programme sont bien récupérees dans les Variables Globales et j'ai modifié les derniers IF --[[ %% properties 208 value %% globals --]] local id_master = 239 -- ID des Master (ID Master) local id_slaves = 545 -- ID des Slaves {1}, {1,2,3} local prog_rgb = 546 local var_global_master = "RGB_Previous1" local var_global_slave = "RGB_Previous2" local debug = true -- Debug local CeL = fibaro:getValue(208, 'value' ) local currentdate = os.date("%d/%m/%Y %H:%M:%S") local VGMaster = tonumber(fibaro:getGlobalValue(var_global_master)) local VGSlave = tonumber(fibaro:getGlobalValue(var_global_slave)) if debug then fibaro:debug("Démarrage du script : " ..currentdate) fibaro:debug("Valeur CeL : " ..CeL) end function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end --Recup couleur et Prog du RGB Master local result = split(fibaro:getValue(id_master, "color"), ',') local ProgMaster = fibaro:getValue(id_master, "currentProgramID") -- Recup couleur et Prog du RGB slave local resultat = split(fibaro:getValue(id_slaves, "color"), ',') local ProgSlave = fibaro:getValue(id_slaves, "currentProgramID") --Affichage dans le debug des couleurs de RGB Master et RGB Slave if debug then fibaro:debug("Couleur Master :" ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("Programme Master :" ..ProgMaster) fibaro:debug("Couleur Slave :" ..resultat[1]..","..resultat[2]..","..resultat[3]..","..resultat[4]) fibaro:debug("Programme slave :" ..ProgSlave) end -- Affectation PROG aux VG fibaro:debug("Affectation PROG aux variables") fibaro:setGlobal(var_global_master, ProgMaster) fibaro:setGlobal(var_global_slave, ProgSlave) fibaro:debug("Valeur VGMaster :" ..VGMaster) fibaro:debug("Valeur VGSlave :" ..VGSlave) -- SI activation cellule 208, les 2 RGB avec le programme 546 fibaro:debug("RGB sur Programme : " ..prog_rgb) fibaro:call(id_master, "startProgram", prog_rgb) fibaro:call(id_slaves, "startProgram", prog_rgb) -- Tempo de 15 secs fibaro:debug("tempo de 15 secs") fibaro:sleep(15*1000) -- Remise prog/couleur des RGB en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente Master") if (result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") then fibaro:call(id_master, "startProgram", VGMaster) fibaro:debug("Prog :" ..VGMaster.. "sur" ..id_master) else fibaro:call(id_master, "setColor", result[1], result[2], result[3], result[4]) fibaro:debug("Couleur sur :" ..id_master) end -- Remise prog/couleur des RGB en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente Slave") if (resultat[1] == "0" and resultat[2] == "0" and resultat[3] == "0" and resultat[4] == "0") then fibaro:call(id_slaves, "startProgram", VGSlave) fibaro:debug("Prog :" ..VGSlave.. "sur" ..id_slaves) else fibaro:call(id_slaves, "setColor", resultat[1], resultat[2], resultat[3], resultat[4]) fibaro:debug("Couleur sur :" ..id_slaves) end --Reinitialisation des variables fibaro:debug("Réinitialisation des variables") fibaro:setGlobal(var_global_master, "") fibaro:setGlobal(var_global_slave, "") fibaro:debug("Valeur après réinitialisation VGMaster :" ..VGMaster) fibaro:debug("Valeur après réinitialisation VGSlave :" ..VGSlave) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 26 février 2016 Signaler Partager Posté(e) le 26 février 2016 J'ai mis ton dernier code pour faire les tests, alors quand les deux bandeaux sont allumés sur un programme, même différent, le déclenchement de 208 lance bien le prog 546 pendant la tempo et le tout revient sur le programme en cours avant (y compris si les programmes étaient différents) donc ça c'est bien. Le debug: [DEBUG] 13:28:22: Démarrage du script : 26/02/2016 13:28:22 [DEBUG] 13:28:22: Valeur CeL : 1 [DEBUG] 13:28:22: Couleur Master :0,0,0,0 [DEBUG] 13:28:22: Programme Master :6 [DEBUG] 13:28:22: Couleur Slave :0,0,0,0 [DEBUG] 13:28:22: Programme slave :6 [DEBUG] 13:28:22: Affectation PROG aux variables [DEBUG] 13:28:22: line 70: attempt to concatenate local 'VGMaster' (a nil value) [DEBUG] 13:28:24: Démarrage du script : 26/02/2016 13:28:24 [DEBUG] 13:28:24: Valeur CeL : 0 [DEBUG] 13:28:24: Couleur Master :0,0,0,0 [DEBUG] 13:28:24: Programme Master :6 [DEBUG] 13:28:24: Couleur Slave :0,0,0,0 [DEBUG] 13:28:24: Programme slave :6 [DEBUG] 13:28:24: Affectation PROG aux variables [DEBUG] 13:28:24: Valeur VGMaster :6 [DEBUG] 13:28:24: Valeur VGSlave :6 [DEBUG] 13:28:24: RGB sur Programme : 546 [DEBUG] 13:28:24: tempo de 15 secs [DEBUG] 13:28:39: Remise valeur précédente Master [DEBUG] 13:28:39: Prog :6sur239 [DEBUG] 13:28:39: Remise valeur précédente Slave [DEBUG] 13:28:39: Prog :6sur545 [DEBUG] 13:28:39: Réinitialisation des variables [DEBUG] 13:28:39: Valeur après réinitialisation VGMaster :6 [DEBUG] 13:28:39: Valeur après réinitialisation VGSlave :6 Par contre, si un des bandeaux est éteint ou les deux, le programme 546 se lance mais ne s'arrête plus (sur celui qui était éteint, celui qui était allumé revient bien sur son programme), le debug: [DEBUG] 13:32:00: Démarrage du script : 26/02/2016 13:32:00 [DEBUG] 13:32:00: Valeur CeL : 1 [DEBUG] 13:32:00: Couleur Master :0,0,0,0 [DEBUG] 13:32:00: Programme Master :0 [DEBUG] 13:32:00: Couleur Slave :0,0,0,0 [DEBUG] 13:32:00: Programme slave :0 [DEBUG] 13:32:00: Affectation PROG aux variables [DEBUG] 13:32:00: line 70: attempt to concatenate local 'VGMaster' (a nil value) [DEBUG] 13:32:02: Démarrage du script : 26/02/2016 13:32:02 [DEBUG] 13:32:02: Valeur CeL : 0 [DEBUG] 13:32:02: Couleur Master :0,0,0,0 [DEBUG] 13:32:02: Programme Master :0 [DEBUG] 13:32:02: Couleur Slave :0,0,0,0 [DEBUG] 13:32:02: Programme slave :0 [DEBUG] 13:32:02: Affectation PROG aux variables [DEBUG] 13:32:02: Valeur VGMaster :0 [DEBUG] 13:32:02: Valeur VGSlave :0 [DEBUG] 13:32:02: RGB sur Programme : 546 [DEBUG] 13:32:02: tempo de 15 secs [DEBUG] 13:32:17: Remise valeur précédente Master [DEBUG] 13:32:17: Prog :0sur239 [DEBUG] 13:32:17: Remise valeur précédente Slave [DEBUG] 13:32:17: Prog :0sur545 [DEBUG] 13:32:17: Réinitialisation des variables [DEBUG] 13:32:17: Valeur après réinitialisation VGMaster :0 [DEBUG] 13:32:17: Valeur après réinitialisation VGSlave :0 Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 26 février 2016 Auteur Signaler Partager Posté(e) le 26 février 2016 ca avance bien ;-) Ah zut, ca s'eteint pas hihih Et comme ceci, rajout de conditions dans les IF/elseif/else et de debug pour suivre --[[ %% properties 208 value %% globals --]] local id_master = 239 -- ID des Master (ID Master) local id_slaves = 545 -- ID des Slaves {1}, {1,2,3} local prog_rgb = 546 local var_global_master = "RGB_Previous1" local var_global_slave = "RGB_Previous2" local debug = true -- Debug local CeL = fibaro:getValue(208, 'value' ) local currentdate = os.date("%d/%m/%Y %H:%M:%S") local VGMaster = tonumber(fibaro:getGlobalValue(var_global_master)) local VGSlave = tonumber(fibaro:getGlobalValue(var_global_slave)) if debug then fibaro:debug("Démarrage du script : " ..currentdate) --fibaro:debug("Valeur CeL : " ..CeL) end function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end --Recup couleur et Prog du RGB Master local result = split(fibaro:getValue(id_master, "color"), ',') local ProgMaster = fibaro:getValue(id_master, "currentProgramID") -- Recup couleur et Prog du RGB slave local resultat = split(fibaro:getValue(id_slaves, "color"), ',') local ProgSlave = fibaro:getValue(id_slaves, "currentProgramID") --Affichage dans le debug des couleurs de RGB Master et RGB Slave if debug then fibaro:debug("Couleur Master :" ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("Programme Master :" ..ProgMaster) fibaro:debug("Couleur Slave :" ..resultat[1]..","..resultat[2]..","..resultat[3]..","..resultat[4]) fibaro:debug("Programme slave :" ..ProgSlave) end -- Affectation PROG aux VG fibaro:debug("Affectation PROG aux variables") fibaro:setGlobal(var_global_master, ProgMaster) fibaro:setGlobal(var_global_slave, ProgSlave) fibaro:debug("Valeur VGMaster :" ..VGMaster) fibaro:debug("Valeur VGSlave :" ..VGSlave) -- SI activation cellule 208, les 2 RGB avec le programme 546 fibaro:debug("RGB sur Programme : " ..prog_rgb) fibaro:call(id_master, "startProgram", prog_rgb) fibaro:call(id_slaves, "startProgram", prog_rgb) -- Tempo de 15 secs fibaro:debug("tempo de 15 secs") fibaro:sleep(15*1000) -- Remise prog/couleur des RGB en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente Master") if ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (VGMaster > "0")) then fibaro:call(id_master, "startProgram", VGMaster) fibaro:debug("Prog : " ..VGMaster.. " sur " ..id_master) elseif ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (VGMaster == "0")) fibaro:call(id_master, "turnOff") fibaro:debug("Extinction : " ..id_master) else fibaro:call(id_master, "setColor", result[1], result[2], result[3], result[4]) fibaro:debug("Couleur sur : " ..id_master) end -- Remise prog/couleur des RGB en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente Slave") if (resultat[1] == "0" and resultat[2] == "0" and resultat[3] == "0" and resultat[4] == "0") and (VGSlave > "0") then fibaro:call(id_slaves, "startProgram", VGSlave) fibaro:debug("Prog : " ..VGSlave.. " sur " ..id_slaves) elseif ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (VGSlave == "0")) fibaro:call(id_slaves, "turnOff") fibaro:debug("Extinction : " ..id_slaves) else fibaro:call(id_slaves, "setColor", resultat[1], resultat[2], resultat[3], resultat[4]) fibaro:debug("Couleur sur :" ..id_slaves) end --Reinitialisation des variables fibaro:debug("Réinitialisation des variables") fibaro:setGlobal(var_global_master, "0") fibaro:setGlobal(var_global_slave, "0") fibaro:debug("Valeur après réinitialisation VGMaster :" ..VGMaster) fibaro:debug("Valeur après réinitialisation VGSlave :" ..VGSlave) Question bete, je n'ai pas de RGB, mais quand tu remets les couleurs à 0,0,0,0 ca l'eteint non ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 26 février 2016 Signaler Partager Posté(e) le 26 février 2016 Alors là , plus rien ne s'allume, qu'ils soient allumés ou éteint avant. [DEBUG] 14:50:39: line 90: 'then' expected near 'fibaro' [DEBUG] 14:50:41: line 90: 'then' expected near 'fibaro' Pour éteindre, je fais fibaro:call(239, "turnOff") mais effectivement, cette commande éteint aussi le bandeau. fibaro:call(239, "setColor", "0", "0", "0", "0") Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 26 février 2016 Auteur Signaler Partager Posté(e) le 26 février 2016 lol, le boulet, j'avais oublie le "Then" des "elseif" ;-) Ok ca eteint aussi, donc pas besoin des "elseif", ceci doit fonctionner en changer les IF : Si les couleurs sont = 0,0,0,0 ET valeur du PROG > 0 ALORS remettre le programme de la variable globale SINON remettre les couleurs 0,0,0,0 ca derait l'etiendre enfin je pense Teste, ca sent bon la fin ;-) lol --[[ %% properties 208 value %% globals --]] local id_master = 239 -- ID des Master (ID Master) local id_slaves = 545 -- ID des Slaves {1}, {1,2,3} local prog_rgb = 546 local var_global_master = "RGB_Previous1" local var_global_slave = "RGB_Previous2" local debug = true -- Debug ------ local currentdate = os.date("%d/%m/%Y %H:%M:%S") local VGMaster = tonumber(fibaro:getGlobalValue(var_global_master)) local VGSlave = tonumber(fibaro:getGlobalValue(var_global_slave)) -------- if debug then fibaro:debug("Démarrage du script : " ..currentdate) end function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end --Recup couleur et Prog du RGB Master local result = split(fibaro:getValue(id_master, "color"), ',') local ProgMaster = fibaro:getValue(id_master, "currentProgramID") -- Recup couleur et Prog du RGB slave local resultat = split(fibaro:getValue(id_slaves, "color"), ',') local ProgSlave = fibaro:getValue(id_slaves, "currentProgramID") --Affichage dans le debug des couleurs de RGB Master et RGB Slave if debug then fibaro:debug("Couleur Master :" ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("Programme Master :" ..ProgMaster) fibaro:debug("Couleur Slave :" ..resultat[1]..","..resultat[2]..","..resultat[3]..","..resultat[4]) fibaro:debug("Programme slave :" ..ProgSlave) end -- Affectation PROG aux VG fibaro:debug("Affectation PROG aux variables") fibaro:setGlobal(var_global_master, ProgMaster) fibaro:setGlobal(var_global_slave, ProgSlave) fibaro:debug("Valeur VGMaster :" ..VGMaster) fibaro:debug("Valeur VGSlave :" ..VGSlave) -- SI activation cellule 208, les 2 RGB avec le programme 546 fibaro:debug("RGB sur Programme : " ..prog_rgb) fibaro:call(id_master, "startProgram", prog_rgb) fibaro:call(id_slaves, "startProgram", prog_rgb) -- Tempo de 15 secs fibaro:debug("tempo de 15 secs") fibaro:sleep(15*1000) -- Remise prog/couleur des RGB en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente Master") if ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (VGMaster > "0")) then fibaro:call(id_master, "startProgram", VGMaster) fibaro:debug("Prog : " ..VGMaster.. " sur " ..id_master) else fibaro:call(id_master, "setColor", result[1], result[2], result[3], result[4]) fibaro:debug("Couleur sur : " ..id_master) end -- Remise prog/couleur des RGB en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente Slave") if (resultat[1] == "0" and resultat[2] == "0" and resultat[3] == "0" and resultat[4] == "0") and (VGSlave > "0") then fibaro:call(id_slaves, "startProgram", VGSlave) fibaro:debug("Prog : " ..VGSlave.. " sur " ..id_slaves) else fibaro:call(id_slaves, "setColor", resultat[1], resultat[2], resultat[3], resultat[4]) fibaro:debug("Couleur sur :" ..id_slaves) end --Reinitialisation des variables fibaro:debug("Réinitialisation des variables") fibaro:setGlobal(var_global_master, "0") fibaro:setGlobal(var_global_slave, "0") fibaro:debug("Valeur après réinitialisation VGMaster :" ..VGMaster) fibaro:debug("Valeur après réinitialisation VGSlave :" ..VGSlave) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 26 février 2016 Signaler Partager Posté(e) le 26 février 2016 Désolé @pepite, Pas encore la fin, j'ai allumé le 545 sur le programme 6 et laissé éteint le 239 et ça passe en 546 mais reste bloqué dessus. [DEBUG] 18:54:22: Démarrage du script : 26/02/2016 18:54:22 [DEBUG] 18:54:22: Couleur Master :0,0,0,0 [DEBUG] 18:54:22: Programme Master :0 [DEBUG] 18:54:22: Couleur Slave :0,0,0,0 [DEBUG] 18:54:22: Programme slave :6 [DEBUG] 18:54:22: Affectation PROG aux variables [DEBUG] 18:54:23: line 70: attempt to concatenate local 'VGMaster' (a nil value) [DEBUG] 18:54:25: Démarrage du script : 26/02/2016 18:54:25 [DEBUG] 18:54:25: Couleur Master :0,0,0,0 [DEBUG] 18:54:25: Programme Master :0 [DEBUG] 18:54:25: Couleur Slave :0,0,0,0 [DEBUG] 18:54:25: Programme slave :6 [DEBUG] 18:54:25: Affectation PROG aux variables [DEBUG] 18:54:25: Valeur VGMaster :0 [DEBUG] 18:54:25: Valeur VGSlave :6 [DEBUG] 18:54:25: RGB sur Programme : 546 [DEBUG] 18:54:25: tempo de 15 secs [DEBUG] 18:54:40: Remise valeur précédente Master [DEBUG] 18:54:40: line 84: attempt to compare string with number Les deux allumés ne repassent pas non plus sur le prog initial. [DEBUG] 19:03:20: Démarrage du script : 26/02/2016 19:03:20 [DEBUG] 19:03:20: Couleur Master :0,0,0,0 [DEBUG] 19:03:20: Programme Master :6 [DEBUG] 19:03:20: Couleur Slave :0,0,0,0 [DEBUG] 19:03:20: Programme slave :6 [DEBUG] 19:03:20: Affectation PROG aux variables [DEBUG] 19:03:20: Valeur VGMaster :0 [DEBUG] 19:03:20: Valeur VGSlave :6 [DEBUG] 19:03:20: RGB sur Programme : 546 [DEBUG] 19:03:20: tempo de 15 secs [DEBUG] 19:03:22: Démarrage du script : 26/02/2016 19:03:22 [DEBUG] 19:03:22: Couleur Master :0,0,0,0 [DEBUG] 19:03:22: Programme Master :546 [DEBUG] 19:03:22: Couleur Slave :0,0,0,0 [DEBUG] 19:03:22: Programme slave :546 [DEBUG] 19:03:22: Affectation PROG aux variables [DEBUG] 19:03:22: Valeur VGMaster :6 [DEBUG] 19:03:22: Valeur VGSlave :6 [DEBUG] 19:03:22: RGB sur Programme : 546 [DEBUG] 19:03:22: tempo de 15 secs [DEBUG] 19:03:35: Remise valeur précédente Master [DEBUG] 19:03:35: line 84: attempt to compare string with number [DEBUG] 19:03:37: Remise valeur précédente Master [DEBUG] 19:03:37: line 84: attempt to compare string with number Merci @pepite pour ton abnégation, je vois déjà ce que tu vas me répondre: que ça te permet de progresser, certes mais vraiment mille merci de te défoncer pour moi (et peut-être d'autre). Lien vers le commentaire Partager sur d’autres sites More sharing options...
Domodial Posté(e) le 26 février 2016 Signaler Partager Posté(e) le 26 février 2016 oui moi ! ben les gars vous en voulez ou moi j'ai baissez les bras Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 26 février 2016 Signaler Partager Posté(e) le 26 février 2016 C'est surtout @pepite qu'il faut féliciter. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 27 février 2016 Auteur Signaler Partager Posté(e) le 27 février 2016 Salut @Did, Tu as raison et c'est avec plaisir que je le fais. Plantage sur des comparaisons, une chaine avec un nombre, ca ne risquait pas de fonctionner, enfin c'est ce que je comprends ;-) Modif : comparaison avec tonumber ;-) --[[ %% properties 208 value %% globals --]] local id_master = 239 -- ID des Master (ID Master) local id_slaves = 545 -- ID des Slaves {1}, {1,2,3} local prog_rgb = 546 local var_global_master = "RGB_Previous1" local var_global_slave = "RGB_Previous2" local debug = true -- Debug ------ local currentdate = os.date("%d/%m/%Y %H:%M:%S") local VGMaster = tonumber(fibaro:getGlobalValue(var_global_master)) local VGSlave = tonumber(fibaro:getGlobalValue(var_global_slave)) -------- fibaro:debug("Démarrage du script : " ..currentdate) function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end --Recup couleur et Prog du RGB Master local result = split(fibaro:getValue(id_master, "color"), ',') local ProgMaster = fibaro:getValue(id_master, "currentProgramID") -- Recup couleur et Prog du RGB slave local resultat = split(fibaro:getValue(id_slaves, "color"), ',') local ProgSlave = fibaro:getValue(id_slaves, "currentProgramID") --Affichage dans le debug des couleurs de RGB Master et RGB Slave if debug then fibaro:debug("Couleur Master : " ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("Programme Master : " ..ProgMaster) fibaro:debug("Couleur Slave : " ..resultat[1]..","..resultat[2]..","..resultat[3]..","..resultat[4]) fibaro:debug("Programme slave : " ..ProgSlave) end -- Affectation PROG aux VG fibaro:debug("Affectation PROG aux variables") fibaro:setGlobal(var_global_master, ProgMaster) fibaro:setGlobal(var_global_slave, ProgSlave) fibaro:debug("Valeur VGMaster : " ..VGMaster) fibaro:debug("Valeur VGSlave : " ..VGSlave) -- SI activation cellule 208, les 2 RGB avec le programme 546 fibaro:debug("RGB sur Programme : " ..prog_rgb) fibaro:call(id_master, "startProgram", prog_rgb) fibaro:call(id_slaves, "startProgram", prog_rgb) -- Tempo de 15 secs fibaro:debug("tempo de 15 secs") fibaro:sleep(15*1000) -- Remise prog/couleur des RGB en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente Master") if ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (tonumber(VGMaster) > "0")) then fibaro:call(id_master, "startProgram", VGMaster) fibaro:debug("Prog : " ..VGMaster.. " sur " ..id_master) else fibaro:call(id_master, "setColor", result[1], result[2], result[3], result[4]) fibaro:debug("Couleur sur : " ..id_master) end -- Remise prog/couleur des RGB en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente Slave") if ((resultat[1] == "0" and resultat[2] == "0" and resultat[3] == "0" and resultat[4] == "0") and (tonumber(VGSlave) > "0")) then fibaro:call(id_slaves, "startProgram", VGSlave) fibaro:debug("Prog : " ..VGSlave.. " sur " ..id_slaves) else fibaro:call(id_slaves, "setColor", resultat[1], resultat[2], resultat[3], resultat[4]) fibaro:debug("Couleur sur :" ..id_slaves) end --Reinitialisation des variables fibaro:debug("Réinitialisation des variables") fibaro:setGlobal(var_global_master, "0") fibaro:setGlobal(var_global_slave, "0") fibaro:debug("Valeur après réinitialisation VGMaster :" ..VGMaster) fibaro:debug("Valeur après réinitialisation VGSlave :" ..VGSlave) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 27 février 2016 Signaler Partager Posté(e) le 27 février 2016 Bonjour @pepite, Le prog 546 ne s'éteint pas, qu'ils soient allumés ou éteints avant. [DEBUG] 12:23:14: Démarrage du script : 27/02/2016 12:23:14 [DEBUG] 12:23:14: Couleur Master : 0,0,0,0 [DEBUG] 12:23:14: Programme Master : 0 [DEBUG] 12:23:14: Couleur Slave : 0,0,0,0 [DEBUG] 12:23:14: Programme slave : 6 [DEBUG] 12:23:14: Affectation PROG aux variables [DEBUG] 12:23:14: Valeur VGMaster : 546 [DEBUG] 12:23:14: Valeur VGSlave : 546 [DEBUG] 12:23:14: RGB sur Programme : 546 [DEBUG] 12:23:14: tempo de 15 secs [DEBUG] 12:23:16: Démarrage du script : 27/02/2016 12:23:16 [DEBUG] 12:23:16: Couleur Master : 0,0,0,0 [DEBUG] 12:23:16: Programme Master : 546 [DEBUG] 12:23:16: Couleur Slave : 0,0,0,0 [DEBUG] 12:23:16: Programme slave : 546 [DEBUG] 12:23:16: Affectation PROG aux variables [DEBUG] 12:23:16: Valeur VGMaster : 0 [DEBUG] 12:23:16: Valeur VGSlave : 6 [DEBUG] 12:23:16: RGB sur Programme : 546 [DEBUG] 12:23:16: tempo de 15 secs [DEBUG] 12:23:29: Remise valeur précédente Master [DEBUG] 12:23:29: line 84: attempt to compare string with number [DEBUG] 12:23:31: Remise valeur précédente Master [DEBUG] 12:23:31: line 84: attempt to compare string with number Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 27 février 2016 Auteur Signaler Partager Posté(e) le 27 février 2016 normal a priori avec les lignes de comparaison bugguees, la 84, j'essaie autre chose. Et comme ceci ? Essai num 586 342 lol --[[ %% properties 208 value %% globals --]] local id_master = 239 -- ID des Master (ID Master) local id_slaves = 545 -- ID des Slaves {1}, {1,2,3} local prog_rgb = 546 local var_global_master = "RGB_Previous1" local var_global_slave = "RGB_Previous2" local debug = true -- Debug ------ local currentdate = os.date("%d/%m/%Y %H:%M:%S") local VGMaster = tonumber(fibaro:getGlobalValue(var_global_master)) local VGSlave = tonumber(fibaro:getGlobalValue(var_global_slave)) -------- fibaro:debug("Démarrage du script : " ..currentdate) function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end --Recup couleur et Prog du RGB Master local result = split(fibaro:getValue(id_master, "color"), ',') local ProgMaster = fibaro:getValue(id_master, "currentProgramID") -- Recup couleur et Prog du RGB slave local resultat = split(fibaro:getValue(id_slaves, "color"), ',') local ProgSlave = fibaro:getValue(id_slaves, "currentProgramID") --Affichage dans le debug des couleurs de RGB Master et RGB Slave if debug then fibaro:debug("Couleur Master : " ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("Programme Master : " ..ProgMaster) fibaro:debug("Couleur Slave : " ..resultat[1]..","..resultat[2]..","..resultat[3]..","..resultat[4]) fibaro:debug("Programme slave : " ..ProgSlave) end -- Affectation PROG aux VG fibaro:debug("Affectation PROG aux variables") fibaro:setGlobal(var_global_master, ProgMaster) fibaro:setGlobal(var_global_slave, ProgSlave) fibaro:debug("Valeur VGMaster : " ..VGMaster) fibaro:debug("Valeur VGSlave : " ..VGSlave) -- SI activation cellule 208, les 2 RGB avec le programme 546 fibaro:debug("RGB sur Programme : " ..prog_rgb) fibaro:call(id_master, "startProgram", prog_rgb) fibaro:call(id_slaves, "startProgram", prog_rgb) -- Tempo de 15 secs fibaro:debug("tempo de 15 secs") fibaro:sleep(15*1000) -- Remise prog/couleur des RGB en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente Master") if ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (tonumber(VGMaster) > 0)) then fibaro:call(id_master, "startProgram", VGMaster) fibaro:debug("Prog : " ..VGMaster.. " sur " ..id_master) else fibaro:call(id_master, "setColor", result[1], result[2], result[3], result[4]) fibaro:debug("Couleur sur : " ..id_master) end -- Remise prog/couleur des RGB en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente Slave") if ((resultat[1] == "0" and resultat[2] == "0" and resultat[3] == "0" and resultat[4] == "0") and (tonumber(VGSlave) > 0)) then fibaro:call(id_slaves, "startProgram", VGSlave) fibaro:debug("Prog : " ..VGSlave.. " sur " ..id_slaves) else fibaro:call(id_slaves, "setColor", resultat[1], resultat[2], resultat[3], resultat[4]) fibaro:debug("Couleur sur :" ..id_slaves) end --Reinitialisation des variables fibaro:debug("Réinitialisation des variables") fibaro:setGlobal(var_global_master, "0") fibaro:setGlobal(var_global_slave, "0") fibaro:debug("Valeur après réinitialisation VGMaster :" ..VGMaster) fibaro:debug("Valeur après réinitialisation VGSlave :" ..VGSlave) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 27 février 2016 Signaler Partager Posté(e) le 27 février 2016 Bingo, c'est bon ce coup ci, je vais tester tout ce week-end et ajouter mes lignes pour le Sonos. Merci @pepite. Autre question: Si j'ajoutes un nouveau bandeau (pour avoir cette signalisation à l'étage), je rajoutes le nouvel Id dans les slaves (séparé par une virgule) et une nouvelle variable "RGB_Previous3" dans le panneau? Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 27 février 2016 Auteur Signaler Partager Posté(e) le 27 février 2016 Au bout du 452 645 ème essai ;-) Peux tu mettre le debug stp ? il ya tout de même des choses pas top ;-) bien que cela fonctionne.. Le code n'est pas ecrit pour lire dans des tables pour l'instant, pas du tout optimise.. Les experts du forum en lisant mon code vont s'arracher les cheveux ;-) Donc tu ne pourras pas tel quel, il faudra rajouter une variable pour le nouveau RGB, puis une nouvelle Variable Globale RGB Previous et enfin des lignes pour recupere les valeurs precedentes et les remettre apres. Maintenant que cela fonctionne, vais tenter de le faire pour plusieurs RGB, et1 variable serait plus simple. et non X variables pour X RGB tel qu'actuellement. Peux plus "jouer" auj, mais demain certainement un peu plus de temps. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 27 février 2016 Signaler Partager Posté(e) le 27 février 2016 Ah, moi je croyais que c'était bon, alors le debug: [DEBUG] 12:55:01: Démarrage du script : 27/02/2016 12:55:01 [DEBUG] 12:55:01: Couleur Master : 0,0,0,0 [DEBUG] 12:55:01: Programme Master : 0 [DEBUG] 12:55:01: Couleur Slave : 0,0,0,0 [DEBUG] 12:55:01: Programme slave : 6 [DEBUG] 12:55:01: Affectation PROG aux variables [DEBUG] 12:55:01: Valeur VGMaster : 546 [DEBUG] 12:55:01: Valeur VGSlave : 546 [DEBUG] 12:55:01: RGB sur Programme : 546 [DEBUG] 12:55:02: tempo de 15 secs [DEBUG] 12:55:03: Démarrage du script : 27/02/2016 12:55:03 [DEBUG] 12:55:03: Couleur Master : 0,0,0,0 [DEBUG] 12:55:03: Programme Master : 546 [DEBUG] 12:55:03: Couleur Slave : 0,0,0,0 [DEBUG] 12:55:03: Programme slave : 546 [DEBUG] 12:55:03: Affectation PROG aux variables [DEBUG] 12:55:03: Valeur VGMaster : 0 [DEBUG] 12:55:03: Valeur VGSlave : 6 [DEBUG] 12:55:03: RGB sur Programme : 546 [DEBUG] 12:55:03: tempo de 15 secs [DEBUG] 12:55:17: Remise valeur précédente Master [DEBUG] 12:55:17: Prog : 546 sur 239 [DEBUG] 12:55:17: Remise valeur précédente Slave [DEBUG] 12:55:17: Prog : 546 sur 545 [DEBUG] 12:55:17: Réinitialisation des variables [DEBUG] 12:55:17: Valeur après réinitialisation VGMaster :546 [DEBUG] 12:55:17: Valeur après réinitialisation VGSlave :546 [DEBUG] 12:55:18: Remise valeur précédente Master [DEBUG] 12:55:18: Couleur sur : 239 [DEBUG] 12:55:18: Remise valeur précédente Slave [DEBUG] 12:55:18: Prog : 6 sur 545 [DEBUG] 12:55:18: Réinitialisation des variables [DEBUG] 12:55:18: Valeur après réinitialisation VGMaster :0 [DEBUG] 12:55:18: Valeur après réinitialisation VGSlave :6 Pas de soucis, quand tu peux. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 28 février 2016 Auteur Signaler Partager Posté(e) le 28 février 2016 Salut @Did, si ca fonctionne, mais il y a des choses en double dans le debug que je ne comprends pas bien ;-) Sinon, garde ta scene qui tourne et essaie ca, pour pouvoir rajouter autant de RGBs que l'on veut, sans passer par des VG --[[ %% properties 208 value %% globals --]] ------ User settings ----- local id_RGBs = {239, 545} local ProgRGB = 546 --------------- local currentdate = os.date("%d/%m/%Y %H:%M:%S") fibaro:debug("Démarrage du script : " ..currentdate) -- fonction split ---- function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end ---------- for i = 1, #id_RGBs do -- Recup Couleur et programme des RGBs local result = split(fibaro:getValue(id_RGBs[i], "color"), ',') local Prog = fibaro:getValue(id_RGBs[i], "currentProgramID") -- Debug valeur result et prog fibaro:debug("Couleur : " ..id_RGBs[i].. " : " ..result[i][1]..","..result[i][2]..","..result[i][3]..","..result[i][4]) fibaro:debug("Programme : " ..id_RGBs[i] " : " ..Prog[i]) -- SI activation cellule 208, demarrage des RGB sur le programme ProgRGB fibaro:debug("Mise des RGBs sur Programme : " ..ProgRGB) fibaro:call(id_RGBs[i], "startProgram", ProgRGB) -- Tempo de 15 secs fibaro:debug("tempo de 15 secs") fibaro:sleep(15*1000) -- Remise prog/couleur des RGBs en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente des RGBs") if ((result[i][1] == "0" and result[i][2] == "0" and result[i][3] == "0" and result[i][4] == "0") and (tonumber(Prog[i]) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog[i]) fibaro:debug("Prog : " ..Prog[i].. " sur " ..id_RGBs[i]) else fibaro:call(id_RGBs[i], "setColor", result[i][1], result[i][2], result[i][3], result[i][4]) fibaro:debug("Couleur sur : " ..id_RGBs[i]) end end Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 28 février 2016 Signaler Partager Posté(e) le 28 février 2016 Gardes ta scène, c'est à dire , je met où ces nouvelles lignes, dans une nouvelle scène? Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 28 février 2016 Auteur Signaler Partager Posté(e) le 28 février 2016 oops, pardon, j'ai pas ete tres clair. Oui teste une nouvelle scene pour ce code, vraiment rien de sur ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 28 février 2016 Signaler Partager Posté(e) le 28 février 2016 Avec les deux scènes en route, pas de soucis sur la première mais voici le debug de la seconde: [DEBUG] 16:44:13: Démarrage du script : 28/02/2016 16:44:13 [DEBUG] 16:44:13: line 50: attempt to concatenate field '?' (a nil value) [DEBUG] 16:44:19: Démarrage du script : 28/02/2016 16:44:19 [DEBUG] 16:44:19: line 50: attempt to concatenate field '?' (a nil value) Je n'ai pas compris à quoi sert cette deuxième scène. Je n'ai pas encore ajouté de troisième FGRGB. J'ai aussi cru remarqué, mais c'est indépendant de cette nouvelle scène, que si une voiture reste entre les cellules plus que la tempo de 15 secondes, les bandeaux restent tout de même bloqués sur le programme 546. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 28 février 2016 Auteur Signaler Partager Posté(e) le 28 février 2016 Salut @did, C'est une autre scene, en fait qui ferait la meme chose que la 1ere scene mais en se passant des variables globales et en mettant autant de RGB que l'on veut. Erreur des les 1ers Debugs ;-) --[[ %% properties 208 value %% globals --]] ------ User settings ----- local id_RGBs = {239, 545} local ProgRGB = 546 --------------- local currentdate = os.date("%d/%m/%Y %H:%M:%S") fibaro:debug("Démarrage du script : " ..currentdate) -- fonction split ---- function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end ---------- for i = 1, #id_RGBs do -- Recup Couleur et programme des RGBs local result = split(fibaro:getValue(id_RGBs[i], "color"), ',') local Prog = fibaro:getValue(id_RGBs[i], "currentProgramID") -- Debug valeur result et prog fibaro:debug("Couleur : " ..(id_RGBs[i].. " : " ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("Programme : " ..id_RGBs[i] " : " ..Prog[i]) -- SI activation cellule 208, demarrage des RGB sur le programme ProgRGB fibaro:debug("Mise des RGBs sur Programme : " ..ProgRGB) fibaro:call(id_RGBs[i], "startProgram", ProgRGB) -- Tempo de 15 secs fibaro:debug("tempo de 15 secs") fibaro:sleep(15*1000) -- Remise prog/couleur des RGBs en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente des RGBs") if ((result[i][1] == "0" and result[i][2] == "0" and result[i][3] == "0" and result[i][4] == "0") and (tonumber(Prog[i]) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog[i]) fibaro:debug("Prog : " ..Prog[i].. " sur " ..id_RGBs[i]) else fibaro:call(id_RGBs[i], "setColor", result[i][1], result[i][2], result[i][3], result[i][4]) fibaro:debug("Couleur sur : " ..id_RGBs[i]) end end Pour la 1ere scene faudrait reussir a contourner les 15 secs alors ? SI jamais tu testes la 2eme scene, essaie de le faire en commentant le 208 value de la scene qui fonctionne. pour eviter que les 2 scenes se lancent en meme temps. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 28 février 2016 Signaler Partager Posté(e) le 28 février 2016 J'ai décoché active pour que la première scène ne tourne pas et avec cette nouvelle, ça ne démarre pas. [DEBUG] 23:14:16: line 52: ')' expected (to close '(' at line 51) near 'fibaro' [DEBUG] 23:14:18: line 52: ')' expected (to close '(' at line 51) near 'fibaro' Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 29 février 2016 Auteur Signaler Partager Posté(e) le 29 février 2016 re, et ben oops, une parenthese de trop s'etait glissée dans le code lol --[[ %% properties 208 value %% globals --]] ------ User settings ----- local id_RGBs = {239, 545} local ProgRGB = 546 --------------- local currentdate = os.date("%d/%m/%Y %H:%M:%S") fibaro:debug("Démarrage du script : " ..currentdate) -- fonction split ---- function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end ---------- for i = 1, #id_RGBs do -- Recup Couleur et programme des RGBs local result = split(fibaro:getValue(id_RGBs[i], "color"), ',') local Prog = fibaro:getValue(id_RGBs[i], "currentProgramID") -- Debug valeur result et prog fibaro:debug("Couleur : " ..id_RGBs[i].. " : " ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("Programme : " ..id_RGBs[i] " : " ..Prog[i]) -- SI activation cellule 208, demarrage des RGB sur le programme ProgRGB fibaro:debug("Mise des RGBs sur Programme : " ..ProgRGB) fibaro:call(id_RGBs[i], "startProgram", ProgRGB) -- Tempo de 15 secs fibaro:debug("tempo de 15 secs") fibaro:sleep(15*1000) -- Remise prog/couleur des RGBs en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente des RGBs") if ((result[i][1] == "0" and result[i][2] == "0" and result[i][3] == "0" and result[i][4] == "0") and (tonumber(Prog[i]) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog[i]) fibaro:debug("Prog : " ..Prog[i].. " sur " ..id_RGBs[i]) else fibaro:call(id_RGBs[i], "setColor", result[i][1], result[i][2], result[i][3], result[i][4]) fibaro:debug("Couleur sur : " ..id_RGBs[i]) end end Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 29 février 2016 Signaler Partager Posté(e) le 29 février 2016 Non plus [DEBUG] 10:33:25: Démarrage du script : 29/02/2016 10:33:25 [DEBUG] 10:33:25: Couleur : 239 : 0,0,0,0 [DEBUG] 10:33:25: line 52: attempt to call field '?' (a number value) [DEBUG] 10:33:28: Démarrage du script : 29/02/2016 10:33:28 [DEBUG] 10:33:28: Couleur : 239 : 0,0,0,0 [DEBUG] 10:33:28: line 52: attempt to call field '?' (a number value) Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 29 février 2016 Auteur Signaler Partager Posté(e) le 29 février 2016 au moins avec le debug, j'arrive presque à comprendre ou je me trompe, mais je pige qd meme pas tout Au fait, merci did --[[ %% properties 208 value %% globals --]] ------ User settings ----- local id_RGBs = {239, 545} local ProgRGB = 546 --------------- local currentdate = os.date("%d/%m/%Y %H:%M:%S") fibaro:debug("Démarrage du script : " ..currentdate) -- fonction split ---- function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end ---------- for i = 1, #id_RGBs do -- Recup Couleur et programme des RGBs local result = split(fibaro:getValue(id_RGBs[i], "color"), ',') local Prog = fibaro:getValue(id_RGBs[i], "currentProgramID") -- Debug valeur result et prog fibaro:debug("Couleur : " ..id_RGBs[i].. " : " ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("Programme : " ..id_RGBs[i] " : " ..Prog) -- SI activation cellule 208, demarrage des RGB sur le programme ProgRGB fibaro:debug("Mise des RGBs sur Programme : " ..ProgRGB) fibaro:call(id_RGBs[i], "startProgram", ProgRGB) -- Tempo de 15 secs fibaro:debug("tempo de 15 secs") fibaro:sleep(15*1000) -- Remise prog/couleur des RGBs en cours avant activation cellule 208 fibaro:debug("Remise valeur précédente des RGBs") if ((result[i][1] == "0" and result[i][2] == "0" and result[i][3] == "0" and result[i][4] == "0") and (tonumber(Prog[i]) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog[i]) fibaro:debug("Prog : " ..Prog[i].. " sur " ..id_RGBs[i]) else fibaro:call(id_RGBs[i], "setColor", result[i][1], result[i][2], result[i][3], result[i][4]) fibaro:debug("Couleur sur : " ..id_RGBs[i]) end end Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés