You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Alexa智能家居技能Discovery指令失效,请求排查建议

调试思路与排查步骤
  • 修正返回的JSON结构
    这是最常见的踩坑点:Alexa要求Discover.Response的返回是直接的header+payload结构,不需要外层的event包裹。你当前返回的是{"event": {...}},正确的返回应该去掉外层的event键,直接返回:

    {
        "header": {
            "namespace": "Alexa.Discovery",
            "name": "Discover.Response",
            "messageId": "0559819e-49a3-4a8f-b614-6e8b3c186b71",
            "payloadVersion": "3"
        },
        "payload": {
            "endpoints": [
                // ... 你的设备信息 ...
            ]
        }
    }
    

    外层多包的event会导致Alexa无法识别响应内容,直接忽略设备。

  • 用Alexa开发者控制台测试工具验证
    进入Alexa开发者控制台,打开你的技能,切换到"测试"标签页,选择"智能家居"测试类型,手动发送一个Discover.Request请求,查看Lambda的返回和Alexa的处理结果。这里能直接看到Alexa是否解析到设备,以及是否有明确的错误提示。

  • 检查用户身份关联逻辑
    确认Lambda在处理发现请求时,能通过请求中的accessToken或userId正确关联到用户的设备。如果你的设备列表是硬编码的,也要确保没有针对用户身份做错误过滤,导致返回空列表(虽然你日志里有设备,但仍需确认这一点)。

  • 查看Alexa技能日志
    在开发者控制台的"日志"标签页,筛选设备发现相关的日志,查找是否有INVALID_RESPONSE或者其他错误提示。有些语义错误(比如friendlyName包含Alexa不支持的字符、endpointId重复)不会被Schema检测到,但会导致Alexa丢弃设备。

  • 验证设备属性的合法性

    • 确认displayCategories使用的是Alexa官方支持的类型(LIGHT是合法的,注意大小写必须完全匹配)。
    • 检查capabilities中的接口版本是否正确(比如Alexa.PowerController的版本是3,符合要求),proactivelyReported和retrievable的设置是否符合你的设备实际情况。
    • 确保endpointId在你的技能范围内是唯一的,不能重复。
  • 手动触发设备发现
    在Alexa App中,进入"设备"页面,点击右上角"+"选择"添加设备",找到你的技能后手动触发发现。自动发现可能存在延迟,手动触发能更快验证结果。


内容的提问来源于stack exchange,提问作者iking1211

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 15:28:10