Ответ Alexa.Discovery: Alexa не обнаруживает устройство - PullRequest
0 голосов
/ 28 мая 2020

Я использую свой навык Alexa Home Skill, используя AWS Lambda.

Учитывая следующий запрос, который я получаю, когда пытаюсь обнаружить новые устройства на тестовой странице Alexa Skil:

{directive={header={namespace=Alexa.Discovery, name=Discover, payloadVersion=3, messageId=0160c7e7-031f-47ee-a1d9-a23f38f87a9e}, payload={scope={type=BearerToken, token=...}}}}

Я отвечаю следующим образом:

{
    "event": {
        "payload": {
            "endpoints": [
                {
                    "displayCategories": [
                        "SMARTPLUG"
                    ],
                    "capabilities": [
                        {
                            "type": "AlexaInterface",
                            "interface": "Alexa",
                            "version": "3"
                        },
                        {
                            "type": "AlexaInterface",
                            "interface": "Alexa.PowerController",
                            "version": "3",
                            "properties": {
                                "retrievable": true,
                                "supported": [
                                    {
                                        "name": "powerState"
                                    }
                                ],
                                "proactivelyReported": true
                            }
                        },
                        {
                            "type": "AlexaInterface",
                            "interface": "Alexa.EndpointHealth",
                            "version": "3",
                            "properties": {
                                "retrievable": true,
                                "supported": [
                                    {
                                        "name": "connectivity"
                                    }
                                ],
                                "proactivelyReported": true
                            }
                        }
                    ],
                    "manufacturerName": "mirko.io",
                    "endpointId": "ca84ef6d-53b1-430a-8a5e-a62f174eac5e",
                    "description": "mirko.io forno (id: ca84ef6d-53b1-430a-8a5e-a62f174eac5e)",
                    "friendlyName": "forno"
                }
            ]
        },
        "header": {
            "payloadVersion": "3",
            "namespace": "Alexa.Discovery",
            "name": "Discover.Response",
            "messageId": "c0555cc8-ad7a-4377-b310-9de9b9ab6282"
        }
    }
}

Несмотря на это, по некоторым причинам Alexa отвечает, что не нашла нового устройства. Я могу ошибаться, но я почти уверен, что раньше это работало, прежде чем я решил добавить интерфейс Alexa.EndpointHealth.

1 Ответ

0 голосов
/ 29 мая 2020

Ваш объект ответа мне кажется правильным, за исключением дополнительного поля "endpoint".

"endpoint": {
            "endpointId": "INVALID",
            "scope": {
                "type": "BearerToken",
                "token": "INVALID"
            }
        }

В документации Alexa.Discovery такого поля нет. Попробуйте удалить его и посмотрите, решит ли он проблему.

...