Hallo Forum,
hier ein kleines Script mit dem man die Fenster Kontakte in einen bestimmten Zeitraum überwacht.
Sollte in dem Zeitraum einer der Kontakte auslösen wird man per Email und Push über die Zustandsveränderung informiert.
Das Script kann in den einzelnen Bedingungen auch noch erweitert werden das dann das Licht im Raum angeht usw.
Viel Spaß beim testen und bitte berichten.
Gruß Alex
Kurze Erläuterung der zumachenden Angaben im Script und anschließend das Script.
Im Header die Fenster Kontakte als Trigger hinterlegen.
--[[
%% properties
--Hier die ID der Fenster Kontakte eintragen die als trigger dienen sollen.
ID value -- FensterK1
ID value -- FensterK2
ID value -- FensterK3
%% globals
--]]
ID des Benutzers eintragen der per Email oder per Push informiert werden soll.
-- Benutzer ID --
local UserEmail = ID; -- Email
local UserHandy = ID; -- Handy ID
ID der Fenster Kontakte eintragen
-- Fenster Kontakte --
local FensterK1 = (tonumber(fibaro:getValue(ID, "value")) > 0);
local FensterK2 = (tonumber(fibaro:getValue(ID, "value")) > 0);
local FensterK3 = (tonumber(fibaro:getValue(ID, "value")) > 0);
Zeiteintrag bearbeiten, in dem Fall von 22:00 Uhr bis 06:00 Uhr, wenn gewünscht die Zeiten einfach ändern.
(tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "22", "00")) and
tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "23", "59"))) or
(tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "00", "00")) and
tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "06", "00")))
Hier kann der Text bzgl. der Fenster geändert werden mit dem man informiert wird.
if (FensterK1)
then
fibaro:call(UserEmail, "sendMail", "Fenster im Raum ?? wurde unerlaubt geöffnet");
fibaro:call(UserHandy, "sendPush", "Fenster im Raum ?? wurde unerlaubt geöffnet");
fibaro:debug('Fenster Kontakt im Raum ?? hat ausgelöst');
Weitere Fenster Kontakte können ohne Probleme hinzugefügt werden indem alles um zb. FensterK4 erweitert wird.
So nun das gesamte Script:
--[[
%% properties
--Hier die ID der Fenster Kontakte eintragen die als trigger dienen sollen.
ID value -- FensterK1
ID value -- FensterK2
ID value -- FensterK3
%% globals
--]]
-- Benutzer ID --
local UserEmail = ID; -- Email
local UserHandy = ID; -- Handy ID
-- Fenster Kontakte --
local FensterK1 = (tonumber(fibaro:getValue(ID, "value")) > 0);
local FensterK2 = (tonumber(fibaro:getValue(ID, "value")) > 0);
local FensterK3 = (tonumber(fibaro:getValue(ID, "value")) > 0);
-- Zeitsteuerung -- ab 22:00 Uhr bis 06:00 Uhr --
if ( (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "22", "00")) and
tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "23", "59"))) or
(tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "00", "00")) and
tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "06", "00"))))
then
if (FensterK1)
then
fibaro:call(UserEmail, "sendMail", "Fenster im Raum ?? wurde unerlaubt geöffnet");
fibaro:call(UserHandy, "sendPush", "Fenster im Raum ?? wurde unerlaubt geöffnet");
fibaro:debug('Fenster Kontakt im Raum ?? hat ausgelöst');
elseif (FensterK2)
then
fibaro:call(UserEmail, "sendMail", "Fenster im Raum ?? wurde unerlaubt geöffnet");
fibaro:call(UserHandy, "sendPush", "Fenster im Raum ?? wurde unerlaubt geöffnet");
fibaro:debug('Fenster Kontakt im Raum ?? hat ausgelöst');
elseif (FensterK3)
then
fibaro:call(UserEmail, "sendMail", "Fenster im Raum ?? wurde unerlaubt geöffnet");
fibaro:call(UserHandy, "sendPush", "Fenster im Raum ?? wurde unerlaubt geöffnet");
fibaro:debug('Fenster Kontakt im Raum ?? hat ausgelöst');
end
end