Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Hi misa, ich starte den knxd grundsätzich als service mit systemctl.
Laut Hilfe bringt das -i den Port 6720 zum hören. K.A., warum das jetzt notwendig war. Ich dachte immer alles läuft über Port 3671.
-i, --listen-tcp[=PORT] listen at TCP port PORT (default 6720)
Nun ja, der Busmonitor "funktioniert" jetzt zwar, aber er empfängt nach wie vor keine Telegramm, die auf dem Bus zirkulieren, nur wenn ich etwas per knxtool oder OH2 sende, bekomme ich auf dem Monitor Einträge.
Da ich den Pi aber dringend am Bus brauche, werde ich mir jetzt wohl oder übel ein Einbau-IP-Gateway kaufen, denn aktuell wird der knxd auch nicht mehr von der ETS erkannt, was mich immer mehr zu einem HW-Defekt tendieren lässt.
Also mal langsam. Wenn die ETS deinen knxd nicht sieht, dann läuft er entweder nicht, oder du hast ein Multicastproblem. Letzteres geht nicht von selber weg wenn man den knxd durch Hardware ersetzt. Wenn du trotz Multicastproblem mit dem knxd reden willst (oder der in einem anderen Subnetz hängt), musst du der ETS die IP-Adresse des knxd-Rechners manuell eintragen.
Bitte prüfe die Frage, ob Telegramme zirkulieren, mit "knxtool vbusmonitor1 ip:". Wenn er dabei keine Daten liefert, obwohl du einen Schalter drückst, dann stimmt was mit deinem Businterface nicht. Neben Hardwareproblemen ist beim Pi immer noch, dass jemand vergessen hat, die auf dem seriellen Port lauschende Konsole und/oder das Bluetoothmodul des Pi3 komplett zu deaktivieren. Das kann auch mal funktionieren-und-dann-plötzlich-nicht-mehr.
Port 3671 (UDP) und Port 6720 (TCP) sind vollkommen unterschiedliche Dinge. Ersteren kann man nur mit Argumenten ansteuern, die wiederum davon abhängen, was du tun willst. Soll eine ETS mit dem knxd reden, brauchst du -DTRS (im Normalfall). Hast du nur "externe" Hardware, brauchst du "ip:" (Multicast) oder "ipt:" (Tunnel).
Soll knxtool oder sonst ein dediziert mit dem knxd-sprechendes Programm verwendet werden, das sich mit Port 6720 verbinden will, brauchst du "-i". Mit systemd ist das "-i" unnötig, wenn der knxd vom systemd gestartet wird, tut aber auch nicht weh.
Und: "ETS geht nicht" ist mit Sicherheit kein Hardwaredefekt – es sei denn, der knxd hat sich beendet, weil er deinen TPUART oder sonst ein Interface nicht erreichen konnte. Ob das der Fall ist, steht im Log. "sudo journald -uknxd -n30" ist dein Freund.
Bis vor enigen Tagen auf jeden Fall, da der Discovery-Mode funktionierte. Aktuell weiß ich es nicht mit Gewissheit. An der Netzwerkkonfiguration habe ich nicht herumgespielt. Muss ich erst googeln, wie das geht.
Zeigt der Busmonitor einen Tastendruck an
Nein, der Busmonitor zeigt nichts an
Bluetooth PI3
Ist ein Raspberry Pi, Model B+
Läuft eine serielle Konsole auf AMA0?
Code:
pi@knxpi:~ $ sudo systemctl status serial-getty@ttyAMA0.service
● serial-getty@ttyAMA0.service - Serial Getty on ttyAMA0
Loaded: loaded (/lib/systemd/system/serial-getty@.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:agetty(8)
man:systemd-getty-generator(8)
http://0pointer.de/blog/projects/serial-console.html
Das würde ich als Nein deuten.
Ich denke, dann bleibt es wohl bei 4. HW-Defekt. Vorher werde ich aber noch das Multicast-Routing prüfen. Danke für Deine Hinweise, besonders die letzten beidn Absätze waren recht erhellend für mich.
...
Und: "ETS geht nicht" ist mit Sicherheit kein Hardwaredefekt – es sei denn, der knxd hat sich beendet, weil er deinen TPUART oder sonst ein Interface nicht erreichen konnte. Ob das der Fall ist, steht im Log. "sudo journald -uknxd -n30" ist dein Freund.
In den Logs konnte ich keine Hinweise auf einen nicht erreichbaren TPUART order beendeten knxd finden, insofern Danke für den Wink.
Ich würde mich mit der Diagnose "Multicast-Routing-Problem" ja nicht so schwer tun, wenn ich wüsste, dass ich etwas an den Netzwerkeinstellungen des Pi geändert hätte. Habe ich aber nicht.
Hast Du vielleicht noch einen Hinweis, wie ich sehen kann, ob das Multicast-Routing überhaupt funktioniert?
Ich habe jetzt was gefunden, wie ich den Multicast-Empfang zumindest rudimentär prüfen kann:
Ich habe von meinem Ubuntu Rechner aus mit iperf -c 224.0.23.12 -p 3671 -u UDP Pakete vom Port 3671 aus auf die MCAST-Adresse gesendet.
Am Pi habe ich dann noch den knxd abgeschaltet, einen (anderen) Multicast-Server mit iperf aufgesetzt und ebenfalls auf Port 3671 gelauscht.
Code:
iperf -s -u -B 224.0.23.12 -p 3671 -i 1 -e
------------------------------------------------------------
Server listening on UDP port 3671 with pid 21250
Binding to local address 224.0.23.12
Joining multicast group 224.0.23.12
Receiving 1470 byte datagrams
UDP buffer size: 160 KByte (default)
------------------------------------------------------------
[ 3] local 224.0.23.12 port 3671 connected with 192.168.178.31 port 34411
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Latency avg/min/max/stdev PPS
[ 3] 0.00-1.00 sec 129 KBytes 1.06 Mbits/sec 0.977 ms 0/ 90 (0%) 15.611/14.777/27.954/ 2.566 ms 90 pps
[ 3] 1.00-2.00 sec 128 KBytes 1.05 Mbits/sec 0.701 ms 0/ 89 (0%) 15.578/14.785/22.542/ 1.380 ms 89 pps
.
.
.
[ 3] 9.00-10.00 sec 128 KBytes 1.05 Mbits/sec 1.256 ms 0/ 89 (0%) 15.507/14.673/21.682/ 1.422 ms 89 pps
[ 3] 0.00-10.01 sec 1.25 MBytes 1.05 Mbits/sec 1.256 ms 0/ 893 (0%) 15.543/14.673/39.421/ 2.210 ms 89 pps
Es kommen dort Multicast-Pakete an. Die Netzwerkkarte ist also korrekt konfiguriert.
Mein Problem scheint zu sein, dass irgendein Prozess den Zugriff des knxd auf ?den TPUART?, blockiert. Wie kann ich rausbekommen, wer oder was da alles mitmischt?
Denn
Code:
pi@knxpi:~ $ knxtool vbusmonitor1 ip:localhost
Open failed: Connection refused
bringt noch immer diesen Fehler. Witzigerweise kann ich von meinem Ubuntu-Rechner aus die Lampen per knxtool schalten. Von meinem Pi aus nicht.
NACHTRAG:
Auf der Suche nach dem Fehler habe ich mit netstat noch einmal die Ports überprüft.
knxtool vbusmonitor1 ip: zeigt mir allerdings noch immer nicht die auf dem Bus zirkulierenden Telegramme an, sondern nur die, die ich vom Pi oder einem anderen Rechner aus über das Netzwerk sende.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar