Open adocampo opened 5 months ago
I had same problem as you. I moved the other service that was on port 5000 to another port and it started to connect to the skill. But I found another problem that I'm trying to resolve asking for it in #46
Salu2 from Spain
Hi @adocampo,
With debugging set to maximum on the skill do you see any logs on the skill when trying to invoke the skill from the Amazon developer portal? If everything is configured correctly you should see something even if it's just an error. If there are no logs generated by the skill could you temporally disable the service you have running on port 5000, run the skill on that port and see if that resolves the issue.
Port 5000 is used by default by the Flask library which serves the app, this can be changed according to their documentation but would require changes to both the skill code and docker file.
So, the yaml is right?
I've created the skill once again, this is the summary
I modified the alexa.json
to reflect the invocation name and changed from navisonic
to reproductor musical
(on the last attempt I left this untouched.
In the Endpoint section, on the URL, I set my navidrome instance (e.g.: https://music.mydomain.com) Which is, in fact, the URL accessible from internet Finally, there is no "Build Model" button in the last step, but "Build Skill"
Once built, I'm going to show how I filled the docker-compose.yml
. First, NAVI_SKILL_ID
, taken from the developer's console URL
then, NAVI_URL
, which is the same URL above, https://music.mydomain.com.
next, NAVI_USER
and NAVI_PASS
, which are the credentials set in navidrome
other options left by defautl except the port redirection, I obviusly left intact the internal docker port (5000), but the host port is changed from 5000 to 5555, as in port 5000 I have set frigate and it would be a pain in the ass changing it. Anyway, that's the magic of docker, while I don't touch anything inside the docker, it should work. And, I can't remember from April, but I think I did try to shutdown frigate for a while, and setting this asknavidrome docker to its default port 5000, with the same result.
I've spin up the docker container and did a telnet to the redirected port 5555 successfully
Now, it would be the time to test the skill, it fails
Now, my questions:
invocationName
in the JSON or leave it by default as navisonic
UPDATED: I've changed the invocationName
back to navisonic
and now it seems to do something, but still, it doesn't work
I've tried also in my home Echoes, but it says the same: "Acabas de activar HelloWorldIntent" (You have just activated HelloWorldIntent).
Logs in the docker didn't change:
asknavidrome-1 | * Serving Flask app 'app'
asknavidrome-1 | * Debug mode: off
asknavidrome-1 | 2024-09-29 17:12:12,634 - werkzeug - INFO - WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
asknavidrome-1 | * Running on all addresses (0.0.0.0)
asknavidrome-1 | * Running on http://127.0.0.1:5000
asknavidrome-1 | * Running on http://192.168.80.2:5000
asknavidrome-1 | 2024-09-29 17:12:12,634 - werkzeug - INFO - Press CTRL+C to quit
I've tried both NAVI_DEBUG
levels 2 and 3.
UPDATED2: I've set an endpoint to the asknavidrome docker service at port 5555, and changed the endpoint URL in the developer's console for that Alexa skill, and rebuilt.
Same issue. Testing says I've activated the "HelloWorldIntent", whatever that means...
Logs shows something new, though, now are showing every few seconds a line of these
asknavidrome-1 | 2024-09-29 17:31:30,259 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:31:30] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1 | 2024-09-29 17:31:35,258 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:31:35] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1 | 2024-09-29 17:31:40,258 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:31:40] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1 | 2024-09-29 17:31:45,259 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:31:45] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1 | 2024-09-29 17:31:50,259 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:31:50] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1 | 2024-09-29 17:31:55,258 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:31:55] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1 | 2024-09-29 17:32:00,258 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:32:00] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1 | 2024-09-29 17:32:05,259 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:32:05] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1 | 2024-09-29 17:32:10,258 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:32:10] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1 | 2024-09-29 17:32:15,258 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:32:15] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1 | 2024-09-29 17:32:20,259 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:32:20] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1 | 2024-09-29 17:32:25,258 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:32:25] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1 | 2024-09-29 17:32:30,259 - werkzeug - INFO - 192.168.1.100 - - [29/Sep/2024 17:32:30] "GET /api/stats HTTP/1.1" 404 -
In a browser, I can see this
So I decided to test if I could reach it from inside the asknavidrme docker instance
[root@samael asknavidrome]# docker exec -ti asknavidrome-asknavidrome-1 /bin/sh
/opt/asknavidrome # ls
app.py asknavidrome requirements-docker.txt requirements-full.txt templates
/opt/asknavidrome # ping music.docampo.net
PING music.docampo.net (192.168.1.100): 56 data bytes
64 bytes from 192.168.1.100: seq=0 ttl=64 time=0.062 ms
64 bytes from 192.168.1.100: seq=1 ttl=64 time=0.083 ms
^C
/opt/asknavidrome # apk add curl
fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
(1/5) Installing ca-certificates (20230506-r0)
(2/5) Installing brotli-libs (1.0.9-r5)
(3/5) Installing nghttp2-libs (1.46.0-r2)
(4/5) Installing libcurl (8.5.0-r0)
(5/5) Installing curl (8.5.0-r0)
Executing busybox-1.34.1-r3.trigger
Executing ca-certificates-20230506-r0.trigger
OK: 59 MiB in 32 packages
/opt/asknavidrome # curl https://music.mydomain.com/rest/get/stats
<subsonic-response xmlns="http://subsonic.org/restapi" status="failed" version="1.16.1" type="navidrome" serverVersion="0.51.1 (6d253225)" openSubsonic="true"><error code="10" message="missing parameter: 'u'"></error></subsonic-response>/opt/asknavidrome #
As far as I can see, it misses "u" parameter...
I'm on a dead end... any help would be much appreciated.
Describe the issue I followed the steps but when testing, it cannot connect to my skill. I know I'm doing something wrong, but I cannot determine what can be. I think documentation can me confusing, at least I found it confusing. In requirements, is stated:
But in the Troubleshooting section, it states
Nowhere specifies how to configure the web service. I modified the docker-compose.yml to match my alexa skill ID, navidrome URL, user and password, like this
And I set up it as https://naviendpoint.example.com, and I see it's reachable from internet, showing this in a browser
But no luck, when I test it, it says this