Eine Nachricht, wenn jemand ums Haus schleicht
Auf dieser Seite
Haus und Hof gegen Eindringlinge zu sichern, ist ein regelmäßiges Thema „zum Beginn der dunklen Jahreszeit“. Auch die üblichen Elektronikversender verkaufen mit der Angst vor dem Einbruch gern Sicherheitstechnik in Form von Alarmanlagen und Videoüberwachung. So ist es kein Wunder, dass man irgendwann auf die Idee kommt, die CCU als Alarmzentrale einzusetzen.
Das hier vorgestellte Programm ist dabei nur ein winziger Teil einer Alarmanlage. Es geht mehr um die Lösung eines generellen Problems: Wie muss ein Programm aussehen, das auch bei mehreren Ereignissen nur einmal irgendwas tut?
Benennung von Systemvariablen
Prinzipiell kann man Systemvariablen – so wie allen Objekten in der CCU – beliebige Namen geben, also z. B. auch Umlaute und Sonderzeichen verwenden. Ich empfehle jedoch, sich auf reguläre Buchstaben (a-z, A-Z) zu beschränken: Bei Umlauten und Sonderzeichen besteht die Gefahr, dass Systemvariablen in Scripten nicht überall gefunden werden.
Das ist mein Haus. Von oben.
An den rot markierten Stellen befinden sich Bewegungsmelder – in erster Linie zu Komfortzwecken, um die Außenbeleuchtung zu schalten, aber man kann sie natürlich auch für allerlei andere Dinge einsetzen.
Wer tatsächlich eine Alarmanlage plant, sollte sorgfältig über Position und Ausrichtung von Bewegungsmeldern nachdenken. Natürlich aus offensichtlichen Gründen wie Sabotageschutz, aber auch zur Vermeidung von Fehlalarmen.
Ich habe meine Bewegungsmelder so platziert, dass ihre Erfassungsbereiche sich überlappen. Damit ist sichergestellt, dass man den nicht einsehbaren Teil des Außenbereichs nur erreichen kann, nachdem man mindestens zwei Bewegungsmelder ausgelöst hat.
Der Plan ist folgender:
Der gemeinsame Faktor bei der Bewegungserkennung ist offensichtlich der Bewegungsmelder an der Seite des Hauses (am Schuppen). Das Programm sieht daher so aus:
Bei Anwesenheit passiert gar nichts, denn in 9 von 10 Fällen bin ich es dann selbst, der ums Haus schleicht. Im zehnten Fall sehe ich den Schleicher durchs Fenster.
Bei Abwesenheit bekomme ich eine E-Mail über das Mini-Framework, wenn der Bewegungsmelder am Schuppen gemeinsam mit dem auf der Terrasse oder dem im Vorgarten ausgelöst wird.
Wenn nur ein fetter Vogel an einem der Bewegungsmelder vorbeifliegt oder aus anderen Gründen eine Fehlauslösung stattfindet, bekomme ich keine Nachricht.
Der Nachteil dieses Programms: Mehrfachauslösungen.
Bei zu vielen E-Mails wird die CCU gerne mal instabil, wenn man nicht das CUxD-Mini-Framework einsetzt. Außerdem nervt es kolossal, also muss eine Lösung her.
Die Lösung lautet, wie eigentlich immer, dass ich den Umweg über eine Systemvariable gehe.
Die Variable nenne ich Einbruchswarnung und sie kennt nur zwei Zustände: aktiv und inaktiv.
Das WebUI-Programm bleibt nahezu unverändert, aber statt eine E-Mail zu versenden, setze ich jetzt die Systemvariable:
Ein zweites WebUI-Programm kümmert sich dann um den E-Mail-Versand:
Das Programm reagiert auf Änderung der Systemvariablen. Das bedeutet: Egal, wie oft die Systemvariable vom oberen Programm auf aktiv gesetzt wird, es wird nur eine E-Mail gesendet. Nur dann, wenn die Systemvariable zwischendurch inaktiv war, wird auch wieder eine neue E-Mail gesendet.
Damit bekomme ich nur noch eine E-Mail, auch wenn alle drei Bewegungsmelder nacheinander auslösen und die Auslösung wieder beenden.