首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Amazon Alexa智能家居:无法发现设备

Amazon Alexa智能家居:无法发现设备
EN

Stack Overflow用户
提问于 2016-07-19 22:07:43
回答 3查看 1.2K关注 0票数 2

我在Discovery遇到了一个问题。

当我发现设备时,它似乎没有调用我定义的Lambda函数。在Skill上配置Lambda功能,在Lambda功能上配置事件源。

当我试图从Alexa接口发现设备时,我从监控日志中检查到lambda函数没有被调用。

如果我尝试使用lambda测试接口进行测试,它会给出响应。

来自lambda测试接口的示例请求

代码语言:javascript
复制
{
    "header": {
        "messageId": "6d6d6e14-8aee-473e-8c24-0d31ff9c17a2",
        "name": "DiscoverAppliancesRequest",
        "namespace": "Alexa.ConnectedHome.Discovery",
        "payloadVersion": "2"
    },
    "payload": {
        "accessToken": "some string"
    }
}

我从我的API端点得到的响应如下

代码语言:javascript
复制
 {
  "header": {
    "messageId": "6d6d6e14-8aee-473e-8c24-0d31ff9c17a2",
    "name": "DiscoverAppliancesResponse",
    "namespace": "Alexa.ConnectedHome.Discovery",
    "payloadVersion": "2"
  },
  "payload": {
    "discoveredAppliances": [
      {
        "actions": [
          "incrementPercentage",
          "decrementPercentage",
          "setPercentage",
          "turnOn",
          "turnOff"
        ],
        "additionalApplianceDetails": {
          "serialNumber": "CRED DEVICE 1456842949167",
          "firmwareVersion": "0.7.1.1"
        },
        "applianceId": "d4cab60d-b2e5-4d0f-ae50-c566e0de26ce",
        "friendlyDescription": "Den",
        "friendlyName": "Den",
        "isReachable": true,
        "manufacturerName": "CredSmartLabs",
        "modelName": "H+1140-87-",
        "version": "1"
      }
    ]
  }
}
EN

回答 3

Stack Overflow用户

发布于 2017-02-02 20:33:53

我也有同样的问题。没有发现请求被发送到我的lambda函数。错误是我为触发器>智能家居触发器输入了无效的应用程序id。

这需要与您的技能应用程序id相同的值。

票数 1
EN

Stack Overflow用户

发布于 2020-09-25 02:30:37

我也有同样的问题。一切都配置正确,但是没有发现请求 (Alexa.Discovery)发送到lambda函数。

最终,作为模拟alexa设备的echosim服务(echosim.io)出现了问题。

文档提到设备(echo)必须与您的lambda函数位于同一区域,否则您的lambda不会被调用。

要成功发现智能家居设备,您必须选择设备所在的区域。

https://developer.amazon.com/en-US/docs/alexa/smarthome/steps-to-build-a-smart-home-skill.html#create-a-lambda-function

进一步解释:

每个alexa开发者账户都需要一个alexa设备连接到它,否则你不能使用alexa模拟器。

设备可以是:

  • 一个真正的alexa设备(Amazon echo,Amazon echo dot,...)
  • 一部装有alexa应用程序的智能手机
  • a simulated (echosim.io)

似乎echosim位于美国,而我部署的lambda位于欧洲。我删除了echosim,在手机上安装了alexa应用程序,并使用开发人员帐户登录。之后,设备发现工作得很好。

票数 0
EN

Stack Overflow用户

发布于 2021-08-28 16:37:59

我也遇到了同样的问题: Alexa无法发现我的设备。但与@RenRen不同的是,我没有使用任何Alexa模拟器。我的是一台真正的亚马逊Echo设备。

因此,我确认,如果存在区域不匹配,所有Alexa设备都将面临相同的问题。

问题:我一字不差地遵循了https://github.com/alexa-samples/skill-sample-python-smarthome-switch/blob/master/instructions/README.md教程。

该教程假设我留在北美,但从未明确说明这一假设。既然我住在印度,我一定是在EU-West-1地区(爱尔兰)创建了我的Lambda!这一点并不明显,本教程在任何地方都没有提到这一点。我无法理解亚马逊在印度捆绑设备,在爱尔兰捆绑lambda服务器,并对此严加保密的逻辑。

最后的解决方案很简单:我删除了我的US lambda,并创建了一个在EU-West1中具有相同设置的新lambda。现在,发现进行得很顺利。

另请注意:在智能家居服务端点下的Alexa开发人员控制台中,我必须选中“欧洲,印度”复选框,并提供我的爱尔兰lambda的ARN。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38460897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档