stepman0 / docker-sonos-kids-controller

Docker image for Thyraz / Sonos-Kids-Controller
10 stars 2 forks source link

SonosAPI and kids-controller running ... container log when try to add content #45

Open tavoli-rgb opened 2 years ago

tavoli-rgb commented 2 years ago

Sonos-Kids-Controller@1.6.0 start node server.js

App listening on port 8200 /sonos-kids-controller/server.js:40 if (error) throw err; ^

ReferenceError: err is not defined at /sonos-kids-controller/server.js:40:24 npm notice npm notice New minor version of npm available! 8.5.5 -> 8.19.2 npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.19.2 npm notice Run npm install -g npm@8.19.2 to update! npm notice

Sonos-Kids-Controller@1.6.0 start node server.js

App listening on port 8200

sir-andreas commented 2 years ago

same issue here. In my case I try to add content from Spotify if that matters. by the way: When I exec the api docker itself it all works flawlessly (also e.g. start a spotify song). So I assume that the issue is just a communication problem between controller and api.

stepman0 commented 2 years ago

Hmm, my setup is running fine, but I did not change any config over the last months.

Dis you use the IP of your host when configuring the link to the API, because 127.0.0.1 or localhost do not work.

sir-andreas commented 2 years ago

I really had 127.0.0.1 in the config. But also with the name of the host I get the same error. :-(

tavoli-rgb commented 2 years ago

cannot get this to work lxc container with kids controller on proxmox works without a problem

have try the docker immage on different hosts and configs, always the same error ... ionic app runs and is reachable via network, but no chance to add content to the library

stepman0 commented 2 years ago

I was away from home this weekend, I will have a look on this tomorrow

sir-andreas commented 2 years ago

Sorry to ask, but did you get any idea yet? @stepman0

stepman0 commented 2 years ago

Sorry I was busy the lasr days. I just triggered a new build and will check this on my dev system.

stepman0 commented 2 years ago

@tavoli-rgb: Which version of node do you use in your lxc container?

tavoli-rgb commented 2 years ago

uuups ... very old 12.22.9

stepman0 commented 2 years ago

I just pushed new images - can you check?

sir-andreas commented 2 years ago

still the same issue, sorry. Always when I want to add something from Spotify (but also from the SONOS Library, so seems to be no Spotify specific issue) the container throws the following eror:

/sonos-kids-controller/server.js:40 if (error) throw err; ReferenceError: err is not defined at /sonos-kids-controller/server.js:40:24 Sonos-Kids-Controller@1.6.0 start node server.js App listening on port 8200

Do the docker containers work on your side?

sir-andreas commented 2 years ago

Quick update: Just installed the Sonos Kids Controller on a vanilla alpine docker (even using the existing docker hosting the API) and this works without any problems.

stepman0 commented 2 years ago

Not so good news: I can finally reproduce the bug: Both installations are not working anymore. Now my kids are putting pressure on this ;-)

@sir-andreas: So you started with plain alpine image, or with node-alpine? In both cases, which version of node did you install?

stepman0 commented 2 years ago

@tavoli-rgb , @sir-andreas

I uploaded my docker-compose.yml and samples of the config files in a matching directory structure. You can clone this repo, copy the .sample.json files located in ./data/... (e.g. copy ./data/api/settings.sample.json to ./data/api/settings.json) and change the value of your credentials. Also change the IP in config.json.

Afterwards you can start with the script start.sh, is wraps docker-compose pull and up.

This works on my kids' raspberrys and also on my dev system.

In case you get an error due to unreachable code, this is related to libseccomp. I updated the Readme...

sir-andreas commented 2 years ago

Not so good news: I can finally reproduce the bug: Both installations are not working anymore. Now my kids are putting pressure on this ;-)

@sir-andreas: So you started with plain alpine image, or with node-alpine? In both cases, which version of node did you install?

It was the pure alpine image. I installed node and npm with a simple apk add --update nodejs npm After that I just followed the installation instruction from Thyraz.

sir-andreas commented 2 years ago

@tavoli-rgb , @sir-andreas

I uploaded my docker-compose.yml and samples of the config files in a matching directory structure. You can clone this repo, copy the .sample.json files located in ./data/... (e.g. copy ./data/api/settings.sample.json to ./data/api/settings.json) and change the value of your credentials. Also change the IP in config.json.

Afterwards you can start with the script start.sh, is wraps docker-compose pull and up.

This works on my kids' raspberrys and also on my dev system.

In case you get an error due to unreachable code, this is related to libseccomp. I updated the Readme...

Does produce the same error on my system. What I learned now is, that the controller works with content that was added direcly in the data.json file. So the issue is just when I use the controller interface to add new things.

stepman0 commented 2 years ago

Ah ok. I added all my content via data.json file, I only used the webinterface in the very beginning to get the syntax.

stepman0 commented 2 years ago

This is an example data.json I use, everything comes from Spotify.

[
    {
        "type": "spotify",
        "query": "artist:Petronella Apfelmus"
    },
    {
        "type": "spotify",
        "query": "artist:Winnie Puuh album:Folge"
    },
    {
        "type": "spotify",
        "category": "music",
        "query": "artist:Rolfs Zuckowski album:Rolfs Hasengeschichte"
    },
    {
        "type": "spotify",
        "category": "music",
        "query": "artist:Sternschnuppe album:Lustige Tierlieder"
    },
    {
        "type": "spotify",
        "query": "artist:Spirit album:Folge"
    },
    {
        "type": "spotify",
        "query": "artist:Leo Lausemaus album:Folge"
    },
    {
        "type": "spotify",
        "query": "artist:Die Biene Maja NOT Liederkinder"
    },
    {
        "type": "spotify",
        "query": "artist:Meine Freundin Conni"
    },
    {
        "type": "spotify",
        "query": "artist:Conni album:Pony"
    },
    {
        "type": "spotify",
        "query": "artist:Karoline Sander"
    },
    {
        "type": "spotify",
        "query": "artist:Bibi und Tina album:Folge year:1999-2021"
    },
    {
        "type": "spotify",
        "query": "artist:PAW Patrol album:Folge year:2020-2021"
    },
    {
        "type": "spotify",
        "query": "artist:PJ Masks"
    }
]

How does your data.json look like, when you create it via webinterface?

sir-andreas commented 2 years ago

The same like yours. The issue is just, that my kids would like to add things by their own. I will add their wishes manually in the meantime.

Here is a example: [ { "type": "spotify", "category": "music", "query": "artist:\"Wincent Weiss\"" }, { "type": "spotify", "category": "music", "query": "artist:\"Alvaro Soler\"" }, { "type": "spotify", "category": "music", "id": "4Qj3Qd8U9x0vBMB2fORce5" } ]

Good option to add just a single album is the third one, where you can also refer to the spotify ID itself. (You can find that in the link, when you share an album in Spotify)

sir-andreas commented 2 years ago

And another thing: I also could create a workung application by using the node base image: image Just had to follow the installation from Tyraz adding the specific config files.

Really strange why this build does not work.

sir-andreas commented 2 years ago

Just another question: Do you also have this issue with your installation?