【问题标题】:Alexa SmartHome Skills : Issue with device discoveryAlexa SmartHome 技能:设备发现问题
【发布时间】:2019-12-13 21:00:39
【问题描述】:

我写了一个Alexa智能家居技巧。

当我尝试使用 Alexa 测试或从移动应用程序发现设备时,会触发 lambda。

lambda 正在成功执行,但我在 App 中遇到错误或在 Alexa 控制台中进行测试。

我找不到任何新的智能家居设备。如果你还没有, 请通过 Alexa App 为您的设备启用智能家居技能。

可能的问题是什么?

由于 lambda 已成功执行,我认为部署 lambda 的语言 (English(IN)) 或 AWS 区域 (EU-WEST-1) 没有任何问题。

我在 Alexa 开发者控制台上没有看到任何日志

任何指针?

来自 Lambda 函数的响应 -

标题 =

    { 
namespace: 'Alexa.Discovery',
    name: 'Discover.Response',
    payloadVersion: '3',
    messageId: '785f0173-6ddb-41d8-a785-de7159c7f7ca' 
}

有效载荷 =

{
    "endpoints": [
        {
            "endpointId": "d4b87cbe6c8e490493733f260b8c2c25",
            "friendlyName": "Kitchen",
            "description": "Demo",
            "manufacturerName": "Man1",
            "displayCategories": [
                "LIGHT"
            ],
            "cookie": {
                "owner": "Owner1"
            },
            "capabilities": [
                {
                    "type": "AlexaInterface",
                    "version": "3",
                    "interface": "Alexa"
                },
                {
                    "type": "AlexaInterface",
                    "version": "3",
                    "interface": "Alexa.PowerController",
                    "properties": {
                        "supported": [
                            {
                                "name": "powerState"
                            }
                        ],
                        "proactivelyReported": true,
                        "retrievable": true
                    }
                },
                {
                    "type": "AlexaInterface",
                    "version": "3",
                    "interface": "Alexa.BrightnessController",
                    "properties": {
                        "supported": [
                            {
                                "name": "brightness"
                            }
                        ],
                        "proactivelyReported": true,
                        "retrievable": true
                    }
                }
            ]
        }
    ]
}

我们将标头和有效负载包装在响应事件中。

context.succeed({ event: { header: header, payload: payload } });

【问题讨论】:

标签: amazon-web-services aws-lambda alexa alexa-skills-kit alexa-skill


【解决方案1】:

到目前为止,我也没有找到查看日志的方法。

我遇到了同样的问题,我意识到我在某些属性或模式实体(如 ids)中输入了错误的值。

以同样的方式,在某些情况下解决我的另一件事是按以下方式放置方案:

context.succeed({
  "event": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": header.messageId
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "demo_id",
          ...
          ,
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            },
            ...
          ]
        }
      ]
    }
  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-28
    • 2018-09-14
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多