Smart Home Überlegungen
Gepostet am 28. Februar 2016 • 7 Minuten • 1319 Wörter
Seit Tagen sitze ich nun an der Idee, ein Smart Home in meiner nächsten Wohnung zu installieren. Warum? Ich finde den Gedanken, mein Zuhause per Smartphone von überall zu überwachen und zu steuern, einfach wahnsinnig spannend. Ich stehe auf Statistiken. Vor meinen Informatiker Freunden könnte ich damit auch angeben und nebenbei noch eine Menge Erfahrungen sammeln und das was ich im Studium so gelernt habe, anwenden.
Ich habe mir eine Menge Ziele mit diesem Projekt gesetzt. Kontrolle per Smartphone oder PC. Kontrolle von zu Hause oder via Internet. Ich möchte Statistiken automatisch generieren lassen, zum Beispiel über die Temperatur oder Luftfeuchtigkeit. Die Temperatur sollte nicht nur überwacht werden, sondern auch dementsprechend die Heizung reguliert werden. Meinen Stromverbrauch messen würde ich auch ganz gerne. Zudem möchte ich alle unnötigen Stromverbraucher an- und abschalten können. Das Licht einschalten per „klatschen“ würde ich praktisch finden. Außerdem sollte es auch via Smartphone einschaltbar sein. Ein Bewegungsmelder vor der Tür und einen Fensterkontakt als „Alarmsystem“ würde ich auch gerne haben. Ein automatisches Rollo hätte auch etwas.
Der Raspberry Pi 2 auf dem Coverbild wird vermutlich das Herzstück in meiner Smart Home Anlage.
Fertige Smart Home Lösungen kosten ein Vermögen, dafür sind eigene Smart Home Lösungen nicht gerade einfach aufzubauen. Besonders da ich in einer Mietwohnung leben werde und nicht einfach jede Steckdose austauschen kann. Allerdings ist es im ersten Schritt auch nicht mein Ziel, alles zu verkabeln.
Des Weiteren wurde ich im letzten Semester sehr für das Thema „Open Source“ sensibilisiert. Deshalb ist es mir wichtig, dieses System so offen wie möglich zu gestalten. Gerade die Gateways, die in Homematic und Phillips Hue eingesetzt werden, sind mir ein Dorn im Auge. Ich möchte auch nicht mit 10 verschiedenen Apps für jedes einzelne Gerät am Ende stehen. Deshalb sollte jedes Gerät, was ich einsetzte von einer zentralen Stelle steuerbar sein.
Das Ganze würde bei mir also mehr ein Test, was ich damit umsetzen kann. So kann ich mich sowohl im Mikroprozessor Programmierung als auch in Netzwerktechnik und Geräteadministration weiterentwickeln. Wenn am Ende das ganze Projekt ein Erfolg war, sollte es auch skalierbar sein, sodass es sich anschließend in der ganzen Wohnung ausbreiten kann und ich mehr Geräte einsetzte als „von jeder Sorte eins“.
Also wie fange ich an? Vielleicht mit einer Bestandsaufnahme, was habe ich bereits?
Ich habe einen Raspberry PI, einen Arduino Uno mit Ethernet Shield und gemanagte Switche. Via Indiegogo habe ich mir sowohl einen Turris Omnia Router als auch eine smarte Glühbirne namens Qube geleistet. Zudem habe ich für den Arduino Temperaturfühler, IR Transmitter und IR Receiver.
Wie sieht nun der Plan aus?
Fangen wir mal mit der „Basis“ an. Hierfür plane ich meinen Raspberry Pi einzusetzen. Nach langem Suchen und Überlegen habe ich mich für Home Assistant als Herzstück entschieden. Dies ist zwar noch eine sehr junge Software, bietet aber schon jetzt eine große Geräteunterstützung und auch Möglichkeiten für eigene Erweiterungen. Zudem war es eine der wenigen Softwarelösungen, die designtechnisch keine Katastrophe waren. Es fehlen zwar Apps, aber die Weboberfläche sieht wirklich gut aus und ich denke, dass ich damit leben kann. Die Weboberfläche lässt sich natürlich auch mit einem Passwort schützen.
Ohne Weiteres kann ich jetzt schon Wetter, Sonnen Auf- und Untergang empfangen und SabNZBD steuern. In Kombination mit InfluxDB und Grafana lässt sich damit schon eine Statistik erfassen. Es unterstützt außerdem SNMP und Terminal Befehle. Ich könnte mir also hier schon einfache Programme für das Linux Terminal schreiben, welche von Home Assistant Daten auslesen oder etwas ausführen. Auch das MQTT Protokoll wird unterstützt, welches ich als Kommunikationsprotokoll zwischen Home Assistant und Arduino einsetzten will. Ich muss dafür allerdings noch einen MQTT Broker (Mosquitto) installieren.
Des Weiteren installiere ich vermutlich Homegear, das eine Verbindung zwischen Home Assistant und Homematic Geräten ermöglicht. Dazu bekommt der Raspberry Pi einen USB 868 MHz Dongle (CUL) aufgesteckt, den Homegear benötigt, um mit diesen Geräten zu kommunizieren. Bei der Kommunikation via 868 MHz ist zudem eine Verschlüsselung gegeben. Damit kann ich dann später Funk-Thermostate steuern. Es gibt aber auch Rauchmelder, Fensterkontakte, Bewegungsmelder, Neigungsmelder, Luftqualitätssensoren, Dimmer, akustische Signalgeräte, Steckdosen, Rollläden und noch einiges mehr von diesem Anbieter. Allerdings sind diese Lösungen alle relativ teuer, weshalb ich erst einmal versuche, auf billigere Alternativen zurückzugreifen.
Zum Schluss kommt dann noch eine PI USV auf das Raspberry, damit ich nicht bei jedem Stromausfall meine Datenbanken neu aufsetzen muss.
Mein Arduino soll Daten wie Raumhelligkeit, Temperatur, Luftfeuchtigkeit, „Klatschen“ und vielleicht auch noch Bewegungen wahrnehmen. Eventuell dazu noch Infrarotsignale empfangen oder senden. Zudem bekommt das Arduino einen 433 MHz Sender und Empfänger, welches mir ermöglicht Geräte wie Funk-Steckdosen, Bewegungssensoren und Funk-Schalter (Senden und Empfangen), Funk-Dimmer und Fensterkontakte. Einige Anwendungsbeispiele für Arduinos, die diese Steckdosen steuern konnten, waren schnell gefunden. Preislich sind diese billig. Auf diesem Frequenzband gibt es aber keine Verschlüsselung. Die Signalübertragung ist ziemlich einfach. Die Reichweite beträgt etwa so um die 30 Meter im freien Feld. Sicherheitstechnisch habe ich da nicht so viele Bedenken. Theoretisch könnte jemand das Signal von außerhalb beeinflussen und so gewisse Steckdosen ein- und ausschalten und dazu vielleicht in meinem System einen falschen Alarm für ein „offenes Fenster“ oder einen Bewegungsmelder auslösen. Er müsste dafür aber vor meiner Tür stehen und in Kleinstarbeit die Signale belauschen, die ich sende. Aus dem Internet kann er darauf keinen Einfluss nehmen, nicht ohne erheblichen Aufwand. Das Risiko kann ich in Kauf nehmen.
Die gesammelten Daten des Arduinos werden via MQTT Protokoll über das Netzwerk gesendet. Einige Anleitungen wie man dieses auf einem Arduino implementiert, habe ich auch schon gefunden.
Eventuell muss ich diese Konstruktion sogar auf 2 Arduinos verteilen, da ich bei einigen Tests den Programmspeicher schon am oberen Limit ausgereizt hatte. Vor allem die vielen libraries machen dem Arduino Speicherplatz zu schaffen.
Um den Stromverbrauch meines PC Arbeitsplatzes zu messen, und dort zum Beispiel meine Bildschirme bei abgeschalteten PC automatisch mit abschalte, werde ich wohl die Steckerleiste Lindy IPower Strip 4 (oder Expert Power Control 1200-Serie) verwenden. Diese kann man über SNMPv2 (kaum gesichert) abfragen und jeden einzelnen Anschluss einzeln an- oder abschalten.
Mit SNMP werde ich einige andere Funktionen meines Switches, Routers und andere Netzwerkgeräte überwachen. Zudem werde ich eine „Präsenserkennung“ über Pings (vermutlich über den Router) durchführen.
Zur Netzwerksicherheit: Das ganze wird natürlich bei mir im eigenen Netzwerk entwickelt, in das ich auch Freunde hineinlasse. Diese sollen nicht auf die Smart Geräte zugreifen können. Da mir das Absichern aller Protokolle (besonders auf dem Arduino) zu komplex ist, schiebe ich diese Geräte alle in ihr eigenes VLan. Dabei wird die Servereinheit noch einmal in ein zweites Vlan eingebunden, welches noch meine Geräte beinhaltet (via Port oder Mac Adressen Filterung).
Den Internetzugriff realisiere ich vermutlich über ein VPN (vermutlich OpenVPN), sodass ich im Prinzip nur innerhalb meines Netzwerkes auf meine Home Assistant Software zugreifen kann.
Ich bin noch am Überlegen, ob ich eventuell ein eigenes Smart Glühbirnen Netz aufbauen werde. Philips Hue und Belkin WeMo lassen sich grundsätzlich in Home Assistant miteinbinden. Die Qube Glühbirne, die ich vermutlich gegen Juni erhalte, soll Schnittstellen für Entwickler bieten, sodass es da vermutlich auch eine Möglichkeit geben wird, diese einzubinden.
Was mich bei den Glühbirnen momentan mehr beschäftigt, ist das Problem, dass die normalen Lichtschalter nicht benutzt werden dürfen. Das ist natürlich bescheiden, da ich diese ja nicht einfach aus der Wand nehmen kann. Eine Überlegung war, diese Lampen mit 433 MHz Lichtschaltern, die ich über die normalen Schalter klebe, zu steuern. Ob das aber so einfach funktioniert, kann ich noch nicht sagen. Phillips Hue und Konsorten bietet da zwar auch Schalter, diese Kosten aber wieder einiges, weshalb ich diese eigentlich vermeiden würde.
Die Umsetzung dieses Projektes ist momentan nach Ende meines Auslandsjahres im Juni geplant. Das Risiko, dass irgendein Teil des Projektes nicht so arbeiten will, wie ich es mir erhofft habe, ist natürlich da. Aber das sind Probleme, die ich erst bei der Umsetzung feststellen werde und dann kreativ lösen darf. Je nach dem wie detailliert ich nachher über das Ergebnis berichte, gibt es dazu mindestens einen Blogeintrag.