Haus & Hof
Computer & Co.
DIY-Projekte
Haus & Hof
Computer & Co.
DIY-Projekte
Zuerst laden wir uns das aktuelle Raspbian herunter. Zur Erstellung dieser Anleitung war es Raspbian Buster. Ich habe mich für die Variante mit Desktop entschieden. https://www.raspberrypi.org/downloads/raspbian/
Das heruntergeladene Image wird mit einer geeigneten Software (z.B. Etcher) auf die SD-Karte übertragen. Weitere Infos dazu unter https://www.raspberrypi.org/documentation/installation/installing-images/README.md.
Bevor wir den Pi starten können muss noch SSH aktiviert werden. Dazu erstellen wir uns eine Datei mit dem Namen ssh und kopieren diese auf die SD-Karte. Weitere Infos dazu unter https://www.raspberrypi.org/documentation/remote-access/ssh/README.md
Als nächstes wird die SD-Karte in einen RaspberryPi (in meinem Fall ein 3B+) gesteckt. Der Raspberry ist via LAN-Kabel eingebunden. Einschalten…
Nun müssen wir die IP-Adresse herausbekommen, welche der DHCP unserem RaspberryPi vergeben hat. Schaut dazu am einfachsten in Eure Router oder benutzt einen Netzwerkscanner auf dem Smartphone (z.B. Fing). In dieser Anleitung verwende ich die Adresse 192.168.1.74.
Über das Terminal verbindet Ihr Euch mit dem RaspberryPi
ssh 192.168.1.74 -l pi
der Pi antwortet in etwa so
The authenticity of host '192.168.1.74 (192.168.1.74)' can't be established. ECDSA key fingerprint is SHA256:JCO/RbFGRdoLxp8Bc+xtblaiJkPAoo0Btz+pmTG6h+Q. Are you sure you want to continue connecting (yes/no)? ''
Die Frage beantworten wir mit yes und geben nun dass Passwort raspberry ein.
Den Hinweis
SSH is enabled and the default password for the 'pi' user has not been changed. This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
nehmen wir ernst und vergeben uns mit
passwd
ein neues Passwort. Wie man ein starkes Passwort generiert habe ich hier erläutert.
Im nächsten Schritt bringen wir das frisch installierte Raspbian erstmal auf den aktuellen Stand.
sudo apt-get update
sudo apt-get upgrade
sudo reboot
Der letzte Befehl startet den RaspberryPi neu. Im Anschluss stellen wir die SSH-Verbindung wieder mit
ssh 192.168.1.74 -l pi
her und geben das oben neu vergebene Passwort ein.
Nun mach wir uns daran das frisch aufgesetzte System zu konfiguren. Mit Hilfe von
sudo raspi-config
nehmen wir nun folgende Einstellungen vor.
Die abschließende Frage ob der RaspberryPi neu gestartet werden soll beantworten wir mit Yes. Nach dem Neustart verbinden wir uns via SSH wieder mit dem RaspberryPi.
ssh 192.168.1.74 -l pi
Damit wir später auch MP3s auf unser Internetradio ablegen können wird nun ein SAMBA Server eingerichtet. Damit stellt der RaspberryPi dann ein Netzlaufwerk zur Verfügung auf das wir von Windows oder MacOS aus darauf zugreifen können.
sudo apt-get install samba
Die Abfrage ob das Paket dhcp-client installiert werden soll beantworten wir mit Ja.
Nun legen wir noch ein paar Verzeichnisse an, in welches wir später die Musikdateien, Playlisten etc. ablegen wollen.
sudo mkdir /music
sudo mkdir /music/playlists
sudo mkdir /music/podcasts
Damit wir später auch als anonymer User darauf zugreifen können ändern wir gleich noch die Zugriffsrechte der Verzeichnisse.
sudo chmod -v 777 /music
sudo chmod -v 777 /music/playlists
sudo chmod -v 777 /music/podcasts
Jetzt ist die Einrichtung von SAMBA an der Reihe. Mit einem
sudo nano /etc/samba/smb.conf
öffnen wir die Konfigurationsdatei und ergänzen am Ende folgende Einträge
[music] comment = Musik path = /music browseable = yes read only = no guest ok = yes
Abgespeichert wird mit Strg+S und mit Strg+X wird nano beendet.
Nun starten wir den SAMBA-Dienst neu
sudo systemctl restart smbd
und können nun im LAN z.B. von Windows aus über Laufwerke → Netzlaufwerk verbinden auf die Freigabe zugreifen.
Zuerst fügen wir die Mopidy Quellen der Anwendungsverwaltung hinzu und installieren das Basispaket in dem wir folgende Befehle nacheinander im Terminal eingeben:
wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list
sudo apt-get update
sudo apt-get install mopidy
Im nun folgenden Schritt starten wir Mopidy erstmalig
mopidy
und warten ein paar Sekunden bis die Ausgabe
Creating dir file:///home/pi/.local/share/mopidy/http
erfolgt ist um das Programm nun mit Ctrl+C wieder zu unterbrechen. Mopidy legt im Hintergrund ein paar Pfade und Dateien an, welche wir später bearbeiten. Wer später Mopidy als Service laufen lassen möchte fügt in diesem Schritt den User mopidy noch der Gruppe video hinzu.
sudo adduser mopidy video
Damit wir Mopidy später über eine Weboberfläche (Webclients) steuern können muss diese entsprechend auch installiert sein. Ich haben mich für Iris und Mobile entschieden.
sudo python3 -m pip install Mopidy-Iris sudo python3 -m pip install Mopidy-Mobile
Weitere mögliche Webclients wären MusicBox-Webclient, Simple-Webclient, Moped oder Mopify um nur einige zu benennen. Eine Übersicht gibt es hier.
Wer auf Mopidy auch mit externen MPD-Clients (z.B. ncmpcpp) zugreifen möchte sollte sich unbedingt noch Mopidy-MPD installieren.
sudo python3 -m pip install Mopidy-MPD
Nun können je nach Bedarf weitere Addons installiert werden:
# Spotify support
sudo apt-get install mopidy-spotify
# Podcast support
sudo python3 -m pip install Mopidy-Podcast sudo python3 -m pip install Mopidy-Podcast-iTunes
# Last.FM scrobbling support
sudo python3 -m pip install Mopidy-Scrobbler
# Soundcloud support
sudo python3 -m pip install Mopidy-SoundCloud
# TuneIn support
sudo python3 -m pip install Mopidy-TuneIn
# YouTube support
sudo python3 -m pip install Mopidy-YouTube
Wenn alle gewünschten Addons installiert sind bearbeiten wir nun die Konfigurationsdatei mopidy.conf. Diese liegt für den angemeldeten User im Ordner /home/user/.config/mopidy (Beispiel für pi: /home/pi/.config/mopidy/mopidy.conf). Soll Mopidy später als Service unter dem User mopidy laufen gilt der Pfad /etc/mopidy/mopidy.conf.
Egal für welche Variante ihr Euch entscheidet - in der mopidy.conf werden alle zentralen Einstellungen und die der Addons verwaltet. Wir öffnen die Datei mit
sudo nano /etc/mopidy/mopidy.conf
bzw.
sudo nano /home/pi/.config/mopidy/mopidy.conf
Im Abschnitt [core] werden die benutzen Verzeichnisse definiert
Wer Mopidy als Service laufen lassen möchte verwendet folgende Einstellung,
[core] cache_dir = /var/cache/mopidy config_dir = /etc/mopidy data_dir = /var/lib/mopidy
wer Mopidy als User pi startet verwendet stattdessen
[core] cache_dir = $XDG_CACHE_DIR/mopidy config_dir = $XDG_CONFIG_DIR/mopidy data_dir = $XDG_DATA_DIR/mopidy
in beiden Varianten gefolgt von
max_tracklist_length = 10000 restore_state = false
Alle weiteren Einstellungen am besten so wie bei mir übernehmen.
[logging] verbosity = 1 format = %(levelname)-8s %(asctime)s [%(process)d:%(threadName)s] %(name)s\n %(message)s color = true [audio] mixer = software mixer_volume = 90 output = autoaudiosink buffer_time = 1000
Wer später den Sound von Mopidy zusätzlich noch an einen Streamingserver (z.B. Icecast) ausgeben will verwendet in der Zeile output = folgende Parameter:
output = tee name=t ! queue ! audioresample ! autoaudiosink t. ! queue ! lamemp3enc ! shout2send async=false mount=mopidy ip=127.0.0.1 port=8000 password=yxasqw123EDC
[local] media_dir = /music [file] enabled = true media_dirs = /music excluded_file_extensions = .directory .html .jpeg .jpg .log .nfo .pdf .png .txt .zip show_dotfiles = false follow_symlinks = false metadata_timeout = 1000 [http] enabled = true hostname = 0.0.0.0 port = 6680 zeroconf = Mopidy HTTP server on $hostname csrf_protection = true default_app = mopidy [mpd] enabled = true hostname = 0.0.0.0 port = 6600 password = max_connections = 20 connection_timeout = 60 zeroconf = Mopidy MPD server on $hostname command_blacklist = listall listallinfo default_playlist_scheme = m3u
[m3u] enabled = true base_dir = /music default_encoding = latin-1 default_extension = .m3u8 playlists_dir = /music/playlists
[softwaremixer] enabled = true
[tunein] enabled = true timeout = 5000
Um Mopidy-Spotify nutzen zu können benötigen wir API Zugriff auf Spotify. Die client_id und das client_secret bekommt ihr hier.
[spotify] enabled = true username = DEIN_SPOTIFY_USERNAME password = DEIN_SPOTIFY_PASSWORT client_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx client_secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx bitrate = 160 volume_normalization = true private_session = false timeout = 10 allow_cache = true allow_network = true allow_playlists = true search_album_count = 20 search_artist_count = 10 search_track_count = 50 toplist_countries =
Ähnlich ist es bei SoundCloud. Hier benötigen wir einen auth_token welchen wir hier bekommen.
[soundcloud] enabled = true explore_songs = 25 auth_token = x-xxxxx-xxxxxxxxx-xxxxxxxxxxxxxxx
Für den Zugriff auf Last.FM genügen Benutzername und Passwort.
[scrobbler] enabled = true username = DEIN_LASTFM_USERNAME password = DEIN_LASTFM_PASSWORT
Etwas komplizierter wird es bei Youtube. Hierfür benötigen wir einen youtube_api_key. Eine einfaches Videotutorial wie man diesen erstellt bzw. bekommt gibt es hier.
[youtube] enabled = true youtube_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx api_enabled = false threads_max = 16 search_results = 15 playlist_max_videos = 20
Nun werden noch die Podcast-Quellen eingerichtet. Die Datei podcasts.opml ist eine XML-Datei welche in meinem Beispiel im Ordner /music/podcasts liegt. Diese kann man ganz leicht selbst erstellen oder z.B. in iTunes erzeugen.
[podcast] enabled = true browse_root = /music/podcasts/podcasts.opml browse_order = desc lookup_order = asc cache_size = 64 cache_ttl = 86400\\ timeout = 10\\ ''
Noch einfacher geht es bei diesem Addon. Hier übernimmt Apple die Verwaltung des Podcast-Verzeichnisse und sortiert dieses für uns nach Genres. Da das Verzeichnis öffentlich ist wird auch keine weitere Authentifizierung benötigt.
[podcast-itunes] enabled = true base_url = http://itunes.apple.com/ country = DE explicit = Yes charts = audioPodcasts charts_limit = 20 search_limit = 20 timeout = 10 retries = 3
Wurde Mopidy für einen User z.B. pi eingerichtet so lässt sich Mopidy durch einfach durch Eingabe von
mopidy
starten. Möchtet ihr Mopidy als Service starten bzw. später beim Hochfahren des RaspberryPis starten lassen so müssen wir es zunächst in die Liste der Systemdienste aufnehmen. Das geschieht ganz einfach mit
sudo systemctl enable mopidy
Danach können wir Mopidy mit
sudo systemctl start mopidy
starten. Das Programm läuft nun als Prozess im Hintergrund.
Bei beiden Varianten dauert es je nach Anzahl und Typ der aktivierten Module bis zu zwei Minuten bis Mopidy fertig geladen ist. Gerade bei Spotify werden im Hintergrund jede Menge Daten und Playlists geladen.
Den Webclient erreichen wir im Browser unter http://192.168.1.74:6680/. Wenn nichts schiefgegangen ist, begrüßt uns Mopidy mit folgendem Bild. Die jeweiligen installierten Webclients erreicht ihr mit Klick auf den Link - in unserem Beispiel iris oder mobile).
Die folgenden Erweiterungen können erst nach erfolgreicher Installation von Mopidy eingerichtet werden. In meinem Beispiel sind sie erst Tage bzw. Wochen später hinzugekommen.
In unserer bisherigen Konfiguration wurden nur Webclients eingerichtet um Mopidy zu steuern. Mit ncmpcpp gibt es ein Programm mit dem man Mopidy über ein Terminal steuern kann. Alle Funktionen sind möglich und man benötigt dafür kein Betriebssystem mit grafischer Benutzeroberfläche und auch keinen Browser.
In meinem Fall war es ein alter RaspberryPi 1B mit Monitor, welcher bisher in der Werkstatt für die Überwachungskamera zuständig war, der mit neuen Funktionen ausgestattet wurde. Zugriff auf Internet-Radiostreams, auf Spotify, SoundCloud, Youtube und das nur vom Terminal aus - das ist schon irgendwie cool.
Die Installation wird mit
sudo apt-get install ncmpcpp
gestartet und das war es auch schon. Wichtig ist, dass Mopidy-MPD installiert und der entsprechende Konfigurationsabschnitt in der mopidy.conf vorhanden ist. Eine Übersicht der Tastaturbelegung findet ihr hier.
Betreibt man seine Mopidy-Server „headless“, also ohne angeschlossene Tastatur oder Monitor, so lässt sich mit diesem Plugin eine Default-Playlist setzen. Diese wird beim Start automatisch abgespielt. In meinem Fall ist es eine Playlist vordefinierter Radiosender mit dem Namen Radio-Favoriten.
Installiert wird das Plugin mit
sudo python3 -m pip install Mopidy-DefaultPlaylist
Der entsprechende Abschnitt in der mopidy.conf sieht dann so aus
[defaultplaylist] enabled = true defaultplaylist_name = Radio-Favoriten autoplay = true shuffle = true
Die Option shuffle = sorgt dafür das bei jedem Neustart ein anderer Sender abgespielt wird.
Um noch weitere Clients im LAN (oder wahlweise auch weltweit) mit Musik zu versorgen kann man zusätzlich noch einen Streamingserver aufsetzen. Dieser läuft parallel zu Mopidy und stellt für angeschlossene Geräte einen MP3-Stream bereit.
sudo apt-get install icecast2
Letzte Änderung — Kai Ortelt 2020/03/24 15:26