Tag Archives: Sonos

Sonos OS 6.3

Auch Sonos OS 6.3 läßt sich weiterhin unter Linux steuern. Der Funktionsumfang des Controllers ist inzwischen aber arg eingeschränkt, Musikdienste und Radiosender können nicht mehr ausgewählt werden. Lautstärkeregelung und Starten/Stoppen der Wiedergabe funktionieren noch.

Seit OS-Version ist die Minor-Version (das x in 32.x) zweistellig, sodass die vollständige Versionsnummer nicht mehr in an Stelle der alten gepatcht werden kann. Glücklicherweise scheint die Windows-Applikation nur Major und Minor-Version zu berücksichtigen, die Build-Nummer ist egal.

Daher kann die letzte Stelle einfach weggelassen werden. Aus dem Versionsstring „32.11-30071“ wird „32.11-3007“.

Die komplette Anleitung von 2013 gibt’s nach wie vor.

Sonos OS 6.0

Die kürzlich erschienene Sonos OS Version 6.0 unterstützt jetzt u.a. Apple Music. Allerdings bedarf es eines neuen Patchs der Controller-Software, damit diese weiterhin unter Linux benutzt werden kann. Die vollständige Anleitung gibt’s im Posting von 2013, die neue Versionsnummer lautet „31.3-22220“.

Sonos Controller mit OS 5.2 unter Ubuntu

Alle Jahre wieder… nach einem Sonos-OS-Update für die ZonePlayer möchte der Controller unter Linux nicht mehr zusammenarbeiten:

Sonos OS 5.2 unter Ubuntu

Aktuell ist jetzt OS-Version 5.2. Das Patchen der Versionsnummer in der Controller-Software funktioniert weiterhin. Eine detaillierte Anleitung dazu habe ich 2013 veröffentlicht, es muss lediglich die Versionsnummer auf „28.1-83040“ geändert werden.

Neue Sonos-App, neues OS 5.0, alter Controller unter Ubuntu

Sonos hat kürzlich eine überarbeitete Version der Controller-Apps für Android und iOS veröffentlicht. Das Update ist hübsch geworden, aber es war auch bitter nötig: Der alten Version merkte man ihr Alter deutlich an.

Daneben gab es auch eine neue OS-Version 5.0 für die Zone Player. Die letztes Jahr vorgestellte Vorgehensweise, um die Windows-Version der Controllersoftware unter Ubuntu zur Kooperation zu bewegen, funktioniert auch weiterhin. Der aktuelle Versionsstring lautet „26.1-76230“, sonst ändert sich nichts.

Aktuelles Sonos-System mit Sonos-Controller 3.6.1 unter Linux steuern

Vor einiger Zeit hatte ich schon etwas zum Einsatz des Sonos-Controllers unter Linux mithilfe von WINE geschrieben. Zufälligerweise war das die letzte Version, die unter WINE funktioniert hat, Version 3.7 und später laufen leider nicht mehr.

Das wäre halb so schlimm, gäbe es die automatische Update-Routine nicht. Diese prüft beim Start des Controllers, welche Version auf den lokalen Zone Playern installiert ist, und fordert ggf. zum Upgrade auf. Lehnt man dies ab, so verweigert der Controller den Dienst. Hmpf.

Nun bin ich heute über einen Beitrag bei cratoo.de gestolpert. Dort wird u.a. auf ein Posting im Sonos-Forum verwiesen, welches beschreibt, wie man den alten Controller dazu „überredet“, mit einer neueren Sonos-Version zusammenzuarbeiten. Es muss nur eine DLL gepatcht werden, sodass die hinterlegte Version mit der des Zone Players übereinstimmt. Die dort beschriebene Vorgehensweise habe ich heute ausprobiert, sie funktioniert auch noch mit Sonos-Version 4.2.

Hier nun meine Interpretation des Rezepts. Man nehme:

  • Sonos Controller für Windows in Version 3.6.1 – den gibt’s direkt bei Sonos, aber es schadet nicht, sich davon eine Sicherheitskopie anzufertigen. Wer weiss, wie lange Sonos diesen noch anbietet…
  • Die aktuelle Versionsnummer des lokalen Zone Players, zu finden z.B. über dessen Web-Interface: http://x.x.x.x:1400/status/VERSION, wobei x.x.x.x durch die IP-Adresse des ZP zu ersetzen ist.
    Die IP-Adresse findet man z.B. über den DHCP-Server (in meinem Fall eine Fritz!Box) oder über die Controller-App (Einstellungen > Über das Sonos-System) heraus, nmap -p1400 <lokales Netzwerk> geht selbstverständlich auch.
    In meinem Fall lautet die Versionsnummer „24.0-69180“, eventuell vorhandene Buchstaben am Ende ignoriert man.
  • WINE in einer halbwegs aktuellen Version; ich nutze Ubuntu 12.04.3 x86_64, die dort mitgelieferte Version wine-1.4 funktioniert.

Den Sonos Controller installiert man wie gewohnt und verbindet ihn mit dem lokalen Zone Player. Nun wird er nach einem Update verlangen, dies lehnt man ab und beendet die Anwendung.

Jetzt ist die Datei pcdcr.dll ist zu lokalisieren, bei mir befindet sie sich unter ~/.wine/drive_c/Programme/Sonos. Wer möchte macht davon zuerst eine Sicherheitskopie, anschließend geht’s an’s Patchen!

In der Datei ist der Text „16.7-48310“ durch die weiter oben identifizierte Versionsnummer zu ersetzen. Mit sed geht dies beispielsweise so:

sed -bi "s/16\.7-48310/24.0-69180/" ~/.wine/drive_c/Programme/Sonos/pcdcr.dll

Anschließend kann der Controller wieder gestartet werden, er sollte nun nicht mehr nach einem Update suchen und einfach funktionieren. Das Ergebnis schaut so aus:

Sonos Controller 3.6.1 mit Sonos-Version 4.2

Sollte Sonos wieder einmal ein Update verteilen, so muss man nur die neue Versionsnummer herausfinden und die DLL erneut patchen.

Viel Vergnügen beim Nachkochen!

Update 16. Mai 2014: Der Trick funktioniert auch mit der neuen Softwareversion 5.0, der Versionsstring lautet „26.1-76230“.

Update 7. März 2015: Auch mit der Softwareversion 5.2 funktioniert’s so weiterhin. Der Versionsstring lautet „28.1-83040“.

Update 13. Juli 2015: OS-Version 5.4 ist raus, der passende Versionsstring lautet „29.5-91030“.

Update 1. Januar 2016: Die kürzlich erschienene OS-Version 6.0 funktioniert weiterhin wie beschrieben, der passende Versionsstring lautet „31.3-22220“.

Update 19. August 2016: Bei OS-Version 6.3 lautet der Versionsstring „32.11-30071“. Aufgrund der jetzt zweistelligen Minor-Version muss man das letzte Zeichen weglassen, damit das Patchen weiter funktioniert, d.h. „32.11-3007“. Der Teil nach dem Bindestrich scheint nicht relevant zu sein.

Sonos Controller Update auf 3.6.1b unter WINE

Sonos hat kürzlich ein Sicherheitsupdate für die Systemsoftware herausgegeben. Ich nutze die Controller-Software mittels WINE unter Ubuntu (Technische Details: Ubuntu 10.04 64bit, wine 1.2.2), und da läuft das Update leider nicht so ohne weiteres durch. Der Installer wird zwar runtergeladen und ausgeführt, allerdings scheint er nichts zu tun.

Ärgerliches Detail: Die aktuell angebotene Software-Version trägt den Dateinamen SonosDesktopController361b.exe. Dennoch ist nach deren Installation ein weiteres Update erforderlich, das nicht separat erhältlich ist.

Nach einigen Versuchen hab ich’s wie folgt hinbekommen:

  • Dem Update-Hinweis beim Start der Software folgen und durch die Installation klicken, bis zu dem Dialog an dem die aktualisierte Software gestartet werden soll.
  • Nun in das Temp-Verzeichnis der WINE-Installation wechseln (bei mir ~js/.wine/drive_c/users/js/Temp/). Dort wird es einen oder mehrere Ordner geben, deren Name mit einer geschweiften Klammer beginnt. Der neueste davon enthält das ausgepackte Installationspaket.
  • Aus diesem Verzeichnis die Datei „Sonos Desktop Controller.msi“ rauskopieren, z.B. eine Verzeichnisebene nach oben.
  • Nun den Installationsdialog schließen.
  • Jetzt kann die Installation des .msi-Pakets manuell angestossen werden. Dazu in einem Terminal eingeben: msiexec /a „c:\users\js\temp\Sonos Desktop Controller.msi“ (Pfad ggf. anpassen, je nachdem wohin das Paket zuvor kopiert wurde).
  • Den Anweisungen auf dem Bildschirm folgen; die Installation sollte nun durchlaufen und mit einem erfolgreichen Start des Sonos-Controllers in Version 3.6.1 enden.

Sonos – Es werde Musik!

Pünktlich zu Weihnachten habe ich mir selbst eine kleine Freude gemacht und (nach ausführlicher Recherche) ein Sonos Play:5 gekauft. Das gute Stück tut seit rund zwei Wochen bei mir seinen Dienst. Zeit für eine kleine Zusammenfassung.

Sonos baut Multiroom-Audio-Systeme. Einfach gesagt handelt es sich dabei um einzelne Komponenten, mit denen einer oder mehrere Räume beschallt werden können. Das Angebot umfasst Bausteine, die an den vorhandenen Verstärker (Connect) oder vorhandene Lautsprecher (Connect:Amp) angeschlossen werden, als auch Aktivlautsprecher mit integriertem Verstärker (Play:3 und Play:5). Ausserdem gibt es noch ein iPod/iPhone-Dock sowie eine Fernbedienung. Zwei Aktivlautsprecher lassen sich zu einem Stereo-Paar zusammenfassen.

Mindestens eine der Komponenten muss dabei per Kabel mit dem lokalen Netzwerk verbunden werden. Untereinander bauen die Geräte ein eigenes WLAN-(Mesh-)Netzwerk auf, hierüber wird die Musik transportiert. Die Steuerung erfolgt entweder über die dedizierte Fernbedienung (mit über 300 EUR ziemlich teuer), über kostenlose Apps für iPhone, iPad und Android oder aber über einen Software-Controller für Windows oder Mac OS X. An meinem Ubuntu-Desktop funktioniert der Windows-Client via WINE gut.

Musik kann aus unterschiedlichen Quellen abgespielt werden. Sie kann von einem der zahlreichen unterstützen Musikdienste gestreamt werden (Napster, Deezer, JUKE um nur mal ein paar zu nennen), es können Webradio-Sender eingebunden werden (bequem über eine Suche am Controller) und natürlich kann auf die eigene Mediathek zugegriffen werden. Die Musik muss dabei auf einer Windows-Freigabe (CIFS, SMB) im lokalen Netzwerk verfügbar sein. Man braucht also keinen Rechner, auf dem eine eigene Serversoftware läuft (so wie bei der Logitech Squeezebox), ein „dummes“ NAS genügt. Im einfachsten Fall ist das ein USB-Stick bzw. -Festplatte an einer Fritz!Box.

Genug mit dem allgemeinen Vorgeplänkel, ein paar persönliche Eindrücke. Bisher habe ich eine Logitech Squeezebox genutzt, angeschlossen an meine Anlage im Wohnzimmer (Marantz SR-5000, Mordaunt-Short Avant 908i Standlautsprecher). Ich halte mich allerdings vornehmlich im Arbeitszimmer auf und nutze die Anlage leider viel zu selten. Also habe ich mir für diesen Raum erst mal einen Aktivlautsprecher angeschafft. Bestellt habe ich bei Thomas Lang von ueberall-musik.de. An dieser Stelle herzlichen Dank für den guten Service und die prompte Lieferung. Der Play:5 schaut so aus:

Die Einrichtung war sehr einfach: iPhone-Client installieren, Play:5 mit LAN und Strom versorgen, nach Anweisung des Clients zwei Tasten am Lautsprecher drücken, einen Namen für den Raum in dem das Gerät steht festlegen, fertig. Das Gerät wird sofort gefunden. Im nächsten Schritt habe ich meine Napster-Zugangsdaten eingetragen, und schon konnte ich Musik hören. Das alles hat weniger als 5 Minuten gedauert, Auspacken und Kabel zum geplanten Aufstell-Ort verlegen waren noch die beiden aufwendigsten Schritte.

Als nächstes war der PC dran. Auch hier: Client runterladen, installieren, starten, zwei Tasten am Lautsprecher drücken, fertig. Auf dem Mac das gleiche. Neue Komponenten werden analog dazu integriert, die Einrichtung ist dabei nur einmal erforderlich. Jeder Controller kann alle Geräte im ganzen Haus steuern.

Das Hinzufügen der Mediathek war genauso einfach: Server- und Freigabename eintragen, Benutzername und Passwort dazu, und schon wird das Laufwerk nach Musik durchsucht. Man ist nicht auf eine einzige Freigabe beschränkt, es können beliebig viele hinzugefügt werden. Die Tags werden ausgelesen und in einen Index aufgenommen, der nach Titel, Album, Künstler, Musikrichtung durchsucht werden kann. Ein Zugriff auf die originale Ordnerstruktur ist ebenfalls möglich. Der Index wird auf den Sonos-Geräten gespeichert und repliziert und fasst aktuell bis zu 65.000 Titel und Playlisten. Die Unterstützung für Musikformate ist umfangreich (MP3, WMA, AAC, AAC+, Ogg Vorbis, Apple Lossless, FLAC, WAV, AIFF), aber nicht allumfassend (z.B. keine HD-Audio mit >48 kHz Samplerate oder >16bit Auflösung).

Die Wiedergabe erfolgt bei Titeln aus der lokalen Mediathek gapless, d.h. ohne Unterbrechung (wichtig bei Live-Alben, getestet mit MP3 und FLAC). Bei Online-Streams gibt es immer eine kurze Pause zwischen den einzelnen Tracks, durch zuschaltbare Überblendung lässt sich das Problem zumindest mildern.

Ich muss mich erst mal mit einem einzigen Lautsprecher begnügen. Eines der Alleinstellungsmerkmale kann ich damit noch garnicht nutzen: Die gleichzeitige (und wahlweise synchrone) Wiedergabe von Musik in mehreren Räumen. Jede Komponente kann einzeln gesteuert werden, mehrere können zu einer Zone zusammengefasst werden. Dies geht dynamisch mit wenigen Schritten am Controller. In jeder Zone kann beliebig Musik abgespielt werden, bei insgesamt 32 Geräten ist Schluss.

Wo viel Licht ist gibt’s natürlich auch Schatten. Störende Kleinigkeiten:

  • Das vollständige Aktualisieren des Musik-Index lässt sich nur durch Löschen und erneutes Hinzufügen einer Freigabe oder durch Umbenennen des Ordners erzwingen, sodass die Musik als „neu“ erkannt wird.
  • Cover Art muss als folder.(jpg|gif) gespeichert werden oder in die Musik eingebetten sein, je nach Controller gibt es unterschiedliche Begrenzungen bei Auflösung und Dateigröße.
  • Podcasts würde ich gerne direkt auf dem Sonos abonnieren und hören, ohne sie erst in der Mediathek speichern zu müssen.
  • Die PC/MAC Controller-Software könnte komfortabler sein.
  • Der Tag-Hölle mit ID3v1, ID3v2, UTF8-Encoding etc. werde ich einen eigenen Artikel widmen und dabei auch auf Compilations eingehen.

Insgesamt bin ich dennoch sehr zufrieden. Seit ich das Gerät habe höre ich wieder viele der über die Jahre selbstgerippten Alben, die bisher auf meinem Homeserver geschlummert haben. Der Play:5 klingt ordentlich, geht lauter als ich zu Hören vermag (leider nicht bis 11), genügt auch zur Beschallung von mittelgrossen Räumen und hat dank Subwoofer genug Tiefgang. Die Bedienung per iPhone-Controller klappt gut.

Ich befürchte fast, dass dies nicht das letzte Gerät von Sonos war, das ich gekauft habe. Sonos hat mir meine Musik wiedergegeben.