Hallo
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