Denon discovery ist eine kleine Hilfsvorlage für Denon-HEOS-Produkte. Sie durchsucht das Netzwerk nicht nach Geräten: Sie verbindet sich mit einem HEOS-Player unter der beim Import eingegebenen IP-Adresse, fragt beim HEOS CLI (Command Line Interface) die Liste der Player im HEOS-System ab und speichert die Player-ID (pid) des ersten Players dieser Liste. Die Player-Befehle des HEOS CLI (heos://player/...) sprechen einen Player über diese pid an.
Die Vorlage enthält ein Modul mit einer einzigen Variable, Denon player id. Lautstärke, Stummschaltung oder Wiedergabe steuert sie nicht.
Die Vorlage liest immer den ersten Eintrag der Player-Liste (
payload[0].pid). In einem HEOS-System mit mehreren Playern zeigt sie nur diese einepid— die HEOS-CLI-Spezifikation legt die Reihenfolge der Liste nicht fest, daher ist der erste Eintrag nicht unbedingt der Lautsprecher, dessen IP-Adresse eingegeben wurde.
Die vollständige Steuerung eines HEOS-Players sowie die Auswahl eines Players aus der Liste über seinen Index (Service-Aktionen Get Players und Set Player Id) bietet die Hauptvorlage Denon HEOS. Denon discovery liest nur die pid.
Vorbereitung des HEOS-Geräts
Das HEOS CLI ist Teil der HEOS-Firmware; am Gerät muss nichts aktiviert werden, zusätzliche Hardware ist nicht nötig. Die Vorlage basiert auf HEOS CLI v1.17, was der HEOS-Version 2.41.140 entspricht.
- Installieren Sie die HEOS App (Android / iOS) auf einem Smartphone oder Tablet im selben Netzwerk und schließen Sie die Ersteinrichtung des HEOS-Geräts ab, sodass es mit WLAN oder Ethernet verbunden ist. Bevor diese Einrichtung abgeschlossen ist, steht das CLI nicht zur Verfügung.
- Ermitteln Sie die IP-Adresse des HEOS-Geräts — in der HEOS-App unter Settings → My Devices → About oder in der DHCP-Client-Liste des Routers. HEOS-Produkte melden sich im LAN außerdem über UPnP SSDP an (Suchziel
urn:schemas-denon-com:device:ACT-Denon:1). - Reservieren Sie diese Adresse im Router (DHCP-Reservierung) oder legen Sie eine statische IP fest, damit sie sich nach einer DHCP-Erneuerung nicht ändert.
- Stellen Sie sicher, dass die Steuereinheit TapHome Core das HEOS-Gerät über TCP-Port 1255 erreicht — im selben LAN oder in einem gerouteten Subnetz, ohne Firewall, die den Port blockiert.
Ein HEOS-Gerät genügt: Über die Verbindung zu einem einzigen HEOS-Lautsprecher sind alle HEOS-Player im Netzwerk erreichbar, daher liefert get_players sie alle.
Das HEOS CLI hat keine eigene Anmeldung — jedes Gerät, das TCP-Port 1255 erreicht, kann Befehle an das HEOS-System senden. Betreiben Sie die HEOS-Produkte in einem vertrauenswürdigen Netzwerksegment.
Konfiguration
Geben Sie beim Import in die Packet-Parser-Schnittstelle der TapHome-App die IP-Adresse des HEOS-Geräts im Parameter IP-Adresse ein; Port und Nachrichten-Framing sind in der Vorlage bereits festgelegt.
| Einstellung | Wert |
|---|---|
| Transport | TCP, Port 1255 |
| Nachrichtentrennzeichen | \r\n für Befehle und Antworten |
| Verbindung | wird für jedes Auslesen geöffnet, nicht offen gehalten (StayConnected aus) |
| Ausleseintervall | 15 s |
| Gesendeter Befehl | heos://player/get_players |
| Gespeicherter Wert | payload[0].pid aus der JSON-Antwort |
Die Antwort auf get_players ist ein JSON-Objekt mit einem heos-Header (command, result, message) und einem payload-Array mit einem Eintrag pro Player. Jeder Eintrag enthält name, pid, model, version und network (wired oder wifi), dazu lineout und je nach Gerät gid (nur wenn der Player Teil einer Gruppe ist), control und serial. Die Vorlage übernimmt nur die pid des ersten Eintrags.
Gerätefunktionen
Denon player id
Denon player id ist eine Variable, die die HEOS-Player-ID aus dem ersten Eintrag der get_players-Antwort enthält. Sie wird alle 15 Sekunden aktualisiert und folgt so dem HEOS-System, wenn sich die Liste ändert. Die Vorlage hat für diese Variable kein Schreibskript — sie ist nur zum Lesen gedacht.
Der Wert lässt sich überall verwenden, wo eine HEOS-pid benötigt wird, zum Beispiel wenn ein heos://player/*-Befehl aus einem anderen Packet-Parser-Modul gesendet wird. Wenn Sie die vollständige Vorlage Denon HEOS verwenden, brauchen Sie diese Hilfsvorlage nicht — deren Service-Aktionen Get Players und Set Player Id listen die Player bereits auf und binden das Modul an den gewählten Player.
Fehlerbehebung
Denon player id bleibt nach dem Import leer
Ein HEOS-Lautsprecher betreibt das CLI im Ruhemodus und startet es erst, wenn die erste TCP-Verbindung eintrifft. Unmittelbar danach kann das CLI Player-Befehle möglicherweise noch nicht beantworten, weil es zuerst alle Player im Netzwerk erkennen muss. Warten Sie einige Auslesezyklen ab (je 15 s). Da diese Vorlage die Verbindung nach jedem Auslesen schließt, kann das CLI zwischen den Auslesungen in den Ruhemodus zurückfallen; auch die ersten Auslesungen nach einer längeren Pause können daher leer bleiben.
Erscheint der Wert überhaupt nicht, prüfen Sie Folgendes:
- Die IP-Adresse im Modul gehört weiterhin zum HEOS-Gerät (DHCP-Reservierung oder statische IP).
- TCP-Port 1255 ist von der Steuereinheit TapHome Core aus erreichbar — im selben LAN, ohne Firewall dazwischen.
- Das HEOS-Gerät ist in der HEOS-App vollständig online.
Der Wert gehört zu einem anderen Lautsprecher
Die Vorlage speichert die pid des ersten Players der Liste, und das ist nicht unbedingt der Lautsprecher unter der eingegebenen IP-Adresse. Bei mehreren HEOS-Playern verwenden Sie die Hauptvorlage Denon HEOS: Ihre Service-Aktion Get Players zeigt die gesamte Liste (Name, pid, Modell), und Set Player Id wählt den Player über seinen 0-basierten Index aus.
Die pid hat sich geändert
HEOS vergibt die pid-Werte an die Player im Netzwerk. Wurde ein Lautsprecher auf Werkseinstellungen zurückgesetzt oder ausgetauscht, kann er eine neue pid erhalten; Denon player id zeigt den neuen Wert bei der nächsten Auslesung, ein an anderer Stelle übernommener Wert muss jedoch manuell aktualisiert werden.
Denon