Alexa:增加和降低设备的亮度

时间:2018-02-07 10:51:34

标签: alexa alexa-skill smarthomeskill

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它仍然给了我相同的错误响应。

1 个答案:

答案 0 :(得分:2)

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

这是亚马逊团队回复的内容:

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

注意:同步响应不包括承载令牌,范围等。

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

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

相关问题