Denon discovery to niewielki szablon pomocniczy dla produktów Denon HEOS. Nie skanuje sieci w poszukiwaniu urządzeń: łączy się z jednym odtwarzaczem HEOS pod adresem IP podanym podczas importu, pobiera z HEOS CLI (Command Line Interface) listę odtwarzaczy w systemie HEOS i zapisuje identyfikator odtwarzacza (pid) pierwszego odtwarzacza z tej listy. Polecenia odtwarzacza w HEOS CLI (heos://player/...) wskazują odtwarzacz właśnie przez ten pid.
Szablon zawiera jeden moduł z jedną zmienną, Denon player id. Nie steruje głośnością, wyciszeniem ani odtwarzaniem.
Szablon zawsze odczytuje pierwszy wpis listy odtwarzaczy (
payload[0].pid). W systemie HEOS z kilkoma odtwarzaczami pokazuje tylko ten jedenpid— specyfikacja HEOS CLI nie określa kolejności listy, więc pierwszy wpis nie musi być głośnikiem, którego adres IP został podany.
Pełne sterowanie odtwarzaczem HEOS oraz wybór odtwarzacza z listy według indeksu (działania serwisowe Get Players i Set Player Id) zapewnia główny szablon Denon HEOS. Denon discovery odczytuje tylko pid.
Przygotowanie urządzenia HEOS
HEOS CLI jest częścią firmware HEOS; na urządzeniu nie trzeba niczego włączać ani dokładać dodatkowego sprzętu. Szablon powstał w oparciu o HEOS CLI v1.17, co odpowiada wersji HEOS 2.41.140.
- Zainstaluj HEOS App (Android / iOS) na telefonie lub tablecie w tej samej sieci i dokończ wstępną konfigurację urządzenia HEOS, tak aby było połączone z Wi-Fi lub Ethernetem. Do zakończenia tej konfiguracji CLI jest niedostępne.
- Ustal adres IP urządzenia HEOS — w aplikacji HEOS w Settings → My Devices → About albo na liście klientów DHCP w routerze. Produkty HEOS ogłaszają się też w sieci LAN przez UPnP SSDP (cel wyszukiwania
urn:schemas-denon-com:device:ACT-Denon:1). - Zarezerwuj ten adres w routerze (rezerwacja DHCP) albo ustaw statyczny adres IP, aby nie zmienił się po odnowieniu DHCP.
- Upewnij się, że jednostka sterująca TapHome Core ma dostęp do urządzenia HEOS na porcie TCP 1255 — ta sama sieć LAN lub routowana podsieć, bez zapory blokującej ten port.
Wystarczy jedno urządzenie HEOS: połączenie z jednym głośnikiem HEOS daje dostęp do wszystkich odtwarzaczy HEOS w sieci, więc get_players zwraca je wszystkie.
HEOS CLI nie ma własnego logowania — każde urządzenie, które ma dostęp do portu TCP 1255, może wysyłać polecenia do systemu HEOS. Trzymaj produkty HEOS w zaufanym segmencie sieci.
Konfiguracja
Podczas importu do interfejsu Packet Parser w aplikacji TapHome podaj adres IP urządzenia HEOS w parametrze Adres IP; port i ramkowanie wiadomości są już ustawione w szablonie.
| Ustawienie | Wartość |
|---|---|
| Transport | TCP, port 1255 |
| Ogranicznik wiadomości | \r\n dla poleceń i odpowiedzi |
| Połączenie | otwierane przy każdym odczycie, nieutrzymywane (StayConnected wyłączone) |
| Interwał odczytu | 15 s |
| Wysyłane polecenie | heos://player/get_players |
| Zapisywana wartość | payload[0].pid z odpowiedzi JSON |
Odpowiedź na get_players to obiekt JSON z nagłówkiem heos (command, result, message) i tablicą payload z jednym wpisem na każdy odtwarzacz. Każdy wpis zawiera name, pid, model, version i network (wired lub wifi), a także lineout oraz, zależnie od urządzenia, gid (tylko gdy odtwarzacz należy do grupy), control i serial. Szablon zachowuje tylko pid pierwszego wpisu.
Funkcje urządzenia
Denon player id
Denon player id to zmienna, która przechowuje identyfikator odtwarzacza HEOS odczytany z pierwszego wpisu odpowiedzi get_players. Odświeża się co 15 sekund, więc nadąża za systemem HEOS, gdy lista się zmienia. Szablon nie ma dla tej zmiennej skryptu zapisu — jest ona przeznaczona tylko do odczytu.
Wartości możesz użyć wszędzie tam, gdzie potrzebny jest pid HEOS, na przykład gdy polecenie heos://player/* jest wysyłane z innego modułu Packet Parser. Jeśli korzystasz z pełnego szablonu Denon HEOS, ten szablon pomocniczy nie jest potrzebny — działania serwisowe Get Players i Set Player Id tamtego szablonu już wyświetlają listę odtwarzaczy i wiążą moduł z wybranym odtwarzaczem.
Rozwiązywanie problemów
Zmienna Denon player id pozostaje pusta po imporcie
Głośnik HEOS utrzymuje CLI w trybie uśpienia i uruchamia je dopiero przy pierwszym połączeniu TCP. Tuż potem CLI może jeszcze nie odpowiadać na polecenia odtwarzacza, bo najpierw musi wykryć wszystkie odtwarzacze w sieci. Odczekaj kilka cykli odczytu (po 15 s). Ponieważ ten szablon zamyka połączenie po każdym odczycie, CLI może między odczytami wrócić do trybu uśpienia; dlatego także pierwsze odczyty po dłuższej przerwie mogą pozostać puste.
Jeśli wartość w ogóle się nie pojawia, sprawdź, czy:
- Adres IP w module nadal należy do urządzenia HEOS (rezerwacja DHCP lub statyczny adres IP).
- Port TCP 1255 jest osiągalny z jednostki sterującej TapHome Core — ta sama sieć LAN, bez zapory pomiędzy.
- Urządzenie HEOS jest w pełni online w aplikacji HEOS.
Wartość należy do innego głośnika
Szablon zapisuje pid pierwszego odtwarzacza z listy, a ten nie musi być głośnikiem pod podanym adresem IP. Przy kilku odtwarzaczach HEOS użyj głównego szablonu Denon HEOS: jego działanie serwisowe Get Players pokazuje całą listę (nazwa, pid, model), a Set Player Id wybiera odtwarzacz według indeksu liczonego od 0.
Zmienił się pid
HEOS przydziela wartości pid odtwarzaczom w sieci. Jeśli głośnik został przywrócony do ustawień fabrycznych lub wymieniony, może otrzymać nowy pid; Denon player id pokaże nową wartość przy następnym odczycie, ale wartość skopiowaną w inne miejsce trzeba zaktualizować ręcznie.
Denon