Raspberry Pi und EnOcean fürs Smart-Home

Der Raspberry Pi kann sehr gut als Server für die Hausautomatisierung verwendet werden. Das Thema Smart-Home erfreut sich in den letzten Jahren steigender Beliebtheit und so war es nur eine Frage der Zeit, bis auch der Raspberry Pi für diesen Bereich interessant wurde. 

Die Grundidee hinter der Hausautomatisierung besteht darin die Haustechnik mit der aktuellen Technik zu verbinden. Die Ausprägung dieser Idee spiegelt sich in unterschiedlichen Bereichen wieder:

  • Steuern
    Im einfachsten Fall kann man mit aktueller Hardware (Tablet, Handy) im Haus Geräte steuern. Derzeit sind das beispielsweise: Heizung, Klimaanlage, Rollos, Garagentor, Licht, Steckdosen, Multimediasysteme, usw…
  • Messen
    Mit steigenden Stromverbrauch steigt auch der Bedarf diesen besser zu optimieren. Aus diesem Grund haben sich unterschiedliche Systeme zur Messung, Kontrolle und Optimierung von Energieverbrauch etabliert. Im Idealfall spart man durch diese Methoden eine Menge Geld und als Nebeneffekt schont man die Umwelt.
  • Intelligente Systeme
    Die zunehmende Vernetzung des Eigenheims bringt den Vorteil, dass Messwerte und Steuerung zusammen auf einem Gerät bzw. einer Software landen. So kann man automatisiert Gebäude steuern und optimieren. Zum Beispiel schließen sich die Rollos, wenn Sonnenlicht in die Wohnung kommt und die Temperatur steigt, die Heizung heizt nur bei Bedarf, steigender Energieverbrauch beispielsweise bei einer defekten Kühltruhe kann frühzeitig erkannt werden.

Ein großer Hersteller in diesem Bereich ist EnOcean. EnOcean bietet unterschiedliche Produkte und Geräte an. Generell kann man diese in Sender (Schalter, Sensoren, usw.) und Empfänger (Lampen, Steuerungen, usw.) einteilen. Seit kurzem bietet EnOcean ein Funkmodul für den Raspberry Pi an. Durch diese Erweiterungsplatine wird der Raspberry Pi zu einem EnOcean Gateway und damit zur zentralen Steuerungeinheit für alle aktiven EnOcean Geräte im Empfangsbereich. Mit den folgenden Produkten habe ich ein komplettes EnOcean Netzwerk getestet. Diese Produkte wurden mir freundlicherweise von Conrad.at zur Verfügung gestellt:

Raspberry Pi Erweiterungs Platine EnOcean Pi Funkmodul
EnOcean Raspberry Pi

Damit wird der Raspberry Pi zum zentralen EnOcean Gateway und ist die Steuerungszentrale für alle Sender und Empfänger. Auf dem Raspberry Pi kann man so sein komplettes Heim konfigurieren (welcher Schalter schaltet wo den Strom an).

Sygonix Einsatz Funk Sender
Sygonix Einsatz Funk Sender
Der Sygonix Funk Sender, welcher mit dem EnOcean System arbeiten kann, ist sehr einfach aufgebaut. Das bemerkenswerte an diesem Schalter (er sieht wie ein normaler Lichtschalter aus) ist, dass er keine Stromversorgung benötigt. Die Energie, welche zum Senden des Signals benötigt wird entsteht durch das mechanische Drücken des Schalters. Es passiert also eine Umwandlung mechanischer in elektrischer Energie.

Sygonix Einsatz Funk Empfänger
Sygonix Einsatz Funk Empfänger
Der Sygonix Funk Empfänger kann relativ einfach in handelsübliche Steckdosen oder Lichtschalter eingebaut werden. Dieser Empfänger macht nicht mehr, als den Stromkreis bei eingeschaltetem Zustand zu schließen bzw. bei deaktivierten Zustand wieder zu öffnen.

Das interessanteste Produkt ist auf jeden Fall die Erweiterungsplatine für den Raspberry Pi. Die Platine wird am GPIO Port vom Pi angesteckt und passt sogar in normale Pi Gehäuse. Das Modul selbst besteht aus einer kleinen Platine mit einem relativ großen 868
MHz Sender/Empfänger. Dieser funktioniert bidirektional, das heißt der Pi empfängt Signale von den EnOcean Sendern reagiert darauf und sendet an einen oder mehrere EnOcean Empfänger.

EnOcean Raspberry Pi

Das Modul hat ein LED, welches den Betriebsstatus des Moduls anzeigt und einer Antenne. Laut Anleitung muss diese Antenne ausgerollt und möglich abstehend positioniert werden. Beim Test hat diese auch mit einem Raspberry Pi Gehäuse funktioniert. Bei einem größeren Haus ist jedoch vermutlich eine günstige Position vom Pi bzw. eine möglichst optimale Ausrichtung der Antenne bei Problemen sinnvoll.

Um das Modul am Raspberry Pi zu verwenden benötigt man Raspbian Wheezy. Dort muss man zunächst das Debugging über die GPIO Schnittstelle deaktivieren. Der Pi verwenden standardmäßig GPIO Pins um Debuginformationen auszugeben. Das heißt man kann zum Beispiel über einen angeschlossenen USB Stecker über das Terminal auf den Raspberry Pi zugreifen. Diese Funktionalität blockiert aber die Platine und muss also für die korrekte Verwendung deaktiviert werden. Um das zu bewerkstelligen gibt es 2 Möglichkeiten:

Möglichkeit 1
Dafür muss man 2 Dateien verändern:

  • sudo nano /boot/cmdline.txt
    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
    mit
    dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait 
    ersetzen
  • sudo nano /etc/inittab
    T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100 auskommentieren
    #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Nach diesen Änderungen bei den Dateien muss der Raspberry Pi die Einstellungen neu laden. Das geht am einfachsten über einen Systemneustart: sudo reboot

Möglichkeit 2
Eine andere und viel einfachere Möglichkeit ist ein Skript, welches man über GitHub downloaden kann. Dafür benötigt man jedoch eine Internetverbindung. Das Skript kann wie folgt installiert und ausgeführt werden:

sudo wget https://raw.github.com/lurch/rpi-serial-console/master/rpi-serial- console -O/usr/bin/rpi-serial-console && sudo chmod +x /usr/bin/rpi-serial-console

Dieses Skript kann man nun über folgenden Befehl ausführen:
sudo rpi-serial-console disable

Je nachdem welche Möglichkeit man verwendet hat sollten man die Platine nach einem Neustart normal verwenden können. Sollte man sich nicht sicher sein ob man alles richtig gemacht hat ein kleiner Tipp: das Skript zeigt bei der Ausführung eine Infomeldung. Bei mir war der manuelle Weg beim ersten Versuch nicht korrekt, deshalb zeigte mir das Skript eine hilfreiche Fehlermeldung.

FHEM

Nachdem wir nun über die Hardware bestens bescheid wissen stellt sich eine interessante Frage: Gibt es auch eine Software dazu? Funktioniert diese auf dem Pi? Hat jeder Hersteller seine eigene?

FHEMDie Antwort ist, dass es so gesehen keine Software gibt die vom Hersteller angeboten wird. EnOcean greift wie auch viele andere auf FHEM zurück. Das ist eine clevere Open Source Software, welche universell einsatzbar ist. FHEM wurde für die Hausautomatisierung konzipiert, ist jedoch offen, so das Hersteller sehr einfach Ihre Geräte dort einbringen können. Das EnOcean Raspberry Pi Modul wird beispielsweise zu 100% unterstützt, das heißt nachdem man die Software installiert und gestartet hat werden alle EnOcean Geräte im Empfangsbereich sofort erkannt. Problemlos und für Laien einfach! Der einzige Aufwand der noch entsteht ist die Konfiguration, aber zuerst einmal kurz zur Installation.

Installation

Bevor man FHEM installiert ist es ratsam den Pi erst einmal zu aktualisieren und die nötigen Bibliotheken zu installieren. FHEM benötigt beispielsweise Perl, deshalb installieren wir folgende Softwarepakete:
sudo apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl sudo apt-get install –f

Die Software selbst kann man als Linux Archive herunterladen. Für unser Debiansystem benötigen wir *.deb Pakete, weshalb wir FHEM über zwei Kommandos herunterladen und installieren:
wget http://fhem.de/fhem-5.5.deb sudo dpkg –i fhem-5.5.deb

Die Version 5.5 war bei der Erstellung dieses Artikels die aktuellste Version. Im Idealfall sollte man vor der Installation auf der FHEM Homepage nachsehen ob bereits eine neuere Version zur Verfügung steht und diese installieren.

Das Programm selbst startet automatisch und ist über die Weboberfläche zu erreichen. Lokal am Pi erreicht man die Weboberfläche mit „localhost:8083/fhem“ oder über einen anderen Rechner im selben Netzwerk mit der IP Adresse des Raspberry Pi zum Beispiel:
„192.168.1.4:8083/fhem“.

Konfiguration

FHEM stellt eine gute Dokumentation (Mit FHEM beginnen) bereit die einem schnell beim Einstieg hilft. Die Konfiguration von FHEM wird rasch sehr technisch und ist die komplexeste Aufgabe bei der Hausautomatisierung.

FHEM unterscheidet im Prinzip 2 unterschiedliche Geräte. Das sind Sender (Sonsoren) und Empfänger (Aktoren). Viele Geräte werden von FHEM automatisch erkannt und im System eingetragen. Dabei wird dem Eintrag ein sinnvoller Name gegeben. Bei meinem Sender war das zum Beispiel EnO_switch_0024556B. Bei wenigen Sendern sind diese Standardnamen durchaus sinnvoll, bei komplexeren Automatisierungen mit vielen Sendern und Empfängern sollte man diese intelligent neu benennen! Bei den Empfängern verhält es sich ebenso.

Der Screenshot aus dem FHEM zeigt den Sender. Neben allgemeinen Informationen sieht man unter dem Punkt Readings auch den aktuellen Zustand. Aktuell wird der Schalter gerade gedrückt. Die Statusänderung wird auch mitgeloggt, weshalb man auch die exakte Zeitangabe daneben findet. Das ist vor später bei einer komplexeren Konfiguration sehr sinnvoll.

FHEM

Das FHEM System bietet neben diesen beiden Geräten noch einige zusätzliche Funktionen wie zeitgesteuerte Kommandos, Benachrichtigungen, Logging und die Erstellung von Diagrammen. Für all diese Punkte möchte ich auf die Dokumentation hingewiesen. Bis alles korrekt funktioniert ist auch ein relativ großer Konfigurations- und Testaufwand nötig. Gerade Anfänger haben es hier nicht leicht!

FHEM ermöglicht bei seiner Konfiguration die Erstellung von Räumen. Diese Struktur ist sinnvoll um die einzelnen Geräte zu Gruppen zusammenzufassen. Nebenbei hat es auch die nette Funktion, dass man über Räume mehrere Geräte ansprechen kann, also beispielsweise mit einem Sender alle Empfänger in einem Raum schalten. Diese Räume müssen nicht physische Räume sein, weshalb man zum Beispiel mit einem Master Schalter alle Lichter in einem Haus einschalten könnte. Hier ist der Kreativität kaum eine Grenze gesetzt.

Ein sehr wichtiger Punkt bei FHEM ist die Sicherheit. Standardmäßig verwendet FHEM keine verschlüsselte Übertragung. Diese HTTPS Verschlüsselung kann man aber auch einstellen und somit sollte man gegen unerwünschte Zugriffe und Attacken von außen sicher sein. Von einem produktiven Einsatz ohne verschlüsselter Übertragung ist abzuraten!

Test der Raspberry Pi Erweiterungsplatine EnOcean

Der Empfänger wurde als Ersatz eines handelsüblichen Lichtschalters montiert. Bei mir war das der Vorraum, denn einer der beiden Schalter war meiner Meinung nach etwas ungünstig positioniert. Aus diesem Grund habe ich den Lichtschalter mit dem Sygonix Empfänger ersetzt. Der Einbau ist sehr einfach, er funktioniert genau so wie der Einbau eines Lichtschalters oder einer Steckdose. Man muss lediglich beachten, dass die Kabel korrekt angesteckt werden.

Den Sender habe ich mit einem doppelseitigem Klebestreifen provisorisch an der optimalen Position an der Wand angebracht.

Die Konfiguration am Raspberry Pi, dass der Sender bei einem Klick den Empfänger schaltet habe ich zuvor schon in FHEM gemacht. Der Raspberry Pi steht mehrere Meter entfernt bei meinem Router.

Mit diesem Setup war es mir möglich das Licht im Vorraum mit dem neu positionierten
Schalter über das EnOcean Gateway am Raspberry Pi zu schalten.

Test 1
Da der Raspberry Pi die zentrale Schaltzentrale ist wollte ich auch noch testen was passiert, wenn dieser zum Beispiel durch einen Stromausfall ausfällt. Wie erwartet funktioniert der Lichtschalter nicht mehr (klarerweise funktioniert das Licht bei einem Stromausfall nicht), wenn der Pi keinen Strom mehr bekommt und nicht läuft. Schaltet man ihn wieder ein dauert es eine Weile bis der Schalter wieder funktioniert. Die Konfiguration bleibt erhalten, FHEM startet bei einem Pi Neustart problemlos und lädt die gespeicherte Konfiguration. Der einzige Nachteil den man bei der Verwendung des EnOcean Systems hat ist eine minimale Wartezeit bei einem Pi Neustart.

Test 2
Eine wichtige Frage bei dem System ist die Reichweite, denn manche Häuser oder Wohnungen können durchaus auch weiter verzweigt sein. Gerade auch dicke Betonwände oder altes Mauerwerk stört oft Funksignale. Laut dem Hersteller hat der Sender eine maximale Reichweite von 300 Meter. Bei meinem Versuch den Schalter so zu positionieren, dass er nicht mehr vom Pi Modul sichtbar ist war nicht möglich. In meiner Wohnung wäre somit die Position des Senders in jedem einzelnen Winkel möglich!

Fazit

Das Raspberry Pi EnOcean Modul ist sehr einfach zu handhaben und funktioniert bis auf wenige Schritte wie die Installation und Konfiguration von FHEM problemlos und ist auch für unerfahrene Benutzer durchaus möglich. Das von mir getestete minimale System mit Sender und Empfänger funktioniert. Es gab keine Probleme, die Hardware macht was sie soll. Interessant wäre ein großen System aufzusetzen mit zig Sendern und Empfängern. FHEM wäre dafür jedenfalls gerüstet.

Text & Bild:
Werner Ziegelwanger
@ Developer-Blog


Produkte, die Sie interessieren könnten


Sag uns deine Meinung!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.