Dal punto di vista del livello di virtualizzazione, un adattatore USB Bluetooth non ha nulla di speciale: prima l’host ZimaOS deve enumerare il dispositivo USB, poi la macchina virtuale deve ricevere quel dispositivo dell’host tramite passthrough. Se l’host non riesce a vederlo, non c’è nulla che il guest possa acquisire.
Separare il rilevamento dell’host dal passthrough del guest
Inizia verificando se l’adattatore USB esiste sull’host. Se il dispositivo è visibile lì ma manca nella macchina virtuale, passa al livello di assegnazione ZVM/libvirt. Se è assente sull’host, modificare le impostazioni di Home Assistant all’interno del guest non risolverà il problema.
Il passthrough USB assegna il dispositivo a un solo guest
La documentazione upstream di libvirt sul passthrough dei dispositivi host descrive il passthrough dei dispositivi host e specifica che un dispositivo passato tramite passthrough non può essere utilizzato contemporaneamente dall’host e da un guest attivo. Questo è importante per i dongle Bluetooth e radio, perché normalmente il guest necessita di accesso esclusivo mentre la macchina virtuale è in esecuzione.
I requisiti delle macchine virtuali forniscono il contesto attuale sulla virtualizzazione e sul passthrough in ZimaOS, mentre la configurazione della macchina virtuale di Home Assistant spiega nello specifico perché Zigbee, Z-Wave e le radio USB devono essere passati a una macchina virtuale con Home Assistant OS.
Home Assistant Container e la macchina virtuale HAOS sono diversi
I requisiti di Home Assistant distinguono una distribuzione Home Assistant Container da HAOS. In un container, l’hardware viene mappato in Docker; in una macchina virtuale, il dispositivo USB deve essere assegnato tramite il livello di virtualizzazione. Le due procedure non sono intercambiabili.
Le opzioni di Home Assistant per le macchine virtuali documentano separatamente i percorsi di installazione basati su macchine virtuali rispetto alle installazioni in container; per questo dovresti innanzitutto verificare quale tipo di installazione di Home Assistant stai effettivamente utilizzando.
Un ordine pratico per la risoluzione dei problemi
- Verifica che l’adattatore USB Bluetooth sia visibile sull’host ZimaOS.
- Spegni la macchina virtuale di destinazione prima di modificare l’assegnazione del dispositivo, se l’interfaccia lo richiede.
- Aggiungi alla macchina virtuale il dispositivo host USB corretto, invece di affidarti soltanto a un controller USB generico.
- Avvia la macchina virtuale e verifica la presenza dell’adattatore nel guest.
- Se scompare dopo un riavvio, controlla nuovamente se l’identificatore dell’host è cambiato o se il dispositivo è stato acquisito altrove.
In sintesi
Per una macchina virtuale con Home Assistant, considera il dongle Bluetooth come un dispositivo USB da passare tramite passthrough. Il rilevamento da parte dell’host deve funzionare prima; poi ZVM/libvirt deve assegnare il dispositivo al guest, e solo a quel punto Home Assistant potrà utilizzarlo. Nel thread di origine non vi sono prove dell’esistenza di un interruttore separato “abilita Bluetooth” in ZimaOS.
