Ankündigung

Einklappen
Keine Ankündigung bisher.

OH3 + KNXD + Weinzierl Engineering GmbH KNX-USB Stick 330

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    OH3 + KNXD + Weinzierl Engineering GmbH KNX-USB Stick 330

    Hallo zusammen,

    ich habe auf einem RPi4 eine openhab3 Instanz installiert und dort unter optionalen Komponenten knxd zusätzlich aufgesetzt. Ein Weinzierl Engineering GmbH KNX-USB Stick 330 ist mit dem RPi4 verbunden.

    Ich habe mittels udev dem Stick ttyKNXUSB zugewiesen und habe in der knxd.conf

    Code:
    KNXD_OPTS="-e 0.0.1 -E 0.0.2:8 -u /tmp/eib -d -D -T -R -S -i --listen-local=/tmp/knx -b tpuarts:/dev/ttyKNXUSB"
    Das führt zu

    Code:
    $ journalctl -u knxd --since "10 min ago"
    -- Journal begins at Thu 2022-10-27 21:35:08 CEST, ends at Thu 2022-10-27 21:43:23 CEST. --
    Oct 27 21:42:55 openhabian3 systemd[1]: Starting LSB: <Enter a short description of the software>...
    Oct 27 21:42:55 openhabian3 systemd[1]: Started LSB: <Enter a short description of the software>.
    Oct 27 21:42:55 openhabian3 knxd[807]: E00000084: [ 1:main] There is no KNX addr= in section 'main'.
    Oct 27 21:42:55 openhabian3 knxd[807]: F00000109: [ 1:main] Error setting up the KNX router.
    Alternativ habe ich mich hieran (https://knx-user-forum.de/forum/projekt ... xd-und-usb) orientiert und habe in der knxd.conf

    Code:
    KNXD_OPTS="-e 0.0.100 -E 0.0.101:7 -D -T -R -S -i 6720 -b usb:1:4:1:0"
    basierend auf meiner Ausgabe von lsusb:

    Code:
    Bus 001 Device 003: ID 0e77:0104 Weinzierl Engineering GmbH KNX-USB Stick 330
    Was zum gleichen Ergebnis führt.

    Was genau mache ich falsch, bzw. was muss ich machen um das Problem zu lösen?

    #2
    Gibt es einen Grund weshalb du knxd da dazwischen schalten möchtest? OpenHab müsste doch direkt mit dem USB Interface funktionieren, oder?

    Kommentar


      #3
      Hmm, ich komme von OH2, da musste ich, damit openhab an KNX kommt, über den eibd Dienst arbeiten. Durch den Umstieg auf OH3 fiel der Dienst weg, weshalb ich zu KNXD gewechselt bin. Ich habe bisher zumindest keine Möglichkeit gesehen dass OH3 direkt mit dem USB Interface kommunuzieren kann. GIbt es dazu irgendwo Dokumentation?

      Kommentar


        #4
        Ich hab's noch nie probiert, aber hier steht was von "Serial": https://www.openhab.org/addons/bindings/knx/

        Kommentar


          #5
          Ich habe versucht den Stick mittels Serial anzubinden:

          Code:
          lsusb
          Bus 001 Device 006: ID 0e77:0104 Weinzierl Engineering GmbH KNX-USB Stick 330
          Code:
          /dev $ ls -l
          lrwxrwxrwx 1 root root 15 Oct 30 17:45 ttyKNXUSB -> bus/usb/001/006
          knx.things:
          Code:
          Bridge knx:serial:bridge [
          serialPort="/dev/ttyKNXUSB",
          readingPause=50,
          responseTimeout=10,
          readRetriesLimit=3,
          autoReconnectPeriod=60
          ] {​
          Und bekomme:
          Code:
          Status: OFFLINE
          [B]COMMUNICATION_ERROR[/B] Serial port '/dev/ttyKNXUSB' could not be opened. Available ports are: /dev/ttyAMA0



          Kommentar


            #6
            Du musst auf jeden Fall die serielle Schnittstelle in Java hineinreichen (über die Datei /etc/default/openhab)
            Code:
            #########################
            ## JAVA OPTIONS
            ## Additional options for the JAVA_OPTS environment variable.
            ## These will be appended to the execution of the openHAB Java runtime in front of all other options.
            ##
            ## A couple of independent examples:
            ##   EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0"
            ##   EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyUSB0:/dev/ttyS0:/dev/ttyS2:/dev/ttyACM0:/dev/ttyAMA0"
            ##   EXTRA_JAVA_OPTS="-Djna.library.path=/lib/arm-linux-gnueabihf/ -Duser.timezone=Europe/Berlin -Dgnu.io.rxtx.SerialPorts=/dev/ttyS0"
            
            EXTRA_JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true"
            
            ​
            Sogar mit Beispiel direkt in der Datei (Und wichtig: den gesetzten Parameter bitte drin lassen, das ist der Fix für das Einfallstor über log4j2...)

            Das ist natürlich nur dann nötig, wenn openHAB mit dem Interface direkt kommunizieren soll. Verwendet man knxd, so ist das nicht notwendig.

            So für den Hinterkopf: knxd ist der Nachfolger von eibd, wenn das Interface unter eibd funktioniert hat, wird es auch unter knxd funktionieren, es muss "nur" die richtige Konfiguration gefunden werden.
            Zuletzt geändert von udo1toni; 30.10.2022, 19:36.

            Kommentar


              #7
              Ich habe die Java Opts gesetzt:

              Code:
              EXTRA_JAVA_OPTS="-Xms192m -Xmx320m -Dgnu.io.rxtx.SerialPorts=/dev/ttyKNXUSB"
              und bekomme nun in der OH3 Oberfläche:

              Code:
              Status: OFFLINE
              
              
              [B]COMMUNICATION_ERROR[/B] Serial port '/dev/ttyKNXUSB' could not be opened. Available ports are:

              Kommentar


                #8
                Dann stimmen die Berechtigungen nicht. Da es sich bei /dev/ttyKNUSB nur um einen symbolischen Link handelt, musst Du beim "Original" nachschauen. Also wem "gehört"
                Code:
                /dev/bus/usb/001/006
                und wie sind die Berechtigungen gesetzt?
                Im Zweifel kannst Du beides (also Besitz: mindestens die Gruppe sollte dialout sein und die Berechtigungen 750 bzw. crw-rw---) auch über die udev Rule setzen lassen, es könnte ja sein, dass der USB-Stick mal an einen anderen Port gesteckt wird.

                openhab (also der User, unter dem openHAB läuft) ist Mitglied der Gruppe dialout, die ist üblicherweise für die Berechtigung, auf serielle Ports zuzugreifen gedacht.

                Kommentar


                  #9
                  Die Berechtigungen gingen an knxd, ich habe es angepasst (der Stick hängt aktuell an Bus 001 Device 003: ID 0e77:0104 Weinzierl Engineering GmbH KNX-USB Stick 330, was auch korrekt aufgelöst wird: lrwxrwxrwx 1 root root 15 Oct 31 08:27 ttyKNXUSB -> bus/usb/001/003):

                  Code:
                  /dev/bus/usb/001 $ ls -l
                  crwxrwxr-x 1 openhab dialout 189, 2 Oct 31 08:27 003
                  Bekomme aber nach wie vor das hier:

                  Code:
                  Status:
                  OFFLINE
                  COMMUNICATION_ERROR
                  Serial port '/dev/ttyKNXUSB' could not be opened. Available ports are:​

                  Kommentar


                    #10
                    Mit welchem User läuft knxd und ist dieser User Mitglied der Gruppe dialout?

                    Kommentar


                      #11
                      Wie finde ich das heraus? ps aux gibt keinen Treffer auf knxd. Inzwischen sollte oh3 auch direkt auf den Stick zugreifen, also ist theoretisch kein knxd erforderlich,

                      Kommentar


                        #12
                        Ich habe das Problem noch nicht lösen können und bin an einem Punkt an dem ich nicht weiterkomme. Was bisher geschah:

                        Ich möchte knx an OH3 anbinden, dazu habe ich einen USB Stick an der Himbeere:

                        Code:
                        lsusb
                        Bus 001 Device 003: ID 0e77:0104 Weinzierl Engineering GmbH KNX-USB Stick 330
                        OH3 soll direkt über die serielle Schnittstelle mit KNX kommunizieren, nicht über knxd.

                        Dazu habe ich einen symbolischen Link zum Stick:

                        Code:
                        ls -l /dev
                        lrwxrwxrwx 1 root root 15 Nov 8 09:37 ttyKNXUSB -> bus/usb/001/003
                        Der Stick wird mittels einer udev rule verarbeitet:

                        Code:
                        $ ls /etc/udev/rules.d
                        3000-my-knxusb-device.rules 99-com.rules
                        Inhalt ​3000-my-knxusb-devive.rules:
                        Code:
                        SUBSYSTEM=="usb", ATTR{idVendor}=="0e77", ATTR{idProduct}=="0104", SYMLINK+="ttyKNXUSB", OWNER="openhab", GROUP="dialout"
                        ​[Hier war in vorherigen Versuchen noch ein file von knxd, das den stick dem user und der gruppe knxd zugewiesen hat, dieses file habe ich entfernt.]

                        Der Stick wird auch verarbeitet wie gewünscht:
                        Code:
                        ls -l /dev/bus/usb/001
                        total 0
                        crw-rw-r-- 1 root root 189, 0 Nov 8 09:37 001
                        crw-rw-r-- 1 root root 189, 1 Nov 8 09:37 002
                        crw-rw-r-- 1 openhab dialout 189, 2 Nov 8 09:37 003
                        Die JavaOps in /etc/default/openhab sind wie folgt gesetzt (OH3 Doku https://www.openhab.org/docs/adminis.../serial.html):

                        Code:
                        EXTRA_JAVA_OPTS="-Xms192m -Xmx320m -Dgnu.io.rxtx.SerialPorts=/dev/ttyKNXUSB"
                        Gemäß der OH3 Doku (https://www.openhab.org/docs/administration/serial.html) habe ich ausgeführt:

                        Code:
                        sudo usermod -a -G dialout openhab​
                        und zusätzlich habe ich den lock erfolgreich getestet:

                        Code:
                        sudo -u openhab touch /var/lock/test​
                        ​In conf/things habe ich eine knx.things:

                        Code:
                        Bridge knx:serial:bridge [
                        serialPort="/dev/ttyKNXUSB",
                        readingPause=50,
                        responseTimeout=10,
                        readRetriesLimit=3,
                        autoReconnectPeriod=60
                        ] {​ ...
                        Die Ausgabe in der OH3 Oberfläche zu diesem Thing ist:

                        Code:
                        Status: OFFLINE
                        
                        
                        [B]COMMUNICATION_ERROR[/B] Serial port '/dev/ttyKNXUSB' could not be opened. Available ports are:
                        Wo genau läuft mein Setup schief? Ich bin aktuell ratlos.
                        Zuletzt geändert von gaia; 08.11.2022, 10:21. Grund: Added more information

                        Kommentar


                          #13
                          Eigentlich sieht das alles genau richtig aus.

                          Das Blöde: ich finde überhaupt keine Postings zu diesem Stick (abgesehen von diesem Thread und einem im openHAB Forum, der aber so zeitnah zu diesem hier liegt, dass ich befürchte, Du bist dort ebenfalls angemeldet

                          Also, was möglich ist: Der Stick funktioniert nur in einer bestimmten Betriebsart, welche von openHAB nicht direkt unterstützt wird. Insofern wäre knxd schon die Waffe der Wahl, um dem beizukommen. Aber auch da muss man zunächst eine überhaupt funktionierende Konfiguration finden.
                          Je nach Ausdauer (und natürlich vorhandenen Geldmitteln...) empfehle ich ab einem bestimmten Punkt, vielleicht lieber eine andere Schnittstelle zu verwenden. Weinzierl IP 730 habe ich selbst im Einsatz, die Nachfolgeschnittstelle 731 soll auch gut funktionieren, habe ich aber keine Erfahrungen mit - nachteilig (in meinen Augen) ist, dass die 731 allein über die Busspannung gespeist wird; die 730 hat separate 12-24V Klemmen und kann alternativ über PoE versorgt werden.
                          Aber vielleicht konnte der Strombedarf des Gateways auch so enorm gesenkt werden, dass das kein Thema ist, das sollte man vorher klären.

                          Kommentar


                            #14
                            Zitat von udo1toni Beitrag anzeigen
                            Das Blöde: ich finde überhaupt keine Postings zu diesem Stick (abgesehen von diesem Thread und einem im openHAB Forum, der aber so zeitnah zu diesem hier liegt, dass ich befürchte, Du bist dort ebenfalls angemeldet
                            Die Ersteller sind wohl identisch 😉

                            Zitat von udo1toni Beitrag anzeigen
                            Also, was möglich ist: Der Stick funktioniert nur in einer bestimmten Betriebsart, welche von openHAB nicht direkt unterstützt wird. Insofern wäre knxd schon die Waffe der Wahl, um dem beizukommen. Aber auch da muss man zunächst eine überhaupt funktionierende Konfiguration finden.
                            Je nach Ausdauer (und natürlich vorhandenen Geldmitteln...) empfehle ich ab einem bestimmten Punkt, vielleicht lieber eine andere Schnittstelle zu verwenden. Weinzierl IP 730 habe ich selbst im Einsatz, die Nachfolgeschnittstelle 731 soll auch gut funktionieren, habe ich aber keine Erfahrungen mit - nachteilig (in meinen Augen) ist, dass die 731 allein über die Busspannung gespeist wird; die 730 hat separate 12-24V Klemmen und kann alternativ über PoE versorgt werden.
                            Aber vielleicht konnte der Strombedarf des Gateways auch so enorm gesenkt werden, dass das kein Thema ist, das sollte man vorher klären.
                            Was mich wundert ist dass bei

                            Code:
                            [B]COMMUNICATION_ERROR[/B] Serial port '/dev/ttyKNXUSB' could not be opened. Available ports are:
                            zu einem vorherigen Zeitpunkt ttyAMA als available Port angezeigt wurde - ich weiß aber nicht mehr welche Einstellungen ich da hatte, und den Zustand bekomme ich auch nicht wieder gebastelt. Daher sagt mir mein Bauchgefühl dass da irgendetwas in der Config noch den Zugriff von OH auf die Ports blockt.

                            Wenn die Config allerdings korrekt aussieht, und da auch kein Vorschlag da ist, was man drehen könnte, dann wäre der Schlachplan, gemäß deines Posts, der Folgende:

                            1. Nochmal knxd versuchen
                            2. Wenn 1. nicht klappt, neuer Stick

                            Kommentar


                              #15
                              Ich bekomme knxd nicht mehr installiert, die Installation ist nicht erfolgreich, die Ausgabe von journalctl -xe ist

                              Code:
                              Nov 09 08:30:41 openhabian3 systemd[1]: Starting KNX Daemon...
                              ░░ Subject: A start job for unit knxd.service has begun execution
                              ░░ Defined-By: systemd
                              ░░ Support: https://www.debian.org/support
                              ░░
                              ░░ A start job for unit knxd.service has begun execution.
                              ░░
                              ░░ The job identifier is 3718.
                              Nov 09 08:30:41 openhabian3 knxd[30330]: F00000104: [ 1:main] Section 'main': unrecognized argument 'background = true'
                              Nov 09 08:30:41 openhabian3 knxd[30330]: F00000109: [ 1:main] Error setting up the KNX router.
                              Nov 09 08:30:41 openhabian3 systemd[1]: knxd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
                              ░░ Subject: Unit process exited
                              ░░ Defined-By: systemd
                              ░░ Support: https://www.debian.org/support
                              ░░
                              ░░ An ExecStart= process belonging to unit knxd.service has exited.
                              ░░
                              ░░ The process' exit code is 'exited' and its exit status is 2.
                              Nov 09 08:30:41 openhabian3 systemd[1]: knxd.service: Failed with result 'exit-code'.
                              ░░ Subject: Unit failed
                              ░░ Defined-By: systemd
                              ░░ Support: https://www.debian.org/support
                              ░░
                              ░░ The unit knxd.service has entered the 'failed' state with result 'exit-code'.
                              Nov 09 08:30:41 openhabian3 systemd[1]: Failed to start KNX Daemon.
                              ░░ Subject: A start job for unit knxd.service has failed
                              ░░ Defined-By: systemd
                              ░░ Support: https://www.debian.org/support
                              ░░
                              ░░ A start job for unit knxd.service has finished with a failure.
                              ░░
                              ░░ The job identifier is 3718 and the job result is failed.

                              Kommentar

                              Lädt...
                              X