Raspberry Pi + Hifiberry – SnapCast Client einrichten

Dies ist ein weiteres Tutorial zu meinem „Mopidy + Snapcast – Multi-Room Music-Setup“ und basiert daher auf diesem.
In dieser kurzen Anleitung möchte ich Einsteigern helfen, ein kleines und smartes Wiedergabegerät für SnapCast zu basteln.
Somit kann die „Unsmarte“ Stereoanlage mit dem Stream des SnapCast-Servers versorgt werden.

Was wird benötigt?
– Ein Raspberry Pi (oder ähnliches*)
– Optional aber empfohlen: Ein DAC
– Eine SD-Karte für das OS (4GB reichen total aus)
– Kabel, um alles anzuschließen
– Ein PC, um das OS auf die SD-Karte zu flashen
– Ein fertiges Snapcast-Setup nach meiner Anleitung

*Flashvorgänge können anders sein!

Ich habe für das Tutorial ein Raspberry Pi Zero WH und ein HifiBerry DAC+ Zero genutzt.
Das Setup kostet zusammen rund 30€, mit Gehäuse etwa 40€.
Das Gespann braucht etwa 0,6 Watt und das gibt ein USB-Port an meinem verstärker problemlos her. Gleichzeitig kann alles passiv gekühlt werden und es ist klein und handlich.

Welcher Raspberry Pi soll ich nehmen?
Es kommt auf deine Bedürfnisse an.
Ein Raspberry Pi Zero / Zero 2 reicht vollkommen aus, sofern WLAN zur Verfügung steht.
Ansonsten nimm einen mit einem LAN-Anschluss.
Der Pi hat absolut nicht viel zu tun und ein einfacher Stream bringt einen Pi Zero auf ca. 15% Auslastung maximal.

Welchen DAC soll ich kaufen und brauch ich einen?
Wenn du z.B. per HDMI den Ton an deine Anlage übertragen willst, brauchst du kein DAC. Nimm einfach ein Mini-HDMI auf HDMI-Adapter und schließ alles einfach so an.
Wenn du auf eine Analoge Übertragung setzen willst, kauf dir ein DAC. Die Audioqualität ist gleich um ein vielfaches besser.
Ich bin kein Audioprofi, aber ich würde mal behaupten, für eine einfache Stereoanlage reicht ein günstiger DAC für 15-30€ vollkommen aus.
Audiophiele sollten vielleicht doch dann zu den teureren und qualitativ hochwertigeren greifen.
Jeder hat ja ein anders Gehör 😉
Ich habe mich für den Hifiberry DAC+ Zero v. 1.0.1 in der „Bastel-Variante“ entschieden, da nur der zu einem vernünftigen Preis erhältlich war.

(Lötstellen sind nicht schön, dafür selten :D)

Los gehts!




1. Stecke die SD-Karte in einen Kartenleser und dann ab damit in dein Rechner
2. Downloade dir den Raspberry Pi Imager und installiere ihn
https://www.raspberrypi.com/software/
3. Öffne den Raspberry Pi Imager
4. Wähle bei „Choose OS“ das System „Raspberry Pi OS Light“ aus
→ Es ist ein sehr schlankes OS und hat nur das notwendigste an Bord. Perfekt für unser Mini-Setup!

5. Wähle bei „Choose Storage“ deine SD-Karte aus

6. Drücke SRTG + Shift + X und es sollte sich ein Konfigurationsmenü öffnen
7. Hier kannst du folgendes tun
→ Gebe dem Pi einen leicht erkennbaren Hostname
→ Aktiviere den SSH-Zugriff und gebe ein Passwort dafür an
→ Gebe deine WLAN-Zugangsdaten ein
→ Setze die gewünschte Zeitzone und das Tastaturenlayout fest
→ Optional aber empfohlen: Aktiviere das überspringen des Einrichtungsassistenten
→ Optional: Deaktiviere unten die Telemetriedaten

8. Speichere alles ab und drücke dann auf „Write“
→ Warte den Flash-Vorgang ab.
9. Lege die SD-Karte in deinen Pi ein, stecke das DAC drauf und schließe den Strom an

10. Ist der Pi hochgefahren, solltest du ihn per SSH über die IP erreichen können
→ Schau mal in deinem Router (DHCP-Server) nach, welche IP-Adresse der Pi bekommen hat
11. Logge dich per SSH auf deinem Pi ein
→ Benutzername: pi
→ Passwort: Das in Schritt 7 hinterlegte Passwort
12. Führe ein Upgrade des Pis durch

# rpi-update

13. Update den Pi

# apt update && apt upgrade -y && apt autoremove -y

14. Installiere die Alsa-Erweiterung Utils, damit das DAC korrekt funktioniert

# apt install alsa-utils

15. Öffne die config.txt Datei im Boot-Ordner mit einem Texteditor (Diesen Schritt müssen Personen die HDMI nutzen NICHT machen!)

# nano /boot/config.txt

16. Suche nach dtparam=audio=on, kommentiere diese Zeile aus und füge darunter dtoverlay=hifiberry-dac ein (Diesen Schritt müssen Personen die HDMI nutzen NICHT machen!)

# dtparam=audio=on
dtoverlay=hifiberry-dac

→ Weitere Installationsvarianten gibts für den HifiBerry DAC HIER.

17. Speichere die Datei ab
18. Starte den Pi neu
19. Prüfe über alsamixer, ob der DAC korrekt erkannt wurde

# alsamixer

Keine Panik, bei den günstigen DACs ist eine Lautstärkeregelung nicht möglich! Wenn du HDMI als Wiedergabequelle nutzt, solltest du eine Lautstärkeregelung zur Verfügung haben (Steuerbar über die Pfeiltasten).

Eine Regelung der Lautstärke ist aber im Normalfall nicht notwendig, da dies dann von der Stereoanlage übernommen wird. Zur Not lässt sich das über Mopidy oder einem anderen SnapCast-Client steuern.
20. Downloade die aktuellste Version von SnapClient

# wget https://github.com/badaix/snapcast/releases/download/v0.25.0/snapclient_0.25.0-1_armhf.deb

21. Installiere SnapClient

# dpkg -i snapclient_0.25.0-1_armhf.deb

ACHTUNG: ggf. Versionsnummer anpassen! 😉

Falls ein Problem mit Abhängigkeiten besteht, installiere diese einfach.

# apt install libvorbisidec1

22. Um den Snapcast-Server direkt festzulegen und nicht auf das automatische auffinden des Servers zu warten, kannst du die IP direkt in der Konfiguration eintragen

# nano /etc/default/snapclient
SNAPCLIENT_OPTS="-h 192.168.0.123 -p 1704"

→ -h definiert den Host, also unseren Server. Trage dahinter die IP des Snapcast-Servers ein
→ -p definiert den Port des Snapcast-Servers. In der Standardkonfiguration ist es Port 1704.

23. Du kannst SnapClient auch als Service noch aktivieren, damit er über SystemD gesteuert wird

# systemctl enable snapclient
# systemctl start snapclient

Fertig!
SnapClient sollte sich jetzt beim SnapServer melden und Musik abspielen können!


OPTIONAL
Um eine Art „Anstecken und Vergessen“-Pi zu haben, können wir auch eine automatische Updatefunktion erstellen.
Damit updatet sich der Pi alleine und wir müssen uns nicht sonderlich aktiv darum kümmern.
Das ist natürlich mit etwas Vorsicht zu genießen, da ein Update auch mal schief gehen kann!
Sollte der Pi aber nur für die Wiedergabe genutzt werden, ist er in der Regel bei einem Systemcrash ja schnell wieder aufgesetzt 🙂

24. Ein kleines Update-Script anlegen

# nano /root/update.sh
apt update && apt upgrade -y && apt autoremove -y && reboot

25. Das Script per Cronjob ausführen lassen

# nano /etc/crontab
29 5 1 * * root /root/update.sh > /dev/null 2>&1

Das Beispiel hier, führt das Script an jedem 1. im Monat um 5:29 Uhr aus. Ich denke mal, da braucht keiner den Pi oder?

Viel Spaß beim Musik hören!


Fertige Einkaufslisten

Ich habe hier einmal zwei Wunschlisten bei Geizhals angefertigt, die alles beinhalten, was du für einen Snapcast-Client brauchst.
Liste 1 – Ausgabe per HDMI
Liste 2 – Ausgabe per Klinkenstecker per DAC (Analog)

5 Kommentare

  1. Hallo,
    ..erst einmal vielen Dank für deine Arbeit – ich habe die Serverinstallation und die Clientinstallation mit einigen kleinen Hindernissen erfolgreich abgeschlossen:
    Jeder hat nicht die gleichen Voraussetzungen und so kommt es manchmal zu kleinen Fehlern.
    Der Snapclient hat bei mir nicht auf Anhieb funktioniert.

    Einige Papete fehlten mir:
    //fehlende Pakete für snapclient
    libavahi-client3
    libopus0
    libpulse0
    libsoxr0
    libvorbisidec1

    //gefixt über:
    sudo apt –fix-broken install

    ..danach lief es dann 😉
    Nun habe ich doch noch eine Frage:
    Mein Dac hat natürlich einen analogen Stereoausgang – da würde ich gerne eine Audioquelle dran hängen – wie kriege ich das auf Mopidy?

    • Hi!
      Danke für dein Feedback.
      Die Anleitung ist leider noch nicht ganz „Idiotensicher“ und ehr für „Bastler“ geeignet.
      Scheinbar fehlen bei deinem OS noch die Pakete. War bei mir bisher nicht der Fall.
      Aber du hast sie ja installiert bekommen. Das ist super!

      Der Audioausgang kann über Mopidy nicht gesteuert werden.
      Das muss direkt auf dem Wiedergabegerät gesetzt werden.
      Je nach DAC und eingesetztem System, musst du hier die Wiedergabe von Hand auf den gewünschten Audioausgang setzen.
      Mopidy sieht hier nur den Snapclient, was an sich nur eine Wiedergabequelle ist.

  2. Hi,
    ..habe gerade was gelesen, vielleicht ist das ein Ansatz um den Client in beide Richtungen zu nutzen 😉

    https://community.rhasspy.org/t/stream-music-or-radio/497/30

  3. Pingback:Mopidy + Snapcast – Multi-Room Music-Setup - Hoerli.NET

  4. Pingback:welle.io - DAB+ Radio verteilen mit Snapcast - Hoerli.NET

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.