hat das schon jemand realisiert? Da meine LUA Kenntnisse noch sehr bescheiden sind, hoffe ich das es so was in Verbindung mit dem Dimmer2 schon gibt. An und Aus kann ich schalten, aber Dimmen nicht.
Schön wären die Funktionen An/Aus und DimUP/DimDown. Eventuell noch Pressedtwice für maximale Helligkeit.
Danke für Eure Unterstützung.
while (tostring(button_source["keyAttribute"]) == "HeldDown") do
local Licht= (tonumber(fibaro:getValue(560, "value")));
local Lichtneu = ( tonumber(Licht +10))
fibaro:call(560, "setValue", Lichtneu)
fibaro:sleep(200)
fibaro:debug('Fibaro Button gehalten.')
end
Danke für die Hinweise, so ähnlich war meim Script auch, allerdings mit kapitalen Tippfehler. Egal es tut jetzt, aber nicht zuverlässig. Wie Hoogle dass auch schon bemerkt hat wird der “Released” status nicht zuverlässig gemeldet. Gerade mal einfach Klick oder Doppelklick kann man noch akzeptieren. Aber selbst hier gibt es Aussetzer. Ich habe einen gelben und einen roten Button, aber egal welchen ich nehme, es bleibt immer gleich.
In der while schleife habe ich schon mehrere Fallen eingebaut, komme aber dem komischen Verhalten nicht auf die Spur. Aber in Sachen LUA bin ich auch wie ein Kind das gehen lernt.
Ich häng mal den Code hier an, vielleicht erkennt jemand sofort das Problem.
Danke für’s anschauen.
--[[
%% properties
%% events
75 CentralSceneEvent
78 value
%% globals
--]]
local button_source = fibaro:getSourceTrigger()["event"]["data"]
local a = 0
if (tostring(button_source["keyAttribute"]) == "HeldDown") then
while (tostring(button_source["keyAttribute"]) ~= "Released") do
a = a + 1;
local ButtonState = tostring(button_source["keyAttribute"])
local Dimmer= (tonumber(fibaro:getValue(78, "value")));
local Wertneu = ( tonumber(Dimmer + 10))
--fibaro:sleep(1000)
fibaro:call(78, "setValue", Wertneu)
fibaro:debug('Wert :' .. Wertneu)
fibaro:sleep(1000)
fibaro:debug('Button: ' .. ButtonState )
if (ButtonState == "Released") then
print('Losgelassen Zeile 22')
fibaro:abort()
break end;
if (a > 10) then
print('Ende Schleife var a')
--fibaro:abort();
end
if (Dimmer >= 99 or ButtonState == "Released") then
print(ButtonState)
print('Ende Schleife Wert 99')
break
end
end
--fibaro:debug('Fibaro Button gehalten.')
print('Exit HeldDown')
elseif (tostring(button_source["keyAttribute"]) == "Pressed") then
if (tonumber(fibaro:getValue(78, "value")) == 0) then
fibaro:call(78, 'turnOn')
else
fibaro:call(78, 'turnOff')
end
fibaro:debug('Button 1x gedrückt.')
elseif (tostring(button_source["keyAttribute"]) == "Pressed2") then
if (tonumber(fibaro:getValue(78, "value")) == 0) then
fibaro:call(78, "setValue", "99")
else
fibaro:call(78, 'turnOff')
end
fibaro:debug('Button 2x gedrückt.')
--elseif (tostring(button_source["keyAttribute"]) == "Pressed3") then
-- fibaro:debug('Fibaro Button 3x gedrückt.')
--elseif (tostring(button_source["keyAttribute"]) == "Pressed4") then
-- fibaro:debug('Fibaro Button 4x gedrückt.')
--elseif (tostring(button_source["keyAttribute"]) == "Pressed5") then
-- fibaro:debug('Fibaro Button 5x gedrückt.')
elseif (tostring(button_source["keyAttribute"]) == "Released") then
fibaro:debug('Fibaro Button losgelassen. Zeile 66')
end