Die Ansteuerung des Audio-Player Universalgenies MPD (Music Player Daemon, www.musicpd.org) mit dem Gira HomeServer funktioniert prima. Die Vorgehensweise und damit die Realisierung eines Multiroom-Soundsystems mit vollständiger Automatisierbarkeit ist im Praxisteil des SmartHome Kompendiums Heimautomation mit KNX, DALI, 1-Wire und Co. (Kapitel 56) detailliert erläutert. In diesem Blog-Betrag möchte ich eine mögliche Erweiterung vorstellen, mit der Sie eine komfortable Bedienoberfläche für MDP mit Ihren HomeServer QuadClient umsetzen können.
Komfortable Multiroom-Audio Benutzeroberfläche basierend auf MPD
Die Erweiterung basiert auf dem Zusammenspiel von MPD, einem darauf aufgesetzten UPnP Audio Media Renderer und einem Media Streaming Server. Beginnen wir mit der Installation und Einrichtung des Media Renderers.
Einrichtung des UPnP Audio Media Renderers
Die Wahl für den Renderer fiel auf upmpdcli, dem schnellen in C++ geschriebenen UPnP Frontend für MPD. Upmpdcli ist unter der GPL lizensiert und kann damit frei benutzt werden. Die Installation unter Ubuntu läuft sehr einfach ab:
sudo add-apt-repository ppa:jean-francois-dockes/upnpp1 sudo apt-get update sudo apt-get install upmpdcli
Im Config-File nehmen Sie die für Ihr Setup benötigten Änderungen vor:
sudo nano /etc/upmpdcli.conf
Eine Beispiel-Konfiguration, welche auf die im Buch vorgeschlagene Multiroom-Lösung aufsetzt, würde so aussehen:
# Configuration file for upmpdcli, the UPnP Media Renderer front-end to MPD # Note: the command line options have higher priorities than the values in # this file. # Host MPD runs on. Defaults to localhost. This can also be specified as -h host mpdhost = 192.168.178.58 # Port for MPD. Can also be specified as -p port mpdport = 6601 # MPD Password #mpdpassword = # Displayed "Friendly Name" for the UPnP Media Renderer friendlyname = Esszimmer # Log file name. Defaults to stderr. This can also be specified as # -d logfilename logfilename = /var/log/upmpd.log # Log level. 0-4. Can also be specified as -l loglevel. loglevel = 0 # Network interface to use for UPnP. upnpiface = eth0 # IP address to use for UPnP. Alternative to using an interface Name #upnpip = # Port number used for UPnP. #upnpport = 6677 # Decide if we offer the OpenHome services. 0 or 1. # The default is 'yes' as OpenHome queuing is superior for most usages. openhome = 0 # Enable UPnP AV services. This is set by default, but it may useful to # disable it with some pure OpenHome Control Points. upnpav = 1 # Save queue metadata to disk to allow persistence across restart, like MPD. ohmetapersist = 1 # Mimimum interval (Seconds) between 2 saves of the cache. Setting this may # improve playlist load speed on a slow device. The default is to start a # new save as soon as the previous one is done (if the list changed again # inbetween). # ohmetasleep = 0 ### Parameters for the sc2mpd Songcast helper command: # Log file name (default stderr), and level. The file must *not* be the # same as the one for upmpdcli #sclogfilename = /tmp/scmpdcli.log #scloglevel = 6 # Port for connections from MPD to sc2mpd. The latter only accepts # connections from localhost. Default 8888 #schttpport = 8888 # Path to the sc2mpd if it is not in /usr/bin and the location is not in # the PATH for the init scripts. #sc2mpd = /usr/bin/sc2mpd
Sobald Sie den upmpdcli-Service neustarten, kommen Ihre Änderungen an dem Config-File zur Geltung:
sude service upmpdcli restart
Der nächste Schritt besteht darin, Ihr Multiroom-Audio System durch einen echten UPnP Media Streaming Servers zu erweitern.
Installation und Konfiguration des Media Streaming Servers
Dazu habe ich eine Menge an unterschiedlichen Software-Lösungen durchprobiert (minidlna, Universalmediaserver, MediaTomb, MediaMonky, Twonky Mediaserver) und bin schließlich bei Serviio gelandet, der meine Anforderungen (Cover-Fotos, Playlisten, Web-Administration, Kompatibilität zum UPnP-Plug-In des Gira HomeServers) am Besten erfüllte.
Installation von Serviio
Gehen Sie für Ubuntu Linux nach der folgenden Installations-Anleitung vor:
Schritt 1: Java 8 Installation
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer
Schritt 2: FFMPEG Installation
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next sudo apt-get update sudo apt-get install ffmpeg
Schritt 3: Serviio installieren
Werfen Sie einen kurzen Blick auf die Downloadseite von Serviio, um herauszufinden, welches die Aktuelle Version ist. Für Serviio 1.5.2 lauten die Shell-Kommandos zur Installation:
wget http://download.serviio.org/releases/serviio-1.5.2-linux.tar.gz sudo tar xzf serviio-1.5.2-linux.tar.gz mv serviio-1.5.2 serviio sudo mv serviio /usr/local/share/
Schritt 4: Start-Skript erzeugen
Legen Sie mit
sudo nano /etc/init/serviio.conf
ein File an, kopieren folgenden Inhalt in das File und speichern es:
start on started Networking script LANG=de_DE.utf8 /usr/local/share/serviio/bin/serviio.sh end script
Gegebenenfalls können Sie die Benutzer-Rechte für das Skript anpassen, z.B.:
sudo chown -R chef:chef /usr/local/share/serviio/
Starten Sie den Service erstmalig mit:
sudo start serviio
Nach einem Reboot wird serviio künftig automatisch gestartet, was Sie mit
initctl list | grep serviio
prüfen können.
Installation der Web Adminstrationsoberfläche
Für Serviio exisitert eine komfortable Möglichkeit zur Administration über eine Weboberfläche. Sie nennt sich Web UI in PHP und bietet all die Möglichkeiten, welche Sie ansonsten nur mit der Serviio Console haben. Gehen Sie zur Installation (Beispiel für de Version 1.5), in Verbindung mit dem lighttpd-Webserver (siehe Buch, Abschnitt 50.11) folgendermaßen vor:
cd /var/www sudo wget https://github.com/SwoopX/Web-UI-for-Serviio/archive/Serviio-1.5.zip sudo unzip Serviio-1.5.zip sudo mv Web-UI-for-Serviio-Serviio-1.5 serviio sudo chown www-data:www-data serviio sudo apt-get install php5-xmlrpc sudo apt-get install php5-curl sudo service lighttpd restart
Die Webseite können Sie ab jetzt unter http://IhreServerIP/serviio im Browser anwählen. Besuchen Sie dort zuerst den Reiter Library bzw. Bibliothek, fügen den Pfad zu Ihrer Musik-Sammlung hinzu und kreuzen die vier Checkboxen in der rechten Spalte an (siehe Abbildung).
Plug-In Installation für den QuadClient
Die serverseitige Installation haben Sie an dieser Stelle abgeschlossen. Widmen Sie sich jetzt den beiden notwendigen Plug-Ins (UPnP-Control Point/MediaRenderer und UPnP-Control Point/MediaServer) für den QuadClient. Ordnen Sie über den QuadConfig-Editor den MediaRenderer dem oberen und den MediaServer dem unteren Quadranten zu, speichern ab und programmieren Ihren HomeServer neu. Im QuadClient haben Sie von nun an die Möglichkeit, aus Ihrem Audio-Archiv (unterer Quadrant) jeden gewünschten Titel auszuwählen und seine Wiedergabe über den Player (oberer Quadrant) zu steuern.
Herzlichen Glückwunsch, Sie besitzen zu Ihrem mächtigen Multiroom-Audio Setup jetzt auch noch eine komfortable Steuerung mittels QuadClient.
Erweiterungen
Erweiterung | Beschreibung |
ServiiDroid | Steuern Sie Serviio über Ihr Android Smartphone |
Plug-Ins für Serviio | http://forum.serviio.org (nach Plug-In Installation: sudo service serviio restart ) |
QuadClient Config, Automatisierung und Playlisten | kommt bald in diesem Blog … |
Alternativen
Für | Alternative | Kommetar |
upmpdcli | MediaPlayer | in Java, statt C++ |
Serviio | minidlna, Universalmediaserver, MediaTomb, MediaMonky, Twonky Mediaserver | je nach individuellen Anforderungen |
Hallo Stefan,
kann man mit upmpdcli auch mehrere mpd Instanzen ansprechen?
Ich habe wie im Buch beschrieben, 14 mpd´s (alles mono) für ein Multiroom laufen.
Upmpdcli habe ich installiert und ihm die mpd Instanz bzw. den Port für alle Räume gegeben, was allerdings nicht ganz praktisch ist wenn man mehrere Bewohner im Haus hat.
Jetzt würde ich gerne jede mpd Instanz separat über upmpdcli ansteuern, damit jeder seine Musik in seinem Zimmer über sein Handy streamen kann.
Ist das möglich?
Vielen Dank!
Gruß Frank
Hallo,
in Kapitel 56 des Buches beschreiben sie die Realisierung eines Multiroom Systems auf Basis eines NUCs, ich habe ein paar Fragen dazu:
– Ich habe aktuell im Wohnzimmer ein 5.1 Soundsystem das ich für Musik aber auch für meinen TV verwende. Verträgt der NUC auch 2 oder 3 Soundkarten um so einige Stereo Zonen aber auch eine 5.1 oder 7.1 Zone einzurichten?
– Wie bekomme ich es hin das beim TV auch das 5.1 des Multiroom Systems verwendet wird?
– Wie ist verglichen mit einem HiFi System die Qualität dieser Lösung?
Gruß
Thomas
Hallo Thomas,
freut mich, dass Du dich mit Multiroom-Audio beschäftigst. Ich würde sagen, Ja, der NUC kann auch mehr als eine Soundkarte vertragen. Ich habe es zwar nicht ausprobiert, würde aber meinen es geht.
Die Qualität hängt stark von der Qualität der Soundkarten ab und von der Endstufe, kann durchaus an HIFI-Qualität heranreichen, die richtigen Lautsprecher natürlich vorrausgesetzt.
Ich war auf jeden Fall aber extrem positiv überrascht, selbst in Verbindung mit Deckenlautsprechern.
Viele Grüße,
Stefan