Alexa技能不适用于"将 device_name 增加/减少到百分比"。
示例:我 - 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%"它工作正常," OK" Alexa的回应。
注意:我试过Alexa.PercentageController它仍然给了我相同的错误响应。
答案 0 :(得分:2)
所以,我终于明白了,所有的功劳归功于亚马逊团队。问题在于我发送给Alexa的回复。我发送的响应是异步的,但Alexa需要同步响应。
这是亚马逊团队回复的内容:
https://developer.amazon.com/docs/device-apis/alexa-interface.html#response
注意:同步响应不包括承载令牌,范围等。
如果您的目的是遵循异步响应模式,那么您首先需要发送同步延迟响应消息,然后跟进您发送到Alexa事件网关的异步响应。
注意:我们的大多数照明合作伙伴都不使用延迟响应模式,而只是使用同步消息响应原始控制消息。在极少数情况下,您通常只会遵循延迟响应模式,而后端架构需要这种流程。