node.js - Alexa 自定义技能设备发现

标签 node.js aws-lambda alexa-skills-kit

我是 Alexa 技能组的新手,我有一个设备需要被 Alexa 发现。我对 Alexa SMART HOME SKILL API 的设备发现功能感到困惑。我需要一些有关如何连接您构建的设备(使用树莓派)的详细信息,以便让 Alexa 通过自定义技能进行发现。

需要示例代码或良好的指南。

我了解有效负载应从设备云返回(产品制造商拥有此)。如何确保哪台设备在客户手上并且该设备属于正确的客户?

示例有效负载如下..

"discoveredAppliances": [{
    "applianceId": "sample-1",
    "manufacturerName": "Sample Manufacturer",
    "modelName": "Sample Thermostat",
    "version": "1",
    "friendlyName": "Sample Thermostat",
    "friendlyDescription": "Thermostat by Sample Manufacturer",
    "isReachable": true,
     "actions": [
        "setTargetTemperature",
        "incrementTargetTemperature",
        "decrementTargetTemperature"
     ],
     "additionalApplianceDetails": {
     "extraDetail1": "This is a thermostat that is reachable"
    }
 }]

您能详细解释一下discoveredAppliances json对象吗?在设备云中为客户生成这些详细信息背后的逻辑是什么?

最佳答案

有效负载中的所有信息都是为​​了让您告诉 Alexa 您的设备,并且可以是您想要的任何信息。真正重要的字段是:

  • applianceId:不得包含空格,并将与每个控制消息一起传递给您的技能。因此,请使其能够识别特定设备。

  • FriendlyName:包含用户识别该设备所需说出的确切单词;例如,“车库灯”。

    • FriendlyDescription:是将在 Alexa 应用程序中显示的有关此设备的文本。

    • actions:列出您可以处理的控制事件。您列出的示例包含恒温器类型控件。灯可能支持打开、关闭,还可能支持 setPercentage 调光。

如何检测和识别您的设备完全取决于您。

我希望这个解释有帮助。请注意,您还可以创建自定义技能来控制您的设备。还有更多创建自定义技能的示例。我在 Github 上发布了更多自定义技能信息和代码

关于node.js - Alexa 自定义技能设备发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43189935/

相关文章:

javascript - 让 socket.io、express 和 node-http2 通过 HTTP/2 进行通信

java - 在 Amazon Lambda 上运行 Spring Boot

amazon-web-services - AWS lambda 上带有断路器的代理 API

javascript - Alexa 技能 : Works for the first question but not the second question

php - 从 Amazon Alexa 技能包发送 HTTP post 请求

mysql - Node 连接MySQL失败,没有任何错误提示

node.js express.js 根路由重定向到//

node.js - 无法将随机字符串分配给 _id 字段。

node.js - AWS API Gateway OPTIONS 请求返回 500 错误

alexa - 我的自定义槽类型出现了意外的值