Raspberry-PI + BAOS

Erstmal: Warum überhaupt ? nur weil der RasPI cool ist ? - obwohl der LEIBnix seit 2002 stabil auf der UNC20/CC7U Hardware läuft, es gibt doch einige offene Punkte:

- Uhrzeit per NTP
- mehr Speicher für das Dateisystem
- Web-Interface
- Verwendung als EIBnet-IP-Gateway
- etc...

Was die EIBmax-Module angeht: es gibt eigentlich keine PCs mehr mit serieller Schnittstelle, die USB-nach-seriell Umsetzer sind problematisch, also wäre eine EIBnet-IP-Schnittstelle schon schick, aber: die käuflichen sind alle leidlich teuer.

Diese Lösung basiert auf einem Raspberry-PI Modell B mit einem Wheezy/Raspian und verwendet ein BAOS-820 Modul für den Buszugang. Ist damit auch als Programmierschnittstelle, also IP-Tunnel für die ETS verwendbar.

Vorgehensweise

Die serielle Schnittstelle beim RasPI ist /dev/ttyAMA0 - diese wird normalerweise als Konsole verwendet, das müssen wir deaktivieren.

- in /etc/inittab : die Zeile mit dem ttyAMA0 auskommentieren
- in /boot/cmdline.txt : den Teil mit ttyAMA0 entfernen

Dann brauchen wir die Software für den EIB-Daemon 'eibd' : SourceForge BCU-SDK - das Original stammt von der Universität Wien. Nun also die aktuellsten Versionen von 'pthsem' und 'bcusdk' herunterladen.

- http://sourceforge.net/projects/bcusdk/files/pthsem/pthsem_2.0.8.tar.gz/download
- http://sourceforge.net/projects/bcusdk/files/bcusdk/bcusdk_0.0.5.tar.gz/download

Compilieren

Die Sourcen auf den Raspberry kopieren und entpacken, konfigurieren, erstellen und installieren:

tar xvfz pthsem_2.0.8.tar.gz
tar xvfz bcusdk_0.0.5.tar.gz

cd pthsem-2.0.8
./configure
make
sudo make install

cd ../bcusdk-0.0.5
export LD_LIBRARY_PATH=/usr/local/lib

./configure --with-pth=yes --without-pth-test --enable-onlyeibd --enable-eibnetip --enable-eibnetiptunnel --enable-eibnetipserver --enable-ft12

make
sudo make install

Der gesamte Vorgang kann ca. 20-30 Minuten dauern.
Nun muß noch die dynamische Bibliothek nach /usr/local/lib geladen werden, damit der EIBD funktioniert:

echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf.d/bcusdk.conf
sudo ldconfig


Troubleshooting

Wenn das Compilieren des eibd nicht klappt, mit einem Fehler "Unable to locate pthsem...", könnte es daran liegen, dass der PATH nicht '/usr/local/lib' enthält.

Einrichten

Damit der EIBD beim Start des Raspberry automatisch geladen wird, tragen wir noch folgendes am Ende in die Datei /etc/rc.local ein:

# run the EIBD on start
/usr/local/bin/eibd -D -T -R -S -i -u --eibaddr=0.0.1 --daemon=/var/log/eibd.log --pid-file=/var/run/eibd.pid ft12:/dev/ttyAMA0


Test mit EIBnetGo

Mein Tool EIBnetGo (Windows) kann verwendet werden, um Schaltkommandos an ein EIBnet-IP Gateway zu verschicken. Das funktioniert von der Konsole (Befehlszeile), aus Batch-Dateien und auch per Zeitplanung.
Die EXE benötigt lediglich eine INI-Datei, die die eigene IP-Adresse und die des Eibnet-IP-Gateway enthält - dies kann auch über folgenden Aufruf ermittelt werden:

C:\>EIBnetGo search

Wird das Gateway gefunden (also zB der Raspberry), kommt etwa folgende Ausgabe:

EIBnetGo Version v03

1. trying interface 172.16.1.221 ..

received Search response:
IP address 172 16 1 161
KNX Medium 2
EIB address 00 00
r.serial 00 00 00 00 00 00
r.MAC 00 00 00 00 00 00

Hier wird ein Gateway mit der Adresse 172.16.1.161 gefunden, wobei bei meinem PC das Interface 172.16.1.221 verwendet wird.

Will man nun Geräte schalten, also Gruppenadressen versenden, dann geht das zB. so:

C:\>EIBnetGo send 10/4/10 EIS1 0

Download : EIBnetGo (ZIP v03)

Test mit der ETS-Software

Mein RasPI hat die IP-Adresse 172.16.1.161 und wenn man den Zugang mit der ETS konfiguriert, sieht das so aus: