SONOS (lokal)
Mit diesem Funktionsbaustein können
SONOS Lautsprecher direkt über das Netzwerk gesteuert werden. Die
Steuerung erfolgt lokal über das Sonos-eigene Netzwerkprotokoll
(UPnP) — es wird keine Zusatzsoftware und keine
Cloud-Verbindung benötigt.
Die Lautsprecher werden automatisch im Netzwerk gesucht. Die Zonen
werden über den Raumnamen angesprochen (exakt wie in der Sonos
App). Sind Lautsprecher zu einer Gruppe zusammengefasst, wirken
Wiedergabe-Funktionen (Play, Pause, Next, ...) auf die ganze
Gruppe, Lautstärke und Mute auf den einzelnen Lautsprecher.
Werden in der Sonos App Namen von Zonen geändert oder Gruppen
umgebaut, wird das automatisch übernommen (Aktualisierung ca. alle
5 Minuten, bei einem fehlgeschlagenen Kommando sofort). Ein
Neustart der Steuerung wirkt ebenfalls sofort.
Für die Funktion Text to Speech wird ein externer Dienst (Google)
verwendet, der derzeit noch kostenlos ist. Sollte sich das in
Zukunft ändern, muss ein anderer Dienst verwendet werden. Darauf
haben wir keinen Einfluss und diese Funktion kann daher nicht
garantiert werden. Einmal erzeugte Ansagen werden lokal
gespeichert und benötigen beim nächsten Aufruf kein Internet mehr.
|
TR
|
Trigger
|
Trigger zur Ausführung
|
ER
|
Fehler
|
Fehler des letzten Kommandos: 1 = Kommando konnte
nicht ausgeführt werden (Zone nicht gefunden, Lautsprecher nicht
erreichbar, Text to Speech fehlgeschlagen), 0 = letztes Kommando
erfolgreich. |
|
Name Zone
|
Name der Zone. Der Name muss exakt so eingegeben
werden wie an der SONOS App. |
|
Funktion
|
Auszuführende Funktion
- Play
- Pause
- Play/Pause
- Mute
- Unmute
- Next
- Previous
- Volume Inc.
- Volume Dec.
- Volume val., Datenfeld ist 0-100
- Volume abs., Datenfeld ist 0-100
- Favorites, Datenfeld ist Name
- Playlist, Datenfeld ist Name
- Text to Speech., Datenfeld ist "Text/Sprachcode/Volume",
beispielsweise "Mittagessen ist fertig/de/50" gibt den Text
"Mittagessen ist fertig" in deutsch (de) mit 50% Lautstärke aus.
Wenn als Name der Zone "sayall" angegeben wird, wird der Text an
allen Lautsprechern ausgegeben. Die laufende Wiedergabe wird
für die Ansage unterbrochen und danach automatisch
fortgesetzt. Der Text darf maximal ca. 200 Zeichen lang sein.
Hinweis: Bei "Volume val." wird der Sollwert für die Lautstärke
über den Eingang vorgegeben, deshalb muss als Trigger Alle
Telegramme vorgegeben werden.
|
|
Trigger
|
- 0->1 steigende Flanke
- 1->0 fallende Flanke
- Telegramm
|
|
Daten
|
Optionale Daten. Z.B. bei Auswahl Favoriten der Name
des Favoriten.
|
|
Debug
|
Nur wenn aktiviert, gibt die Steuerung zusätzliche
Debug-Meldungen in den Meldungen aus (z.B. gefundene Lautsprecher,
ausgeführte Kommandos). Fehler werden immer gemeldet.
|
Update aus bestehenden Projekten
Alte SONOS-Bausteine (Variante mit externer Zusatzsoftware), die sich
noch im Projekt befinden, können weiterverwendet werden und
funktionieren auch weiterhin. Neu anlegen lässt sich der alte Baustein
allerdings nicht mehr.
Wenn das Projekt bearbeitet wird, sollten die alten Bausteine durch
diese neue Variante ersetzt werden: Damit ist keine externe Software
mehr nötig und es werden mehr Ressourcen an der Steuerung frei.
Vorgehen beim Ersetzen:
- Neuen Baustein "Sonos (lokal)" anlegen und die Parameter (Name
Zone, Funktion, Trigger, Daten) vom alten Baustein übernehmen — die
Einstellungen sind identisch aufgebaut.
- Die Trigger-Adresse mit dem Eingang TR verbinden. Der neue Baustein
hat keinen Freigabe-Eingang (FG) mehr; eine dort projektierte
Freigabe-Logik muss bei Bedarf vor den Trigger verlagert werden.
- Den alten Baustein anschließend löschen. Solange beide Bausteine
mit demselben Trigger und derselben Funktion im Projekt sind, wird
das Kommando doppelt ausgeführt.
Netzwerk-Funktionen
Der Baustein verwendet folgende Netzwerk-Mechanismen:
- Automatische Suche (SSDP): Die Lautsprecher werden per
Multicast-Suche (UDP an 239.255.255.250, Port 1900) gefunden. Die
Antworten der Lautsprecher kommen als normale UDP-Pakete an die
Steuerung zurück. Multicast funktioniert nur innerhalb desselben
Netzwerksegments — ein Router zwischen Lautsprechern und Steuerung
leitet die Suche nicht weiter.
- Steuerung: Kommandos gehen als HTTP-Verbindungen (TCP, Port
1400) direkt an die Lautsprecher.
- Text to Speech: Die Lautsprecher laden die Ansage-Datei von
der Steuerung herunter (TCP, Port 1402, bei Belegung 1403-1410). Die
Verbindung wird also vom Lautsprecher zur Steuerung aufgebaut — die
Steuerung muss aus Sicht der Lautsprecher erreichbar sein.
- Merken der Player-Adresse: Die zuletzt funktionierende
Lautsprecher-IP wird gespeichert. Schlägt die Multicast-Suche fehl
(z.B. nach einem Neustart in einem Netz mit blockiertem Multicast),
versucht die Steuerung zuerst diese Adresse direkt.
Wichtig: Lautsprecher und Steuerung sollten sich im selben
Netzwerk (Subnetz) befinden. Sind sie durch einen Router, ein VLAN oder
ein Gäste-Netzwerk getrennt, kann es zu Problemen kommen: Die
automatische Suche findet keine Lautsprecher (Multicast wird nicht
geroutet), NAT oder Firewall-Regeln können die Steuerverbindungen
blockieren, und bei Text to Speech erreichen die Lautsprecher die
Steuerung nicht. Auch Geräte mit "IGMP Snooping" (manche Switches)
oder WLAN-Access-Points mit aktivierter Client-Isolation können die
Suche bzw. die Steuerung verhindern.
FAQ - was bei Problemen getestet werden kann
- Es werden keine Lautsprecher gefunden (ER = 1 bei jedem
Kommando):
- Sind Lautsprecher und Steuerung im selben Subnetz? IP-Adressen
und Subnetzmaske vergleichen (z.B. beide 192.168.1.x).
- Lautsprecher von einem PC im selben Netz anpingen bzw. im
Browser http://<IP des
Lautsprechers>:1400/xml/device_description.xml öffnen —
kommt eine XML-Seite, ist der Lautsprecher erreichbar.
- Funktioniert die Sonos App auf einem Handy im selben WLAN? Wenn
nicht, liegt das Problem im Netzwerk, nicht in der Steuerung.
- IGMP Snooping / Multicast-Filter am Switch bzw. Access Point
testweise deaktivieren, Client-/AP-Isolation im WLAN ausschalten.
- Firewall der Steuerung prüfen: eingehende UDP-Antworten der
Suche und eingehende TCP-Verbindungen auf Port 1402 (TTS) müssen
erlaubt sein (unter Windows die Windows-Firewall).
- Zone wird nicht gefunden, andere Kommandos funktionieren:
Name der Zone exakt wie in der Sonos App eingeben
(Groß-/Kleinschreibung ist egal, aber der Name muss vollständig
übereinstimmen). Nach einer Umbenennung in der App dauert die
Übernahme bis zu 5 Minuten — oder Steuerung neu starten.
- Play/Next wirkt auf einen anderen Raum: Der Lautsprecher ist
Teil einer Gruppe — Wiedergabe-Kommandos wirken immer auf die ganze
Gruppe (den Gruppen-Koordinator). Gruppe in der Sonos App auflösen,
wenn der Raum einzeln gesteuert werden soll.
- Text to Speech: keine Ansage zu hören:
- Bei der ersten Erzeugung einer Ansage braucht die Steuerung
Internetzugriff auf Google-Dienste (Firewall/Proxy prüfen) und
eine Runtime-Variante mit SSL-Unterstützung. Ohne SSL meldet der
Baustein bei Text to Speech einen Fehler, alle anderen Funktionen
arbeiten normal.
- Die Lautsprecher müssen die Steuerung auf Port 1402 erreichen
(Firewall auf/vor der Steuerung, Router/VLAN dazwischen).
- Text kürzen (max. ca. 200 Zeichen) und Sonderzeichen bzw.
unsichtbare Unicode-Zeichen entfernen.
- Limit des Google-Dienstes überschritten, z.B. wenn der Trigger
ständig ausgelöst wurde (Fehler im Projekt). Bereits erzeugte
Ansagen sind nicht betroffen (lokaler Speicher).
- Nach der Ansage spielt die Musik nicht weiter: Bei manchen
Quellen (z.B. Streaming über AirPlay oder TV-Ton) kann die vorherige
Wiedergabe nicht wiederhergestellt werden — das ist eine Einschränkung
der Lautsprecher, nicht der Steuerung.
- Kommandos kommen verzögert: Nach einem Fehler versucht der
Baustein automatisch eine neue Suche und wiederholt das Kommando
einmal — das kann einige Sekunden dauern. Häufige Fehler deuten auf
ein Netzwerkproblem hin (siehe oben).
Siehe auch allgemeine Parameter aller
Funktionsbausteine.