Licht geht durch manuelle Schalterbetätigung nicht aus

Hallo Leute,
ich bin noch relativ neu hier und bräuchte mal ein bisschen eure Hilfe.
Ich hab mich schon durch das ein oder andere Skript hier gesucht und habe mal eins abgeändert auf meine Verhältnisse.

Soweit sogut aber jetzt weiß ich nicht warum es bei manueller Schalterbetätigung nicht mehr ausgeht,
kann mir mal jemand etwas auf die Sprünge helfen?

Bin noch in der Anfangsphase des LUA :frowning: Aber es wird von Tag zu Tag etwas verständlicher :slight_smile:

--[[
%% properties
22 value
129 value
37 value
%% globals
--]]
-- VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
local scene = 7 -- ID dieser Szene
local motion = 22 -- ID des Bewegungssensors
local door = 129 -- ID des Türkontaktes
local switch = 121 -- 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 ) or (tonumber(fibaro:getValue(door, "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 = 20;
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(5000);
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

Hi,

Dein Script wird jedesmal bei Auslösung durch den Türkontakt und Bewegungssensors getriggert. Absicht?
Was ist Zeile 5?
Wozu benötigst Du Zeile 9?
Was ist in den Parametern zu Deinem Bewegungssensors eingestellt, wann meldet er wieder Sicher?
Wozu hast Du Zeile 48 implementiert?
Wenn Du mit Einschüben arbeitest, erkennt man besser die Struktur deer Szene…

VG Hoggle

Hallo,
ja habe das Script ein wenig umgearbeitet und so aus dem Forum rausgezogen.
Warum jetzt ich es jedesmal triggere weiß ich selber nicht so genau.

Zeile 5 ist falsch, müsste 129 statt 37 drinstehen, hatte es nur so rauskopiert weil ich noch einen Türkontakt hierliegen hatte zum schnelleren testen.
Ist aber nicht das Problem, hab ich nämlich gleich umgeschrieben danach.

Zeile 9, ID dieser Szene war auch bereits in der Vorlage drinnen, ist auch in Wirklichkeit ID 7
Zeile 48 war ebenfalls vorgegeben.

Bewegungssensor ist kurz drauf wieder safe

Das für mich nicht einleuchtbare,
ich hab im Flur oben das selbe Skript und am Relay den anderen Ausgang, da funktioniert alles wunderbar,
auch AUS nach manueller Betätigung.

*Edit:

Mal eben den Motionsensor vom Flur Oben eingefügt im Skript dann schaltet es manuell betätigt einwandfrei aus,
komiiiiiisch?

Werde mal den anderen Sensor neu konfigurieren.

So nochmal Update, neu konfiguriert - geht!
Danke für die Mühe

Perfekt.