Licht an solange Bewegung

Wer kann mir helfen ?
Habe einen Fehler in Reihe sowie und 21

Hier einmal das script

–[[
%% properties
259 value
130 value
%% globals
–]]
— VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
local scene = 80 — ID dieser Szene
local motion = 259 — ID des Bewegungssensors
local switch = 130 — 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“))) 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 10 Sekunden, um ein
— versehentliches (erneutes) Aktivieren der Szene zu verhindern
if (tonumber(fibaro:getValue(switch, „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

ich meinte Reihe 16 und 21

Ich könnte Dir helfen, aber für Scripte die nicht in Code Tags eingeschlossen sind werde ich keinen Support mehr bieten.
So sollte es aussehen:

--[[
%% properties
--]]
-- mein Script
local a,b
-- und so weiter  

Ich hoffe das ist jetzt das richtige Format

Dazu oberhalb der Box den Button „Code“ drücken, Script einfügen, erneut „Code“ drücken.

--[[ 
%% properties 
259 value
130 value
%% globals 
--]]
-- VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
local scene = 80 -- ID dieser Szene
local motion = 259 -- ID des Bewegungssensors
local switch = 130 -- 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 = 300;
 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(300); 
 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

Danke, jetzt passt es. Leider kann ich in den besagten Zeilen keinen Fehler sehen. Daher vermute ich dass es sich um ein Problem mit den Motion und Switch IDs handelt. Dass solltest Du nochmal überprüfen ob die stimmen!

die IDs von Motion Sensor sowie des Switches sind korrekt.

ich bekomme folgende Fehlermeldung

fatal Unknown exception:
option/fibaro/szenes/80.lua:21: attempt to compare number with nil

Mich wundert das der Fehler in Zeile 16 nicht mehr vorhanden ist!
Der Fehler kommt aus Zeile 21, aber die ist auch korrekt. Was für ein Switch ist es denn? Sollte die ID stimmen, liefert die Abfrage trotzdem keinen Wert zurück (nil). Da sollte 0 oder 1 zurückgeliefert werden, was false oder true entspricht.
Kopier mal die Szene in eine neue und speichere sie ab.
Die Zeile “local scene = 80” kannst Du weg lassen und am Ende “fibaro:killScenes(scene);” durch “fibaro:abort()” ersetzen.

ich habe jetzt anstatt der Hue Leuchte mal einen RGB Controller als Switch genommen.
Nun kommt keine Fehlermeldiúng mehr, allerdings schaltet der RGB Controller auch nicht ein.

local Szene weggelassen + Kill Szenes ersetzt.

Habe das gleiche mit einem Schaltaktor gemacht, klappt bestens.
Welchen Befehl muss ich für den RGB Controller verwenden ?
Er sollte doch auch (turnOn) kennen.
Das gleiche für die Hue Birne.

Hi,

Was verstehst du unter Switch?
Ist das bei Dir eine Hue???
Die verfügbaren Befehle eines Modules findest du im LUA-Editor auf der linken Seite.

Viele Grüße Hoggle

Danke, jetzt läuft alles,
Habe gleich mehrere Szenen angelegt.