Gateway für EnOcean-Funk Mit dem Raspberry Pi in alle Richtungen

Zahlreiche Hersteller bieten Gateways an, die zwischen dem EnOcean-Funk und anderen Netzwerksystemen vermitteln. Doch mit etwas Programmieren ist auch eine universelle und flexible Lösung auf Basis des Raspberry Pi möglich, die sich zudem preiswert realisieren lässt.

von Klaus Dembowski, Wissenschaftler am Institut für Mikrosystemtechnik der Technischen Universität Hamburg-Harburg.

Das Funksystem der Münchner Firma EnOcean ist genügsam in der Stromaufnahme und deshalb für den Betrieb mit Energy-Harvesting-Elementen prädestiniert. Die »drahtlosen Schalter« sind hierfür die bekannteste Anwendung. In der Gebäudeautomatisierung ist diese Technik weit verbreitet und gilt als Paradebeispiel für eine erfolgreiche Energy-Harvesting-Lösung.

So funktioniert EnOcean

Beim Druck auf ein EnOcean-Schalterelement wird soviel Energie (ca. 150 µWs) gewandelt, dass damit ein Mikrocontroller und eine Funkschnittstelle versorgt werden können, um ein Datentelegramm an einen Empfänger zu senden. Dieser schaltet beispielsweise die Deckenbeleuchtung ein oder steuert die Rollläden. Da sich das Verlegen von Kabeln erübrigt, können die Schalter frei »irgendwo« im Raum positioniert werden. Das EnOcean-Funkprotokoll nutzt die Amplitudenumtastung (Amplitude Shift Keying, ASK) als Modulationsverfahren, das sich relativ einfach implementieren lässt und eine Datenrate von bis 125 kbit/s ermöglicht. Aufgrund der kurzen Datentelegramme ist die Wahrscheinlichkeit von Kollisionen gering und Interferenzen mit anderen Funksystemen sind unwahrscheinlich. Zur Sicherheit, damit ein Empfänger auch dann noch das für ihn bestimmte Signal erkennen kann wenn mehrere Funksender gleichzeitig aktiv sind, wird das Datentelegramm mindestens zweimal hintereinander übertragen. Der zeitliche Abstand dazwischen ist zufallsbestimmt. Die Telegrammlänge ist variabel und hängt vom jeweiligen Sendertyp (Schalter, Sensor) ab. Die maximale Übertragungsdauer, inklusive der wiederholt gesendeten Dateninformation, beträgt 40 ms. Bestandteil jedes Telegramms ist eine 32-bit-Senderadresse. Diese stellt sich als einmalig dar, sodass über vier Milliarden verschiedene EnOcean-Sender voneinander zu unterscheiden sind.

Die Firma EnOcean bietet als Erfinder dieser Technologie eine ganze Reihe verschiedener Module und Entwicklungskits an, die auch die Basis für die unterschiedlichen Geräte bilden, hergestellt und vertrieben von den EnOcean-Alliance-Partnerfirmen. In den Modulen, die auf einem besonders sparsamen 8051-Mikrocontrollerkern basieren, ist der Protokollstack quasi mit in die Firmware integriert, sodass für die Abwicklung des Funkprotokolls kein zusätzlicher Controller notwendig ist.

So wie andere Funksysteme ist auch der EnOcean-Funk standardisiert (ISO/IEC 1443-3-10). Wie die meisten Nahfunksysteme für Sensornetze oder für die Gebäude- und Hausautomatisierung bietet er jedoch keine IP-Funktionen, die für Geräte im Internet der Dinge als Pflicht verstanden wird. Deshalb werden für Systeme wie Z-Wave, ZigBee/Pro (Green Power), BLE und eben auch für den EnOcean-Funk Router oder Gateways angeboten, um diese lokalen Netze an das Internet anzubinden.

Ein Gateway soll sowohl bei der Entwicklung als auch bei der Anwendung von Systemen mit EnOcean-Funk universell Daten vermitteln können, also zwischen dem EnOcean-Funk und möglichst vielen Endgeräten (Bild 1). Die Software des Gateways decodiert und verwaltet die empfangenen Funktelegramme (ESP3-Paket). Anhand einer implementierten Sensorknotenliste lassen sich die EnOcean-Geräte identifizieren, weil es eben verschiedene Typen wie Schalter oder Sensoren gibt. Die jeweilige Funktion mit den dazugehörigen (Schalt-)Elementen ist selbstverständlich an das jeweilige Endgerät zu übermitteln, wofür sich dann eine Anzeige- und Bedienoberfläche bilden lässt.

Die wesentliche Anforderung an die Gatewayhardware ist, dass sie den EnOcean-Funk empfangen kann und über möglichst viele unterschiedliche Schnittstellen wie LAN, WLAN, BLE, aber auch UART, USB, GPIO, I²C und SPI verfügt, an die bearbeitete EnOcean-Pakete weitergeleitet werden. Dadurch lässt sich eine Vielzahl unterschiedlichster Endgeräte erreichen. Ein Raspberry Pi erfüllt diese Anforderung.

EnOcean goes Pi

Neben den klassischen Modulen hat EnOcean einen USB-Dongle (USB 300) als Transceiver sowie eine Platine mit einem TCM 310-Modul (EnOcean Pi, Bild 2) entwickelt, die sich direkt auf die GPIO-Leiste eines Raspberry Pi stecken lässt. Ein Raspberry Pi lässt sich somit recht einfach als Plattform für einen Heimautomatisierungsserver verwenden, der Daten der Schalter und Sensoren empfängt, Aktoren für Licht- oder Rolladenbetätigung steuert und über WLAN in einem IP-Netz per Smartphone erreichbar ist. Insbesondere für den Heimautomatisierungsserver FHEM, der unter Open Source firmiert, sind im Internet viele Anleitungen für die Verwendung mit einem Raspberry Pi zu finden.

Das EnOcean-Pi-Modul wird auf die GPIO-Leiste des Raspberry Pi gesteckt, beide passen noch in ein übliches RP-Gehäuse. Im Gegensatz zum USB 300 hat der EnOcean Pi eine externe Antenne, weswegen seine Empfangs- und Sendeeigenschaften besser sind. Der USB 300 lässt sich praktisch von jedem Computer mit USB-Port einsetzen, weil hier ein FTDI-Chip als USB-Controller verwendet wird, der einen virtuellen seriellen Port im System implementiert.

Zur Kommunikation mit dem Raspberry Pi verwendet der EnOcean Pi die UART-Schnittstelle, deren Pin 8 (GPIO14) zum Senden und Pin 10 (GPIO15) zum Empfangen von Daten erforderlich ist. Für die Spannungsversorgung benötigt das Modul zusätzlich 3,3 V (Pin 1) und Massenpotenzial (Pin 6). Als ein Nachteil des EnOcean Pi kann gesehen werden, dass wegen der Platine die oberen Pins des Raspberry Pi nicht mehr zugänglich sind und eine Vermittlung der empfangenen Daten über SPI oder I²C deshalb nicht mehr möglich ist.

Für die Kommunikation über die UART-Schnittstelle ist die Gerätedatei /dev/ttyAMA0 zuständig. Hierfür ist es wichtig, dass die serielle Konsole vor dem Einsatz des EnOcean Pi deaktiviert wird, weil das Betriebssystem die UART-Schnittstelle standardmäßig als serielle Konsole benutzt. Diese lässt sich mithilfe der Konfigurationssoftware »raspi-config« unter den erweiterten Einstellungen deaktivieren.