Knxd: Unterschied zwischen den Versionen

Aus FHEMWiki
(Ohne git checkout stable kompiliert das Programm nicht mehr (Debian Jessie/Stretch), da der Master-Branch entgegen der good-practice als Entwicklungszweig verwendet wird.)
 
(47 dazwischenliegende Versionen von 11 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= knxd mit einem IP Gateway einrichten =
== knxd mit einem IP Gateway einrichten ==
Damit FHEM auf den KNX Bus zugreifen kann, benötigt man ein passendes Interface
Damit FHEM auf den KNX Bus zugreifen kann, wird ein passendes Interface benötigt. Es gibt:
 
Es gibt:
 
* RS232
* RS232
* USB
* USB
* IP
* IP


Ich beschreibe die Einrichtung von knxd mit einem IP Gateway auf einen Raspberry Pi2 mit Wheezy oder Jessie.
Im Folgenden wird die Einrichtung von knxd mit einem IP Gateway auf einem Raspberry Pi2 mit Wheezy oder Jessie beschrieben.
 
== Installation ==
 
 
'''1. als erstes müssen folgende Pakete installiert werden (Referenz Debian Jessie):'''
<source lang="bash">sudo apt-get update
sudo apt-get install debhelper cdbs automake libtool libusb-1.0-0-dev git-core build-essential libsystemd-daemon-dev dh-systemd libev-dev
</source>


'''1.1 als erstes müssen folgende Pakete installiert werden (Referenz Debian Stretch):'''
=== Installation ===
<source lang="bash">sudo apt-get update
sudo apt-get install debhelper cdbs automake libtool libusb-1.0-0-dev git-core build-essential libsystemd-dev dh-systemd libev-dev cmake
</source>


(Bei Debian Jessie-Lite fehlt noch mehr)
==== Für Debian Jessie: ====
'''als erstes müssen folgende Pakete installiert werden (Referenz Debian Jessie):'''
<syntaxhighlight lang="bash">
sudo apt-get update
sudo apt-get install debhelper cdbs automake libtool libusb-1.0-0-dev git-core build-essential libsystemd-daemon-dev dh-systemd libev-dev cmake
</syntaxhighlight>


'''2. knxd herunterladen und installieren'''
'''knxd herunterladen und installieren'''
Achtung: Wenn Abhängigkeiten fehlen, dann installiere diese nach. Nicht einfach mittels "-d" diese übergehen!
Achtung: Wenn Abhängigkeiten fehlen, dann müssen diese nachinstalliert werden. Nicht einfach mittels "-d" diese übergehen!
<source lang="bash">
<syntaxhighlight lang="bash">
git clone https://github.com/knxd/knxd.git
git clone https://github.com/knxd/knxd.git
cd knxd
cd knxd
git checkout stable
git checkout deb
dpkg-buildpackage -b -uc
dpkg-buildpackage -b -uc
cd ..
cd ..
sudo dpkg -i knxd_*.deb knxd-tools_*.deb
sudo dpkg -i knxd_*.deb knxd-tools_*.deb
</source>
</syntaxhighlight>
 
==== Ab Debian Stretch, Buster, ... ====
'''knxd ist in den Debian packages vorhanden, muss daher nicht compiliert werden.'''
<syntaxhighlight lang="bash">
sudo apt-get update
sudo apt-get install knxd knxd-tools
 
</syntaxhighlight>


== Konfiguration ==
Mit der Konfiguration '''mit Systemd weitermachen!'''
=== Konfiguration ===
'''1. Ohne systemd'''
'''1. Ohne systemd'''


es muss als nächstes die Konfigurationsdatei editiert werden.
Es muss als nächstes die Konfigurationsdatei editiert werden, das geht mit:
 
<syntaxhighlight lang="bash">
das geht mit:
<source lang="bash">
sudo nano /etc/default/knxd  
sudo nano /etc/default/knxd  
</source>
</syntaxhighlight>
dann folgende Einträge anpassen:
dann folgende Einträge anpassen:
<source lang="bash">
<syntaxhighlight lang="bash">
DAEMON_ARGS="-u /tmp/eib -u /var/run/knx -i -b ipt:192.168.188.XX"
DAEMON_ARGS="-u /tmp/eib -u /var/run/knx -i -b ipt:192.168.188.XX"
</source>
</syntaxhighlight>
und
und
<source lang="bash">
<syntaxhighlight lang="bash">
START_KNXD=YES
START_KNXD=YES
</source>
</syntaxhighlight>
 
'''2. Mit systemd z. B. für Debian Jessie'''
'''2. Mit systemd z. B. für Debian Jessie'''


Die Konfigurationsdatei bei Jessie hat sich wegen der Nutzung von systemd geändert:
Die Konfigurationsdatei bei Jessie hat sich wegen der Nutzung von systemd geändert:
<source lang="bash">
<syntaxhighlight lang="bash">
sudo nano /etc/knxd.conf  
sudo nano /etc/knxd.conf  
</source>
</syntaxhighlight>
dann folgende Einträge anpassen:
dann folgende Einträge anpassen:
<source lang="bash">
<syntaxhighlight lang="bash">
KNXD_OPTS="-u /tmp/eib -u /var/run/knx -b ipt:192.168.188.XX"
KNXD_OPTS="-e 1.2.202 -E 1.2.203:8 -c -DTRS -b ipt:192.168.188.XX"
</source>
 
und
</syntaxhighlight>Bei Verwendung von KNXIO als IO-Modul finden sich detaillierte infos zu diesen Parametern hier: {{Link2CmdRef|Anker=KNXIO-define}}
<source lang="bash">
 
=== knxd Status überprüfen ===
<syntaxhighlight lang="bash">
/etc/init.d/knxd status
</syntaxhighlight>
 
== knxd als IP-Gateway einrichten ==
Der knxd kann auch gleich als IP-Gateway eingerichtet und sowohl mit FHEM als auch parallel mit der ETS genutzt werden. Dazu ist, neben einem Raspberry Pi, ein Interface zum KNX-Bus erforderlich. Geeignet sind z.B.:
* ROT
* PIGATOR mit PIM-TPUART
* TUL
der Fa. [http://busware.de Busware]. Wer einen Rasperry Pi3 benutzen möchte, der sollte zum TUL greifen, da die serielle Schnittstelle UART0 das Bluetooth-Modul des Pi3 bedient und wieder auf die GPIO-Pins umgeleitet werden muss. Der TUL bringt seine eigene serielle Schnittstelle mit, so dass Bluetooth erhalten bleibt.
 
=== Vorbereiten des TUL ===
==== TUL flashen ====
Der TUL wird ohne Software geliefert und kann über den Raspberry Pi programmiert werden:
<syntaxhighlight lang="bash">
sudo apt-get install dfu-programmer
wget -O TPUARTtransparent.hex http://busware.de/tiki-download_file.php?fileId=54
sudo dfu-programmer atmega32u4 erase
sudo dfu-programmer atmega32u4 flash TPUARTtransparent.hex
sudo dfu-programmer atmega32u4 reset
sudo reboot
</syntaxhighlight>
Soll der TUL unter Windows programmiert werden, so geht das mit [https://www.microchip.com/developmenttools/ProductDetails/FLIP FLIP]. Die HEX-Datei kann [http://files.busware.de/TUL/Transparent/ hier] herunter geladen werden.
Der TUL hat an der Unterseite einen winzigen Button. Dieser muss gedrückt werden, während der TUL in die USB-Buchse gesteckt wird.
In FLIP nun als ''Device=>Select'' ATmega32U4 auswählen und über ''Settings=>Communication=>USB'' die Verbindung herstellen. *.hex-Datei laden und im Rahmen ''Operation-Flow'' auf ''Run'' klicken. Fertig.
 
==== TUL einen dauerhaften Namen geben ====
Linux bindet USB-Geräte beim Boot in einer eher zufälligen Reihenfolge ein. Werden mehrere USB-Geräte betrieben, so ist es sinnvoll, dem TUL einen festen Namen zuzuordnen. Dazu wird der TUL zunächst mit dem Befehl
<syntaxhighlight lang="bash">
ls -la /dev/serial/by-id/
</syntaxhighlight>
identifiziert. Das Ergebnis sollte ungefähr so aussehen
<syntaxhighlight lang="bash">
usb-busware.de_TPUART_8543934393935171B1C1-if00 -> ../../ttyACM0
</syntaxhighlight>
Die Seriennummer (8543934393935171B1C1) wird später benötigt. Der Befehl
<syntaxhighlight lang="bash">
lsusb
</syntaxhighlight>
sollte u.a. diese Zeile liefern
<syntaxhighlight lang="bash">
Bus 001 Device 005: ID 03eb:204b Atmel Corp. LUFA USB to Serial Adapter Project
</syntaxhighlight>
03eb ist dabei die Herstellerkennung, 204b die Produktkennung. Nun muss die Datei /etc/udev/rules.d/99-usb-serial.rules
<syntaxhighlight lang="bash">
sudo nano /etc/udev/rules.d/99-usb-serial.rules
</syntaxhighlight>
erstellt oder erweitert werden mit der Zeile
<syntaxhighlight lang="bash">
SUBSYSTEM=="tty", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="204b", ATTRS{serial}=="8543934393935171B1C1", SYMLINK+="knx", OWNER="knxd"
</syntaxhighlight>
Der TUL wird dann unter /dev/knx erreichbar sein. Der knxd läuft als Benutzer knxd und hat damit die Berechtigung, auf den TUL zuzugreifen.
 
=== Vorbereiten des Raspberry Pi für ROT oder PIGATOR ===
Der Raspberry Pi nutzt standardmäßig die serielle Schnittstelle als Terminal. Dies muss deaktiviert werden:
<syntaxhighlight lang="bash">
sudo raspi-config
5 Interfaceoption
P6 Serial
</syntaxhighlight>
Der knxd arbeitet als Benutzer knxd. Nach der Installation von knxd muss dieser noch der Gruppe dialout zugeordnet werden, damit er auf ttyAMA0 zugreifen kann:
<syntaxhighlight lang="bash">
sudo usermod -aG dialout knxd
</syntaxhighlight>
Die Raspberry Pi 3 und 4 nutzen für die serielle Schnittstelle einen mini UART, der nicht mit dem knxd zusammenarbeitet. Der Hardware UART wird für Bluetooth verwendet. Bluetooth muss deaktiviert werden, damit der Hardware UART wieder unter ttyAMA0 zur Verfügung steht. In der /boot/config.txt muss die Zeile
<syntaxhighlight lang="bash">
dtoverlay=disable-bt
</syntaxhighlight>
am Ende eingefügt werden. Nun muss noch der Dienst hciuart deaktiviert werden (initialisiert das Bluetooth-Modem):
<syntaxhighlight lang="bash">
sudo systemctl disable hciuart
</syntaxhighlight>
Nach einem anschließenden Reboot ist der TPUART unter ttyAMA0 ansprechbar.
 
Nach dieser Prozedur ist natürlich die Benuzung des Bluetooth-Moduls nicht mehr möglich. Wer das Modul benötigt, findet die Anleitung hier:
 
[[Raspberry Pi 3: GPIO-Port Module und Bluetooth]]
 
Der Raspberry Pi 4 besitzt weitere UARTs, die auch für den knxd genutzt werden können. Weitere Informationen dazu gibt es [https://gitlab.com/knx-makerstuff/knx_microbcu2/-/wikis/DualKNX-RaspiHat-Quick-Installation-Guide#uart-configuration hier].
 
=== Andere BCU's (BusCouplerUnit) ===
Natürlich sind auch andere BCU's geeignet. Wer weiß, an welchem Ende er einen Lötkolben anzufassen hat, ist mit der [https://knx-user-forum.de/forum/projektforen/konnekting/1045398-microbcu-sehr-kleiner-knx-transceiver MicroBCU] gut bedient. Sie kann z.B. über einen ADUM1201 mit dem UART des Raspberry Pi verbunden werden (Tx->Rx, Rx->Tx, Konfiguration wie unter [[Knxd#Vorbereiten_des_Raspberry_Pi_f.C3.BCr_ROT_oder_PIGATOR|ROT]] beschrieben) oder über einen USB2Seriell-Konverter (Konfiguration ähnlich [[Knxd#TUL_einen_dauerhaften_Namen_geben|TUL]]).{{Hinweis|Die MicroBCU wird vom Bus gespeist und liefert auch zwei Spannungen, wovon die 3,3V auch für den ADUM genutzt werden kann. Wer den Raspi aus dem KNX-Netzteil versorgen möchte, sollte sich [https://knx-user-forum.de/forum/%C3%B6ffentlicher-bereich/knx-eib-forum/diy-do-it-yourself/1597469-dualknx-microbcu-hat-f%C3%BCr-raspberrypi-mit-dc-dc-netzteil das hier] mal ansehen.}}
 
=== Installieren des knxd ===
Die Installation erfolgt nun wie oben unter [[Knxd#Installation|Installation]] beschrieben. Hier noch mal der dringende Hinweis, fehlende Abhängigkeiten nicht mit -d zu überspringen. Jede Abhängigkeit, die als Fehlend moniert wird, nachinstallieren und Kompilierung neu starten. Prozedur notfalls mehrfach wiederholen. Das Kompilieren dauert und manchmal geht es scheinbar nicht weiter. Also Geduld.
 
=== Konfiguration ===
Die Konfiguration erfolgt wieder in der knxd.conf mit
<syntaxhighlight lang="bash">
sudo nano /etc/knxd.conf
</syntaxhighlight>
Nun die Konfiguarionszeile anpassen<br>
(serielle Schnittstelle)
<syntaxhighlight lang="bash">
KNXD_OPTS="-e 1.2.202 -E 1.2.203:8 -c -DTRS -b tpuarts:/dev/ttyAMA0"
</syntaxhighlight>
(USB)
<syntaxhighlight lang="bash">
KNXD_OPTS="-e 1.2.202 -E 1.2.203:8 -c -DTRS -b tpuarts:/dev/knx"
</syntaxhighlight>
Und dann noch
<syntaxhighlight lang="bash">
START_KNXD=YES
START_KNXD=YES
</source>
</syntaxhighlight>
== knxd Status überprüfen ==
um knxd beim Systemstart sofort zu starten.
<source lang="bash">
 
/etc/init.d/knxd status
-e definiert die physikalische Adresse des knxd, -E definiert einen Adressbereich für ETS5 etc. (hier einen Bereich aus acht Adressen). Diese Adressen müssen an das eigene Netz angepasst werden. In FHEM sieht das dann so aus
</source>
<syntaxhighlight lang="bash">
define myKNXGW KNXIO T 127.0.0.1:6720 1.2.203
</syntaxhighlight>
alternativ via Multicast: (siehe auch KNXIO-wiki):<syntaxhighlight lang="bash">
define myKNXGW KNXIO M 224.0.23.12:3671 1.2.203
</syntaxhighlight>
Spätestens jetzt sollte der KNX-Bus angeschlossen werden.{{Hinweis|Da der TPUART (wie auch andere BCU‘s) vom Bus gespeist wird, kann der knxd den TPUART nur initialisieren, wenn der Bus angeschaltet ist.}}
Wer Multicast nutzen möchte, muss ab Buster dieses noch aktivieren (z.B. für Tasmota-KNX)
<syntaxhighlight lang="bash">
sudo nano /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
"1" durch "0" ersetzen
</syntaxhighlight>
Nach einem
<syntaxhighlight lang="bash">
sudo reboot
</syntaxhighlight>
sollte der knxd dann laufen.
{{Hinweis|Manche KNX-Module bringen zusätzlich eine IP-Gateway-Funktion mit (z.B. sonnenKNX zur Verbindung der sonnenBatterie mit dem KNX-Bus). Hier führt die Option -R in der Konfigurationsdatei zu Problemen (KNX-IP Daten werden mehrfach auf den Bus gespiegelt). Daher muss die Option -R entfernt werden (-DTS), wenn ein solches Modul nachträglich in das System integriert wird.}}
 
== KNXD im Docker Environment ==
siehe: [[KNXIO#KNXD_im_Docker_&_Multicast]]


== FAQ ==
== FAQ ==
'''Wie wird eibd vorher deinstalliert?'''
'''Wie wird eibd vorher deinstalliert?'''
<source lang="bash">
<syntaxhighlight lang="bash">
sudo rm -r /usr/local/bin/{eibd,knxtool,group*} /usr/local/lib/lib{eib,pthsem}*.so* /usr/local/include/pth*
sudo rm -r /usr/local/bin/{eibd,knxtool,group*} /usr/local/lib/lib{eib,pthsem}*.so* /usr/local/include/pth*
</source>
</syntaxhighlight>
 
<u>'''Hinweis'''</u>: knxd unterstützt im Gegensatz zu eibd die Hilfsprogramme knxtools nur sehr eingeschränkt (Siehe dazu Hinweis unter https://github.com/knxd/knxd#migrating-to-012. "progmode" sowie alle mit "m" beginnenden Kommandos sind entgegen der Doku ab Version 0.12 nicht mehr funktionsfähig.


'''folgender Fehler: dpkg-buildpackage: Fehler: Fehler-Exitstatus von debian/rules build war 2'''
'''folgender Fehler: dpkg-buildpackage: Fehler: Fehler-Exitstatus von debian/rules build war 2'''
<source lang="bash">
<syntaxhighlight lang="bash">
sudo apt-get install git-core build-essential
sudo apt-get install git-core build-essential
</source>
</syntaxhighlight>


== Links ==
oder
[[Benutzer:Marthinx]]
 
<syntaxhighlight lang="bash">
in der datei knxd/debian/rules die Zeile:
bash tools/test.sh auskommentieren
</syntaxhighlight>


[https://github.com/knxd/knxd Github knxd]
'''Fehler: dpkg-buildpackage: error: fakeroot not found, either install the fakeroot <....> '''
<syntaxhighlight lang="bash">
sudo apt-get install fakeroot dpkg-dev
</syntaxhighlight>


== Links ==
* [[Benutzer:Marthinx]]
* [https://github.com/knxd/knxd Github knxd]
* [https://knx-user-forum.de/forum/projektforen/knxd/1049547-grundlagen-zum-knxd-mit-installationsanleitung-vor-dem-schreiben-lesen Forums-Thread zu knxd. Sehr informativ.]


[[Kategorie:Examples]]
[[Kategorie:Examples]]
[[Kategorie:EIB/KNX]]
[[Kategorie:EIB/KNX]]

Aktuelle Version vom 24. April 2024, 14:23 Uhr

knxd mit einem IP Gateway einrichten

Damit FHEM auf den KNX Bus zugreifen kann, wird ein passendes Interface benötigt. Es gibt:

  • RS232
  • USB
  • IP

Im Folgenden wird die Einrichtung von knxd mit einem IP Gateway auf einem Raspberry Pi2 mit Wheezy oder Jessie beschrieben.

Installation

Für Debian Jessie:

als erstes müssen folgende Pakete installiert werden (Referenz Debian Jessie):

sudo apt-get update
sudo apt-get install debhelper cdbs automake libtool libusb-1.0-0-dev git-core build-essential libsystemd-daemon-dev dh-systemd libev-dev cmake

knxd herunterladen und installieren Achtung: Wenn Abhängigkeiten fehlen, dann müssen diese nachinstalliert werden. Nicht einfach mittels "-d" diese übergehen!

git clone https://github.com/knxd/knxd.git
cd knxd
git checkout deb
dpkg-buildpackage -b -uc
cd ..
sudo dpkg -i knxd_*.deb knxd-tools_*.deb

Ab Debian Stretch, Buster, ...

knxd ist in den Debian packages vorhanden, muss daher nicht compiliert werden.

sudo apt-get update
sudo apt-get install knxd knxd-tools

Mit der Konfiguration mit Systemd weitermachen!

Konfiguration

1. Ohne systemd

Es muss als nächstes die Konfigurationsdatei editiert werden, das geht mit:

sudo nano /etc/default/knxd

dann folgende Einträge anpassen:

DAEMON_ARGS="-u /tmp/eib -u /var/run/knx -i -b ipt:192.168.188.XX"

und

START_KNXD=YES

2. Mit systemd z. B. für Debian Jessie

Die Konfigurationsdatei bei Jessie hat sich wegen der Nutzung von systemd geändert:

sudo nano /etc/knxd.conf

dann folgende Einträge anpassen:

KNXD_OPTS="-e 1.2.202 -E 1.2.203:8 -c -DTRS -b ipt:192.168.188.XX"

Bei Verwendung von KNXIO als IO-Modul finden sich detaillierte infos zu diesen Parametern hier: commandref/KNXIO-define

knxd Status überprüfen

/etc/init.d/knxd status

knxd als IP-Gateway einrichten

Der knxd kann auch gleich als IP-Gateway eingerichtet und sowohl mit FHEM als auch parallel mit der ETS genutzt werden. Dazu ist, neben einem Raspberry Pi, ein Interface zum KNX-Bus erforderlich. Geeignet sind z.B.:

  • ROT
  • PIGATOR mit PIM-TPUART
  • TUL

der Fa. Busware. Wer einen Rasperry Pi3 benutzen möchte, der sollte zum TUL greifen, da die serielle Schnittstelle UART0 das Bluetooth-Modul des Pi3 bedient und wieder auf die GPIO-Pins umgeleitet werden muss. Der TUL bringt seine eigene serielle Schnittstelle mit, so dass Bluetooth erhalten bleibt.

Vorbereiten des TUL

TUL flashen

Der TUL wird ohne Software geliefert und kann über den Raspberry Pi programmiert werden:

sudo apt-get install dfu-programmer
wget -O TPUARTtransparent.hex http://busware.de/tiki-download_file.php?fileId=54
sudo dfu-programmer atmega32u4 erase
sudo dfu-programmer atmega32u4 flash TPUARTtransparent.hex
sudo dfu-programmer atmega32u4 reset
sudo reboot

Soll der TUL unter Windows programmiert werden, so geht das mit FLIP. Die HEX-Datei kann hier herunter geladen werden. Der TUL hat an der Unterseite einen winzigen Button. Dieser muss gedrückt werden, während der TUL in die USB-Buchse gesteckt wird. In FLIP nun als Device=>Select ATmega32U4 auswählen und über Settings=>Communication=>USB die Verbindung herstellen. *.hex-Datei laden und im Rahmen Operation-Flow auf Run klicken. Fertig.

TUL einen dauerhaften Namen geben

Linux bindet USB-Geräte beim Boot in einer eher zufälligen Reihenfolge ein. Werden mehrere USB-Geräte betrieben, so ist es sinnvoll, dem TUL einen festen Namen zuzuordnen. Dazu wird der TUL zunächst mit dem Befehl

ls -la /dev/serial/by-id/

identifiziert. Das Ergebnis sollte ungefähr so aussehen

usb-busware.de_TPUART_8543934393935171B1C1-if00 -> ../../ttyACM0

Die Seriennummer (8543934393935171B1C1) wird später benötigt. Der Befehl

lsusb

sollte u.a. diese Zeile liefern

Bus 001 Device 005: ID 03eb:204b Atmel Corp. LUFA USB to Serial Adapter Project

03eb ist dabei die Herstellerkennung, 204b die Produktkennung. Nun muss die Datei /etc/udev/rules.d/99-usb-serial.rules

sudo nano /etc/udev/rules.d/99-usb-serial.rules

erstellt oder erweitert werden mit der Zeile

SUBSYSTEM=="tty", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="204b", ATTRS{serial}=="8543934393935171B1C1", SYMLINK+="knx", OWNER="knxd"

Der TUL wird dann unter /dev/knx erreichbar sein. Der knxd läuft als Benutzer knxd und hat damit die Berechtigung, auf den TUL zuzugreifen.

Vorbereiten des Raspberry Pi für ROT oder PIGATOR

Der Raspberry Pi nutzt standardmäßig die serielle Schnittstelle als Terminal. Dies muss deaktiviert werden:

sudo raspi-config
5 Interfaceoption
P6 Serial

Der knxd arbeitet als Benutzer knxd. Nach der Installation von knxd muss dieser noch der Gruppe dialout zugeordnet werden, damit er auf ttyAMA0 zugreifen kann:

sudo usermod -aG dialout knxd

Die Raspberry Pi 3 und 4 nutzen für die serielle Schnittstelle einen mini UART, der nicht mit dem knxd zusammenarbeitet. Der Hardware UART wird für Bluetooth verwendet. Bluetooth muss deaktiviert werden, damit der Hardware UART wieder unter ttyAMA0 zur Verfügung steht. In der /boot/config.txt muss die Zeile

dtoverlay=disable-bt

am Ende eingefügt werden. Nun muss noch der Dienst hciuart deaktiviert werden (initialisiert das Bluetooth-Modem):

sudo systemctl disable hciuart

Nach einem anschließenden Reboot ist der TPUART unter ttyAMA0 ansprechbar.

Nach dieser Prozedur ist natürlich die Benuzung des Bluetooth-Moduls nicht mehr möglich. Wer das Modul benötigt, findet die Anleitung hier:

Raspberry Pi 3: GPIO-Port Module und Bluetooth

Der Raspberry Pi 4 besitzt weitere UARTs, die auch für den knxd genutzt werden können. Weitere Informationen dazu gibt es hier.

Andere BCU's (BusCouplerUnit)

Natürlich sind auch andere BCU's geeignet. Wer weiß, an welchem Ende er einen Lötkolben anzufassen hat, ist mit der MicroBCU gut bedient. Sie kann z.B. über einen ADUM1201 mit dem UART des Raspberry Pi verbunden werden (Tx->Rx, Rx->Tx, Konfiguration wie unter ROT beschrieben) oder über einen USB2Seriell-Konverter (Konfiguration ähnlich TUL).

Info blue.png
Die MicroBCU wird vom Bus gespeist und liefert auch zwei Spannungen, wovon die 3,3V auch für den ADUM genutzt werden kann. Wer den Raspi aus dem KNX-Netzteil versorgen möchte, sollte sich das hier mal ansehen.


Installieren des knxd

Die Installation erfolgt nun wie oben unter Installation beschrieben. Hier noch mal der dringende Hinweis, fehlende Abhängigkeiten nicht mit -d zu überspringen. Jede Abhängigkeit, die als Fehlend moniert wird, nachinstallieren und Kompilierung neu starten. Prozedur notfalls mehrfach wiederholen. Das Kompilieren dauert und manchmal geht es scheinbar nicht weiter. Also Geduld.

Konfiguration

Die Konfiguration erfolgt wieder in der knxd.conf mit

sudo nano /etc/knxd.conf

Nun die Konfiguarionszeile anpassen
(serielle Schnittstelle)

KNXD_OPTS="-e 1.2.202 -E 1.2.203:8 -c -DTRS -b tpuarts:/dev/ttyAMA0"

(USB)

KNXD_OPTS="-e 1.2.202 -E 1.2.203:8 -c -DTRS -b tpuarts:/dev/knx"

Und dann noch

START_KNXD=YES

um knxd beim Systemstart sofort zu starten.

-e definiert die physikalische Adresse des knxd, -E definiert einen Adressbereich für ETS5 etc. (hier einen Bereich aus acht Adressen). Diese Adressen müssen an das eigene Netz angepasst werden. In FHEM sieht das dann so aus

define myKNXGW KNXIO T 127.0.0.1:6720 1.2.203

alternativ via Multicast: (siehe auch KNXIO-wiki):

define myKNXGW KNXIO M 224.0.23.12:3671 1.2.203

Spätestens jetzt sollte der KNX-Bus angeschlossen werden.

Info blue.png
Da der TPUART (wie auch andere BCU‘s) vom Bus gespeist wird, kann der knxd den TPUART nur initialisieren, wenn der Bus angeschaltet ist.


Wer Multicast nutzen möchte, muss ab Buster dieses noch aktivieren (z.B. für Tasmota-KNX)

sudo nano /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
"1" durch "0" ersetzen

Nach einem

sudo reboot

sollte der knxd dann laufen.

Info blue.png
Manche KNX-Module bringen zusätzlich eine IP-Gateway-Funktion mit (z.B. sonnenKNX zur Verbindung der sonnenBatterie mit dem KNX-Bus). Hier führt die Option -R in der Konfigurationsdatei zu Problemen (KNX-IP Daten werden mehrfach auf den Bus gespiegelt). Daher muss die Option -R entfernt werden (-DTS), wenn ein solches Modul nachträglich in das System integriert wird.


KNXD im Docker Environment

siehe: KNXIO#KNXD_im_Docker_&_Multicast

FAQ

Wie wird eibd vorher deinstalliert?

sudo rm -r /usr/local/bin/{eibd,knxtool,group*} /usr/local/lib/lib{eib,pthsem}*.so* /usr/local/include/pth*

Hinweis: knxd unterstützt im Gegensatz zu eibd die Hilfsprogramme knxtools nur sehr eingeschränkt (Siehe dazu Hinweis unter https://github.com/knxd/knxd#migrating-to-012. "progmode" sowie alle mit "m" beginnenden Kommandos sind entgegen der Doku ab Version 0.12 nicht mehr funktionsfähig.

folgender Fehler: dpkg-buildpackage: Fehler: Fehler-Exitstatus von debian/rules build war 2

sudo apt-get install git-core build-essential

oder

in der datei knxd/debian/rules die Zeile:
bash tools/test.sh auskommentieren

Fehler: dpkg-buildpackage: error: fakeroot not found, either install the fakeroot <....>

sudo apt-get install fakeroot dpkg-dev

Links