Aktion solange Taste gedrückt

Hallo,

ich habe ein Devolo Wandschalter und benutze diese mit dem CentralSceneEvent. Jetzt möchte ich in einem lua script eine schleife laufen lassen, solange eine bestimmte Taste gehalten wird. Genauer möchte ich an ein LED-Farbband (RGB Controller) die Farben durchschalten. Die Schleife startet, stoppt aber nicht wenn ich die Taste loslasse. Ich vermute dass ich hier den neuen “wert” nicht abgefragt bekomme, damit die Schleife gestoppt wird. hier mein Ansatz:


--[[
%% properties
%% events
223 CentralSceneEvent
%% globals
--]]

local button_source = fibaro:getSourceTrigger()["event"]["data"]

if (tostring(button_source["keyAttribute"]) == "HeldDown") and (tonumber(button_source["keyId"]) == 2) then
    	print("while-schleife gestartet")
		local count = 0
		repeat
			count = count + 1;
      		print(count)
      		if (tostring(button_source["keyAttribute"]) == "Released") then -- ich denke hier liegt das problem, da nicht nochmal neu abgefragt wird. Wie mache ich das?
                count = 6
        		break
		end
      
        	if count == 1 then
				fibaro:call(233, "setColor", "51","0","0","0")
			elseif count == 2 then
				fibaro:call(233, "setColor", "0","51","0","0")
			elseif count == 3 then
				fibaro:call(233, "setColor", "0","0","51","0")
			elseif count == 4 then
				fibaro:call(233, "setColor", "51","0","51","0")
			elseif count == 5 then
				fibaro:call(233, "setColor", "0","51","51","0")
        		count = 0
			else
				print("Error")
			end
      
			fibaro:sleep(2000)
		until (count>4)
	end