Ding mit Licht: Das Konzept – bis jetzt

Was es können soll und wie es gesteuert wird

Das Projekt „Ding mit Licht“ wurde geboren, weil ich mit bestehenden, kommerziellen Lösungen schlicht unzufrieden bin. Sei es, weil sie unzuverlässig sind, zu unflexibel, untereinander nicht kompatibel, sich ohne großen Aufwand nicht so verwenden lassen, wie ich es mir vorstelle oder einigermaßen brauchbare Lösungen schlicht zu teuer sind.

Ich erfinde ganz sicher nichts neues. All das, oder zumindest das meiste von dem, was in meinem Projekt umgesetzt werden soll, wurde schon von irgendjemandem, aus vermutlich den gleichen Beweggründen, entwickelt. Was ich mache, ist diese Quellen – sofern sie unter einer freien Lizenz verfügbar sind – zu nutzen und nach meinen Vorstellungen „umzubauen“ bzw neu zusammenzusetzen.

Grundsätzliches

Die Mutter aller Smart-Home-Anwendungen: Licht schalten

Der erste Anwendungsfall für Smart-Home-Steuerungen sind natürlich die Lampen im Haus. Oder besser ausgedrückt, die Beleuchtung im allgemeinen. Bei fertigen Lösungen kann man entweder – bei Stehlampen z. B. – auf Funk-Steckdosen oder für Deckenbeleuchtungen auf Adapter für Fassungen zurückgreifen. Auch fertige Leuchtmittel mit eingebauten Funk- oder WLAN-Funktionen sind zu haben. Aber die sind, m. E. durchweg hässlich und i. d. R. auch nicht wirklich hell. Und außerdem sind diese Systeme alle wieder proprietäre Systeme, die ein „ein System für alles“ nicht ohne erheblichen Aufwand zulassen.

Ich möchte so wenig, wie nur irgend möglich von den fertigen Lösungen sehen. Ich will mich nur über die hoffentlich zuverlässige Funktion freuen. Daher entwerfe ich Platinen, die Platz hinter einem vorhandenen Lichtschalter finden und dann den angeschlossenen – ursprünglich vom Lichtschalter geschalteten – Verbraucher schalten. Der Lichtschalter selbst wird an die entsprechenden Anschlüsse der Platine angeschlossen und übergibt so nur noch eine Status-Änderung. Der Chip auf der Platine schaltet dann den Verbraucher ein oder aus.

Nun haben wir, wie wohl alle, die LED oder Halogenspots in der Decke haben, eben dort einen Zwischenraum. Dafür habe ich eine Platine entworfen, die bis zu fünf Verbraucher schalten kann. Angesteuert wird diese Platine ebenfalls durch eine kleine Platine hinter einem Lichtschalter. In Planung ist bereits eine Platine mit fünf dimmbaren Ausgängen für LED-Spots, um unsere Halogen-Spots in den Ruhestand zu schicken. Und schließlich lässt sich die kleine Schalter-Platine auch hinter Steckdosen setzen, so dass diese – ohne klobige Funksteckdose – direkt angeschlossene Verbraucher schalten kann.

Schalten von Geräten

Wie schon oben geschrieben, habe ich bereits eine Platine entworfen, die auch hinter Unterputz-Steckdosen Platz findet. Das ist schon eine elegante Lösung, daran angeschlossene Verbraucher ein- oder auszuschalten. Auf gleicher Basis erstelle ich Zwischenstecker, die dann auch über einen eingebauten Taster geschaltet werden können. Ggf. gibt es auch eine Mehrfach-Steckdose, die dann jede einzelne Dose schalten kann. Die Basis dafür wäre die o. g. 5-fach-Platine für die Zwischendecke.

Hiermit sind die wohl populärsten und einfachsten Smart-Home-Anwendungen abgedeckt – obwohl – Smart ist das noch lange nicht; auch wenn schon das von vielen als Smart-Home-Steuerung bezeichnet wird. Bis hier sind es erst mal nur „WLAN-Schaltboxen“.

Nicht nur schalten, auch walten!

Smart wird das ganze erst, wenn diese Schaltboxen auf bestimmte Ereignisse oder Zustände mit bestimmten Ereignissen oder Zuständen reagieren können. Und damit meine ich Ereignisse, die nicht durch einen Lichtschalter (obwohl, auch hier habe ich schon spezielle Ideen) oder eine Fernbedienung ausgelöst werden. Oder anders: Smart wird es, wenn die Geräte miteinander reden und Informationen austauschen können.

Um das zu erreichen, müssen neben Netzwerkfähigkeit (WLAN) mindestens zwei Voraussetzungen erfüllt sein:

  1. die Schaltboxen müssen eine gewisse – nennen wir es – minimale Intelligenz in Form von Basis-Routinen besitzen
  2. es wird eine „gemeinsame Sprache“ zur Kommunikation benötigt.

Jetzt könnten die Geräte theoretisch schon miteinander sprechen. Aber, hier müsste jedes Gerät über jedes andere Gerät, dass es ansprechen möchte, Bescheid wissen. Hier ist nur eine direkte Ansprache möglich, was einen doch erheblichen Verwaltungsaufwand nach sich ziehen würde. Alleine schon, wenn ein Gerät nicht mehr dieses, sondern jenes Gerät ansprechen soll.

Daher benötigen wir so etwas, wie einen Organisator, der die Kommunikation zwischen den Geräten regelt und überwacht. Hier kommt MQTT ins Spiel! MQTT ist quasi die Sprache, die alle Geräte und der Organisator sprechen. Die Geräte sprechen nur den Organisator an und dieser wiederum das oder die Zielgeräte, die eine Aktion ausführen sollen.

Die Basis-Routinen auf den Geräten werten die Ansprache des Organisators aus und reagieren entsprechend mit einer Aktion und/oder auch einer Antwort.

Der Organisator kann zusätzlich dafür sorgen, dass seine Ansprachen auch wirklich beim Empfänger ankommen und Anweisungen wirklich ausgeführt werden.

Bei MQTT sprechen wir von einem Broker. Dieser Broker wird – neben anderer, nützlicher Software – in Form von Mosquitto auf einem Raspberry Pi seinen Dienst verrichten. Der Raspberry selbst wird per Netzwerkkabel mit dem lokalen Netz verbunden und stellt selbst einen eigenen Access-Point für die Schaltboxen zur Verfügung. So werden mehrere Fliegen mit einer Klappe erschlagen:

  1. MQTT-Nachrichten werden ausschließlich im dafür verantwortlichen Netz versendet.
  2. Das erhöht die Sicherheit, denn über das „normale“ Heimnetz kann der Smart-Home-Traffic nicht mitgelesen werden.
  3. Ein ggf. überlastetes Heimnetz hat keinen Einfluss auf die Latenz im Smart-Home-Netz.
  4. Es können gewollt und gezielt Tunnel vom Internet zum Smart-Home-Netz und umgekehrt eingerichtet werden.

Die Verwaltung des Systems

Nun ist MQTT für sich allein noch keine Verwaltung der Smart-Home-Umgebung. Hier bieten sich zahlreiche, quelloffene Lösungen an. Ich habe mich schon ziemlich auf Node-RED eingeschossen. Node-RED ist – vereinfacht gesagt – ein virtueller Schaltschrank, in dem Sensoren, Schalter und Aktoren, also alle Geräte, die MQTT sprechen (und nicht nur das), verkabelt werden können. Node-RED wird auch auf dem Raspberry installiert und wird per Browser bedient. So ist es z. B. möglich, den Lichtschalter A von der Wohnzimmerlampe zu trennen und ihn einfach mit der Esszimmerlampe zu „verkabeln“. Oder man legt einfach ein zweites virtuelles Kabel und schaltet dann eben beide Lampen mit diesem Schalter.

Über Node-RED werde ich einen eigenen Eintrag verfassen. Ich hatte in der Zwischenzeit die Gelegenheit mich einmal etwas intensiver mit Node-RED zu beschäftigen und bin von den Möglichkeiten schlicht überwältigt. Nicht nur, dass es recht einfach zu erlernen ist, auch die nahezu 1000 Erweiterungen lassen fast keine Wünsche offen.

Dann gibt es da noch FHEM. Auch das ist interessant, kann es doch auch mit MQTT umgehen und bietet – ebenso wie Node-Red – zahlreiche Erweiterungen und Schnittstellen zu anderen, gebräuchlichen Lösungen. Mindestens eine Schnittstelle fällt mir da ein, die ich wahrscheinlich einsetzen möchte – aber dazu komme ich später. Also, auch FHEM ist ein Kandidat, den ich mir genauer ansehen werde. Wegen der unglaublich umfangreichen Möglichkeiten in Node-RED, gibt es für mich keinen Grund mehr, mich zusätzlich noch mit einer weiteren Umgebung zu beschäftigen. Vielleicht, wenn ich mal viel, viel Zeit übrig habe.

Anwendungsbeispiele?

Was lässt sich also aus – auf ESP8266 basierten – Sensoren und Aktoren in Verbindung mit Mosquitto, Node-RED und Alexa so alles machen? Hier einige Beispiele, die ich mir vorstelle umzusetzen:

Nachts ins Bad

Es gibt Nächte, da wird der Schlaf von Bedürfnissen unterbrochen. Nun ist es so: viel Licht = viel wach! In unserem Bad gibt es insgesamt 10 x 7W LED-Spots. Zu schalten mit einem Doppelschalter zu vier und sechs Spots. Selbst vier Spots sind, wenn man gerade aus dem Schlaf kommt, brutal hell. Also passiert jetzt folgendes:

Beim Betätigen des – meinetwegen rechten – Schalters, wird zunächst geprüft, welche Uhrzeit und welcher Wochentag ist. Kommt die Prüfung zu dem Schluss, dass jetzt noch Schlafenszeit ist, wird nur ein einziger Spot eingeschaltet – und zwar der, der so liegt, dass die Beleuchtung möglichst gering bleibt. So bleibt das Hirn im Dämmermodus und das Einschlafen fällt anschließend leichter.

Schaltet man aber den anderen Schalter, werden die LED-Spots eingeschaltet, die diesem Schalter standardmäßig zugeordnet sind. Natürlich mit einem kleinen Einschalt-Effekt, weil’s einfach cool ist, dass das geht! 😉

Und dank MQTT liegt die Verzögerung zwischen der Betätigung des Schalters und dem Einschalten des Lichts – trotz Programm-Logig und TCP/IP-Kommunikation über WLAN – im Bereich von Millisekunden.

Morgens im Bad

Zum Aufstehen und wach werden ist viel Licht von Vorteil. 70W LED-Beleuchtung insgesamt machen Dich durchaus wach – aber bitte nicht mit meinem Schlag. Also wird morgens ein spezielles Programm gestartet:

Werden beide Wippen des Lichtschalters gleichzeitig betätigt, wird wieder zuerst die Uhrzeit und der Wochentag geprüft. Kommt die Prüfung zu dem Ergebnis, dass es Zeit ist aufzustehen, wird zuerst nur ein Spot geschaltet und dann – alle 30 Sekunden – ein weiterer. So wird man nicht gar so brutal geweckt.

Warmes Wasser

Wir haben eine Zirkulationsleitung, weil ohne diese das Warme Wasser, bei voll aufgedrehtem Hahn, fast 40 Sekunden bis ins Badezimmer braucht. Mit eingeschalteter Zirkulationspumpe ist das heiße Wasser sofort da. Wir haben also die Wahl, ob wir Wasser verschwenden und warten, bis es warm wird oder Strom und Gas verschwenden, um sofort warmes Wasser zu haben. Die Zirkulationsleitung hat nämlich den Nebeneffekt, dass das Wasser viel öfter nachgeheizt werden muss. Das verbraucht tatsächlich eine menge Energie in Form von Gas und etwas in Form von Strom für die Pumpe. Klares, sauberes Wasser einfach so ablaufen zu lassen, finde ich aber auch nicht wirklich gut. Mit einer smarten Steuerung kann man das wesentlich effizienter gestalten.

Drei mögliche Sensoren, um festzustellen, dass jemand vermutlich in Kürze warmes Wasser benötigt:

  1. Die Tür öffnet sich
  2. Der Lichtschalter wird betätigt
  3. ein Bewegungsmelder im Bad

Löst also ein Sensor ein Signal aus, wird die Pumpe der Zirkulationsleitung für genau die Zeit gestartet, die es für ca 2 vollständige Umläufe braucht. Somit steht das heiße Wasser für mindestens die nächsten 10 Minuten sofort zur Verfügung, bevor das Wasser in der Leitung wieder auskühlt. Gleichzeitig kann man das so programmieren, dass die Zirkulationsleitung in dieser Zeit eben nicht erneut getriggert wird. Man kann sogar anhand eines Temperatur-Sensors an der Warmwasserleitung bestimmen, ob die Pumpe überhaupt starten soll oder nicht.

Somit steht jederzeit, sofort warmes Wasser zur Verfügung und es wird nicht mehr Strom, Gas und Wasser verbraucht, als unbedingt nötig.

Automatische Lichtabschaltung in verlassenen Räumen

Man kann mit Bewegungsmeldern bestimmen, ob sich jemand in einem Raum aufhält oder nicht. Nun wird dieser Bewegungsmelder nicht dazu genutzt, das Licht einzuschalten, sondern nur um zu melden, ob noch jemand da ist – nachdem das Licht aktiv, z. B. über einen Schalter, eingeschaltet wurde. Meldet der Bewegungsmelder eine Bewegung, wird ein Timer gestartet. Klar, dass man sich zwischenzeitlich nicht bewegt – aber eine Stunde lang? Also, wenn es für eine Stunde kein erneutes Bewegungssignal gibt, wird das Licht in diesem Zimmer automatisch abgeschaltet.

Umgekehrter Dämmerungsschalter (mit Regensensor)

Schon mal versucht eine fertige Zeitschaltuhr mit Lichtsensor zu bekommen, die bei Helligkeit ein- und bei Dunkelheit ausschaltet? Umgekehrt kein Problem; aber so? Wofür man so etwas braucht? Für Schaltungen, die der Dekoration dienen und nur dann aktiv sein müssen, wenn sie auch wahrgenommen werden. Unser Teich z. B. ist so ein Objekt! Am Tage und bei schönem Wetter sollen die Pumpen für die rein dekorativen Effekte laufen. Bei Regen und bei Dunkelheit ergeben sie aber keinen Sinn, weil sich dann vermutlich niemand am Teich aufhalten wird. Also an, wenn es hell und trocken ist, sonst aus! Das bekommste nicht im Baumarkt. Zusätzlich kann man dann noch die Schaltzeiten abhängig von Wochentag und Uhrzeit auf die Zeiten beschränken, in denen vermutlich überhaupt jemand Zuhause ist.

Automatische Außenbeleuchtung bei Ankunft

Anstelle eines Bewegungsmelders, der das Licht bei jeder ausreichend großen Bewegung eines warmen Objekts für eine definierte Zeit ein und dann wieder ausschaltet, lässt sich das viel eleganter durch das Smartphone regeln, dass man i. d. R. immer bei sich führt.

Komme ich also irgendwann in der Nacht nach Hause, wäre es schon angenehm, wenn die Außenbeleuchtung sich einschaltet. Dazu meldet das Smartphone per MQTT an die Zentrale, dass es sich im Heimnetz angemeldet hat. Das geschieht in der Regel kurz nachdem ich in Sichtweite unseres Hauses bin. Die Zentrale schaltet daraufhin das Außenlicht ein und entweder durch betätigen des Schalters oder nach Ablauf eines Timers wieder aus.

Umgekehrt kann die Außenbeleuchtung auch abgeschaltet werden, wenn das Smartphone – z. B. durch das Absetzen einer Mail an ein bestimmtes, von Node-RED überwachtes Postfach meldet, dass es sich jetzt außerhalb der „Wohnzone“ befindet.

Temperaturen überwachen und regeln

Dank der zahlreichen Plugins für Node-RED und ein paar Hardware-Erweiterungen, lassen sich auch fertige Gerätschaften anderer, kommerzieller Systeme fremdsteuern und auswerten. Hier sind automatische Thermostate ein ideales Anwendungsbeispiel. Statt einer – zumeist sehr teuren – Insellösung, die im besten Fall eine Schnittstelle zu anderen Systemen bietet, werden solche Geräte – z. B. mit einer 433/868MHz-Brücke – einfach in Node-RED integriert. Sehr günstige, selbstgebaute MQTT-Sensoren liefern Daten zur Raumtemperatur und Luftfeuchtigkeit, sowie den Zustand von Fenstern und Türen, worauf Node-RED – je nach Programmlogik – die Heizungen hoch oder runter dreht.

Integration und Nutzung weiterer Geräte, anderer Hersteller

Batteriebetriebene Bewegungsmelder wären zwar auch auf Basis eines ESP8266 zu realisieren, aber das ist – in Anbetracht der vertretbaren Kosten für ein fertiges Gerät – nicht wirklich sinnvoll und auch nicht gerade einfach. Durch den erforderlichen Sleep-Mode des ESP8266 würde es auch zu einer erheblichen Verzögerung zwischen der Erfassung einer Bewegung und dem Auslösen eines Ereignisses kommen. Fertige Geräte hingegen sind immer „scharf“ und halten eine halbe Ewigkeit mit einer Batterie. Mit 433/868MHz-Brücken kann man solche Empfänger einfach nutzen. Sie Melden ein Ereignis umgehend an Mosquitto und dort wird dann entschieden, wie mit dem Ereignis umzugehen ist. Da ich bereits bei der Leichenfledderei (dem -60%-und-mehr-Räumungsverkauf) der Praktiker-Märkte zu einem kleinen Vorrat solcher Bewegungsmelder und anderer Sensoren gekommen bin, werde ich solch eine 433/868MHz-Brücke auf jeden Fall auch basteln. Der technisch bedingten Unzuverlässigkeit der 433/868MHz-Geräte untereinander, kann man mit mehreren, im Haus gut verteilten 433/868MHz-Brücken sehr gut entgegenwirken. Solche Sende- und Empfangsmodule bekommt man bereits für weniger als 3 US$ im China-Shop meines Vertrauens.

Optische Signale über die normale Beleuchtung

Unsere Klingel ist im Erdgeschoss und Funk-Klingeln sind schlicht unzuverlässig. Im Erdgeschoss hört man die Klingel ganz gut – in der ersten Etage schon nicht mehr so gut und ganz oben überhaupt nicht mehr. Im Smart-Home kann die Klingel natürlich mit ESP-8266-Klingeln erweitert werden – oder man lässt einfach die Beleuchtung blinken! Das kommt dann überall an. Oder man koppelt die Klingel mit dem Smartphone oder den Handteilen der Fritz!Box oder baut eigene Signaboxen… unendlich viele und bequeme Möglichkeiten.

Optische und/oder akustische Signale über eigene Signalboxen

Was auch immer sich überwachen lässt, lässt sich nutzen um alle möglichen Aktionen auszuführen. Bei mir ist es z. B. so, dass ich auf bestimmte eMails sofort reagieren sollte. Nun werde ich ohnehin schon überflutet von Meldungen auf meinem Smartphone, dass eben bei allen möglichen Meldungen irgendein Signal gibt. Ich will aber auf ganz bestimmte Mails und Meldungen ein besonderes Signal erhalten. So könnte ich eine (oder mehrere) Signalboxen bauen, die unauffällig irgendwo warten, bis sie durch ein Ereignis angetriggert werden und dann – meinetwegen in verschiedenen Farben, mit einem Sound oder über ein Dot-Matrix-Display – signalisieren, dass etwas ganz bestimmtes eingetreten ist. Alternativ könnte man auch die LED-Spots in einem bestimmten Muster blinken lassen und Meldungen auf dem TV einblenden und, und, und…

Benachrichtigung bei Feueralarm

Wir haben vernetzte Feuermelder. Löst ein Feuermelder aus, könnte eine Nachricht an uns geschickt werden, dass eben ein Feuermelder ausgelöst hat. Ist man nicht Zuhause, kann man entweder über eine evtl. vorhandene IP-Cam nachsehen, ob es sich nicht um einen Fehlalarm handelt, oder vielleicht einen Nachbarn anrufen, der mal schaut, ob alles i. O. ist und ggf. Sofortmaßnahmen, wie die Feuerwehr rufen, einleitet.

Das Garagentor öffnen

kann quasi vollautomatisch umgesetzt werden. Auto (Smartphone des Besitzers) meldet, dass es angekommen ist. Eine Lichtschranke oder ein Bewegungsmelder meldet, dass die Einfahrt befahren wurde – das Tor öffnet sich. Alternativ kann das natürlich auch mit einem eigens dafür vorhandenen Button oder einer App umgesetzt werden. Auch Nachrichten über den Status des Garagentores – wie grundsätzlich für alle Türen oder Fenster – lassen sich abfragen und bei Zustandsänderung lassen sich bestimmte Aktionen auslösen.

Und noch vieles mehr!

Während meiner ersten Versuche mit Node-RED habe ich die Verbindung von Node-RED und Alexa ausprobiert. Damit kann ich – neben anderen netten Aktionen – nun per Sprachbefehl unseren Raspberry (der mit Kodi und Anbindung an unseren Satelliten-Server, unser Fernseh- und Radioprogramm zur Verfügung stellt) definiert herunter- und hochfahren, ohne sich durch das Menü hangeln zu müssen und per Schalter den Strom vom RPi zu trennen und zum hochfahren wieder zu verbinden. Besser noch: Mit nur einer Ansage können alle Geräte unserer Unterhaltungstechnik, in definierter Reihenfolge komplett vom Strom getrennt werden und ebenfalls genauso definiert wieder mit Strom versorgt und hochgefahren werden.

Außerdem sorgt Node-RED, dank Erweiterung für Kodi, nun auch dafür, dass z. B. die Telefonnummer eines Anrufers in das Fernsehbild eingeblendet wird und pausiert den Raspberry, sobald man am Telefon das Gespräch annimmt. Legt man auf, lässt Node-RED nach fünf Sekunden das Programm auf dem Raspberry weiter laufen.

Die Grenzen der Möglichkeiten werden also nur durch die eigene Phantasie und physikalische Gesetze – sowie natürlich – den Geldbeutel begrenzt. Die Kosten sind nur ein Grund, warum ich mich für die Entwicklung eigener Hardware entschieden habe – das „Ding mit Licht“ eben. Diese Geräte mit einem ESP-8266 sind a) frei programmierbar und somit extrem flexibel und kosten b) nur einen Bruchteil von fertigen, proprietären Lösungen. Hauptsächlich treibt mich meine Phantasie an, meine Ideen endlich Realität werden zu lassen. Außerdem lerne gerne neue Dinge und das wiederum hält mein Programmierer-Hirn fit. Und einen Weg, die Physik zu überlisten, finde ich auch noch! 😉

Kurzum: Es macht mir sehr viel Spaß; auch, dass es schon ein paar Leute gibt, die quasi auf meine Lösungen warten, um sie selbst einzusetzen.

Ich werde berichten, wenn es etwas neues gibt!

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.