kurzzeitig unscharf schalten

Hallo allerseits. Ich stümpere grade neu mit LUA vor mich hin und hätte gerne von euch Inspiration.
Folgendes Szenario:
Im Obergeschoß ist der Alarm aus. Ein Stockwerk tiefer im Büro und Vorraum aber zeitgesteuert von 23-6 Uhr aktiv.
Wenn mir nachts noch was einfällt erkennt das Motion Auge oben an der Treppe das ich runterwill und soll nicht nur das Licht andimmen sondern auch für sagen wir 10min unscharf schalten.
Kann ich mitten in dieser Szene einfach so den Schlafbefehl setzen, oder muss ich da eine Schleife drumrumbasteln?
Muss ich dazu vorher die Szene der Aktivierung ab 23 Uhr anhalten, damit das nicht kollidiert?
Oder trage ich Bewegungsauslösung/Schlafbefehl/Neuaktivierung gleich als ElseIf direkt in die Szene der Aktivierung ab 23 Uhr ein?
Oder besser in die Szene der Lichtsteuerung rein?
Fragen über Fragen.
Ich freu mich schon auf eure Antworten und wieder etwas mehr zu lernen.

Hi,

ich würde eine eigene Szene machen. Die Szene musst du nicht anhalten, da die Szene um 23 Uhr die devices scharf stellt und um 6 Uhr morgens wieder entschärft. Was in der Zwischenzeit passiert, macht keine Änderung.

Das heißt, eine Szene, welche alles disarmed, wenn der MotionSensor zwischen 23 & 6 Uhr auslöst. Dann 10 Minuten warten und wieder armen.

Gruß

Ach doch so einfach. Das bekomm ich hin. Ich danke Dir Boomx für Deinen großartigen Support hier.

Danke :slight_smile: Mach ich gerne.

Nochmal nachgefragt… Ich habe das jetzt mangels Wissen auf Basis einer Blockszene in LUA gewandelt und umgearbeitet.
Warum macht die Automatik so ein Doppelmoppel? Wenn das einer von euch Profis von Hand programmiert sieht das immer viel sauberer aus.
Hier taucht das im Code immer 2x auf. Einmal für den Bewegungstrigger und einmal für den Autostart Trigger.
Vielleicht kann mal jemand posten wie das sauber auszusehen hat.
Ich habe übrigend die Zeit auf >= 23:00 und <= 6:00 gesetzt. Ist im Code schlecht zu sehen.

--[[
%% autostart
%% properties
21 value
%% globals
--]]

local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
 ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) >= "23:00") )
and
 ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) <= "06:00") )
and
 ( tonumber(fibaro:getValue(21, "value")) > 0 )
)
then
	fibaro:call(15, "setArmed", "0");
    fibaro:sleep(10*60000);
    fibaro:call(15, "setArmed", "1");
end

setTimeout(tempFunc, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
tempFunc()
else

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
 ( (currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) )
and
 ( (currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) )
and
 ( tonumber(fibaro:getValue(21, "value")) > 0 )
or
startSource["type"] == "other"
)
then
	fibaro:call(15, "setArmed", "0");
    fibaro:sleep(10*60000);
    fibaro:call(15, "setArmed", "1");
end

end