A Denon discovery egy kis segédsablon a Denon HEOS termékekhez. Nem keres eszközöket a hálózaton: az importáláskor megadott IP-címen egyetlen HEOS lejátszóhoz csatlakozik, lekéri a HEOS CLI-től (Command Line Interface, parancssori felület) a HEOS rendszer lejátszóinak listáját, és eltárolja a lista első lejátszójának lejátszóazonosítóját (pid). A HEOS CLI lejátszóparancsai (heos://player/...) ezzel a pid-del címzik meg a lejátszót.
A sablon egyetlen modult tartalmaz egyetlen változóval, ez a Denon player id. Hangerő-, némítás- és lejátszásvezérlés nincs benne.
A sablon mindig a lejátszólista első elemét olvassa (
payload[0].pid). Több lejátszóból álló HEOS rendszerben csak ezt az egypid-et mutatja — a HEOS CLI specifikációja nem határozza meg a lista sorrendjét, így az első elem nem feltétlenül az a hangszóró, amelynek az IP-címét megadtad.
A HEOS lejátszó teljes vezérlését, valamint a lejátszó index szerinti kiválasztását a listából (Get Players és Set Player Id szolgáltatási műveletek) a fő Denon HEOS sablon biztosítja. A Denon discovery csak a pid-et olvassa ki.
A HEOS eszköz előkészítése
A HEOS CLI a HEOS firmware része; az eszközön semmit nem kell bekapcsolni, és kiegészítő hardverre sincs szükség. A sablon a HEOS CLI v1.17-re épül, ami a HEOS 2.41.140-es verziójának felel meg.
- Telepítsd a HEOS App alkalmazást (Android / iOS) egy ugyanazon a hálózaton lévő telefonra vagy tabletre, és fejezd be a HEOS eszköz kezdeti beállítását, hogy az eszköz Wi-Fi-n vagy Etherneten csatlakozzon. A CLI csak a beállítás befejezése után érhető el.
- Keresd meg a HEOS eszköz IP-címét — a HEOS alkalmazásban a Settings → My Devices → About menüpontban, vagy a router DHCP-klienslistájában. A HEOS termékek a helyi hálózaton UPnP SSDP-n keresztül is jelentkeznek (keresési cél:
urn:schemas-denon-com:device:ACT-Denon:1). - Foglald le ezt a címet a routerben (DHCP-foglalás), vagy állíts be statikus IP-címet, hogy a DHCP-megújítás után se változzon meg.
- Győződj meg róla, hogy a TapHome Core eléri a HEOS eszközt a TCP 1255-ös porton — azonos LAN vagy routolt alhálózat, és a portot nem blokkolja tűzfal.
Egyetlen HEOS eszköz elég: egy HEOS hangszóróhoz kapcsolódva a hálózat összes HEOS lejátszója elérhető, így a get_players mindegyiket visszaadja.
A HEOS CLI-nek nincs saját bejelentkezése — bármely eszköz, amely eléri a TCP 1255-ös portot, parancsokat küldhet a HEOS rendszernek. A HEOS termékeket megbízható hálózati szegmensben tartsd.
Konfiguráció
A TapHome alkalmazás Packet Parser interfészébe történő importáláskor add meg a HEOS eszköz IP-címét az IP Cím paraméterben; a port és az üzenetkeretezés már be van állítva a sablonban.
| Beállítás | Érték |
|---|---|
| Átvitel | TCP, 1255-ös port |
| Üzenethatároló | \r\n a parancsoknál és a válaszoknál |
| Kapcsolat | minden olvasáshoz megnyílik, nem marad nyitva (StayConnected kikapcsolva) |
| Olvasási intervallum | 15 s |
| Küldött parancs | heos://player/get_players |
| Tárolt érték | payload[0].pid a JSON-válaszból |
A get_players válasza egy JSON-objektum heos fejléccel (command, result, message) és egy payload tömbbel, amelyben lejátszónként egy elem van. Minden elem tartalmazza a name, pid, model, version és network (wired vagy wifi) mezőt, továbbá a lineout mezőt, és az eszköztől függően a gid (csak ha a lejátszó egy csoport tagja), control és serial mezőt. A sablon csak az első elem pid-jét tartja meg.
Eszközfunkciók
Denon player id
A Denon player id egy változó, amely a get_players válasz első eleméből kiolvasott HEOS lejátszóazonosítót tárolja. 15 másodpercenként frissül, így követi a HEOS rendszert, ha a lista megváltozik. A sablonban ehhez a változóhoz nincs írószkript — csak olvasásra szolgál.
Az érték bárhol felhasználható, ahol HEOS pid szükséges, például ha egy másik Packet Parser modulból küldesz heos://player/* parancsot. Ha a teljes Denon HEOS sablont használod, erre a segédsablonra nincs szükség — annak Get Players és Set Player Id szolgáltatási műveletei már kilistázzák a lejátszókat, és a modult a kiválasztott lejátszóhoz kötik.
Hibaelhárítás
A Denon player id importálás után üres marad
A HEOS hangszóró a CLI-t alvó módban futtatja, és csak az első TCP-kapcsolat beérkezésekor indítja el. Közvetlenül ezután a CLI még nem feltétlenül tud válaszolni a lejátszóparancsokra, mert előbb fel kell derítenie a hálózat összes lejátszóját. Várj néhány olvasási ciklust (egyenként 15 s). Mivel ez a sablon minden olvasás után bontja a kapcsolatot, a CLI két olvasás között visszatérhet alvó módba; ezért egy hosszabb szünet utáni első olvasások is üresek maradhatnak.
Ha az érték egyáltalán nem jelenik meg, ellenőrizd, hogy:
- A modulban megadott IP-cím továbbra is a HEOS eszközhöz tartozik (DHCP-foglalás vagy statikus IP).
- A TCP 1255-ös port elérhető a TapHome Core felől — azonos LAN, nincs köztük tűzfal.
- A HEOS eszköz teljesen online a HEOS alkalmazásban.
Az érték egy másik hangszóróhoz tartozik
A sablon a lista első lejátszójának pid-jét tárolja, ami nem feltétlenül a megadott IP-címen lévő hangszóró. Több HEOS lejátszó esetén használd a fő Denon HEOS sablont, amelynek Get Players szolgáltatási művelete a teljes listát mutatja (név, pid, modell), a Set Player Id pedig 0-tól számozott index alapján választja ki a lejátszót.
A pid megváltozott
A HEOS osztja ki a pid értékeket a hálózat lejátszóinak. Ha egy hangszórót gyári alaphelyzetbe állítottak vagy kicseréltek, új pid-et kaphat; a Denon player id a következő olvasáskor az új értéket mutatja, de a máshová átmásolt értéket kézzel kell frissíteni.
Denon