Project365d – what happened so far? Wir wollen die ICT-WG intelligent machen; dafür haben wir Lampen von Philips hue und Komponenten wie Bewegungsmelder von HomeMatic gekauft – wir zeigen dir, wie wir alle Komponenten integriert und das Smart Home zum Fliegen gebracht haben (just take me to the video).
Installation der Philips hue Lampen
hue Lampen sind einfach zu installieren – die hue LAN/ZigBee Bridge muss an der Steckdose hängen, wenn Bulb, Light Strip oder Living Color eingesteckt werden – die neuen Lampen verbinden sich automatisch. Sobald die Bridge per Ethernet Kabel an den Router angeschlossen ist und damit im selben Netz wie das Smartphone hängt, kann man mit einer hue-fähigen App die Lampen bedienen. Die von Philips entwickelte App bietet Standard-Aktionen wie Ein-/Ausschalten, Dimmen und Farbwahl einzelner Lampen, Szenenmodi und Wecker. Allerdings ist sie nicht wirklich intuitiv bedienbar und konnte daher im täglichen Gebrauch nicht überzeugen. Abgesehen davon ist es nicht wirklich intelligent, das Handy aus der Tasche zu holen, die richtige Lampe anzuwählen und einzuschalten – das muss einfacher gehen!
Konfiguration der HomeMatic Komponenten
Die Überlegung war einfach: 9 Räume, 9 Bewegungsmelder. Da der Flur aber recht gross ist, haben wir dort einen zusätzlichen eingeplant. Neben Temperaturfühler, Heizkörperregler, Abstandssensoren und Tastern haben wir auch die HomeMatic-Zentrale angeschafft, welche ihre Befehle mit 868,3 Mhz an die verbundenen Komponenten funkt. Beschränkt man sich bei der Einrichtung seines Smart Home auf HomeMatic, bietet die Zentrale allerlei Möglichkeiten zur Regelerstellung usw. Für uns ist allerdings nur die im LAN ansprechbare Schnittstelle wichtig, wodurch die Zentrale faktisch zur LAN/Funk Bridge degradiert wird.
Das Onboarding der Komponenten (z.B. Bekanntmachen eines Bewegungsmelders an der Zentrale) ist je nach Komponente leicht unterschiedlich. Die meisten Geräte haben dafür einen kleinen Taster, der es in einen Lernmodus versetzt. Dadurch funkt das Gerät seine eigenen Daten wie Gerätetyp und Geräte-ID an die Zentrale oder andere Komponenten, die sich auch gerade im Lernmodus befinden.
Auwahl eines Smart Home Servers
Die Herausforderung besteht nun darin, die beiden eigenständigen Systeme miteinander zu verknüpfen. Bereits bei deren Auswahl hatten wir bewusst darauf geachtet, dass die Systeme mit offenen Standards arbeiten oder zumindest dokumentierte, benutzbare APIs anbieten – das zahlt sich jetzt aus. Bei der Suche nach Software fürs eigene Smart Home sind wir auf insgesamt drei Open Source Projekte gestossen: FHEM, OenpRemote und openHAB.
Da OpenRemote keine Unterstützung für HomeMatic bietet und die Community bei FHEM nicht so aktiv scheint, haben wir uns vorerst für openHAB entschieden. Lass es uns bitte wissen, falls du bereits Erfahrungen gemacht hast oder noch andere Systeme kennst.
Hardware
So weit die Theorie – aber jetzt muss das Ganze in die Praxis umgesetzt werden.
Da unser Smart Home immer aktiv sein sollte, muss openHAB auf Hardware installiert werden, die möglichst 24/7 läuft und für die es eine Java Virtual Machine gibt. Ein normaler PC oder Notebook wäre vermutlich überdimensioniert und zu energiehungrig – daher haben wir uns nach etwas kleinem und schickem, wie dem Raspberry Pi, umgesehen. Das kleine Board bietet für Experimente wie unseres alles, was man braucht und lässt die Herzen der Techies unter uns höher schlagen. Wie folgender Vergleich (Quelle) zeigt, hat sich sein grosser Bruder Banana Pi mittlerweile zu einem starken Konkurrenten entwickelt:
Vorsorglich haben wir uns beide Modelle zugelegt. Als Betriebssystem gibt es je ein auf Debian 7 basierendes Linux, das auf der SD-Karte installiert wird – einen Bildschirm brauchen wir für unseren Zweck nur für die erste Installation anzuschliessen. Das LAN-Interface haben wir, ebenso wie HomeMatic- und hue-Bridge, mit statischen IPs versehen. Noch schnell Benutzer eingerichtet und schon kann man sich via SSH (Kommandozeile) auf die kleinen Geräte verbinden.
Inbetriebnahme des Smart Home
Zur Übersicht noch ein (selbstgemaltes und künstlerisch wertvolles) Bild der beteiligten Systeme:
Für die Installation von openHAB muss mit dem Linux Paketmanager (apt) zunächst Java installiert werden. openHAB selbst kommt als zip-Archiv und mit Ausführen des Skripts start.sh wird der Server gestartet. Um mit den Komponenten im Netzwerk kommunizieren zu können, müssen diese in der Datei ./configurations/openhab.cfg bekannt gemacht werden:
# Hostname / IP address of the Homematic CCU homematic:host=192.168.1.11 # IP address of Hue Bridge (optional, default is auto-discovery) hue:ip=192.168.1.12
Die restliche Konfiguration erfolgt in einer an Java erinnernden DSL (Domain Specific Language) und wird in Dateien des Ordners ./configuration/* abgelegt. Wird eine Datei geändert, aktualisiert sich der openHAB-Server automatisch im Betrieb. Für Testzwecke ist es sehr hilfreich, zumindest das Konfigurations-Verzeichnis via Samba als Netzwerkfreigabe einzurichten, da man sonst nur per SSH auf den Raspberry/Banana Pi Zugriff hat.
Jetzt kann der openHAB Designer verwendet werden, um die Konfiguration zu erstellen; über die Netzwerkfreigabe lässt sich dieser auf jedem Laptop verwenden. Als erstes müssen alle Smart Home Komponenten, genannt Items, definiert werden:
/* itemtype itemname ["labeltext"] [(group1, group2, ...)] [{bindingconfig}] */ Switch BulbKitchenCeiling (Kitchen, Bulbs) { hue="3" } Switch LiCoJohannesRoom (JohannesRoom) { hue="14" } Switch PhoneJohannes (Mobiles) { nh="android-xxxxxxxxxxx" } Switch MotionSensorOffice (Office, Motion) { homematic="address=LAB0051544,channel=1,parameter=MOTION" } Switch FrontDoorHallway (Contacts, Hallway) { homematic="address=LEQ0922724,channel=1,parameter=STATE" } Number HumiBathRoom (BathRoom, Humidity) { homematic="address=LEQ0122348,channel=1,parameter=HUMIDITY" }
In geschweiften Klammern wird das Binding des jeweiligen Items definiert. Für hue wird die Nummer der Lampe benötigt, während HomeMatic-Komponenten die ID des Geräts (address), den Kanal und den entsprechenden Parameter benötigen. Das Binding Network Health (nh) pingt Netzwerkgeräte wie Smartphones an, was Rückschlüsse auf die Anwesenheit ermöglicht. openHAB bietet viele weitere Bindings (Mail, HTTP Request, …) – fällt dir ein cooles Szenario ein, das wir damit umsetzen können?
Sind die Items definiert, können in selber Manier Regeln definiert werden:
rule "ToiletLightOn" when Item MotionSensorToilet changed from OFF to ON then sendCommand(BulbToiletCeiling, ON) end rule "ToiletLightOff" when Item MotionSensorToilet changed from ON to OFF then sendCommand(BulbToiletCeiling, OFF) end
Natürlich sind das nur Ausschnitte der Konfiguration, bei Interesse stellen wir dir gerne das komplette Paket zur Verfügung.
Alle Regeln müssen in relativ unflexible Strukturen gegossen werden, die bei Bedarf manuell geändert werden müssen. Aus meiner Sicht ist das Smart Home erst dann so richtig intelligent, wenn es neue oder geänderte Situationen selbstständig erkennt und entsprechend lernt. Erste Ueberlegungen zur technischen Umsetzung – beispielsweise durch neuronale Netze – gibt es schon.
Auch wenn das jetzt alles ziemlich technisch war – das Video zeigt, was unser Smart Home momentan so macht und wofür das Ganze gut ist: