- 267K
- 15
- 14
free@home: Verschiedene Zustände im Haus über farbige Meldeleuchte signalisieren
15
Wer kennt das nicht: Man will weg und läuft noch schnell durchs Haus, ob alle Türen zu sind. Oder man fragt sich, ob das Garagentor zu ist. Oder man will vielleicht einfach nur seiner Frau mitteilen, dass man sich einen Moment hingelegt hat. In diesem Tutorial zeige ich euch, wie ich eine farbige Meldeleuchte im Flur installiert habe, mit der ich verschiedene Zustände signalisieren kann.
Voraussetzungen:
- Eine farbige Lampe, bei mir ist es ein Hue-RGB-Spot geworden
- Dinge, die den entsprechenden Zustand erfassen. Zum Beispiel Fenstermelder. Praktisch ist auch, wenn man noch "irgendwo" einen freien Aktor für diesen Zweck als "Merker" hat. Mehr dazu später.
Ziel:
Die Meldeleuchte soll bei bestimmten Zuständen in einer entsprechenden Farbe aufleuchten. Bei mir sind das exemplarisch "Garagentor ist auf", was über einen BJ-Universalmelder erfasst und mit rotem Licht signalisiert wird. Außerdem möchte ich "Balkontür auf" (grün) und "Terrassentür auf" (gelb) signalisieren, hierfür kommen BJ-Fenstermelder zum Einsatz. Außerdem haben wir das "Bitte leise sein!"-Licht (blau) eingeführt. Wenn das jemand schaltet, wissen die anderen Bewohner im Haus, dass man bitte ruhig sein soll, weil man sich z.B. hingelegt hat oder das Baby gerade eingeschlafen ist. Die Herausforderung dabei ist, dass ja auch mehrere Signale gleichzeitig anstehen können. Hierfür sollen dann die verschiedenen Farben nacheinander durchschalten. Außerdem soll die Meldeleuchte noch, dank ihres weißen Lichtes, in die Beleuchtung des Flures per Bewegungsmelder integriert werden.
Konzept:
Das Grundkonzept dieser Meldeleuchte ist, dass jeder Zustand, der signalisiert werden soll, mit einer eigenen Aktion erfasst und angezeigt wird. Um verschiedene Zustände nacheinander anzuzeigen, habe ich gedanklich eine Art Taktung vorgenommen, in der die Aus-Zeit der Meldeleuchte als Taktgeber verwendet wird. Sprachlich ausgedrückt wäre das dann in etwa so:
- "Prüfen, ob das Garagentor auf ist. 'UND Prüfen, ob die Meldeleuchte schon seit einer Sekunde aus ist. Wenn beides zutrifft, rot signalisieren. Wenn nein, bleibt das Licht weiter aus"
- "Prüfen, ob 'Bitte leise sein' aktiv ist. UND Prüfen, ob die Meldeleuchte schon seit zwei Sekunden aus ist. Wenn beides zutrifft, blau signalisieren. Wenn nein, bleibt das Licht weiter aus"
- "Prüfen, ob die Terassentür auf ist. UND Prüfen, ob die Meldeleuchte schon seit drei Sekunden aus ist. Wenn beides zutrifft, gelb signalisieren. Wenn nein, bleibt das Licht weiter aus" und so weiter.
Zusätzlich zu dieser Taktung, die davon ausgeht, dass die Meldeleuchte zuvor ausgeschaltet war, muss man ab dem zweiten Takt abfragen, ob zufällig einer der Takte in der Reihenfolge davor aktiv ist. Das führt dann sprachlich zu:
- "Prüfen, ob 'Bitte leise sein' aktiv ist. UND gleichzeitig prüfen, ob die Meldeleuchte schon seit zwei Sekunden aus ist. Oder ob die Meldeleuchte rot ist. Wenn dies zutrifft, blau signalisieren. Wenn nein, bleibt das Licht weiter aus"
- "Prüfen, ob die Terrassentür auf ist. UND gleichzeitig rüfen, ob die Meldeleuchte schon seit drei Sekunden aus ist. Oder ob die Meldeleuchte rot ist. Oder ob die Meldeleuchte blau ist. Wenn dies zutrifft, gelb signalisieren. Wenn nein, bleibt das Licht weiter aus" und so weiter.
Auf diese Weise bekommt man eine Reihenfolge der Meldungen hin, die immer von einer ausgeschalteten Meldeleuchte ausgeht oder geschaut wird, ob ein jeweils im Takt zuvor aktiver Signalisierungszustand gerade aktiv ist.
Nun braucht man noch eine Schleife, damit das Ganze wieder von vorne anfängt. Das führt zu "Wenn ja, Rot(gelb/blau signalisieren, 10 Sekunden warten und ausschalten". So kann jede Aktion von jedem Signalisierungszustand die Lampe wieder abschalten, was ja die Voraussetzung für den neuen Durchlauf ist. So bekommt man eine 10-sekündige Signalisierungsdauer für jeden der Zustände nacheinander hin.
Als wäre das Ganze noch nicht genug Gehirnakrobatik, kommen noch zwei Punkte hinzu:
Das eine betrifft die normale Flurbeleuchtung: Jede Aktion muss also nicht nur schauen, ob die Lampe aus ist oder im Takt der vorherigen Signalisierung eingeschaltet, sondern auch, ob vielleicht gerade die Lampe als Flurlicht mit der Tageshelligkeit oder der Nachthelligkeit eingeschaltet ist und dann seine Signalisierung starten.
Das andere ist ein kleiner "Workaround". Denn die oben angesprochene Taktung muss ja prüfen, ob die Farbe des vorherigen Zustands aktiv ist. Leider kann man in Vorbedingungen oder Aktionen aber nicht die Farbe eines Hue-Leuchtmittels abfragen. Da man aber Dimmwerte eines Leuchtmittels abfragen kann, habe ich für jede Farbe auch eine Helligkeit definiert. Also geht "rot" immer mit 97% an, "blau" immer mit 92% und "gelb" immer mit 15%.
Konfiguration in free@home:
So, genug der Konzepterklärungen. Hier zeige ich nun beispielhaft drei Aktionen der ersten drei Meldetakte:
Aktion zum Signalisieren des geöffneten Garagentors:
- (1): Der Universalkontakt meldet, ob das Garagentor geöffnet ist. Dies löst diese Aktion überhaupt erst aus. Nun werden in der Spalte "Ereignis" verschiedene Dinge abgefragt, von denen eines gleichzeitig zu dieser Vorbedingung zutreffen muss:
- (2): Die Meldeleuchte könnte (gesteuert über eine normale Bewegungsmelder-Zuordnung) mit der Helligkeit 9-11% eingeschaltet sein. 10% ist als Lampenhelligkeit für "tags" eingestellt.
- (3): Die Meldeleuchte könnte auch mit der Helligkeit 18-22% aktiv sein, 20% ist die Lampenhelligkeit für nachts.
- (4): Die Meldeleuchte könnte auch ausgeschaltet sein. Dann wird eine Sekunde gewartet, das ist der Zeittakt für diesen Zustand.
- (5): Nun wird die Meldeleuchte rot eingeschaltet. Die Helligkeit beträgt dabei 97%, dieser Wert ist für die Erkennbarkeit in den späteren Aktionen gedanklich fest mit der Farbe rot verbunden.
- (6): Nach 10 Sekunden wird die Meldeleuchte wieder ausgeschaltet.
So, die Meldeleuchte leuchtet also nun 10 Sekunden lang auf, wenn das Garagentor auf ist. Das passiert, wenn die Lampe vorher aus geschaltet war, oder als Tag- oder Nachtlicht geleuchtet hat.
Weiter gehts mit Aktion 2:
- (1): Hier nutzen wir einen freien Aktor als "Merker". Wenn den jemand im Haus bedient, möchte er damit sagen "bitte leise sein". Dies löst diese Aktion überhaupt erst aus. Nun werden in der Spalte "Ereignis" verschiedene Dinge abgefragt, von denen eines gleichzeitig zu dieser Vorbedingung zutreffen muss:
- (2): Die Meldeleuchte könnte mit 10% Lampenhelligkeit für "tags" eingeschaltet sein.
- (3): Die Meldeleuchte könnte auch mit der Helligkeit 18-22% aktiv sein, 20% ist die Lampenhelligkeit für nachts.
- (4): Die Meldeleuchte könnte auch, und das ist in diesem Takt neu, noch im vorherigen Takt aktiv sein. Dann ist sie mit 97% (das entspricht der gedanklich zugeordneten Helligkeit für rot) eingeschaltet. Dann wird die nachfolgende Aktion geschaltet, nach 10 Sekunden Wartezeit. Diese 10 Sekunden lassen dem vorherigen Takt noch die Zeit, ihre 10 Sekunden "zu Ende zu leuchten".
- (5): Die Meldeleuchte könnte auch ausgeschaltet sein. Dann werden zwei Sekunden gewartet, das ist der Zeittakt für diesen Zustand.
- (6): Nun wird die Meldeleuchte blau eingeschaltet. Die Helligkeit beträgt dabei 92%, dieser Wert ist für die Erkennbarkeit in den späteren Aktionen gedanklich fest mit der Farbe blau verbunden.
- (6): Nach 10 Sekunden wird die Meldeleuchte wieder ausgeschaltet.
Uff. Jetzt haben wir also zwei Aktionen. Hier wird nun auch die Sekundentaktung deutlich und wie dieser Takt quasi an die nächste Aktion weitergereicht wird. Ist die Meldeleuchte eine Sekunde aus, ist das Garagentor aber nicht auf, passiert nichts und die Leuchte bleibt aus. Nach zwei Sekunden ausgeschaltet schaut somit die nächste Aktion, ob der Leisesein-Aktor akiv ist. Ist das auch nicht der Fall, bleibt sie weiter aus und nach drei Sekunden kommt die nächste Aktion.
Das Prinzip ist nun das gleiche und wächst immer ein Stück weiter mit:
- (1): Diese Signalisierung wird ausgelöst, wenn die Terassentür auf ist.
- (2): Meldeleuchte könnte als Taglicht eingeschaltet sein
- (3): Meldeleuchte könnte als Nachtlicht eingeschaltet sein
- (4): Meldeleuchte könnte gerade mit 97% (=rot) ein offenes Tor anzeigen
- (5): Meldeleuchte könnte gerade mit 92% (=blau) das Leisesein-Signal anzeigen
- (6): Wenn die Meldeleuchte schon drei Sekunden aus ist, sind die vorherigen Aktionen (Tor und Leisesein) nicht aktiv, dann kann jetzt diese Aktion hier (Terrassentür) aktiv werden (wenn gleichzeitig der Fensterkontakt aktiv ist)
- (7): Meldeleuchte geht auf 84% (=grün) an.
- (8): Meldeleuchte geht nach 10 Sekunden wieder aus.
Ergebnis: Das Ganze ist nicht ganz trivial gewesen, bis es funktioniert hat. Und ich gebe gerne zu, dass es eine ziemliche Spielerei ist. Es hat mich aber auch einfach gereizt, diese Funktion mit Bordmitteln zu gestalten. Natürlich kann man Signalisierungen auch viel einfacher mittels myBuschJäger-Account aufs Handy vornehmen oder auf einem Panel anzeigen lassen.
Aber in der Praxis ist diese farbige Leuchte schon in der Tat auch einfach praktisch und hat sich tatsächlich bewährt. Wenn mal das Garagentor die Nacht über auf steht, weiß man so eine Signalisierung zu schätzen.
Viel Spaß beim Nachbauen. Ich bin aber auch auf Feedback gespannt, vielleicht gibts ja noch eine andere Lösung oder ich habe irgendwo was übersehen oder doch noch einen Gedankenfehler drin.
Wähle ein Bild
Bildformate: image/gif, image/jpeg, image/jpg, image/png
Max. Dateigröße: 10 MB
URL Informationen hinzufügen
Hier kannst du URL Informationen hinzufügen
So wird es aussehen