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