---
title: "Denon discovery — HEOS player ID"
description: "Liest die Player-ID (pid) des ersten Players eines Denon-HEOS-Systems über HEOS CLI auf TCP-Port 1255. Eine Variable; HEOS-IP beim Import eingeben."
url: "https://taphome.com/de/compatibility/denon-discovery/"
language: de
lastmod: 2026-11-10
generator: hugo
ai:
  topics: ["tcp","audio","packet-parser","heos-cli","multi-room"]
  questions: ["Wie ermittelt man in TapHome die HEOS-Player-ID (pid) eines Denon-Lautsprechers?","Was liest die TapHome-Vorlage Denon discovery aus?","Wie verbindet man einen Denon-HEOS-Player über TCP-Port 1255 mit TapHome?","Warum zeigt Denon discovery nur einen Player, obwohl mehrere HEOS-Lautsprecher vorhanden sind?","Warum ist der Wert Denon player id nach dem Import der Vorlage leer?","Was ist der Unterschied zwischen den Vorlagen Denon discovery und Denon HEOS?"]
---

# Denon discovery — HEOS player ID

Kommunikation: Packet Parser → TCP

## Integrationsanleitung

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.

> [!WARNING]
> Die Vorlage liest immer den ersten Eintrag der Player-Liste (`payload[0].pid`). In einem HEOS-System mit mehreren Playern zeigt sie nur diese eine `pid` — 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](https://taphome.com/de/compatibility/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.

1. 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.
2. 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`).
3. Reservieren Sie diese Adresse im Router (DHCP-Reservierung) oder legen Sie eine statische IP fest, damit sie sich nach einer DHCP-Erneuerung nicht ändert.
4. 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.

> [!WARNING]
> 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](https://taphome.com/de/compatibility/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:

1. Die IP-Adresse im Modul gehört weiterhin zum HEOS-Gerät (DHCP-Reservierung oder statische IP).
2. TCP-Port 1255 ist von der Steuereinheit TapHome Core aus erreichbar — im selben LAN, ohne Firewall dazwischen.
3. 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](https://taphome.com/de/compatibility/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.

## Verfügbare Geräte 1

Diese Geräte erscheinen nach dem Import in TapHome.

Denon discovery Modul

Denon player id Variable

Lesen (Modul)

```taphome
SENDDATA("heos://player/get_players")
```

Listener

```taphome
VAR responseJson := TOSTRING(RECEIVEDBYTES);
Va := PARSEJSON(responseJson,"$.payload[0].pid", 1);
```

**Verbindung:** Packet Parser → TCP

## Importparameter

Diese Werte geben Sie beim Import des XML ein.

| In der App abgefragt | Standard      |
|----------------------|---------------|
| IP-Adresse           | `192.168.0.1` |

## Verwandte Dokumentation

- [Packet-Parser-Integration](https://taphome.com/de/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/de/docs/integration/packet-parser/)
- [Packet-Parser-Funktionen](https://taphome.com/de/docs/script/packet-parser/)
- [Parsing-Funktionen](https://taphome.com/de/docs/script/parsing-functions/)

