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

  • Meinst du i2c?


    Welches Display hast du denn im Sinn, das Original Raspberry 7 Zoll?


    Das hat die selbe Auflösung mit 800x480 wie das hier im Startpost erwähnte.


    An sich sollte das also genauso funktionieren und auch keine Probleme mit der UI zwecks Position der Buttons etc. hervorrufen.

  • Vielen Dank für deine super Arbeit. Habe dies für meine Tochter nachgebaut und sie ist begeistert.

    Da ich mehrere Kinder habe und ich das gerne für meinen Sohn auch bauen will, bin ich auf ein Problem gestossen, welches ich bisher noch nicht lösen konnte.


    Folgedes Szenario:

    - Jedes Kind hat ein eigener Sonos Lautsprecher im Zimmer

    - Jedes Kind bekommt einen Sonos Kids Controller in ihrem Zimmer. Auf jedem Pi ist sowohl der Controller (Webgui) wie auch das Backend drauf

    - Source soll Spotify sein - beide haben einen eigenen Account über Spotify Family

    - Beide wollen unabhängig voneinander etwas abspielen


    So wie node-sonos-http-api gebaut ist, kann nicht gesteuert werden, welcher Spotify Account beim abspielen verwendet wird. Somit spiel es immer mit "meinem" Account welcher als 1. im Sonos hinterlegt wurde. Damit ist jeweils nur ein Stream möglich und bei allen anderen (bei mir oder dem 2. Kind) wird die Wiedergabe gestoppt

    Wie könnte ich das lösen?

  • Hallo zusammen,


    ich habe nun soweit alles fertig (feilen und Software) das ich die Web-Oberfläche sehe und auch node-sonos-... läuft. Mit den Einstellungen klappt es aber noch nicht so ganz.


    Ich kann kein Album über die Web-Oberfläche hinzufügen, da kommt immer "Undefined" wenn ich ein Spotify Link einfüge zum jeweiligen Album, oder es erscheint gar nichts zum Auswählen. Es geht leider weder über die Library noch über den Spotify Account. Ein Spotify Account habe ich extra angelegt für den Junior (im Family Account).


    Wäre super wenn ihr mir da weiterhelfen könntet. Vielen Dank schon mal.


    Finde das Projekt super!


    Anmerkung: Die API für Sonos funktioniert einwandfrei, ich kann über http Befehle absetzen die dann auch von der Sonos Box ausgeführt werden.



    Edited 5 times, last by hotspot_2 ().

  • Hallo, mittlerweile habe ich es geschafft Alben aus der Library anzulegen und die werden dann auch angezeigt. Spotify funktioniert weiterhin nicht.


    Die Software führt beim anklicken auch einen http Request an die API aus und die Sonos Box übernimmt auch die Playlist von der Library. Leider stimmen die Dateinamen nicht. (Ordnernamen werden zusammengesetzt und die Dateinamen der MP3-Titel beginnen alle mit "01 - xx - yyyyy". Auf dem NAS heisen die Dateien aber nur "xx - yyyy". Aufgrunddessen kann die Sonos Box die Playliste dann nicht abspielen. Füge ich die Dateien über die Sonos Software aus der Library ein geht alles einwandfrei.


    Ich komm gerade nicht mehr weiter. Wäre super wenn da jemand helfen kann!

  • Hi,


    ich hab' noch nicht ganz verstanden, wie Du die Alben genau hinzufügst und was Du mit "Füge ich die Dateien über die Sonos Software.." meinst.

    Das Bild wird vermutlich immer angezeigt, sobald Du dort einen validen HTTP-Pfad zu einem Bild hinterlegst.

    Mein Verständnis ist so, dass bei einem Klick auf das Cover/Bild genau die Suchbegriffe Artist und Titel per API an die SONOS Box übertragen werden und die Box dann danach "sucht" und den Titel / Album abspielt.


    Benutzt Du die angepasste node-sonos-http-api von Thyraz?


    Ich habe anfangs folgendes gemacht um die Titel einzutragen:

    - Spiele den gewünschten Titel per SONOS-App auf deiner Box ab

    - Rufe die node-sonos-http-api auf: http://<IP>:5002/zones

    - Du bekommst ein JSON mit dem aktuellen Status

    - Dort findest Du den Eintrag "currentTrack" für jede SONOS-Box, wo "artist" und "title" aufgeführt werden

    - Die beiden Einträge würde ich zum testen mal übernehmen.


    Sieht bei mir gerade so aus ;)


    Code
    "currentTrack":{"artist":"Yakari","title":"Der rote Pfeil","album":"Der rote Pfeil","albumArtUri":


    Ich hole mir darüber übrigens auch gleich das Cover. Die SONOS-Box zeigt ja schließlich auch ein Cover-Bild an...




  • Hi, ich wollte den Controller auch mal ausprobieren. Das Sonos Modul bekomme ich auch installiert und ans laufen. Bei der Installation des Sonos Kids Moduls kommt jedoch folgende Fehlermeldung nach dem Befehl:


    Code
    ionic build --prod



    FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory



    Dementsprechend ist auch bei Aufruf der Webseite folgende Fehlermeldung zu sehen:


    Code
    Error: ENOENT: no such file or directory, stat '/home/pi/Sonos-Kids-Controller-master/www/index.html'


    Jemand einen Tipp wie ich hier weiterkomme?


    Danke,

    Kai

  • Thyraz: Ich hatte im FHEM Forum in der Bastelecke gelesen, dass Du eventuell auch eine Umsetzung für Apple Music planst. Bist Du da noch dabei? Mich würde das auch sehr interessieren, da ich eigentlich nur Apple Music nutze. Danke schon mal fürs Feedback.
    Kai

  • Hallo, vielen Dank für die Hilfe.


    Was muss ich dann wo einfügen in der Oberfläche des Controllers?


    Album Artist = artist

    Album Title = title


    Und dann? Noch weiteres erforderlich?


    Wenn ich das mache erscheint ein Kreis (ohne Bild). Aber es passiert dann nichts weiter wenn ich draufklicke.


    Vielleicht kommen wir da weiter.

  • Weiter oben steht es, Du musst bei lokalen Medien das Cover selber hinzufügen. Sonst funktioniert es nicht:


    - Ja, Bild-URL ist zwingend nötig wenn man nicht Spotify nutzt. Ich hatte für lokale Medien versucht die iTunes API anzuzapfen, aber die blockt einen recht schnell wenn man zu viele Anfragen bringt. Ist also produktiv nicht wirklich nutzbar.

    Bei Spotify kommen die Cover direkt von Spotify, für die API braucht man aber einen bezahlten Spotify Account.

  • Hallo zusammen.


    Ich verwende ausschließlich lokale Medien und da ist Mp3Tag Gold wert. Exportiert alle Alben-Cover als Bilddatei und macht mir das data.json fix und fertig, so dass ich alles nur noch auf den Raspberry kopieren muss. Ich hatte es schon vorher mal geschrieben, dass ich einen lokalen Apache-Dienst laufen habe und so die Cover lade.



    So sieht das Export-Skript für Mp3Tag aus:

  • Weiter oben steht es, Du musst bei lokalen Medien das Cover selber hinzufügen. Sonst funktioniert es nicht:


    - Ja, Bild-URL ist zwingend nötig wenn man nicht Spotify nutzt. Ich hatte für lokale Medien versucht die iTunes API anzuzapfen, aber die blockt einen recht schnell wenn man zu viele Anfragen bringt. Ist also produktiv nicht wirklich nutzbar.

    Bei Spotify kommen die Cover direkt von Spotify, für die API braucht man aber einen bezahlten Spotify Account.

    Bei mir klappt das einfache abspielen und einfügen von Spotify nicht.


    Nochmal meine Vorgehensweise: Ich übernehme die Felder (artist und title) aus der JSON Seite von der sonos-api und füge sie im Controller in die Felder Album Artist und Album Title ein? Muss die Unique ID nicht ausgefüllt werden? Den Link zum Cover füge ich auch einfach aus der JSON Seite ein, oder? Wo füge ich den ein? Ich finde kein Feld dafür.


    Muss der Spotify-Premium Account für den Controller der gleiche wie der für die Sonos Box sein?


    Danke für eure Hilfe!


    So sieht es bei mir aktuell aus:

  • Zu den Covers: Wenn Du Spotify nutzt brauchst Du kein Cover manuell hinzufügen. Das ist nur notwendig bei lokalen Musikdateien. Dann nutze am Besten folgende Seite: https://bendodson.com/projects/itunes-artwork-finder/. Wie gesagt bei Spotify nicht nötig, da das Cover direkt vonSpotify geholt wird.


    Bei mir sieht ein Spotify Album wie folgt aus:



    Und so dann in der Übersicht:



    Wenn das Cover nicht angezeigt wird, hast Du bestimmt beide module nicht richtig konfiguriert für Spotify. Hast Du für Spotify die Client ID und das Secret erstellt und in die jeweiligen Config-Dateien eingetragen?

  • Jetzt bin ich einen Schritt weiter. Wie bei Dir sehe ich jetzt das Cover, kann es anklicken und das Menü mit Cover, Vor und Zurück, laut leiser erscheint. Aber leider spielt die Sonos Box nichts ab und in der Sonos App ändert sich auch nichts an der Playlist. Kann ich irgendwo sehen was der Kids Controller zur Sonos Box sendet? Damit ich dem Prolbem auf die Schliche komme kann?


    Wenn ich der node-sonos-api direkt Befehle über http://..../play z.B. übergebe klappt alles mit der Box. Ich kann auch die lauter / leiste Taste benutzen im Kids Controller, das steuert die Lautstärke an der Sonos Box nur das Album bzw. die Playlist wird nicht übergeben.


    Ich habe mal die HTTP Requests aufgezeichnet die an die localhost Adresse gehen. Wenn ich diese Requests kopiere dann erhalte ich die Meldung das die ClientID und Secret fehlen in der settings.json. Die habe ich aber erstellt und im Verzeichnis der node-api abgespeichert.



    --> Ich hab es jetzt hinbekommen. Die Beispiel settings.json ist fehlerhaft in der Readme von Github für node-sonos-api. Die Kommentare z.B. Ich habe die Einträge nun auf das notwendige reduziert und jetzt funktioniert alles bestens!


    Vielen Dank für eure Hilfe.

  • Hi,


    Extrem geniales Projekt. Werde ich jetzt zu Weihnachten für die beiden großen Kids umsetzen. Ich nutze auch ausschliesslich Spotify mit Sonos-Speakern.


    Ich glaube die Spotify-Kids Accounts lassen sich nur über die offizielle Kids-App gescheit nutzen. Abhilfe könnte ein vollwertiger Account für die Kinder schaffen. So werde ich das realisieren. Die Kids werden das ausschliesslich über die Kids-Controller nutzen und da habe ich ja die volle Kontrolle über die Medienbibliothek, also auch kein Problem mit den vielleicht unangemessenen Inhalten im Voll-Account.


    Meine Testinstallation läuft jetzt. Sehr geniale Sache. Installation hat auch einigermaßen geklappt. Ich hatte auch das Problem mit dem Heap Out of Memory. Dazu einfach mal die Fehlermeldung googeln, da gibt es ne Möglichkeit die Speichergrenze für Java anzupassen (ich hab das auf 3GB hochgestellt, dann gings [Befehl: export NODE_OPTIONS=--max-old-space-size=3072]). Bei mir kommen zwei ausrangierte Pi 3B zum Einsatz und bis jetzt funktioniert das soweit sehr zufriedenstellend.


    Das einzige mit dem ich derzeit noch kämpfe ist die Verwaltung der Bibliothek. Anscheinend bin ich entweder zu blöd oder es geht einfach (noch) nicht. Ich bekomme einfach keine Spotify-Playlists in die Bibliothek eingebunden. Habe schon so ziemlich alles erdenkliche ausprobiert. Will nicht klappen. Weder öffentliche, noch eigene, noch eigene öffentliche... Vielleicht kann mir da ja wer nen Hinweis zu geben.


    Ansonsten bin ich völlig begeistert von diesem genialen Projekt!


    Grüße

    Sebastian

    Edited once, last by Syko ().

  • Habe heute noch Support für Amazon Music Unlimited und Apple Music hinzugefügt.

    Leider muss man da aber die Alben einzeln über AlbumIDs des Services hinzufügen und auch das Artwork selbst eintragen,

    da die beiden Services keine so schöne public API haben wie Spotify.


    Das einzige mit dem ich derzeit noch kämpfe ist die Verwaltung der Bibliothek. Anscheinend bin ich entweder zu blöd oder es geht einfach (noch) nicht. Ich bekomme einfach keine Spotify-Playlists in die Bibliothek eingebunden. Habe schon so ziemlich alles erdenkliche ausprobiert. Will nicht klappen. Weder öffentliche, noch eigene, noch eigene öffentliche... Vielleicht kann mir da ja wer nen Hinweis zu geben.

    An Playlists habe ich bisher noch gar nicht gedacht, da das bei "meiner" Zielgruppe bisher nicht interessant war. ;)

    Ich muss mal schauen ob man das irgendwie einbauen kann.

    Ansonsten bin ich völlig begeistert von diesem genialen Projekt!

    Freut mich. :)

  • Super vielen Dank! Ich habe die neue Version aufgespielt und auch getestet. Das Abspielen eines ganzen Albums funktioniert wunderbar. 1 Verständnisfrage habe ich noch. Das dedizierte Abspielen eines Songs von einem Album funktioniert nicht oder? Ich hatte jetzt die Song ID aus dem geteilten Link in der Config Datei hinterlegt. Diesen Song spielt der Controller dann aber nicht ab. Also es klappt nur die Suche über die Album ID, korrekt?


    Playlisten wären für mich auch super, da meine Mädels schon eine BestOf Liste haben. Jedoch hatte ich die API Beschreibung von Apple Music überflogen und zu Playlisten nichts gefunden.


    Viele Grüße,

    Kai

  • Hallo,


    ein tolles Projekt!


    Vor einiger Zeit habe ich noch ganz doof und verzweifelt bei Thyraz an die Pinnwand geschrieben und nach eigentlich nicht wirklich zielführender Hilfe gefragt... mittlerweile habe ich mich wegen dieser tollen Anwendung ein bisschen weiter in die Raspberry-Basics eingelesen und die Installation soweit wie beschrieben abgeschlossen.


    Ich verzweifle jedoch auch an dem Problem, dass ich zwar alle Alben hinzufügen und sehen kann (überwiegend Spotify), auch die Funktionalitäten wie Pause, Lautstärke, weiter und zurück funktionieren, wenn im Sonos schon etwas läuft, aber das gewählte Album bei Sonos4Kids kann nie gestartet werden.


    Spotify-ClientID und Secret habe ich hinzugefügt... ich stehe auf dem Schlauch. Zudem funktioniert aber auch das Starten von Alben aus der lokalen Bibliothek nicht.


    Hat noch jemand eine Idee was falsch gelaufen sein könnte? Vielen Dank im Voraus!