Developer Console

DRS - Test your skill

Step 1. Testing device discovery

Testing your Lambda function

You may now perform a quick test of the Discovery request in the Lambda code editor.

  1. Click on Test. The Configure test event page appears.
  2. Leave Create new test event selected. For Event template, leave the default Hello World. In the Event name, enter discovery and replace the entire contents in the editor with the following code.
{
    "directive": {
        "header": {
            "namespace": "Alexa.Discovery",
            "name": "Discover",
            "payloadVersion": "3",
            "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
        },
        "payload": {
            "scope": {
                "type": "BearerToken",
                "token": "access-token-from-skill"
            }
        }
    }
}
  1. Click Create, and then Test. If successful, the Execution Result should be similar to the following:
{
  "event": {
    "header": {
      "correlationToken": "12345692749237492",
      "messageId": "1bd5d003-31b9-476f-ad03-71d471922820",
      "name": "Discover.Response",
      "namespace": "Alexa.Discovery",
      "payloadVersion": "3"
    },
    "payload": {
      "endpoints": [{
          "endpointId": "appliance-001",
          "friendlyName": "Printer",
          "description": "Printer by Sample Manufacturer",
          "manufacturerName": "Sample Manufacturer",
          "displayCategories": [
            "OTHER"
          ],
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.InventoryLevelSensor",
              "version": "3",
              "instance": "InventoryLevelSensor-1",
              "properties": {
                "supported": [{
                  "name": "level"
                }],
                "proactivelyReported": true,
                "retrievable": true
              },
                // Other Capabilities here
            }
          ]
        }]
    }
  }
}

Testing on a physical device

When your implementation is completed, and you have tested your Lambda function, you can functionally test your smart home skill to ensure device discovery is working as expected.

  1. Make sure you have a smart home trigger added and enabled. To check this, go to the Lambda console, select your smart home skill, and make sure you have an Alexa Smart Home trigger. If you don't, go back to the Step 5 of Creating the Lambda Function
  2. Sign in to the Alexa app (available on Android, iOS or the web (Opens in a new tab) with the same credentials as your developer account.
  3. Find your skill in the Alexa app. To do this, go to Skills, and tap Your Skills in the upper right corner of the All Skills page. Scroll to DEV SKILLS and find your skill.
  4. Click the ENABLE button to enable the skill, and you will be directed to account-link the skill to a device cloud account. If you are unable to complete account linking, make sure you are using valid credentials for the device cloud. Otherwise, it is likely there is an issue with account-linking information you provided in the developer console. For help with this, see Alexa: Debugging account linking in the developer forums. If you want to remove account linking later, you should disable your skill in the Skills tab.
  5. Close the window and tap the DISCOVER DEVICES button in the Alexa app.
  6. If the skill does not discover devices, check the logs for your Lambda function to see if it received a discover directive from Alexa, and use the logs to troubleshoot the issue. Common issues include incorrectly formatted event responses.
  7. If your skill successfully discovers devices, return to the Test page of the developer console. You may test other functionalities of the skill (if any).

Step 2. Testing the end-to-end functionality

Run the certification test cases

Level Sensor

  1. Set up a physical device through Alexa by opening the Alexa app and completing the DRS set-up upon device discovery. When selecting the notification and reorder options, choose the Automatic reorder when supply is low option.

  2. Check that the inventory you are sending is being captured correctly (ensure the levels match any third-party app levels being reported).

    To see the latest consumable level (for example, battery level), go to Device Settings > Supply.

    Low supply notification

    You will receive a notification email when the consumable level drops to your low level threshold. In some cases, we wait for three low-level PSU updates before sending a notification to be sure that it was not a random fluctuation causing the battery to report low threshold.
  3. Trigger a low inventory level replenishment for each slot (replenishmentId).

    Use the product so that the consumable level drops below the low-level threshold. (Note: For a replenishment order to be triggered, your consumable level must drop and remain at or below your low level threshold for 3 consecutive inventory level updates.)

  4. Reset the inventory level for each slot (replenishmentId).

    Replace the consumable (for example, replace the battery or ink cartridge) of the product and leave the device running until at least one ChangeReport with a new inventory value is sent to Alexa.

  5. Check the selection for your device. Go to Device Settings > Supply and click on the ASIN. This shows you all the ASINs that customers can select for your device.

  6. Trigger a low-inventory-level notification for each slot (replenishmentId):

    1. Go to Device Settings, then tap on Change in the Status (Supply) section.
    2. Tap on the setting in Supply Settings section to open the "Notification and reorder settings" page.
    3. Select Notify me when supply is low and then Continue.
    4. Use the product so that the consumable level drops below the low-level threshold.

Usage Sensor

  1. Enable skill and discover devices via the Alexa app, in Alexa App, open Devices > (The discovered device) > device settings > Supply > Reorder setting > Reorder. Verify the ASINs that customers can select for your device.

  2. Setup Household Inventory by setting the value with low threshold + 1 (e.g. If the threshold is 10 counts, set Household Inventory to 11). If this is the first time to setup this device type: To Setup Household Inventory, go to Device Settings > Supply >Add extra supply. If you already setup the household inventory before: go to Device Settings > Supply > # units under current level and supplies

  3. Send at least 3 consumption events and check that the consumptions you are sending is being captured correctly (ensure the consumptions match your app's consumptions being reported and household inventory decreased by the same amount). To see the the household inventory, go to Device Settings > Supply. Note: Message Id should be unique for each consumption event.

  4. Make sure the Household Inventory is lower than the low threshold.

Low supply notification

You will receive a notification email when the Household Inventory drops to your low level threshold. This doesn’t happen instantly instead it take place in 6 hours timeframe.

Next steps

Once you are satisfied that the skill is performing the two main DRS functionalities (Discovery and Inventory updates), you may submit it for DART certification. Please liaise with your account manager or send an email to drs-support@amazon.com to start this process. Your account manager will reach out within 1-5 business days with the certification status and next steps.

You will need to provide the following information to your Amazon point of contact to initiate certification:

  • Vendor Code
  • 3P Alexa Skill ID used for testing (should be production)
  • Endpoint ID of device used for testing
  • Encrypted Customer ID (CID) of customer/account used for executing test cases

To find the CID, using the test account, log in to the Developer Console, and then go to developer.amazon.com/mycid.html.


Last updated: Mar 08, 2021