
Sonos ist ein Premium-Wireless-Audiosystem für Multi-Room-Wiedergabe. TapHome kommuniziert mit Sonos-Lautsprechern über das lokale Netzwerk mittels UPnP/SOAP auf Port 1400 — keine Cloud-Verbindung oder Authentifizierung erforderlich. Die Vorlage ist universell und funktioniert mit allen Sonos-Lautsprechermodellen (Era 100, Era 300, One, Five, Beam, Arc, Ray, Move, Roam, Sub und weitere).
Die Vorlage bietet vollständige Wiedergabesteuerung (Play, Pause, Stop, Überspringen), Lautstärke- und Stummschaltungsverwaltung, Wiedergabemodus-Auswahl, Sleep-Timer und bis zu 10 Voreinstellungen für Playlists und Radiosender. 14 Service-Attribute zeigen Geräteinformationen und den aktuell gespielten Titel an.
Konfiguration
Der Sonos-Lautsprecher verbindet sich über WLAN. Geben Sie beim Import der TapHome-Vorlage die IP-Adresse des Lautsprechers ein (Standard-Platzhalter 192.168.0.1). Der Lautsprecher muss sich im selben Netzwerk wie die TapHome CCU befinden.
Sonos-Lautsprecher unterstützen mDNS-Discovery mit dem Hostnamen-Muster
Sonos-{MAC}.local(MAC-Adresse ohne Doppelpunkte). Die Verwendung eines Hostnamens verhindert Verbindungsprobleme, wenn sich die IP-Adresse des Lautsprechers nach einer DHCP-Erneuerung ändert.
Öffnen Sie die TapHome-App und verwenden Sie den IP Scanner (Einstellungen → Netzwerk → Scannen). Der Scanner erkennt Geräte in Ihrem Netzwerk und zeigt sowohl die IP-Adresse als auch den mDNS-Hostnamen an (z. B. Sonos-B8E9375A1C02.local). Verwenden Sie den Hostnamen anstelle der IP-Adresse für eine zuverlässigere Verbindung.
Gerätefunktionen
Lautstärkeregelung
Die Vorlage stellt die Lautstärke als Dimmer dar. Die Lautstärke wird über die RenderingControl-SOAP-Aktion GetVolume (Bereich 0–100) gelesen und durch 100 geteilt, um den Dimmerwert 0,0–1,0 zu erzeugen. Das Schreiben einer neuen Lautstärke sendet SetVolume mit dem gewünschten Pegel. Die Lautstärke wird alle 2,5 Sekunden abgefragt.
Zwei zusätzliche Tasten — Volume Up und Volume Down — ermöglichen eine relative Lautstärkeanpassung. Diese werden durch CCU-seitige Logik verarbeitet, nicht durch direkte SOAP-Aktionen, was die Integration mit physischen Wandschaltern oder Smart Rules ermöglicht.
Stummschaltung
Die Stummschaltung ist als Schalter dargestellt. Der Zustand wird über GetMute gelesen und über SetMute auf dem Master-Kanal geschrieben. Bei aktivierter Stummschaltung wird die Audioausgabe ohne Änderung des Lautstärkepegels stummgeschaltet.
Wiedergabesteuerung
Sechs Tasten steuern den Wiedergabetransport:
- Play — sendet AVTransport
Play(Speed=1) - Pause — sendet AVTransport
Pause - Stop — sendet AVTransport
Stop - Next — sendet AVTransport
Nextzum Überspringen zum nächsten Titel - Previous — sendet AVTransport
Previouszum Zurückspringen zum vorherigen Titel - Play/Pause — wechselt zwischen Play und Pause basierend auf dem aktuellen Transportzustand (verarbeitet durch CCU-seitige Logik)
Wiedergabestatus
Ein schreibgeschützter Binärsensor meldet, ob der Lautsprecher gerade wiedergibt. Die Vorlage liest GetTransportInfo und ordnet Transportzustände zu: PLAYING und TRANSITIONING werden auf 1 (Wiedergabe) gemappt, während STOPPED, NO_MEDIA_PRESENT und PAUSED_PLAYBACK auf 0 (keine Wiedergabe) gemappt werden. Abfrage alle 2,5 Sekunden.
Wiedergabemodus
Der Wiedergabemodus ist ein Mehrwertschalter mit sechs Modi:
| Wert | Modus | Beschreibung |
|---|---|---|
| 0 | Normal | Sequenzielle Wiedergabe |
| 1 | Repeat All | Gesamte Warteschlange wiederholen |
| 2 | Repeat One | Aktuellen Titel wiederholen |
| 3 | Shuffle No Repeat | Zufallswiedergabe ohne Wiederholung |
| 4 | Shuffle | Zufallswiedergabe mit Wiederholung |
| 5 | Shuffle Repeat One | Zufallswiedergabe, aktuellen Titel wiederholen |
Die Werte 6–9 sind ungenutzte Platzhalter in der Mehrwertschalter-Konfiguration und haben keine Funktion.
Sleep-Timer
Zwei Tasten konfigurieren Sleep-Timer über die AVTransport-SOAP-Aktion ConfigureSleepTimer:
- Sleep in 1 hour — setzt den Timer auf
01:00:00 - Sleep in 15 minutes — setzt den Timer auf
00:15:00
Nach Ablauf des Timers stoppt der Lautsprecher die Wiedergabe automatisch.
Playlist- und Radio-Voreinstellungen
Die Vorlage bietet 10 Voreinstellungstasten — 5 für Playlists und 5 für Radiosender. Jede Taste hat eine Gerätevariable, die der Benutzer mit dem Namen der gewünschten Playlist oder des Senders konfigurieren muss. Das Skript übernimmt die Suche, Warteschlangenverwaltung und Wiedergabe automatisch.
Playlists (Tasten 1–5): Jede Playlist-Taste verwendet eine playlist_name-Gerätevariable. Das Skript durchsucht die Sonos-Playlists (Gespeicherte Warteschlangen) über den ContentDirectory-Container SQ:, mit exaktem dc:title-Abgleich (Groß-/Kleinschreibung wird beachtet). Bei einer Übereinstimmung leert das Skript die aktuelle Warteschlange, reiht die Playlist ein und startet die Wiedergabe.
Konfiguration einer Playlist-Taste:
- Öffnen Sie die TapHome-App → navigieren Sie zum Playlist-Gerät → Gerätevariablen
- Setzen Sie
playlist_nameauf den exakten Namen einer Sonos-Playlist - Eine Sonos-Playlist erstellen: Sonos-App → Titel in die Warteschlange stellen → Warteschlange als Playlist speichern
Es werden nur Sonos-Playlists (Gespeicherte Warteschlangen) unterstützt. Playlists von Spotify, Apple Music oder anderen Streaming-Diensten können nicht direkt verwendet werden. Um Titel aus diesen Diensten zu verwenden, fügen Sie sie zuerst einer Sonos-Playlist hinzu.
Radiosender (Tasten 1–5): Jede Radio-Taste verwendet eine radio_name-Gerätevariable. Das Skript durchsucht die Sonos Favorites über den ContentDirectory-Container FV:2, mit exaktem dc:title-Abgleich (Groß-/Kleinschreibung wird beachtet) und Filterung nach dem Streaming-Radio-Protokoll (x-sonosapi-stream).
Konfiguration einer Radio-Taste:
- Öffnen Sie die TapHome-App → navigieren Sie zum Radio-Gerät → Gerätevariablen
- Setzen Sie
radio_nameauf den exakten Namen des Senders, wie er in den Sonos Favorites angezeigt wird - Einen Sender zu den Favorites hinzufügen: Sonos-App → TuneIn oder iHeartRadio durchsuchen → auf das Herz-/Sternsymbol tippen
Der Name muss exakt übereinstimmen (Groß-/Kleinschreibung wird beachtet). Öffnen Sie die Sonos-App, gehen Sie zu My Sonos → Favorites und kopieren Sie den Sendernamen Zeichen für Zeichen. Es werden nur Streaming-Radiosender unterstützt — On-Demand-Audioinhalte aus den Favorites funktionieren nicht.
Service-Diagnostik
Die Vorlage zeigt 14 Service-Attribute aus der XML-Gerätebeschreibung (/xml/device_description.xml) an:
- Geräteinformationen — Modellname, Modell-URL, Seriennummer, MAC-Adresse, Hostname, UDN (eindeutiger Gerätename)
- Software — Softwareversion, Softwaregeneration, Hardwarerevision, API-Version, minimale API-Version
- Sonos-Konfiguration — Raumname, Anzeigename
- Aktueller Titel — aktueller Titel (Titel, Interpret, Album extrahiert aus DIDL-Lite-Metadaten über
GetPositionInfo)
Das Attribut für den aktuellen Titel dekodiert die XML-kodierten TrackMetaData und gibt einen mehrzeiligen String mit Titel, Interpret und Albuminformationen zurück. Wenn die Metadaten nicht verfügbar sind (z. B. Line-in-Eingang), wird “Not supported” zurückgegeben.
Weitere Funktionen
Die Sonos UPnP-API bietet 16 Dienste mit Funktionen über die aktuelle Vorlagenimplementierung hinaus. Der RenderingControl-Dienst unterstützt Bass-, Höhen- und Lautstärkeanpassungen sowie den Nachtmodus bei Soundbar-Modellen. Der AVTransport-Dienst bietet Crossfade-Steuerung, Suche nach Zeit oder Titelnummer und vollständige Warteschlangenverwaltung (Titel hinzufügen, entfernen, neu ordnen). Multi-Room-Gruppenverwaltung, Alarmplanung und Equalizer-Einstellungen für Surround-/Subwoofer-Konfigurationen sind ebenfalls verfügbar. Tragbare Modelle (Move, Roam) zeigen den Batteriestatus an. Diese Funktionen können in einem zukünftigen Vorlagen-Update hinzugefügt werden.
Fehlerbehebung
Lautsprecher antwortet nicht
- Überprüfen Sie, ob der Sonos-Lautsprecher eingeschaltet und mit dem WLAN verbunden ist
- Versuchen Sie, den mDNS-Hostnamen (
Sonos-{MAC}.local) anstelle der IP-Adresse zu verwenden — die IP könnte sich nach einer DHCP-Erneuerung geändert haben - Öffnen Sie
http://{speaker-ip}:1400/xml/device_description.xmlim Browser — wenn XML zurückgegeben wird, ist der Lautsprecher erreichbar - Prüfen Sie, ob TapHome CCU und der Sonos-Lautsprecher im selben Netzwerk / VLAN sind
Wiedergabebefehle schlagen mit Fehler 800 fehl
Sonos Multi-Room-Gruppen leiten alle Wiedergabebefehle über den Gruppenkoordinator. Wenn die Vorlage auf einen Lautsprecher zielt, der nicht der Koordinator ist, schlagen Transportbefehle (Play, Pause, Next, Previous) fehl. Stellen Sie sicher, dass die IP-Adresse in TapHome auf den Gruppenkoordinator zeigt, oder lösen Sie den Lautsprecher aus der Gruppe, um ihn zu einem eigenständigen Gerät zu machen.
Lautstärkeänderungen werden nicht übernommen
- Bestätigen Sie, dass die Vorlage abfragt — die Lautstärke wird alle 2,5 Sekunden über
GetVolumegelesen - Wenn ein anderer Controller (Sonos-App, Apple AirPlay) die Lautstärke geändert hat, übernimmt TapHome den neuen Wert beim nächsten Abfragezyklus
- Prüfen Sie, ob der Lautsprecher in einer Gruppe ist, in der die Lautstärke vom Gruppenkoordinator gesteuert wird
Sonos-Lautsprecher akzeptieren UPnP-Befehle nur von Geräten im selben Subnetz. Wenn sich die TapHome CCU in einem anderen VLAN befindet, stellen Sie sicher, dass Multicast-/UPnP-Verkehr zwischen den VLANs geroutet wird, oder platzieren Sie beide Geräte im selben Netzwerksegment.
