
A Sonos egy prémium vezeték nélküli audiorendszer, amelyet többszobás lejátszásra terveztek. A TapHome a helyi hálózaton keresztül kommunikál a Sonos hangszórókkal UPnP/SOAP protokollal az 1400-as porton — nincs szükség felhőkapcsolatra vagy hitelesítésre. A sablon univerzális, és minden Sonos hangszórómodellel működik (Era 100, Era 300, One, Five, Beam, Arc, Ray, Move, Roam, Sub és mások).
A sablon teljes lejátszásvezérlést biztosít (lejátszás, szünet, leállítás, ugrás), hangerő- és némítás-kezelést, lejátszási mód választást, elalváskapcsolókat, valamint akár 10 előre beállított gombot lejátszási listákhoz és rádióállomásokhoz. 14 szervizattribútum jeleníti meg az eszközinformációkat és az aktuálisan lejátszott számot.
Konfiguráció
A Sonos hangszóró Wi-Fi-n keresztül csatlakozik. A TapHome sablon importálásakor add meg a hangszóró IP-címét (alapértelmezett helyőrző: 192.168.0.1). A hangszórónak ugyanazon a hálózaton kell lennie, mint a TapHome CCU-nak.
A Sonos hangszórók támogatják az mDNS felderítést a
Sonos-{MAC}.localhosztnév-mintával (MAC-cím kettőspontok nélkül). A hosztnév használata megelőzi a csatlakozási problémákat, amikor a hangszóró IP-címe DHCP-megújítás után megváltozik.
Nyisd meg a TapHome alkalmazást, és használd az IP Scannert (Beállítások → Hálózat → Keresés). A szkenner felderíti a hálózatodon lévő eszközöket, és megjeleníti az IP-címet és az mDNS hosztnevet egyaránt (pl. Sonos-B8E9375A1C02.local). A megbízhatóbb kapcsolat érdekében használd a hosztnevet az IP-cím helyett.
Eszközképességek
Hangerőszabályozás
A sablon a hangerőt dimmer eszközként jeleníti meg. A hangerőt a RenderingControl GetVolume SOAP-művelettel olvassa ki (tartomány: 0–100), majd 100-zal osztja, így 0,0–1,0 dimmerértéket kap. Új hangerő beírásakor SetVolume parancsot küld a kívánt szinttel. A hangerő lekérdezése 2,5 másodpercenként történik.
Két további gomb — Volume Up és Volume Down — relatív hangerő-beállítást tesz lehetővé. Ezeket a CCU oldali logika kezeli, nem közvetlen SOAP-műveletek, ami lehetővé teszi a fizikai fali kapcsolókkal vagy smart rule-okkal való integrációt.
Némítás
A némítás kapcsolóként jelenik meg. Az állapotot a GetMute olvassa és a SetMute írja a Master csatornán. Amikor a némítás be van kapcsolva, a hangkimenet elnémul a hangerőszint megváltoztatása nélkül.
Lejátszásvezérlés
Hat gomb vezérli a lejátszás transzportját:
- Play — AVTransport
Playküldése (Speed=1) - Pause — AVTransport
Pauseküldése - Stop — AVTransport
Stopküldése - Next — AVTransport
Nextküldése a következő számra ugráshoz - Previous — AVTransport
Previousküldése az előző számra visszalépéshez - Play/Pause — váltás lejátszás és szünet között az aktuális transzportállapot alapján (CCU oldali logikával kezelve)
Lejátszás állapota
Egy csak olvasható bináris érzékelő jelzi, hogy a hangszóró éppen játszik-e. A sablon a GetTransportInfo parancsot olvassa, és a transzportállapotokat leképezi: a PLAYING és TRANSITIONING 1-re (lejátszás), míg a STOPPED, NO_MEDIA_PRESENT és PAUSED_PLAYBACK 0-ra (nem játszik) képeződik le. Lekérdezés 2,5 másodpercenként.
Lejátszási mód
A lejátszási mód egy többértékű kapcsoló hat móddal:
| Érték | Mód | Leírás |
|---|---|---|
| 0 | Normal | Szekvenciális lejátszás |
| 1 | Repeat All | A teljes várólista ismétlése |
| 2 | Repeat One | Az aktuális szám ismétlése |
| 3 | Shuffle No Repeat | Véletlenszerű lejátszás ismétlés nélkül |
| 4 | Shuffle | Véletlenszerű lejátszás ismétléssel |
| 5 | Shuffle Repeat One | Véletlenszerű lejátszás, aktuális szám ismétlése |
A 6–9 értékek nem használt kitöltő helyek a többértékű kapcsoló konfigurációjában, és nincs funkciójuk.
Elalváskapcsolók
Két gomb konfigurál elalváskapcsolókat az AVTransport ConfigureSleepTimer SOAP-művelettel:
- Sleep in 1 hour — az időzítőt
01:00:00-ra állítja - Sleep in 15 minutes — az időzítőt
00:15:00-ra állítja
Az időzítő lejárta után a hangszóró automatikusan leállítja a lejátszást.
Lejátszási lista és rádió előbeállítások
A sablon 10 előbeállított gombot biztosít — 5-öt lejátszási listákhoz és 5-öt rádióállomásokhoz. Minden gombhoz tartozik egy eszközváltozó, amelyet a felhasználónak a kívánt lejátszási lista vagy állomás nevével kell beállítania. A szkript automatikusan elvégzi a keresést, a várakozási sor kezelését és a lejátszás indítását.
Lejátszási listák (1–5. gombok): Minden lejátszási lista gomb a playlist_name eszközváltozót használja. A szkript a hangszóró Sonos lejátszási listái (Mentett várakozási sorok) között keres a ContentDirectory SQ: konténerben, pontos dc:title egyezés alapján (kis- és nagybetű-érzékeny). Egyezés esetén a szkript törli az aktuális várakozási sort, hozzáadja a lejátszási listát, és elindítja a lejátszást.
Lejátszási lista gomb beállítása:
- Nyisd meg a TapHome alkalmazást → navigálj a lejátszási lista eszközhöz → Eszközváltozók
- Állítsd be a
playlist_nameértékét a Sonos lejátszási lista pontos nevére - Sonos lejátszási lista létrehozása: Sonos alkalmazás → adj hozzá számokat a várakozási sorhoz → Várakozási sor mentése lejátszási listaként
Csak Sonos lejátszási listák (Mentett várakozási sorok) támogatottak. A Spotify, Apple Music vagy más streaming szolgáltatások lejátszási listái nem használhatók közvetlenül. Ezen szolgáltatások számainak használatához először add hozzá őket egy Sonos lejátszási listához.
Rádióállomások (1–5. gombok): Minden rádió gomb a radio_name eszközváltozót használja. A szkript a Sonos Favorites között keres a ContentDirectory FV:2 konténerben, pontos dc:title egyezés alapján (kis- és nagybetű-érzékeny), és szűri a streaming rádió protokollt (x-sonosapi-stream).
Rádió gomb beállítása:
- Nyisd meg a TapHome alkalmazást → navigálj a rádió eszközhöz → Eszközváltozók
- Állítsd be a
radio_nameértékét az állomás pontos nevére, ahogy az a Sonos Favorites-ban megjelenik - Állomás hozzáadása a Favorites-hoz: Sonos alkalmazás → böngéssz a TuneIn vagy iHeartRadio között → koppints a szív/csillag ikonra
A névnek pontosan egyeznie kell (kis- és nagybetű-érzékeny). Nyisd meg a Sonos alkalmazást, menj a My Sonos → Favorites menübe, és másold át az állomásnevet karakterről karakterre. Csak streaming rádióállomások támogatottak — a Favorites-ból elérhető igény szerinti audió tartalom nem fog működni.
Szervizdiagnosztika
A sablon 14 szervizattribútumot jelenít meg az eszközleíró XML-ből (/xml/device_description.xml):
- Eszközinformációk — modellnév, modell URL, sorozatszám, MAC-cím, hosztnév, UDN (egyedi eszköznév)
- Szoftver — szoftververzió, szoftver-generáció, hardverrevízió, API-verzió, minimális API-verzió
- Sonos konfiguráció — szoba neve, megjelenítési név
- Most játszott — aktuális szám (cím, előadó, album a DIDL-Lite metaadatokból,
GetPositionInfosegítségével)
Az aktuális szám attribútum dekódolja az XML-kódolt TrackMetaData-t, és egy többsoros szöveget ad vissza a cím, az előadó és az albuminformációkkal. Ha a metaadatok nem elérhetők (pl. line-in bemenet), „Not supported" értéket ad vissza.
További képességek
A Sonos UPnP API 16 szolgáltatást kínál, amelyek túlmutatnak a sablon jelenlegi implementációján. A RenderingControl szolgáltatás támogatja a basszus, magas és hangerő beállítását, valamint az éjszakai módot soundbar modelleken. Az AVTransport szolgáltatás crossfade vezérlést, idő vagy szám szerinti keresést és teljes várólista-kezelést (számok hozzáadása, eltávolítása, átrendezése) biztosít. Többszobás csoportkezelés, ébresztő ütemezés és hangszínszabályozó beállítások surround/subwoofer konfigurációkhoz szintén elérhetők. A hordozható modellek (Move, Roam) megjelenítik az akkumulátor állapotát. Ezek a képességek egy jövőbeli sablonfrissítésben adhatók hozzá.
Hibaelhárítás
A hangszóró nem válaszol
- Ellenőrizd, hogy a Sonos hangszóró be van-e kapcsolva és csatlakozik-e a Wi-Fi-hez
- Próbáld meg az mDNS hosztnevet (
Sonos-{MAC}.local) használni az IP-cím helyett — az IP megváltozhatott egy DHCP-megújítás után - Nyisd meg a
http://{speaker-ip}:1400/xml/device_description.xmlcímet egy böngészőben — ha XML-lel válaszol, a hangszóró elérhető - Ellenőrizd, hogy a TapHome CCU és a Sonos hangszóró ugyanazon a hálózaton / VLAN-on van-e
A lejátszási parancsok 800-as hibával meghiúsulnak
A Sonos többszobás csoportok minden lejátszási parancsot a csoportkoordinátoron keresztül irányítanak. Ha a sablon egy olyan hangszórót céloz meg, amely nem a koordinátor, a transzportparancsok (Play, Pause, Next, Previous) meghiúsulnak. Győződj meg róla, hogy a TapHome-ban lévő IP-cím a csoportkoordinátorra mutat, vagy csoportosítsd ki a hangszórót, hogy önálló eszközzé tedd.
A hangerőváltozások nem jelennek meg
- Erősítsd meg, hogy a sablon lekérdez — a hangerőt 2,5 másodpercenként olvassa a
GetVolumesegítségével - Ha egy másik vezérlő (Sonos alkalmazás, Apple AirPlay) megváltoztatta a hangerőt, a TapHome a következő lekérdezési ciklusban veszi át az új értéket
- Ellenőrizd, hogy a hangszóró nincs-e olyan csoportban, ahol a hangerőt a csoportkoordinátor vezérli
A Sonos hangszórók UPnP-parancsokat csak az azonos alhálózaton lévő eszközöktől fogadnak el. Ha a TapHome CCU egy másik VLAN-on van, biztosítsd a multicast/UPnP forgalom útválasztását a VLAN-ok között, vagy helyezd mindkét eszközt ugyanarra a hálózati szegmensre.
