- alt - Anpassen eines Raspbian Image an den RPi Bus Controller
Zum Betrieb des RPi Bus Controllers am Raspberry Pi müssen einige Anpassungen vorgenommen und Tools installiert werden.
Nach dem ersten Start im Installationsmenü
expand_rootfs
change_pass – Passwort setzen (besser kein y oder z verwenden)
change_local – de_DE ISO-8859-1 (für korrekte SSH Darstellung)
overclock – medium (muss jeder selber entscheiden)
ssh – enabled
boot_behaviour – No
Finish
Hinweis
Das Installationsmenü kann jederzeit mit „sudo raspi-config“ neu gestartet werden.
Jetzt einmal neu starten.
sudo reboot
Login:pi
Password:”wie gesetzt”
Nützliches
Updates
Um die Raspbian Distribution immer auf dem neusten Stand zu halten, solltet ihr von Zeit zu Zeit „sudo apt-get update“, und danach „sudo apt-get dist-upgrade“ aufrufen. Dadurch wird die Distribution auf den aktuellen Stand gebracht. Je nachdem wieviel zu installieren ist kann das eine Weile dauern.
Midnight Commander
Wenn ihr mit ein bisschen Komfort auf dem Raspberry Pi arbeiten wollt, empfehle ich die Installation des Midnight Commander.
Dafür einfach „sudo apt-get -y install mc” aufrufen.
Danach kann der Midnight Commander mit „sudo mc“ mit Administratorrechten gestartet werden.
Ich bevorzuge die Verwendung des internen Editors, dafür muss unter Config “Use internal edit“ selektiert werden.
Deutsches Tastaturlayout
Um das Tastaturlayout auf Deutsch umzustellen, muss in der Datei „/etc/default/keyboard“ XKBLAYOUT=”de” gesetzt werden.
Deutsche Zeitzone
Um die Zeitzone auf "Berlin" zu stellen, den folgenden Befehl ausführen und Europa -> Berlin auswählen:
sudo dpkg-reconfigure tzdata
Dies ist wichtig, damit die berechneten Zeiten für den Sonnenaufgang/-untergang stimmen.
Notwendige Packete für KNXWEB2
KNXWEB2 ist ein PHP Programm. Das RPi muss zur Ausführung einen WebServer und PHP installiert haben. Dafür sollten folgende Packete nach Anleitung installiert werden.
Optional kann auch der MySQL-Server installiert werden. Damit ist es möglich Objekte (z.B. Temperatur) in einer Datenbank zu loggen. Dies hat sich als performanter und fehlertoleranter herausgestellt.
IP Adresse ermitteln und festlegen
Durch den Aufruf von „ifconfig“ kann die aktuelle IP Adresse ermittelt werden. Jetzt im Router (z.B. FritzBox) wenn möglich angeben, dass dem RPi immer diese IP zugewiesen wird. Alternativ kann auch eine statische IP im Raspberry konfiguriert werden. Dafür muss der Inhalt von "/etc/network/interfaces" wie folgt geändert werden.
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.2.50
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1
Jetzt den Raspberry Pi einmal herunterfahren.
sudo shutdown now
Arbeiten per SSH
Ab jetzt kann weiter per SSH gearbeitet werden. Dafür muss das Raspberry Pi nur mit LAN und Spannung versorgt werden.
Dafür könnt ihr zum Beispiel Putty verwenden.
UART Schnittstelle von Consolenausgaben befreien
Leider hat der Raspberry Pi nur eine UART Schnittstelle. Diese wird standardmäßig für eine Login-Konsole genutzt. Wir wollen über diese UART aber mit dem RPi-Bus Controller kommunizieren. Da stören die Konsolenausgaben und deshalb muss die Konsole deaktiviert werden.
Dazu muss folgende Zeile in der "/etc/inittab" auskommentiert werden. (# davor setzen)
#T0:23:respawn:/sbin/getty -L ttyAMA0 19200 vt100
Das geht per Editor oder mit folgendem Aufruf.
sed '/getty.*ttyAMA0/s/^[^#]/#/' </etc/inittab >/tmp/x && mv /tmp/x /etc/inittab
alternativ:
sed '/getty.*ttyAMA0/s/^[^#]/#/' -i /etc/inittab ; init q
Zudem muss in der Datei „/boot/cmdline.txt“ der unterstrichene Bereich entfernt werden.
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
UART Schnittstelle befreien bei Raspberry Pi 3
Beim Raspberry Pi 3 ist die UART vom Bluetooth belegt. Um das zu ändern muss man Bluetooth in der /boot/config.txt deaktivieren:
dtoverlay=pi3-disable-bt
enable_uart=1
Installation von EIB, LINKNX und KNXWEB2
Für die Installation von EIB, LINKNX und KNXWEB2 kann ein Script ausgeführt werden. Dafür die folgenden Kommandos ausführen.
sudo -s
cd /tmp
wget -N https://github.com/selfbus/linux-bus-tools/raw/master/raspberry/Scripts/selfbus_eib.sh
sh selfbus_eib.sh
Jetzt kann der RPi Bus Controller auf das Raspbian Pi gesteckt werden. Nach einem Neustart "sudo reboot" kann die korrekte Installation getestet werden.
Nützliche Kommandos
Kommando | Syntax |
---|---|
eibd Start | service eibd start |
eibd Stop | service eibd stop |
eibd Status | service eibd status |
eibd Log output | tail -f /var/log/eibd.log |
linknx Start | service linknx start |
linknx Stop | service linknx stop |
linknx Status | service linknx status |
linknx Log output | tail -f /var/lib/linknx/logging.conf |
Zugriff per ETS
Nach der Installation läuft der eibd auf dem Raspberry Pi und ihr könnt, aus der ETS mit Hilfe des RPi direkt auf den Bus zugreifen.
In der ETS ist KNXnet/IP oder wenn ihr eine ältere Version habt EIBnet/IP als Typ einzustellen.
Hinweis
Der Type EIBlib/IP ist falsch und geht nicht. Notfalls müsst ihr eine neuere Version der ETS installieren.
Zugriff per Browser
Über die Adresse "http://<RPI_IP>/knxweb2/check_install.php" können die Grundeinstellungen vorgenommen werden.
Unter "http://<RPI_IP>/knxweb2/setup.php" kann eine Visualisierung erstellt werde. Ein guter Einstieg ist in diesem Video auf Französisch zu sehen.
Mit "http://<RPI_IP>/knxweb2/design_view.php" kann die Visualisierung aufgerufen werden.
Zugriff per Kommandozeile
Auf der Kommandozeile kann mittels des Befehls "groupswrite" auf den Bus zugegriffen werden. Dies ist insbesondere zum ersten testen der Verbindung hilfreich.
Hierzu den Befehl
groupswrite ip:127.0.0.1 x/x/x y
aufrufen. x/x/x gegen eine Adresse auf eurem Bus ändern, für y 1(an) oder 0(aus) wählen.
Beispiel: groupswrite ip:127.0.0.1 1/1/1 1 schaltet das Objekt 1/1/1 auf an