
Sonos je prémiový bezdrôtový audiosystém navrhnutý na multi-room prehrávanie. TapHome komunikuje s reproduktormi Sonos po lokálnej sieti pomocou UPnP/SOAP na porte 1400 — nevyžaduje sa cloudové pripojenie ani autentifikácia. Šablóna je univerzálna a funguje so všetkými modelmi reproduktorov Sonos (Era 100, Era 300, One, Five, Beam, Arc, Ray, Move, Roam, Sub a ďalšie).
Šablóna poskytuje kompletné ovládanie prehrávania (play, pauza, stop, preskok), správu hlasitosti a stlmenia, výber režimu prehrávania, časovače uspania a až 10 predvolieb pre playlisty a rádiové stanice. Sada 14 servisných atribútov zobrazuje informácie o zariadení a aktuálne prehrávanú skladbu.
Konfigurácia
Reproduktor Sonos sa pripája cez Wi-Fi. Počas importu šablóny TapHome zadajte IP adresu reproduktora (predvolený zástupný text 192.168.0.1). Reproduktor musí byť v rovnakej sieti ako TapHome CCU.
Reproduktory Sonos podporujú mDNS discovery so vzorom názvu hostiteľa
Sonos-{MAC}.local(MAC adresa bez dvojbodiek). Použitie názvu hostiteľa zabraňuje problémom s pripojením pri zmene IP adresy reproduktora po obnovení DHCP.
Otvorte aplikáciu TapHome a použite IP Scanner (Nastavenia → Sieť → Skenovať). Skener objaví zariadenia vo vašej sieti a zobrazí IP adresu aj mDNS názov hostiteľa (napr. Sonos-B8E9375A1C02.local). Pre spoľahlivejšie pripojenie použite názov hostiteľa namiesto IP adresy.
Možnosti zariadenia
Ovládanie hlasitosti
Šablóna zobrazuje hlasitosť ako stmievač. Hlasitosť sa číta cez SOAP akciu RenderingControl GetVolume (rozsah 0–100) a delí sa 100, čím vzniká hodnota stmievača 0,0–1,0. Zápis novej hlasitosti odošle SetVolume s požadovanou úrovňou. Hlasitosť sa dotazuje každých 2,5 sekundy.
Dve ďalšie tlačidlá — Volume Up a Volume Down — umožňujú relatívnu úpravu hlasitosti. Tieto sú spracované logikou na strane CCU, nie priamymi SOAP akciami, čo umožňuje integráciu s fyzickými nástenými spínačmi alebo smart pravidlami.
Stlmenie
Stlmenie je zobrazené ako spínač. Stav sa číta cez GetMute a zapisuje cez SetMute na kanáli Master. Keď je stlmenie zapnuté, zvukový výstup je stíšený bez zmeny úrovne hlasitosti.
Ovládanie prehrávania
Šesť tlačidiel ovláda transport prehrávania:
- Play — odošle AVTransport
Play(Speed=1) - Pause — odošle AVTransport
Pause - Stop — odošle AVTransport
Stop - Next — odošle AVTransport
Nextna preskok na ďalšiu skladbu - Previous — odošle AVTransport
Previousna návrat na predchádzajúcu skladbu - Play/Pause — prepína medzi play a pauza na základe aktuálneho stavu transportu (spracované logikou na strane CCU)
Stav prehrávania
Binárny senzor určený len na čítanie hlási, či reproduktor práve prehráva. Šablóna číta GetTransportInfo a mapuje stavy transportu: PLAYING a TRANSITIONING sa mapujú na 1 (prehráva), zatiaľ čo STOPPED, NO_MEDIA_PRESENT a PAUSED_PLAYBACK sa mapujú na 0 (neprehráva). Dotazuje sa každých 2,5 sekundy.
Režim prehrávania
Režim prehrávania je viachodnotový prepínač so šiestimi režimami:
| Hodnota | Režim | Popis |
|---|---|---|
| 0 | Normal | Postupné prehrávanie |
| 1 | Repeat All | Opakovanie celého frontu |
| 2 | Repeat One | Opakovanie aktuálnej skladby |
| 3 | Shuffle No Repeat | Náhodné prehrávanie bez opakovania |
| 4 | Shuffle | Náhodné prehrávanie s opakovaním |
| 5 | Shuffle Repeat One | Náhodné prehrávanie, opakovanie aktuálnej skladby |
Hodnoty 6–9 sú nepoužité výplňové pozície v konfigurácii viachodnotového prepínača a nemajú žiadnu funkciu.
Časovače uspania
Dve tlačidlá konfigurujú časovače uspania cez SOAP akciu AVTransport ConfigureSleepTimer:
- Sleep in 1 hour — nastaví časovač na
01:00:00 - Sleep in 15 minutes — nastaví časovač na
00:15:00
Po uplynutí časovača reproduktor automaticky zastaví prehrávanie.
Predvoľby playlistov a rádií
Šablóna poskytuje 10 predvolieb — 5 pre playlisty a 5 pre rádiové stanice. Každé tlačidlo má premennú zariadenia, ktorú musí používateľ nastaviť na názov požadovaného playlistu alebo stanice. Skript sa postará o vyhľadanie, správu fronty a prehrávanie automaticky.
Playlisty (tlačidlá 1–5): Každé tlačidlo playlistu používa premennú playlist_name. Skript prehľadáva Sonos playlisty (Uložené fronty) cez ContentDirectory kontajner SQ:, zhoda podľa presného dc:title (rozlišuje veľkosť písmen). Po nájdení zhody skript vymaže aktuálnu frontu, zaradí playlist do fronty a spustí prehrávanie.
Konfigurácia tlačidla playlistu:
- Otvorte aplikáciu TapHome → prejdite na zariadenie playlistu → Premenné zariadenia
- Nastavte
playlist_namena presný názov Sonos playlistu - Vytvorenie Sonos playlistu: aplikácia Sonos → zaraďte skladby do fronty → Uložiť frontu ako playlist
Podporované sú iba Sonos playlisty (Uložené fronty). Playlisty zo Spotify, Apple Music alebo iných streamovacích služieb nie je možné použiť priamo. Ak chcete použiť skladby z týchto služieb, pridajte ich najskôr do Sonos playlistu.
Rádiové stanice (tlačidlá 1–5): Každé tlačidlo rádia používa premennú radio_name. Skript prehľadáva Sonos Favorites cez ContentDirectory kontajner FV:2, zhoda podľa presného dc:title (rozlišuje veľkosť písmen) a filtrovanie podľa protokolu streamovaného rádia (x-sonosapi-stream).
Konfigurácia tlačidla rádia:
- Otvorte aplikáciu TapHome → prejdite na zariadenie rádia → Premenné zariadenia
- Nastavte
radio_namena presný názov stanice, ako sa zobrazuje v Sonos Favorites - Pridanie stanice do Favorites: aplikácia Sonos → prehľadajte TuneIn alebo iHeartRadio → klepnite na ikonu srdca/hviezdičky
Názov sa musí presne zhodovať (rozlišuje veľkosť písmen). Otvorte aplikáciu Sonos, prejdite na My Sonos → Favorites a skopírujte názov stanice znak po znaku. Podporované sú iba streamované rádiové stanice — obsah na požiadanie z Favorites nebude fungovať.
Servisná diagnostika
Šablóna zobrazuje 14 servisných atribútov z XML popisu zariadenia (/xml/device_description.xml):
- Informácie o zariadení — názov modelu, URL modelu, sériové číslo, MAC adresa, názov hostiteľa, UDN (unikátny názov zariadenia)
- Softvér — verzia softvéru, generácia softvéru, revízia hardvéru, verzia API, minimálna verzia API
- Konfigurácia Sonos — názov miestnosti, zobrazovaný názov
- Aktuálne prehrávaná skladba — aktuálna skladba (názov, interpret, album extrahované z DIDL-Lite metadát cez
GetPositionInfo)
Atribút aktuálnej skladby dekóduje XML-kódované TrackMetaData a vráti viacriadkový reťazec s názvom, interpretom a informáciami o albume. Ak metadáta nie sú dostupné (napr. line-in vstup), vráti “Not supported”.
Ďalšie možnosti
Sonos UPnP API poskytuje 16 služieb s možnosťami nad rámec aktuálnej implementácie šablóny. Služba RenderingControl podporuje úpravu basov, výšok a hlasitosti, ako aj nočný režim na soundbar modeloch. Služba AVTransport poskytuje ovládanie crossfade, vyhľadávanie podľa času alebo čísla skladby a kompletnú správu frontu (pridávanie, odstraňovanie, zmena poradia skladieb). K dispozícii je aj správa multi-room skupín, plánovanie budíkov a nastavenia ekvalizéra pre konfigurácie surround/subwoofer. Prenosné modely (Move, Roam) zobrazujú stav batérie. Tieto možnosti môžu byť pridané v budúcej aktualizácii šablóny.
Riešenie problémov
Reproduktor neodpovedá
- Overte, že reproduktor Sonos je zapnutý a pripojený k Wi-Fi
- Skúste použiť mDNS názov hostiteľa (
Sonos-{MAC}.local) namiesto IP adresy — IP sa mohla zmeniť po obnovení DHCP - Otvorte
http://{speaker-ip}:1400/xml/device_description.xmlv prehliadači — ak odpovie XML, reproduktor je dostupný - Skontrolujte, že TapHome CCU a reproduktor Sonos sú v rovnakej sieti / VLAN
Príkazy prehrávania zlyhávajú s chybou 800
Multi-room skupiny Sonos smerujú všetky príkazy prehrávania cez koordinátora skupiny. Ak šablóna cieli na reproduktor, ktorý nie je koordinátorom, transportné príkazy (Play, Pause, Next, Previous) zlyhajú. Uistite sa, že IP adresa v TapHome smeruje na koordinátora skupiny, alebo reproduktor odskupte a urobte z neho samostatné zariadenie.
Zmeny hlasitosti sa neprejavujú
- Overte, že šablóna dotazuje — hlasitosť sa číta každých 2,5 sekundy cez
GetVolume - Ak iný ovládač (aplikácia Sonos, Apple AirPlay) zmenil hlasitosť, TapHome zachytí novú hodnotu pri ďalšom cykle dotazovania
- Skontrolujte, že reproduktor nie je v skupine, kde hlasitosť ovláda koordinátor skupiny
Reproduktory Sonos prijímajú UPnP príkazy iba zo zariadení v rovnakej podsieti. Ak je TapHome CCU v inej VLAN, zabezpečte smerovanie multicast/UPnP prevádzky medzi VLAN, alebo umiestnite obe zariadenia do rovnakého sieťového segmentu.
