Das eigene Haus hacken: So baust du dir eine Fernbedienung, die Türen öffnet
Wer per Fernbedienung den HTPC oder Beamer hoch und die Jalousien herunterfahren möchte, das Licht dimmen oder die Heizung einschalten möchte, der benötigt eine Heimautomation. Fertige Produkte gibt es in diesem Bereich reichlich: Von der billigsten Funksteckdose (die nur bei gutem Wetter funktioniert) bis zur luxuriösen Produktserie, die die Tür abschließt oder die Heizung steuert.
Wer viel Geld ausgeben möchte, kann die Installation getrost einem Fachmann überlassen. Wer aber Geld sparen möchte und den Drang verspürt, selbst Hand anzulegen, dem bieten sich vielfältige Möglichkeiten. Mit ein paar Mikrocontrollern und einer Handvoll Bauteilen lässt sich nämlich eine Heimautomation (auch mit geringen Vorkenntnissen) relativ einfach selbst bauen.
[metabox keyword=“arduino“]Bis vor kurzem galten Mikrocontroller selbst unter vielen Programmierern als biestige Ungetüme. Jedes von ihnen brauchte seinen eigenen, oft sehr teuren Programmer, der die Hardware entsprechend konfiguriert – und selbst dann waren die Mikrocontroller nur im Assembler programmierbar. Doch mit dem Erscheinen der Arduino-Plattform hat sich das grundlegend geändert.
Was ist Arduino?
Die Arduino-Plattform ist eine preiswerte Open-Source-Umgebung für ATMega-Mikrocontroller, die aus verschiedenen ATMega-basierten Experimentier-Platinen besteht. Diese liefern die I/O-Pins des Controllers bequem auf Buchsenleisten und bieten meist – per USB – eine serielle Schnittstelle zur Kommunikation mit dem Controller und zum Upload von Programmen.
Dazu passend gibt es so genannte Shields, mit deren Hilfe man alle möglichen Arten zusätzlicher Hardware auf das Arduino aufstecken kann (ja, wie Lego). Das geht von Ethernet-Schnittstellen über Schrittmotor- oder LED-Treiber bis zu kompletten *Copter-Controllerboards mit Gyroskopen, GPS und Servosteuerung. Die dazu gehörende Java-IDE ist zwar rudimentär, läuft aber auf allen gängigen Betriebssystemen. Vor allem enthält sie viele Libraries, mit denen sich komfortabel arbeiten lässt – und zwar auch dann, wenn man in C, und vor allem in der Programmierung von Mikrocontrollern, nicht allzu geübt ist.
Da auch die Hardware Open Source ist, gibt es reichlich Arduino-kompatible Derivate mit allen nur erdenklichen Erweiterungen oder Variationen. Wem das nicht reicht, der kann sich seinen eigenen Arduino-Klon bauen. Da die Hardware außer dem Mikrocontroller nicht allzu viele Teile hat, geht das sogar mit einfachsten Mitteln und einer Lochraster-Platine.
Welches Arduino passt für die Heimautomation?
Von Arduino selbst gibt es zahlreiche Varianten: Von Allround-Boards mit USB-Anschluss bis zu Spezialplatinen, die sich in Kleidung einnähen lassen. Bei der Heimautomation kommt es aber vor allem darauf an, dass entfernt voneinander verbaute Komponenten miteinander kommunizieren können. Das sollte vorzugsweise per Funk geschehen, denn die wenigsten Wohnungen haben eine Hausbus-Installation oder Ethernet in jeder Ecke.
Bei der Heimautomation müssen sich hauptsächlich kleinste Datenpakete übertragen lassen – zum Beispiel um Schaltbefehle oder Sensordaten zu übermitteln. Dafür WLAN oder Bluetooth zu benutzen, wäre mit Kanonen auf Spatzen geschossen. Aber die Arduino-Welt kennt zum Glück mehr als nur diese beiden Funkstandards aus dem „klassischen Computing“. Am populärsten ist der Zigbee-Standard, der sogar Mesh-Networking unterstützt. Das bedeutet, dass auch Nodes, die einander nicht direkt „sehen“, trotzdem miteinander kommunizieren können. Dieser Luxus hat allerdings seinen Preis, denn die Zigbee-Komponenten sind nicht gerade billig.
Funk mit RFM12
Wer ein wenig tiefer in die Materie einsteigt, wird früher oder später über ein paar günstige Funkmodule stolpern, die dennoch vollwertige Transceiver sind: Sie enthalten sowohl Sender als auch Empfänger und ermöglichen damit bidirektionale Kommunikation im vergleichsweise zivilisierten 868MHz-Band.
Im Onlineshop können Heimhacker Arduino-kompatible Bausätze (und Fertigmodule) namens „JeeNodes“ kaufen, die diese Funkmodule bereits enthalten. Eine passende Library, mit der man die Transceiver nutzen kann, gibt es ebenfalls dazu. Die JeeNodes besitzen selbst keine USB-Schnittstelle, lassen sich aber über ein USB-Seriell-Adapter an einen Rechner anschließen. Damit ist es möglich, sie dann wie gewohnt mit der Arduino-IDE zu programmieren oder die serielle Schnittstelle zur Kommunikation mit dem Controller zu nutzen.
Die Zentrale und ihre Frontends
Was den bisher angesprochenen Bauteilen noch fehlt, ist eine Brücke zur Außenwelt. Die JeeNodes können zwar miteinander kommunizieren, aber nicht mit einem TCP/IP-Netz. Hier bietet sich zum Beispiel ein Raspberry Pi an. Dieser Mini-Computer eignet sich perfekt als Heimautomationszentrale, denn er verbraucht wenig Strom und hat jede Menge IO-Pins, an die sich die Jeenodes (und natürlich auch alle anderen Arduino-Kompatiblen) direkt anschließen lassen. Außerdem gibt es eine Java Runtime Environment (JRE), die darauf läuft. Die ist nötig, wenn OpenHAB zum Einsatz kommen soll.
OpenHAB (Open Home Automation Bus) ist eine Software und das Herz einer Heimautomationslösung: Über diverse Softwaremodule („Bindings“ im OpenHAB-Jargon) lassen sich viele kommerzielle Heimautomationskomponenten ansprechen. Es gibt aber auch generische Bindings, wie Exec oder HTTP, über die OpenHAB mit so ziemlich jeder nur denkbaren Bastelei kommunizieren kann. Dazu gibt es mächtige Rules und Scripts, die etwa eine Anwesenheitssimulation für Abwesenheitszeiten wie im Urlaub abbilden können.
Es sei erwähnt, dass es noch andere Projekte gibt, die ähnliche Ziele verfolgen, wie etwa das in Perl geschriebene FHEM. Was Bastler verwenden möchten, hängt letzlich von den Rahmenbedingungen und dem persönlichen Geschmack ab.
Die Steuerung per Web
Eine solche Konstruktion lässt sich auch übers Web steuern: Es gibt zwei
Webfrontends sowie native Apps für Android und iOS, die per REST mit
OpenHAB kommunizieren. Die Konfiguration erfolgt über Items und Sitemaps. Über verschiedene Item-Typen wie Switch, Dimmer, Rollershutter, Number und String – die sich in Gruppen zusammenfassen lassen – können Bastler ihre Hardware verknüpfen. Diese Items und Gruppen lassen sich dann in einer Sitemap anordnen. Das Frontend nutzt diese wiederum, um die Items in einer Baumstruktur darzustellen.
Verschiedene Szenarien können so umgesetzt werden: In OpenHAB gibt es dafür sogenannte Scenes, mit denen sich mehrere Aktionen zusammenfassen lassen. Etwa, um eine Dinner-Scene zu definieren, die die Lampen anschaltet, die man beim Essen braucht – und eine TV-Scene, die den Fernseher und HTPC einschaltet und das Licht im Raum dimmt.
Türöffnen per JeeNodes: So kann es gehen
Mit zwei JeeNodes lässt sich bereits eine ganze Menge anfangen. Wer beispielsweise in ständiger Angst lebt, den Paketboten zu verpassen, kann sich leicht eine Fernbedienung für seinen Türöffner bauen. Dazu nötig ist zunächst das Wissen, wie ein Türöffner funktioniert – was schnell erklärt ist: Wenn eine Person den Taster für den Öffner drückt, schließt sich ein Stromkreis, der einen Elektromagneten im Türschloss mit Strom versorgt. Es summt und die Tür lässt sich öffnen.
Der Hobby-Hacker muss parallel zu dem Taster, der dafür sorgt, den Stromkreis zu schließen, ein Relais (also einen Schalter) einbauen. Dieses lässt sich dann per JeeNode aktivieren, wenn sich die Tür öffnen soll. Und wer schon dabei ist, eine Fernbedienung für den Türöffner zu bauen, kann auch gleich das Klingelsignal an die Fernbedienung weiterleiten.
Das ist in der Tat ähnlich einfach: Klingelt jemand an der Tür, schließt er damit den Stromkreis, der den Signalgeber (mechanische Klingeln sind ja selten geworden) versorgt und es bimmelt. Dazu ist das Wissen nötig, an welchen Kontakten das Klingelsignal anliegt, um es auszuwerten.
Als erstes gilt es also herauszufinden, an welchen Kontakten der Türklingel (oder Sprechanlage) das Klingelsignal und der Taster für den Öffner sich befinden. Das ist in der Regel nicht weiter schwierig, denn für die meisten Klingel- und Türsprechanlagen findet sich die entsprechende Dokumentation leicht im Web.
Sind die benötigten Kontakte identifiziert, kann man anfangen, die Schaltungen zu planen. Die JeeNode, die an die Klingelanlage angeschlossen wird, braucht ein Relais, um den Öffner zu betätigen und einen Optokoppler (ein Bauelement, dass der Übertagung von Signalen dient), um das Klingelsignal auszuwerten.
Die zweite JeeNode, die als Fernbedienung dient, benötigt einen Taster, um das Signal zur Betätigung des Öffners zu senden und einen Signalgeber. Das kann ein kleiner Summer oder eine LED sein – wer will, kann aber auch einen MP3-Player anschließen.
Für die Stromversorgung der JeeNodes reichen handelsübliche USB-Netzteile. Es eignen sich aber auch Netzteile ausgedienter Mobiltelefone. Wichtig ist, dass sie mehr als 4 Volt, aber möglichst nicht mehr als 9 Volt Gleichspannung liefern. Mit trickreichem Code kann man aber auch Batterien für eine der JeeNodes verwenden.
Fazit und Ausblick
Das Beispiel demonstriert, wie sich mit geringem Aufwand beeindruckende Effekte erzielen lassen. Man kann ohne weiteres eine der beiden JeeNodes an einen Raspberry Pi anschließen und per OpenHAB das Deckenlicht flackern lassen, wenn es klingelt. Die Tür öffnet man mit der OpenHAB-App auf Smartphone oder Tablet.
Der Phantasie sind keine Grenzen gesetzt – und das betrifft nicht nur das Haus. Es gilt auch für die Materialauswahl: Obsolete Elektronik kommt so noch einmal sinnvoll zum Einsatz. Je mehr Hacker- und Makerspaces es gibt, desto mehr Werkzeuge wie CNC-Fräsen oder Lasercutter gibt es für Hobbybastler – die CAD-Software muss allerdings noch bedient werden. Aber dann gilt: Was man sich vorstellen kann, kann man auch bauen.
Also einen elektronischen Kreislauf anzuzapfen ist immerhin noch machbar. Ich dachte wirklich ich könnte mehr darüber lesen, wie ich wirklich mein Haus anzapfen kann und nicht lediglich den elektron. Türöffner einer Mietwohnung modifiziere. Also ich dachte jetzt wirklich an ein Haus, wie es in der Überschrift auch plakatiert ist.
Leichter gehts mit homecontrol4me, einfach mal googlen, dort gibts ne fertige anleitung, flashbare roms für arduino und ne app für android, hab mit nem funkrelais mein türöffnerknopf gebrückt und das läuft 1A
Abgefahren
Hier noch ein tolles Projekt für die Hausatomatisierung über das Raspberry Pi: http://raspberrypiguide.de/howtos/powerpi-raspberry-pi-haussteuerung/