ShairPort – Raspberry als AirPlay-Server

Jeder der im Apple-Universum zuhause ist, wird die drahtlose Schnittstelle AirPlay bereits kennen. Mit dieser lassen sich Inhalte von iOS und OSX auf AirPlay-fähige Empfangsgeräte übertragen. So lässt sich zum Beispiel die Musik vom iPhone drahtlos auf kompatible Lautsprechern abspielen. AirPlay-Empfänger von Apple liegen jedoch leider in einer etwas höheren Preisklasse. Wieso also nicht den Raspberry zum AirPlay-Empfänger aufrüsten. Mit ShairPort ist dies möglich. In diesem Beitrag erkläre ich euch, wie ihr ohne extra Hardware den Raspberry zum AirPlay-Empfänger aufrüstet.

Vorbereitung

Wie bei den meisten Raspberry-Projekten, ist auch hier wieder etwas Vorbereitung notwendig. Zuerst sollte das System auf den neusten Stand gebracht werden. Anschließend werden dann die benötigten Pakete installiert:

Downloaden und Kompilieren von ShairPort

Die ShairPort-Software hat es bis jetzt noch nicht in die offizielle Paketquelle von Raspbian geschafft. Dies hat zur Folge, dass man sich den Quellcode selber downloaden und anschließend kompilieren muss.

Der Befehl „git“ lädt den Quellcode in den Ordner „shairport“. Anschließend wechseln wir mit „cd“ in diesen Ordner und beginnen mit den Befehlen „make, make install“ mit dem kompilieren.

Durch das „Selbstkompilieren“ wurden jedoch nur die Programm-Dateien kopiert. Es fehlt noch die Konfigurationsdatei und das Initialisierungsskript. Diese werden mit den folgenden Befehlen an die entsprechende Stelle kopiert:

Konfiguration anpassen

Nachdem ShairPort installiert wurde, kann man sich an das Konfigurieren machen. Dazu wird die Konfigurationsdatei mit dem Editor geöffnet:

Die nun geöffnete Datei sollte wie folgt angepasst werden:

Der Eintrag „USER“ gibt an, unter welchem Benutzer ShairPort ausgeführt werden soll. Entweder nutzt ihr euren Standard-Benutzer oder ihr erstellt einen extra Benutzer. Mit „AP_NAME“ kann man den Namen festlegen, mit dem der Raspberry später als AirPlay-Empfänger auftritt. Des Weiteren muss das „‚#“ vor dem Eintrag „MDNS=avahi“ entfernt werden.

ShairPort starten

Der AirPlay-Empfänger ist nun fertig installiert und konfiguriert. Dem Start steht also nichts mehr im Wege. Bevor man ihn jedoch startet, sollte man den „Autostart“ des Raspberrys bearbeiten:

Dies bewirkt, dass ShairPort bei einem Neustart des Raspberrys automatisch mit gestartet wird. Zum Starten von ShairPort ist es jedoch nicht nötigt, den Raspberry neu zu starten. Mit diesem Befehl lässt sich ShairPort auch manuell starten:

Ein manuelles Stoppen ist natürlich auch möglich:

ShairPoint mit FHEM steuern

ShairPort lässt sich natürlich auch mit FHEM starten und stoppen. Dafür wird einfach ein Dummy-Schalter definiert:

Den Dummy nun noch als Schalter definieren:

AirPlay Schalter FHEM

Damit dieser Schalter auch eine Funktion hat, definieren wir zwei Notifys, die auf den Status des Schalters „AirPlay“ reagieren.

Damit FHEM aber mit sudo-Rechten ShairPort starten und stoppen kann, muss dem User fhem dies noch erlaubt werden. Dazu wird die Datei /etc/sudoers mit folgendem Befehl bearbeitet:

Dieser Befehl öffnet mit dem Standard Text-Bearbeitungsprogramm die Datei /etc/sudoers. Beim Raspberry meistens „nano“. Im Gegensatz zum direkten Aufruf mit „sudo nano…“, prüft visudo die Syntax der Datei auf Fehlern und verhindert so eine Fehlkonfiguration.

Die nun geöffnete Datei sollten nun mit folgenden Eintrag ergänz werden:

Sollte bereits ein solcher Eintrag existieren, einfach „/etc/init.d/shairport“ durch ein Komma getrennt hinten dran hängen. Mit „Strg+X“ wird gespeichert.

Der AirPlay-Server auf dem Raspberry sollte sich nun mit dem Schalter an und aus schalten. Am besten direkt auf einem iOS Gerät teste:

iOS AirPlay FHEM

Problemlösung

Ein häufig auftretendes Problem ist, dass man kein einzigen Ton aus dem Raspberry rausbekommt. Keine Panik. Dies liegt meistens daran, dass dem Raspberry nicht mitgeteilt wurde, dass der Ton nun über den analogen Klinke-Ausgang ausgegeben werden soll. Dies kann man ganz einfach über das Konfigurationsmenü des Raspberrys geändert werden:

sudo-config

Unter dem Menü-Punkt „9 Advanced Options“ und dann unter „A9 Audio“ lässt sich einstellen, welcher Ausgang für die Ton-Ausgabe verwendet werden soll. Die Ton-Ausgabe lässt sich mit diesem Befehl testen:

 

3 Kommentare zu “ShairPort – Raspberry als AirPlay-Server

  1. Hallo Daniel,

    Echt cooler Beitrag!

    ich hätte aber noch eine Frage, kann man denn AirPlay Ton auch auf die Lautsprecher die in FHEM implementiert ist abspielen ( z. B. Sonos lautsprecher )?

    LG
    Nico

    • Hallo Nico,

      vielen Dank für das Lob.
      Eine Lösung den AirPlay-Ton vom ShairPort-Server an einen FHEM-Lautsprecher zu übertragen kenne ich leider nicht. Habe auch online keine Lösung dazu gefunden. Habe auch leider keinen Lautsprecher da, den ich in FHEM einbinden könnten.
      Auf diesem Blog-Beitrag von Andy Dunkel wird jedoch eine Lösung beschrieben, wie man Sonos-Lautsprecher mit AirPlay aufrüstet. Vielleicht ist das ja etwas für dich.

      Gruß Daniel

  2. Hallo Daniel,

    Vielen Danke für Deine Hilfe!

    P.S: Ich freue mich schon auf Deinen nächsten Beitrag über FHEM 😀

    LG
    Nico

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*