Prima parte - Connessione e configurazione
09-02-2026
Problema
Home Assistant, sul Raspberry, gira in un container e non vede - lasciato a sé stesso - le periferiche Bluetooth collegate al Raspberry. ChatGPT ha delle idee tutte sue sul problema e non è da considerarsi fededegna, a meno che non vi diverta passare tre ore a fare prove inutili. I tutorial on-line, come al solito, non risolvono il problema.
HW/SW utilizzato
Le apparecchiature che sono state utilizzato per la redazione di questo articolo sono:
- Raspberry Pi 4
- OS Version: Home Assistant OS 17.1 con Home Assistant Core 2026.2.3
- Soundbar HT-SF150 Sony
- Cassa JBL GO 2
- Accesso SSH all’host
- Plug-in VLC 0.3.1
- Plug-in Music assistant 2.7.9
Successione delle operazioni ad alto livello
Quando si combatte con Home Assistant, è sempre bene avere chiari i passi necessari per il raggiungimento del risultato auspicato:
- far sì che il Raspberry veda le casse Bluetooth;
- far sì che Home Assistant veda le casse del Raspberry;
- fare in modo che VLC usi le casse per l’output;
- far sì che Music Assistant utilizzi VLC per l’output.
Detto così sembra facile, ma non lo è, almeno la prima volta.
Fate un backup del sistema, così possiamo cominciare.
Far vedere le casse al Raspberry
Per prima cosa, bisogna verificare se esiste ed è attivo il servizio Bluetooth sul Raspberry.
Mi collego al Raspberry in SSH, poi:
~ bluetoothctl show
Controller D8:3A:DD:AF:FC:48 (public)
Manufacturer: 0x0131 (305)
Version: 0x09 (9)
Name: casa
Alias: BT-HA
Class: 0x006c0000 (7077888)
Powered: yes
PowerState: on
Discoverable: no
DiscoverableTimeout: 0x000000b4 (180)
Pairable: no
OK, c’è. Vediamo quali sono i dispositivi:
~ bluetoothctl devices
Device 84:D3:52:A2:9A:1A HT-SF150
Il Raspberry vede solo la cassa Sony, devo aggiungere la JBL.
Entro nell’interfaccia di bluetoothctl:
~ bluetoothctl
poi metto in pairing la cassa JLB e dò i comandi:
agent on
default-agent
scan on
nell’elenco di dispositivi che comincia a scorrere sul video, vedo la riga:
[NEW] Device 70:99:1C:BE:3A:66 JBL GO 2
Sempre nell’interfaccia di bluetoothctl, dò i comandi:
[bluetoothctl]> pair 70:99:1C:BE:3A:66
Attempting to pair with 70:99:1C:BE:3A:66
hci0 device_flags_changed: 70:99:1C:BE:3A:66 (BR/EDR)
supp: 0x00000001 curr: 0x00000000
hci0 70:99:1C:BE:3A:66 type BR/EDR connected eir_len 10
hci0 70:99:1C:BE:3A:66 auth failed with status 0x05 (Authentication Failed)
[CHG] Device 70:99:1C:BE:3A:66 Connected: yes
[CHG] BREDR 70:99:1C:BE:3A:66 Connected: yes
OK, la cassa è associata; adesso, facciamo in modo che possa connetersi automaticamente:
[bluetoothctl]> trust 70:99:1C:BE:3A:66
[CHG] Device 70:99:1C:BE:3A:66 Trusted: yes
Changing 70:99:1C:BE:3A:66 trust succeeded
Bene; adesso colleghiamola al Raspberry:
[bluetoothctl]> connect 70:99:1C:BE:3A:66
Attempting to connect to 70:99:1C:BE:3A:66
hci0 device_flags_changed: 70:99:1C:BE:3A:66 (BR/EDR)
supp: 0x00000001 curr: 0x00000000
hci0 70:99:1C:BE:3A:66 type BR/EDR connected eir_len 10
[CHG] Device 70:99:1C:BE:3A:66 Connected: yes
[CHG] BREDR 70:99:1C:BE:3A:66 Connected: yes
Verifico che sia tutto a posto (notate il fatto che il prompt ora indica il nome della cassa):
[JBL GO 2]> info 70:99:1C:BE:3A:66
Device 70:99:1C:BE:3A:66 (public)
Name: JBL GO 2
Alias: JBL GO 2
Class: 0x00200414 (2098196)
Icon: audio-card
Paired: yes
Bonded: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: no
CablePairing: no
UUID: Headset (00001108-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Advanced Audio Distribu.. (0000110d-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
BREDR.Paired: yes
BREDR.Bonded: yes
BREDR.Connected: yes
Bene, ma non benissimo; il nome con lo spazio non mi piace, così lo cambio con il comando set-alias:
[JBL GO 2]> set-alias JBL-2
[CHG] Device 70:99:1C:BE:3A:66 Alias: JBL-2
Changing JBL-2 succeeded
[JBL GO 2]> info 70:99:1C:BE:3A:66
Device 70:99:1C:BE:3A:66 (public)
Name: JBL GO 2
Alias: JBL-2
Class: 0x00200414 (2098196)
Icon: audio-card
...
Verifico che sia andata bene e chiudo bluetoothctl:
[JBL GO 2]> devices
Device 70:99:1C:BE:3A:66 JBL-2
Device 84:D3:52:A2:9A:1A HT-SF150
> exit
Verifico che PulseAudio abbia rilevato la cassa:
~ pactl list sinks short
0 alsa_output.platform-fe00b840.mailbox.stereo-fallback module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
14 bluez_sink.70_99_1C_BE_3A_66.a2dp_sink module-bluez5-device.c s16le 2ch 44100Hz RUNNING
Visto che ci sono, collego anche l’altra e ripeto il controllo:
~ bluetoothctl connect 84:D3:52:A2:9A:1A
Attempting to connect to 84:D3:52:A2:9A:1A
AdvertisementMonitor path registered
[CHG] Device 84:D3:52:A2:9A:1A Connected: yes
[CHG] BREDR 84:D3:52:A2:9A:1A Connected: yes
Connection successful
~ pactl list sinks short
0 alsa_output.platform-fe00b840.mailbox.stereo-fallback module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
14 bluez_sink.70_99_1C_BE_3A_66.a2dp_sink module-bluez5-device.c s16le 2ch 44100Hz IDLE
15 bluez_sink.84_D3_52_A2_9A_1A.a2dp_sink module-bluez5-device.c s16le 2ch 44100Hz RUNNING
Far vedere le casse ad Home Assistant
A questo punto, il Raspberry ha due casse Bluetooth configurate, ma Home Assistant non lo sa, quindi dobbiamo dirglielo (per sapere come funzionino i due comandi, RTFD):
~ ha sound reload
Command completed successfully.
~ ha sound restart
Processing... Done.
Excelsior! Adesso, sbrigate le volgari questioni di hardware, passiamo alla parte meno noiosa.
Fare in modo che Home Assistant usi le due casse per l’output
Per prima cosa, installate il plug-in di VLC sulla vostra istanza di Home Assistant:

Dopo l’installazione, nella schermata di configurazione di VLC avete la possibilità di selezionare un dispositivo audio:

Selezionando una delle due casse, la si associerà a VLC; se invece si seleziona: Default VLC punterà al sink audio predefinito di PulseAudio.
Se, come nel nostro caso, ci sono due sink, solo quello che è impostato come default in PulseAudio riceverà l’audio, l’altra cassa non riceverà audio, anche se è connessa.
Siccome la cassa JLB è a batteria e si spegne dopo un po’, preferisco selezionare la Soundbar. Salvo la modifica e riavvio VLC.
A questo punto, se andate nella pagina di gestione dei dispositivi:
Settings -> Devices & Services
noterete che in alto a sinistra è comparso un nuovo elemento: VLC media player via Telnet.

Aggiungetela al sistema e passate a Music Assistant..
Far sì che Music Assistant utilizzi VLC per l’output
Music Assistant è bene che ci sia e sia attivo:

Entrate nella schermata settings, e poi fate click su Players; comparirà la pagina di definizione dei metodi di output e fra di essi deve esserci VLC, che MA rileva automaticamente:

La situazione, a questo punto, è la seguente:
-
Music Assistant gestisce i flussi multimediali e li invia a VLC insieme a eventuali comandi di riproduzione (play, pause, next, volume).
-
VLC riceve i comandi da MA, decodifica i file audio (MP3, FLAC, ecc.) e invia l’audio al sink PulseAudio selezionato.
-
PulseAudio rappresenta il dispositivo di uscita reale nel sistema; riceve l’audio da VLC e lo inoltra al dispositivo fisico
-
la cassa Bluetooth riceve il e riproduce l’audio.

Funzionerà?
Test del sistema
Aprite Music Assitant e selezionate un brano.
Se MA vi chiede su quale player riprodurlo, selezionate VLC-Telnet.
Fate click su Play, il brano dovrebbe essere riprodotto dalla cassa Bluetooth che avete impostato come default.

Se questo non avviene, verificate che la cassa sia connessa e trusted nel sistema: è possibile che si sia sganciata.
Se avete due casse, provate a modificare il dispositivo di output di VLC e vedete se effettivamente la musica cambia sorgente.
Se qualcosa non va, non cominciate a modificare ossessivamente la configurazione del sistema, ma controllate, partendo dal basso, che sia tutto in ordine.
In particolare, controllate che le casse Bluetooth non si siano disconnesse o per inutilizzo o perché avete riavviato il sistema ospite.
Sviluppi
In un prossimo articolo vedremo come automatizzare da interfaccia di Home Assistant la connessione/disconnnessione dei dispositivi Bluetooth e come inviare flussi audio audio differenti a ciascun dispositivo.