Ein Samba-Share kann keinen physischen Zigbee-Adapter an HAOS durchreichen
Das ursprüngliche Problem betrifft ein USB-Seriellgerät, keinen Ordner. Ein Samba-Share kann Dateien für eine virtuelle Maschine bereitstellen, aber keinen ConBee-, Sonoff-, Nortek- oder ähnlichen Funkadapter als USB-Hardware im Gast sichtbar machen. Der funktionierende Community-Ansatz bindet das USB-Gerät des Hosts über libvirt an den ZVM-Gast durch.
Dies bleibt eine Befehlszeilen-Umgehungslösung und ist kein bestätigter ZVM-USB-Auswahldialog. Sichern Sie die XML-Datei der virtuellen Maschine und fahren Sie Home Assistant OS herunter, bevor Sie persistente Hardware bearbeiten. Eine fehlerhafte XML-Änderung oder ein fehlender Dongle kann den Start des Gasts verhindern. Bewahren Sie daher eine Kopie auf, mit der sich die vorherige Konfiguration wiederherstellen lässt.
Dongle identifizieren, ohne die IDs eines anderen Benutzers zu kopieren
Verbinden Sie sich über den unterstützten SSH- und Berechtigungspfad mit ZimaOS und führen Sie anschließend lsusb aus. Suchen Sie das Hersteller-Produkt-Paar des Dongles, im Beispiel etwa 1a86:55d4. Die IDs Ihres ConBee-, Sonoff- oder Nortek-Geräts unterscheiden sich davon.
Ziehen Sie den Dongle einmal ab und schließen Sie ihn erneut an, wenn die Liste nicht eindeutig ist. Auch die Zuordnung über Hersteller und Produkt kann mehrdeutig sein, wenn zwei identische Adapter angeschlossen sind. Das libvirt-Format für Host-Geräte erläutert die Zuordnung über VID/PID sowie spezifischere USB-Adressen.
Notieren Sie den exakten libvirt-Namen oder die UUID der VM mit virsh list --all. Verwenden Sie keine Beispiel-ID aus dem Thread. Exportieren Sie die aktuelle Definition mit virsh dumpxml VM_NAME, bevor Sie Änderungen vornehmen.
Einen hostdev-Block im Geräteabschnitt des Gasts hinzufügen
Öffnen Sie bei ausgeschaltetem Gast dessen Definition mit virsh edit VM_NAME. Fügen Sie innerhalb des vorhandenen Elements <devices> den Block <hostdev mode='subsystem' type='usb' managed='yes'><source><vendor id='0xVID'/><product id='0xPID'/></source></hostdev> ein und ersetzen Sie VID und PID durch die Werte Ihres Hosts.
Fügen Sie pro physischem Gerät einen vollständigen hostdev-Abschnitt hinzu. Erstellen Sie keinen zweiten <devices>-Wrapper und fügen Sie den Block nicht hinter dem schließenden Tag </devices> ein. Speichern Sie die Änderung und überprüfen Sie die XML-Datei erneut, bevor Sie die VM starten.
Starten Sie den Gast und prüfen Sie virsh list --all. Falls der Start fehlschlägt, lesen Sie den ersten libvirt-Fehler. Stellen Sie die gespeicherte XML-Datei wieder her, anstatt weitere Änderungen anzuhäufen. Ein Ergebnis wie „device not found“ verweist auf die Enumeration oder Zuordnung auf dem Host; ein XML-Analysefehler weist auf eine falsche Position oder Syntax hin.
Gerät in HAOS überprüfen, bevor Sie Zigbee2MQTT konfigurieren
Öffnen Sie in Home Assistant Einstellungen → System → Hardware und suchen Sie nach dem neuen USB- oder Seriellgerät. Schnittstellennamen wie /dev/ttyACM0 können sich ändern. Wenn HAOS einen Eintrag unter /dev/serial/by-id/... bereitstellt, verwenden Sie diese stabile Identität in Zigbee2MQTT.
Erst wenn HAOS das Gerät erkennt, sollten Sie serial.port in Zigbee2MQTT festlegen. Starten Sie das Add-on neu und prüfen Sie im Protokoll, ob der Adapter erfolgreich verbunden wurde. Wenn HAOS den Dongle erkennt, Zigbee2MQTT ihn aber nicht öffnen kann, funktioniert die Durchreichung bereits. Der Fehler liegt dann bei Adaptertyp, serieller Konfiguration oder dem Zugriff des Add-ons.
Starten Sie HAOS und anschließend ZimaOS neu, um die Persistenz zu testen. Bestätigen Sie, dass derselbe by-id-Pfad wieder verfügbar ist und Zigbee2MQTT die Verbindung erneut herstellt. Änderungen an ZVM-Ressourcen können in einigen Versionen manuelle XML-Änderungen überschreiben. Überprüfen Sie die XML-Datei daher erneut, nachdem Sie CPU, Arbeitsspeicher oder Laufwerke geändert oder die Plattform aktualisiert haben.
FAQ
Wo ist die XML-Datei gespeichert?
Sie müssen keine Datei manuell suchen. Verwenden Sie virsh edit VM_NAME, um die registrierte Domain-Definition zu bearbeiten, und virsh dumpxml, um sie zu sichern.
Können mehrere USB-Geräte an dieselbe VM durchgereicht werden?
Ja, der Thread zeigt pro Gerät einen hostdev-Block. Jeder Block muss eindeutig dem vorgesehenen Gerät entsprechen.
Warum hat sich der USB-Pfad nach dem Neustart geändert?
Kurze Gerätenamen können sich ändern, wenn Linux die Hardware enumeriert. Bevorzugen Sie nach der Durchreichung den by-id-Pfad von HAOS. Wenn das gesamte Gerät verschwindet, überprüfen Sie jedoch die XML-Datei erneut.
Die HAOS-spezifischen Befehle und das spätere XML-Beispiel finden Sie in der ZVM-Diskussion zur USB-Freigabe.
