UPDATE 2021:
Viel einfacher, stabiler und auch flexibler (da einfach auf ein bestehendes Rasperry Pi OS installierbar) geht es mit LMS (Logitech Media Server) und Squeezelite (Client / Player).
Mich hatte in der ursprünglichen Recherche nach einem Multiroom-System das „Logitech“ im Namen abgeschreckt. Der Name täuscht aber, es ist kein proprietäres System – Logitech entwickelt tatsächlich quelloffen… Die Software scheint viel öfter geupdatet zu werden als Volumio und scheint mir auch insgesamt solider. Außerdem gibt es sehr viele ports auf die verschiedensten Hardware-Plattformen.
Hätte ich das mal früher probiert.. naja, deswegen ist Bob auch für Recherchen (und Archiv) zuständig, und nicht ich 😉
Mehr über das Setup mit LMS und Squeezelite steht hier.
Ursprünglicher Beitrag von 2018:
Volumio ist super, um eine Raspberry Pi in einen dedizierten Audioplayer, mit allen denkbaren Funktionen zu verwandeln. Insbesondere die Spotify-Integration hat mir bei Volumio gut gefallen.
Mein Volumio-Player ist ein Raspberry Pi Zero W, auf das ich ein Hifi-Berry DAC+ Zero Raw gelötet habe, und dient als Spotify-Connect-Player für die Wohnzimmer-Hifi-Anlage.
(Edit Januar 2020: Mittlerweile ist es ein Pi 3 B+ mit einem Hifi-Berry DAC+)
Durch Zufall bin ich dann auf die Möglichkeit gestoßen, aus mehreren, mit Volumio bestückten Raspberry-Pis, ein Multi-Room-System zu bauen. Jeder Lautsprecher, jede Bluetooth-Box mit Aux-Eingang wird dann zum Multi-Room-Device. Natürlich vorausgesetzt, man besitzt noch weitere Raspberry Pis…
Möglich macht’s das Snapcast-Plugin von Saiyato.
Im Netz gibt es schon einige Anleitungen, wie man Volumio + Snapcast installiert, allerdings waren die nie vollständig. Deswegen hier mal die notwendigen Schritte:
- Volumio auf dem Raspberry Pi installieren
- SSH auf dem Volumio aktivieren (über das Webinterface unter „http://volumio.local/dev“)
- Das Snapcast Plugin via SSH installieren (SSH username=volumio, pass=volumio)
git clone https://github.com/Saiyato/volumio-snapcast-plugin.git
cd volumio-snapcast-plugin/
rm volumio-snapcast-plugin.zip
volumio plugin install
(EDIT: Mittlerweile kann man das Snapcast plugin auch über das Webinterface installieren! Unter Plugins -> Misc. Punkt 2 und 3 ist damit überflüssig)
- Das Plugin über das Volumio-Webinterface konfigurieren. Das ist relativ selbsterklärend. Es gibt einen Snapcast Server und dazugehörige Clients.
- Nun sollte man bereits ein funktionierendes Multi-Room-System haben. Der Server streamt einen synchronen Stream an alle Clients. Wichtig ist, dass man auch beim Server selbst eine Client-Instanz aktiviert und hier „localhost“ einstellt, damit der Server selbst auch Snapcast zur (dann mit den Clients synchronen) Audio-Wiedergabe benutzt. Ganz praktisch ist noch die Android-App „SnapDroid“, mit der man die Lautstärke der einzelnen Multi-Room-Instanzen fernsteuern kann
Vorteil der Snapcast-Lösung gegenüber anderen Multi-Room-Systemen ist, dass Snapcast das Audiosignal nach der Quelle abgreift und als Audio-Stream an die Clients verteilt. Nur so kann man mit nur einem Spotify-Account mehrere Clients gleichzeitig bedienen.
Als Codecs stehen PCM, ogg und FLAC zur Auswahl. FLAC zusammen mit „-c flac:4“ in der „Additional CLI commands“ klingt und funktioniert am besten, hier gibt’s noch Infos dazu.
Will man Spotify Connect benutzen, wird es trotzdem etwas komplizierter:
- Auf dem Snapcast-Server „Volumio Spotify Connect 2“ über das Plugin-Menü im Webinterface installieren und aktivieren, falls noch nicht gemacht
- Unter den Snapcast-Plugin-Settings sowohl beim Server, als auch bei allen Clients, überall 44,1 kHz einstellen, da es sonst zu lustigen Fehlern beim Resampling kommt (Spotify-Musik läuft sonst z.B. zu schnell/hochgepitched)
- Unter den Snapcast-Plugin-Settings des Servers im Abschnitt „Spotify Integration“ „volspotconnect2“ einstellen, und auf save klicken
- das Snapcast-Plugin-Fenster neu laden
- Das Auswahlfeld unter „Patch Spotify Configuration File“ sollte nun automatisch entsprechend den oberen Einstellungen aktualisiert worden sein. In unserem Fall sollte da „volspotifyconnect2“ stehen.
- Nun auf „patch file“ klicken
- Zum Spotify Connect Plugin wechseln
- Hier einfach direkt auf „save“ klicken (die vorhin gepatchte File wird nun aktiviert)
- Fertig
Will man das Spotify Standalone-Plugin von Volumio nutzen, geht man analog der oberen Schritte vor. Allerdings ist zum Zeitpunkt dieses Blogeintrags das standalone Spotify Plugin verbuggt, da Spotify die API vor kurzem verändert hat – man kann seine Playlists nicht mehr durchsuchen. Einen etwas umständlichen temporären Fix gibt es hier (Kurzversion: Diese index.js zusammen mit dem refresh token, den man bei Zeile 451 der index.js einfügt, ersetzt die bestehende index.js unter /data/plugins/music_service/spop. Danach Volumio neustarten!).
(Edit Dezember 2019: Es gibt nun eine aktualisiertes Spotify Plugin (V 2.00 direkt im Volumio-Plugins-Menü installierbar) mit eingebauter auth-Funktion!)
Àpropos „Fix“: Aus irgendeinem Grund ist bei Volumio keine Zeitzone eingestellt, es wird UTC angenommen. Um nicht bei der Weck- und Einschlaffunktion, oder bei etwaigen cronjobs, umständlich rumrechnen zu müssen, gibt man folgendes via SSH ein:
sudo nano /etc/default/crda
im Editor dann vervollständigen:
REGDOMAIN=ETSI
speichern und schließen, dann:
timedatectl set-ntp true
sudo dpkg-reconfigure tzdata
hier dann dem Menü folgen und die richtige Zeitzone einstellen, in meinem Fall Europe>Berlin. Überprüfen, ob es geklappt hat, geht mit:
date
Bonus!
Wer wie ich einen alten Laptop in einer Schublade liegen hat, kann zusätzlich noch die x86-Version von Volumio auf einem bootfähigen USB Stick installieren und den Laptop damit booten. Damit erhält man dann automatisch die Volumio-Kiosk-Version, d.h. man braucht zur Steuerung von Volumio kein Webiterface, sondern kann dies direkt am Laptop-Display tun, was z.B. für Parties ganz praktisch sein dürfte.
Nachtrag 1!
Wer wie ich Volumio als Spotify-Wecker mit dem Standalone-Spotify (SPOP) benutzten will, bekommt einige Stolpersteine in den Weg geschmissen. Die integrierte Weckfunktion von volumio funktioniert nicht mit Spotify-Wiedergabelisten.
Lösung: cronjob! Das muss man zunächst installieren:
sudo apt-get install cron
mit
crontab -e
erstellt man einen neuen crontab:
# unter der woche
30 7 * * 1-5 /volumio/app/plugins/system_controller/volumio_command_line_client/volumio.sh next
15 8 * * 1-5 /volumio/app/plugins/system_controller/volumio_command_line_client/volumio.sh pause
#samstag und sonntag
25 9 * * 6,7 /volumio/app/plugins/system_controller/volumio_command_line_client/volumio.sh next
30 10 * * 6,7 /volumio/app/plugins/system_controller/volumio_command_line_client/volumio.sh pause
Im obigen Beispiel „klingelt’s“ unter der Woche von 7:30 bis 8:15, am Wochenende von 9:25 bis 10:30 Uhr.
Wenn man die Zeitzone wie vorher beschrieben eingestellt/gefixt hat, passt hier auch alles (mit „date“ kann mans noch mal prüfen).
Nun muss man noch die Spotify-Tracks oder Spotify-Playlists (Achtung: Spotify-Playlists werden ab 100 Tracks gecropped!) in die Warteschlange von Volumio schieben, und am besten die zufällige Wiedergabe einstellen.
Fertig! Von nun an hat man einen Spotify-Wecker! Klappt natürlich auch mit Snapcast!
Hier ist übrigens meine Aufwach-Playlist, in 100-Track-Parts gesplittet, damit beim Import in die Volumio-Warteschlange nichts gecropped wird: Part 1, Part 2, Part 3, Part 4
Nachtrag 2:
um die Android-App RasPi Check mit Volumio benutzen zu können (praktisch, um z.B. die CPU-Temperatur zu checken), tippt man folgendes in SSH:
sudo apt-get install binutils
sudo nano /etc/rc.local
Oberhalb der Zeile mit „exit 0“ fügt man nun folgendes ein:
# make /dev/vchiq accessible for the video group
chgrp video /dev/vchiq
chmod g+rw /dev/vchiq
speichern und schließen. Nun sollte RasPi Check nach einem Reboot wie gewohnt funktionieren
Nachtrag 3:
Das ist ganz praktisch, wenn man wie ich volumio auch als „Radiowecker“ benutzt:
Ein “ Lautstärke-fade-in“ script, welches nach dem Start von Volumio ausgeführt wird, hab ich hier als Variante, die die Snapclient volumes steuert (benötigt python und eine externe library „snapcast.control„) und hier als Variante, die die Lautstärke via CLI command steuert.
Die Snapclient-Variante funktioniert auch bei DACs, die keinen Hardware Mixer haben, wie z.B. der HifiBerry Zero.
Nachtrag 4:
Es gibt mittlerweile einen Windows Client!