Machen Sie Ihren Raspberry Pi fit für den Einsatz in der professionellen Gebäudeautomation via KNX.
Zum Programmieren von KNX-Geräten gibt es lediglich eine einzige Anwendung, die Engineering Tool Software (ETS), die nur unter Windows läuft. Das ist Fluch und Segen zugleich: Auf der einen Seite erlaubt ETS, die Geräte aller Hersteller mit einer Applikation zu programmieren. Auf der anderen Seite gibt es keine Alternativen zur dem Programm. Die Tabelle “ETS-Lizenzen” gibt Ihnen einen groben Überblick über die ETS-Lizenzmodelle und die damit verbundenen Kosten. Es gibt immer wieder Rabattaktionen, die es ermöglichen, bis zu 40 Prozent vom Preis zu sparen. Bei der Teilnahme an einem kostenlosen Online-Training im eCampus [1] erhalten Sie einen Gutschein, den Sie beim Kauf einer ETS-Lite-Lizenz einlösen können.
|
Lizenz |
Gerät pro Projekt |
Preis |
|---|---|---|
|
Demo |
5 |
kostenlos |
|
Lite |
20 |
200 Euro |
|
Home |
64 |
350 Euro |
|
Professionell |
unbegrenzt |
1000 Euro |
Aktuell steht ETS in der Release 6 zum Download bereit. Im Kern arbeitet sie wie die Vorgängerversion, bringt aber einige entscheidende Verbesserungen mit. Die für Häuslebesitzer interessanteste Änderung stellt die neue Home-Lizenz dar. Sie ermöglicht es, zu einem vernünftigen Preis Projekte mit bis zu 64 KNX-Geräten zu erstellen. Das genügt in den meisten Fällen für ein Einfamilienhaus. Auch die Lizenzverwaltung wurde im Vergleich zur vorherigen Version entscheidend verbessert.
Viele Kleinigkeiten an der Benutzeroberfläche sorgen für eine einfachere Bedienung. Durch das neue Dashboard (Abbildung 1) haben Sie eine bessere Übersicht über das Projekt. Die wohl wichtigste technische Neuerung stellt der Support von KNX Secure und KNX IoT dar.
Grundlagen
KNX ist seit 20 Jahren ein bewährter offener Standard für die Automation in Gebäuden. Hat ein Gerät eines beliebigen Herstellers eine passende Zertifizierung, arbeitet es mit allen anderen auf dem Markt befindlichen KNX-Geräten zusammen. KNX beruht auf einer dezentralen Architektur. Alle Geräte tauschen über einen Bus Nachrichten aus; es gibt keine zentrale Komponente, die alles steuert. Jedes Gerät enthält einen Mikrocontroller, der die Kommunikation übernimmt. Daher kosten KNX-Geräte generell mehr als traditionelle Schaltelemente.
Die Grundlagen von KNX sind sehr umfassend. Daher verweisen wir an dieser Stelle auf einen Artikel [10] unserer Schwesterzeitschrift Linux-Magazin, der die Basics gut zusammenfasst. Wundern Sie sich nicht, dass er schon einige Jahre alt ist: An der Art und Weise, wie KNX arbeitet, hat sich in den letzten Jahren kaum etwas verändert.
Erste Anlaufstelle für alle Fragen rund um KNX ist die Homepage der KNX Association [11]. Die Webseite bietet Einsteigern wie Fortgeschrittenen viel Wissenswertes. Eine weitere gute Informationsquelle ist der KNX-Youtube-Kanal [12]. Hier finden Sie zu vielen Themen gut strukturierte Videos. Als Einstieg eignet sich ein Clip, der beschreibt, wie Sie Projekte in ETS6 erstellen [13].
Testaufbau
Der Testaufbau fällt in diesem Projekt etwas größer aus: Um den RasPi über KNX anzubinden, benötigen wir zuerst eine funktionierende KNX-Installation. Im Versuch sind nur die nötigsten Komponenten vorhanden (Abbildung 2). Das Schöne an dem Protokoll: Sie dürfen problemlos Module unterschiedlicher Hersteller mischen. Als Drossel kommt hier eine Siemens 5WG1125-1ab22 [2] zum Einsatz. Sie dürfen für einen eigenen Aufbau aber auch zu einem günstigeren Modell greifen.
Um einige kleine Funktionen aufzubauen, setzen wir zwei einfache Universalschnittstellen von ABB ein [3]. An einen der beiden Bausteine schließen wir einen Taster an, den zweiten statten wir mit LEDs aus. Als Busankoppler dient ein über 15 Jahre altes Gerät von Siemens [4]. Dank des robusten Standards arbeitet das Museumsstück problemlos mit erheblich jüngeren Komponenten zusammen. Alternativ verwenden Sie einen modernen Ankoppler wie den KNX-USB-Interface332 [5] zum Programmieren der Komponenten. Alle Geräte sind über den Bus miteinander verbunden. Das zugehörige ETS-Projekt bindet alle Komponenten ein und versieht sie mit Adressen (Abbildung 3). Eine Gruppenadresse fasst alle Schaltelemente zusammen. So kann der Taster beispielsweise LEDs an- und ausschalten.
Vergewissern Sie sich, dass Ihr Testaufbau einwandfrei arbeitet, bevor Sie mit dem Setup des Raspberry Pi beginnen. Um den Mini-Rechner mit dem Bus zu verbinden, kommt das kBerry-Modul der Firma Weinzierl zum Einsatz [6]. Es enthält einen zertifizierten KNX-Stack, der über einen galvanisch getrennten seriellen Port mit dem RasPi kommuniziert. Die Stromversorgung des KNX-Teils erfolgt über den Bus. In ETS dürfen Sie bis zu 1000 Datenpunkte für das Modul konfigurieren; eine genaue Beschreibung der Funktionsweise des Moduls finden Sie online [7].
Auf dem RasPi dient Raspberry OS Light als Betriebssystem. Die Kommandos aus Listing 1 bringen den SBC auf den aktuellen Stand und installieren die nötigen Programme und Bibliotheken. Der Prozess dauert je nach Internetverbindung eine Weile. Im nächsten Schritt geht es an das Einrichten der Software zur Unterstützung des kBerry-Moduls. Die dazu nötigen Kommandos finden Sie in Listing 2. Die Quellen des Bus Access and Object Servers [8] laden Sie aus dem Git-Repository herunter und bauen BAOS direkt auf dem Raspberry Pi.
Listing 1
RasPi-Setup
$ sudo apt update $ sudo apt upgrade $ sudo apt install git cmake libboost-all-dev
Listing 2
kBerry-Software einrichten
$ git clone https://github.com/weinzierl-engineering/baos.git $ cd baos $ cmake -DCMAKE_BUILD_TYPE=Release -DWZSDK_STATIC=1 -DWZSDK_SAMPLES=1 -DWZSDK_SAMPLES_QT=0 -G "Unix Makefiles" . $ sh ./build_raspbian.sh $ sudo usermod -a -G dialout pi
Jetzt passen Sie noch die Boot-Konfiguration so an, dass sie die UART-Schnittstelle des Moduls aktiviert. Um das zu erreichen, fügen Sie in der Datei /boot/config.txt die zwei Zeilen aus Listing 3 hinzu. In der Datei /boot/cmdline.txt entfernen Sie den Eintrag console=serial0,115200, falls dieser vorhanden ist. Nach einem abschließenden Reboot greifen die Änderungen.
Listing 3
Boot-Konfiguration
enable_uart=1 dtoverlay=disable-bt
Nun werfen wir einen genaueren Blick auf die installierten Beispielprogramme. Sie befinden sich im Ordner ~/baos/samples/c++/. Das Programm BaosSerial.cpp liest die auf dem kBerry-Modul definierten Datenpunkte aus und zeigt sie an. Damit es auf dem Raspberry Pi läuft, müssen Sie das richtige serielle Gerät in den Sourcecode eintragen. In der Zeile für den Verbindungsaufbau ändern Sie den Namen der Schnittstelle von COM8 auf /dev/ttyAMA0. Um das Programm erneut zu kompilieren, rufen Sie direkt im Ordner ~/baos/ das Kommando make -j5 auf.
Beim ersten Ausführen von Make werden alle Programme kompiliert, was unter Umständen einige Zeit dauert. Danach erzeugt Make nur noch die geänderten Dateien neu, was erheblich schneller vonstattengeht. Nach dem erfolgreichen Bauen der Software finden Sie die ausführbaren Dateien im Ordner ~/baos/bin/. Listing 4 zeigt, welche Ausgaben das Programm erzeugt.









