Es werde Licht ….

Wir haben viele Lampen im Wohnzimmer. Das ist schön. Leider ist keine dabei, die das ganze Zimmer erleuchtet. Daher läuft man morgens zunächst an 3-5 Schalter, um die richtige Beleuchtung einzustellen. Vielleicht auf dem Weg auch nochmal wieder zurück, weil die eine Lampe dann doch falsch war. Wäre es nicht schön, wenn das einfacher wäre? Ja, das wäre es. Und das lässt sich machen!

Im Baumarkt oder im Internet (z.B. hier) findet man Funksteckdosen. Die sehen etwa so aus:

funksteckdose

und lassen sich mit einer Fernbedienung an- und ausschalten:

schalterDamit müsste man schon nicht mehr zu allen Lampen laufen, sondern könnte sie zentral steuern. Noch schöner wäre es aber natürlich, wenn man Kombinationen von Lampen zusammenstellen und gemeinsam schalten könnten. Dazu muss die Kontrolle über eine zentrale Software laufen. Natürlich bietet sich der Raspberry Pi-Server aus den vorherigen Posts für so eine Aufgabe an.

Zunächst muss der aber lernen, per Funk mit den Steckdosen zu kommunizieren. Dazu schliesse ich einen RF-Link-Transmitter (hier Typ WRL-10534) an; Stromversorgung mit 3,3V oder 5V, Masse und einen GPIO-Port für die Daten:

rf_link_transmitter

Der muss vor dem Anschluss verkabelt …

rf_link_transmitter_verkabelt

… und in das Gehäuse integriert werden:

rf_link_transmitter_gehause

Auf der Softwareseite ist das Vorgehen sehr ähnlich zur Ansteuerung des kombinierten Temperatur- und Luftfeuchtigkeitssensors DHT22. Die Kommunikation auf der untersten Ebene übernimmt ein C++-Programm. Das basiert auf der Software RCSwitch. Da der Kern meiner Heimautomatisierung wie beschrieben in Java implementiert ist, benötige ich wieder einen Swig-Wrapper zur Verwendung. Der Webserver muss um eine zusätzliche REST-Schnittstelle erweitert werten: Es müssen die Informationen zur Identifikation der Steckdosen und je ein Kommando für AN und AUS übermittelt werden.

Die Identifikation der Steckdosen ist vielleicht noch ein ganz spannender Punkt. Jede Steckdose verfügt nämlich über einen System- und einen Unit-Code. Die beiden Codes lassen sich direkt an der Steckdose einstellen:

codeDie Software verwendet dann die Codes, um die richtige Steckdose anzufunken.

Damit sind der atmosphärischen Lichtsteuerung eigentlich keine Grenzen mehr gesetzt. Bisher habe ich nur die Steuerung über die Weboberfläche umgesetzt (siehe Video). Generell lassen sich nun aber dynamische Sequenzen programmieren und beliebig und von überall her starten.