Dimmer mit Tastendruck

Hi Leute,

Habe eine Domi Bulb (dimmbare Led Lampe) und einen NodOn Soft Remote.

Ich will eine Taste damit belegen, dass sie beim länger drücken immer rauf oder runter dimmt!
Am liebsten wär es mir auf EINER Taste.

Funktion:
Sobald der Wert des Dimmers unter 50% wird beim halten der Taste raufgedimmt und wenn der Wert über 50% ist dann wird runtergedimmt.
Wenn das nicht geht, dann eventuell auch mit 2 Tasten für rauf/runter dimmen.

Habt ihr daafür hier im Forum schon Codebeispiele??
Hab leider nix gefunden…

Hallo pblacky,

so trifft man sich wieder :slight_smile:

Schau dir mal mein Skript an…
Über die Tasten + Taste wird hoch gedimmt über die - Taste runter.
Auf der Taste 3 (Halberkreis) wird die Lampe ein und ausgeschaltet. Es ist allerdings eine HUE so das die Befehle “ui.brightness.value” und “ui.onOff.value” noch angepasst werden müssen.

Wenn du nicht weiter kommst sag Bescheid

--[[
%% properties
101 sceneActivation
%% globals
--]]

------------------------- 
--- ### Variablen ### --- 
------------------------- 
local hue = 129; -- HUE Fotolampe
local Fotolampe = tonumber(fibaro:getValue(hue, "ui.onOff.value"))

local id = 101; -- Hier die und in Zeile 3 die ID des NodOn Moduls eintragen
local name = fibaro:getName(id)

-------------------------------- 
---- ### Debug Funktion ### ---- 
-------------------------------- 
function debug(message) 
 if (vardebug) then fibaro:debug(message); end
end

--------------------------- 
--- ### Debug-Modus ### --- 
--------------------------- 
vardebug = true

------------------------- 
--- ### Funktionen ### --- 
------------------------- 
-- Runter-Dimmen ---
function LightDecrease ()
  valueDimmer = tonumber(fibaro:getValue(hue, "ui.brightness.value"));
  valueDimmer = math.max(0, valueDimmer -60)
  fibaro:call(hue, "changeBrightness", valueDimmer)
  --fibaro:debug("Dimmer Intensity: " ..valueDimmer) 
end

--- Hoch-Dimmen ---
function LightIncrease ()
  valueDimmer = tonumber(fibaro:getValue(hue, "ui.brightness.value"));
  valueDimmer = math.max(0, valueDimmer +60)
  fibaro:call(hue, "changeBrightness", valueDimmer)
  --fibaro:debug("Dimmer Intensity: " ..valueDimmer) 
end

---------------------------------------------- 
------- ### Taste 1 ### (Voller Kreis) ------- 
---------------------------------------------- 

---### 1x drücken auf Taste 1 ###---  
if (tonumber(fibaro:getValue(id, "sceneActivation"))==10) then

  
---### 2x drücken auf Taste 1 ###---  
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==13) then

---### Lange drücken auf Taste 1 ###---    
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==12) then
 debug("Lange drücken auf Taste 1 --> Modul: "..name);

  
---### Loslassen nach langem drücken auf Taste 1 ###---     
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==11) then
 debug("Loslassen nach langem drücken auf Taste 1 --> Modul: "..name)

------------------------------------------ 
------- ### Taste 2 (+ Symbol) ### ------- 
------------------------------------------ 

---### 1x drücken auf Taste 2 ###--- 
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==20) then
 LightIncrease (); debug("Fotolampe Dimmer +");

---### Doppelt drücken auf Taste 2 ###---    
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==23) then
 debug("Doppelt drücken auf Taste 2 --> Modul: "..name);

---### Lange drücken auf Taste 2 ###---      
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==22) then
 debug("Lange drücken auf Taste 2 --> Modul: "..name);

---### Loslassen nach langem drücken auf Taste 2 ###---    
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==21) then
 debug("Loslassen nach langem drücken auf Taste 2 --> Modul: "..name)

---------------------------------------------- 
------- ### Taste 3 ### (Halber Kreis) ------- 
---------------------------------------------- 

---### 1x drücken auf Taste 3 ###--- 
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==30) then

	if (Fotolampe > 0) then fibaro:call(hue, "turnOff"); debug("Fotolampe aus");
	else fibaro:call(hue, "turnOn"); debug("Fotolampe an");
	end

---### Doppelt drücken auf Taste 3 ###---   
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==33) then
 debug("Doppelt drücken auf Taste 3 --> Modul: "..name);

 ---### Lange drücken auf Taste 3 ###---    
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==32) then
 debug("Lange drücken auf Taste 3 --> Modul: "..name);

---### Loslassen nach langem drücken auf Taste 3 ###---    
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==31) then
 debug("Loslassen nach langem drücken auf Taste 3 --> Modul: "..name)

------------------------------------------ 
------- ### Taste 4 (- Symbol) ### ------- 
------------------------------------------ 

---### 1x drücken auf Taste 4 ###--- 
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==40) then
 LightDecrease(); debug("Fotolampe Dimmer -");

---### Doppelt drücken auf Taste 4 ###---     
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==43) then
 debug("Doppelt drücken auf Taste 4 --> Modul: "..name);

 ---### Lange drücken auf Taste 4 ###---    
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==42) then
 debug("Lange drücken auf Taste 4 --> Modul: "..name);

---### Loslassen nach langem drücken auf Taste 4 ###---     
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==41) then
 debug("Loslassen nach langem drücken auf Taste 4 --> Modul: "..name)
end

Danke Nevv,
Schön wieder von dir zu lesen!
Ich liebe deine Skripte, sie sind so schön logisch und übersichtlich!!
Werd mal sehen wie weit ich komme …

Habe mal mit der DomiBulb rumexperimentiert und folgendes realisiert:

.) Taste 1 x drücken ein oder ausschalten, je nach Zustand

	local deviceValue1 = tonumber(fibaro:getValue(171, "value"))
	if (deviceValue1 > 0) then
		fibaro:call(171, "turnOff")
	else
		fibaro:call(171, "turnOn")
	end

.) Taste 1 doppelt drücken -> maximale Helligkeit
fibaro:call(171, "startLevelIncrease")
.) Taste 2 doppelt drücken -> minimale Helligkeit
fibaro:call(171, "startLevelDecrease")

Leider hab ich noch nicht rausgefunden, wie ich den eingestellten Helligkeitswert auslesen und skalieren kann.
Damit könnte ich dann mit EINER Taste Max und MIN schalten sowie durch halten der EINEN Taste stufenlos rauf und runterdimmen…

Mein Fibaro Dimmer im Schlafzimmer macht das exakt genau so, allerdings kann der das schon per default :wink:

Hi Leute,
Hatte jetzt mal wieder etwas Zeit mich mit der Dimmer Funktion zu beschäftigen.
Habe herausgefunden dass es beim Fibaro Dimmer so funktioniert:

fibaro:call(38, "startLevelDecrease") = dünkler
fibaro:call(38, "startLevelIncrease") = heller
fibaro:call(38, "stopLevelChange") = stop

Leider klappt das bei der DomiBulb nicht, obwohl in den möglichen Befehlen genau diese aufgelistete sind ;-(
Hat jemand von euch einen Tipp oder eventuell so ein Skript mit der DomiBulb im Einsatz?