shortc-button

Alarmanlage: Benachrichtigung über den Status der Fenster erhalten – Videoreihe Alarmanlage – Teil 5

Im heutigen Tutorial zu unserer Videoreihe erfährst Du, wie man den Status der Fenster überwachen kann. Dafür werden wir Szenen im Fibaro Home Center erstellen, sodass man über RGBW-Stripes oder eine Push-Mitteilung den Status mitgeteilt bekommt.

Info

Dieser Beitrag ist Teil unserer Videoreihe zur Smart Home Alarmanlage. Im vorherigen Beitrag haben wir gezeigt, wie man die Alarmanlage mit Z-Wave Geräte scharf schalten kann.

Unsere Videoreihe geht weiter. Du hast bisher schon bei uns gelernt, wie man eine Struktur für die Alarmanlage erstellt in Form eines virtuellen Moduls sowie auch physische Geräte zum scharf Schalten des Alarmsystems verwenden kann. Heute geht es darum, was passiert, sobald die Alarmanlage aktiviert ist. Das umfasst vor allem die Benachrichtigung darüber, ob die Fenster offen oder geschlossen sind. Entsprechend werden wir im heutigen Tutorial auf verschiedenen Wegen den Status der Fenster überprüfen. Wir werden die Benachrichtigung nicht nur über Push-Mitteilungen fürs Smartphone einrichten, sondern auch über farbliche Meldungen mit einem RGBW-Stripe, eine Sirene oder Alexa Text-to-Speech. Am Ende soll man als Smart Home-Nutzer eine Information darüber erhalten, welches Fenster in welchem Raum geöffnet ist, sodass man darauf reagieren kann.

Info

Wir werden die Umsetzung der Status-Mitteilungen sowohl über grafische als auch über LUA Szenen realisieren. Dabei gibt es jedoch zwei Unterschiede. Grafische Szene sind zwar deutlich einfacher und können schnell angelegt werden, LUA Szenen hingegen haben einen größeren Funktionsumfang. Mit diesen kann man genau sagen, welches Fenster genau geöffnet ist und den dazugehörigen Raum über eine Benachrichtigung anzeigen lassen. Über grafische Szenen lässt sich dagegen nur sagen, ob ein Fenster geöffnet ist.

Grafische Szenen für den Status der Fenster einrichten

Beginnen wollen wir mit zwei grafischen Szenen. Eine Szene soll den allgemeinen Status der Fenster überprüfen, ob diese geschlossen sind. Die zweite Szene wird danach entsprechend reagieren, sobald ein Fenster noch offen ist.

1. Als erstes müssen wir eine neue, grafische Szene im Fibaro Home Center über „Szenen“ – „Lösche oder Füge Gerät hinzu“ anlegen.

2. Innerhalb der Szene wählen wir zunächst in der Wenn-Bedingung unsere globale Variable für den Status der Alarmanlage aus („alarmanlage_status“) und setzen den Wert auf „1“. Immerhin soll die Szene immer dann auslösen, sobald die Alarmanlage aktiviert wird.

3. Da wir überprüfen wollen, ob alle Fenster geschlossen sind, müssen wir unsere dafür notwendigen Fenstersensoren ansprechen. Wir wählen also als nächstes eine „Und“-Bedingung aus und fügen als Modulgruppe die Fenstersensoren hinzu. Außerdem stellen wir diese auf „gesichert“ ein.

4. Als nächstes fügt man die Dann-Bedingung hinzu. Hier kann man nun festlegen, inwiefern der Status der geschlossenen Fenster übermittelt werden soll. Dabei können viele Möglichkeiten umgesetzt werden. Wir nutzen beispielsweise das Fibaro RGB-Modul, um  RGBW-Stripes grün aufleuchten zu lassen. Um das umzusetzen, wählen wir das passende Modul aus und setzen die Aktion auf „Farbe einstellen“. Als Wert kann man nun 255 eingeben, damit der RGBW-Stripe grün aufleuchtet, sobald die Fenster alle geschlossen sind. Die anderen Werte bleiben bei „0“.

Wichtig ist, dass man hier noch eine “Und”-Bedingung hinzufügt, damit der RGBW-Stripe am Ende auch wieder ausgeht. Dafür fügt man das Modul innerhalb der Bedingung neu hinzu, wählt als Aktion “ausschalten” aus und einen Zeitraum, nach dem das Licht wieder ausgehen soll.

5. Außerdem müssen am Ende nach dem Speichern noch die überflüssigen Trigger entfernt werden. Nur die Variable für den Status der Alarmanlage soll getriggert werden. Anschließend funktioniert die Szene auch schon.

Benachrichtigung über geschlossene Fenster

Es wäre auch möglich, eine Benachrichtigung zu erhalten, dass alle Fenster geschlossen sind. Wir empfehlen diese Vorgehensweise zwar nur bei nicht geschlossenen Fenstern, aber möglich wäre dieser Schritt dennoch.

Möchtest Du solch eine Benachrichtigung umsetzen, geht dies wie folgt:

1. Klicke in Deinem Home Center auf „Steuerungen“ – „Benachrichtigungssteuerung“ und lege dort eine neue Benachrichtigung an. Du kannst einen passenden Text auswählen wie beispielsweise „Alle Fenster sind geschlossen“. Nach dem Speichern muss die Benachrichtigungsoption noch in unserer Szene ergänzt werden.

2. Füge innerhalb der grafischen Szene also noch eine weitere „Und“-Bedingung hinzu und wähle die entsprechende Benachrichtigungsfunktion aus. Hier kann man sich z.B. eine Push-Nachricht aufs Smartphone schicken lassen.

Grafische Szene über den Status geöffneter Fenster

Wir wollen nun noch die zweite grafische Szene erstellen, die mitteilen soll, sobald ein Fenster noch geöffnet ist. Diese Mitteilung soll über den RGBW-Stripe in rot signalisiert werden. Außerdem wollen wir uns eine Benachrichtigung darüber schicken lassen.

1. Dafür legen wir erneut eine neue Szene an, geben dieser einen Namen und fügen ein Icon hinzu.

2. In der Wenn-Bedingung fügen wir als Trigger unsere Variable „alarmanlage_status“ hinzu.

3. Danach folgt eine „Und-Bedingung“. Hier legen wir das erste Fenster fest und stellen die Aktion auf „ausgelöst“ ein, um zu sagen, dass das Fenster geöffnet ist.

4. Auch die anderen Fenster müssen alle zur Szene hinzugefügt werden. Über „Oder-Bedingungen“ fügen wir diese alle einzeln hinzu.

5. Sind anschließend alle Module in die Szene integriert worden, kann man als nächstes in der „Dann-Bedingung“ den RGBW-Stripe auswählen. Hier wieder als Aktion „Farbe einstellen“ auswählen und den Wert „255“ für die Farbe rot eintragen. Die anderen beiden Werte bleiben bei „0“.

6. Wie schon zuvor müssen wir auch hier innerhalb der „Benachrichtigungssteuerung“ den passenden Text einfügen, um eine Benachrichtigung über den Status zu erhalten. Dabei kann man als Text beispielsweise eingeben: „Es sind noch Fenster geöffnet“. Danach alles speichern und die Szene aktualisieren.

7. Nun kann in einer „Und-Bedingung“ die Benachrichtigung in Form einer Push-Mitteilung aufs eigene Smartphone ausgewählt werden.

8. Auch der RGBW-Stripe muss wieder ausgeschaltet sowie die überflüssigen Trigger entfernt werden – wie wir es in der ersten Szene auch getan haben. Die Szene sollte danach funktionieren.

LUA Szene über den Status der Fenster

Wie Du grafische Szenen nutzt, um den Status der Fenster zu ermitteln, hast Du nun gelernt. Man kann aber auch eine LUA Szene dafür nutzen. Dies ist allgemein auch sinnvoller, da man hier langfristig mehr von hat und es einfacher ist auch in Zukunft Änderungen vorzunehmen.

1. Um die LUA Szene zu erstellen, kannst Du einfach in Deinem Home Center 2 innerhalb der grafischen Szene ganz unten bei “Umschalten auf LUA basierte Szenenbearbeitung” auf “ändern” klicken und diese einschalten.

2. Füge anschließend den nachfolgenden Code in die Szene ein:

--[[
%% autostart
%% properties
%% weather
%% events
%% globals
alarmanlage_status
--]]
 
local startSource = fibaro:getSourceTrigger();
local alarmanlage_status = tonumber(fibaro:getGlobalValue("alarmanlage_status"));
 
local device_ids_zone_1 = {708,29,415,858,878};
local device_ids_zone_2 = {48,51,466,867};
local error_zone_1 = false;
local error_zone_2 = false;
 
 
 
 
fibaro:debug('Scene wurde gestartet');
 
if (alarmanlage_status  == 1 )
then
 
  fibaro:debug('Alarmanlage aktiviert starte prüfung Fenster & Türen');
 
 
 
 
  for i, device_id in pairs( device_ids_zone_1 ) do
    if(tonumber(fibaro:getValue(device_id,'value')) == 0)
    then
      --fibaro:debug("Zone 1: Fenster Sensor: "..device_id.." Name: " .. fibaro:getName(device_id).." im Raum "..fibaro:getRoomName( fibaro:getRoomID(device_id) ).." ist geschlossen")
    else
      error_zone_1 = ''..fibaro:getRoomName( fibaro:getRoomID(device_id) )..',';
      fibaro:debug("Zone 1: Fenster Sensor: "..device_id.." Name: " .. fibaro:getName(device_id).." im Raum "..fibaro:getRoomName( fibaro:getRoomID(device_id) ).." ist geöffnet!!")
    end
  end
 
 
 
 
  for i, device_id in pairs( device_ids_zone_2 ) do
 
    if(tonumber(fibaro:getValue(device_id,'value')) == 0)
    then
      --fibaro:debug("Fenster Sensor: "..device_id.." Name: " .. fibaro:getName(device_id).." im Raum "..fibaro:getRoomName( fibaro:getRoomID(device_id) ).." ist geschlossen");
    else
      error_zone_2 = ''..fibaro:getRoomName( fibaro:getRoomID(device_id) )..',';
      fibaro:debug("Fenster Sensor: "..device_id.." Name: " .. fibaro:getName(device_id).." im Raum "..fibaro:getRoomName( fibaro:getRoomID(device_id) ).." ist geöffnet!")
    end
  end
 
  if(error_zone_1 == false and  error_zone_2 == false)
  then
    fibaro:debug('Alle Fenster sind geschlossen');
 
    -- RGBW auf Grün setzen!
    fibaro:call(579, "setBrightness", 100);
    fibaro:call(579, "setColor", 0,255,0,0);
    fibaro:call(579,'turnOn');
   
    -- Push Meldung alles okay
    fibaro:call(495, "sendPush", "Alle Fenster sind geschlossen");  
   
        fibaro:setGlobal('tts_alexa_device', 'office');
        fibaro:setGlobal('tts_alexa_text', 'Alle Fenster sind geschlossen');
        fibaro:startScene(117);        
 
  else
    fibaro:debug('Es sind Fenster geöffnet!');
   
 
   
        fibaro:setGlobal('tts_alexa_device', 'office');
        fibaro:setGlobal('tts_alexa_text', 'Folgende fenster sind geöffnet: '..error_zone_1..' '..error_zone_2..'');
        fibaro:startScene(117);      
   
    if(error_zone_1 ~= false)
    then
 
     
   
      -- RGBW auf Rot setzen!
      fibaro:call(579, "setBrightness", 100);
      fibaro:call(579, "setColor", 255,0,0,0);
      fibaro:call(579,'turnOn');
     
    -- Push Meldung Zone 1
    fibaro:call(495, "sendPush", 'Zone1: '..error_zone_1..'');  
     
 
 
    end
 
    if(error_zone_2 ~= false)
    then
      fibaro:debug('Ein Fenster in Zone2  ist offen');
       -- Push Meldung Zone 1
      fibaro:call(495, "sendPush", 'Zone2: '..error_zone_2..'');  
     
      if(error_zone_1 == false)
      then
        -- RGBW auf Geld setzten
        fibaro:call(579, "setBrightness", 110);
        fibaro:call(579, "setColor", 242,210,0,0);
        fibaro:call(579,'turnOn');
      end
 
    end
 
       
     
 
  end
 
 
  fibaro:sleep(10*1000);
  fibaro:call(579,'turnOff');
 
 
 
else
  fibaro:debug('nichts machen Alarm wurde deaktviert');
end

Nun müssen in der Szene noch ein paar Änderungen vorgenommen werden:

Nach dem Speichern funktioniert die Szene auch schon. Diese wird anschließend nach der Aktivierung der Alarmanlage über die RGBW-Stripes den Status der Fenster in unterschiedlichen Farben übermitteln. Wir haben dafür die Farbe rot gewählt, sobald ein Fenster im Erdgeschoss geöffnet ist, gelb für geöffnete Fenster im Obergeschoss und grün, sobald alle Fenster geschlossen sind. Außerdem erhält man eine Push-Nachricht auf sein Smartphone.

Diese Funktionsweise hat sich bei uns schon sehr bewährt und funktioniert sehr gut. Zudem kann man auch eine Statusmitteilung über Alexa Text-to-Speech umsetzen. Wie das funktioniert, haben wir bereits detailliert in einem separaten Tutorial über Alexa TTS erklärt. Den LUA Code aus dem Tutorial kannst Du einfach in die aktuelle Szene einfügen und nur das passende Device eingeben sowie den Text ändern.

Tipp

Weitere Erklärungen zu den einzelnen Schritten und der LUA Szene findest Du im Video!

Mithilfe der erstellen Szenen wirst Du nun immer darüber informiert, ob nach der Aktivierung der Alarmanlage auch der Status der Fenster in Ordnung ist. Sollte ein Fenster doch geöffnet sein, erhälst Du die entsprechenden Benachrichtigungen und kannst diesen Zustand beheben.

Info

Im nächsten Tutorial zu dieser Videoreihe werden wir zeigen, warum wir kein Alarmpanel nutzen und unsere Sensoren nicht auf scharf geschaltet sind.
Die mobile Version verlassen