Abwesenheit

Hallo zusammen
Meine Szene “Abwesenheit” funktioniert soweit prima, dennoch möchte ich ein kleines Detail ergänzen, das ich einfach nicht hinkriege!
Wie im angehängten Skript ersichtlich wird die Variable “Abwesenheit” nach Ablauf des Timers also nach 30 Minuten aktiviert.
Gerne möchte ich die Zeit im Debug angezeigt haben wo der Timer effektiv abgelaufen ist.
Beispiel:
Es ist 14:00 Uhr, nach 30 Minuten also um 14:30 Uhr wird die Variable umgeschaltet!
Bin für jede Hilfe dankbar!!
Gruss fastsnake

--[[
%% properties
101 value
134 value
165 value
182 value
%% globals
--]]
 
-----------------------------------------------------------------------------------------------------------------------------------------
local scene = 324
local sensors = {101,134,165,182}
local licht = 128
local tv_licht = 14
local handy_willi = 189
local currentDate = os.date("*t");
-------------------------------------------- 
local start = 0600
local ende = 2100
local starttimer = 1800 --Sekunden
 
local sourceTrigger = fibaro:getSourceTrigger();
-----------------------------------------------------------------------------------------------------------------------------------------
-- Zeit 1500 = 15:00 
---------------------Script-----------------
    Debug = function ( color, message ) fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span")) end

if  (fibaro:countScenes()> 1) 
  
then
	--fibaro:debug("Es läuft mehr als eine Instanz");
	fibaro:abort();
end

    function getSensorStatus()  
    for i,n in ipairs(sensors) do
if  (tonumber(fibaro:getValue(n, "value")) > 0) then
return 1;
end
end
return 0;
end

    -- TV Simulator aus bei Anwesenheit
    ------------------------------------------------------------------------------------------------------------

if  (fibaro:getSourceTriggerType() == 'property' and getSensorStatus() == 1)
  
then
if  tonumber(fibaro:getValue(tv_licht, "value")) > 0
 
then
    function DT(DATETIME)
    local WD = {'Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'}
    local M = {'Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'}
    local tableDT= (os.date('*t', tonumber(DATETIME))) 
    tableDT.month = M[tonumber(tableDT.month)]
    tableDT.wday =  WD[tonumber(tableDT.wday)]
    return ""..tableDT.wday ..', ' ..tableDT.day ..'. ' ..tableDT.month ..' ' ..tableDT.year ..' '..os.date " / %H:%M Uhr" 
    end 
    x= DT(os.date())
    fibaro:debug (x) 
  
    fibaro:call(tv_licht, "turnOff"); -- TV Simulator ausgeschaltet
    --fibaro:debug("------------------------------------------------------------------------------------------"); 
    Debug("yellow",("TV Simulator ist noch eingeschaltet!"));
    Debug("lime",(os.date("TV Simulator ausgeschaltet!")));
    fibaro:debug("------------------------------------------------------------------------------------------"); 
end
 end

    -- Variable auf ABWESENHEIT vorgefunden

if  (fibaro:getSourceTriggerType() == 'property' and getSensorStatus() == 1)
  
then  
if  fibaro:getGlobalValue("AnwesenheitsCheck") == "Abwesend" 
    
then 
    function DT(DATETIME)
    local WD = {'Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'}
    local M = {'Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'}
    local tableDT= (os.date('*t', tonumber(DATETIME))) 
    tableDT.month = M[tonumber(tableDT.month)]
    tableDT.wday =  WD[tonumber(tableDT.wday)]
    return ""..tableDT.wday ..', ' ..tableDT.day ..'. ' ..tableDT.month ..' ' ..tableDT.year ..' '..os.date " / %H:%M Uhr" 
    end 
    x= DT(os.date())
    fibaro:debug (x)     
    Debug("white",("Bewegung erkannt..."));
    Debug("red",("Variable *AnwesenheitsCheck* auf ABWESEND vorgefunden!"));
    Debug("lime",("Variable auf ANWESEND geschaltet..!"));
    fibaro:setGlobal("AnwesenheitsCheck", "Anwesend")

  
elseif 
  
    -- BM Schalte Abwesenheit ein/aus

    (fibaro:getSourceTriggerType() == 'property' and getSensorStatus() == 1)
  
then  
if  (tonumber(os.date("%H%M")) >= start and tonumber(os.date("%H%M")) <= ende)
  
then 
    function DT(DATETIME)
    local WD = {'Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'}
    local M = {'Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'}
    local tableDT= (os.date('*t', tonumber(DATETIME))) 
    tableDT.month = M[tonumber(tableDT.month)]
    tableDT.wday =  WD[tonumber(tableDT.wday)]
    return ""..tableDT.wday ..', ' ..tableDT.day ..'. ' ..tableDT.month ..' ' ..tableDT.year ..' '..os.date " / %H:%M Uhr" 
    end 
    x= DT(os.date())
    fibaro:debug (x) 
 	--ibaro:debug("------------------------------------------------------------------------------------------"); 
    Debug("white",("Bewegung erkannt..."));
    Debug("cyan",(starttimer /60 .. " Minuten Timer aktiviert..."));
    fibaro:debug("------------------------------------------------------------------------------------------");         

    timer = os.time();
	while os.time() - timer < starttimer do
    fibaro:sleep(1000);

      
    -- Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
    
if  (fibaro:getSourceTriggerType() == 'property' and getSensorStatus() == 1)
      
then 
if  (tonumber(os.date("%H%M")) >= start and tonumber(os.date("%H%M")) <= ende)

then         
    timer = os.time();
    fibaro:debug("------------------------------------------------------------------------------------------");         
    Debug("white",("Erneute Bewegung erkannt!"));
    Debug("cyan",("Timer wird zurückgesetzt..."));
    Debug("orange",(os.date("Es ist %H:%M Uhr, ohne weitere Aktivität wird die Variable *AnwesenheitsCheck*")));
    Debug("orange",(os.date("in " ..starttimer /60 .. " Minuten auf ABWESENHEIT geschaltet!")));  
    fibaro:debug("------------------------------------------------------------------------------------------");         
end
 end
  end
   end
    
    -- Schalte Variable um, wenn Timer vollständig abgelaufen ist

if  (tonumber(os.date("%H%M")) >= start and tonumber(os.date("%H%M")) <= ende)         
      
then
    function DT(DATETIME)
    local WD = {'Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'}
    local M = {'Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'}
    local tableDT= (os.date('*t', tonumber(DATETIME))) 
    tableDT.month = M[tonumber(tableDT.month)]
    tableDT.wday =  WD[tonumber(tableDT.wday)]
    return ""..tableDT.wday ..', ' ..tableDT.day ..'. ' ..tableDT.month ..' ' ..tableDT.year ..' '..os.date " / %H:%M Uhr" 
    end 
    x= DT(os.date())
    fibaro:debug (x) 
      
    fibaro:setGlobal("AnwesenheitsCheck", "Abwesend")
    --fibaro:debug("------------------------------------------------------------------------------------------");         
    Debug("cyan",(os.date("" ..starttimer /60 .. " Minuten Timer ist abgelaufen!")));      
    Debug("red",("Variable auf ABWESEND geschaltet!"));
    Debug("orange",("Szene angehalten..."));
    fibaro:debug("------------------------------------------------------------------------------------------");         
    fibaro:abort();

else
      
    function DT(DATETIME)
    local WD = {'Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'}
    local M = {'Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'}
    local tableDT= (os.date('*t', tonumber(DATETIME))) 
    tableDT.month = M[tonumber(tableDT.month)]
    tableDT.wday =  WD[tonumber(tableDT.wday)]
    return ""..tableDT.wday ..', ' ..tableDT.day ..'. ' ..tableDT.month ..' ' ..tableDT.year ..' '..os.date " / %H:%M Uhr" 
    end     
    x= DT(os.date())
    fibaro:debug (x) 
    
    --fibaro:debug("------------------------------------------------------------------------------------------");      
    --Debug("white",(os.date("Es ist der (%d.%m.%Y) %H:%M Uhr.")));
    Debug("orange",("Abwesenheit wird von 06.00 Uhr bis 21.00 Uhr überwacht...!"))
    Debug("red",("Innerhalb der Zeitbeschränkung, Abwesenheit wird NICHT aktiviert!"))
    fibaro:debug("------------------------------------------------------------------------------------------");      
  
end
 end
  end

if  (sourceTrigger["type"] == "other") 

then
if  fibaro:getGlobalValue("AnwesenheitsCheck") == "Anwesend"   
  
then
    fibaro:setGlobal("AnwesenheitsCheck", "Abwesend")
    fibaro:debug("------------------------------------------------------------------------------------------");      
    Debug("red","Variable *AnwesenheitsCheck* auf ABWESEND geschaltet!")
    fibaro:debug("------------------------------------------------------------------------------------------");      
  
elseif
    
    fibaro:getGlobalValue("AnwesenheitsCheck") == "Abwesend" 
    
then
    fibaro:setGlobal("AnwesenheitsCheck", "Anwesend")
    fibaro:debug("------------------------------------------------------------------------------------------");      
    Debug("lime","Variable *AnwesenheitsCheck* auf ANWESEND geschaltet!")
    fibaro:debug("------------------------------------------------------------------------------------------");      
end
 end
  

Falscher Thread, sorry!!