我在发现中遇到了问题。
当我发现设备时,它似乎没有调用我定义的Lambda函数。 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"
}
]
}
}
答案 0 :(得分:1)
我刚才遇到同样的问题。没有发现请求发送到我的lambda函数。错误是我为Trigger输入了无效的应用程序ID>智能家居触发器。
这需要与您的技能应用ID相同。
答案 1 :(得分:0)
我有同样的问题。一切都配置正确,但是没有 Discover Request (Alexa.Discovery)发送到lambda函数。
最后,作为模拟alexa设备的echosim服务(echosim.io)出现了问题。
文档中提到设备(回声)必须与lambda函数位于同一区域,否则不会调用您的lambda。
要成功发现智能家居设备,必须选择设备所在的区域。
https://developer.amazon.com/zh-CN/docs/alexa/smarthome/steps-to -build-a-smart-home-skill.html#create-a-lambda-function
进一步的解释:
每个alexa开发人员帐户都需要连接一个alexa设备,否则您将无法使用alexa仿真器。
设备可以是:
echosim似乎位于美国,而我部署的lambda在欧洲。我删除了echosim并将其安装在手机上,并使用开发者帐户登录。之后,设备发现工作正常。