Docker Container zu Conbee 2-Zigbee USB-Stick

  • Ich habe mich bislang noch nie mit Docker oder einer der anderen Virtualisierungslösungen auseinander gesetzt. Nun würde ich aber gerne einen Zigbee USB-Stick "Conbee 2" an meinen x86 QNAP NAS anschließen, um mir so einen zusätzliche Smarthome Hub zu ersparen.


    Auf der Herstellerseite wird auch Docker als mögliche Installationsweise angeführt:

    Installationsanleitung


    Genutzt wird dabei offenbar ein über Docker Hub vertriebener Container:

    docker hub


    Kann ich diese Anleitungsschritte auch einfach analog mit Container Station umsetzen? Oder kann ich mir die ganzen Umweg über Docker sparen und die benötige Software einfach über APT direkt auf dem NAS installieren?:/

  • die benötige Software einfach über APT direkt auf dem NAS installieren?

    Nein kannst du nicht. Auf dem Betriebssystem QTS, welches auf dem NAS läuft gibt es keine apt basierende Paketverwaltung. Im Prinzip kannst du den in der Doku aufgeführen Befehl 1 zu 1 auch auf dem NAS ausführen (wenn du dich per SSH einloggst). Oder du "übersetzt" die Aufrufe in die GUI der Container Station, was auch nicht wirklich kompliziert ist.

    Das einzige Problem was ich sehe ist diese Zeile: --device=/dev/ttyACM0 hier habe ich bisher Probleme gehabt, weil das für serielle Geräte verwendete Kernelmodul zu spät geladen wird. Konkret heißt das, dass du nach einem Neustart Probleme bekommen könntest, wenn der Container auch automatisch gestartet werden soll. Ggf. kannst du hier mit einem Cron Job Abhilfe schaffen.

    Ich persönlich habe auch einen Conbee 2, habe mir aber vor kurzem einen Raspi 3 als Smarthome Hub mit Home Assistant eingerichtet. Das ist um ein vielfaches einfacher, als dem NAS diese Funktionen beizubringen.

  • Ich habe als Newbee in Sachen Docker und QNAP (gekauft und installiert Anfang Dezember) den Conbee 2 Stick nahezu problemlos an den Dockerconatiner marthoc/deconz zum laufen gebracht.

    Leider ist es tatsächlich so das die Manuals immer über die Shell gehen und nicht Über die ContainerStation von QNAP, für die Konkurrenz findet man mehr Howtos als für QNAP Sodas ich ernsthaft am überlegen war meine TS-251D zurück zu senden.


    Die Option --device=/dev/ttyACM0 muss in der ContainerStation wie folgt umgesetzt werden, dann funktioniert es (intuitiv habe ich den ConBee 2 Stick an ein USB 2.0 angeschlossen:


    Bildschirmfoto 2020-12-18 um 08.31.28.png



    Netzwerk habe ich auf Bridge mit fester IP gesetzt.


    Bildschirmfoto 2020-12-18 um 08.42.01.png


    Was ich auch nicht verstehe, da ich völlig neu mit Docker experimentiere wo die ominöse Datei configuration.yaml zu finden ist, hab das in einem anderen Thema gefragt aber es gab keine erschöpfende Antwort, ich scheitere bei der Installation von koenkk/zigbee2mqtt weil ich einfach zu blöd bin die Konfiguration mit ContainerStation umzusetzen bzw. ich die configuration.yaml nicht finden kann

  • Welche configuration.yaml meinst du denn? Ich kenne so eine Datei nur aus dem Umfeld von Home Assistant, welches auch oft Zusammen mit dem Conbee Stick verwendet wird.

  • Das würde erklären weshalb ich die Datei im Docker-Kontext nicht finden kann und mit populäre Suchmaschinen immer wieder zu Homeassistant verweisen.

    Ich konnte diesen Zusammenhang aus der Doku von koenkk/zigbee2mqtt nicht herstellen unter der Beschreibungen unterstützen Adapter.


    https://www.zigbee2mqtt.io/inf…n/supported_adapters.html


    Falls die Frage aufkommt weshalb ich überhaupt versuche den koenkk/zigbee2mqtt als Docker Container auf meinem QNAP zum laufen zu bringen: Neugier und Entscheidungsfindung wie ich meine HUE-Bridge am sinnvollsten ablöse. Fände es schon ganz nice wenn später alles auf der QNAP läuft und nicht noch irgendwo ein Raspberry rumfliegt. Auf meinem Raspberry lief zu vor Pi-Hole, was jetzt schon in einen Dockercontainer "umgezogen" ist auf dem NAS.

  • Fände es schon ganz nice wenn später alles auf der QNAP läuft und nicht noch irgendwo ein Raspberry rumfliegt

    Das hatte ich bisher auch immer so vor, aber mittlerweile habe ich extra für Home Assistant doch einen Pi eingesetzt. Mit den fertigen Images ist es viel einfacher, als sich mit so Problemchen wie dem Device auf dem NAS rumzuschlagen. Weiterhin kann ich mit einem separaten Gerät dem NAS sagen wann es z.B. schlafen gehen soll :)

    Eine PiHole Alternative names "Ad Guard Home" ist übrigens als Home Assistant Add On verfügbar und kann bequem über Home Assistant gemanaged werden.

  • Das das NAS schlafen kann wenn es nicht benötigt wird ist tatsächlich ein Argument das ich auch schon in Betracht gezogen habe, ein Raspberry benötigt sicher weniger Strom als das QNAP, auch wenn es nur ein kleines ist. Am Raspberry störte mich immer das es so neben dem Router rum liegt und in alle Richtungen Kabel abgehen.


    Noch gebe ich nicht auf was Docker angeht, vielleicht lerne ich dabei ja etwas und zufälligerweise funktioniert später alles. Grösstes Problem ist im Moment via ContainerStation einen Container zum laufen zu bringen, obwohl, 3 von fünf laufen wenn vielleicht noch nicht perfekt, dauert einfach zu lange bis ich eine Konfiguration mit ContainerStation um gesetzte habe weil einfach unklar ist wie ich manche Optionen umsetzten muss.


    PS: wenn es nur einfach sein sollte könnte meine HUE Bridge weiter alles regeln und ich verzichte auf elektrische Rollos

  • Ich habe als Newbee in Sachen Docker und QNAP den Conbee 2 Stick nahezu problemlos an den Dockerconatiner marthoc/deconz zum laufen gebracht.

    Leider ist es tatsächlich so das die Manuals immer über die Shell gehen und nicht Über die ContainerStation von QNAP

    Verstehe ich dich richtig, dass du es dann jetzt aber doch mit Container Station hinbekommen hast? Funktioniert die Sache dann auch ganz automatisch nach einem Neustart des NAS weiterhin?

  • Das würde mich jetzt auch mal interessieren?


    Ich nutze ebenfalls einen Conbee Stick (erste Version), welcher auf einem Pi 3 läuft und Home Assistant (läuft auf einem Pi4) und ich habe mittlerer Weile sogar zwei QNAPs. Warum habe ich das alles so aufgeteilt und lasse nicht alles auf einem QNAP laufen? Anfangs dachte ich auch alles auf meinem ersten QNAP dem TS-251A laufen zu lassen. Bin aber auch an dem weiterreichen des USB Sticks gescheitert. In der Zwischenzeit würde ich dieses Setup immer wieder so wählen. Der Pi3 mit deconz im Container läuft einfach. Er erhält regelmäßig seine Updates fürs OS und hin und wieder spendiere ich deconz ein update. Downtime des Pi3 = 0 Minuten! Und somit läuft meine Lichtsteuerung immer und das seit 2 Jahren! Hätte ich das auf dem 251A laufen, würde die Lichtsteuerung bei jedem Update des NAS für mehrere Minuten nicht laufen und bei dem ganzen Hickhack den QNAP mit den Firmwares hat, wäre es auch nicht ausgeschlossen, dass es mal ein paar Stunden sind, wenn mal wieder ein Downgrade der Firmware notwendig ist (ja, das musste ich in der Tat schon machen).

    Bleibt nur noch die Frage warum Home Assistant nicht auf einem QNAP läuft. Anfangs war das auch der Fall und es lief hevorragend! Warum also wechseln? Ganz einfach, ich wollte mein Smartes Zuhause auch von unterwegs bedienen können. Klar hätte ich jetzt auch einfach den Port auf das NAS öffnen können, da aber alle meine wichtigen Daten darauf liegen, war mir das einfach zu heikel.

    Als letztes dann noch die Erklärung warum ich zwei QNAPs habe. Das erste war mir mit seinem Dual Core einfach zu langsam. Ein Neustart und mehrere Minuten in Anspruch genommen. Desweiteren wurde der Speicherplatz langsam knapp. Daher nun das zweite NAS. Das erste dient jetzt als Backup fürs erste ;)

    Dies nur mal als kleiner Gedankenanstoß an alle Bastelwilligen :S

  • Verstehe ich dich richtig, dass du es dann jetzt aber doch mit Container Station hinbekommen hast? Funktioniert die Sache dann auch ganz automatisch nach einem Neustart des NAS weiterhin?

    Ja, in der Tat ich habe es allein mit ContainerStation hin bekommen, das einzige was ich via ssh gemacht habe ist „gucken ob der Conbee 2 Stick“ überhaupt als Device auftaucht.
    In der ContainerStation kann man unter Device auch ACM auswählen, was nicht funktioniert hatte. Mit TTY (Siehe Screenshot oben) wird der Stick vom Container erkannt! Tatsächlich ist der Stick etwas zickig wenn das NAS mal neu gestartet wurde (Kernelmodul startet zu spät wie auch oben beschrieben), behaupte nach ner Weile ruckelt es auch zurecht, muss das noch genauer testen, weil das NAS prinzipiell selten neu gestartet wird, im Prinzip müsste man den Container Start verzögern, hab mich damit jedoch noch nicht weiter beschäftigt. Der Installierte Home Assistant Container kooperiert übrigens mit dem deconz Container.

  • Besten Dank für die Informationen. Ich werde es über das Wochenende dann auch einfach mal bei mir ausprobieren.


    Wie verhält sich dann eigentlich der Standby der Festplatten im NAS? Nicht, dass die Festplatten immer wieder anlaufen, nur weil jemand im Schlafzimmer das Licht angemacht hat und die Conbee Software dann irgendein Status-Log schreibt?! :handbuch:

    im Prinzip müsste man den Container Start verzögern, hab mich damit jedoch noch nicht weiter beschäftigt

    Hm, gibt es dafür denn überhaupt eine Möglichkeit? Habe mich damit auch noch gar nicht beschäftigt.

  • So weit ich es überblicke müsste es mit einem einfachen Eintrag in der crontab gehen, irgend wie sowas wie:

    Code
    @reboot sleep 300 && my_script_startcontainer.sh

    Ungetestet und nur blanke Theorie um den Start eines Containers zu verzögern, das Script um den Container zu starten müsste ich mir auch noch "ausdenken". Mit der ContainerStation only geht es wohl nicht.


    Mit dem Energieverbrauch, wann und wie lange die Platten laufen bzw. wieder anlaufen habe ich mich nich nicht beschäftigt, dazu ist alles noch zu Neufür mich

  • So sieht nun mein erster Versuch mit Container Station aus. Sehen meine Schritte soweit richtig aus? :handbuch:


    1. In Container Station im Menüpunkt "Create" im Docker Hub nach dem Image von "marthoc" suchen. Beim Eintrag zum Image "marthoc/deconz" auf Install klicken.


    Bildschirmfoto 2020-12-20 um 12.59.13.png


    2. Im erscheinenden Pop-up Menü habe ich mich für die "stable" Version entschieden


    Bildschirmfoto 2020-12-20 um 13.03.11.png


    3. In den nächsten Menüs habe ich dann versucht, die Command Line Befehle über die GUI nachzustellen.


    Code
    docker run -d \   
    --name=deconz \   
    --net=host \   
    --restart=always \   
    -v /etc/localtime:/etc/localtime:ro \   
    -v ~/.local/share/dresden-elektronik/deCONZ:/root/.local/share/dresden-elektronik/deCONZ \   
    --device=/dev/ttyACM0 \   
    -e DECONZ_DEVICE=/dev/ttyACM0 \   
    marthoc/deconz


    3.1 Hier bin ich mir jedoch nicht sicher, wo ich die "-v" Befehle genau unterbringen muss. Gehören die einfach hintereinander in das "Command"-Feld? Oder kommt der zweite mount Befehl mit ins Untermenü "Shared Folders"?


    Der Befehl "--restart=always" versteckt sich vermutlich hinter dem "Auto start" Button, oder?


    Was passiert mit dem "--net=host"-Befehl?


    Macht es hier Sinn, die CPU und Memory Resourcen zu beschränken? Der Stick und dessen Software sollte ja eigentlich nicht so wirklich viel Power benötigen.


    Bildschirmfoto 2020-12-20 um 13.06.12.png


    3.2 Unter den "Advanced Settings" im Untermenü "Device" wie von Diana beschrieben den Eintrag "TTY (4)" mit Schreib und Leserechten ausgewählt.


    Muss der Container auch zwingend im "privileged mode" ausgeführt werden?


    Bildschirmfoto 2020-12-20 um 13.09.56.png


    3.3 Unter "Network" den "Network Mode" auf "Bridge" stellen. Habe dem Container als Hostname einfach mal "Conbee" zugeordnet und die IP-Zuordnung erstmal auf "DHCP" gesetzt.


    Erfolgt die Zuordnung der IP-Adresse dann über DHCP auf meinem Router? Oder ist läuft auf dem QNAP NAS dann zusätzlich nochmal ein DHCP Server?


    Bildschirmfoto 2020-12-20 um 13.13.56.png

  • TOMillr


    Ich habe bei Command nix übergeben und als Version lastest ausgewählt, eigentlich müsste dein Router dem Container via DHCP eine IP zuweisen wenn du Bridge ausgewählt hast, ich habe jedoch staticgenommen weil ich nicht erst in der FB schauen wollte welche IP der Container bekommen hatte, hatte in der ersten Version noch den Port geändert auf 70 (Standard ist 80)


    via SSH kannst du sehen ob der Conbee 2 Stick überhaupt erkannt wurde:


  • Habe den Conbee Stick nun auch in einem Container zum laufen bekommen.

    Allerdings gehen nun die Festplatten nicht mehr in den Standby und laufen die ganze Zeit munter weiter. || Schreibt der Container vielleicht irgendwie immer eine Log-Datei und verhindert dadurch den Standby?

  • ...hmmm, kann ich noch nicht beantworten mit dem Standby, mir ist nicht ganz klar wie das mit dem Standby und dem "Wiedererwachen"genau funktioniert und ob man es ggf. komplett im RAM laufen lassen kann wenn der nur gross genug ist (was ich gelesen habe kann ich mein QNAP auf 32 GB erweitern, ist zwar unsupported aber es soll gehen)


    Habe mich heute mit dem verzögerten Containerstart beschäftigt, es dauert eine ganze Weile bis nach einem Neustart der Conbee Stick erkannt wird, hab versuch das mit einem reset der USB Ports versucht zu beschleunigen:


    Code
    sudo sh -c "echo 0 > /sys/bus/usb/devices/usb1/authorized"
    ...
    sudo sh -c "echo 1 > /sys/bus/usb/devices/usb1/authorized"


    mit

    Code
    udevadm monitor 


    kann man dann schon schön sehen was passiert.


    Mir fehlt einfach noch zu viel Wissen was die QNAP betrifft, wo finde ich was, wer greift auf was zu.

  • Schreibt der Container vielleicht irgendwie immer eine Log-Datei und verhindert dadurch den Standby?

    Es liegt eine zll.db im deconz Verzeichnis ab. Sieht für mich nach einer kleinen SQLite Datenbank aus. Wahrscheinlich liegt es daran.

    Verstehe das ganze Standby der HDDs und ich lege mein NAS schlafen eh nicht. Sorry. Die Dinger und auch die NAS Festplatten sind dafür gemacht 24/7 zu laufen.

  • Hm, gibt es vielleicht eine Möglichkeit, die benötige Software nativ und ohne den Umweg über einen Container auf dem NAS zu installieren?

    APT funktioniert ja nicht. Aber wie wäre es mit einem alternativen Package Manager wie Entware?


    Verstehe das ganze Standby der HDDs und ich lege mein NAS schlafen eh nicht. Sorry. Die Dinger und auch die NAS Festplatten sind dafür gemacht 24/7 zu laufen.

    Ich versuche mal die verschiedenen Beweggründe kurz anzureißen:


    _Ich lebe in einem kleineren Apartment und der NAS muss daher im Wohnzimmer in der Nähe des Routers untergebracht werden. Einen alternativen Stellplatz habe ich einfach platztechnisch nicht.


    Daher ist es mir wichtig, dass das Gerät so wenig Geräusche wir möglich macht. Dies ist auch der Grund, weshalb ich mich mal für einen der lüfterlosen Modelle von QNAP entschieden habe. Wenn dann die Festplatten (ohne das ich das Teil irgendwie aktiv benutzen würde) dauernd laufen, nervt mich das Geräusch im Wohnzimmer einfach nur.


    _Wenn ich den NAS höchstens ein, zwei mal die Woche aktiv benutze (z.B. als Plex Media Server am Wochenende), empfinde ich es schon als pure Energieverschwendung, wenn die Festplatten ohne Grund laufen und Strom verbrauchen. Es macht schonen Unterschied, wenn Festplatten im durchschnittlichen Betrieb das fünffache der Leistung benötigen als im Standby.

  • Hm, gibt es vielleicht eine Möglichkeit, die benötige Software nativ und ohne den Umweg über einen Container auf dem NAS zu installieren?

    Kurze Antwort:
    Nein.

    Etwas ausführlichere Antwort:
    Kommt auf die Software drauf an. Manche Sachen kann man sich selbst kompilieren und zusammenstellen, das setzt aber
    a) tiefgreifendes Wissen (Linux im allgemeinen, Qnap spezifische Eigenheiten im besonderen) und
    b) einen erheblichen Zeitaufwand das Ganze per Trial & Error zum Laufen zu bekommen

    voraus.
    Meiner Meinung nach lohnt es sich da eher ein wenig Zeit in das Erlernen von Docker & Co zu investieren oder eben auf ein anderes Gerät zu setzen. Ein Raspberry Pi kann ohne Probleme passiv gekühlt werden und auch kleine Mini PCs wie Intel NUCs gibt es mit passiver Kühlung. Insbesondere wenn das NAS nicht durchgehend laufen muss, könnte sich ein anderes Gerät für die Heimautomatisierung lohnen (ggf. sogar um das NAS dadurch aufzuwecken, wenn es dann doch mal gebraucht wird)

    Und zu guter Letzt noch: wenn du keine Festplattengeräusche hören möchtest, dann kannst du doch (je nach Geldbeutel und Datenmengen) einfach welche einsetzen, die keine Geräusche machen, konkret also SSDs.

    Als komplett andere Alternative kann ich allen die mit Docker kämpfen noch die Linux Station ans Herz legen. Auch hier können Geräte in den Container "reingereicht" werden und darin kann man dann tatsächlich wie gewohnt sudo apt install XY ausführen.