
Bluesound to seria urządzeń audio multiroom zbudowana na BluOS, platformie strumieniowej firmy Lenbrook dla dźwięku bezstratnego do 24 bitów/192 kHz. Każdy odtwarzacz BluOS udostępnia w sieci lokalnej BluOS Custom Integration API: zwykłe żądania HTTP GET na porcie TCP 11000, odpowiedzi w formacie UTF-8 XML, bez uwierzytelniania i bez konta w chmurze. TapHome komunikuje się z odtwarzaczem bezpośrednio przez sieć lokalną.
Szablon nie jest przypisany do konkretnego modelu — nie zawiera żadnego powiązania z modelem ani producentem i korzysta wyłącznie z API HTTP, więc obejmuje całą aktualną serię (NODE, NODE X, NODE NANO, NODE ICON, POWERNODE, POWERNODE EDGE, PULSE, PULSE M, PULSE MINI, PULSE FLEX, PULSE CINEMA, PULSE CINEMA MINI, PULSE SOUNDBAR, VAULT i HUB) oraz wcześniejsze generacje. Ponieważ BluOS dostarczają także NAD Electronics, DALI, PSB Speakers, Monitor Audio, Roksan, Cyrus i Peachtree, odtwarzacze tych marek udostępniają to samo API i odpowiadają na te same żądania.
Połączenie sieciowe
Nie ma nic do okablowania. Odtwarzacz BluOS dołącza do sieci domowej przez Ethernet lub Wi-Fi za pomocą kreatora w aplikacji BluOS Controller, a TapHome sięga do niego następnie przez HTTP. Jedynym wymaganiem jest, aby jednostka sterująca TapHome i odtwarzacz znajdowały się w tym samym segmencie sieci, a port 11000 był między nimi otwarty.
Port 11000 obowiązuje w każdym odtwarzaczu BluOS z jednym udokumentowanym wyjątkiem: NAD CI580 mieści cztery węzły strumieniowe w jednej obudowie na portach 11000 / 11010 / 11020 / 11030. Szablon adresuje wyłącznie port 11000, więc w CI580 steruje węzłem 1.
Konfiguracja
Znajdowanie adresu IP odtwarzacza
Adres jest widoczny na ekranie Diagnostics w aplikacji BluOS Controller:
- Android / iOS — zakładka Players → wybierz odtwarzacz → zakładka Home → Settings → w sekcji Help & Support dotknij Diagnostics.
- Windows / macOS — Player Drawer → wybierz odtwarzacz → lewy Navigation Drawer → Help → Diagnostics.
Ten sam ekran wypisuje pod pozycją Other Players także adresy pozostałych odtwarzaczy w sieci. Bez aplikacji otwarcie adresu http://<ip_odtwarzacza>:11000/SyncStatus w przeglądarce zwraca atrybut id odtwarzacza (adres i port) wraz z jego atrybutem mac.
Utrzymanie stałego adresu
Szablon adresuje odtwarzacz po adresie IP, więc zmieniona dzierżawa DHCP po cichu zatrzymuje integrację. Lenbrook wyraźnie zaleca rezerwację DHCP na routerze zamiast adresu statycznego ustawionego w samym odtwarzaczu:
- Otwórz panel administracyjny routera i znajdź ustawienia rezerwacji DHCP / LAN.
- Wprowadź adres MAC odtwarzacza — zawiera go odpowiedź
/SyncStatus, więc można go odczytać przez HTTP bez aplikacji. - Przypisz adres, który odtwarzacz ma zachować, i zapisz.
- Uruchom odtwarzacz ponownie, aby odnowił dzierżawę, i sprawdź, czy przejął zarezerwowany adres.
Import szablonu
Szablon ma jeden parametr importu, IpAddress (wartość zastępcza 192.168.0.1). Wprowadź adres odtwarzacza; port 11000 i format żądań są już częścią szablonu.
Wymagana konfiguracja po imporcie — Grupuj z odtwarzaczem
Przełącznik Grupuj z odtwarzaczem jest dostarczany ze zmienną IP ustawioną na dosłowny symbol zastępczy 192.168.x.x. To nie jest działająca wartość domyślna — dopóki jej nie zmienisz, skrypt odczytu szuka 192.168.x.x wśród odtwarzaczy podrzędnych, nigdy go nie znajduje, a przełącznik pozostaje trwale wyłączony.
Po zaimportowaniu szablonu otwórz urządzenie Grupuj z odtwarzaczem w aplikacji TapHome i ustaw IP na adres odtwarzacza, który ma zostać dołączony jako podrzędny element grupy. Skorzystaj z opisanego wyżej ekranu Diagnostics (pozycja Other Players wypisuje dokładnie te adresy) albo odczytaj /SyncStatus na dowolnym odtwarzaczu w sieci.
Wszystkie pozostałe urządzenia szablonu działają od razu po wypełnieniu parametru IpAddress. Grupuj z odtwarzaczem to jedyne urządzenie, które po imporcie wymaga drugiej wartości — jeśli zostawisz
192.168.x.x, przełącznik będzie sprawiał wrażenie zepsutego, zamiast zgłosić błąd.
Funkcje urządzenia
Sterowanie odtwarzaniem
Odtwarzaniem steruje pięć przycisków:
- Play — uruchamia bieżące źródło dźwięku. Wznawia wstrzymany odtwarzacz, ale nie uruchamia ponownie zatrzymanego.
- Pauza — wysyła przełączenie, więc tym samym przyciskiem wstrzymuje się grający odtwarzacz i wznawia wstrzymany. Jeśli gra budzik z limitem czasu, wstrzymanie anuluje również ten limit.
- Stop — zatrzymuje odtwarzanie. W odróżnieniu od pauzy zatrzymanego odtwarzacza nie można wznowić przyciskiem Play. Zatrzymanie także anuluje działający limit budzika.
- Następny utwór — przechodzi naprzód w kolejce odtwarzania, a na końcu kolejki wraca do pierwszego utworu, niezależnie od ustawienia powtarzania.
- Poprzedni utwór — uruchamia bieżący utwór od początku, jeśli jest odtwarzany dłużej niż cztery sekundy, w przeciwnym razie cofa się do poprzedniego utworu.
Te przyciski działają na kolejce odtwarzania. Gdy odtwarzacz strumieniuje stację radiową lub gra z wejścia fizycznego, kolejka nie jest źródłem dźwięku, a przechodzenie naprzód i wstecz jest niedostępne — API obsługuje ten przypadek osobnym endpointem, którego szablon nie wykorzystuje.
Głośność
Głośność to ściemniacz. Odczytuje poziom odtwarzacza (0–100) i skaluje go do zakresu ściemniacza 0,0–1,0; przy zapisie odsyła wartość jako pełny procent. Wyłączenie ściemniacza wysyła polecenie wyciszenia zamiast głośności 0, dzięki czemu własny poziom odtwarzacza zostaje zachowany i wraca po wyłączeniu wyciszenia.
Oba zapisy zawierają tell_slaves=1, co odpowiada suwakowi głośności grupy w aplikacji BluOS Controller: gdy odtwarzacz jest nadrzędnym elementem grupy, głośność zmienia się jednocześnie we wszystkich odtwarzaczach grupy, a nie tylko w adresowanym.
Użyteczny zakres głośności ustawia się w aplikacji BluOS Controller w Settings → Player → Audio i wynosi zazwyczaj −80…0 dB. Wszystkie poziomy są przycinane do tego zakresu, więc ściemniacz TapHome na 100 % nie musi oznaczać 0 dB. Odtwarzacze ze stałym poziomem liniowym na wyjściu w ogóle nie zgłaszają użytecznej głośności, a ściemniacz pokazuje wtedy bezsensowny poziom zamiast błędu.
Ściemniacz głośności odpytuje odtwarzacz co 2,5 sekundy, podczas gdy API BluOS oczekuje od integracji bez long pollingu co najwyżej jednego żądania na 30 sekund. Przy pojedynczym odtwarzaczu to garść drobnych żądań na minutę, ale w domu pełnym odtwarzaczy sumuje się to — miej to na uwadze przy obciążonej sieci Wi-Fi, a tam gdzie sieć jest zajęta, wybieraj odtwarzacze podłączone kablem.
Odtwarzanie losowe i powtarzanie
Odtwarzanie losowe włącza i wyłącza mieszanie kolejki. Mieszanie przebudowuje kolejkę; po wyłączeniu wraca pierwotna kolejność.
Powtarzanie to przełącznik trójstanowy — Bez powtarzania, Powtórz jeden i Powtórz wszystko. TapHome porządkuje te sloty odwrotnie niż API, a szablon stosuje to samo przemapowanie przy odczycie i przy zapisie, więc oba kierunki pozostają spójne.
Oba urządzenia odczytują swój stan z wartości, którą moduł zapisuje przy własnym 30-sekundowym odpytaniu stanu, zamiast wysyłać własne żądania. Ogranicza to ruch sieciowy, ale kosztuje nawet 30 sekund opóźnienia, zanim zmiana wprowadzona w aplikacji BluOS pojawi się w TapHome.
Presety
Preset przywołuje preset zapisany w odtwarzaczu — stację radiową, playlistę lub wejście. Presety można tworzyć i usuwać wyłącznie w aplikacji BluOS Controller; API potrafi je tylko wczytać.
Urządzenie działa tylko do zapisu: wysyła polecenie presetu, ale nigdy nie odczytuje z powrotem, który preset jest odtwarzany, więc przełącznik nie odzwierciedla rzeczywistego stanu odtwarzacza.
Używaj slotów presetów 1–9. Slot 0 wysyła identyfikator presetu 64 zamiast 0, co wygląda raczej na pozostawiony symbol zastępczy niż na rzeczywisty preset. Identyfikatory presetów nie muszą być kolejne — odtwarzacz może mieć presety 1, 2, 3, 5, 7 i 8 — dlatego sprawdź w aplikacji BluOS Controller, które identyfikatory faktycznie istnieją, zanim wepniesz slot w scenę.
Grupowanie multiroom
Grupuj z odtwarzaczem dołącza do tego odtwarzacza drugi odtwarzacz BluOS. Odtwarzacz adresowany przez TapHome staje się nadrzędny: wybiera źródło muzyki i rozprowadza swój dźwięk, natomiast odtwarzacz wskazany zmienną IP dołącza jako podrzędny. Wyłączenie urządzenia usuwa ten odtwarzacz z grupy. Stan jest odczytywany z listy dołączonych odtwarzaczy podrzędnych, więc grupowanie wykonane z aplikacji BluOS również jest widoczne w TapHome.
Ze sposobu działania grupowania w BluOS wynikają dwie konsekwencje:
- Do reszty grupy docierają tylko wejścia zewnętrzne podłączone do odtwarzacza nadrzędnego. Jeśli dźwięk z telewizora przez wejście optyczne lub HDMI ma grać wszędzie, TapHome musi adresować odtwarzacz, do którego to wejście jest podłączone.
- Aplikacja BluOS Controller obsługuje najwyżej osiem grup po osiem odtwarzaczy albo cztery grupy po szesnaście. Jeden przełącznik TapHome obsługuje jedną parę nadrzędny–podrzędny, więc grupa trzech odtwarzaczy wymaga drugiego przełącznika.
Żądania grupowania używają zapisu parametrów mieszającego liczbę pojedynczą i mnogą z API. W praktyce działa to, ponieważ port 11000 jest udokumentowaną wartością domyślną, ale warto o tym wiedzieć, gdyby któreś polecenie grupowania zachowało się nieoczekiwanie.
Przyciski przykładowe — demonstracje, a nie funkcje odtwarzacza
Szablon zawiera dwa przyciski o nazwach Przykład – Jungle i Przykład – Wyłączenie. Są to demonstracje strumieniowania z adresu URL, a nie możliwości odtwarzacza: każdy z nich zatrzymuje odtwarzanie, czyści kolejkę i odtwarza jeden plik dźwiękowy spod adresu zapisanego w zmiennej urządzenia.
Są przeznaczone do edycji lub usunięcia. Przykład Jungle wskazuje na zewnętrzny serwer z próbkami, poza kontrolą TapHome, i przestanie działać, gdy tamta strona się zmieni. Przykład Wyłączenie wskazuje na plik MP3 hostowany przez TapHome i jest użytecznym wzorcem dla dźwięku dzwonka lub komunikatu, jeśli podmienisz adres na własny — pamiętaj, że adres musi być zapisany w kodowaniu procentowym, ponieważ trafia do odtwarzacza bez zmian.
Rozwiązywanie problemów
Odtwarzacz nie odpowiada
- Otwórz w przeglądarce
http://<ip_odtwarzacza>:11000/SyncStatus— odpowiedź w formacie XML oznacza, że odtwarzacz jest osiągalny, a API działa. - Jeśli nie odpowiada, sprawdź adres na ekranie Diagnostics w aplikacji BluOS Controller; mogło go przesunąć odnowienie DHCP. Skonfiguruj opisaną wyżej rezerwację DHCP, aby przestało się to zdarzać.
- Spróbuj użyć nazwy hosta mDNS odtwarzacza zamiast adresu IP.
- Sprawdź, czy jednostka sterująca TapHome i odtwarzacz są w tej samej sieci / VLAN i czy nic nie blokuje między nimi portu 11000.
Przełącznik grupowania nigdy się nie włącza
Zmienna IP w urządzeniu Grupuj z odtwarzaczem wciąż zawiera symbol zastępczy 192.168.x.x albo adres, który nie należy do odtwarzacza BluOS. Ustaw ją na rzeczywisty adres odtwarzacza podrzędnego — zobacz konfigurację po imporcie powyżej.
Preset nic nie robi
Albo za danym slotem nie ma w tym odtwarzaczu żadnego presetu, albo użyto slotu 0. Otwórz aplikację BluOS Controller, sprawdź, które identyfikatory presetów odtwarzacz faktycznie posiada, i przypisz sloty TapHome do tych identyfikatorów. Presety trzeba najpierw utworzyć w aplikacji — szablon ich nie tworzy.
Następny / Poprzedni nic nie robią
Odtwarzacz nie gra ze swojej kolejki. Strumienie radiowe i wejścia fizyczne nie są oparte na kolejce, a przechodzenie naprzód i wstecz ich nie dotyczy. Uruchom odtwarzanie z playlisty, albumu lub kolejki, a przyciski znów zaczną działać.
Zmiany wprowadzone w aplikacji BluOS pojawiają się z opóźnieniem
Odtwarzanie losowe i powtarzanie są odczytywane z zapisanego stanu modułu, który odświeża się co 30 sekund. Głośność jest odpytywana częściej. Przyciski odtwarzania i Preset działają tylko do zapisu i w ogóle nie odzwierciedlają zmian zewnętrznych.
Odtwarzacz jest wyciszony, ale TapHome pokazuje poziom
Wyciszenie zapisuje się przy wyłączeniu ściemniacza głośności, ale stan wyciszenia nigdy nie jest odczytywany z powrotem. Odtwarzacz wyciszony z aplikacji BluOS Controller lub jego pilotem nadal pokazuje w TapHome poprzedni poziom ściemniacza. Wyłącz i ponownie włącz ściemniacz, aby zsynchronizować oba stany.
