Hallo an Alle!
Bin neu im Forum und auch beim Schreiben von LUA Scripts.
Hab mir hier im Forum schon einige Scripts „kopiert“ und nach meinen Bedürfnissen umgeschrieben.
Leider erhalte ich dennoch bei manchen Scripts die Fehlermeldung „to many instances“.
Hier ist eines dieser Scripts:
–[[
%% properties
41 value
234 value
240 value
43 value
%% globals
TimeOF Day
–]]
– VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
local scene = 74 – ID dieser Szene
local motion1 = 41 – ID des Bewegungssensors 1
local switch1 = 234 – ID des Switches 1
local switch2 = 240 – ID des Switches 2
local lux = 43 – ID des Helligkeistsensors
local TOD = fibaro:getGlobal(„TimeOfDay“);
– Lösche doppelte Szene(n)
if (fibaro:countScenes()>1) then
fibaro:abort();
end
– SCHALTE LICHT EIN & AUS
if (tonumber(fibaro:getValue(motion1, „value“)) > 0 )
and (tonumber(fibaro:getValue(lux, „value“)) <= 200 )
and (tonumber(fibaro:getValue(switch1, „value“))) < 1
and (tonumber(fibaro:getValue(switch2, „value“))) < 1
then
fibaro:call(switch1, „turnOn“)
fibaro:call(switch2, „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(switch1, „value“))) > 0 then
local starttimer = 300;
local timer = (starttimer);
fibaro:debug(„Starte Timer“);
repeat
fibaro:sleep(1000);
– Schalte Licht aus, wenn Schalter manuell betätigt wird und warte X Sekunden, um ein
– versehentliches (erneutes) Aktivieren der Szene zu verhindern
if (tonumber(fibaro:getValue(switch1, „value“))) < 1 and
(tonumber(fibaro:getValue(switch2, „value“))) < 1 then
timer=1;
fibaro:call(switch1, „turnOff“)
fibaro:call(switch2, „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(motion1, „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(switch1, „turnOff“)
fibaro:call(switch2, „turnOff“) ;
fibaro:debug(„Timer abgelaufen/Schalte Licht aus“);
fibaro:killScenes(scene);
end
Kann mir bitte jemand sagen was ich falsch mache.
Danke und
BG CJ-72