Alexa: Увеличение и уменьшение яркости устройства

Умение Alexa не работает с "Увеличить / Уменьшить имя_устройства в процентах".

Пример: Me - Alexa, увеличить устройство на 20%

Alexa - Извините, устройство не отвечает.

Однако, когда я проверяю приложение Alexa, оно увеличивает яркость на 20%.

Запрос:

{
    "directive": {
        "header": {
            "namespace": "Alexa.BrightnessController",
            "name": "AdjustBrightness",
            "payloadVersion": "3",
            "messageId": "0d-4605-9d50",
            "correlationToken": ""
            },
            "endpointId": "device",
            "cookie": {
                "Load": "LOAD_1",
                "NodeIndex": "0",
                "Type": "LIGHT",
                "Name": "96005E",
                "Thing": "device_0001"
            }
        },
        "payload": {
            "brightnessDelta": 20
        }
    }
}

Отклик:

{
    "context": {
        "properties": [
            {
                "namespace": "Alexa.BrightnessController",
                "name": "brightness",
                "value": 71,
                "timeOfSample": "2017-02-03T16:20:50.52Z",
                "uncertaintyInMilliseconds": 500
            }
        ]
    },
    "event": {
        "header": {
            "namespace": "Alexa",
            "name": "Response",
            "payloadVersion": "3",
            "messageId": "48CE-BBE5",
            "correlationToken": ""
        },
        "endpoint": {
            "scope": {
                "type": "BearerToken",
                "token": "access-token-from-Amazon"
            },
            "endpointId": "device"
        },
        "payload": {}
    }
}

Когда я приказываю "Установить устройство на 20%", он работает нормально, с ответом "ОК" от Alexa.

Примечание: я пробовал Alexa.PercentageController, он по-прежнему выдавал мне ту же ошибку.

1 ответ

Решение

Итак, я наконец-то понял, что вся заслуга принадлежит команде Amazon. Проблема была с ответом, который я отправлял Алексе. Ответ, который я отправлял, был асинхронным, но Alexa требует синхронизации.

Вот что команда Amazon ответила:

https://developer.amazon.com/docs/device-apis/alexa-interface.html

Примечание: синхронный ответ не включает токен на предъявителя, область и т. Д.

Если вы намерены следовать шаблону асинхронного ответа, вам сначала необходимо отправить сообщение синхронного отложенного ответа, а затем выполнить асинхронный ответ, который вы отправляете в шлюз событий Alexa.

Обратите внимание: большинство наших партнеров по освещению не используют шаблон отложенного ответа, а вместо этого просто отвечают на исходное управляющее сообщение синхронным сообщением. Обычно вы будете следовать шаблону отложенного ответа только в редких случаях, когда ваша внутренняя архитектура требует этого потока.

Другие вопросы по тегам