Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ISSUE] Could not connect with the skill #40

Open
adocampo opened this issue Apr 14, 2024 · 11 comments
Open

[ISSUE] Could not connect with the skill #40

adocampo opened this issue Apr 14, 2024 · 11 comments
Labels
help wanted Extra attention is needed wontfix This will not be worked on

Comments

@adocampo
Copy link

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:

  • Your Music Collection
  • A SubSonic API Compatible Media Server
  • Tags
  • An Amazon Echo Device

But in the Troubleshooting section, it states

Is the endpoint set correctly? The endpoint is the URL to the web service.

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

 version: '3.7'
 services:
     asknavidrome:
         environment:
             - 'NAVI_SKILL_ID=amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
             - 'NAVI_URL=https://music.example.com'
             - 'NAVI_USER=alexaplayer'
             - 'NAVI_PASS=supersecretpassword'
             - 'NAVI_SONG_COUNT=50'
             - 'NAVI_PORT=443'
             - 'NAVI_API_PATH=/rest'
             - 'NAVI_API_VER=1.16.1'
             - 'NAVI_DEBUG=1'
         ports:
             - '5555:5000'    <-- I've used the port 5555 because I already using port 5000 for other stuff
         image: 'ghcr.io/rosskouk/asknavidrome:latest'
         logging:
             driver: "json-file"
             options:
                 max-size: "10m"
                 max-file: "1"
         deploy:
             restart_policy:
                 condition: on-failure
                 delay: 5s
                 max_attempts: 3
                 window: 120s

And I set up it as https://naviendpoint.example.com, and I see it's reachable from internet, showing this in a browser
image

But no luck, when I test it, it says this

image

{
	"version": "1.0",
	"session": {
		"new": false,
		"sessionId": "amzn1.echo-api.session.7bdeb8c9-52cd-4acc-95f9-7556ab852f53",
		"application": {
			"applicationId": "amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
		},
		"attributes": {},
		"user": {
			"userId": "amzn1.ask.account.AMA3LQYTH6AWXUQMNZUVKDVCKEB4PXANQVTNARP6Q23QBZWFTOAKRPPYT2TQ7EJMX7PSQTG43GQUORJFOSKLXIWOTEJR6YLTP7APOYPXS3MSVV2AFQJMQMNZUVKDVCKEB4PXANQVTNARP6Q2GIQQX2SFFLWUX4KLYAPWPHXXZM46TUXYSCWMR6BJP5HVGOXL6D5M5WHZUPEQ6PKLCYL2KQFQ"
		}
	},
	"context": {
		"Viewports": [
			{
				"type": "APL",
				"id": "main",
				"shape": "RECTANGLE",
				"dpi": 213,
				"presentationType": "STANDARD",
				"canRotate": false,
				"configuration": {
					"current": {
						"mode": "HUB",
						"video": {
							"codecs": [
								"H_264_42",
								"H_264_41"
							]
						},
						"size": {
							"type": "DISCRETE",
							"pixelWidth": 1280,
							"pixelHeight": 800
						}
					}
				}
			}
		],
		"AudioPlayer": {
			"playerActivity": "IDLE"
		},
		"Viewport": {
			"experiences": [
				{
					"arcMinuteWidth": 346,
					"arcMinuteHeight": 216,
					"canRotate": false,
					"canResize": false
				}
			],
			"mode": "HUB",
			"shape": "RECTANGLE",
			"pixelWidth": 1280,
			"pixelHeight": 800,
			"dpi": 213,
			"currentPixelWidth": 1280,
			"currentPixelHeight": 800,
			"touch": [
				"SINGLE"
			],
			"video": {
				"codecs": [
					"H_264_42",
					"H_264_41"
				]
			}
		},
		"Extensions": {
			"available": {
				"aplext:backstack:10": {}
			}
		},
		"System": {
			"application": {
				"applicationId": "amzn1.ask.skill.e60b74bb-526f-4a06-a68e-88ddccf4bf36"
			},
			"user": {
				"userId": "amzn1.ask.account.AMA3LQYTH6AWXULKLNAV63QVH7IXKM2FEFU4EQ5PAAP3QBZWFTOAKRPPYT2TQ7EJMX7PSQTG43GQUORJFOSKLXIWOTEJR6YLTP7APOYPXSQMNZQMNZUVKDVCKEB4PXANQVTNARP6Q2MNGGIIOQIY3NSSSBDDGIQQX2SFFLWUX4KLYAPWPHXXZM46TUXYSCWMR6BJP5HVGOXL6D5M5WHZUPEQ6PKLCYL2KQFQ"
			},
			"device": {
				"deviceId": "amzn1.ask.device.AMA6OC6WIXPQMNZUVKDVCKEB4PXANQVTNARP6Q2MFQ2C3DM7NCDPG3M7JMMWYCH4FMORWMUKYICWKVMSZBLIBUE4OU2FQYCQA5VRY6IGXXEJGHBQJGZEAMOHIJP6O774ANWGV2O2YLUUKXJNNPRY3B7GEWTT6IKD7NEH2WPG3PV3C4E5C257I5IYR6GS4264EWUGV",
				"supportedInterfaces": {
					"AudioPlayer": {}
				}
			},
			"apiEndpoint": "https://api.eu.amazonalexa.com",
			"apiAccessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5ldS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLmU2MGI3NGJiLTUyNmYtNGEwNi1hNjhlLTg4ZGRjY2Y0YmYzNiIsImV4cCI6MTcxMzEzODIxNSwiaWF0IjoxNzEzMTM4MTU1LCJuYmYiOjE3MTMxMzgxNTUsInByaXZhdGVDbGFpbXMiOnsiY29udGV4dCI6IkFBQUFBQUFBQVFDVjNKTFRVeEVyVUl1MlI1KytYbWkyVFFFQUFBQUFBQUI0a0c5dDM5TnZ3Qng4TlI1UjNzQjVMUjFsSkNNQ1o0aWNndkRyUC93YmVBLzRYWFg3VkRSTUM4S1VrZDRHcFVpamEzREt0NjZ5dXpvbmxHeUJhUzV6NytwSUhUUW94Y1dHcHpuT3VUdGd1dE9HZWJmRWxoUEJTTDRWSEFMamFkSFBMNk5QZFd6cnJWSE0yN0FMWnQrcTFSYjZJSU9aZGJZVkhGZzVmeHZwMXdJZjZycDJsd1BBOVl4S05iWS9wTjlMN3VkeFM3V2dXYjBpTTZuZ24wbGlqbXNtQVloaUlwNnBBVlVpSURodExXNTlwTTd1Z0RSQko2QXEwdWhrZXJvTU1Sa1dqWFlqUHN0TlI5M0FWWEhTMnQMNZUVKDVCKEB4PXANQVTNARP6Q2kU5ajJmZkFZZ3pwQ0lqK3BEUGluNzV0MWdPQWJJeUZhZ1JydytEYkk4KzFOZ1VkN2pzWEZPOW5DajI1VUJESnE0Q1FNZXpkZVhWQ2I5cy9KSlRuMURQYXdwRzUxaGJBSHBJMTZjVnU5VDMvTE1BczRhUlpiaWVzYmUvRHFFblhSRk9CNlU9IiwiZGV2aWNlSWQiOiJhbXpuMS5hc2suZGV2aWNlLkFNQTZPQzZXSVhQU01DUzUyUEtSUzRCN05LWDZDTVFXMzJNT0FIUFc3WEEyWkE0VExRTUZRMkMzRE03TkNEUEczTTdKTU1XWUNINEZNT1JXTVVLWUlDV0tWTVNaQkxJQlVFNE9VMkZRWUNRQTVWUlk2SUdYWEVKR0hCUUpHWkVBTU9ISUpQNk83NzRBTldHVjJPMllMVVVLWEpOTlBSWTNCN0dFV1RUNklLRDdORUgyV1BHM1BWM0M0QMNZUVKDVCKEB4PXANQVTNARP6Q2g2QVdYVUxLTE5BVjYzUVZIN0lYS00yRkVGVTRFUTVQQUFQM1FCWldGVE9BS1JQUFlUMlRRN0VKTVg3UFNRVEc0M0dRVU9SSkZPU0tMWElXT1RFSlI2WUxUUDdBUE9ZUFhTUU1OWlVWS0RWQ0tFQjRQWEFOUVZUTkFSUDZRMjNNU1ZWMkFGUUpNTkdHSUlPUUlZM05TU1NCRERHSVFRWDJTRkZMV1VYNEtMWUFQV1BIWFhaTTQ2VFVYWVNDV01SNkJKUDVIVkdPWEw2RDVNNVdIWlVQRVE2UEtMQ1lMMktRRlEifX0.lrYe3dIwb8CZOUTpu3LaRCjEf04ZRKuMAF9FhaZtIq0fWtqt98mgv36oAOZWuW7Fv3gHRXa7smYgO_2i0M-NaX6MFYVq9FUB0QhdUfooGZ7ZeoXJF7wp-Eq_a0rT7hWI2kW4WW7D_xPUHH635q7XM2w37sGXCAs5a1kNNNv3IwnVldqXDBI9Bgrb97btkX4XvmKTmNrkyvI9eOC7jopqLz0ph0uzrcuf9QMp0R6wVYfCCJ0AFSJWvA_a3DPwBr4sTO6ZLN86RzvWvpU_R6R_1SPdP1nljf8Xpss1nxeHjKB98JVKR3GLNB_Vq_rq5diQz0VTz4GDEOFf22PMYv9QkA"
		}
	},
	"request": {
		"type": "SessionEndedRequest",
		"requestId": "amzn1.echo-api.request.4bcffdc6-ca9b-439e-b947-5376770f8f45",
		"timestamp": "2024-04-14T23:42:36Z",
		"locale": "es-ES",
		"reason": "ERROR",
		"error": {
			"type": "INVALID_RESPONSE",
			"message": "An exception occurred while dispatching the request to the skill."
		}
	}
}
@eagle-phoenix
Copy link

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

@rosskouk
Copy link
Owner

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.

@adocampo
Copy link
Author

adocampo commented Sep 29, 2024

So, the yaml is right?
I've created the skill once again, this is the summary
image
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.
image

In the Endpoint section, on the URL, I set my navidrome instance (e.g.: https://music.mydomain.com)
image
Which is, in fact, the URL accessible from internet
image
Finally, there is no "Build Model" button in the last step, but "Build Skill"
image

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
image
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
image
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
image

Now, it would be the time to test the skill, it fails
image

Now, my questions:

  • It's the Endpoint URL correct? I've set up navidrome's URL, but perhaps I should create an entry to the docker instance (like https://amzendpoint.mydomain.com, pointing to my docker host port 5555)
  • Should I change the invocationName in the JSON or leave it by default as navisonic

@adocampo
Copy link
Author

adocampo commented Sep 29, 2024

UPDATED: I've changed the invocationName back to navisonic and now it seems to do something, but still, it doesn't work
image
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.

@adocampo
Copy link
Author

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
imagen

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: &#39;u&#39;"></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.

@rosskouk
Copy link
Owner

Hi @adocampo,

Your YAML file looks fine to me, and the skill web service confirms that as it states that it can successfully connect to your Navidrome instance in the debug logs. Also the missing U parameter is nothing to worry about, the same thing happens to me, I suspect it is due to not being authenticated with Navidrome when making the API call.

The skill logs in your "UPDATED2" post are interesting, it looks like something other than Amazon is trying to connect to the skill. From what I can see something is connecting to the URL: https://your-asknavidrome-skill-instance.com/api/stats. There is no api/stats page served by the skill so a 404 error is being generated. This is not normal behaviour from Amazon.

The Endpoint URL in the Amazon Developer Console you mentioned earlier should be the URL of your skill, this needs to have a valid / Amazon approved SSL / TLS certificate associated with it, a self signed certificate will not work. When you enter the URL make sure it includes the https://our-asknavidrome-skill-instance.com only, I do not believe including a port number in that box is allowed, Amazon must be able to connect to the skill on port 443

Another thing to double check is that your echo device is set to the ES locale, this must match the skill or it will not work. You need to check or set this in the Alexa app on your phone.

Could you please set the NAVI_DEBUG option to 3 and then start the skill by saying "Alexa open < your skill name>"

You should see output in the skill logs similar to this.

2024-09-30 13:29:54,948 - werkzeug - INFO - Press CTRL+C to quit
/opt/env/lib/python3.9/site-packages/ask_sdk_webservice_support/verifier.py:376: CryptographyDeprecationWarning: Properties that return a naïve datetime object have been deprecated. Please switch to not_valid_before_utc.
  if not (x509_cert.not_valid_before <= now <=
/opt/env/lib/python3.9/site-packages/ask_sdk_webservice_support/verifier.py:377: CryptographyDeprecationWarning: Properties that return a naïve datetime object have been deprecated. Please switch to not_valid_after_utc.
  x509_cert.not_valid_after):
2024-09-30 13:32:05,745 - root - DEBUG - Request received: {'locale': 'en-GB',
 'object_type': 'LaunchRequest',
 'request_id': 'amzn1.echo-api.request.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
 'task': None,
 'timestamp': datetime.datetime(2024, 9, 30, 13, 32, 4, tzinfo=tzlocal())}
2024-09-30 13:32:05,746 - root - DEBUG - In LaunchRequestHandler
2024-09-30 13:32:05,746 - asknavidrome.subsonic_api - DEBUG - In function ping()
2024-09-30 13:32:05,833 - asknavidrome.subsonic_api - INFO - Successfully connected to Navidrome
2024-09-30 13:32:05,949 - root - DEBUG - Response sent: {'api_response': None,
 'can_fulfill_intent': None,
 'card': None,
 'directives': None,
 'experimentation': None,
 'output_speech': {'object_type': 'SSML',
                   'play_behavior': None,
                   'ssml': '<speak>Ready!</speak>'},
 'reprompt': {'directives': None,
              'output_speech': {'object_type': 'SSML',
                                'play_behavior': None,
                                'ssml': '<speak>Ready!</speak>'}},
 'should_end_session': False}
2024-09-30 13:32:05,951 - werkzeug - INFO - 10.50.2.180 - - [30/Sep/2024 13:32:05] "POST / HTTP/1.1" 200 -
2024-09-30 13:32:19,721 - root - DEBUG - Request received: {'error': None,
 'locale': 'en-GB',
 'object_type': 'SessionEndedRequest',
 'reason': 'EXCEEDED_MAX_REPROMPTS',
 'request_id': 'amzn1.echo-api.request.4f5c1bd7-72dc-4c5b-b4e2-0d3401d72413',
 'timestamp': datetime.datetime(2024, 9, 30, 13, 32, 19, tzinfo=tzlocal())}
2024-09-30 13:32:19,721 - root - DEBUG - In SkillEventHandler
2024-09-30 13:32:19,721 - root - DEBUG - Response sent: {'api_response': None,
 'can_fulfill_intent': None,
 'card': None,
 'directives': None,
 'experimentation': None,
 'output_speech': None,
 'reprompt': None,
 'should_end_session': None}
2024-09-30 13:32:19,722 - werkzeug - INFO - 10.50.2.180 - - [30/Sep/2024 13:32:19] "POST / HTTP/1.1" 200 -

@adocampo
Copy link
Author

Hi! Thanks for your fast answer!

NAVI_DEBUG option is already set to 3, but the log is the same as level 2

[root@samael asknavidrome]# cat docker-compose.yml | grep DEBUG
            - 'NAVI_DEBUG=3'
[root@samael asknavidrome]# docker-compose logs -f
asknavidrome-1  | 2024-09-30 14:00:07,394 - root - INFO - AskNavidrome 0.6!
asknavidrome-1  | 2024-09-30 14:00:07,394 - root - DEBUG - Getting configutration from the environment...
asknavidrome-1  | 2024-09-30 14:00:07,394 - root - INFO - Skill ID set to: amzn1.ask.skill.1ef358c2-7d9f-474b-a735-66ddfd59838d
asknavidrome-1  | 2024-09-30 14:00:07,394 - root - INFO - Minimum song count is set to: 50
asknavidrome-1  | 2024-09-30 14:00:07,394 - root - INFO - The URL for Navidrome is set to: https://music.docampo.net
asknavidrome-1  | 2024-09-30 14:00:07,395 - root - INFO - The Navidrome user name is set to: alexa
asknavidrome-1  | 2024-09-30 14:00:07,395 - root - INFO - The Navidrome password is set
asknavidrome-1  | 2024-09-30 14:00:07,395 - root - INFO - The Navidrome port is set to: 443
asknavidrome-1  | 2024-09-30 14:00:07,395 - root - INFO - The Navidrome API path is set to: /rest
asknavidrome-1  | 2024-09-30 14:00:07,395 - root - INFO - The Navidrome API version is set to: 1.16.1
asknavidrome-1  | 2024-09-30 14:00:07,395 - root - DEBUG - Configuration has been successfully loaded
asknavidrome-1  | 2024-09-30 14:00:07,395 - root - DEBUG - Log level set to DEBUG
asknavidrome-1  | 2024-09-30 14:00:07,395 - root - DEBUG - MediaQueue object created...
asknavidrome-1  | 2024-09-30 14:00:07,396 - asknavidrome.subsonic_api - DEBUG - Connected to Navidrome
asknavidrome-1  | 2024-09-30 14:00:07,396 - asknavidrome.subsonic_api - DEBUG - In function ping()
asknavidrome-1  | 2024-09-30 14:00:07,439 - asknavidrome.subsonic_api - INFO - Successfully connected to Navidrome
asknavidrome-1  | 2024-09-30 14:00:07,460 - root - INFO - AskNavidrome Web Service is ready to start!
asknavidrome-1  | 2024-09-30 14:00:07,462 - root - WARNING - AskNavidrome debugging has been enabled, this should only be used when testing!
asknavidrome-1  | 2024-09-30 14:00:07,462 - root - WARNING - The /buffer, /queue and /history http endpoints are available publicly!
asknavidrome-1  |  * Serving Flask app 'app'
asknavidrome-1  |  * Debug mode: off
asknavidrome-1  | 2024-09-30 14:00:07,466 - 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-30 14:00:07,467 - werkzeug - INFO - Press CTRL+C to quit
asknavidrome-1  | 2024-09-30 14:00:12,259 - werkzeug - INFO - 192.168.1.100 - - [30/Sep/2024 14:00:12] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1  | 2024-09-30 14:00:17,259 - werkzeug - INFO - 192.168.1.100 - - [30/Sep/2024 14:00:17] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1  | 2024-09-30 14:00:22,258 - werkzeug - INFO - 192.168.1.100 - - [30/Sep/2024 14:00:22] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1  | 2024-09-30 14:00:27,258 - werkzeug - INFO - 192.168.1.100 - - [30/Sep/2024 14:00:27] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1  | 2024-09-30 14:00:32,261 - werkzeug - INFO - 192.168.1.100 - - [30/Sep/2024 14:00:32] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1  | 2024-09-30 14:00:37,258 - werkzeug - INFO - 192.168.1.100 - - [30/Sep/2024 14:00:37] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1  | 2024-09-30 14:00:42,259 - werkzeug - INFO - 192.168.1.100 - - [30/Sep/2024 14:00:42] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1  | 2024-09-30 14:00:47,259 - werkzeug - INFO - 192.168.1.100 - - [30/Sep/2024 14:00:47] "GET /api/stats HTTP/1.1" 404 -
asknavidrome-1  | 2024-09-30 14:00:52,259 - werkzeug - INFO - 192.168.1.100 - - [30/Sep/2024 14:00:52] "GET /api/stats HTTP/1.1" 404 -

My Alexa device's region is Spain
image
Does that mean the locale es_ES is right or should I look for another place for the locale?

Finally, I'm using let's encrypt, which is a valid Certification Authority. I have another skill (haaska, for Home Assistant), an I have no issues with LE and AWS.

@rosskouk
Copy link
Owner

Everything sounds like it should work, I'm wondering if locale might be the issue. Where in that app is the screenshot from? When I configured mine I had to go to Echo Dot > Settings > Language. You'd want to choose Espanol, Espana (I apologise for misspelling the words)

On the Amazon side, open the developer console and in your skill build menu you should see "Languages" in the "Tools" section. This must match your device, I think the option should be Spanish (ES).

If you find you need to change anything you will need to rebuild the skill

@adocampo
Copy link
Author

Well, all my devices are speaking spanish (spain) and I can just install skilld from amazon.es, so I guess they are already properly configured.
Anyway, this screenshot is taken from my Alexa App --> Devices ---> (Searched for one Alexa Echo Show) --> Location of the Device... If I scroll down a little more, I can see Language, which is set to Spanish.
In the developer's console, I set up this from the beginning
image

Things I do find strange:

  • What is that "You have activated the HelloWorldIntent"
    image
  • Why I cannot see anything special with NAVI_DEBUG=3
  • Why I see AskNavidrome 0.6! instead of AskNavidrome 0.8!
    [root@samael asknavidrome]# docker-compose logs -f
    asknavidrome-1  | 2024-09-30 14:00:07,394 - root - INFO - AskNavidrome 0.6!
    asknavidrome-1  | 2024-09-30 14:00:07,394 - root - DEBUG - Getting configutration from the environment...
    
    I've tried with 'ghcr.io/rosskouk/asknavidrome:latest' and ghcr.io/rosskouk/asknavidrome:v0.8a'

I think I have everything working, but the HelloWorldIntent drives me crazy... there is no intent with that name as far as I can see...
image
So, no idea why isn't working... :'(

@rosskouk
Copy link
Owner

Yes, this is strange. Please don't worry about the version 0.6, I forgot to update the value when I published the 0.8 version.

If you put your endpoint URL as it's set in the skill config on Amazon in to a browser do you see a 405 Method Not Allowed error (If you do this means the skill is working)?

All your locale settings looks fine too. I'm running out if ideas, but if nothing is showing up in the logs, that means that for some reason Amazon is not able to connect to the asknavidrome skill. If it was connecting you'd see the requests and responses like in the log sample. So the issue is that the Amazon cloud service is not attempting to connect to your skill instance, but I do not know why.

@adocampo
Copy link
Author

adocampo commented Oct 1, 2024

😞

Well, I need to figure then why aws cannot connect... let's wait if someone else has the same issue... :'(

@rosskouk rosskouk added help wanted Extra attention is needed wontfix This will not be worked on labels Oct 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

3 participants