---
title: "Denon HEOS"
description: "Multiroom-Audio für Denon HEOS Lautsprecher und Verstärker über HEOS CLI auf TCP 1255 — Lautstärke, Mute, Transport, Wiedergabemodus, URL-Stream."
url: "https://taphome.com/de/compatibility/denon-heos/"
language: de
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["tcp","audio","packet-parser","multi-room","mdns","ssdp","heos-cli"]
  questions: ["Wie integriert man Denon HEOS Lautsprecher mit TapHome?","Was steuert das Denon HEOS TapHome-Template?","Wie verbindet man Denon HEOS über TCP mit TapHome?","Wie ermittelt man die HEOS PlayerId für TapHome?","Warum funktioniert die Play-URL-Aktion auf einem HEOS-Lautsprecher nicht?","Ist das HEOS-Template mit Denon AVR-Receivern kompatibel?","Welche Denon HEOS Modelle funktionieren mit TapHome?","Wie streamt man eine benutzerdefinierte URL an einen HEOS-Lautsprecher aus TapHome?"]
---

# Denon HEOS

Kommunikation: Packet Parser → TCP

- [Denon HEOS Produktseite](https://www.denon.com/en-us/category/wireless-speakers-multi-room-systems.html)

> Netzwerkadresse
> 
> TapHome erreicht dieses Gerät unter der beim Import eingegebenen Adresse. Geben Sie dem Gerät eine feste Adresse — eine IP-Reservierung im Router oder seinen mDNS-Namen, falls es einen unterstützt —, sonst funktioniert die Integration nicht mehr, sobald der Router die Adresse ändert.
> 
> [Netzwerkvorbereitung](https://taphome.com/de/docs/setup/network-preparation/)

## Integrationsanleitung

Denon HEOS ist eine drahtlose Multiroom-Audio-Plattform, die auf dem HEOS Command Line Interface (CLI) aufbaut — einem textbasierten Protokoll, das jeden Lautsprecher, jede Soundbar, jeden Verstärker und jede HEOS-fähige Komponente im lokalen Netzwerk über TCP-Port 1255 verfügbar macht. TapHome nutzt dieses Protokoll, um Wiedergabe, Lautstärke, Stummschaltung und Wiedergabemodus von HEOS-Lautsprechern ohne Cloud-Abhängigkeit zu steuern.

Das Template deckt die gesamte kabellose HEOS-Produktreihe (HEOS 1, 3, 5, 7), die Soundbars HEOS Bar und HomeCinema, die Komponenten HEOS Amp / Link / Drive, den HEOS Sub sowie die neueren Denon Home 150 / 250 / 350 Lautsprecher und die Sound Bar 550 ab. Ein einziges HEOS-Gerät im LAN genügt — das CLI macht jeden anderen HEOS-Player im Netzwerk über den Endpunkt `player/get_players` erreichbar.

> [!WARNING]
> Dieses Template ist ausschließlich für **HEOS-Lautsprecher, Soundbars und HEOS-fähige Verstärker** gedacht. Denon- und Marantz-AVR-Receiver (AVR-X-Serie, SR-Serie usw.) verwenden ein separates Denon/Marantz Telnet-Control-Protokoll auf Port 23 und sind mit diesem Template **nicht kompatibel** — auch nicht auf Modellen mit integriertem HEOS Built-in.

## Netzwerkverbindung

HEOS kommuniziert über TCP auf Port 1255 mit Klartext-ASCII-Befehlen, die mit `\r\n` abgeschlossen werden, und gibt JSON-Antworten zurück. Eine Authentifizierung ist nicht erforderlich — jedes Gerät im gleichen LAN kann sich mit dem CLI-Port verbinden.

Bevor TapHome das Gerät steuern kann, muss der HEOS-Lautsprecher über die HEOS-Mobile-App eingerichtet sein:

1. Installieren Sie die **HEOS App** (Android / iOS) auf einem Smartphone oder Tablet im gleichen WLAN-Netzwerk.
2. Verbinden Sie das HEOS-Gerät über den Einrichtungsassistenten der App mit WLAN oder Ethernet.
3. Stellen Sie sicher, dass die Firmware aktuell ist (das Template basiert auf HEOS CLI v1.17, entspricht Firmware 2.41.140 oder neuer).
4. Notieren Sie die IP-Adresse des Lautsprechers — zu finden in der HEOS-App unter **Settings → My Devices → About** oder in der DHCP-Client-Liste des Routers.

> [!WARNING]
> Das HEOS CLI hat keine Authentifizierung. Halten Sie den Lautsprecher in einem vertrauenswürdigen LAN-Segment — jedes Gerät mit Netzwerkzugriff auf Port 1255 kann die Wiedergabe steuern.

## Konfiguration

### Verbindungsdaten in TapHome

Geben Sie beim Template-Import in der TapHome-App die IP-Adresse des HEOS-Lautsprechers in den Parameter **IP Address** ein. Der TCP-Port 1255 und das Protokoll-Framing sind im Template bereits festgelegt. TapHome öffnet eine einzige persistente TCP-Verbindung und leitet HEOS-CLI-Befehle gebündelt darüber.

### PlayerId-Initialisierung

Jeder `heos://player/*`-Befehl benötigt eine **Player ID (pid)** — eine große vorzeichenbehaftete Ganzzahl, die HEOS jedem Lautsprecher im Netzwerk dynamisch zuweist. Das Template speichert sie in der benutzerdefinierten Variable `PlayerId`. Da HEOS die pid pro Netzwerk dynamisch generiert, enthält das Template einen Platzhalterwert (`-1857880384`), der bei der Ersteinrichtung ersetzt werden muss.

Das Modul bietet zwei Service-Aktionen zur Ermittlung und Zuweisung der pid. Führen Sie diese nach dem Template-Import einmalig aus:

1. **Get Players** — sendet `heos://player/get_players` und speichert die JSON-Antwort in der Modulvariable `PlayersResponse`. Das Service-Attribut **Players** des Moduls zeigt danach die Liste der im Netzwerk sichtbaren HEOS-Player mit Name, pid, Modell und IP-Adresse.
2. **Set Player Id** — nimmt einen `Index`-Parameter entgegen (0-basierte Position im Players-Array) und schreibt die zugehörige pid in die benutzerdefinierte Variable `PlayerId`. Wählen Sie den Index des Lautsprechers, den TapHome steuern soll — ein TapHome-Modul ist jeweils an einen HEOS-Player gebunden.

Nach diesen beiden Schritten arbeiten alle untergeordneten Geräte (Volume, Mute, Play, Pause usw.) mit dem gewählten Lautsprecher. Um einen zweiten HEOS-Player zu steuern, importieren Sie eine zweite Template-Instanz gegen dieselbe (oder eine andere) HEOS-IP und wiederholen den Set-Player-Id-Schritt mit einem anderen Index.

> [!TIP]
> Wenn das Players-Attribut beim ersten Aufruf leer ist, befindet sich das HEOS-CLI-Modul möglicherweise im Ruhezustand. Starten Sie Get Players nach einigen Sekunden erneut — HEOS bringt den CLI-Kern beim ersten Verbindungsaufbau hoch und benötigt einen Moment, bis alle Player aufgezählt sind.

> [!NOTE]
> Im TapHome-Template-Repository existiert eine separate Vorlage `Denon discovery.xml`, die ausschließlich die Player-ID-Abfrage als eigenständiges Modul ausführt. Sie wird nicht benötigt, wenn Sie diese Haupt-HEOS-Vorlage verwenden — Get Players und Set Player Id sind hier bereits eingebaut. Verwenden Sie die Discovery-Vorlage nur, wenn Sie ein schlankes, dediziertes Modul wünschen, das ausschließlich die `pid` bereitstellt, und Sie planen, den Wert manuell in eine andere HEOS-Vorlage einzutragen.

### Gerätevariablen

Drei untergeordnete Geräte verfügen nach dem Template-Import über konfigurierbare Variablen:

| Gerät | Variable | Standard | Hinweise |
|-------|----------|----------|----------|
| Play URL | `URL` | Pixabay-Türklingel MP3 | Beliebige direkte HTTP(S)-URL zu einem Audio-Stream oder einer Audiodatei |
| Volume Up / Volume Down | `Step` | 5 | Lautstärkeänderung pro Tastendruck; die HEOS-Spezifikation begrenzt den Bereich auf 1–10 |

Öffnen Sie in der TapHome-App das Detail jedes Geräts und setzen Sie diese Variablen auf die gewünschten Werte. URL-codierte Sonderzeichen in der Stream-URL (`&`, `=`, `%`) übernimmt das Template-Skript.

## Gerätefunktionen

Das Template stellt 12 untergeordnete Geräte bereit, die Wiedergabe, Lautstärke, Stummschaltung und URL-Streaming für einen HEOS-Player abdecken.

### Lautstärkesteuerung

Das Gerät **Volume** ist ein Dimmer, der `heos://player/get_volume` liest (Pegel 0–100) und auf den Dimmer-Bereich 0.0–1.0 skaliert (`Le := level / 100`). Beim Schreiben wird `heos://player/set_volume` mit `ROUND(Le * 100)` gesendet. Die Lautstärke wird alle 2,5 Sekunden gepollt — externe Lautstärkeänderungen aus der HEOS-App oder einem anderen Controller werden in TapHome im nächsten Zyklus übernommen.

**Volume Up** und **Volume Down** sind Taster, die `heos://player/volume_up` und `heos://player/volume_down` mit der konfigurierbaren Schrittweite `Step` senden. Praktisch zur Anbindung an physische Wandschalter oder Smart Rules.

### Mute

**Mute** ist ein Schalter, der `heos://player/get_mute` liest und `heos://player/set_mute` mit `state=on|off` schreibt. Bei Stummschaltung wird der Lautsprecher leise geschaltet, ohne den eigentlichen Lautstärkepegel zu verändern.

### Transport

Fünf Taster decken den grundlegenden Transport ab:

- **Play** — schreibt `heos://player/set_play_state?state=play`
- **Pause** — schreibt `heos://player/set_play_state?state=pause`
- **Stop** — schreibt `heos://player/set_play_state?state=stop`
- **Next Track** — schreibt `heos://player/play_next`
- **Previous Track** — schreibt `heos://player/play_previous`

Es handelt sich um reine Schreibaktionen — das Template pollt den aktuellen Wiedergabestatus nicht zurück, die Transport-Taster spiegeln daher nicht wider, ob der Lautsprecher tatsächlich abspielt.

### Wiedergabemodus

**Play Mode** ist ein Multi-Value-Schalter, der die HEOS-Flags `repeat` und `shuffle` in einen einzelnen 6-Wert-Enum kombiniert. Er wird über `heos://player/get_play_mode` und `heos://player/set_play_mode` gelesen und geschrieben:

| Wert | Modus |
|------|-------|
| 0 | Keine Wiederholung, keine Zufallswiedergabe |
| 1 | Alles wiederholen |
| 2 | Einzeltitel wiederholen |
| 3 | Zufall, keine Wiederholung |
| 4 | Zufall, alles wiederholen |
| 5 | Zufall, Einzeltitel wiederholen |

Das XML-Template reserviert in der Multi-Value-Konfiguration die Slots 6–9, diese sind jedoch ungenutzt — nur die Werte 0–5 sind erreichbare Zustände.

### QuickSelect-Presets

**Quick Select** ist ein reiner Schreib-Multi-Value-Schalter (1–9), der ein HEOS-QuickSelect-Preset über `heos://player/play_quickselect?id={1-9}` auslöst. Quick Selects werden direkt im Player abgelegt (typischerweise über einen gekoppelten Denon AVR oder HEOS Bar) und können einen voreingestellten Eingang, eine Quelle oder einen Sender speichern.

> [!NOTE]
> Quick Select ist in der HEOS-Spezifikation §4.2.24 als **AVR-only**-Befehl definiert. Er funktioniert auf HEOS Amp, HEOS Link, HEOS Bar und HEOS-fähigen AVR-/Receiver-Produkten, liefert jedoch auf eigenständigen kabellosen HEOS-Lautsprechern wie HEOS 1, 3, 5 und 7 einen Fehler zurück.

### Play URL (benutzerdefinierter Stream)

**Play URL** ist ein Taster, der eine beliebige HTTP(S)-Audio-URL über `heos://browse/play_stream?pid={PlayerId}&url={URL}` an den gewählten HEOS-Player streamt. Die Gerätevariable `URL` hält das Stream-Ziel — standardmäßig eine Pixabay-Türklingel-MP3 als Beispiel und wird typischerweise mit einem Internetradio-Stream, Benachrichtigungston oder einer beliebigen direkten Audio-URL überschrieben.

Sinnvolle Anwendungen: Türklingelbenachrichtigungen, Sprachdurchsagen von einem lokalen HTTP-Server, Wiedergabe einer festen Internetradio-URL ohne HEOS Favorites.

### Weitere Funktionen

Das HEOS-CLI-Protokoll stellt deutlich mehr Funktionen bereit, als das Template aktuell implementiert. Folgende Punkte lassen sich in einem künftigen Template-Update ergänzen:

- **Now-Playing-Metadaten** (`player/get_now_playing_media`) — aktueller Titel, Künstler, Album und Cover-URL als String-Attribute.
- **Wiedergabestatus-Feedback** (`player/get_play_state`) — Rücklesen von play / pause / stop, damit Transport-Taster den tatsächlichen Status widerspiegeln.
- **Toggle Mute** (`player/toggle_mute`) — einzelner Befehl zum Umschalten der Stummschaltung ohne vorheriges Lesen des Status.
- **Queue-Verwaltung** (`player/get_queue`, `play_queue`, `clear_queue`) — Durchsuchen und Manipulieren der aktuellen Wiedergabeliste.
- **Favoriten und Presets** (`browse/play_preset`) — Auslösen gespeicherter HEOS Favorites über die Preset-Nummer, einfacher als rohes Play URL für gespeicherte Sender.
- **Auswahl physischer Eingänge** (`browse/play_input`) — Umschalten auf AUX / Line-In an HEOS Amp-, Link- und AVR-Modellen.
- **Multiroom-Gruppierung** (`group/*`) — Erstellen, Auflösen und gesammelte Lautstärkeregelung von HEOS-Gruppen für synchrone Wiedergabe im gesamten Haus.
- **Firmware-Wartung** (`system/check_update`, `system/reboot`) — Auslösen von Firmware-Update-Prüfungen und Fern-Neustart.
- **Change Events** (`system/register_for_change_events`) — optionale Push-Benachrichtigungen für Lautstärke-, Status- und Now-Playing-Änderungen statt Polling.
- **HEOS-Konto-Anmeldung** (`system/sign_in`) — erforderlich für den Zugriff auf kostenpflichtige Streaming-Dienste (Tidal, Amazon Music, Deezer, eigene TuneIn-Sender) aus TapHome.

## Fehlerbehebung

### Players-Attribut bleibt nach Get Players leer

HEOS betreibt sein CLI-Modul im Ruhezustand und startet den Kern beim ersten Socket-Verbindungsaufbau, was einige Sekunden dauern kann. Warten Sie 5–10 Sekunden und führen Sie **Get Players** erneut aus. Ist es weiterhin leer, überprüfen Sie:

1. Die TapHome CCU kann die IP des Lautsprechers auf TCP-Port 1255 erreichen (gleiches LAN / Subnetz, keine Firewall dazwischen).
2. Das HEOS-Gerät ist in der HEOS-Mobile-App vollständig online — das CLI ist erst verfügbar, nachdem die erste WLAN-Einrichtung abgeschlossen ist.
3. Die IP-Adresse im Modul entspricht weiterhin dem Lautsprecher — DHCP-Erneuerungen können sie ändern. Verwenden Sie eine DHCP-Reservierung oder eine statische IP.

### Alle Gerätebefehle liefern "ID Not Valid"

Die benutzerdefinierte Variable `PlayerId` enthält entweder noch den Template-Default (`-1857880384`) oder verweist auf eine pid, die nicht mehr existiert (z. B. nach einem Werksreset). Führen Sie **Get Players** und anschließend **Set Player Id** mit dem korrekten Index erneut aus.

### Play-URL-Aktion bleibt wirkungslos oder liefert einen Fehler

Das Play-URL-Skript im aktuellen Template hat eine bekannte Eigenart: Es referenziert `playerId` (Kleinschreibung) statt der benutzerdefinierten Variable `PlayerId`. Bleibt die Aktion wirkungslos, öffnen Sie in der TapHome-App das Skript des Play-URL-Geräts und korrigieren Sie den Variablennamen zu `PlayerId`. Nach dieser Korrektur sendet die Aktion `heos://browse/play_stream` korrekt. Stellen Sie außerdem sicher, dass die Stream-URL vom HEOS-Lautsprecher aus erreichbar ist und ein unterstütztes Audioformat verwendet (MP3, AAC, WAV — HLS-Streams werden nicht zuverlässig akzeptiert).

### Quick Select liefert einen Fehler

Quick Select funktioniert nur auf HEOS-fähigen AVR-, Verstärker- und Soundbar-Produkten. Verwenden Sie auf kabellosen HEOS-Lautsprechern (HEOS 1, 3, 5, 7 und Denon Home Lautsprecher ohne Soundbar-Funktionen) stattdessen Play URL oder Favoriten-Streams.

### Änderungen in der HEOS-App sind in TapHome nicht sichtbar

Das Template pollt den Status alle 2,5 Sekunden für Volume, Mute und Play Mode. Der Transport-Status (Play / Pause / Stop) wird **nicht** gepollt — das sind reine Taster. Hat ein externer Controller den Wiedergabemodus geändert oder ein neues Streaming-Konto gekoppelt, erzwingt das Trennen und erneute Verbinden des TapHome-Moduls mit dem Lautsprecher eine neue CLI-Sitzung.

### Mehrere HEOS-Player — wie steuert man mehr als einen?

Ein TapHome-Modul steuert genau einen HEOS-Player (eine pid). Für einen zweiten Lautsprecher importieren Sie eine zweite Instanz des Denon-HEOS-Templates. Die IP-Adresse kann auf dasselbe HEOS-Gerät zeigen — das CLI eines Lautsprechers erreicht jeden anderen HEOS-Player im Netzwerk — und die Aktion **Set Player Id** mit einem anderen Index bindet das zweite Modul an einen anderen Lautsprecher.

## Verfügbare Geräte 12

Diese Geräte erscheinen nach dem Import in TapHome.

Denon HEOS Lautsprecher Modul

Serviceattribute

|        |                                                                                                                                                                                    |
|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Player | JSON-Array der im Netzwerk erreichbaren HEOS-Player (Name, pid, Modell, IP, Version). Wird durch die Aktion Get Players gefüllt und dient zur Auswahl des Index für Set Player Id. |

Serviceaktionen

|                  |                                                                                                                                                                                                                                                                    |
|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Player abrufen   | Erkennt alle HEOS-Player im Netzwerk durch Senden von heos://player/get\_players. Die Antwort wird im Attribut Player zwischengespeichert und muss vor Set Player Id ausgeführt werden.                                                                            |
| Player Id setzen | Bindet dieses TapHome-Modul an einen HEOS-Player. Übernimmt den 0-basierten Index aus der Player-Liste und schreibt die zugehörige pid in die benutzerdefinierte Variable PlayerId. Erforderlich nach Get Players, damit die untergeordneten Geräte funktionieren. |

Benutzerdefinierte Variablen

Schreiben (Modul)

```taphome
# 1. Run Get Players action
					# 2. Save and go back
					# 3. Review the Players attribute in the top of page
					# 4. Run Set Player Id with index of your choice
```

Listener

```taphome
VAR response := TOSTRING(RECEIVEDBYTES);
					VAR command := PARSEJSON(response, "heos.command", 1);
					VAR result := PARSEJSON(response, "heos.result", 1);
					VAR message := PARSEJSON(response, "heos.message", 1);

					IF (result = "fail" AND INDEXOF(message, "ID Not Valid") >= 0)
					ADDERROR("PlayerId is not set properly.");
					END

					IF (command = "player/get_players")
					IF (result = "fail")
					ADDERROR("Error: " + message);
					ELSE
					PlayersResponse := response;
					END
					END
```

Serviceattribute

Players

```taphome
PARSEJSON(PlayersResponse, "payload");
```

Serviceaktionen

Get Players

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

Set Player Id

Parameter: Index (0–20 Index)

```taphome
PlayerId := PARSEJSON(PlayersResponse,"payload[" + Index + "].pid");
```

Lautsprecher stummschalten Schalter Lesen und Schreiben

Schaltet die Audioausgabe des gewählten HEOS-Players stumm oder wieder laut, ohne den zugrunde liegenden Lautstärkepegel zu verändern.

boolean switch

Werte / Zustände: Muted · Unmuted

Schaltzustand lesen

```taphome
SENDDATA("heos://player/get_mute?pid=" + PlayerId);
```

Schaltzustand schreiben

```taphome
VAR mute := SWITCH(St, 0, "off", 1, "on", "off");
							SENDDATA("heos://player/set_mute?pid=" + PlayerId + "&state=" + mute);
```

Listener

```taphome
VAR responseJson := TOSTRING(RECEIVEDBYTES);

							IF(PARSEJSON(responseJson, "heos.command", 1) = "player/get_mute")
							VAR mute := PARSETEXT(responseJson, "state=");
							St := SWITCH(mute, "off", 0, "on", 1, 0);
							END
```

Nächster Titel Taster Lesen und Schreiben

button push

Tastenstatus schreiben

```taphome
SENDDATA("heos://player/play_next?pid=" + PlayerId);
```

Pause Taster Lesen und Schreiben

button push

Tastenstatus schreiben

```taphome
SENDDATA("heos://player/set_play_state?pid=" + PlayerId + "&state=pause")
```

Wiedergabe Taster Lesen und Schreiben

button push

Tastenstatus schreiben

```taphome
SENDDATA("heos://player/set_play_state?pid=" + PlayerId + "&state=play");
```

Wiedergabemodus Mehrwertschalter Lesen und Schreiben

Kombinierter Wiederhol- und Zufallswiedergabestatus als 6-Werte-Enum — 0 keine Wiederholung, 1 alles wiederholen, 2 Einzeltitel wiederholen, 3 Zufall, 4 Zufall + alles wiederholen, 5 Zufall + Einzeltitel wiederholen.

enum multi-value

Werte / Zustände: No repeat · Repeat all · Repeat 1 · Shuffle, no repeat · Shuffle, repeat all · Shuffle, repeat one

Schaltzustand lesen

```taphome
SENDDATA("heos://player/get_play_mode?pid=" + PlayerId);
```

Schaltzustand schreiben

```taphome
VAR repeat := SWITCH( IF(Mu > 2, Mu - 3, Mu), 0, "off", 1, "on_all", 2, "on_one", "off");
							VAR shuffle := IF(Mu > 2, "on", "off");
							SENDDATA("heos://player/set_play_mode?pid=" + PlayerId + "&repeat=" + repeat + "&shuffle=" + shuffle);
```

Listener

```taphome
VAR responseJson := TOSTRING(RECEIVEDBYTES);
							VAR command := PARSEJSON(responseJson, "heos.command", 1);
							VAR result := PARSEJSON(responseJson, "heos.result", 1);

							IF (command = "player/get_play_mode")
							IF (result = "fail")
							VAR errorMessage := PARSEJSON(responseJson, "heos.message", 1);
							ADDERROR("Error: " + errorMessage);
							ELSE
							VAR repeat := PARSETEXT(responseJson, "repeat=", "&");
							VAR shuffle := PARSETEXT(responseJson, "shuffle=");
							Mu := SWITCH(repeat, "off", 0, "on_all", 1, "on_one", 2, 0) + SWITCH(shuffle, "off", 0, "on", 3, 0);
							END
							END
```

URL wiedergeben Taster Lesen und Schreiben

Streamt eine beliebige HTTP(S)-Audio-URL an den HEOS-Player (Türklingeltöne, Internetradio, Sprachdurchsagen). Die URL wird pro Gerät über die benutzerdefinierte Variable URL konfiguriert.

button push

Variable: `URL`

Tastenstatus schreiben

```taphome
SENDDATA("heos://browse/play_stream?pid=" + playerId + "&url=" + URL);
```

Listener

```taphome
VAR response := TOSTRING(RECEIVEDBYTES);
							VAR command := PARSEJSON(response, "heos.command", 1);
							VAR result := PARSEJSON(response, "heos.result", 1);
							VAR message := PARSEJSON(response, "heos.message", 1);

							IF (command = "browse/play_stream")
							IF (result = "fail")
							ADDERROR("Error: " + message);
							ELSE
							VAR success := response;
							END
							END
```

Vorheriger Titel Taster Lesen und Schreiben

button push

Tastenstatus schreiben

```taphome
SENDDATA("heos://player/play_previous?pid=" + PlayerId);
```

Quick Select Mehrwertschalter Lesen und Schreiben

Löst eines der auf dem Player gespeicherten HEOS-QuickSelect-Presets 1–9 aus. Nur AVR / HEOS Bar / HEOS Amp — auf eigenständigen kabellosen HEOS-Lautsprechern nicht unterstützt.

enum multi-value

Schaltzustand schreiben

```taphome
IF(Mu != 0)
							SENDDATA("heos://player/play_quickselect?pid=" + PlayerId + "&id=" + Mu);
							END

							# To make this work like a switch, create a following script.
							#
							# IF(Mu != 0)
							#   SLEEP(100);
							#   Mu := 0;
							# END
```

Stop Taster Lesen und Schreiben

button push

Tastenstatus schreiben

```taphome
SENDDATA("heos://player/set_play_state?pid=" + PlayerId + "&state=stop")
```

Lautstärke Dimmer Lesen und Schreiben

Dimmer-Steuerung der HEOS-Player-Lautstärke. Der HEOS-Pegel 0–100 wird auf den Dimmer-Bereich 0.0–1.0 abgebildet und alle 2,5 Sekunden gepollt.

numeric Einheit: % dimmer

Level lesen

```taphome
SENDDATA("heos://player/get_volume?pid=" + PlayerId)
```

Level schreiben

```taphome
SENDDATA("heos://player/set_volume?pid=" + PlayerId + "&level=" + ROUND(Le*100))
```

Listener

```taphome
VAR responseJson := TOSTRING(RECEIVEDBYTES);
							VAR command := PARSEJSON(responseJson, "heos.command", 1);
							VAR result := PARSEJSON(responseJson, "heos.result", 1);

							IF (command = "player/get_volume")
							IF (result = "fail")
							VAR errorMessage := PARSEJSON(responseJson, "heos.message", 1);
							ADDERROR("Error: " + errorMessage);
							ELSE
							Le := PARSETEXT(responseJson, "level=") / 100.0;
							END
							END
```

Lautstärke verringern Taster Lesen und Schreiben

Verringert die Lautstärke um die konfigurierte Schrittweite Step (Standard 5, HEOS erlaubt 1–10) über den Befehl heos://player/volume\_down.

button push

Variable: `Step`

Tastenstatus schreiben

```taphome
SENDDATA("heos://player/volume_down?pid=" + PlayerId + "&step=" + Step);
```

Lautstärke erhöhen Taster Lesen und Schreiben

Erhöht die Lautstärke um die konfigurierte Schrittweite Step (Standard 5, HEOS erlaubt 1–10) über den Befehl heos://player/volume\_up.

button push

Variable: `Step`

Tastenstatus schreiben

```taphome
SENDDATA("heos://player/volume_up?pid=" + PlayerId + "&step=" + Step);
```

**Verbindung:** Packet Parser → TCP • Hostname: `HEOS-{model}.local`

Mögliche Verbesserungen (14)

- Now Playing Metadata — Current track artist, album, title, artwork URL, media\_id — would require string attributes and a listener to cache the response
- Play State (read) — Reads play|pause|stop back from the player. Template only writes play state (Play/Pause/Stop buttons) without feedback
- Toggle Mute — Single-command mute toggle without reading current state; could be a second push-button
- Check Firmware Update — Trigger firmware update check — useful as maintenance action
- Heart Beat / Connection Health — Periodic heart\_beat command for connection liveness; could map to a module-level online/offline sensor
- Reboot Speaker — Remote reboot of the HEOS device — natural service action
- Play Queue — Full queue management (get, play item, remove, save as playlist, clear, move). Template has no queue exposure
- Music Sources / Browse — Browse and search streaming services (TuneIn, local library, favorites, playlists). Not exposed in template
- Favorites / Preset Stations — Play a favorite station by preset number 1–N; simpler than Play URL for saved stations
- Input Source (AUX / Line-In) — Switch to a physical input (inputs/aux\_in\_1, inputs/line\_in\_1, etc.) — only applicable to AVR/Amp/Link models
- Group / Multi-Room Control — Create/destroy groups, group volume, group mute — enables multi-room synchronized playback across HEOS speakers. Not exposed in template
- Player Info (name, model, version, IP) — Static metadata about the player; useful for diagnostics
- Change Events (unsolicited push) — Register for change events via system/register\_for\_change\_events and receive push updates (volume, state, now playing, queue). Template relies on polling only
- HEOS Account Sign In / Out — Required for access to paid streaming services and cloud favorites; no hooks in template

## Importparameter

Diese Werte geben Sie beim Import des XML ein.

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

## Quellen

- HEOS CLI Protocol Specification v1.17
  
  [rn.dmglobal.com](https://rn.dmglobal.com/usmodel/HEOS_CLI_ProtocolSpecification-Version-1.17.pdf) 2026-04-16
  
  [PDF](https://taphome.com/compatibility/devices/denon-heos/manufacturer/heos-cli-protocol-v1.17.pdf)
- Home Assistant — Denon HEOS integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/heos/) 2026-04-16

Herstellerdokumente sind © ihrer jeweiligen Eigentümer. Sie werden so bereitgestellt, wie der Hersteller sie veröffentlicht hat, nur zur Information.

## 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/)

