Aller au contenu

Associer Synchroniser 2 Modules Fibaro Rgbw?


Messages recommandés

Posté(e)

Sur le dernier firmware j'ai pas essayer car je suis toujours en 3.600.

Mais le 403 access forbidden n'est pas normal.

 

Tu as essayer de reboot pour être sur.

Posté(e)

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! 

Posté(e)

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();
Posté(e)

Je ne vois rien! j'ai fais un copier/coller, pas de message d'erreur quant je le lance, et il n'y a que 2 lignes à  modifier! 

Posté(e)

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

Posté(e)

Non, 3 lignes à  modifier.

Je recommence:

- ID color dans l'entete du script

- RGB_ master

- RGB_slave

 

Et ouis j'ai éditer le script que j'ai posté.

Posté(e)

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!)

Posté(e)

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.

Posté(e)


____



 



--[[
%% 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_______

Posté(e)

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
Posté(e)

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
Posté(e)

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  :)

Posté(e)

Comment sa, tu veux que chaque RGBW puisse commander les autres ?

 

Si c'est le cas c'est pas bien difficile.

30 Secondes et je te fais le code.

Posté(e)

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...)

Posté(e)

Je sais faire et revenir éteint ou sur une couleur définie, mais je bute sur un retour sur la couleur initiale si le bandeau etait allumé avant l'ouverture 

Posté(e)

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.

×
×
  • Créer...