Licht oder RGB zu bestimmten Zeiten an solange Bewegung

Hi,

klar, das geht. Musst erstens oben in den propeties die ID des Motion hinzufügen. Dann müssen noch if-Abfragen, wo der Status des anderen Motion abgefragt wird (tonumber(fibaro:getValue(motion, “value”)) > 0), um den neuen mit einer OR-Verknüpfung ergänzt werden.

Gruß

Hi Daniel!

Habe ich´s richtig gemacht?

--[[
%% properties
681 value
686 value
%% globals
--]]

-- VARIABLEN Konfiguration (Bewegungsmelder muss oben unter %% properties aufgeführt sein) löst die szene aus
-----------------------------------------------------------------------------------------------------------------------------------------
local scene = 542 -- ID dieser Szene
local motion = 681 or 686 -- ID des Bewegungssensors
local licht = 683 -- ID Lichtsensor
local switch = 623 -- ID der Lampe

local nachtstart = 1600 --23:00 = 2300
local nachtende = 2200 -- 07:00 = 0700
local starttimer = 15 -- licht an zeit (+ zeit des bewegungssensors - par. 6)
local lichtwert = -1 -- grenze zum nachtmodus (nur ausführen, wenn licht größer als)
-----------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------
---------------------Script-----------------
fibaro:debug("start1")
if (fibaro:countScenes()>1) then
	fibaro:debug("stop scene");
	fibaro:abort();
end

-- SCHALTE LICHT EIN & AUS (wenn nicht nacht)
if (tonumber(fibaro:getValue(681, "value")) > 0 ) or (tonumber(fibaro:getValue(686, "value")) > 0 ) and tonumber(fibaro:getValue(licht, "value")) > lichtwert and (tonumber(os.date("%H%M")) >= nachtstart and tonumber(os.date("%H%M")) <= nachtende) then -- hier fehlt noch "und schalter aus"
 	fibaro:debug("ausgelöst");
	--led auf wert einstellen
	fibaro:call(switch, "turnOn");
	-- timer start und einstellen
	timer = os.time();
	while os.time() - timer < starttimer do
		fibaro:sleep(1000);
		-- Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
		if (tonumber(fibaro:getValue(motion, "value"))) > 0 then
			timer = os.time();
		end
end
	-- Schalte Licht aus, wenn Timer vollständig abgelaufen ist
	fibaro:call(switch, "turnOff");
end
fibaro:debug("ende1");
fibaro:killScenes(scene);

Viele Grüße

Christian

Hi,

Zeile 11 musst du ändern, und daraus 2 Variablen machen. Also Motion1 und Motion2.

Und in Zeile 38 musst du den 2 Sensor noch hinzufügen.

Ansonsten sieht es soweit gut aus :slight_smile:

Gruss

Ok. Perfekt. Vielen vielen Dank! :-)))

Dann hier nochmals, mit Deinen Tipps!

--[[
%% properties
681 value
686 value
%% globals
--]]

-- VARIABLEN Konfiguration (Bewegungsmelder muss oben unter %% properties aufgeführt sein) löst die szene aus
-----------------------------------------------------------------------------------------------------------------------------------------
local scene = 542 -- ID dieser Szene
local motion1 = 681 -- ID des Bewegungssensors
local motion2 = 686 -- ID des Bewegungssensors
local licht = 683 -- ID Lichtsensor
local switch = 623 -- ID der Lampe

local nachtstart = 1600 --23:00 = 2300
local nachtende = 1900 -- 07:00 = 0700
local starttimer = 15 -- licht an zeit (+ zeit des bewegungssensors - par. 6)
local lichtwert = -1 -- grenze zum nachtmodus (nur ausführen, wenn licht größer als)
-----------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------
---------------------Script-----------------
fibaro:debug("start1")
if (fibaro:countScenes()>1) then
	fibaro:debug("stop scene");
	fibaro:abort();
end

-- SCHALTE LICHT EIN & AUS (wenn nicht nacht)
if (tonumber(fibaro:getValue(motion1, "value")) > 0 ) or (tonumber(fibaro:getValue(motion2, "value")) > 0 ) and tonumber(fibaro:getValue(licht, "value")) > lichtwert and (tonumber(os.date("%H%M")) >= nachtstart and tonumber(os.date("%H%M")) <= nachtende) then -- hier fehlt noch "und schalter aus"
 	fibaro:debug("ausgelöst");
	--led auf wert einstellen
	fibaro:call(switch, "turnOn");
	-- timer start und einstellen
	timer = os.time();
	while os.time() - timer < starttimer do
		fibaro:sleep(1000);
		-- Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
		if (tonumber(fibaro:getValue(motion1, "value"))) > 0 or (tonumber(fibaro:getValue(motion2, "value"))) > 0 then
			timer = os.time();
		end
end
	-- Schalte Licht aus, wenn Timer vollständig abgelaufen ist
	fibaro:call(switch, "turnOff");
end
fibaro:debug("ende1");
fibaro:killScenes(scene);

So. Und jetzt wünsche ich Dir und Euch allen frohe Festtage. Ich lasse Euch jetzt in Ruhe! :smiley: :wink:

Viele Grüße

Christian

Cool :slight_smile:

Funktioniert es denn so? Wünsche ich dir auch. Falls was ist, fragen… Bin bestimmt auch an den Feiertagen “abundzu” mal da :smiley:

Ok :slight_smile: Gut zu wissen! Ja, soweit funktioniert es. Allerdings geht das Licht immer an, auch außerhalb der eingestellten Zeit…grmpf

--[[
%% properties
681 value
686 value
%% globals
--]]

-- VARIABLEN Konfiguration (Bewegungsmelder muss oben unter %% properties aufgeführt sein) löst die szene aus
-----------------------------------------------------------------------------------------------------------------------------------------
local scene = 572 -- ID dieser Szene
local motion1 = 681 -- ID des Bewegungssensors
local motion2 = 686 -- ID des Bewegungssensors
local licht = 683 -- ID Lichtsensor
local switch = 623 -- ID der Lampe

local nachtstart = 1600 --23:00 = 2300
local nachtende = 1900 -- 07:00 = 0700
local starttimer = 15 -- licht an zeit (+ zeit des bewegungssensors - par. 6)
local lichtwert = 5 -- grenze zum nachtmodus (nur ausführen, wenn licht größer als)
-----------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------
---------------------Script-----------------
fibaro:debug("start1")
if (fibaro:countScenes()>1) then
	fibaro:debug("stop scene");
	fibaro:abort();
end

-- SCHALTE LICHT EIN & AUS (wenn nicht nacht)
if (tonumber(fibaro:getValue(motion1, "value")) > 0 ) or (tonumber(fibaro:getValue(motion2, "value")) > 0 ) and tonumber(fibaro:getValue(licht, "value")) > lichtwert and (tonumber(os.date("%H%M")) >= nachtstart and tonumber(os.date("%H%M")) <= nachtende) then -- hier fehlt noch "und schalter aus"
 	fibaro:debug("ausgelöst");
	--led auf wert einstellen
	fibaro:call(switch, "turnOn");
	-- timer start und einstellen
	timer = os.time();
	while os.time() - timer < starttimer do
		fibaro:sleep(1000);
		-- Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
		if (tonumber(fibaro:getValue(motion1, "value"))) > 0 or (tonumber(fibaro:getValue(motion2, "value"))) > 0 then
			timer = os.time();
		end
end
	-- Schalte Licht aus, wenn Timer vollständig abgelaufen ist
	fibaro:call(switch, "turnOff");
end
fibaro:debug("ende1");
fibaro:killScenes(scene);

Hallo hab genau das gleiche Problem.
Wenn mat einen 2ten Motion Sensor einbindet oder wie bei mir einen Tür Sensor dann schaltet er bei mir zb den Motion immer un den Türsensor nur zur bestimmten eingestellten Zeit.
Denke das kommt durch die AND und OR in der gleichen Zeile? WIe könnte man das lösen?


-[[
%% properties
32 value
95 value
%% globals
--]]

-- VARIABLEN Konfiguration (Bewegungsmelder muss oben unter %% properties aufgeführt sein) löst die szene aus
-----------------------------------------------------------------------------------------------------------------------------------------
local scene = 134 -- ID dieser Szene
local motion = 32 -- ID des Bewegungssensors
local switch = 25 -- ID der Lampe
local door = 95 -- ID Türsensor

local nachtstart = 2000 --22:00 = 2200
local nachtende = 0700 -- 07:00 = 0700
local starttimer = 30 -- licht an zeit (+ zeit des bewegungssensors - par. 6)

-----------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------
---------------------Script-----------------
fibaro:debug("start1")
if (fibaro:countScenes()>1) then
	fibaro:debug("stop scene");
	fibaro:abort();
end

-- SCHALTE LICHT EIN & AUS (wenn nicht nacht)
if (tonumber(fibaro:getValue(motion, "value")) > 0 ) or tonumber(fibaro:getValue(door, "value")) > 0 and (tonumber(os.date("%H%M")) >= nachtstart or tonumber(os.date("%H%M")) <= nachtende) then -- hier fehlt noch "und schalter aus"
	fibaro:debug("ausgelöst");
	--led auf wert einstellen
	fibaro:call(switch, "turnOn");
	-- timer start und einstellen
	timer = os.time();
	while os.time() - timer < starttimer do
		fibaro:sleep(1000);
		-- Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
		if (tonumber(fibaro:getValue(motion, "value"))) > 0 then
			timer = os.time();
		end
end
	-- Schalte Licht aus, wenn Timer vollständig abgelaufen ist
	fibaro:call(switch, "turnOff");
end
fibaro:debug("ende1");
fibaro:killScenes(scene);

Hat echt Kein Mensch ne Idee wo der Fehler liegt?
Danke

Hallo,
soweit funktioniert alles TOP! Nur…
kann die Szene am Ende die LED nicht ausschalten nur den letzten Stand der LED wieder stellen (die Farbe bevor die Szene ausgelöst war)?

Danke für die Hilfe!