2

我正在玩一个示例 Alexa Smart Home 技能——我不是在与任何真正的硬件或后端交谈,只是试图让消息流正常工作。我已经设置了一个简单的开关/插头/灯,可以支持打开/关闭 - 我有帐户链接工作并启用了技能。当我尝试通过手机或网络上的 Alexa 应用程序(启用调试)查看它时,它总是说设备没有响应,或者它是“无法检索状态”。我绝对可以在 Cloud Watch 中看到如下消息。

知道为什么我会长期得到这样的回应吗?

要求:

    “指令”:{
        “端点”:{
            “曲奇饼”: {},
            "endpointId": "endpoint-003",
            “范围”: {
                “令牌”:“<<<抑制>>”,
                “类型”:“承载令牌”
            }
        },
        “标题”:{
            "correlationToken": "<<缩短>>",
            "messageId": "50397414-bb9d-412f-8a2c-15669978ab64",
            “名称”:“报告状态”,
            “命名空间”:“Alexa”,
            “有效载荷版本”:“3”
        },
        “有效载荷”:{}
    }
}

回复:

{
    "context": {
        "properties": [
            {
                "name": "connectivity",
                "namespace": "Alexa.EndpointHealth",
                "timeOfSample": "2020-06-29T16:49:59.00Z",
                "uncertaintyInMilliseconds": 0,
                "value": "OK"
            },
            {
                "name": "powerState",
                "namespace": "Alexa.PowerController",
                "timeOfSample": "2020-06-29T16:49:59.00Z",
                "uncertaintyInMilliseconds": 0,
                "value": "ON"
            }
        ]
    },
    "event": {
        "endpoint": {
            "endpointId": "endpoint-003",
            "scope": {
                "token": "Alexa-access-token",
                "type": "BearerToken"
            }
        },
        "header": {
            "correlationToken": "<<SHORTENED>>",
            "messageId": "7a8b9a71-adda-41b8-acba-4d3855374845",
            "name": "Response",
            "namespace": "Alexa",
            "payloadVersion": "3"
        },
        "payload": {}
    }
}
4

1 回答 1

1

问题是:我的标题响应中的“名称”应该是“ReportState”。“响应”仅用于设置/更改值的事物。

我的一般建议是始终验证件事是好的:

  1. 最初的“发现”
  2. “响应”消息
  3. 一般的“ReportState”查询。

通过这个 - 我的意思是:

  1. 您宣传的任何内容都应该在“发现”中报告,最好在其他(“报告状态”)消息中报告。如果您宣传“PowerController”-如果您的 ReportStates 不包含该状态,您将看不到状态,或者它将永远重试(继续寻找它)-或者您可能会得到某种一个错误。
  2. 如果你改变了你的发现的东西 - 确保你真的删除了,重新发现了,并且新添加/删除的状态(上面)是好的
  3. 始终确保正在报告“EndpointHealth”。
于 2020-06-30T01:00:10.560 回答