Aller au contenu

Associer Synchroniser 2 Modules Fibaro Rgbw?


SimonT

Recommended Posts

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

Met des fibaro:debug dans le code pour voir si il y a une partie qui coince voir même si la scène ce lance.

Mais c'est pas normal, il y a aucune raison a première vue pour que le script bloque.

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

Lol, ui, mais je vais ouvrir un topic pour ça, tjr sur les RGBW, pour de la syncro avec different actionneur, je me casse la tête sur un code depuis des semaine  :)

Lien vers le commentaire
Partager sur d’autres sites

Nan c'est parfait comme ça!

C'est un autre délire, pour une couleur différente envoyée suivant differente actions (ouverture de porte en vert, passage coulir haut en violet, etc...)

Lien vers le commentaire
Partager sur d’autres sites

be sa c'est pas dur à  faire ;)

sa va dans l'idée de mon script d'association.

 

Be avant de faire change la couleur faut juste récupérer la valeur d'origine.

Ce script peux t'aider pour sa.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...