Auf einmal geht meine Lichtsteuerung nicht mehr. Ich bekomme den Fehler: [DEBUG] 06:00:09: line 15: attempt to compare number with nil
--[[
%% properties
976 value
%% globals
--]]
-- VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
local scene = 115 -- ID dieser Szene
local motion = 976 -- ID des Bewegungssensors
local switch = 924 -- 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(switch1, "turnOn");
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 = 15;
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(switch1, "turnOff");
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(switch1, "turnOff");
fibaro:call(switch, "turnOff");
fibaro:debug("Timer abgelaufen/Schalte Licht aus");
fibaro:killScenes(scene);
end