- alt - Anpassen eines Raspbian Image an den RPi Bus Controller

Last modified by Christian B. on 2018/10/19 11:39

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.

Apache 2 Installation

PHP Installation

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.

MySQL Installation

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

KommandoSyntax
eibd Startservice eibd start
eibd Stopservice eibd stop
eibd Statusservice eibd status
eibd Log outputtail -f /var/log/eibd.log
linknx Startservice linknx start
linknx Stopservice linknx stop
linknx Statusservice linknx status
linknx Log outputtail -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