Ankündigung

Einklappen
Keine Ankündigung bisher.

KNXD funktioniert nach Debian Upgrade nicht mehr

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
    Jürgen
    Forums-Einsteiger

  • Jürgen
    antwortet
    Hallo Leuts,

    vielen Dank für Eure Ideen, Licht schalten über knxd funktioniert nun. (Smarthome startet noch nicht, aber das ist eine andere Baustelle, da mache ich gleich die Installation von 1.7.2)

    Hier zur Info für andere Anwender des IBB Capes:

    sudo systemctl edit --full knxd

    [Unit]
    Description=KNX Daemon
    After=network.target knxd.socket
    Requires=knxd.socket

    [Service]
    EnvironmentFile=/etc/knxd.ini
    ExecStart=/usr/bin/knxd /etc/knxd.ini
    User=knxd
    Group=knxd
    Type=notify

    Restart=on-failure
    RestartSec=10

    [Install]
    WantedBy=multi-user.target network-online.target
    Also=knxd.socket

    /etc/knxd.ini

    [A.tcp]
    server = knxd_tcp
    #systemd-ignore = true
    [C.tpuarts]
    device = /dev/ttyS2
    driver = tpuart
    [debug-server]
    name = mcast:knxd
    [debug-tunnel]
    #trace-mask = 0x0
    [main]
    cache = B.cache
    addr = 1.1.126
    client-addrs = 1.1.150:8
    connections = server,A.tcp,C.tpuarts
    systemd = systemd
    [server]
    debug = debug-server
    discover = true
    server = ets_router
    tunnel = tunnel
    [tunnel]
    debug = debug-tunnel

    Gruß Jürgen

    Einen Kommentar schreiben:


  • Tru
    antwortet
    Zitat von Jürgen Beitrag anzeigen
    Nun habe ich in der knxd.conf

    KNXD_OPTS="-e 1.1.126 -E 1.1.150:8 -D -R -T -S tpuarts:/dev/ttyS2"
    Setze noch ein -b vor die Schnittstelle.

    Die Lösung sieht nach einer knxd.ini Datei aus, statt der knxf.conf - eine Erklärung dazu habe ich aber auch noch nicht...
    die beiden Varianten sind gleichwertig. Entweder knxd mit einem Argument aufrufen, das muss dann der Name des ini File sein. Oder dann alle Parameter gemäss KNXD_OPTS. Ich kann dir aber nicht sagen wie in deiner systemd Konfig die Argumente aus KNXD_OPTS an knxd übergeben werden. Gemäss erstem Post gelingt es scheinbar.

    knxd_args finde ich nicht bei mir, ist die knxd.ini nun also Standard?
    knxd_args befindet sich nicht im Standard Path für ausführbare Programme, such mal unter /usr/lib oder nimm dpkg -L <Paketname> zu Hilfe


    Einen Kommentar schreiben:

  • Jürgen
    Forums-Einsteiger

  • Jürgen
    antwortet
    Hallo Smurf..

    Hmpf, Chinesisch....

    Ich suche nun schon seit Stunden, was sich mit knxd 0.14 auf Debian 10 so grundlegend geändert hat, dass meine Cape KNX Schnittstelle nicht mehr läuft.

    Vorher funktionierte:
    \etc\systemd\system\eibd.service mit den Einstellungen

    [Service]
    ExecStart=/usr/bin/eibd --eibaddr 1.1.126 --GroupCache --Server --Routing --Tunnelling --Discovery --tpuarts-ack-all-group --listen-tcp --listen-local tpuarts:/dev/ttyS2


    Nun habe ich in der knxd.conf

    KNXD_OPTS="-e 1.1.126 -E 1.1.150:8 -D -R -T -S tpuarts:/dev/ttyS2"

    Und bekomme im journalctl -xe

    Dez 27 20:39:10 ibbgateway knxd[1316]: E00000084: [ 1:main] There is no KNX addr= in section 'main'.
    Dez 27 20:39:10 ibbgateway knxd[1316]: F00000109: [ 1:main] Error setting up the KNX router.
    Dez 27 20:39:10 ibbgateway systemd[1]: knxd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
    -- Subject: Unit process exited

    Was ist "section main"? Der Fehler wird oft bei Google gefunden, aber genau erklärt nicht. Ist das die Zeile in der knxd.conf?

    Kollege HOTZEN beschreibt genau dieses Problem hier: (long argument-names got invalid when upgrading from 0.10 to 0.14?)

    https://github.com/knxd/knxd/issues/259


    Die Lösung sieht nach einer knxd.ini Datei aus, statt der knxf.conf - eine Erklärung dazu habe ich aber auch noch nicht...

    Smurf hat mal geschrieben:

    Test: v0.14 ist so weit

    Größere Änderungen:
    • Es gibt jetzt eine Konfigurationsdatei. Wenn man statt "knxd" das Programm "knxd_args" aufruft, werden die alten Optionen als INI-Datei ausgegeben. Den knxd kann man dann mit der so produzierten Datei (als einziges Argument) aufrufen.

    knxd_args finde ich nicht bei mir, ist die knxd.ini nun also Standard?

    Bin völlig verwirrt... 😵

    Gruß Jürgen







    Einen Kommentar schreiben:


  • Smurf
    antwortet
    Zitat von Jürgen Beitrag anzeigen
    Hallo und Danke für Eure Hilfe!
    @Smurf: ls: Zugriff auf '/dev/serial/by-path' nicht möglich: Datei oder Verzeichnis nicht gefunden
    Ah. Sorry, die gibt es erst mit Debian 11 serienmäßig. Du wirst stattdessen eine udev-Regel bauen müssen.

    Das Prinzip ist zB hier beschrieben: https://unix.stackexchange.com/quest...r-input-device

    Einen Kommentar schreiben:

  • Jürgen
    Forums-Einsteiger

  • Jürgen
    antwortet
    Hallo und Danke für Eure Hilfe!
    @Smurf: ls: Zugriff auf '/dev/serial/by-path' nicht möglich: Datei oder Verzeichnis nicht gefunden

    das mkdir verstehe ich ja, aber was sagt mir der Code? Sorry, bin Windowsuser...

    cat >/etc/systemd/system/knxd.service.d/owner.conf <<END
    [Service]
    ExecStartPre=!chown knxd /dev/serial/by-path/whatever
    END


    Ich habe in einem anderen Beitrag nun die passende Konfiguration eines anderen Cape Users gefunden:

    KNXD_OPTS="-e 1.1.126 -E 0.0.2:8 -c -D -R -T -S -b tpuarts:/dev/ttyS2"

    Für den Service Start habe ich nun wieder die knxd.conf eingegeben:

    sudo systemctl edit --full knxd

    [Unit]
    Description=KNX Daemon
    After=network.target knxd.socket
    Requires=knxd.socket

    [Service]
    EnvironmentFile=/etc/knxd.conf
    ExecStart=/usr/bin/knxd /etc/knxd.conf
    User=knxd
    Group=knxd
    Type=notify

    #Restart=on-failure
    #RestartSec=10

    [Install]
    WantedBy=multi-user.target network-online.target
    Also=knxd.socket


    Ich drehe mich im Kreis :-(

    Dez 27 18:19:14 ibbgateway knxd[1057]: E00000084: [ 1:main] There is no KNX addr= in section 'main'.
    Dez 27 18:19:14 ibbgateway knxd[1057]: F00000109: [ 1:main] Error setting up the KNX router.
    Dez 27 18:19:14 ibbgateway systemd[1]: knxd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT

    Morgen suche ich weiter :-(

    Gruß Jürgen

    Einen Kommentar schreiben:


  • Smurf
    antwortet
    Mach mal "ls -l /dev/serial/by-path". Einer davon ist ein Symlink auf deinen knx-Port. Verwende in der knxd-Konfiguration diesen Symlink. Der ändert sich garantiert nicht nach Reboot. Du musst außerdem noch dem knxd Zugriff gewähren, das geht am einfachsten mit einer systemd-Ergänzungsregel:

    Code:
    mkdir /etc/systemd/system/knxd.service.d
    cat >/etc/systemd/system/knxd.service.d/owner.conf <<END
    [Service]
    ExecStartPre=!chown knxd /dev/serial/by-path/whatever
    END

    Einen Kommentar schreiben:

  • Jürgen
    Forums-Einsteiger

  • Jürgen
    antwortet
    Einmal mit Profis arbeiten :-(
    Das scheinen die interessanten zu sein:

    crw--w---- 1 root tty 247, 0 Dez 27 15:16 /dev/ttyGS0
    lrwxrwxrwx 1 root root 5 Dez 27 15:15 /dev/ttyO0 -> ttyS0
    lrwxrwxrwx 1 root root 5 Dez 27 15:15 /dev/ttyO1 -> ttyS1
    lrwxrwxrwx 1 root root 5 Dez 27 15:15 /dev/ttyO2 -> ttyS2
    lrwxrwxrwx 1 root root 5 Dez 27 15:15 /dev/ttyO4 -> ttyS4
    crw--w---- 1 root tty 4, 64 Dez 27 15:15 /dev/ttyS0
    crw-rw---- 1 root dialout 4, 65 Dez 27 15:15 /dev/ttyS1
    crw-rw---- 1 root dialout 4, 66 Dez 27 15:15 /dev/ttyS2
    crw-rw---- 1 root dialout 4, 67 Dez 27 15:15 /dev/ttyS3
    crw-rw---- 1 root dialout 4, 68 Dez 27 15:15 /dev/ttyS4
    crw-rw---- 1 root dialout 4, 69 Dez 27 15:15 /dev/ttyS5

    Gruß Jürgen


    Einen Kommentar schreiben:


  • tobiasr
    antwortet
    ls -l /dev/tty* du musst das * als Wildcard anhängen. Die Bezeichnung der /dev/ttyS wird "dynamisch" gemacht. Es kann sein, dass es jetzt ttyS1 ist.

    Einen Kommentar schreiben:

  • Jürgen
    Forums-Einsteiger

  • Jürgen
    antwortet
    Hallo Tobias,
    ja, Cape auf dem BBB. ICh habe mal die Einstellungen vom Energiezwerg übernommen und die KNXD.ini gepflegt (https://knx-user-forum.de/forum/%C3%...B6glich/page15)

    Er hat da als Device /dev/ttyS2

    ls -la /dev/tty bringt bei mir:

    crw-rw-rw- 1 root tty 5, 0 Dez 27 15:19 /dev/tty

    Muss ich da dann die ttyS5 eintragen?

    Bin völlig verwirrt...

    Syslog sagt auch nicht wirklich was:

    Started KNX Daemon.
    Dec 27 15:15:47 ibbgateway systemd[1]: knxd.service: Main process exited, code=exited, status=1/FAILURE
    Dec 27 15:15:47 ibbgateway systemd[1]: knxd.service: Failed with result 'exit-code'.



    [A.tcp]
    server = knxd_tcp
    systemd-ignore = true
    [C.tpuarts]
    device = /dev/ttyS2
    driver = tpuart
    [debug-server]
    name = mcast:knxd
    [debug-tunnel]
    trace-mask = 0x0
    [main]
    cache = B.cache
    addr = 1.1.126
    client-addrs = 1.1.150:8
    connections = server,A.tcp,C.tpuarts
    systemd = systemd
    [server]
    debug = debug-server
    discover = true
    server = ets_router
    tunnel = tunnel
    [tunnel]
    debug = debug-tunnel


    Gruß Jürgen

    Einen Kommentar schreiben:


  • tobiasr
    antwortet
    Ich vermute, dass IBB Cape sitzt auf dem verwendeten Beagle Bord? Da wird der TPUART also über TTL sich irgendwo als /dev/tty... melden. Zeig dir doch mal an, was es da so gibt: "ls -la /dev/tty*" wobei du alle tty0-xx uns nicht posten musst.

    Was mich etwas verwirrst, du verwendest einmal ipt:192.168.1.231 und einmal ip:192.168.1.231 (ohe t). Wobei ich eigentlich erwarten würde, dass du dich über den seriellen Anschluss verbinden müsstest.

    Einen Kommentar schreiben:

  • Jürgen
    Forums-Einsteiger

  • Jürgen
    hat ein Thema erstellt KNXD funktioniert nach Debian Upgrade nicht mehr.

    KNXD funktioniert nach Debian Upgrade nicht mehr

    Hallo Leuts,

    nun hat es mich auch getroffen und ich finde keine Lösung :-(

    Mein Beagle lief mit Debian 8 und SHNG 1.5.1 prima. Wegen Letsencrypt brauchte ich ein Update, also auf Debian 9 gegangen.
    NGINX und OWserver liefen, KNXD startete nicht. Da dann schon Meldungen kamen, Python wäre bald aus der Wartung gleich auf Debian 10.
    Während des Upgrades kamenFragen zum KNXD, ob alte Versionen erhalten werden sollen, hab ich mit ja - also N für nicht ersetzen - entschieden, vielleicht falsch?

    KNXD wird gestartet, tut aber nix...

    systemctl status knxd

    ● knxd.service - KNX Daemon
    Loaded: loaded (/lib/systemd/system/knxd.service; enabled; vendor preset: enabled)
    Active: active (running) since Sun 2020-12-27 14:31:05 CET; 1min 5s ago
    Main PID: 889 (knxd)
    Tasks: 1 (limit: 1036)
    Memory: 272.0K
    CGroup: /system.slice/knxd.service
    └─889 /usr/bin/knxd -e 1.1.126 -E 1.2.150:8 -c -b ip:

    Started KNX Daemon.

    systemctl status knxd.socket

    ● knxd.socket - KNX Daemon (socket)
    Loaded: loaded (/lib/systemd/system/knxd.socket; enabled; vendor preset: enabled)
    Active: active (running) since Sun 2020-12-27 14:30:45 CET; 11min ago
    Listen: /var/run/knx (Stream)
    [::]:6720 (Stream)
    CGroup: /system.slice/knxd.socket

    Listening on KNX Daemon (socket).




    smarthome@ibbgateway:~$ knxtool groupsocketlisten ip:localhost

    DA RÜHRT SICH AUF DEM BUS ABER NICHTS...

    knxtool groupswrite ip:localhost 1/3/34 1
    Send request
    Da passiert auch nichts...

    VERMUTUNG:
    Mein IBB Cape mit der KNX Anbindung wird nicht benutzt. Ich werde Robert mal kontaktieren...


    Kann jemand von Euch mal erklären, was sich von Debian 8 nach Debian 10 (9) geändert hat und warum mein Buszugriff nach dem Upgrade nicht mehr läuft?

    Vielen Dank!
    Gruß
    Jürgen
    Jürgen
    Forums-Einsteiger
    Zuletzt geändert von Jürgen; 27.12.2020, 14:51.
Lädt...
X