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.
--[[
%% 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);
--[[
%% 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!
Ok 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);
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)?