Seite 1 von 3

RPi + TPUART + KNXD

Verfasst: 15. Jan 2022, 16:00
von Tontechniker
Hallo Christian, hallo alle Mitleser,
ich habe einen Raspi 2 mit TPUART-Hat, EIBD und auf einem zweiten Raspi 2B die Amwendung IoBroker laufen. Zur Anbindung von KNX im Raspi 2B wähle ich die NW-Adresse des Raspi 2. Ich möchte den Raspi 2 entfallen lassen und Schnittstelle und Anwendung auf dem 2B betreiben.
Seit mehreren Tagen versuche ich, die Schnittstelle mit KNXD auf dem Raspi 2B zum "Laufen" zu bringen - ohne Erfolg!
Das Problem ist, dass ich nirgens im Netz ein komplettes Installations- und Kofigurationsbeispiel finden konnte. Alles, was ich mir zusammengesucht/zusammengestückelt habe (teilweise uralt!!) funktioniert nicht.
Auch auf der entspr. TPUART-Selfbus-Seite fehlt ein komplettes Beispiel. Dort ist nur eine Testzeile vorhanden.
Frustriert habe ich heute abgebrochen und bin wieder auf dem Raspi 2 mit EIBD!
Kann mir jemand weiterhelfen?
Danke
Hans
 ! Nachricht von: Doumanix
Dieses Thema wurde herausgelöst aus viewtopic.php?f=15&t=606, daher gibt es seltsame Überschrift en "Re: Bekannte Probleme mit der Buskommunikation", obwohl das Thema hier eine andere Überschrift hat.

Re: Bekannte Probleme mit der Buskommunikation

Verfasst: 15. Jan 2022, 17:04
von gnampf
Was hast du denn für ein System auf dem entsprechenden Raspi? Beim Raspbian kannst du den knxd ja direkt als Paket installieren (sudo apt install knxd), damit müsste er eine /etc/knxd.conf anlegen. Bei mir hab ich im dann nach alter Config-Art einfach folgenden Eintrag verpasst:

KNXD_OPTS="-e 1.1.255 -E 1.1.240:10 -D -T -R -S -f1023 --tpuarts-ack-all-group --tpuarts-ack-all-individual -b tpuarts:/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A600c0Jb-if00-port0"

Bei -e und -E musst du ggf. die Linie anpassen, hier 1.1. Das -f1023 kannst du wenn es läuft auch weglassen, das setzt die Debugging-Ausgaben hoch. Und am Ende halt den passenden UART angeben.

Re: Bekannte Probleme mit der Buskommunikation

Verfasst: 15. Jan 2022, 17:22
von Darthyson
Hallo Hans,

bin mir nicht mehr ganz sicher, aber ich meine, dass per default der UART vom Raspi für die console aktiviert ist. Man muss das erstmal per

Code: Alles auswählen

sudo raspi-config
Interface Options -> P6 Serial Port
deaktivieren um überhaupt auf den UART zugreifen zu können.

Viele Grüße
Denis

Re: Bekannte Probleme mit der Buskommunikation

Verfasst: 15. Jan 2022, 17:26
von gnampf
oder in /boot/cmdline.txt das console=ttyAMA0 entfernen
Bei einem Raspi 3 müsste man wohl noch das Blauzahn deaktivieren, indem man dtoverlay=pi3-disable-bt in die /boot/config.txt einfügt. Nach den Änderungen unter /boot neustarten, damit sie wirksam werden.

Re: Bekannte Probleme mit der Buskommunikation

Verfasst: 16. Jan 2022, 00:00
von Doumanix
Hallo Hans,

schade, dass du nicht weiter gekommen bist. Uralt - da gebe ich dir recht. Hast du diese Seite gemeint?
https://selfbus.myxwiki.org/xwiki/bin/v ... 1.2%20HAT/

Das ist wirklich schon alt, aber theoretisch müsste das Image (ist immer noch verlinkt!) zumindest laufen und einen KNXD am laufen haben.
Man müsste lediglich die /etc/knxd.conf von der FT12, die ich dort eingestellt hatte, auf den TPUART umstellen.

Viel besser und flexibler hatte auch ZwergNase mal was mit KNXD in Docker gemacht und im Slack-Kanal gepostet. Das hat den Weg seit fast zwei Jahren nicht ins Wiki geschafft :-(
Daher kopier ich das hier mal rein.

Grüße
Christian

Ab hier also Zitat von ZwergNase:


So, ich habe mal mein knxd Docker-Image aufpoliert und stelle es hier einfach mal vor:
Voraussetzung:
Docker installieren: https://docs.docker.com/engine/install/ ggf. Raspbian Hinweise beachten
bei RasPi UART Schnittstelle von Konsolenausgaben befreien: https://selfbus.myxwiki.org/xwiki/bin/v ... Controller
KNX-Interface z.B. selfbus FT 1.2 oder TPUART
Docker-Image für TPUART mit

Code: Alles auswählen

sudo docker run --detach  --restart=always --name knxd --mount source=knxd_data,target=/home/knxd --device=/dev/ttyAMA0:/dev/ttyKNX0 --network=host oliverf/knxd:latest knxd_tpuart.ini 
starten. Für FT 1.2 das letzte Argument in knxd_ft12.ini ändern.
Was macht der Befehl genau?

Code: Alles auswählen

# --detach                                      im Hintergrund ausführen / run in background
# --restart=always                              Container automatisch (neu)starten / (re)start container automaticly 
# --name=knxd                                   Container "knxd" nennen / name container "knxd"
# --mount souce=knxd_data,target=/home/knxd     /home/knxd im Volume knxd_data sichern / save /home/knxd in volume knxd_data 
# --device=/dev/ttyAMA0:/dev/ttyKNX0            serieln Port in Container durchreichen (falls benötigt) / pass serial port to container (if needed)
# --network=host                                gemeinsames Netzwerk mit Host (für Multicast nötig) / shared network with host (neccesary for multicast)
# oliverf/knxd:latest                           Image / name of the image
# knxd_tpuart.ini                               ini-Datei auswählen / choose ini-file
Der Zusatz ":latest" lädt momentan die Version 0.14.34-1. Mit dieser Version kann man leider keine selfbus Geräte programmieren die noch nie vorher adressiert wurden. Das liegt daran, dass diese Geräte mit der Adresse 0.0.0 starten. DAs ist was wohl laut knx-Spezifikation nicht OK und von dieser knxd Version als Fehler erkannt. Mit der Version ":v0.14.4" (statt :latest) funktioniert das Adressieren von neuen selfbus Geräten.
Was steht in den ini-Dateien?

Code: Alles auswählen

[main]
addr = 1.1.254
client-addrs = 1.1.240:10
connections = server,server2,tpuart
filters = log

[server]
server = ets_router
discover = true
router = router
tunnel = tunnel
name = knxd 

[server2]
server  = knxd_tcp
systemd-ignore = true

[tpuart]
driver = tpuarts
device = /dev/ttyKNX0
bzw.
[main]
addr = 1.1.254
client-addrs = 1.1.240:10
connections = server,server2,ft12
filters = log

[server]
server = ets_router
discover = true
router = router
tunnel = tunnel
name = knxd 

[server2]
server  = knxd_tcp

[ft12]
driver = ft12
device = /dev/ttyKNX0

Nachtrag: Ich würde den eigenen User aus Sicherheitsgründen nicht in die Gruppe docker aufnehmen. Dann muss man aber docker jeweils mit sudo aufrufen (voranstellen).
Außerdem wird das Image im Hintergrund gestartet. Um die Ausgabe zu beobachten kann man sich mit
(sudo) docker attach knxd
aufschalten. Um wieder zur Eingabeaufforderung zurück zu kommen [Strg] halten und [p] und [q] drücken.
Das Image läuft übrigens unter ARM (arm32v7, z.B. RasPi) und Intel (amd64) Prozessoren. (bearbeitet)

Re: Bekannte Probleme mit der Buskommunikation

Verfasst: 16. Jan 2022, 16:46
von Tontechniker
Hallo Denis,
das habe ich gemacht und auch mit einem Terminal Programm bei verbundenem TXD mit RXD getestet . Das funktioniert.

Re: Bekannte Probleme mit der Buskommunikation

Verfasst: 16. Jan 2022, 19:00
von Tontechniker
Hallo Christian,
vielen Dank für Deine Antwortz! Auch Dir ein frohes und gesundes neues Jahr!
Habe das Install-File mal etwas abgeändert (kein OS laden und tpuarts statt ft12). Eventuell muß ich noch eine NW-Adresse einfügen. Arbeite auf dem Raspi mit einem aktuellen "Debian Buster lite". Die nächsten Tage werde ich dazu kommen, das Install-File mal laufen zu lassen. Dann schau ich in der ETS5, ob sich was tut.
Schönen Abend
Hans

Re: Bekannte Probleme mit der Buskommunikation

Verfasst: 17. Jan 2022, 11:21
von Tontechniker
Hallo Christian,
habe heute mal Dein Original Batchfile gestartet und folgende Fehlermeldung erhalten:

Klone nach 'knxd' ...
remote: Enumerating objects: 13536, done.
remote: Counting objects: 100% (287/287), done.
remote: Compressing objects: 100% (181/181), done.
remote: Total 13536 (delta 176), reused 190 (delta 104), pack-reused 13249
Empfange Objekte: 100% (13536/13536), 3.61 MiB | 2.88 MiB/s, Fertig.
Löse Unterschiede auf: 100% (10348/10348), Fertig.
error: Pfadspezifikation 'master' stimmt mit keinen git-bekannten Dateien überein.
*** installiere knxd...
dpkg: Fehler: Auf das Archiv »knxd_*.deb« kann nicht zugegriffen werden: Datei oder Verzeichnis nicht gefunden
*** Passe /etc/knxd.conf und /boot/config.txt an
cp: der Aufruf von stat für '/etc/knxd.conf' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
sed: /etc/knxd.conf kann nicht gelesen werden: Datei oder Verzeichnis nicht gefunden
*** Stelle Kommunikationspunkt auf ttyKNX1 um
Removed /etc/systemd/system/multi-user.target.wants/hciuart.service.
***
*** Fertig! Wenn keine Fehler aufgetreten sind:
*** Bitte System mit sudo reboot neu starten. Dann SOLLTE die ETS den knxd finden!
pi@raspberrypi:~ $

Kannst Du damit etwas anfangen?
Gruß
Hans

Re: Bekannte Probleme mit der Buskommunikation

Verfasst: 17. Jan 2022, 11:42
von Darthyson
Hallo Hans,

auf die Stelle. Das script ist bissl veraltet. Den Branch master gibt es beim knxd nicht mehr. Für den Raspi wird der debian branch benötigt. Ändere im Script mal in Zeile 94:

Code: Alles auswählen

git checkout master
zu

Code: Alles auswählen

git checkout debian
Viele Grüße
Denis

Re: Bekannte Probleme mit der Buskommunikation

Verfasst: 17. Jan 2022, 17:33
von Tontechniker
Hallo Denis,
hier kommt die nächste Fehlermeldung:
g++: fatal error: Getötet signal terminated program cc1plus
compilation terminated.
make[4]: *** [Makefile:567: connection.o] Fehler 1
make[4]: *** Es wird auf noch nicht beendete Prozesse gewartet....
make[3]: *** [Makefile:396: all-recursive] Fehler 1
make[2]: *** [Makefile:445: all-recursive] Fehler 1
make[1]: *** [Makefile:381: all] Fehler 2
dh_auto_build: error: make -j4 returned exit code 2
make: *** [debian/rules:14: build] Fehler 2
dpkg-buildpackage: Fehler: Unterprozess debian/rules build lieferte Exitstatus 2
*** installiere knxd...
dpkg: Fehler: Auf das Archiv »knxd_*.deb« kann nicht zugegriffen werden: Datei oder Verzeichnis nicht gefunden
*** Passe /etc/knxd.conf und /boot/config.txt an
cp: der Aufruf von stat für '/etc/knxd.conf' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
sed: /etc/knxd.conf kann nicht gelesen werden: Datei oder Verzeichnis nicht gefunden
*** Stelle Kommunikationspunkt auf ttyKNX1 um
***
*** Fertig! Wenn keine Fehler aufgetreten sind:
*** Bitte System mit sudo reboot neu starten. Dann SOLLTE die ETS den knxd finden!
pi@raspberrypi:~ $

Was mach ich nun?