Kostenloses Open-Source-Projekt
Mac-Script macht Sonos-Lautsprecher zu AirPlay-Empfängern
Mit “Audio Bridge” haben wir euch letzte Woche eine Mac Anwendung vorgestellt, die eure Sonos Lautsprecher um AirPlay-Funktionalität erweitert. Nach 10 Minuten Hörgenuss verlange der Entwickler der graphischen Benutzeroberfläche eine einmalige Gebühr von 10 Euro. Die eigentliche Programmlogik unter der Haube stammt jedoch aus der Feder eines anderen Entwicklers und ist kostenlos als Open Source auf github verfügbar. Es stehen Binaries für Windows, Linux (Raspberry Pi/ARM) und Mac OS X bereit.
Wir standen in den letzten Tagen in regem Austausch mit dem Entwickler des Originals. In der aktuellen Version gibt es nun keine Probleme mehr mit Stereo-Sets und Gruppen. Sofern eine Gruppe existiert, wird als AirPlay Ziel nur der Name des Gruppen-Koordinators (master) angezeigt. Die Musik wird entsprechend auf allen Lautsprechern der Gruppe ausgegeben. Sobald ihr die Gruppe auflöst, stehen die übrigen Speaker ebenfalls als AirPlay-Ziel zur Verfügung. Die Namen der AirPlay-Ziele entsprechen jetzt auch den Namen eurer Räume bzw. Lautsprecher in der Sonos App.
Mini-„App“ zum Download
Für diejenigen unter euch, die sich auf der Konsole überhaupt nicht zu Hause fühlen, haben wir eine kleine Anwendung gebaut, die alle nötigen Schritte auf Knopfdruck erledigt (Download-Link).
Beim Starten wird einmalig das nötige Programm in den Programme-Ordner geladen (AirConnect) und anschließend automatisch in einem Terminal-Fenster gestartet. Der Quellcode des Programms ist zur Kontrolle hier einsehbar. Das sich öffnende Terminal-Fenster kann in den Hintergrund gelegt, darf jedoch nicht geschlossen oder beendet werden.
Wer statt unserem kleinen Tool die manuelle Installation auch auf dem Mac bevorzugt, geht wie folgt vor:
Manuelle Installation auf dem Mac (Terminal):
Dauerbetrieb auf dem Raspberry Pi (Konsole/Bash):
Wer ohnehin schon einen Raspberry Pi im Dauerbetrieb hat und ein paar einfache Bash-Kenntnisse mitbringt, kann die Installation auch manuell auf dem Raspberry Pi ausführen
Der Parameter „-z“ im Startbefehl sorgt dafür, dass der Prozess im Hintergrund gestartet wird und auch weiter läuft, wenn das Terminal-Fenster geschlossen oder die SSH-Verbindung beendet wird.
Könnte man eine Umsetzung auf einer NAS (Synology) ermöglichen?
Die läuft bei mir im Gegensatz zum Mac immer.
Würde mich auch interessieren!
Schaut mal nach AirSonos. Dazu gibt es Docker Container… läuft sehr gut, hat nur eine kurze Verzögerung von ca. 3 Sekunden.
Es gibt sehr viele unterschiedliche DiskStations mit unterschiedlicher CPU. Auf meiner läuft es direkt mit der airupnp-arm Version des Raspberry Pis, da meine DiskStation 115j auch eine ARM CPU hat. Für andere müsste man das selbst kompilieren.
Super, vielen Dank!!
Es gibt für Synology Anleitungen im Netz. Einfach mal danach suchen. Ich hab es damals nicht zum Laufen gebracht und so wichtig war es mir dann auch nicht. Vor allem weiß ich nicht, ob das NAS dann noch in Standby schaltet.
Bei mir werden leider keine Lautsprecher angezeigt.
Das selbe problem hatte ich auch schon mit Audio Bridge.
Jemand eine Idee woran es liegen kann?
Nach spätestens 30 Sekunden sollten welche zu sehen sein. Falls nicht, liegt es meistens an Firewalls bzw. gesperrten Ports. Hast du da etwas aktiv? Oder läuft das bei dir in einer Virtual Machine?
Ich habe die interne Firewall vom MacOS und die Fritzbox
In den Optionen der Mac OS Firewall sollte nicht der Punkt „Alle eingehenden Verbindungen blockieren“ aktiviert sein. Ansonsten kannst du versuchen, unten über das „+“ Symbol Ausnahmen hinzuzufügen für AirConnect (aus dem Programmordner). Siehe https://www.dropbox.com/s/4x2t95zxzdilten/mac%20os%20firewall.png?dl=0
Ist alles eingestellt, aber trotzdem wird nichts gefunden
Zunächst sollte man das Terminal schließen. Danach LAN (Ethernet) abstecken und nur mit WLAN verbinden. Terminal mit Script neu starten oder Anwendung starten. Danach sollte es klappen, war bei mir so der Fall.
Ethernet kann man jetzt wieder verbinden.
Klappt alles sehr gut! Nur erscheint bei der Übersicht der Lautsprecher neben den nach den Räumen gekennzeichneten Sonos Lautsprecher ein Lautsprecher mit einer Buchstaben-Zahlenkombination. Diesen kann ich zwar anklicken, aber kein Lautsprecher reagiert in meiner Wohnung.
Es werden sämtliche UPNP Devices in deinem Netzwerk gefunden. Das kann auch ein AV-Receiver sein, ein Chromecast usw.0 stellst (vorher war da eine 1).
Das könntest du nur verhindern, indem du eine config.xml Datei erstellen lässt. Dafür musst du das Programm beenden und einmalig selbst via Terminal starten (falls du nicht sowieso schon den manuellen Weg gewählt hast). Probiere folgendes:
– AirConnect beenden
– Alle Gruppen auflösen in der Sonos App
– Terminal öffnen (z.B. via Spotlight)
– cd /Applications/AirConnect
– ./airupnp-osx-multi -i config.xml
Warte etwa eine Minute, bis sich das Programm wieder beendet. Du hast danach eine Datei namens „config.xml“ im gleichen Ordner. Diese kannst du in einem Editor öffnen (z.B. TextEdit). Für jeden der gefundenen Lautsprecher/Devices ist ein Eintrag vorhanden. Auch für deinen Lautsprecher mit dem komischen Namen. Den kannst du einfach deaktiveren, indem du das Feld
Sehr interessant. Wird die Lösung nicht aber überflüssig, wenn und soweit Sonos AirPlay 2 nachrüstet? Ansonsten wäre die Anschaffung eines Raspberry Pi ja gar nicht mal so verkehrt.
Glaube nicht, dass alle Sonos Lautsprecher das Update bekommen. (Was ich dennoch hoffe)
Ja aber leider ist noch völlig unklar, wann das kommt. Die Alexa Integration hat ja auch über ein Jahr auf sich warten lassen. Außerdem ist unklar, welche Speaker das unterstützen werden.
Granate!!! Nach ewigen Probieren mit Airsonos auf des PI – und dem glücklichem Umstand Linux damit ganz verstanden zu haben – grandiose Vereinfachung. DANK EUCH!!!
Besteht eine solche Möglichkeit für Windows ebenfalls das man einen Sonos Speaker als AirPlay Speaker verwenden kann?
Ja, das sollte gehen. Einfach hier die Datei „airupnp-win.exe“ runterladen sowie alle *.dll Dateien
https://github.com/philippe44/AirConnect/tree/master/bin
Einfach mal Dankeschön
Wie stoppt man den Prozess auf dem Raspi vorübergehend?
Du meinst, nachdem du ihn mit dem „-z“ Parameter im Hintergrund gestartet hast? Am einfachsten mit diesem Befehl:
kill $(pidof airupnp-arm)
Perfekt! Vielen Dank und frohe Weihnachten und
alles Gute für 2018.
Das ist genial, airsonos lief auf dem Raspi nur solang wie die ssh-Verbindung stand. Perfekt, AirPlay für Sonos!!
Schade, nach einem Neustart läuft AirPlay leider nicht mehr.
Auf dem Mac? Mit der App oben?
Füge sie mal in die Anmeldeobjekte unter Systemeinstellungen > Benutzer & Gruppen > Anmeldeobjekte hinzu über das „+“ Symbol.
@Marco
Hast Du das Script für Debian Stretch optimiert? Ich bekomme hier einen libssl-Fehler.
~/airconnect/airupnp-arm -l 500:500 -z
/home/pi/airconnect/airupnp-arm: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory
vergessen:
Raspi mit Debian Stretch
Zum Stoppen des Prozesses:
kill $(pidof airupnp-arm)
Steht auf der Seite. ;)
„Some Debian Stretch distributions (e.g. Raspian) only provide openssl1.0.2, but 1.0.0 is needed. Download the version for Jessie using wget http://security.debian.org/deb....._armhf.deb then install it with sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u7_armhf.deb“
Verdammt…sorry, hab ich überlesen.
Wenn du mir jetzt noch sagst, wie ich den Raps Prozess stoppen kann (der ja im Hintergrund läuft) dann sind alle meine Fragezeichen deleted. :-)
Danke für Deine Unterstützung.
Nutze die Anwendung von euch und bin grenzenlos begeistert!
Danke das Ihr euch für die Community so einsetzt und die Gruppenfunktion ermöglicht.
Mir fehlen einfach die Worte das in Worte zu fassen.
Großes Lob an Marco, den Entwickler welches dieses Projekt als Open Source freigibt und alle Beteiligten.
Danke!
Danke – hat per Terminal einwandfrei gefunzt!
Die eigentliche Frage: Warum können die Lautsprecher das nicht von Haus aus?
Danke!
Funktioniert super :)
kurze Frage … ist die Wiedergabe synchron zu einem Video?
Oder wartet das Video nicht, bis der Ton etwas gepuffert wurde.
Ich möchte meine Sonos nämlich als Lautsprecher für mein Apple TV im Schlafzimmer nutzen und darauf beispielsweise Netflix schauen.
Andere AirPlay Tools für den Mac die ich bisher kenne konnten den Ton immer nur Zeitversetzt streamen.
Eher nicht. Das klappt nur bedingt zuverlässig. Dazu müsstest du beim Starten den Parameter „-l 0:0“ setzen. Bei meinen Versuchen war der Ton dann zwar synchron, allerdings lief es nicht mehr ohne Aussetzer.
funzt super, vielen vielen dank!!!
Hat jemand ne Idee. Ich kriege es auch nicht zum Laufen. Das hier ist die Meldung die mir ausgegeben wird:
MeinMac:~ home$ /Applications/AirConnect/airupnp-osx-multi -l 500:500 -z
[17:42:32.065711] main:1201 Starting airupnp version: v0.1.4.3 (Dec 11 2017 @ 14:33:42)
[17:42:32.066159] main:1209 no config file, using defaults
[17:42:32.067440] Start:972 UPnP init failed: -203
[17:42:32.067464] main:1233 Cannot start
habe das gleiche Verhalten
Habe gerade ne Super lösung gefunden und AirSonos auf meine Synology installiert. Sehr hilfreich was mir diese Anleitung: https://gdgts.de/airsonos-diskstation-docker/
Das einzige was stört, man muss es nach jedem Start der Synology manuel starten.
@Marco
Jetzt muß ich doch nochmal fragen.
Wie kann ich das ganze auf dem Raspi persistent machen? Also quasi „Autostart“.
Bitte schön:
https://github.com/philippe44/AirConnect#start-automatically-in-linux-crude-example-im-not-a-systemd-expert
Sehr schön, jetzt suche ich nur noch eine Tastenkombination um auf dem Mac die iTunes Lautstärke zu ändern ohne das iTunes im Vordergrund sein muss. Die Tasten über F11/F12 ändern ja nur die Mac Lautstärke, und iTunes (Cmd+Pfeil oben/unten) geht nur im Vordergrund. Hat hierzu noch jemand eine Idee?
Ich bin das Thema heute noch mal angegangen, die Lösung: https://github.com/alberti42/iTunes-Volume-Control -> Perfekt, belegt die normalen Tastatur Lauter/Leiser Tasten mit der iTunes Steuerung, über CMD+Lauter/Leiser wird die normale Systemlautstärke angesprochen.
Ich bekomme es nicht hin an meinem Raspberry Zero den AirConnect an laufen zu bekommen!
Könnte sich eventuell jemand bereit erklären, eine schritt für schritt Anleitung hier einzustellen?
Einfach nur Dankeschön
Wollte meinen Sonos Play One schon fast wieder umtauschen.
Ich höre meistens Hörbücher und mir war im Vorfeld nicht klar, dass Sonos kein Audible unterstützt.
Über WLAN gibts jedoch Aussetzer mit Audible , über Sonos mit Netztwerkkabel läufst einwandfrei.
YouTube und Prime Videos haben jedoch eine Zeitverzögerung so das Sprachgeste und Ton nicht synchron sind.
Ps läuft bei mir über den raspberry pi 3
Autostart hab ich schmutzig in die /etc/rc.local eingetragen
Hi,
die Installation hat auf dem Raspi super geklappt. Es funktioniert auch auf Anhieb. Leider nur ein n paar Stunden. Am nächsten Tag waren die Sonos Box nicht mehr in der AirPlay Liste zu finden. Raspi neu gestartet und alles wieder ok. Bis zum nächsten Tag.
Hat einer ne Idee?
Danke schon mal
Nach ewigem probieren und jeder Menge Frust mit AirSonos auf dem Pi bin ich auf den Artikel gestoßen und es gleich mal getestet.
Leider bekomme ich beim Aufrufen des Programms den Fehler Illegal instruction.
Jemand ne Idee?
Es gibt jetzt vorgefertigte Packages für die Synology DiskStation!
https://github.com/bandesz/AirConnect-Synology