
Sonos è un sistema audio wireless premium progettato per la riproduzione multi-room. TapHome comunica con gli altoparlanti Sonos sulla rete locale tramite UPnP/SOAP sulla porta 1400 — non è necessaria alcuna connessione cloud né autenticazione. Il template è universale e funziona con tutti i modelli di altoparlanti Sonos (Era 100, Era 300, One, Five, Beam, Arc, Ray, Move, Roam, Sub e altri).
Il template offre il controllo completo della riproduzione (play, pausa, stop, salto), gestione del volume e della disattivazione audio, selezione della modalità di riproduzione, timer di spegnimento e fino a 10 pulsanti preimpostati per playlist e stazioni radio. Un set di 14 attributi di servizio espone le informazioni sul dispositivo e il brano attualmente in riproduzione.
Configurazione
L’altoparlante Sonos si connette tramite Wi-Fi. Durante l’importazione del template TapHome, inserisci l’indirizzo IP dell’altoparlante (segnaposto predefinito 192.168.0.1). L’altoparlante deve trovarsi sulla stessa rete della TapHome CCU.
Gli altoparlanti Sonos supportano il discovery mDNS con il pattern hostname
Sonos-{MAC}.local(indirizzo MAC senza due punti). L’utilizzo di un hostname previene problemi di connettività quando l’indirizzo IP dell’altoparlante cambia dopo un rinnovo DHCP.
Apri l’app TapHome e usa l’IP Scanner (Impostazioni → Rete → Scansione). Lo scanner rileverà i dispositivi sulla tua rete e mostrerà sia l’indirizzo IP che l’hostname mDNS (es. Sonos-B8E9375A1C02.local). Usa l’hostname al posto dell’indirizzo IP per una connessione più affidabile.
Funzionalità del dispositivo
Controllo del volume
Il template espone il volume come dispositivo dimmer. Il volume viene letto tramite l’azione SOAP RenderingControl GetVolume (intervallo 0–100) e diviso per 100 per produrre il valore dimmer 0,0–1,0. La scrittura di un nuovo volume invia SetVolume con il livello desiderato. Il volume viene interrogato ogni 2,5 secondi.
Due PushButton aggiuntivi — Volume Up e Volume Down — consentono la regolazione relativa del volume. Questi sono gestiti dalla logica lato CCU anziché da azioni SOAP dirette, permettendo l’integrazione con interruttori a parete fisici o smart rule.
Disattivazione audio
La disattivazione audio è esposta come interruttore. Lo stato viene letto tramite GetMute e scritto tramite SetMute sul canale Master. Quando la disattivazione è attiva, l’uscita audio viene silenziata senza modificare il livello del volume.
Controllo della riproduzione
Sei PushButton controllano il trasporto della riproduzione:
- Play — invia AVTransport
Play(Speed=1) - Pause — invia AVTransport
Pause - Stop — invia AVTransport
Stop - Next — invia AVTransport
Nextper passare al brano successivo - Previous — invia AVTransport
Previousper tornare al brano precedente - Play/Pause — alterna tra play e pausa in base allo stato di trasporto corrente (gestito dalla logica lato CCU)
Stato della riproduzione
Un sensore binario in sola lettura indica se l’altoparlante sta attualmente riproducendo. Il template legge GetTransportInfo e mappa gli stati di trasporto: PLAYING e TRANSITIONING vengono mappati a 1 (in riproduzione), mentre STOPPED, NO_MEDIA_PRESENT e PAUSED_PLAYBACK vengono mappati a 0 (non in riproduzione). Interrogazione ogni 2,5 secondi.
Modalità di riproduzione
La modalità di riproduzione è un interruttore multi-valore con sei modalità:
| Valore | Modalità | Descrizione |
|---|---|---|
| 0 | Normal | Riproduzione sequenziale |
| 1 | Repeat All | Ripetizione dell’intera coda |
| 2 | Repeat One | Ripetizione del brano corrente |
| 3 | Shuffle No Repeat | Riproduzione casuale senza ripetizione |
| 4 | Shuffle | Riproduzione casuale con ripetizione |
| 5 | Shuffle Repeat One | Riproduzione casuale, ripetizione del brano corrente |
I valori 6–9 sono slot di riempimento non utilizzati nella configurazione dell’interruttore multi-valore e non hanno alcuna funzione.
Timer di spegnimento
Due PushButton configurano i timer di spegnimento tramite l’azione SOAP AVTransport ConfigureSleepTimer:
- Sleep in 1 hour — imposta il timer a
01:00:00 - Sleep in 15 minutes — imposta il timer a
00:15:00
Allo scadere del timer, l’altoparlante interrompe automaticamente la riproduzione.
Preset playlist e radio
Il template fornisce 10 PushButton preimpostati — 5 per playlist e 5 per stazioni radio. Ogni pulsante ha una variabile dispositivo che l’utente deve configurare con il nome della playlist o della stazione desiderata. Lo script gestisce automaticamente la ricerca, la gestione della coda e la riproduzione.
Playlist (pulsanti 1–5): Ogni pulsante playlist utilizza una variabile dispositivo playlist_name. Lo script cerca nelle playlist Sonos (Code salvate) tramite il contenitore ContentDirectory SQ:, con corrispondenza esatta del dc:title (sensibile alle maiuscole). Quando viene trovata una corrispondenza, lo script svuota la coda corrente, accoda la playlist e avvia la riproduzione.
Per configurare un pulsante playlist:
- Apri l’app TapHome → vai al dispositivo playlist → Variabili dispositivo
- Imposta
playlist_namesul nome esatto di una playlist Sonos - Per creare una playlist Sonos: app Sonos → accoda brani → Salva coda come playlist
Sono supportate solo le playlist Sonos (Code salvate). Le playlist di Spotify, Apple Music o altri servizi di streaming non possono essere utilizzate direttamente. Per utilizzare brani di questi servizi, aggiungili prima a una playlist Sonos.
Stazioni radio (pulsanti 1–5): Ogni pulsante radio utilizza una variabile dispositivo radio_name. Lo script cerca nei Sonos Favorites tramite il contenitore ContentDirectory FV:2, con corrispondenza esatta del dc:title (sensibile alle maiuscole) e filtraggio per il protocollo radio streaming (x-sonosapi-stream).
Per configurare un pulsante radio:
- Apri l’app TapHome → vai al dispositivo radio → Variabili dispositivo
- Imposta
radio_namesul nome esatto della stazione come appare nei Sonos Favorites - Per aggiungere una stazione ai Favorites: app Sonos → sfoglia TuneIn o iHeartRadio → tocca l’icona cuore/stella
Il nome deve corrispondere esattamente (sensibile alle maiuscole). Apri l’app Sonos, vai su My Sonos → Favorites e copia il nome della stazione carattere per carattere. Sono supportate solo le stazioni radio in streaming — i contenuti audio on-demand dai Favorites non funzioneranno.
Diagnostica di servizio
Il template espone 14 attributi di servizio dall’XML di descrizione del dispositivo (/xml/device_description.xml):
- Info dispositivo — nome modello, URL modello, numero di serie, indirizzo MAC, hostname, UDN (Unique Device Name)
- Software — versione software, generazione software, revisione hardware, versione API, versione API minima
- Configurazione Sonos — nome stanza, nome visualizzato
- In riproduzione — brano corrente (titolo, artista, album estratti dai metadati DIDL-Lite tramite
GetPositionInfo)
L’attributo del brano corrente decodifica i TrackMetaData codificati in XML e restituisce una stringa multi-riga con titolo, artista e informazioni sull’album. Se i metadati non sono disponibili (es. ingresso line-in), restituisce “Not supported”.
Funzionalità aggiuntive
L’API UPnP di Sonos espone 16 servizi con funzionalità oltre l’implementazione corrente del template. Il servizio RenderingControl supporta regolazioni di bassi, alti e loudness, nonché la modalità notturna sui modelli soundbar. Il servizio AVTransport offre controllo crossfade, ricerca per tempo o numero di brano e gestione completa della coda (aggiunta, rimozione, riordinamento dei brani). Sono disponibili anche gestione dei gruppi multi-room, pianificazione delle sveglie e impostazioni dell’equalizzatore per configurazioni surround/subwoofer. I modelli portatili (Move, Roam) mostrano lo stato della batteria. Queste funzionalità possono essere aggiunte in un futuro aggiornamento del template.
Risoluzione dei problemi
L’altoparlante non risponde
- Verifica che l’altoparlante Sonos sia acceso e connesso al Wi-Fi
- Prova a usare l’hostname mDNS (
Sonos-{MAC}.local) al posto dell’indirizzo IP — l’IP potrebbe essere cambiato dopo un rinnovo DHCP - Apri
http://{speaker-ip}:1400/xml/device_description.xmlin un browser — se risponde con XML, l’altoparlante è raggiungibile - Verifica che la TapHome CCU e l’altoparlante Sonos siano sulla stessa rete / VLAN
I comandi di riproduzione falliscono con errore 800
I gruppi multi-room Sonos instradano tutti i comandi di riproduzione attraverso il coordinatore del gruppo. Se il template punta a un altoparlante che non è il coordinatore, i comandi di trasporto (Play, Pause, Next, Previous) falliranno. Assicurati che l’indirizzo IP in TapHome punti al coordinatore del gruppo, oppure rimuovi l’altoparlante dal gruppo per renderlo un dispositivo indipendente.
Le modifiche del volume non si riflettono
- Conferma che il template stia interrogando — il volume viene letto ogni 2,5 secondi tramite
GetVolume - Se un altro controller (app Sonos, Apple AirPlay) ha modificato il volume, TapHome rileverà il nuovo valore al prossimo ciclo di interrogazione
- Verifica che l’altoparlante non sia in un gruppo dove il volume è controllato dal coordinatore del gruppo
Gli altoparlanti Sonos accettano comandi UPnP solo da dispositivi sulla stessa sottorete. Se la TapHome CCU si trova su una VLAN diversa, assicurati che il traffico multicast/UPnP sia instradato tra le VLAN, oppure posiziona entrambi i dispositivi sullo stesso segmento di rete.
