d@m!Ch94 Posté(e) le 3 juillet 2015 Signaler Posté(e) le 3 juillet 2015 Lol, Je vois que tu est chaud alors je lance la bombe: http://www.domotique-fibaro.fr/index.php/topic/5201-syncro-rgbw-avec-diff%C3%A9rentes-actions/
SimonT Posté(e) le 3 juillet 2015 Auteur Signaler Posté(e) le 3 juillet 2015 désolé Shad mais ca marche pas chez moi voici l'erreur [ERROR] 17:05:37: line 37: attempt to get length of local 'RGBW_slaves' (a number value) --[[ %% properties 34 color %% globals --]] local RGBW_master = 34; local RGBW_slaves = 49; 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 local result = split(fibaro:getValue(RGBW_master, "color"), ',') for i = 1, #RGBW_slaves do if (result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0" and (tonumber(fibaro:getValue(RGBW_master, "currentProgramID")) > 0)) then fibaro:call(RGBW_slaves[i], "startProgram", fibaro:getValue(RGBW_master, "currentProgramID")); else fibaro:call(RGBW_slaves[i], "setColor", result[1], result[2], result[3], result[4]) end end
SimonT Posté(e) le 3 juillet 2015 Auteur Signaler Posté(e) le 3 juillet 2015 c'est bon ca marche fallait juste laissé les acolades local RGBW_slaves = {49};
SimonT Posté(e) le 3 juillet 2015 Auteur Signaler Posté(e) le 3 juillet 2015 J oubliais mille merci àtoi tu es notre sauveur 1
d@m!Ch94 Posté(e) le 3 juillet 2015 Signaler Posté(e) le 3 juillet 2015 Cool, du coup il n'y a pas besoin de la ligne local startSource = fibaro:getSourceTrigger(); ....pour que cela fonctionne!
SimonT Posté(e) le 12 août 2015 Auteur Signaler Posté(e) le 12 août 2015 http://www.fibarouk.co.uk/synchronising-rgbw-modules/
Domodial Posté(e) le 30 décembre 2015 Signaler Posté(e) le 30 décembre 2015 Salut à tous, Je remonte le sujet, j'ai un souci avec le script de shad il ne fonctionne pas chez moi (malheureusement). Celui ci fonctionne MAIS ! il change la couleur de tous les bandeaux Donc impossible d'avoir des ambiances différentes ET de passer de Master/Slave a un moment donné. En tous les cas en 4x je n'arrive pas a faire fonctionner ton script Shad, pas d'erreur, rien... mais pas de changement. Voici le script qui change en tout mais a chaque fois que tu change l'un ça change l'autre... --[[ %% properties 405 currentProgramID 405 color %% globals --]] local fromID = 405 local toID = 415 -- Allows us to set the colour from a string like 'r,g,b,w' function setTheColour (deviceID, colourString) local RGBWTable= {} local i = 1 for value in string.gmatch(colourString,"(%d+)") do RGBWTable[i] = value i = i + 1 end fibaro:call(deviceID, "setColor", RGBWTable[1], RGBWTable[2], RGBWTable[3], RGBWTable[4]) end local trigger = fibaro:getSourceTrigger() if (trigger['type'] == 'property') then if (trigger['propertyName'] == 'currentProgramID') then fibaro:call(toID, 'startProgram', fibaro:getValue(fromID, 'currentProgramID')) if (fibaro:getValue(fromID, 'currentProgramID') == '0') then setTheColour(toID, fibaro:getValue(fromID, 'color')) end elseif (trigger['propertyName'] == 'color') then if (fibaro:getValue(fromID, 'currentProgramID') == '0') then setTheColour(toID, fibaro:getValue(fromID, 'color')) end end end
Domodial Posté(e) le 30 décembre 2015 Signaler Posté(e) le 30 décembre 2015 Je viens de démerder le script qui était bugué. Ce script permet de : D'avoir des ambiances différentes avec xxx bandeaux, ET de passer le Master vers les Slaves et donc d'associer la couleur du Master à tous les Slaves ! --[[ %% properties 405 color %% globals --]] local id_master = 405; -- ID des Master (ID Master) local id_slaves = {415}; -- ID des Slaves {1}, {1,2,3} local debug = true; -- Debug if debug then fibaro:debug("Syncing RGB"); 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 local result = split(fibaro:getValue(id_master, "color"), ',') if debug then fibaro:debug(result[1]..","..result[2]..","..result[3]..","..result[4]); end for i = 1, #id_slaves do if (result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0" and (tonumber(fibaro:getValue(id_master, "currentProgramID")) > 0)) then if debug then fibaro:debug(fibaro:getValue(id_master, "currentProgramID")); end fibaro:call(id_slaves[i], "startProgram", fibaro:getValue(id_master, "currentProgramID")); else fibaro:call(id_slaves[i], "setColor", result[1], result[2], result[3], result[4]) end end 1
d@m!Ch94 Posté(e) le 30 décembre 2015 Signaler Posté(e) le 30 décembre 2015 Salut Domodial, Je pense que le lien de SimonT ne pointait pas le script de Shad, le sien est un peu plus haut dans le fil du post et commence aussi par définir une Id master et les slaves juste en dessous... En utilisation on manipule le master...les slaves suivent, ET, si on veux changer la couleur d'un des slaves on peut le manipuler sans modifier le master ni les autres slaves.
d@m!Ch94 Posté(e) le 30 décembre 2015 Signaler Posté(e) le 30 décembre 2015 Par contre si je te relis correctement, tu veux dire que dans le script UK tout les modules sont liés les uns aux autres c'est ça! Si on touche àn'importe lequel des modules, tous les autres suivent?
Domodial Posté(e) le 31 décembre 2015 Signaler Posté(e) le 31 décembre 2015 Oui dans le premier script que j'ai posté tous les bandeaux sont liés, la couleur est la meme pour tous du moment ou tu en touche un. Le deuxieme script est mieux, tu as par exemple le Maitre en rouge, et l'esclave en bleu. Tant que tu touche a l'esclave le Maitre n'est pas affecté, tu conserves deux couleurs distinctes. Dès lors que tu changes la couleur du Maitre, ça change aussi celle de l'esclave, l'esclave se retrouve avec la couleur du Maitre. Par contre je ne vois pas de quel script tu me parles, celui de Shad ou de SimonT ? J'ai essayé celui de Shad posté sur la première page mais il ne fonctionne pas chez moi Mais à te lire il réagirait comme le deuxieme script que j'ai posté, donc comme l'explication çi dessus (si tu me comprends car moi meme j'ai du mal mdrrr).
d@m!Ch94 Posté(e) le 31 décembre 2015 Signaler Posté(e) le 31 décembre 2015 mdrrr, Ouai ça deviens compliquer il y a du code partout ds le sujet, le premier que tu as poster page précédente démarre comme dans le lien de simonT juste au dessus, avec un from ID, to ID, ce lien pointe un script sur le site fibaro.uk ... Bref, d'où ma question à laquelle tu as parfaitement répondu ;-) : leur script rend tout les modules liés sans possibilité de les dissocier. Et bonne fête de fin d'année :-D
Did Posté(e) le 24 février 2016 Signaler Posté(e) le 24 février 2016 Je viens d'ajouter un deuxième module FGRGB dans la même pièce puis j'ai utilisé ton second script (j'ai dà» ajouter "405 currentProgramID" dans l'entête en plus de "405 color") et c'est nickel. Merci @Domodial.
Messages recommandés