Zigbee Stick in openHAB als Docker-Container

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
loewes
Beiträge: 31
Registriert: 10. Jan 2023 09:52
Answers: 2

Zigbee Stick in openHAB als Docker-Container

Beitrag von loewes »

Hallo,

ich hab irgendwie noch ein Verständnisproblem: ich hab bei mir ein NAS laufen (OpenMediaVault) und auf dem Rechner als Docker-Container openHAB laufen und das funktioniert bisher sehr gut. Als Test für die Erweiterung habe ich mir jetzt einen Zigbee-USB-Stick (CC2531) zugelegt. Nur wird der Stick nicht erkannt. Wenn ich direkt am Rechner dmesg aufrufe wird mit der Stick auch angezeigt, aber nicht auf welchem Gerät der liegt (/dev/ttyXXX). Und wenn ich in Portainer das Terminal von openHAB (Container) aufrufe, darf ich dmesg gar nicht ausführen... Wie bekomme ich denn jetzt im openHAB Container Zugriff auf den USB-Stick?
Kann mir da jemand helfen?
Vielen Dank schon mal!
von loewes » 4. Feb 2023 21:06
Update: seit die richtige Zigbee2MQTT Firmware auf dem Stick ist, läuft alles, der Stick wird erkannt und ich finde auch sofort Hue und Tradfri Lampen...
Gehe zur vollständigen Antwort

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Zigbee Stick in openHAB als Docker-Container

Beitrag von udo1toni »

Frage zunächst: Ist das ein OpenMediaVault Image und darin läuft Docker? Welches OS ist denn die Basis? (Z.B. Ausgabe von cat /etc/os-release)

Du musst zunächst ermitteln, wie der Stick im OS heißt. Am einfachsten rufst Du dazu dmesg -w auf und steckst anschließend den Stick an, während Du den Monitor betrachtest, so bekommst Du alle Zeilen im Zusammenhang mit der Hardwareerkennung angezeigt. Auch lsusb sollte Dir etwas anzeigen (muss aber nicht unbedingt installiert sein, siehe Frage nach dem OS)
Eine zuverlässige Identifikation des Sticks ist jedenfalls Voraussetzung für die Einbindung.

Wenn Du den Stick mal identifiziert hast und evtl. kein Device dafür erzeugt wird (/dev/ttyXXXX) musst Du notfalls eine udev Rule anlegen. Hört sich kompliziert an, ist aber letztlich nur eine kleine Textdatei, in der die Seriennummer und die Hardware ID des Sticks stehen (lsusb verrät Dir diese Daten) sowie die Regeln, wie mit diesem Device zu verfahren ist (also z.B. lege ein Device /dev/ttyCC1 an, setze die Rechte 775, ordne es User root und Gruppe dialout zu) Bei der Gruppenzuordnung bin ich mir nicht sicher, letztlich muss der User docker (in dessen Kontext sollte docker laufen) vollen Zugriff auf das Device erlangen.

Danach musst Du das Device in den openHAB Container hineinreichen, das geschieht über die Konfiguration des Containers in Portainer. Hast Du einen Stack definiert? Dann musst Du lediglich die passenden Daten im yaml nachtragen und den Container neu erzeugen.

Wichtig ist aber, dass Du das Device doppelt angeben musst, einmal muss es in den Container hineingereicht werden, zum anderen muss es über die JAVA_EXTRA_OPTS der Java VM zur Verfügung gestellt werden, die openHAB ausführt.

Ich bin mir nicht zu 100% sicher, aber ich meine, dieser Thread: viewtopic.php?p=50978&hilit=docker+usb#p50978 geht recht detailliert auf die Konfiguration ein. Grundsätzlich sollte das unter OpenMediaVault genauso funktionieren, das basiert ja auf Debian, wenn ich mich nicht irre.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

loewes
Beiträge: 31
Registriert: 10. Jan 2023 09:52
Answers: 2

Re: Zigbee Stick in openHAB als Docker-Container

Beitrag von loewes »

Hallo,

vielen Dank schon mal für die ausführliche Info! /var/os-release existiert leider nicht, ich habe von OpenMediaVault das Image geladen und am Rechner installiert, ich schätze mal, das ist eine Debian Basis...
Stick anstecken liefert das hier:

Code: Alles auswählen

[1559826.277262] usb 2-4: new full-speed USB device number 4 using xhci_hcd
[1559826.428453] usb 2-4: New USB device found, idVendor=0451, idProduct=16ae, bcdDevice=60.17
[1559826.428467] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[1559826.428471] usb 2-4: Product: CC2531 USB Dongle
[1559826.428475] usb 2-4: Manufacturer: Texas Instruments
lsusb gibt mir dazu das aus: Bus 002 Device 004: ID 0451:16ae Texas Instruments, Inc. CC2531 Dongle

Wie muss jetzt der Inhalt der Device-Datei lauten?

Vielen Dank für die Erklärungen für Dummies!

loewes
Beiträge: 31
Registriert: 10. Jan 2023 09:52
Answers: 2

Re: Zigbee Stick in openHAB als Docker-Container

Beitrag von loewes »

Update: ich hab in /lib/udev/rules.d/ eine neue Datei angelegt und darin folgendes definiert:

Code: Alles auswählen

BUS=="usb",SYSFS{idVendor}=="0451",SYSFS{idProduct}=="16ae"
NAME="ttyZB%n",OWNER="root",GROUP="dialout",MODE="775"
Mein Verständnis wäre jetzt, dass ein Gerät ttyZB0 oder ttyZB1 angelegt wird, aber es passiert gar nix... was mache ich falsch? ;)

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Zigbee Stick in openHAB als Docker-Container

Beitrag von udo1toni »

Tippfehler... /etc/os-release ist das richtige File (hab das oben korrigiert)

Die udev Rule ist so nicht korrekt. Es gibt z.B. keinen Schlüssel BUS.
Es ist eine Weile her, dass ich mich damit bei mir selbst beschäftigt habe, aber ich würde sowas erwarten:

Code: Alles auswählen

ACTION=="add" \
, ATTRS{idProduct}=="16ae" \
, ATTRS{idVendor}=="0451" \
,ENV{OWNER}="root" \
,ENV{GROUP}="dialout" \
,ENV{MODE}="775" \
SYMLINK+="/dev/ttyZB0"
Die Datei gehört eigentlich nach /etc/udev/rules.d/, da liegen die custom configurations.

udevadm ist das Tool der Wahl, um alle Informationen passend abzurufen und auch die Rule selbst zu testen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

loewes
Beiträge: 31
Registriert: 10. Jan 2023 09:52
Answers: 2

Re: Zigbee Stick in openHAB als Docker-Container

Beitrag von loewes »

Danke Dir! Beim Testen mit udevadm liest er die Datei und gibt mir dann aus:
failed to open device '/sys/dev/ttyZB0': No such device
Warum ist es jetzt /sys/?
Auch bei udevadm trigger oder Neustart wird kein Gerät /dev/ttyZB0 angelegt...

loewes
Beiträge: 31
Registriert: 10. Jan 2023 09:52
Answers: 2

Re: Zigbee Stick in openHAB als Docker-Container

Beitrag von loewes »

ich hatte das Thema nochmal in einem Debian-Forum angefragt und da bekam ich die Antwort, dass es sein kann, dass nur mit entsprechender Firmware das Gerät erkannt wird. Ich hatte bisher verstanden, dass auch ein Standard CC2531 Stick mit dem Zigbee Binding verwendet werden könnte (ohne Zigbee2MQTT Firmware). Aber dann muss ich wohl mal schauen, wie das Flashen funktioniert...

loewes
Beiträge: 31
Registriert: 10. Jan 2023 09:52
Answers: 2

Re: Zigbee Stick in openHAB als Docker-Container

Beitrag von loewes »

Update: seit die richtige Zigbee2MQTT Firmware auf dem Stick ist, läuft alles, der Stick wird erkannt und ich finde auch sofort Hue und Tradfri Lampen...

Antworten