Vor kurzem habe ich mir ein Sonos Play1 zugelegt. Mein Kumpel Kiwi besitzt dieses bereits eine Weile und hat das hier vor einiger Zeit bereits getestet. Gegen Hardware und Technik ist nichts einzuwenden. Die Klang ist gut und die App funktioniert zuverlässig. Leider ist das auch der einzige Knackpunkt am Sonos-System: ohne Sonos-App kein Abspielen von Inhalten.
Problemlos funktioniert dies für vorhandene Inhalte auf dem Smartphone oder Tablett. Radiosender und diverse Musikdienste lassen sich ebenfalls über die App nutzen.
IOS- und Mac-User, wie ich, vermissen die Unterstützung für Airplay. Diese erlaubt die Wiedergabe aus jeder App. Ich verwende Instacast als Podcastapp auf meinem Telefon. Mit dieser läuft jedoch nichts in Sachen Sonos.
Die Lösung in diesem Fall heißt AirSonos: AirSonos ist ein, in Node.js geschriebener, AirPlay-Server, welche die Musik an das Sonos-System weiterleitet. Der Server läuft auf einem extra Rechner, welcher an das Heimnetzwerk angeschlossen sein muss. In Zeiten von Raspberry Pi und Co. ist damit zum Glück kein großer klobiger PC mehr notwendig. Die Software kommt zudem mit mehreren Lautsprechern im Netzwerk klar.
Legen wir los: Ich beschreibe Installation und Einrichtung unter Raspbian auf dem Raspberry Pi. Das ganze funktioniert aber auch mit etwas Variation auf anderen Linuxderivaten und Rechnertypen.
Übertakten
Mit der Standardtaktfrequenz vom RPI funktionierte bei mir die Musikwiedergabe leider nicht flüssig. Deswegen ist die Empfehlung den Kleinen auf 1000 Mhz zu übertakten. Dies geschieht entweder direkt bei der Installation von Raspbian oder später durch einfaches Bearbeiten der entsprechenden Config-Datei:
sudo vim /boot/config.txt
In der Config-Datei kommentiert man die folgenden Zeilen ein (# Symbol am Anfang entfernen):
#Turbo
arm_freq=1000
core_freq=500
sdram_freq=500
over_voltage=6
Nach dem Neustart sollte der RPI in der neuen hohen Taktrate unterwegs sein.
Installation von AirSonos
Wie so oft beginnen wir die Installation mit einem Update der Paketquellen und der bereits installierten Software:
sudo apt-get update
sudo apt-get upgrade
Nun installieren wir noch ein paar Dinge:
sudo apt-get install git-all libavahi-compat-libdnssd-dev
Es folgt Node.js, welches wir vorkompiliert herunterladen:
wget http://node-arm.herokuapp.com/node_latest_armhf.deb
und installieren:
sudo dpkg -i node_latest_armhf.deb
Das Ganze dauert ein wenig, also geduldig sein. 🙂
Im vorletzten Schritt folgt nun noch die Installation von AirSonos selbst:
sudo npm install airsonos -g
Auch das dauert eine Weile. Unschön: bei mir kam es vor, dass der Vorgang mit der Fehlermeldung npm ERR! cb() never called
abgebrochen wurde. Hier hat es geholfen den letzten Schritt einfach nochmal durchzuführen.
Fertig!
Ist alles installiert und eingerichtet, kann man AirSonos starten:
sudo airsonos
Es sollten nun alle Sonos-Lautsprecher im Netzwerk gefunden und aufgelistet werden:
Searching for Sonos devices on network...
Setting up AirSonos for Kitchen {192.168.1.108:1400}
Im IOS-Gerät der Wahl werden diese jetzt auch als AirPlay-Device angezeigt und können entsprechend genutzt werden.
Kleiner Schönheitsfehler, schließt man die Konsole zum Rechner beendet sich AirSonos. Dies kann man verhindern indem man den Prozess von der Konsole entkoppelt:
$ airsonos & disown
Viel Spaß beim Ausprobieren!
Super Anleitung und funktioniert auch.
Aber gibt es eine Möglichkeit, den Dienst automatisch starten zu lassen, z.B. nach Stromunterbrechung?
Bin jetzt nicht der Linux-Freak…..
Hier gibt es eine Anleitung wie man Startscripte erstellt: http://www.schnatterente.net/technik/raspberry-pi-autostart-skript-erstellen
HI
Ich habe heute versucht Ariosos so zu installieren, wie Du es oben beschrieben hast. Leider leider klappt das nicht so.
An bei eine ganze Menge an ERR-Meldungen
npm WARN engine nodetunes@0.1.2: wanted: {„node“:“0.10.x“} (current: {„node“:“0.12.1″,“npm“:“2.5.1″})
npm WARN deprecated static-favicon@1.0.2: use serve-favicon module
> mdns@2.2.2 install /usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/mdns
> node-gyp rebuild
gyp WARN EACCES user „root“ does not have permission to access the dev dir „/root/.node-gyp/0.12.1“
gyp WARN EACCES attempting to reinstall using temporary dev dir „/usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/mdns/.node-gyp“
child_process: customFds option is deprecated, use stdio instead.
gyp ERR! build error
gyp ERR! stack Error: not found: make
gyp ERR! stack at F (/usr/local/lib/node_modules/npm/node_modules/which/which.js:38:28)
gyp ERR! stack at E (/usr/local/lib/node_modules/npm/node_modules/which/which.js:41:29)
gyp ERR! stack at /usr/local/lib/node_modules/npm/node_modules/which/which.js:52:16
gyp ERR! stack at FSReqWrap.oncomplete (fs.js:99:15)
gyp ERR! System Linux 3.12.31
gyp ERR! command „node“ „/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js“ „rebuild“
gyp ERR! cwd /usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/mdns
gyp ERR! node -v v0.12.1
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
> lame@1.2.0 install /usr/local/lib/node_modules/airsonos/node_modules/nicercast/node_modules/lame
> node-gyp rebuild
gyp WARN EACCES user „root“ does not have permission to access the dev dir „/root/.node-gyp/0.12.1“
gyp WARN EACCES attempting to reinstall using temporary dev dir „/usr/local/lib/node_modules/airsonos/node_modules/nicercast/node_modules/lame/.node-gyp“
child_process: customFds option is deprecated, use stdio instead.
gyp ERR! build error
gyp ERR! stack Error: not found: make
gyp ERR! stack at F (/usr/local/lib/node_modules/npm/node_modules/which/which.js:38:28)
gyp ERR! stack at E (/usr/local/lib/node_modules/npm/node_modules/which/which.js:41:29)
gyp ERR! stack at /usr/local/lib/node_modules/npm/node_modules/which/which.js:52:16
gyp ERR! stack at FSReqWrap.oncomplete (fs.js:99:15)
gyp ERR! System Linux 3.12.31
gyp ERR! command „node“ „/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js“ „rebuild“
gyp ERR! cwd /usr/local/lib/node_modules/airsonos/node_modules/nicercast/node_modules/lame
gyp ERR! node -v v0.12.1
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
npm ERR! Linux 3.12.31
npm ERR! argv „/usr/local/bin/node“ „/usr/local/bin/npm“ „install“ „airsonos“ „-g“
npm ERR! node v0.12.1
npm ERR! npm v2.5.1
npm ERR! code ELIFECYCLE
npm ERR! mdns@2.2.2 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the mdns@2.2.2 install script ’node-gyp rebuild‘.
npm ERR! This is most likely a problem with the mdns package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls mdns
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/pi/npm-debug.log
Kannst Du mir helfen?
VG Markus
bei mir geht es unter iOS 9 einwandfrei, es gibt ab&zu mal einen Aussetzer bei Youtube aber sonst geht es wunderbar. Wie kann ich es einstellen, das es direkt immer Startet?
Für Ubuntu gibt es eine Anleitung, wie man Scripte etc beim Start mitstarten kann: https://wiki.ubuntuusers.de/rc.local/
Hallo alle,
ich habe die gleichen Probleme und ähnliche Fehlermeldungen wie Markus mit verschiedenen Versionen von node auf meinem Raspi 2 mit Rasbian Pixel. Kann jemand helfen?
Andreas
Wenn ich das richtig interpretiere:
npm WARN engine nodetunes@0.1.2: wanted: {„node“:“0.10.x“} (current: {„node“:“0.12.1″,“npm“:“2.5.1″})
Scheint da die falsche (neuere) node.js Version installiert zu sein. 0.12 statt 0.10.
Also versuchen die ältere Version zu installieren. Ich habe auch mal geschaut, eventuell kann man dieses Tool nutzen:
https://github.com/tj/n
Schau mal unter https://github.com/nodesource/distributions nach. Hier die richtige Version raussuchen und mit den entsprechenden Befehlen das System aktualisieren.
Bei mir wollte airsonos die 0.12 haben, wobei ich die 0.10 drauf hatte, also genau das Gegenteil von dir.
Hallo Markus,
schein mir daran zu liegen, dass Du eine aktueller Version von node installiert hast (0.12.1) aber 0.10.x erwartet wird. Ist aber auch nur eine Vermutung. Ich würde node einfach nochmal deinstallieren und anschließend die alte Version installieren:
wget http://node-arm.herokuapp.com/node_0.10.36_armhf.deb
sudo dpkg -i node_latest_armhf.deb
Wäre nur ein Versuch, habs selbst nicht getestet. Viel Erfolg.
Gruß
Andy
Hi,
Welche Version von node.js setzt du ein?
Bei mir klappts weder mit „latest“ noch mit 0.10.36.
Der Beitrag ist echt toll geschrieben und bis auf das Installieren von airsonos klappt soweit auch alles.
Vielen Dank für deine Hilfe.
Gruß
Christian
Hi Christian,
ich habs leider nicht mehr auf dem RPI installiert. Auf meinem normalen Ubuntu-Server funktioniert es mit NodeJS 0.10.38. Hoffe das hilft etwas weiter.
Gruß
Andy
Hallo zusammen
Habe es auch versucht. Leider klappt es bei mir auch nicht.
Könnte mir vorstellen das in nächster Zeit einige Versuchen ein airsonos auf einem Raspberry einzurichten, da apple music ja noch nicht mit den Sonosboxen zusammenarbeitet. Auch ein streaming über das Handy ist auf Grund von DRM nicht möglich.
Wenn irgendjemand ncoh einen Tipp hat wäre ich dankbar
Gruß strubbel
Also:
Wird überall geschrieben läuft nicht schon gar nicht unter iOS 9
Hab iOS 9.1 und genau der guten Beschreigung hier gefolgt unt läuft sauber!
Hallo zusammen, bekomme immer bei dem Befehl :
sudo dpkg -i node_latest_armhf.deb
Folgende Fehlermeldung:
~ $ sudo dpkg -i node_latest_armhf.deb
dpkg: Betreffend node_latest_armhf.deb, welches node enthält:
nodejs-legacy kollidiert mit node
node (Version 4.2.1-1) soll installiert werden.
node liefert node und wird installiert.
dpkg: Fehler beim Bearbeiten des Archivs node_latest_armhf.deb (–install):
Kollidierende Pakete – node wird nicht installiert
Fehler traten auf beim Bearbeiten von:
node_latest_armhf.deb
Was mach ich falsch?
Gruß Stephan