
Bluesound è una gamma audio multiroom costruita su BluOS, la piattaforma di streaming di Lenbrook per audio lossless fino a 24 bit/192 kHz. Ogni lettore BluOS espone sulla rete locale la BluOS Custom Integration API: semplici richieste HTTP GET sulla porta TCP 11000, risposte in XML UTF-8, senza autenticazione e senza account cloud. TapHome comunica con il lettore direttamente sulla rete locale.
Il template non è legato a un modello specifico — non contiene alcun vincolo di modello o produttore e parla soltanto l’API HTTP, quindi vale per l’intera gamma attuale (NODE, NODE X, NODE NANO, NODE ICON, POWERNODE, POWERNODE EDGE, PULSE, PULSE M, PULSE MINI, PULSE FLEX, PULSE CINEMA, PULSE CINEMA MINI, PULSE SOUNDBAR, VAULT e HUB) e anche per le generazioni precedenti. Poiché BluOS è distribuito anche da NAD Electronics, DALI, PSB Speakers, Monitor Audio, Roksan, Cyrus e Peachtree, i lettori di questi marchi espongono la stessa API e rispondono alle stesse richieste.
Connessione di rete
Non c’è nulla da cablare. Un lettore BluOS entra nella rete domestica via Ethernet o Wi-Fi tramite la procedura guidata dell’app BluOS Controller, e TapHome lo raggiunge poi via HTTP. L’unico requisito è che l’unità di controllo TapHome e il lettore si trovino sullo stesso segmento di rete, con la porta 11000 aperta tra i due.
La porta 11000 vale per ogni lettore BluOS con una sola eccezione documentata: il NAD CI580 ospita quattro nodi streamer in un unico telaio sulle porte 11000 / 11010 / 11020 / 11030. Il template si rivolge solo alla porta 11000, quindi su un CI580 controlla il nodo 1.
Configurazione
Trovare l’indirizzo IP del lettore
L’indirizzo è mostrato nella schermata Diagnostics dell’app BluOS Controller:
- Android / iOS — scheda Players → seleziona il lettore → scheda Home → Settings → nella sezione Help & Support tocca Diagnostics.
- Windows / macOS — Player Drawer → seleziona il lettore → Navigation Drawer a sinistra → Help → Diagnostics.
La stessa schermata elenca sotto Other Players anche gli indirizzi degli altri lettori presenti in rete. Senza l’app, aprendo http://<ip_lettore>:11000/SyncStatus nel browser si ottiene l’attributo id del lettore (indirizzo e porta) insieme al suo attributo mac.
Mantenere stabile l’indirizzo
Il template si rivolge al lettore tramite indirizzo IP, quindi un lease DHCP cambiato interrompe silenziosamente l’integrazione. Lenbrook raccomanda esplicitamente una prenotazione DHCP sul router anziché un indirizzo statico configurato sul lettore:
- Apri il pannello di amministrazione del router e individua le impostazioni di prenotazione DHCP / LAN.
- Inserisci l’indirizzo MAC del lettore — la risposta
/SyncStatuslo contiene, quindi si può leggere via HTTP anche senza l’app. - Assegna l’indirizzo che il lettore deve mantenere e salva.
- Riavvia il lettore perché rinnovi il lease, poi verifica che abbia acquisito l’indirizzo prenotato.
Importazione del template
Il template ha un unico parametro di importazione, IpAddress (segnaposto 192.168.0.1). Inserisci l’indirizzo del lettore; la porta 11000 e il formato delle richieste fanno già parte del template.
Configurazione obbligatoria dopo l’importazione — Raggruppa con lettore
L’interruttore Raggruppa con lettore viene fornito con la variabile IP impostata sul segnaposto letterale 192.168.x.x. Non è un valore predefinito funzionante — finché non viene sostituito, lo script di lettura cerca 192.168.x.x tra i lettori secondari, non lo trova mai e l’interruttore resta sempre spento.
Dopo aver importato il template, apri il dispositivo Raggruppa con lettore nell’app TapHome e imposta IP sull’indirizzo del lettore da collegare come secondario del gruppo. Usa la schermata Diagnostics descritta sopra (Other Players elenca esattamente questi indirizzi) oppure leggi /SyncStatus su un qualsiasi lettore della rete.
Tutti gli altri dispositivi del template funzionano non appena IpAddress è compilato. Raggruppa con lettore è l’unico dispositivo che dopo l’importazione richiede un secondo valore — se
192.168.x.xresta al suo posto, l’interruttore sembrerà guasto invece di segnalare un errore.
Funzionalità del dispositivo
Controllo della riproduzione
Cinque pulsanti gestiscono la riproduzione:
- Play — avvia la sorgente audio corrente. Riprende un lettore in pausa, ma non riavvia un lettore fermato.
- Pausa — invia un toggle, quindi lo stesso pulsante mette in pausa un lettore in riproduzione e riprende quello in pausa. Se è in corso una sveglia con timeout, la pausa annulla anche quel timeout.
- Stop — interrompe la riproduzione. A differenza della pausa, un lettore fermato non può essere ripreso con Play. Anche lo stop annulla il timeout di una sveglia in corso.
- Brano successivo — avanza nella coda di riproduzione e alla fine della coda torna al primo brano, qualunque sia l’impostazione di ripetizione.
- Brano precedente — riavvia il brano corrente se è in riproduzione da più di quattro secondi, altrimenti torna al brano precedente.
Questi pulsanti agiscono sulla coda di riproduzione. Quando il lettore trasmette una stazione radio o riproduce da un ingresso fisico, la coda non è la sorgente audio e l’avanzamento o il ritorno non sono disponibili — l’API gestisce quel caso con un endpoint separato che il template non utilizza.
Volume
Il Volume è un dimmer. Legge il livello del lettore (0–100) e lo scala nell’intervallo 0,0–1,0 del dimmer; in scrittura rimanda il valore come percentuale intera. Spegnendo il dimmer viene inviato un comando di silenziamento anziché il volume 0, così il livello proprio del lettore resta memorizzato e viene ripristinato quando si riattiva l’audio.
Entrambe le scritture includono tell_slaves=1, che corrisponde al cursore del volume di gruppo nell’app BluOS Controller: quando il lettore è il primario del gruppo, il volume di tutti i lettori del gruppo si muove insieme anziché solo quello del lettore indirizzato.
L’intervallo di volume utilizzabile si configura nell’app BluOS Controller in Settings → Player → Audio ed è tipicamente −80…0 dB. Tutti i livelli vengono riportati entro quell’intervallo, quindi un dimmer TapHome al 100 % non significa necessariamente 0 dB. I lettori con uscita a livello di linea fisso non segnalano alcun volume utilizzabile e il dimmer mostra allora un livello privo di senso anziché un errore.
Il dimmer del volume interroga il lettore ogni 2,5 secondi, mentre l’API BluOS chiede alle integrazioni che non usano il long polling di inviare al massimo una richiesta ogni 30 secondi. Su un singolo lettore si tratta di poche piccole richieste al minuto, ma in una casa piena di lettori la cosa si somma — tienilo presente su reti Wi-Fi cariche e, dove la rete è congestionata, privilegia i lettori collegati via cavo.
Riproduzione casuale e ripetizione
La Riproduzione casuale attiva e disattiva il mescolamento della coda. Il mescolamento ricostruisce la coda; disattivandolo viene ripristinato l’ordine originale.
La Ripetizione è un interruttore a tre stati — Nessuna ripetizione, Ripeti brano e Ripeti tutto. TapHome ordina questi slot in modo opposto rispetto all’API, e il template applica la stessa conversione sia in lettura sia in scrittura, così entrambe le direzioni restano coerenti.
Entrambi i dispositivi leggono il proprio stato da un valore che il modulo memorizza durante il suo polling di stato ogni 30 secondi, anziché inviare richieste proprie. Questo contiene il traffico di rete, al prezzo di un ritardo fino a 30 secondi prima che una modifica fatta nell’app BluOS compaia in TapHome.
Preset
Preset richiama un preset salvato sul lettore — una stazione radio, una playlist o un ingresso. I preset possono essere creati ed eliminati soltanto nell’app BluOS Controller; l’API può solo caricarli.
Il dispositivo è solo in scrittura: invia il comando del preset ma non rilegge mai quale preset è in riproduzione, quindi l’interruttore non riflette lo stato reale del lettore.
Usa gli slot preset 1–9. Lo slot 0 invia l’id preset 64 anziché 0, il che sembra un segnaposto rimasto più che un preset reale. Gli id dei preset inoltre non devono per forza essere consecutivi — un lettore può contenere i preset 1, 2, 3, 5, 7 e 8 — quindi verifica nell’app BluOS Controller quali id esistono davvero prima di collegare uno slot a una scena.
Raggruppamento multiroom
Raggruppa con lettore collega un secondo lettore BluOS a questo. Il lettore indirizzato da TapHome diventa il primario: sceglie la sorgente musicale e distribuisce il proprio audio, mentre il lettore indicato dalla variabile IP si unisce come secondario. Spegnendo il dispositivo quel lettore viene rimosso dal gruppo. Lo stato viene riletto dall’elenco dei secondari collegati, quindi anche un raggruppamento fatto dall’app BluOS si riflette in TapHome.
Dal funzionamento del raggruppamento BluOS derivano due conseguenze:
- Al resto del gruppo arrivano solo gli ingressi esterni collegati al lettore primario. Se l’audio del televisore da un ingresso ottico o HDMI deve suonare ovunque, TapHome deve indirizzare il lettore su cui è attestato quell’ingresso.
- L’app BluOS Controller gestisce al massimo otto gruppi da otto lettori, oppure quattro gruppi da sedici. Un interruttore TapHome gestisce una coppia primario–secondario, quindi un gruppo di tre lettori richiede un secondo interruttore.
Le richieste di raggruppamento usano una scrittura dei parametri che mescola la forma singolare e quella plurale dell’API. In pratica funziona perché la porta 11000 è il valore predefinito documentato, ma è utile saperlo se un comando di gruppo dovesse comportarsi in modo inatteso.
Pulsanti di esempio — dimostrazioni, non funzioni del lettore
Il template include due pulsanti chiamati Esempio – Jungle ed Esempio – Spegnimento. Sono dimostrazioni dello streaming da URL, non capacità del lettore: ciascuno interrompe la riproduzione, svuota la coda e riproduce un singolo file audio da un URL memorizzato nella variabile del dispositivo.
Sono pensati per essere modificati o eliminati. L’esempio Jungle punta a un host di campioni di terze parti fuori dal controllo di TapHome e smetterà di funzionare ogni volta che quel sito cambia. L’esempio Spegnimento punta a un MP3 ospitato da TapHome ed è un modello utilizzabile per un suono di campanello o di annuncio, se l’indirizzo viene sostituito con uno proprio — nota che l’indirizzo deve essere codificato in percentuale, perché viene passato al lettore senza modifiche.
Risoluzione dei problemi
Il lettore non risponde
- Apri
http://<ip_lettore>:11000/SyncStatusnel browser — una risposta XML significa che il lettore è raggiungibile e l’API è attiva. - Se non risponde, controlla l’indirizzo nella schermata Diagnostics dell’app BluOS Controller; un rinnovo DHCP potrebbe averlo spostato. Configura la prenotazione DHCP descritta sopra perché non accada più.
- Prova il nome host mDNS del lettore al posto dell’indirizzo IP.
- Verifica che l’unità di controllo TapHome e il lettore siano sulla stessa rete / VLAN e che nulla blocchi la porta 11000 tra i due.
L’interruttore di raggruppamento non si accende mai
La variabile IP sul dispositivo Raggruppa con lettore contiene ancora il segnaposto 192.168.x.x, oppure un indirizzo che non appartiene a un lettore BluOS. Impostala sull’indirizzo reale del lettore secondario — vedi la configurazione dopo l’importazione più sopra.
Un preset non fa nulla
O dietro quello slot non c’è alcun preset su questo lettore, oppure è stato usato lo slot 0. Apri l’app BluOS Controller, controlla quali id preset il lettore contiene davvero e mappa gli slot TapHome su quegli id. I preset vanno prima creati nell’app — il template non è in grado di crearli.
Brano successivo / precedente non fanno nulla
Il lettore non sta riproducendo dalla propria coda. Gli stream radio e gli ingressi fisici non sono basati sulla coda e l’avanzamento o il ritorno non si applicano a loro. Avvia la riproduzione da una playlist, da un album o dalla coda e i pulsanti torneranno a funzionare.
Le modifiche fatte nell’app BluOS compaiono in ritardo
Riproduzione casuale e ripetizione vengono lette dallo stato memorizzato dal modulo, che si aggiorna ogni 30 secondi. Il volume viene interrogato più spesso. I pulsanti di riproduzione e Preset sono solo in scrittura e non riflettono affatto le modifiche esterne.
Il lettore è silenziato ma TapHome mostra un livello
Il silenziamento viene scritto quando si spegne il dimmer del volume, ma lo stato di silenziamento non viene mai riletto. Un lettore silenziato dall’app BluOS Controller o dal suo telecomando continua a mostrare in TapHome il livello di dimmer precedente. Spegni e riaccendi il dimmer per riallineare i due.
