Im ersten Schritt habe ich den RaspberryPi mit dem Pigator versehen, openHabian installiert und 1-Wire zum Laufen bekommen. Nun kommt KNX ins Spiel.
Zunächst müssen auf dem RPi-System einpaar Änderungen vorgenommen werden. Dazu am besten gleich eine Admin-Konsole (root) öffnen:
1 |
sudo -i |
Nun wird der normale serielle Anschluss des RPi ausgeschaltet, weil unser TPUART genau diesen benutzen soll:
1 2 |
systemctl stop serial-getty@ttyAMA0.service systemctl disable serial-getty@ttyAMA0.service |
Außerdem muss Bluetooth deaktiviert werden, da dies die GPIO-Pins 14 und 15 verwendet, welche auch von TPUART benutzt werden. Dazu muss erneut die /boot/config.txt bearbeitet werden:
1 |
dtoverlay=disable-bt |
Außerdem deaktivieren wir das BT-Modem im Linux-System:
1 |
systemctl disable hciuart |
Anschließend erfolgt ein Neustart mit reboot.
Nun sollte der TPUART auf /dev/ttyAMA0 laufen, dies kann man in der root-Konsole testen:
1 2 |
sudo -i udevadm info -a /dev/ttyAMA0 |
Je nach Version des Betriebsystem steht dort
'/devices/platform/soc/3f201000.serial/tty/ttyAMA0' oder
'/devices/platform/soc/3f201000.uart/tty/ttyAMA0'. Dies gilt es für die folgenden Zeilen zu beachten und ggf. anzupassen.
Nun gibt es zwei interessante Zeilen aus der Liste, die wir uns direkt extrahieren und anschließend werden diese Daten direkt in die udev-Regeln geschrieben, damit wir uns einen Klon von
'/dev/ttyAMA0' erstellen lassen, der vom KNX-Dienst gelesen werden kann:
1 2 3 4 5 6 |
udevadm info -a /dev/ttyAMA0 | grep KERNELS.*serial udevadm info -a /dev/ttyAMA0 | grep \{id\} vi /etc/udev/rules.d/70-knxd.rules ACTION=="add", SUBSYSTEM=="tty", ATTRS{id}=="00241011", KERNELS=="3f201000.serial", SYMLINK+="ttyKNX1", OWNER="knxd" usermod -a -G dialout knxd systemctl disable hciuart |
Nun muss der KNX-Dienst noch den neuen Pfad benutzen:
1 2 |
vi /etc/default/knxd -b tpuarts:/dev/ttyKNX1 |
Nach einem weiteren Neustart sollte nun alles laufen.
Kommt der KNX-Dienst(knxd) nicht hoch, so kann man diesen bequem testen:
1 |
knxd -e 0.0.1 -E 0.0.2:8 -D -T -R -S -f9 -t1023 -b tpuarts:/dev/ttyKNX1 |
ACHTUNG! Der KNX-Dienst mittels TPUART läuft nur, wenn auch der Bus ordentlich aufgesetzt ist.
Ohne funktionierende Geräte kann der KNX-Dienst nicht erkennen, ob das TPUART-Gerät läuft oder nicht.
Im nächsten Teil geht es dann um das Programmieren der KNX-Geräte.
0 Kommentare
2 Pingbacks