Licht an solange Bewegung

Hallo,

hier mein Script

--[[
%% properties
84 value
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(84, "value")) > 0 )
or
startSource["type"] == "other"
)
then
	fibaro:call(40, "turnOn");
	setTimeout(function()
		fibaro:call(40, "turnOff");
	end, 1200000)
end

Was muss ich nun einfügen, damit das Licht solange an bleibt wie Bewegung ist und nicht nach 1200 Sekunden ausgeht?

MfG

Hi,

in unserer Wissendatenbank gibt es dazu ein fertiges Skript. Such dort einfach nach Licht :slight_smile:

Gruß

http://www.siio.de/lichtschatten/fibaro-szene-licht-solange-bewegung/

MIB

Danke :slight_smile:

Okay, jetzt sieht es so aus:

–[[
%% properties
84 value
%% globals
–]]
– VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
local scene = 21 – ID dieser Szene
local motion = 84 – ID des Bewegungssensors
local switch = 40 – ID des Relay Switches
– Lösche doppelte Szene(n)
if (fibaro:countScenes()>1) then
fibaro:abort();
end
– SCHALTE LICHT EIN & AUS
if (tonumber(fibaro:getValue(motion, “value”)) > 0 ) and (tonumber(fibaro:getValue(switch, “value”))) < 1 then
fibaro:call(switch, “turnOn”);
fibaro:debug(“Schalte Licht ein”);
end
– Verzögerung in Sekunden nach der letzten erkannten Bewegung, bevor das Licht ausgeschaltet wird
if (tonumber(fibaro:getValue(switch, “value”))) > 0 then
local starttimer = 900;
local timer = (starttimer);
fibaro:debug(“Starte Timer”);

repeat
fibaro:sleep(1000);
– Schalte Licht aus, wenn Schalter manuell betätigt wird und warte 10 Sekunden, um ein
– versehentliches (erneutes) Aktivieren der Szene zu verhindern
if (tonumber(fibaro:getValue(switch, “value”))) < 1 then
timer=1;
fibaro:call(switch, “turnOff”);
fibaro:sleep(10000);
break
end
timer=timer-1;
– Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
if (tonumber(fibaro:getValue(motion, “value”))) > 0 then
timer=starttimer;
fibaro:debug(“Resete Time, Bewegung erkannt bzw. Motionsensor sendet noch nicht (vgl. Parameter 6)”);
end
until (timer<1)
– Schalte Licht aus, wenn Timer vollständig abgelaufen ist
fibaro:call(switch, “turnOff”);
fibaro:debug(“Timer abgelaufen/Schalte Licht aus”);
fibaro:killScenes(scene);
end

Irgendwas stimmt aber nicht, es geht kein Licht an.

Glaub es gibt Probleme mit dem repeat. Versuch doch mal folgendes Skript:

http://www.siio.de/lichtschatten/die-perfekte-lichtsteuerung-mit-fibaro-lua-update-1/

Und da kann man nichts machen das es geht?

ich hab das jetzt so gelöst, allerdings wieder das “Number of instances of scene has been reduced due to exceeding limit.” Problem. Kann man die instances irgendwie auf 1000 Setzen oder sowas? Damit das nicht mehr kommt?

12.jpg

21.jpg

Hi,

du musst den Parameter 6 bei deinem MS auf 180 Sekunden setzen, damit er die Szene nicht immer triggert, während die Szene 180 Sekunden wartet.

Gruß

Okay, hab das nun so eingestellt.

okay.jpg