man dann die absolute Helligkeit der HUE Leuchten ja per Befehl:
fibaro:call(ID, "changeBrightness", WERT)
einstellen.
Gibt es denn einen Befehl, mit dem man die relative Helligkeit einstellen kann? Soll heißen, ich möchte die Helligkeit per Befehl um einen bestimmten Wert erhöhen oder verringern.
Ich verwende ein virtuelles Modul für die Hue Lampen. Ich setze dann mit: fibaro:call(189, "setSlider", "1", "100"); den Brightness-Slider auf einen Wert zwischen 0-100. Je nachdem, wie hell ich es eben haben möchte
Das wäre nichts anderes als das was ich bisher auch tue, oder? Ich hätte aber gerne einen Befehl, mit dem ich die Helligkeit um bspw. 10 Einheiten erhöhen oder verringern kann.
Es ist sehr unpraktisch, einen Befehl für 10%, 20, 25, 30, 40, 50, etc. zu erstellen. Da ich das Ganze bisher über Taster steuere, bräuchte ich dafür 10 oder mehr Tasten, was natürlich Unsinn wäre.
Meine Idealeinstellung wäre: eine Taste für heller, eine für dunkler. So wie es mit dem originalen HUE Taster auch möglich ist.
Dimmen von HUE campen mit einem KFOB oder WALL-C. Trotz intensiver Suche habe ich auf keinen Code dafür gefunden. Aus diesem Grund habe ich selber etwas geschrieben, was sicher verbesserungswürdig ist aber besser habe ich es nicht hinbekommen. Mit dem gleichen Code kann ich auch die Farbe per Tastendruck verändern. Dann halt nur eine andere Variable und die Abfrage der HUE ändern
Eine Variable „Dimmer“ anlegen
Aufrufen der Scene in der Auswertung des KFOB oder WALL-C wie folgt: Starten der Scene zum Hochdimmen mit halten des Button 1
elseif(MySceneId == But1Hold) then
fibaro:debug(“But1Hold”)
fibaro:setGlobal(“Dimmer”, “1”)
fibaro:startScene(216)
Beenden des Dimmvorganges durch loslassen des Button 1:
elseif(MySceneId == But1Release) then
fibaro:debug(“But1Release”)
fibaro:setGlobal(“Dimmer”, “0”)
fibaro:killScenes(216)
Runterdimmen starten:
elseif(MySceneId == But3Hold) then
fibaro:debug(“But3Hold”)
fibaro:setGlobal(“Dimmer”, “2”)
fibaro:startScene(216)
Beenden des Dimmvorganges:
elseif(MySceneId == But3Release) then
fibaro:debug(“But3Release”)
fibaro:setGlobal(“Dimmer”, “0”)
fibaro:killScenes(216)
Die Scene an sich:
--[[
%% properties
%% globals
--]]
local DID = 52 -- ID HUE Küche, auslesen Helligkeit
local D = tonumber(fibaro:getValue(DID, "ui.brightness.value"))
-- fibaro:debug("aktuell " ..D.. " Helligkeit")
fibaro:call(52, "turnOn");
if
tonumber(fibaro:getGlobalValue("Dimmer")) == tonumber("1") then
while D <= 255 do
-- fibaro:debug("aktuell " ..D.. " Helligkeit")
fibaro:call(52, "changeBrightness", D);
fibaro:sleep(300)
D = D + 15
end
elseif
tonumber(fibaro:getGlobalValue("Dimmer")) == tonumber("2") then
while D >= 5 do
-- fibaro:debug("aktuell " ..D.. " Helligkeit")
fibaro:call(52, "changeBrightness", D);
fibaro:sleep(300)
D = D - 15
end
end
Autostart ist deaktiviert, Scene läuft also nur bei Aufruf.
Hier das LUA Script zum Dimmen der HUE ausgearbeitet. Mit diesem Script lassen sich über den S2 eines Dimmers eine oder mehrerer HUEs dimmen. Sie verhalten sich genauso wie normale Leuchtmittel am Dimmer 2: Klick = ein/aus, Halten = dimmen hoch/runter, Doppelklick = volle Helligkeit.
Kopieren und IDs der HUE, ID des Dimmers und ID der Szene eintragen.
eine Globale einfache Variable mit den Namen “dimUpDown” anlegen. Startwert ist 1.
Wenn ihr wollt, könnt ihr die Geschwindigkeit des Dimmens auch einstellen.
Viel Spaß.
--[[
%% properties
70 sceneActivation
%% events
%% globals
--]]
local HUEs = {10, 11, 12} -- IDs of HUE as Array {X, Y, Z}
local fibaroID = 70 -- ID of Device which will dim HUE
local sceneID = 22 -- ID of this scene
local stepPercentage = 7 -- Dimmer step in percent
local stepTime = 0.05 -- Dimmer step duration in seconds
function dimHue (hueID, step)
local valueDimmer = tonumber(fibaro:getValue(hueID, "ui.brightness.value")) + step
if valueDimmer < 0 then
if valueDimmer == 0 + step then return end;
valueDimmer = 0
-- fibaro:call(hueID, "turnOff") -- Enable if you want HUE to switch off dimming down fully
end
if valueDimmer > 255 then
if valueDimmer == 255 + step then return end;
valueDimmer = 255
end
fibaro:debug("HUE " .. hueID ..": ".. valueDimmer)
fibaro:call(hueID, "changeBrightness", valueDimmer)
end
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 26 )
or
startSource["type"] == "other"
)
then
-- Click
local deviceValue1 = tonumber(fibaro:getValue(HUEs[1], "on"));
if (deviceValue1 > 0) then
for i, iHUE in ipairs(HUEs) do
fibaro:call(iHUE, "turnOff")
end
else
for i, iHUE in ipairs(HUEs) do
fibaro:call(iHUE, "turnOn")
end
end
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 22 ) then
-- Hold
local dimUpDown = fibaro:getGlobalValue("dimUpDown")
-- if off, switch on and dim up from darkest
local deviceValue1 = tonumber(fibaro:getValue(HUEs[1], "on"));
if (deviceValue1 == 0) then
for i, iHUE in ipairs(HUEs) do
fibaro:call(iHUE, "changeBrightness", 1)
fibaro:call(iHUE, "turnOn")
end
dimUpDown = 1
end
fibaro:setGlobal("dimUpDown", dimUpDown * -1)
local step = math.floor(255 / 100 * stepPercentage * dimUpDown)
-- Start dim loop
print ("Start dim",step)
repeat
for i, iHUE in ipairs(HUEs) do
dimHue (iHUE, step)
end
fibaro:sleep(1000 * stepTime)
until false
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 23 ) then
-- Release
print ("Stop")
fibaro:killScenes(sceneID)
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 24 ) then
-- Double Click
print ("Setting maximum")
for i, iHUE in ipairs(HUEs) do
dimHue (iHUE, 255)
fibaro:call(iHUE, "turnOn")
end
end
bräuchte mal eure Unterstützung zu dem codeschnippsel unten.
Die unten gesteuerte Lampe ist eine HUE Leuchte, eingepflegt über das Plugin.
Das Dimmen funktioniert gut und sicher aber ich möchte das die Lampe langsamer dimmt
und nicht sofort von 100% auf 15% knallt. Das doch sehr ungemütlich.
hoffe einer kann mir weiterhelfen.
Danke
elseif ostime == afternoon then
fibaro:call(373, "changeBrightness", "25")
fibaro:debug("Licht gedimmt.......Jaaa, das Automatisiert du idiot");
end