Beleuchtung an solange Bewegung

Hallo zusammen, ich habe in meiner Küche zwei Lampen mit unterschiedlicher ID die über einen Motion Sensor geschaltet werden, abhängig vom Sonnenuntergang mit einem LUA Script,soweit so gut.
Leider passt die Helligkeit nicht immer, deshalb möchte ich das die beiden Lampen in Abhängigkeit
von einem Rolladen und der Bewegung in der Küche geschaltet werden. Bedeutet Rolladen ist unten, und nur dann, es geht jemand in die Küche und die beiden Lampen gehen an, und bleiben solange eingeschaltet bis keine Bewegung mehr registriert wird.
Hat jemand schon ein solches Script in LUA oder kann mir jemand dabei helfen ?

Grüße DickerDad

Moin Dicker Dad,

ich denke ich kann dir einen guten Code zur Verfügung stellen. Habe ähnliche Schaltung im Badezimmer. Bin aber gerade dabei den Trigger des Motionsensors wieder rauszunehmen und als Trigger eine Variable „Anwesenheit Bad“ (0;1) zu nehmen. Die Variable schalte ich per Taster und Smart Implant beim betreten des Bades um.
Ich hatte immer das Problem das mir das Licht ausging wenn ich auf Klo war oder unter der Dusche stand :smiley: Daher jetzt die Halbautomatik mit dem Taster an der Tür.
Aber wie gesagt den Code können wir gerne zusammen auf deine IDs anpassen. Schreib mich mal persönlich an. Im Moment hat man ja viel langeweile Abends :confused:

Gruss Mike

Hallo,

dies ist mit globale Variablen realisierbar
z.B. Variable Rolladen den Wert AUF und ZU anlegen
in einer LUA Szene für den Rolladen die Variable auf AUF oder ZU setzen
fibaro:setGlobal(„Rolladen“, „ZU“)

in der Lichtsteuerung die Variable Rolladen abfragen
fibaro:call(Rolladen, „ZU“)

Frage: Warum passt die Helligkeit nicht ?

Gruß Richard

Moin DiggerDad,
wie per PN vereinbart hier ein fertiger LUA für dich.
Ich haue ihn hier mal rein, dann haben alle was davon.
Deine IDs habe ich bereits angepasst.
Viel Spass
Mike

--[[ 
%% properties 
32 value
28 value
325 value
%% globals
--]]

local motion = 32 -- ID des Bewegungssensors
local roller = 165 -- ID des Rollladen
local switch1 = 28 -- ID von Lampe 1
local switch2 = 325 -- ID von Lampe 2
local positionroller = 0 -- 99=ganz oben; 0=ganz unten; oder Position dazwischen

-- Lösche doppelte Szene(n) Anfang --
if (fibaro:countScenes()>1) then
fibaro:debug("2. Szene gekillt");
fibaro:abort(); 
end
-- Lösche doppelte Szene(n) Ende --

if
-- Auslöse per Motion Anfang --
  	-- Auslöse Code --
    tonumber(fibaro:getValue(motion, "value")) > 0 and
  	tonumber(fibaro:getValue(roller, "value")) <= positionroller
    then
 	fibaro:call(switch1, "turnOn");
	fibaro:call(switch2, "turnOn");
   	fibaro:debug("Bewegung bei Rollo zu, daher Licht an");
    -- Auslöse Code --
  
  	-- Timer Code --
  	local starttimer = 24; -- Der Timer startet mit 24 Einheiten die alle 5 Sek um 1 reduziert werden bis 0
	local timer = (starttimer); 
	fibaro:debug("Starte Timer");
	repeat 
 	fibaro:sleep(5000); -- 5 Sek!! Das heißt der Timer läuft aktuell 24x5 Sek = 120 Sek. (hinzu die Verzögerung des Motionsensors!!!) 
 	timer=timer-1; 
 	fibaro:debug("Timer -1 Einheit");
    -- Timer Code --
    
    -- Timer zurücksetzen, wenn neue Bewegung erkannt wird --
	if tonumber(fibaro:getValue(motion, "value")) > 0 then 
 	timer=starttimer; 
 	fibaro:debug("Resete Time");
	end
	-- Timer zurücksetzen, wenn neue Bewegung erkannt wird --
  	
    -- Schaltet Licht aus und beendet die Szene wenn Timer vollständig abgelaufen ist oder beide Lampen manuell ausgemacht werden --
  	until (timer<1) or
	(tonumber(fibaro:getValue(switch1, "value")) == 0 and
    tonumber(fibaro:getValue(switch2, "value")) == 0 )
	fibaro:call(switch1, "turnOff");
	fibaro:call(switch2, "turnOff");
	fibaro:debug("Timer abgelaufen; Licht aus, Szene beendet");
    -- Schaltet Licht aus und beendet die Szene wenn Timer vollständig abgelaufen ist oder beide Lampen manuell ausgemacht werden --
-- Auslöse per Motion Ende --

elseif
-- Auslöse per Schalter Anfang --
  	-- Auslöse Code --
  	tonumber(fibaro:getValue(switch1, "value")) > 0 or
  	tonumber(fibaro:getValue(switch2, "value")) > 0
  	then
    fibaro:debug("Licht manuell geschaltet, Szene gestartet");
  	-- Auslöse Code --
  
  	-- Timer Code --
  	local starttimer = 24; -- Der Timer startet mit 24 Einheiten die alle 5 Sek um 1 reduziert werden bis 0
	local timer = (starttimer); 
	fibaro:debug("Starte Timer");
	repeat 
 	fibaro:sleep(5000); -- 5 Sek!! Das heißt der Timer läuft aktuell 24x5 Sek = 120 Sek. (hinzu die Verzögerung des Motionsensors!!!) 
 	timer=timer-1; 
 	fibaro:debug("Timer -1 Einheit");
    -- Timer Code --

    -- Timer zurücksetzen, wenn neue Bewegung erkannt wird --
	if tonumber(fibaro:getValue(motion, "value")) > 0 then 
 	timer=starttimer; 
 	fibaro:debug("Resete Time");
	end
	-- Timer zurücksetzen, wenn neue Bewegung erkannt wird --

	-- Schaltet Licht aus und beendet die Szene wenn Timer vollständig abgelaufen ist oder beide Lampen manuell ausgemacht werden --
  	until (timer<1) or
	(tonumber(fibaro:getValue(switch1, "value")) == 0 and
    tonumber(fibaro:getValue(switch2, "value")) == 0 )
	fibaro:call(switch1, "turnOff");
	fibaro:call(switch2, "turnOff");
	fibaro:debug("Timer abgelaufen Licht aus, Szene beendet");
    -- Schaltet Licht aus und beendet die Szene wenn Timer vollständig abgelaufen ist oder beide Lampen manuell ausgemacht werden --
-- Auslöse per Schalter Ende -- 
end

-- gez. BMC
-- Bremen den 02.12.2020
-- viel Spass damit :-)

Hallo, vielen Dank für deine tolle Arbeit, ich werde es gleich testen.

Grüße DickerDad

Nachtrag:
Die Instanzen der Szene auf ca 5 Stellen…!!!
Dann müsste es stabil laufen