ZME WALL-S mit 2 Fibaro RGBW Modulen Assoziieren

Moin zusammen,

ich benötige mal eure Hilfe. Ich habe hier einen WALL-S Funkschalter und möchte diesen gerne mit 2 Fibaro RGBW Modulen Assoziieren.
Das heisst, wenn ich Taste 1 drücke, sollen beide RGBW Module eingschaltet werden. Wenn ich Taste 1 doppelt drücke, sollen die RGBW Module wieder ausgeschaltet werden. Leider bekomme ich die Assoziation nicht hin.

Könnt ihr mir da bitte unter die Arme greifen.

Besten Dank
gringo

Nach langem probieren hat es dann geklappt.
Wie kann ich es realisieren, das ich mit einem Taster die Farbe ändern kann?

--[[
%% properties
734 sceneActivation
%% globals
--]]
local tasterID = 734
local test = (fibaro:getValue(tasterID, "sceneActivation"));
local debug = true; -- Debug true or false
local deviceID = 445

function Debug( color, message )
  fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span")); 
end

--------------------------------------------------------------------
-------------------------  -----------------------------
function w_up (deviceID, colourString)
  local RGBWTable= {}
  local i = 1

  for value in string.gmatch(colourString,"(%d+)") do
    RGBWTable[i] = value
    i = i + 1
  end
  local white = RGBWTable[4] + 10
  fibaro:call(deviceID, "setColor", RGBWTable[1], RGBWTable[2], RGBWTable[3], white)
end

function w_down (deviceID, colourString)
  local RGBWTable= {}
  local i = 1

  for value in string.gmatch(colourString,"(%d+)") do
    RGBWTable[i] = value
    i = i + 1
  end
  local white = RGBWTable[4] - 20
  fibaro:call(deviceID, "setColor", RGBWTable[1], RGBWTable[2], RGBWTable[3], white)
end

--------------------------------------------------------------------
------------------------- Pendelleuchte weiß heller  --------------
if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 11) 
  	then
 		w_down(deviceID, fibaro:getValue(deviceID, 'color'))
		if debug then Debug( "green", " Helligkeit weiß erhöht"); end
   end
--------------------------------------------------------------------
------------------------- Pendelleuchte weiß dunkler  --------------
if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 13) 
    then
  		w_up(deviceID, fibaro:getValue(deviceID, 'color'))
  		if debug then  Debug( "yellow", "S1 lange gedrückt"); end
   end

hi,

also,
properties / taster ID ist die ID deines WALL C Funkschalter
deviceID die ID deines RGB(W)

dann gibt es zwei Funktionen:
Die w_down ; diese holt sich den Farbwert vom Kanal weiß und subtrahiert 20

local white = RGBWTable[4] - 20

und die Funktion wp_up diese addiert + 10 zum Kanal weiß
local white = RGBWTable[4] + 10

ausgeführt wird das ganze dann unten in der Szenenaktivierung.
w_down(deviceID, fibaro:getValue(deviceID, 'color'))

musst du entsprechende Funktionen für deine anderen Farben (R / G und B) hinzufügen

Wow.

Danke crissxcross. Was genau macht dein Script? Farbwechsel oder dimmen?
Werde ich testen wenn ich die Stripes verbaut habe. Habe gestern nur einen versuchsaufbau aufgebaut um zu sehen wie alles funktioniert.

Grüße

beides. Wenn du den Farbwert erhöhst wird es heller.
Habe inzwischen ein viel besseres Script von Daniel bekommen, ich postes es gleich mal hier.
Dieses dimmt die jeweilige Farbe hoch solange du die taste gedrückt hälst.
Einfach klickt schaltet die jeweilige Farbe ab, doppelklick schaltet alle Farben an.

--[[
%% properties
734 sceneActivation
%% globals
--]]

local tasterID = 734
--local led = 122
local led = 445
local steps = 20

function RgbToTable (string)
  rgbw = {0,0,0,0}
  rgbw[0],rgbw[1],rgbw[2],rgbw[3]= string.match(string, "(%d+),(%d+),(%d+),(%d+)")
  return rgbw
end

function setcolor (rgbw)
  fibaro:call(led, "setColor", rgbw[0], rgbw[1], rgbw[2], rgbw[3])
end

function checkmax(value)
  if value > 255 then 
    fibaro:call(led, "turnOff")
    fibaro:sleep(200)
    fibaro:call(led, "turnOn")
    fibaro:sleep(200)
    value = 255 
  end
  return value
end

local button = tonumber(fibaro:getValue(tasterID, "sceneActivation"));
fibaro:debug('es wurde gedrückt: '..button)

local color = fibaro:getValue(led, "color")
local rgbw = RgbToTable(color)

---while 1,2,3 long, dimm color up ---
while tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 13 do
    rgbw[0] = rgbw[0] + steps
  	rgbw[0] = checkmax(rgbw[0])
	setcolor(rgbw)
  	fibaro:sleep(200)
end
while tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 23 do
    rgbw[1] = rgbw[1] + steps
  	rgbw[1] = checkmax(rgbw[1])
	setcolor(rgbw)
  	fibaro:sleep(200)
end
while tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 33 do
    rgbw[2] = rgbw[2] + steps
  	rgbw[2] = checkmax(rgbw[2])
	setcolor(rgbw)
  	fibaro:sleep(200) 	
end
while tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 43 do
    rgbw[3] = rgbw[3] + steps
  	rgbw[3] = checkmax(rgbw[3])
	setcolor(rgbw)
  	fibaro:sleep(200) 	
end

---button 4 long = all off, short = all on ---
if button == 42 or button == 32 or button == 22 or button == 12 then
  fibaro:call(led, "setColor", 255, 255, 255, 255)
end
if button == 41 then
 if (rgbw[0] + rgbw[1] + rgbw[2] + rgbw[3]) > 0 then
  fibaro:call(led, "setColor", 0, 0, 0, 0)
 else
  fibaro:call(led, "setColor", 255, 255, 255, 255)
 end
	
end
--if button == 43 or button == 45 then
--  fibaro:call(led, "setColor", 0, 0, 0, 0)
--end

-----reset color on button press 1=r 2=g 3=b-----
if button == 11 then
    rgbw[0] = 0
	setcolor(rgbw)
end
if button == 21 then
    rgbw[1] = 0
	setcolor(rgbw)
end
if button == 31 then
    rgbw[2] = 0
	setcolor(rgbw)
end

fibaro:debug("ende")