RGB mit HUE Script Dimmen

Hallo :slight_smile:

ich habe Christian’s Script (Danke!) mit einem RGB am laufen. Das Script habe ich etwas abgeändert (Doppelklick raus) um parallel über die SceneActivation mit einem Doppelklick und einer Szene die Farben zu ändern. Hier liegt das Problem, wenn ich die RGB anschalte und dimme ist alles gut. Sobald ich nach dem anschalten die Farbe über einen Doppelklick ändere und dann dimmen will laggt die HC2 wie blöd. Die Debug der Szene kommt erst mit 5-15 Sekunden Verzögerung und andere Szenen, wie Licht am im Floor bei Bewegung, bleiben während des Lags aus. Anbei die Scripte und ein Foto des Debugs aus dem DimmerScript. Habt ihr eine Idee, woran es liegen könnte?

DimmerScript:

--[[
%% properties
253 sceneActivation
%% events
%% globals
--]]

local RGBs = {7} -- IDs of RGB as Array {X, Y, Z}
local fibaroID = 253 -- Set ID of Device which shall dim RGB
local sceneID = 163 -- Set ID of this scene

local stepPercentage = 7 -- Dimmer step in percent
local stepTime = 0.05 -- Dimmer step duration in seconds
local toggleTime = 5 -- Time to toggle dim up/down

---- Do not modify code below that line ----

function dimRGB (rgbID, step)
  
  local valueDimmer = tonumber(fibaro:getValue(rgbID, "brightness")) + step

  if valueDimmer < 0 then 
    if valueDimmer == 0 + step then return end;
    valueDimmer = 0
    -- fibaro:call(rgbID, "turnOff") -- enable if you want RGB to switch off when dimmed down fully
  end 
  if valueDimmer > 100 then 
    if valueDimmer == 100 + step then return end;
    valueDimmer = 100 
  end

  -- fibaro:debug("RGB " .. rgbID ..": ".. valueDimmer) 
  fibaro:call(rgbID, "setBrightness", valueDimmer)  
    
end

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 26 )
or
startSource["type"] == "other"
)
then
    -- Click
	local deviceValue1 = tonumber(fibaro:getValue(RGBs[1], "brightness"));

	if (deviceValue1 > 0) then
      for i, iRGB in ipairs(RGBs) do 
    	fibaro:call(iRGB, "turnOff")
      print ("Off")
      end
	else
      for i, iRGB in ipairs(RGBs) do 
    	fibaro:call(iRGB, "turnOn")
      print ("On")
      end
	end

elseif  ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 22 ) then

  -- Hold
    local dimUpDown = fibaro:getGlobal("dimUpDown") 
    local lastDimToggle = fibaro:getGlobal("lastDimToggle") 
  
    -- always start a new dim with dimming up
    if os.time() - lastDimToggle > toggleTime then dimUpDown = 1 end

    -- if off, switch on and dim up from darkest
    local deviceValue1 = tonumber(fibaro:getValue(RGBs[1], "brightness"));
	if (deviceValue1 == 0) then
      for i, iRGB in ipairs(RGBs) do 
        fibaro:call(iRGB, "setBrightness", 1)
      end
      dimUpDown = 1
    end  
    
    -- if maximum brighntess start with dimming down
    if tonumber(fibaro:getValue(RGBs[1], "brightness")) == 255 then dimUpDown = -1 end

    fibaro:setGlobal("dimUpDown", dimUpDown * -1)  
    local step = math.floor(100 / 100 * stepPercentage * dimUpDown)
  
  	-- Start dim loop
    print ("Start dim",step)
  	repeat 
      for i, iRGB in ipairs(RGBs) do 
        dimRGB (iRGB, step)	
	  end
      fibaro:sleep(1000 * stepTime)
    until false
  
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 23 ) then
  
	-- Release
  	print ("Stop")
    fibaro:setGlobal("lastDimToggle", os.time())  
  	fibaro:killScenes(sceneID)

end

FarbwechselScript

--[[
%% properties
%% events
%% globals
--]]

local startSource = fibaro:getSourceTrigger()
if  (fibaro:getGlobalValue('LioLEDFarbe') == '5' ) then
 fibaro:setGlobal('LioLEDFarbe', '1');
  end
fibaro:setGlobal('LioLEDFarbeneu', fibaro:getGlobalValue('LioLEDFarbe') +1);
fibaro:setGlobal('LioLEDFarbe', fibaro:getGlobalValue('LioLEDFarbeneu'));

if (fibaro:getGlobalValue('LioLEDFarbe') == '2' ) then
fibaro:call(7, "setColor", "250", "90", "250", "10");
  end
if (fibaro:getGlobalValue('LioLEDFarbe') == '3' ) then
fibaro:call(7, "setColor", "250", "120", "30", "50");
  end
if (fibaro:getGlobalValue('LioLEDFarbe') == '4' ) then
fibaro:call(7, "setColor", "0", "0", "250", "10");
  end
if (fibaro:getGlobalValue('LioLEDFarbe') == '5' ) then
fibaro:call(7, "setColor", "250", "10", "10", "10");
  end

Bildschirmfoto-2017-01-28-um-18.00.18.png