„Hey Papa, ich kann nichts hören. Alexa sagt das Gerät wird bereits verwendet“ oder „Du hast mein Hörspiel unterbrochen und deinen Kram jetzt bei mir angemacht“, diese und ähnliche Aussagen gehören bei mir jetzt der Vergangenheit an, denn ich habe für mich Music Assistant entdeckt.
Home Assistant sollte fast jedem Technik Interessierten ein Begriff sein und wird in vielen Haushalten eingesetzt. Neben Home Assistant haben die Entwickler auch noch Music Assistant geschaffen. Music Assistant will deine Musikquellen unter einer UI zusammenfassen, ähnlich wie es Home Assistant für deine Heim macht. Music Assistant ermöglicht es verschiedene Quellen zu bündeln und ebenfalls verschiedene Wiedergabegeräte zu nutzen. Dazu kommt noch eine Userverwaltung, die z.B. den Zugriff auf bestimmte Player einschränkt. Gerade letzter Punkt kann für Familien sehr interessant werden. Da Musik für viele ein wichtiges Thema ist und gerade in Familien verschieden Vorlieben und Geschmäcker aufeinandertreffen, lohnt es sich das Thema mal genauer zu betrachten. Eventuell ist Music Assistant (MA) auch für dich etwas.
Neben einer Weboberfläche, gibt es auch mittlerweile eine iOS und Android App , die macht es natürlich allen Familienmitglieder einfacher. Die Apps befinden sich zwar noch in der Beta Phase, bieten aber schon ein sehr gutes Handling. Ich bin mit der iOS Variante jedenfalls sehr zufrieden.
Aktuell nutzen wir Alexa um Musik über Sonos Lautsprecher wiederzugeben. Als Diensteanbieter nutzten wir früher Spotify, was aber nur einen Stream pro Account zulässt. Somit sind wir zu Apple Musik gewechselt, was dieses Problem umgeht. Leider hat Alexa die unschöne Angewohnheit Amazon Music als Fallback zu nutzen, was auch nicht abgeschaltet werden kann. Alexa findet oft nichts, obwohl es da ist und wechselt dann zu Amazon Music. Wir wäre ja gerne bei Spotify geblieben, mit unserem Familien-Account, aber diese Stream Einschränkung hat es leider notwendig gemacht. Es gibt dazu einfach bisher keine für uns zufriedenstellende Lösung.
Music Assistant bietet euch hier die Freiheit die ihr haben wollt und könnt entsprechende Berechtigungen vergeben. Ebenso kann Music Assistant in Home Assistant integriert werden, was für mich persönlich aber nicht so wichtig ist. Mir geht es mehr darum den Hausfrieden sicherzustellen, so das Kind A nur auf den Lautsprecher A zugreifen kann und Kind B somit nicht nervt. Über Alexa ist das (bisher) nicht zufriedenstellend lösbar und hat schon öfters zu Streit geführt. In MA ist das Thema kein Problem und schnell erledigt.
Music Assistant App installieren
Music Assistant wird als zusätzliche App (früher Add-on) installiert. Geht dazu auf Einstellungen -> Apps -> App installieren und sucht nach Music. Ihr habt nun die Wahl zwischen der normalen Version, BETA und NIGHTLY. Wir wählen natürlich die normale Version und bestätigen dieses noch über Installieren. Am Ende aktiviert ihr noch eure gewünschten Optionen (Autostart und Seitenleiste) und startet die App.



Erstkonfiguration
In euerer Seitenleiste findet ihr nun Music Assistant und könnt auf die Nutzeroberfläche zugreifen. Music Assistant möchte von euch auch erst mal eingerichtet werden, indem ihr Musikanbieter und Wiedergabegeräte hinzufügt. Sobald ihr das erledigt habt, könnt ihr auch schon Musik abspielen. Hier sind auch einige Geräte aufgetaucht, die ich nicht haben will. Um unerwünschte Geräte auszublenden, gibt es mindestens zwei Möglichkeiten. Die erste Möglichkeit ist es den betreffenden Dienst zu deaktivieren. Somit habe ich DLNA, Chromecast und Airplay in den Einstellungen unter Einstellungen -> Wiedergabegeräte-Anbieter deaktiviert. Mittlerweile werden diese auch nicht mehr sofort aktiviert. Ihr habt ebenfalls die Möglichkeit Nutzerkonten anzulegen und dort Dienste und Geräte zu Whitelisten.
Die Liste an verfügbaren Musikanbietern ist gar nicht klein. So könnt ihr z.B. wählen aus ARD Sounds, Soundcloud, Audible aber auch euer Filesystem. Es lässt sich also sehr viel abdecken und gezielt pro Account freigeben.



Music Assistant setzt auf die Benutzer von Home Assistant auf, kann aber auch eigene Konten nutzen. Da meine Kinder bisher keinen Zugriff auf Home Assistant haben, nutze ich die eigenen Konten von Music Assistant. Diese kann ich auch für die iOS App nutzen. Neue Nutzer könnt ihr unter Einstellungen -> Benutzerverwaltung anlagen. bei den Kinderkonten habe ich den Zugriff auf den eigenen Lautsprecher beschränkt, damit es keine „Fehlbedienung“ geben kann. Hier könnt ihr auch die erlaubten Musikanbieter festlegen.

Integration in Home Assistant
Sobald ihr MA installiert habt, wird euch auch innerhalb von HA die Integration angeboten. Ebenfalls könnt ihr alle Player aus MA einem Bereich zuordnen. Die Integration in HA ist für mich aktuell weniger interessant, ich habe da für mich noch keinen Usecase gefunden, aber das wird sich bestimmt noch ändern.


Es gibt ebenfalls eine Karte für euer Dashboard, welche ihr zu HA hinzufügen könnt. Die Karte ist ganz gut gemacht, ich nutze sie aber selber nicht. Ich greife lieber auf MA direkt zu, per Web oder App. Die Karte findet ihr im HACS-Store, müsst aber zuvor noch die Queue Actions installieren. Ihr könnt das gerne testen, ich bevorzuge aber lieber (aktuell) den direkten Zugriff und gehe daher nicht weiter auf das Thema ein. Ich kann auch einfach zu wenig dazu sagen.


Music Assistant iOS App oder WebApp nutzen
Über den Port 8095 (http://yourha-instance:8095) könnt ihr direkt auf Music Assistant zugreifen und euch mit den zuvor angelegten Accounts anmelden. Wer ein Home Assistant Cloud Abo nutzt, kann diesen ebenfalls für Music Assistant nutzen. Der Rest muss sich mit Portfreigaben, ReverseProxies oder eigenen Webserver begnügen, um externen Zugriff zu ermöglichen. Ich selber nutze einen Apache als ReverseProxy, welcher mir den Zugriff über eine Subdomain ermöglicht. Das werden wohl aber die wenigsten im Einsatz haben. Die Mehrheit wird wohl mit Portfreigaben und DynDNS arbeiten. Wer MA aber nur zu Hause nutzen will, braucht das nicht, dann reicht die lokale IP aus. Ihr könnt MA aber auch unterwegs nutzen, und auf eurem Handy streamen. Music Assistant gibt es auch auf CarPlay, also wird alles abgedeckt.
Mit dem Stand (01.10) ist die iOS App aktuell nur über Testflight nutzbar und somit als Test anzusehen, genau so wie die Android App. Die iOS App lässt sich teilweise besser bedienen als die WebApp und liefert mir bessere Suchergebnisse. Ich bin damit also ganz zufrieden. Die Oberfläche ist einfach gehalten und bietet gute Sortiermöglichkeiten. Ich persönlich bevorzuge jedenfalls aktuell die App und nutze nur selten die WebUI.



Zugriff von Extern
Damit ihr nicht über die gleichen Stellen wie ich fallt, hier kurz ein paar Reminder.
Solltet ihr den Zugriff über einen Apache und den Default Port 8095 ermöglichen, müsst ihr die ports.conf anpassen, damit der Apache auf den Port 8095 hört. Euere Firewall muss dann ebenfalls den Port 8095 erlauben. Anschließend könnt ihr in eurem VirtualHost einen neuen Abschnitt für den Port 8095 hinzufügen.
root@webserver:~# cat /etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80
Listen 8095
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
ShellScriptHier mal eine Beispielkonfiguration für einen Apache als ReverseProxy. Die Möglichkeiten sind auch hier natürlich verschieden, somit nutzt die Konfig als Beispiel.
<VirtualHost *:80>
ServerName music.yourdomain.de
Redirect / https:/music.yourdomain.de
ErrorLog ${APACHE_LOG_DIR}/music-error.log
CustomLog ${APACHE_LOG_DIR}/music-access.log common
</VirtualHost>
<VirtualHost *:443>
ServerName music.yourdomain.de
#proxy settings
ProxyPreserveHost On
ProxyPass / http://192.168.11.18:8095/ upgrade=websocket
ProxyPassReverse / http://192.168.11.18:8095/
#Logging
ErrorLog ${APACHE_LOG_DIR}/music-error.log
CustomLog ${APACHE_LOG_DIR}/music-access.log common
#Certificates for SSL
SSLCertificateFile /etc/letsencrypt/live/music.yourdomain.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/music.yourdomain.de/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
ShellScriptMusic Assistant greift auch auch Websockets zu, also nicht upgrade=websocket vergessen.
Ich bin bisher ganz zufrieden und das Projekt erhält regelmäßig Updates. So können sich Dinge hier und da immer wieder verändern. Für mich wurde jedenfalls ein generelles Problem gelöst, welches Alexa mit sich bringt. Ich kann nun komplett auf Amazon Music verzichten und meine Kindern können nicht mehr versehentlich den Stream des Anderen unterbrechen oder ändern. Somit kann erst mal kein weiterer Streit entstehen und alle sind zufrieden. Also wer ähnliche Probleme hat, sollte ruhig mal einen Blick auf MA werfen, eventuell hilft es ja bei der Lösung eurer Probleme und stellt den Hausfrieden wieder her.




