Aller au contenu

Associer Synchroniser 2 Modules Fibaro Rgbw?


SimonT

Messages recommandés

Ha non, je tente en live...

j'ai du le faire 3 ou 4 fois sur ma tentative d'association (je sais pas c'est qui l'endouille qui a poster que cela fonctionnait chez lui!!!) et là  j'ai pas eu le reflexe! 

Lien vers le commentaire
Partager sur d’autres sites

Plus de message d'erreur mais pas de syncro, je vais revoir le code... que tu as édité on est d'accord, en le copiant ce matin j'ai pas besoin de rajouter une seconde fois la ligne

local startSource = fibaro:getSourceTrigger();
Lien vers le commentaire
Partager sur d’autres sites

Ha, j'ai vu quelque chose, avec mes test ds le paramètre 6 du module maitre de tout à  l'heure j'ai du faire du caca,  je vois que j'ai plus rien ds le groupe 1...

Je vais déjà  reconfiguer le module

Lien vers le commentaire
Partager sur d’autres sites

Je viens d'exclure/reseter le hard/réinclure le master, changer le code (3lignes!) avec sa nouvelle ID et rien...

je crois que je vais tester sur du 3.xx chez moi (ça m'enbête l'association a fonctioné sur ma box!)

Lien vers le commentaire
Partager sur d’autres sites



____



 



--[[
%% properties
7 color
%% globals
--]]

fibaro:debug("_______start_______");

local startSource = fibaro:getSourceTrigger();
local RGBW_master = 72;
local RGBW_slaves = {12,42};

fibaro:debug("etape 1");

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

fibaro:debug("etape 2");

if (startSource['type']=='property') then
if (startSource['deviceID']==tostring(RGBW_master)) then
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
end
end

fibaro:debug("_______end_______");

[DEBUG] 11:37:07: _______start_______

[DEBUG] 11:37:07: etape 1

[DEBUG] 11:37:07: etape 2

[DEBUG] 11:37:07: _______end_______

Lien vers le commentaire
Partager sur d’autres sites

Tiens essaye sa je viens de l'essayer et sa fonctionne pour moi.

--[[
%% properties
91 color
%% globals
--]]
 
local RGBW_master = 91;
local RGBW_slaves = {191,197,203};
 
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
Lien vers le commentaire
Partager sur d’autres sites

Tiens essaye sa je viens de l'essayer et sa fonctionne pour moi.

--[[
%% properties
91 color
%% globals
--]]
 
local RGBW_master = 91;
local RGBW_slaves = {191,197,203};
 
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
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...