Sonos Kids Controller (nun auch für andere Spotify Connect Geräte): Touchscreen Jukebox für nicht mehr ganz so kleine Kinder

  • So, habe jetzt alles soweit installiert. Ich habe es nach der Step by Step Anleitung von Seite 5 gemacht. Nach dem Befehlt NPM Start, komme ich auf die schwarze Seite und sehe die Icon, wenn ich die Schritte danach ausführe, funktioniert leider nichts mehr. Ich komme nicht mehr auf die Seite:

    This site can´t be reached.

    Try:

    Checking the connection

    Cheking the proxy and the firewall

    ERR_Connection_Refused

  • Hallo zusammen, vielen Dank für das klasse Projekt und die ganzen Informationen in diesem Thread.


    Ich konnte gerade erfolgreich auf meinem Pi die Software in Betrieb nehmen und sehe jetzt auch im Browser die entsprechende Oberfläche. Mir fehlt als nächstes die Sonosbox und das Display für den Pi.


    Beim Display überlege ich gerade ob es ein 5" oder 7" Display werden soll.


    Folgende Fragen stellen sich mir:

    - Funktionieren beide Größen mit diesem Projekt?

    - Gibt es bei einem Spotify Album/Playlist auch die Möglichkeit sich die einzelnen Titel anzeigen zu lassen bzw. den Titel der gerade abgespielt wird?


    Bei mir im Browser sieht es gerade so aus:

  • Nach meinem Verständnis kannst Du auch andere Displays nutzen, musst dann aber ggf. die Displayparameter anpassen, damit z.B. die Icons rund bleiben und schön mittig.

    Titelanzeige gibt es nicht, habe ich zumindest nicht gefunden.


    Gruß

    Simon

  • Ich schließe mich der Frage von splitti79 an.

    Gibt es eine Möglichkeit das ganze auch ohne SONOS laufen zu lassen. Mir geht es vor allem um das Interface und die Spotify Verbindung.


    Will also auf dem Raspberry die Musik direkt ausgeben, hab bis jetzt aber noch nirgends so ein gutes Interface für Kinder gesehen.

  • Ich schließe mich der Frage von splitti79 an.

    Gibt es eine Möglichkeit das ganze auch ohne SONOS laufen zu lassen. Mir geht es vor allem um das Interface und die Spotify Verbindung.


    Will also auf dem Raspberry die Musik direkt ausgeben, hab bis jetzt aber noch nirgends so ein gutes Interface für Kinder gesehen.

    Naja, Kinder können so gesehen die Amazon Music App auch nutzen. Allerdings drücke ich Kindern gerne dauerhaft Handy oder Tablet in der Hand. Echo show kann das auch halbwegs.

  • harteknut Danke. Ich hab mir jetzt erstmal ein 5" Display bestellt.

    Ich schließe mich der Frage von splitti79 an.

    Gibt es eine Möglichkeit das ganze auch ohne SONOS laufen zu lassen. Mir geht es vor allem um das Interface und die Spotify Verbindung.


    Will also auf dem Raspberry die Musik direkt ausgeben, hab bis jetzt aber noch nirgends so ein gutes Interface für Kinder gesehen.


    Laut der Beschreibung auf github https://github.com/Thyraz/Sono…out-sonos-kids-controller kann man auch anstatt von Sonos Spotify-Connect Geräte ansteuern:


    It can also be used with Spotify Connect compatible devices instead of Sonos if you use this software instead of the node-sonos-http-api discribed later in this document.


    Von einer direkten Ausgabe auf dem Pi habe ich bisher noch nichts gelesen.

  • Ich habe das gleiche Thema wie splitty79 und nero0345:

    Mir geht es vor allem um die Darstellung und Bedienung (und die Spotify-Integration). Natürlich kann man seinem Kind auch ein Handy in die Hand drücken, dass ist bei einem vierjährigen aber wenig erfolgreich und m.E. auch nicht sinnvoll. Was Thyraz da gebastelt hat, gibt es sonst im Netz weder für Geld noch für gute Worte. Die entscheidenden Punkte sind für mich:

    • Ich kann die Inhalte, die mein Sohn hören können soll, sehr leicht einstellen und anpassen.
    • Mein Vierjähriger kann die Box komplett alleine bedienen.

    Die Wiedergabe auf ner Sonos brauche ich eigentlich nicht, bluetooth-Wiedergabe würde mir völlig "reichen". Inzwischen habe ich aber kapiert, dass die Wiedergabe ja überhaupt nicht auf der Box stattfindet, sondern die Box nur die Wiedergabe auf der Sonos steuert (also eine Art Fernbedienung).

    Ich hab das daher so gelöst wie hier von ceere vorgeschlagen:


    Zunächst installiere ich den Sonos-Player in der Version von andi82, so dass er auf allen Spotify-Connect-Geräten wiedergeben kann. Dann wird die Box selbst mit spotifyd ein Spotify-Connect-Player. Wenn ich jetzt einen BT-Lautsprecher oder BT-Kopfhörer mit der Box verbinde, erfolgt die Wiedergabe "gefühlt lokal" ;)

  • Hier die Schritte dazu im Einzelnen:

    vorneweg: Ich habe als OS die "Legacy"-Version von PiOS verwendet, die auf Debian Buster basiert.


    Die folgenden Schritte beschreiben die Einrichtung für EIN Bluetooth-Gerät. Um aber zwischen einem BT-Lautsprecher und einem BT-Kopfhörer wechseln zu können, bin ich von der Vorgehensweise abgewichen. Die Beschreibung findet Ihr untern unter "mehrere BT-Geräte"

    Spotifyd einrichten:

    Neuste Version bei Spotifyd runterladen (-> https://github.com/Spotifyd/spotifyd/releases)

    Code
    wget https://github.com/Spotifyd/spotifyd/releases/download/v0.3.2/spotifyd-linux-armhf-full.tar.gz
    tar -xf ./spotifyd-linux-armhf-full.tar.gz
    rm ./spotifyd-linux-armhf-full.tar.gz


    Service-File anlegen:

    Code
    mkdir -p ~/.config/systemd/user/
    nano ~/.config/systemd/user/spotifyd.service


    Dort folgendes eintragen: (-> https://github.com/Spotifyd/sp…/contrib/spotifyd.service)


    Dienst neu laden:

    Code
    systemctl --user daemon-reload


    Spotifyd konfigurieren:

    Code
    mkdir ~/.config/spotifyd/
    nano ~/.config/spotifyd/spotifyd.conf


    Dort folgendes eintragen:


    Service starten & als Dienst anmelden:

    Code
    systemctl --user start spotifyd.service
    sudo loginctl enable-linger pi
    systemctl --user enable spotifyd.service

    bluetooth-audio konfigurieren:

    ggf. bluealsa installieren:

    Code
    sudo apt install bluealsa

    Dann Service deaktivieren, config kopieren und editieren:

    Code
    sudo systemctl disable bluealsa.service
    sudo cp /lib/systemd/system/bluealsa.service /etc/systemd/system
    sudo nano /etc/systemd/system/bluealsa.service

    Dort folgendes eintragen:

    Dann wieder aktivieren:

    Code
    sudo systemctl enable bluealsa.service
    sudo systemctl start bluealsa.service

    Bluetooth-Kopfhörer koppeln. Dafür zunächst den Benutzer "pi" in die Gruppe "bluetooth" eintragen, damit er den Controller bedienen darf:

    Code
    sudo usermod -G bluetooth -a pi

    Dann:

    Code
    bluetoothctl
    scan on
    scan off
    pair ##:##:##:##:##:##
    trust ##:##:##:##:##:##
    connect ##:##:##:##:##:##

    ALSA konfigurieren:

    Code
    sudo nano /etc/asound.conf
    Code
    pcm.!default "bluealsa"
    ctl.!default "bluealsa"
    defaults.bluealsa.interface "hci0"
    defaults.bluealsa.device "##:##:##:##:##:##"
    defaults.bluealsa.profile "a2dp"

    Testen:

    Code
    aplay  /usr/share/sounds/alsa/Front_Left.wav


    mehrere BT-Geräte

    Hier meine Lösung, um zwei unterschiedliche BT-Geräte im Wechsel betreiben zu können:

    1. Geräte pairen, trusten, connecten

    Mit bluetoohctl, wie oben beschrieben.

    2. asound-Vorlagen erstellen

    Für jedes Gerät eine asound.conf-Vorlage erstellen, die mit dem entsprechenden Gerät funktioniert. Unterscheidet sich bei mir nur in der Zeile defaults.bluealsa.device "##:##:##:##:##:##"

    3. spotifyd als system-dienst statt user-Dienst einrichten

    • Dienst angehalten: systemctl --user stop spotifyd
    • Dienst "gelöst": systemctl --user disable spotifyd
    • Service-Datei verschoben: mv .config/systemd/user/spotifyd.service /etc/systemd/system/spotifyd.service
    • user-Dienste aktualisiert: systemctl --user daemon-reload
    • service-Datei anpassen (nur eine Zeile): ExecStart=/home/pi/spotifyd --no-daemon --config-file /home/pi/.config/spotifyd/spotifyd.conf
    • system-Dienste aktualisiert systemctl daemon-reload
    • system-Dienst starten systemctl start spotifyd
    • system-Dienst an Systemstart binden systemctl enable spotifyd

    4. udev-rules für die BT-Connections anlegen

    Damit nach der Verbindung die Wiedegabe auf dem neu verbundenen BT-Gerät erfolgt, kopiert die udev-rule die entsprechende Vorlage über die asound.conf und startet spotifyd anschließend neu. Die rules können als einfache Textdatei (mit endung "rule") unter /etc/udev/rules.d/ abgelegt werden. Als Beispiel hier eine headphones.rule:

    Code
    SUBSYSTEM=="input", ACTION=="add", ATTRS{name}=="5D:43:B7:A5:B9:81", RUN+="/usr/bin/cp /etc/asounx_headset.conf /etc/asound.conf", RUN+="/bin/systemctl restart spotifyd.service"
  • Ich breche mir gerade die Ohren bei den Queries.

    Wenn ich folgende Query nutze bekomme ich alle Alben von Bibi und Tina die im Albumstitel "Folge" enthalten.

    artist:Bibi und tina album:folge


    Kann ich die Query auch so modifizieren, dass ich nur Folge 1 bis Folge 10 angezeigt bekomme oder das ich eine Auflistung erstelle, so dass mir nur Folge 1, Folge 2, Folge 22 und Folge 30 angezeigt werden?

  • Das müsste funktionieren, indem Du für jedes Album einen einzelnen Query anlegst, nur mit Suchstring (d.h. das Feld bei „Artist“ leerlassen oder immer „Conni“ eintragen).

    Die gefundenen Alben werden dann in einen gemeinsamen Ordner gepackt.

    Mach ich mit „Drei ???“-Folgen so.

  • Hallo,


    ich habe die Box soweit aufgesetzt und alles läuft prima.


    Habt Ihr in der Sonos einen Spotify Kids Account oder einen vollwertigen Erwachsenen account hinterlegt? Kann man einen Spotify Kids Account überhaupt über die Sonos ansteuern?


    Die Box ist ja bezüglich des verwendeten Spotify Accounts agnostisch, dieser steckt ja nur im Sonos-System, oder?


    Ich überlege einen dedizierten Erwachsenen Account zu benutzen und nur diesen in der Sonos zu hinterlegen. Somit bleiben dann auch die automatisierten Empfehlungen von Spotify frei von Bibi Blocksberg und der Schule der magischen Tiere.


    Wie habt Ihr das mit der Account Verwendung gelöst?


    Danke!


    Super Projekt überigens! Wir haben eine Box aus Makrolon gezimmert und der Kleine ist begeister!

  • Ich habe einen vollwertigen Erwachsenen-Account verwendet. Da ich den Content ja selbst bestimme, sehe ich da kein Jugendschutz-Risiko.

    Dafür habe ich meinen Account auf einen Familienaccount umgestellt und eins der 6 Konten für die Box reserviert.


    Gruß

    Simon

  • Ich habe einen vollwertigen Erwachsenen-Account verwendet. Da ich den Content ja selbst bestimme, sehe ich da kein Jugendschutz-Risiko.

    Dafür habe ich meinen Account auf einen Familienaccount umgestellt und eins der 6 Konten für die Box reserviert.


    Gruß

    Simon

    👍

  • Nach langer Abstinenz habe ich mal wieder ins Forum geschaut und mit Freude festgestellt, dass mein
    Spotifycontroller ja doch von einigen Leuten genutzt wird um auch Geräte abseits von Sonos zu unterstützen.
    Ich habe mir deshalb vorgenommen, wieder etwas mehr Zeit in das Thema zu investieren.


    Hier mal eine kurze Zusammenfassung als Antworten auf einige der Themen die hier aufkamen:

    1. Der spotifycontroller ist ein Ersatz für die node-sonos-http-api, eine Änderung des Sonos Kids Controllers von Thyraz ist nicht notwendig. Deswegen wird die Geräte ID auch unter der Sektion "node-sonos-http-api" in der Konfigurationsdatei eingetragen und damit quasi "hardcoded".
    2. Es gibt eine modifizierte Version von Thyraz Controller hier die automatisch nach verfügbaren Spotify Geräten sucht und dann eine Auswahlliste in der GUI anbietet. Diese Version wurde seit längerem nicht mehr upgedated und hängt im Bezug auf Features/Stabilität etwas der Orginalversion hinterher. Ich empfehle daher immer die Originalversion von Thyraz zu nutzen, außer man benötigt unbedingt die Auswahlmöglichkeit. Vielleicht nehme ich mir die Version nochmal vor und erstelle einen Pull Request für Thyraz um die Versionen zusammenzuführen.
    3. Manchmal gibt es ein komisches Verhalten beim Abspielen: Anstatt dem ausgewählten Titel wird der vorherige abgespielt. Ein nochmaliges Auswählen des aktuellen Titels behebt das Problem. Leider ist das Problem noch nicht richtig reproduzierbar, ich schaue mir das aber nochmal an.
    4. Viele berichten von dem Problem, dass einige Spotifygeräte (SONOS, Google Chromecast) erst verfügbar werden (und sichtbar in http://localhost:5005/getDevices), nachdem sie in der Spotify App ausgewählt wurden. Das ist leider ein Problem der Original API von Spotify für das es schon seit vielen Jahren Feature Requests in Richtung Spotify gibt. Spotify selbst beschreibt das Verhalten als Teil seiner API hier. Solange Spotify hier nichts ändert, kann ich leider nichts tun.

    Um Punkt 4 etwas abzumildern schlage ich vor wir erstellen eine Liste von funktionierenden und nicht-funktionierenden Geräten die ich dann gerne in die Doku zum Projekt mit aufnehme. Ich habe hierfür einen eigenen Thread erstellt.

    Edited once, last by andi82 ().

  • Mein Usecase sieht so aus:

    Mein Sohn hört mit seiner Box verschiedene Hörspiele entweder auf einem WLAN-Lautsprecher oder seinem Kopfhörer.

    Den Kopfhörer habe ich über BT mit der Box verbunden, Wiedergabe läuft dann über spotifyd, was sehr zuverlässig als spotifyconnect-Device erkannt wird.

    Der WLAN-Lautsprecher ist ein eBIRD, der sich leider erst nach Handy-App-Verbindung finden lässt.


    Mein Workaround, den ich jetzt mal angehe:

    • Ich stelle auf den Sonos-Kids-Controller von Thyraz um, bei dem ich in der GUI nicht auswählen kann.
    • Als Spotifyconnect-Device beschränke ich mich auf die Pi selbst, auf der ich spotifyd laufen habe. Das funktioniert sehr stabil.
    • Dann werde ich versuchen, einen Lautsprecher und den Kopfhörer beides als BT-Senken zu pairen, um dann an der BT-Verbindung umzuschalten. Dabei müsste doch dann immer das letzte Gerät, dass sich verbinden will, gewinnen, oder nicht? (Das habe ich noch nicht gemacht, und ich finde die Pi bez. der BT-Audio-Ausgabe etwas "zickig".)

    Bin gespannt, ob das so klappt, ich halte Euch auf dem Laufenden ;)


    Gruß

    Simon

  • Hallo zusammen,

    vielleicht kann mir einer von Euch weiterhelfen: Ich versuche gerade, die Audio-Ausgabe zwischen den Bluetooth-Geräten umzuschalten.
    Wohlgemerkt: Ich brauche keine Simultanausgabe auf zwei Geräten (mit Anleitung zu diesem Thema ist das Netz randvoll) sondern einfaches entweder-oder.

    Die Audio-Ausgabe soll einfach auf dem Gerät erfolgen, dass gekoppelt ist. Sind beide gekoppelt, dann halt auf einem von den beiden. Meine asound.rc sieht so aus:

    Code
    pcm.!default "bluealsa"
    ctl.!default "bluealsa"
    defaults.bluealsa.interface "hci0"
    defaults.bluealsa.device "##:##:##:##:##:##"
    defaults.bluealsa.profile "a2dp"

    Die muss ich jetzt irgendwie mit dem zweiten Gerät erweitern. Kann mir jemand sagen, wie?


    Würde mich sehr (!) freuen!

    Gruß

    Simon