Sometimes, developers can build a Smart home skill, and successfully complete the account linking process, only to run into device discovery problems. This post aims to provide the most common issues for a failed device discovery scenario, and offers valuable tips ways to resolve any potential issues.
Failed device discovery often has to do with the JSON discovery response being malformed, or not following the recommended format/schema. To see example discovery responses for all capabilities, see the documentation for each interface, and additional discovery response examples.
Another common reason for the failed device discovery process is the mismatch between the account's PFM (preferred marketplace), the skill locale, and the AWS Lambda endpoint region. As a result, it is possible for device discovery to succeed in one language of the skill, and not another. If the skill locale and AWS Lambda region do not match, a "No new devices found" message will be displayed in the Alexa app, and the skill will be rejected during the certification process.
The following table lists the Alexa endpoint region, the associated AWS Lambda region and the corresponding Lambda function region that you must use for each language. If a language or country isn't shown in the table, see “Countries without native language support.”
For each locale that can be used for a Smart Home skill, there is an associated Alexa endpoint region that must be considered. Use the table below to identify the Alexa endpoint region where you must deploy your code according to the locale that you have chosen to use for your skill.
If you have already created a smart home skill, and you want to add a new locale or change the current one, please follow the steps outlined below.
To add or change a locale
1. Open the Alexa Skills page in the Developer Console, and go to the developer version of your Smart Home skill.
2. Access Language settings in the “Build” tab.
3. On the following page, you can do the following:
a. Click on + Add new language where you can choose from a list of available languages the one you want to add.
b. Click on Delete next to the current language to remove it from your skill.
4. Click SAVE.
The AWS Lambda function for Smart Home skills can only be deployed in the following regions:
To create the Lambda function in the right region
1. Open the Functions page of the Lambda console.
2. Choose the appropriate Region according to the skill locale using the drop-down list at the top of the screen.
3. Choose Create function.
4. Choose Author from scratch
5. Under Basic information, set up the Function name, Runtime and Architecture you want for your function code.
6. Choose Create function.
After creating the Lambda function, it is important to allow the skill to access it via the ARN. The ARN defines the endpoint location of the Lambda function. To establish the link between Alexa and the Lambda function in each geographic region, remember to provide the ARN in the skill configuration in the developer console.
To configure regional endpoint in the Alexa developer console
1. Navigate back to your skill in the developer console.
2. On the Smart Home page, under 2. Smart Home service endpoint, choose the geographic regions that apply.
3. Enter the ARN for the Lambda endpoint in the text boxes provided.
a. If your skill only supports one language/region, provide the same ARN for the default ARN and the selected regional ARN.
b. If your skill supports multiple languages/regions, you must provide ARNs for each region. Provide one of the regional ARNs for the default.
4. Click SAVE.
Before testing your Smart Home skill you need to check the PFM of your account. It is critical to ensure that the PFM coincides with the locale of the skill, as this is a mandatory requirement.
To add or change the PFM of the account
1. Sign into your Amazon retail account (e.g., www.amazon.com)
2. Navigate to the Manage Your Content and Devices section of your account: https://www.amazon.com/hz/mycd/myx#/home/settings/payment
3. Navigate to Preferences
4. Click Country/Region Settings
5. Click the Change button
6. Select the appropriate Country from the drop-down menu in the Address section
7. Click Update
When you are building a Smart Home skill, be clear about the list of locales you want to build the skill for. Once you have created the Smart Home skill in the Developer Console and set up all the locales, you can identify the region(s) to deploy your AWS Lambda function. For each region you will need to provide the ARN number in the skill configuration in the developer console. Finally, before testing the skill with your developer account, make sure that the PFM is set to the country for which you want to test your skill