Hallo zusammen,
Habe eine Szene geschrieben die mir jeden Tag den Alarm automatisch scharf- bzw. unscharf schaltet (klappt sehr gut.) Sollte mal jemand früher zur Arbeit gehen müssen als 05.30 Uhr (ab dieser Zeit schaltet der Alarm auf unscharf) und vergisst den Alarm manuel zu deaktivieren, habe ich die Nachbarn am Hals. Das dies nicht passiert schrieb ich untenstehende Szene, die per Bewegungsmelder den Alarm vor 05.30 Uhr deaktiviert! Die Szene muss nur von 01:00-05:30 Uhr aktiviert sein, es gelingt mir nicht beide Zeiten nach Mitternacht einzugeben also 0100-0530 das wird vom System nicht akzeptiert. Es muss 2359-0530 eingegeben werden dann klappts. Hat mir jemand eine Lösung warum die Zeiten von/bis nicht beide nach Mitternacht sein dürfen?
Vielen Dank für euren Einsatz, Gruss fastsnake
--[[
%% properties
101 value
134 value
165 value
%% globals
--]]
local scene = 310
local sensors = {101,134,165}
local licht = 128
local handy_willi = 189
local samsung = 196
local nachtstart = 2359 --22:00 = 2200
local nachtende = 0530 -- 07:00 = 0700
local currentDate = os.date("*t");
local sourceTrigger = fibaro:getSourceTrigger();
local startSource = fibaro:getSourceTrigger();
-- Fenster/Tür Kontakte --
local FensterFreisitz = (tonumber(fibaro:getValue(28, "value")) == 0);
local TuereFreisitz = (tonumber(fibaro:getValue(87, "value")) == 0);
local TuereEingang = (tonumber(fibaro:getValue(79, "value")) == 0);
local TuereKeller = (tonumber(fibaro:getValue(118, "value")) == 0);
local FensterWC = (tonumber(fibaro:getValue(201, "value")) == 0);
local FensterKueche = (tonumber(fibaro:getValue(202, "value")) == 0);
-- Lösche doppelte Szene(n)
if (fibaro:countScenes()> 1)
then
--fibaro:debug("Es läuft mehr als eine Instanz");
fibaro:abort();
end
Debug = function ( color, message ) fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span")) 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
-- Alarm ausserhalb der programmierten Zeiten aus (wenn Türen & Fenster geschlossen)
if (fibaro:getSourceTriggerType() == 'property' and getSensorStatus() == 1)
then
if (tonumber(os.date("%H%M")) >= nachtstart or tonumber(os.date("%H%M")) <= nachtende)
then
if not FensterFreisitz or not TuereFreisitz or not TuereEingang or not FensterKueche or not FensterWC or not TuereKeller
and (tonumber(fibaro:getGlobalValue("Alarm")) == tonumber("1"))
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:debug("------------------------------------------------------------------------------------------");
Debug("white",("Mindestens ein Tür- oder Fenstersensor meldet Status OFFEN!"));
Debug("red",("Möglicher Einbruch!!"));
Debug("lime",("Alarm wird NICHT deaktiviert!"));
fibaro:debug("------------------------------------------------------------------------------------------");
fibaro:call(handy_willi, "sendPush",os.date("(%d.%m.%Y) Alarmanlage wird NICHT deaktiviert (Türe- oder Fenster offen)!"));
fibaro:abort();
end
end
end
-- Alarm ausserhalb der programmierten Zeiten aus
if (fibaro:getSourceTriggerType() == 'property' and getSensorStatus() == 1)
then
if (tonumber(os.date("%H%M")) >= nachtstart or tonumber(os.date("%H%M")) <= nachtende)
then
if FensterFreisitz or TuereFreisitz or TuereEingang or FensterKueche or FensterWC or not TuereKeller
and (tonumber(fibaro:getGlobalValue("Alarm")) == tonumber("1"))
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:debug("------------------------------------------------------------------------------------------");
Debug("white",("Bewegung eines Melders (Wohnzimmer) erkannt."));
Debug("lime",("Status (Teilweise Alarm ist scharf gestellt.)"));
Debug("orange",("Automatische Deaktivierung aktiviert..."));
Debug("red",(os.date("Teilweise Überwachung um %H:%M Uhr DEAKTIVIERT!")));
fibaro:debug("------------------------------------------------------------------------------------------");
--fibaro:startScene(146);
fibaro:call(28, "setArmed", "0");
fibaro:call(79, "setArmed", "0");
fibaro:call(87, "setArmed", "0");
fibaro:call(118, "setArmed", "0");
fibaro:call(201, "setArmed", "0");
fibaro:call(202, "setArmed", "0");
fibaro:setGlobal("Alarm", "0");
fibaro:setSceneEnabled(145, false) -- Szene Alarm Beepton
fibaro:call(handy_willi, "sendPush",os.date("(%d.%m.%Y) Alarmanlage ausser Plan um %H:%M Uhr deaktiviert!"));
--fibaro:call(samsung, "sendPush",os.date("Alarm deaktiviert!"));
--Sabotage Sensors
fibaro:call(24, "setArmed", "1");
fibaro:call(27, "setArmed", "1");
fibaro:call(78, "setArmed", "1");
fibaro:call(86, "setArmed", "1");
fibaro:call(89, "setArmed", "1");
fibaro:call(92, "setArmed", "1");
fibaro:call(117, "setArmed", "1");
fibaro:call(115, "turnOn");
fibaro:call(132, "turnOn");
fibaro:sleep(3*1000);
fibaro:call(115, "turnOff");
fibaro:call(132, "turnOff");
end
end
end