Nachdem ich meinen Turris Omnia halbwegs eingerichtet habe und der LXC-Container aufgesetzt ist, möchte ich meinen FHEM-Server in einem Container auf dem Turris Omnia betreiben. Als Voraussetzung dafür muss ich zunächst den Z-Wave.Me-USB-Stick innerhalb meines virtuellen LXC-Containers ansprechen können.  In dieser Anleitung gehe ich davon aus, dass ein Debian Jessie Container bereits mit einer funktionierenden FHEM-Installation angelegt wurde und funktioniert.

Anmerkung: Im Folgenden müssen alle Kommandozeilen die mit host # beginnen im OpenWRT auf dem Turris Omnia, also dem Host, ausgeführt werden. Beginnt die Kommandozeile mit lxc #, müssen die Befehle innerhalb des LXC-Containers ausgeführt werden.

1| Kernel Modul installieren

Zunächst muss auf dem Host ein fehlendes Kernel-Modul installiert werden:

Anschließend den Z-Wave-Stick anschließen überprüfen ob der Stick erkannt und das Device /dev/ttyACME0  angelegt wurde:

Wichtig ist dabei die Nummer 166 in der letzten Zeile. Diese muss in der LXC-Konfiguration angegeben werden, damit das Device entsprechend an LXC durchgereicht wird.

2| LXC-Config anpassen

Damit ist das Device auf dem Host-System bereits verfügbar. Da ich aber mein FHEM-Service auf einer virtuellen Maschine anbieten will, muss das Device noch dem entsprechenden LXC-Container zugeordnet werden. Dazu in der Datei /srv/lxc/$container/config  auf dem Host folgende Zeilen ergänzen ( $container  muss natürlich mit dem eigenen Container-Namen ausgetauscht werden):

3| hotplug einrichten

Damit FHEM auf das Device zugreifen kann müssen noch die Berechtigungen für das Device innerhalb des Gast-OS angepasst werden. Leider nutzt OpenWRT hotplug und nicht udev, so dass ich für die Einrichtung das Script /etc/hotplug.d/usb/10-usb_permissions  auf dem Host angelegt habe (siehe auch Artikel ‘Turris Omnia: Arduino Nano USB in LXC nutzen’):

4| Gruppe einrichten

Jetzt muss noch die Gruppe plugdev auf dem Host und dem Gast-Systeme angelegt werden, falls diese nicht sowieso schon existiert.

Wichtig: Die Group-ID der plugdev-Gruppe muss auf dem Gast und Host-Betriebssystem identisch sein. Daher muss die Gruppen-ID im zweiten Kommando (-g Parameter) ggf. angepasst werden.

Wenn der Z-Wave-Stick jetzt nochmal neu angesteckt wird, so sollte das Device folgende Berechtigungen auf dem Host zugewiesen bekommen:

5| Container neu starten

Passt alles kann der LXC-Container neu gestartet werden:

Sobald der Container wieder erreichbar ist sollte das Device nun auch im Gast-OS mit den korrekten Berechtigungen verfügbar sein:

Alle Benutzer, die auf das Device zugreifen sollen, müssen jetzt noch zur neuen Gruppe hinzugefügt werden. Damit FHEM funktioniert muss der entsprechende Benutzer im Gast-System noch in die Gruppe eingefügt werden:

lxc # usermod -a -G plugdev fhem

Danach sollte die Einrichtung soweit abgeschlossen sein und ein entsprechendes Z-Wave-Device kann in FHEM mit folgendem Kommando angelegt werden: