【问题标题】:Alexa Smart Home "Failed to Retrieve State"Alexa 智能家居“无法检索状态”
【发布时间】:2020-10-19 22:35:00
【问题描述】:

我正在玩一个示例 Alexa 智能家居技能 - 我不是在与任何真正的硬件或后端交谈,只是试图让消息流正常工作。我已经设置了一个简单的开关/插头/灯,可以支持打开/关闭 - 我有帐户链接工作并启用了技能。当我尝试通过手机或网络上的 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": {}
    }
}

【问题讨论】:

标签: alexa alexa-skill smarthomeskill


【解决方案1】:

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

我的一般建议是始终验证 三个 事情是好的:

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

我的意思是:

  1. 您宣传的任何内容都应在“发现”中报告,最好在其他(“报告状态”)消息中报告。如果您宣传“PowerController” - 如果您的 ReportStates 不包含该状态,您将看不到该状态,或者它将永远重试(继续寻找它) - 或者您可能 出现某种错误。
  2. 如果您更改了您的发现内容 - 请确保您确实已删除、重新发现,并且新添加/删除的状态(以上)正常
  3. 始终确保报告“EndpointHealth”。

【讨论】:

    猜你喜欢
    • 2018-08-17
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多