我在Discovery遇到了一个问题。
当我发现设备时,它似乎没有调用我定义的Lambda函数。在Skill上配置Lambda功能,在Lambda功能上配置事件源。
当我试图从Alexa接口发现设备时,我从监控日志中检查到lambda函数没有被调用。
如果我尝试使用lambda测试接口进行测试,它会给出响应。
来自lambda测试接口的示例请求
{
"header": {
"messageId": "6d6d6e14-8aee-473e-8c24-0d31ff9c17a2",
"name": "DiscoverAppliancesRequest",
"namespace": "Alexa.ConnectedHome.Discovery",
"payloadVersion": "2"
},
"payload": {
"accessToken": "some string"
}
}我从我的API端点得到的响应如下
{
"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"
}
]
}
}发布于 2017-02-02 20:33:53
我也有同样的问题。没有发现请求被发送到我的lambda函数。错误是我为触发器>智能家居触发器输入了无效的应用程序id。
这需要与您的技能应用程序id相同的值。
发布于 2020-09-25 02:30:37
我也有同样的问题。一切都配置正确,但是没有发现请求 (Alexa.Discovery)发送到lambda函数。
最终,作为模拟alexa设备的echosim服务(echosim.io)出现了问题。
文档提到设备(echo)必须与您的lambda函数位于同一区域,否则您的lambda不会被调用。
要成功发现智能家居设备,您必须选择设备所在的区域。
进一步解释:
每个alexa开发者账户都需要一个alexa设备连接到它,否则你不能使用alexa模拟器。
设备可以是:
似乎echosim位于美国,而我部署的lambda位于欧洲。我删除了echosim,在手机上安装了alexa应用程序,并使用开发人员帐户登录。之后,设备发现工作得很好。
发布于 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。
https://stackoverflow.com/questions/38460897
复制相似问题