Weihnachtsbeleuchtung Bewegung kombinieren

Moin zusammen,
ich habe schon seit Jahren die Weihnachtsbeleuchtungssteuerung im Einsatz.
Die möchte ich nun eigentlich mit der „Bewegung erkannt - Licht an und nach Zähler wieder aus, wenn keine neue Bewegung erkannt wurde“ kombinieren.
Hätte da jemand einen Vorschlag wie man das vermischen könnte?
Ich möchte damit eigentlich erreichen, das wenn der Bewegungssensor eine Bewegung entdeckt, in einer bestimmten Zeit, also ab bspw. Sonnenuntergang bis 23 Uhr die Gartenbeleuchtung eingeschaltet wird und dann über Nacht ausbleibt, aber morgens ab einer gewissen Zeit die Bewegungserkennung wieder aktiviert wird, und ab Sonnenaufgang, die Szene zum ruhen kommt und die Gartenbeleuchtung ausbleibt, wenn eine Bewegung erkannt wird.

Weihnachtsbeleuchtung:

--[[
%% properties
%% autostart
%% globals
--]]
 
--Script schaltet die Relais für die Weihnachtsbeleuchtung morgens in der Früh an, 
--mit einer zeitlichen Verzögerung nach Sonnenaufgang ab und Nachmittags kurz vor 
--Sonnenuntergang wieder ein und in der Nacht wieder aus.
 
fibaro:debug('Erstmalig gestartet')
 
local sourceTrigger = fibaro:getSourceTrigger();
local version = '1.0';
fibaro:debug('XMasTime-Controller (Ver.' .. version .. ')');
function varTime() 
 
local morning  = {4, 00}; -- HH:MM für Lichter An morgens in der früh
local night  = {23, 50}; -- HH:MM für Lichter Aus in der Nacht
local vorher = 40 -- 40 Minuten vor Sonnenuntergang angehen
local nachher = 40 -- 40 Minuten Verzögerung nach Sonnenaufgang zum ausgehen
local switches = {335}; -- ID der Switches, 
  
---------------------------------------------------------------------------
local SunSet = fibaro:getValue(1, "sunsetHour")
--fibaro:debug('Sonne geht unter: ' ..SunSet);
local Sunrise = fibaro:getValue(1, "sunriseHour")
--fibaro:debug('Sonne geht auf: ' ..Sunrise);
---------------------------------------------------------------------------
if fibaro:countScenes() > 1 then
  fibaro:debug("stop scene");
  fibaro:abort();
end
local morning = os.date("%H:%M", -3600+ morning[1]*60*60 + morning[2]*60);
local night = os.date("%H:%M", -3600+ night[1]*60*60 + night[2]*60);
local ostime = os.date("%H:%M", os.time());
 
--fibaro:debug('Funktion gestartet')
  
-- Licht AN 
--in der Früh
if ostime == morning then
    for i = 1,#switches do
fibaro:call(switches[i],"turnOn")
fibaro:debug("Aktuelle Dev ID: "..switches[i])
end
    fibaro:debug("Licht in der Früh an........");
    --Am Nachmittag
elseif os.date("%H:%M", os.time()+vorher*60) == SunSet   -- 20 Minuten vor Sonnenuntergang
    then 
local Count = 0
for Index, Value in pairs( switches ) do
Count = Count + 1
fibaro:debug("Aktuelle Dev ID: "..switches[Count])
fibaro:call(switches[Count], "turnOn") 
end
    fibaro:debug("Licht am Nachmittag an........");
  
--Licht AUS
    --am Vormittag 
elseif ostime == Sunrise
    then
fibaro:sleep(nachher*60*1000) -- 20 Minuten Verzögerung
    local Count = 0
for Index, Value in pairs( switches ) do
Count = Count + 1
fibaro:debug("Aktuelle Dev ID: "..switches[Count])
fibaro:call(switches[Count], "turnOff") 
end
    fibaro:debug("Licht Vormittags aus........");
 
    --In der Nacht
elseif ostime == night then
local Count = 0
for Index, Value in pairs( switches ) do
Count = Count + 1
fibaro:debug("Aktuelle Dev ID: "..switches[Count])
fibaro:call(switches[Count], "turnOff") 
end
    fibaro:debug("Licht in der Nacht aus.......");
else
--fibaro:debug("No action");
end
   
setTimeout(varTime, 60*1000)
end
 
if (sourceTrigger["type"] == "autostart") 
then varTime()
--fibaro:debug("Type Autostart"); 
end

Zeitsteuerung:

%% properties 
338 value
335 value
%% globals 
--]]
-- VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
local scene = 65 -- ID dieser Szene
local motion = 338 -- ID des Bewegungssensors
local switch = 335 -- 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(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(switch, "turnOff");
 fibaro:debug("Timer abgelaufen/Schalte Licht aus");
 fibaro:killScenes(scene); 
end

Nicht wundern warum die 335 in beiden ist. Das ist der Switch der derzeit noch in der Weihnachtsbeleuchtung drin ist. Die neue Zeitsteuerung habe ich bereits angelegt, aber noch nicht eingeschaltet.

Oder andere Herangehensweise.
Kann Szene Weihnachtsbeleuchtung nicht in Zeile 22 mittels local scene = {65}; – ID der Szene Zeitsteuerung
die Zeitsteuerungsszene aktiviert werden, damit nicht den ganzen Tag bei einer Bewegung die Zeitsteuerungsszene startet?

Mit Local Scene hat es wie ich schon vermutet hatte nicht geklappt.
Hatte eben dann noch versucht mit einer Blockszene, die schaut welche Helligkeit auf der Terasse ist, zu beginnen und die Timerszene zu integrieren. Bei der wird aber leider erst am Ende geprüft welche Bedingungen erfüllt sind und dann erst schalte den Switch ein. Deshalb hat das auch leider nicht geklappt.