DeConz / ConBee - Proxmox Container

Begonnen von gloob, 01 April 2019, 08:31:00

Vorheriges Thema - Nächstes Thema

mbrak

Hi

Habe mir jetzt auch einen Stick zugelegt da ich nach und nach alles virtualisieren werde. Ok Lxc Container klappt nicht. Welches System habe ihr dann in der VM genommen als Host? Geht das mit Debian auch? Hab bisher immer nur von ubuntu gelesen.
Was habt ihr bei Proxmox o.ä. Eingestellt für die vm? Cores,Speicher und Festplatte ?

Danke und Gruß
Michael

gloob

Auf dem Screenshot siehst du meine Konfiguration.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

mbrak

Danke :) läuft in einer VM unter Proxmox 6.0  :D :D :D

Klafhem

Ich möchte vorrausschicken, dass ich kein Linux Profi bin, und ich meist auf copy und paste angewiesen bin.
Man möge mir bitte Ungenauigkeiten verzeihen.
Für Verbesserungsvorschläge bin ich immer dankbar.

Nach einigen Versuchen habe ich es jetzt geschafft, einen ConBee II in einem LXC zum Laufen zu bringen.

Ich habe zuerst einen LXC mit debian 10 erstellt.
Danach die deCONZ Software laut Anleitung von phoscon installiert.

Den ConBee II als USB-Device über die .conf des LXC eingebunden.

Mit ls -al /dev/ttyACM0 überprüft, wurde der ConBee II als ACM0 angezeigt.

GCFFlasher_internal -l überprüft, ob der ConBee II für deCONZ sichtbar ist.
Für deCONZ war der ConBee II vorerst nicht sichtbar.

Die entscheidenden Punkte habe ich in dieser Anleitung gefunden: https://doc.turris.cz/doc/en/public/deconz_lxc_howto

Wichtig ist besonders diese Aussage:
deCONZ is internally calling function from libqt5serial, trying to use udev database in /run/udev/data/, usually created by systemd-udevd.
That's not case in containerized OS from obvious reasons but we can steal the proper file from raspberryPi running systemd and having USB dongle plugged.

Also nach dieser Anleitung weiter.


mkdir -p /run/udev/data/
cd /run/udev/data/



echo "E:ID_VENDOR_ID=1cf1
E:ID_MODEL_ID=0030" > c166\:0


Im Verzeichnis /run/udev/data/ wird hiermit die Datei c166:0 erstellt.

Der Name der Datei ergibt sich aus:
Im Host: ls -la /dev/ttyACM0
Ergbenis: crw-rw-rw- 1 root dialout 166, 0 Feb 11 16:26 /dev/ttyACM0

Der Inhalt der Datei ergibt sich aus:
Im Host: lsusb
Ergebnis: Bus 001 Device 005: ID 1cf1:0030 Dresden Elektronik

Danach wieder mit GCFFlasher_internal -l getestet, der ConBee II wurde angezeigt.

Starten von deCONZ:

deCONZ -platform minimal --http-port=80


Jetzt sollte deCONZ über die IP des LXC erreichbar sein. (Zumindest bei mir war dies der Fall.)

Nach einem Reboot des LXC wird der ConBee II nicht mehr erkannt.

Lösung (diese weicht etwas von der Anleitung doc.turris.cz ab.):

Falls nocht nicht erfolgt, wird jetzt ein user und sein home directory angelegt, und der user der Gruppe dialout hinzugefügt.

Danach wird deconz.service nach /etc/systemd/system/ kopiert: cp /lib/systemd/system/deconz.service /etc/systemd/system/

Jetzt wird die /etc/systemd/system/deconz.service angepasst:


[Unit]
Description=deCONZ: ZigBee gateway -- REST API
Wants=deconz-init.service deconz-update.service

[Service]
user=deconz-user
RuntimeDirectory=udev/data
ExecStartPre=/bin/bash -c "/bin/echo -e 'E:ID_VENDOR_ID=1cf1\nE:ID_MODEL_ID=0030' > /run/udev/data/c166:0"
ExecStart=/usr/bin/deCONZ -platform minimal --http-port=80
Restart=on-failure
StartLimitIntervalSec=0
RestartSec=30
AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_KILL CAP_SYS_BOOT CAP_SYS_TIME

[Install]
WantedBy=multi-user.target


Statt deconz-user, den user verwenden, den ihr erstellt habt.
PermissionsStartOnly=true wie in der Anleitung angegeben, funktioniert seit Anfang 2019 nicht mehr, deshalb hier RuntimeDirectory=udev/data.
Die Einbindung des USB-Device erfolgt über die config des LXC.

Zumindest bei mir funktioniert auf diese Weise die Einbindung des ConBee in einen LXC.







Ma_Bo

Zitat von: Klafhem am 11 Februar 2020, 17:20:18
...
Nach einigen Versuchen habe ich es jetzt geschafft, einen ConBee II in einem LXC zum Laufen zu bringen.

Ich habe zuerst einen LXC mit debian 10 erstellt.
Danach die deCONZ Software laut Anleitung von phoscon installiert.

Den ConBee II als USB-Device über die .conf des LXC eingebunden.
...


Danke für die super Anleitung, hat wunderbar in einem LXC geklappt...



Kann mir einer sagen, ob ich jetzt auch die deconz-gui irgendwie ans laufen bringen kann...?
Diese benötige ich um in der GUI gewisse Bindings für z.B. Fyrtur Rollos zu machen...

Oder wäre es hier besser mit einer VM zu arbeiten und nicht mit dem LXC...?

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Heimweh

Mal eine Frage - bei mir läuft FHEM bereits in einer VM unter Proxmox - ist es denn unbedingt erforderlich für DeConz eine eigene VM aufzusetzen? Könnte ich es nicht auf der gleichen laufen lassen wie auch mein FHEM? Ich frage weil ich ziemlich lange rumgedockert habe um meine 6 USB Gateways alle an die VM durchzureichen und ich mit einer weitern VM da wieder Probleme auf mich zukommen sehe....
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,