Hallo zusammen
Wer kann mir einen Input geben, was ich in der untenstehenden Szene ergänzen muss damit der Name des Motion Melders der getriggert hat im Debug ausegeben wird?
Vielen Dank…
--[[
%% 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("steelblue",("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
zeit = os.time();
timer = os.time();
fibaro:debug("------------------------------------------------------------------------------------------");
Debug("white",("Erneute Bewegung erkannt!"));
Debug("cyan",("Timer wird zurückgesetzt..."));
Debug("steelblue",(os.date("Es ist %H:%M Uhr, ohne weitere Aktivität wird die Variable *AnwesenheitsCheck*")));
--Debug("steelblue",(os.date("in " ..starttimer /60 .. " Minuten auf ABWESENHEIT geschaltet!")));
Debug("steelblue",(os.date("um %H:%M Uhr auf ABWESENHEIT geschaltet!",starttimer+zeit)))
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("steelblue",("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("steelblue","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