Mopidy moped

Multiroom Soundanlage mit dem Raspberry – Teil 2

Nun geht es weiter mit dem Teil 2.

Da im Artikel zwischen Raspberry Pi immer gewechselt werden muss, benennen wir die beiden wie folgt:

  • RASPI-1 = Snapcast Server mit Mopidy und Moped
  • RASPI-2 = Snapcast Client mit X400 Hifi Soundboard

Einkaufsliste bei Amazon http://amzn.to/2iK8uJF

Als erstes nehmen wir die Installation von RASPI-2 des X400 Hifi AMP Board vor wie in diesem Artikel beschrieben, für den zweiten Raspberry Pi. Dieser arbeitet dann als „Snapcast Client“ in dem gewünschten Raum wie z.B. Küche oder Schlafzimmer.

https://blog.unixweb.de/suptronics-x400-board-fuer-raspberrypi/

Wenn dieses erledigt ist und alles funktioniert gehen wir die Installation von „Snapcast“ an.

Wie in diesem Bild gezeigt benötigen wir 2 * Raspberry Pi ( geht auch eine virtuelle Linux Installation)  nur hier mache ich es einfach an einem Beispiel mit zwei Raspberry Pi’s.

Auf dem ersten Raspberry der als Server aufgebaut wird, muss bereits „Mopidy“ wie im Teil 1 installiert sein. Nun installieren wir den „Snapcast Server“ auf dem RASPI-1.

wget https://github.com/badaix/snapcast/releases/download/v0.10.0/snapserver_0.10.0_armhf.deb

sudo dpkg -i snapserver_0.10.0_armhf.deb

Es gibt eine Datei  „/etc/default/snapserver“ die mindestens folgende Einträge enthalten muss.

START_SNAPSERVER=true

# Allowed options:
#   -h, --help                          produce help message
#   -v, --version                       show version number
#   -p, --port arg (=1704)              server port
#   --controlPort arg (=1705)           Remote control port
#   -s, --sampleformat arg (=48000:16:2)
#                                       sample format
#   -c, --codec arg (=flac)             transport codec [flac|ogg|pcm][:options]
#                                       Type codec:? to get codec specific options
#   -f, --fifo arg (=/tmp/snapfifo)     name of the input fifo file
#   -d, --daemon [=arg(=0)]             daemonize
#                                       optional process priority [-20..19]
#   -b, --buffer arg (=1000)            buffer [ms]
#   --pipeReadBuffer arg (=20)          pipe read buffer [ms]

SNAPSERVER_OPTS="-d --codec flac"

Starten wird den Snapcast-Server

service snapserver start
service snapserver status

Nun begeben wir uns wieder auf den zweiten Raspberry Pi dem RASPI-2 mit dem exemplarischem „X400 Hifi Board“.

Dort installieren wir den „Snapcast Client“

wget  https://github.com/badaix/snapcast/releases/download/v0.10.0/snapclient_0.10.0_armhf.deb
sudo dpkg -i snapclient_0.10.0_amd64.deb

Wir konfigurieren den  Snapcast Client  in der Datei „/etc/default/snapclient“

# defaults file for snapclient

# start snapclient automatically?
START_SNAPCLIENT=true

# Allowed options:
#   --help                          produce help message
#   -v, --version                   show version number
#   -l, --list                      list pcm devices
#   -h, --host arg                  server hostname or ip address
#   -p, --port arg (=1704)          server port
#   -s, --soundcard arg (=default)  index or name of the soundcard
#   -d, --daemon [=arg(=-3)]        daemonize, optional process priority [-20..19]
#   --latency arg (=0)              latency of the soundcard

SNAPCLIENT_OPTS="-d -h 192.168.1.XXXX" <--- Hier die IP-Adresse des Snapcast 
                                    Server also des ersten Raspberry Pi eintragen

Starten des Snapcast Client :

service snapclient start
service snapclient status

Nun starten wir eine beliebige Sounddatei auf dem „Mopidy Server“ (erster Raspberry)
Im Verzeichnis „/var/lib/mopidy/local“ kannst Du eine beliebige MP3-Datei hinkopieren. Diese rufst Du dann mit dem Browser „http://<IP-Adresse>:6680/moped/“ unter „Local“.

Ob sich der Client mit dem Server richtig verbunden hat, kann mit folgendem Befehl auf dem „RAPSI-2“ geprüft werden :

sudo service snapclient status

● snapclient.service - Snapcast client
   Loaded: loaded (/lib/systemd/system/snapclient.service; enabled)
   Active: active (running) since Fri 2016-12-09 17:35:55 UTC; 2 days ago
  Process: 434 ExecStart=/usr/sbin/snapclient $SNAPCLIENT_OPTS (code=exited, status=0/SUCCESS)
 Main PID: 443 (snapclient)
   CGroup: /system.slice/snapclient.service
           └─443 /usr/sbin/snapclient -d -s 0 -h 192.168.1.XXXX


Dec 11 18:59:40 snapclient1 snapclient[443]: Connected to 192.168.10.36

Sollte hier etwas nicht funktionieren , dann überprüfen ob der Snapcast Server auch richtig läuft und eine lokale MP3-Testdatei abgespielt wird.

sudo netstat -tulpn |grep snap

tcp        0      0 0.0.0.0:1704            0.0.0.0:*               LISTEN      7766/snapserver
tcp        0      0 0.0.0.0:1705            0.0.0.0:*               LISTEN      7766/snapserver

Es muss auf jeden Fall auf Port 1704 und 1705 dieser Dienst auf dem RASPI-1 laufen damit der Client auf dem RAPSI-2 sich verbinden kann.

Für die ganz Ungeduldigen habe ich hier noch eine App für Android, mit der die Multiroom Steuerung dann möglich wird. Bitte achtet immer darauf die aktuellste Version zu installieren:

Stand 12.12.2016 Version 0.10.0
https://github.com/badaix/snapcast/releases/download/v0.10.0/Snapcast_0.10.0.apk

Weiter geht es im Teil 3 mit „alsamixer“, „equalizer“, virtuelle Soundkarten und Smartphone Apps (Snapcast , MPDroid).

Einkaufsliste bei Amazon http://amzn.to/2iK8uJF

Hier gibt es ein von mir erstelltes RASPIAN Image schon komplett vorkonfiguriert:

Erreichbar über „http://snapcast.local:6680“

https://dl.dropboxusercontent.com/u/732863/www/Projekte/Raspberry/snapcast.zip

Grüße und viel Spaß mit dem neuen Sound wünscht Dir Joachim

 

5 Kommentare

  1. Hallo, erstmal vielen Dank für die schöne Anleitung. Es sind mir allerdings 2 Sachen aufgefallen…
    der Server hat ..armhf.. als Architektur, am Client steht jedoch ..amd64..
    zum auspacken und installieren steht beim Client „..dkpg..“ statt „..dpkg..“
    Ich freue mich schon auf den dritten Teil.
    Beste Grüße und weiterhin einen guten Wirkungsgrad
    Kai

  2. Vielen Dank für die Anleitung.
    Gibt es beim Pi3 was zu beachten, ich bekomme den Snapserver nicht zu laufen.
    Fehlermeldung:
    „Job for snapserver.service failed. See ’systemctl status snapserver.service‘ and ‚journalctl -xn‘ fo r details.“
    Ich kann mit der Meldung nichts anfangen !
    Danke
    Gruß Thomas

  3. Hallo Thomas

    dann hast Du einen Syntaxfehler drin in der /etc/default/snapserver.
    Schau mal da rein , wenn nicht dann einfach snapcast Server löschen und neu installieren.

    Ansonst einfach diesen Eintrag nehmen

    SNAPSERVER_OPTS=“-d“

    Grüße Joachim

    1. Hallo Joachim,
      ich habe den Raspi3 komplett neu aufgesetzt und habe die gleiche Fehlermeldung bekommen.
      Bei der Installation des Snapcast server’s kam die Meldung das folgendes Paket fehlte:
      libavahi-client3
      das habe ich dann installiert
      sudo apt-get install libavahi-client3
      und der Server läuft.

      Gruß Thomas

Kommentar hinterlassen

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

*