Fenster Kontakte überwachen

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

Hallo AlexM,
vielen Dank für das Script, es funktioniert super. :slight_smile:
Ich habe es zu verschiedenen Zeiten laufen und hoffe natürlich das es nie ausgelöst wird.

Gruss
Carsten