3

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%”时,它工作正常,来自 Alexa 的“OK”响应。

注意:我已经尝试过 Alexa.PercentageController 它仍然给了我相同的错误响应。

4

1 回答 1

2

所以,我终于想通了,所有的功劳都归功于亚马逊团队。问题在于我发送给 Alexa 的响应。我发送的响应是异步的,但 Alexa 需要同步响应。

这是亚马逊团队的回复:

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

注意:同步响应不包括不记名令牌、范围等。

如果您打算遵循异步响应模式,那么您首先需要发送同步延迟响应消息,然后跟进发送到 Alexa 事件网关的异步响应。

注意:我们的大多数照明合作伙伴不使用延迟响应模式,而是使用同步消息来响应原始控制消息。您通常只会在后端架构需要此流程的罕见情况下使用延迟响应模式。

于 2018-03-23T08:51:24.613 回答