Did Posté(e) le 29 février 2016 Signaler Partager Posté(e) le 29 février 2016 Quand tu parlais de la parenthèse, j'ai vu la différence mais là sur la ligne 52, je ne vois toujours pas. [DEBUG] 11:33:59: Démarrage du script : 29/02/2016 11:33:59 [DEBUG] 11:34:00: Couleur : 239 : 0,0,0,0 [DEBUG] 11:34:00: line 52: attempt to call field '?' (a number value) [DEBUG] 11:34:01: Démarrage du script : 29/02/2016 11:34:01 [DEBUG] 11:34:02: Couleur : 239 : 0,0,0,0 [DEBUG] 11:34:02: 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 ah oui moi non plus je l'ai force en nombre peut-etre --[[ %% 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 = tonumber(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] " : " tonumber(..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...
Did Posté(e) le 29 février 2016 Signaler Partager Posté(e) le 29 février 2016 Toujours rien. [DEBUG] 13:09:57: line 52: ')' expected near 'tonumber' [DEBUG] 13:09:59: line 52: ')' expected near 'tonumber' 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 je comprends pas ce qu'elle a cette ligne un simple debug --[[ %% 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 = tonumber(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...
Did Posté(e) le 29 février 2016 Signaler Partager Posté(e) le 29 février 2016 Je nage depuis longtemps (même plutôt noyé). [DEBUG] 13:35:38: Démarrage du script : 29/02/2016 13:35:38 [DEBUG] 13:35:38: Couleur : 239 : 0,0,0,0 [DEBUG] 13:35:38: line 52: attempt to call field '?' (a number value) [DEBUG] 13:35:39: Démarrage du script : 29/02/2016 13:35:39 [DEBUG] 13:35:39: Couleur : 239 : 0,0,0,0 [DEBUG] 13:35:39: 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 et comme ca : --[[ %% 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 = tonumber(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) fibaro:debug(tonumber(fibaro:getValue(id_RGBs[i], "currentProgramID")) " de prog pour : " ..id_RGBs[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[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (tonumber(Prog) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog) fibaro:debug("Prog : " ..Prog.. " sur " ..id_RGBs[i]) else fibaro:call(id_RGBs[i], "setColor", result[1], result[2], result[3], result[4]) fibaro:debug("Couleur sur : " ..id_RGBs[i]) end end Lien vers le commentaire Partager sur d’autres sites More sharing options...
Debona Lua Posté(e) le 29 février 2016 Signaler Partager Posté(e) le 29 février 2016 Bonjour, En supprimant la ligne 52, c'est OK 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 C'est ce qu'il me propose, bon on passe à la suivante. [DEBUG] 22:35:45: Démarrage du script : 29/02/2016 22:35:45 [DEBUG] 22:35:45: Couleur : 239 : 0,0,0,0 [DEBUG] 22:35:45: line 53: attempt to call a number value [DEBUG] 22:35:46: Démarrage du script : 29/02/2016 22:35:46 [DEBUG] 22:35:46: Couleur : 239 : 0,0,0,0 [DEBUG] 22:35:46: line 53: attempt to call a number value Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 29 février 2016 Signaler Partager Posté(e) le 29 février 2016 Alors ça avance ou il faut que je commande un module rgb car ça j'ai pas en stock lol Envoyé de mon SM-G900F en utilisant Tapatalk 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 Salut @mprinfo, Que mettrais tu pour ces lignes de debug récalcitrantes? @pepite, Dans ma lancée, j'ai commenté la ligne 53 et enfin ça s'allume mais avec un allumé et l'autre éteint, ce dernier passe au programme 546 plus de 5 secondes après l'autre et ensuite ça reste bloqué sur le prog546. Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 29 février 2016 Signaler Partager Posté(e) le 29 février 2016 un tonumber dans un debug ? je vois pas trop l’intérêt ? 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 Pardon, j'ai oublié le debug. [DEBUG] 22:58:34: Démarrage du script : 29/02/2016 22:58:34 [DEBUG] 22:58:34: Couleur : 239 : 0,0,0,0 [DEBUG] 22:58:34: Mise des RGBs sur Programme : 546 [DEBUG] 22:58:34: tempo de 15 secs [DEBUG] 22:58:37: Démarrage du script : 29/02/2016 22:58:37 [DEBUG] 22:58:37: Couleur : 239 : 0,0,0,0 [DEBUG] 22:58:37: Mise des RGBs sur Programme : 546 [DEBUG] 22:58:37: tempo de 15 secs [DEBUG] 22:58:49: Remise valeur précédente des RGBs [DEBUG] 22:58:49: Prog : 6 sur 239 [DEBUG] 22:58:49: Couleur : 545 : 0,0,0,0 [DEBUG] 22:58:49: Mise des RGBs sur Programme : 546 [DEBUG] 22:58:49: tempo de 15 secs [DEBUG] 22:58:52: Remise valeur précédente des RGBs [DEBUG] 22:58:52: Prog : 546 sur 239 [DEBUG] 22:58:52: Couleur : 545 : 0,0,0,0 [DEBUG] 22:58:52: Mise des RGBs sur Programme : 546 [DEBUG] 22:58:52: tempo de 15 secs [DEBUG] 22:59:04: Remise valeur précédente des RGBs [DEBUG] 22:59:04: Couleur sur : 545 [DEBUG] 22:59:07: Remise valeur précédente des RGBs [DEBUG] 22:59:07: Prog : 546 sur 545 On teste, il n'y en avait pas avant. Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 29 février 2016 Signaler Partager Posté(e) le 29 février 2016 pour la ligne 52 fibaro:debug("Programme : " ..id_RGBs[i] " : " ..Prog) je pense que c'est mieux comme cela fibaro:debug("Programme : " ..id_RGBs[i].. " : " ..Prog) 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 Merci @mprinfo, à‡a passe avec cette ligne de debug, j'ai aussi supprimé la ligne 53 avec le tonumber, ça marche aussi mais les deux bandeaux ne démarrent pas en même temps mais à la suite: quand le 239 a terminer de clignoter, le 545 commence et revient bien sur son programme en cours. --[[ %% 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 = tonumber(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[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (tonumber(Prog) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog) fibaro:debug("Prog : " ..Prog.. " sur " ..id_RGBs[i]) else fibaro:call(id_RGBs[i], "setColor", result[1], result[2], result[3], result[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 Et j'ai encore oublié le debug: [DEBUG] 23:52:21: Démarrage du script : 29/02/2016 23:52:21 [DEBUG] 23:52:21: Couleur : 239 : 0,0,0,0 [DEBUG] 23:52:21: Programme : 239 : 0 [DEBUG] 23:52:21: Mise des RGBs sur Programme : 546 [DEBUG] 23:52:21: tempo de 15 secs [DEBUG] 23:52:36: Remise valeur précédente des RGBs [DEBUG] 23:52:36: Couleur sur : 239 [DEBUG] 23:52:36: Couleur : 545 : 0,0,0,0 [DEBUG] 23:52:36: Programme : 545 : 6 [DEBUG] 23:52:36: Mise des RGBs sur Programme : 546 [DEBUG] 23:52:36: tempo de 15 secs [DEBUG] 23:52:51: Remise valeur précédente des RGBs [DEBUG] 23:52:51: Prog : 6 sur 545 Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 1 mars 2016 Auteur Signaler Partager Posté(e) le 1 mars 2016 ah put..bien vu @mprinfo, j'vais oublie les 2 points lol le boulet hihihih pourtant j'ai regarde et relu plein de fois, je ne voyais vraiment pas lol Cool ;-) Bon, je pige pas pourquoi 5 secs après ? ce serait pas 15 secs apres ? Dansla boucle, il passe le 1er ID, le 239, : le passe en 546, puis le sleep, puis le remet à la valeur précédente ? Commente le tempo de 15 secs, ca devrait etre bon je pense, après si ca fonctionne on le sortira de la boucle Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 1 mars 2016 Signaler Partager Posté(e) le 1 mars 2016 Bizarre, ils ne sont pas passés en 546 [DEBUG] 10:40:40: Démarrage du script : 01/03/2016 10:40:40 [DEBUG] 10:40:40: Couleur : 239 : 0,0,0,0 [DEBUG] 10:40:40: Programme : 239 : 6 [DEBUG] 10:40:40: Mise des RGBs sur Programme : 546 [DEBUG] 10:40:40: Remise valeur précédente des RGBs [DEBUG] 10:40:40: Prog : 6 sur 239 [DEBUG] 10:40:40: Couleur : 545 : 0,0,0,0 [DEBUG] 10:40:40: Programme : 545 : 0 [DEBUG] 10:40:40: Mise des RGBs sur Programme : 546 [DEBUG] 10:40:40: Remise valeur précédente des RGBs [DEBUG] 10:40:41: Couleur sur : 545 [DEBUG] 10:40:42: Démarrage du script : 01/03/2016 10:40:42 [DEBUG] 10:40:42: Couleur : 239 : 0,0,0,0 [DEBUG] 10:40:42: Programme : 239 : 6 [DEBUG] 10:40:42: Mise des RGBs sur Programme : 546 [DEBUG] 10:40:42: Remise valeur précédente des RGBs [DEBUG] 10:40:42: Prog : 6 sur 239 [DEBUG] 10:40:42: Couleur : 545 : 0,0,0,0 [DEBUG] 10:40:42: Programme : 545 : 0 [DEBUG] 10:40:42: Mise des RGBs sur Programme : 546 [DEBUG] 10:40:42: Remise valeur précédente des RGBs [DEBUG] 10:40:42: Couleur sur : 545 Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 1 mars 2016 Auteur Signaler Partager Posté(e) le 1 mars 2016 (modifié) sans le sleep, ca a du enchainer : 546 puis valeur précédente, on va tenter autre chose alors ;-) Comme ceci, peut-etre plus coherent : 1- recup des valeurs en cours sur les RGBs puis mise sur porg alerte : 546 2- sleep de 15 secondes 3- Remise des valeurs précéentes sur les RGBs --[[ %% 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 = tonumber(fibaro:getValue(id_RGBs[i], "currentProgramID")) -- Debug valeur result et prog fibaro:debug("RGB num : " ..id_RGBs[i].. " avec Couleur : " ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("RGB num " ..id_RGBs[i].. "sur le Programme" ..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) end -- 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 for i = 1, #id_RGBs do fibaro:debug("Remise valeur précédente des RGBs") if ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (tonumber(Prog) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog) fibaro:debug("Prog " ..Prog.. " sur " ..id_RGBs[i]) else fibaro:call(id_RGBs[i], "setColor", result[1], result[2], result[3], result[4]) fibaro:debug("Couleur sur : " ..id_RGBs[i]) end end Modifié le 1 mars 2016 par pepite Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 1 mars 2016 Signaler Partager Posté(e) le 1 mars 2016 Là , le prog 546 démarre sur les deux bandeaux mais ne s'arrêtent plus. [DEBUG] 11:31:08: Démarrage du script : 01/03/2016 11:31:08 [DEBUG] 11:31:08: RGB num : 239 avec Couleur : 0,0,0,0 [DEBUG] 11:31:08: RGB num 239sur le Programme6 [DEBUG] 11:31:08: Mise des RGBs sur Programme : 546 [DEBUG] 11:31:08: RGB num : 545 avec Couleur : 0,0,0,0 [DEBUG] 11:31:08: RGB num 545sur le Programme0 [DEBUG] 11:31:08: Mise des RGBs sur Programme : 546 [DEBUG] 11:31:08: tempo de 15 secs [DEBUG] 11:31:09: Démarrage du script : 01/03/2016 11:31:09 [DEBUG] 11:31:09: RGB num : 239 avec Couleur : 0,0,0,0 [DEBUG] 11:31:09: RGB num 239sur le Programme546 [DEBUG] 11:31:09: Mise des RGBs sur Programme : 546 [DEBUG] 11:31:09: RGB num : 545 avec Couleur : 0,0,0,0 [DEBUG] 11:31:09: RGB num 545sur le Programme546 [DEBUG] 11:31:09: Mise des RGBs sur Programme : 546 [DEBUG] 11:31:09: tempo de 15 secs [DEBUG] 11:31:23: Remise valeur précédente des RGBs [DEBUG] 11:31:23: line 67: attempt to index global 'result' (a nil value) [DEBUG] 11:31:24: Remise valeur précédente des RGBs [DEBUG] 11:31:24: line 67: attempt to index global 'result' (a nil value) Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 1 mars 2016 Auteur Signaler Partager Posté(e) le 1 mars 2016 ah oui normal, la variable result et prog sont declarées dans la 1ere boucle, donc il ne retrouve pas la valeur a remettre ;-) Ceci ? Test numero 895 654 ;-) 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 = tonumber(fibaro:getValue(id_RGBs[i], "currentProgramID")) -- Debug valeur result et prog fibaro:debug("RGB num : " ..id_RGBs[i].. " avec Couleur : " ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("RGB num " ..id_RGBs[i].. " sur le Programme " ..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) end -- 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 for i = 1, #id_RGBs do -- Recup Couleur et programme des RGBs local result = split(fibaro:getValue(id_RGBs[i], "color"), ',') local Prog = tonumber(fibaro:getValue(id_RGBs[i], "currentProgramID")) fibaro:debug("Remise valeur précédente des RGBs") if ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (tonumber(Prog) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog) fibaro:debug("Prog " ..Prog.. " sur " ..id_RGBs[i]) else fibaro:call(id_RGBs[i], "setColor", result[1], result[2], result[3], result[4]) fibaro:debug("Couleur sur : " ..id_RGBs[i]) end end 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 1 mars 2016 Signaler Partager Posté(e) le 1 mars 2016 Si tu le dis, mais ils ne s'éteignent pas. [DEBUG] 13:03:29: Démarrage du script : 01/03/2016 13:03:29 [DEBUG] 13:03:29: RGB num : 239 avec Couleur : 0,0,0,0 [DEBUG] 13:03:29: RGB num 239 sur le Programme 6 [DEBUG] 13:03:29: Mise des RGBs sur Programme : 546 [DEBUG] 13:03:29: RGB num : 545 avec Couleur : 0,0,0,0 [DEBUG] 13:03:29: RGB num 545 sur le Programme 0 [DEBUG] 13:03:29: Mise des RGBs sur Programme : 546 [DEBUG] 13:03:29: tempo de 15 secs [DEBUG] 13:03:30: Démarrage du script : 01/03/2016 13:03:30 [DEBUG] 13:03:30: RGB num : 239 avec Couleur : 0,0,0,0 [DEBUG] 13:03:30: RGB num 239 sur le Programme 546 [DEBUG] 13:03:30: Mise des RGBs sur Programme : 546 [DEBUG] 13:03:30: RGB num : 545 avec Couleur : 0,0,0,0 [DEBUG] 13:03:30: RGB num 545 sur le Programme 546 [DEBUG] 13:03:30: Mise des RGBs sur Programme : 546 [DEBUG] 13:03:30: tempo de 15 secs [DEBUG] 13:03:44: Remise valeur précédente des RGBs [DEBUG] 13:03:44: Prog 546 sur 239 [DEBUG] 13:03:44: Remise valeur précédente des RGBs [DEBUG] 13:03:44: Prog 546 sur 545 [DEBUG] 13:03:45: Remise valeur précédente des RGBs [DEBUG] 13:03:45: Prog 546 sur 239 [DEBUG] 13:03:45: Remise valeur précédente des RGBs [DEBUG] 13:03:45: Prog 546 sur 545 Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 1 mars 2016 Auteur Signaler Partager Posté(e) le 1 mars 2016 hihi ah ben oui mais non suis bete, si on fait le result et prog dans la 2eme boucle, lorsqu'il remet les valeurs precedentes il recupere le 546, soit ce qu'il y a en cours sur les RGB hihi je modifie encors et toujours si t'en as marre n'hesite pas a le dire ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 1 mars 2016 Signaler Partager Posté(e) le 1 mars 2016 Non non, comment pourrais-je avoir marre que quelqu'un se démène à faire fonctionner un script que je ne pourrais pas faire seul? J'ai l'impression que dans les clignotements (après le sleep), il figeait sur la couleur du 546 puis rebouclais sur le prog 546 (clignotement en vert pour ce programme). Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 1 mars 2016 Auteur Signaler Partager Posté(e) le 1 mars 2016 (modifié) oui c'est cela, vu que j'avais modifie en faisant 2 boucles "For..do..end" avec les "local result et local prog" il a recup les 1eres valeurs precedentes, mis le prog 546, recupere de nouveau les valeurs en cours soit 546, puis a remis le prog 546, les valeurs précédentes lol on est pas loin, mais je n'arrive pas à bien mettre le tempo pour ne pas que les bandeaux clignotent l'1 après l'autre. J'ai changé le style avec des fonctions et ai utilisé un settimeout, 1 premiere pour moi --[[ %% 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 ---------- --------------function GetPutValueRGB---- function GetPutValueRGBs(id) for i = 1, #id_RGBs do -- Recup Couleur et programme des RGBs local result = split(fibaro:getValue(id_RGBs[i], "color"), ',') local Prog = tonumber(fibaro:getValue(id_RGBs[i], "currentProgramID")) -- Debug valeur result et prog fibaro:debug("RGB num : " ..id_RGBs[i].. " avec Couleur : " ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("RGB num " ..id_RGBs[i].. "sur le Programme" ..Prog) settimeout( function() fibaro:debug("Remise valeur précédente des RGBs") if ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (tonumber(Prog) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog) fibaro:debug("Prog " ..Prog.. " sur " ..id_RGBs[i]) else fibaro:call(id_RGBs[i], "setColor", result[1], result[2], result[3], result[4]) fibaro:debug("Couleur sur : " ..id_RGBs[i]) end end, 15000) --tempo 15 secs end end ---------- function PutAlerteRGBs(id) for i = 1, #id_RGBs do -- 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) end end ------------- GetPutValueRGBs() PutAlerteRGBs() Modifié le 1 mars 2016 par pepite Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 1 mars 2016 Signaler Partager Posté(e) le 1 mars 2016 Ce coup ci, ça ne démarre pas, c'est pile la ligne qui bloque (le settimeout). [DEBUG] 15:33:02: Démarrage du script : 01/03/2016 15:33:02 [DEBUG] 15:33:02: RGB num : 239 avec Couleur : 0,0,0,0 [DEBUG] 15:33:02: RGB num 239sur le Programme6 [DEBUG] 15:33:02: line 56: attempt to call global 'settimeout' (a nil value) [DEBUG] 15:33:03: Démarrage du script : 01/03/2016 15:33:03 [DEBUG] 15:33:04: RGB num : 239 avec Couleur : 0,0,0,0 [DEBUG] 15:33:04: RGB num 239sur le Programme6 [DEBUG] 15:33:04: line 56: attempt to call global 'settimeout' (a nil value) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés