在 v3 智能家居技能上获取命名空间 Alexa 插入 Alexa.PowerController

问题描述

我正在尝试使用 Alexa android 应用打开 Alexa 电源控制器设备。 但是每个 lambda 事件我都会得到这个。

{
    "directive": {
        "header": {
            "namespace": "Alexa","name": "ReportState","payloadVersion": "3","messageId": "c985c301-1ae8-4013-8a5d-c975e9ddf31f","correlationToken": "AAAAAAAAAADb0ZCBEV1S7hhRZkAeNare/AEAAAAAAAAd5ANtHk2G5dYhON0vwxOERWFAqWB7HXUXUCTg1AvS2d4WsQkTdOltpM1JbiBh/LtQTAlphKyhSGt2fSI0Bgoiif6C7nxAvIzAQHkhE+SgK/+wUiq3azaVetTtF6maWY2sQxYr6DC6aL5ItvgpM+AavI9RQhwtF5yqr/aT2adHRQr3cVmILnNYzbGSwvTz73fLVgMVxDDma3EAhJDNFVTKXm1+dCVXu7185aQpIzWIn67l2Mh+3oKdJrkdKl9ey06V621u1g8yKGI2thnBb1xz+FHoistYfMSH2wU6puWR5jt8bUTl3aWIkhCnqKoo6KxJ8UR6KpzVdv25XBiE+HDI4cvcjsI4oBn4yJ2RBe0lJ9Bz5jP+Atu0k3wtUN7AG72q3onshTykvdSJNt+T2D6obEASmixHfW5dbnanvgrpo5sQzx8vcVDMrRosTmOcl9p+fpawJm0E9uuaav/Z/krHkf99bFB13BTpCBgHvAeTCmcF9hx5w7Pzz7VxOf+mL9ksUFU3AYz+UW0Ac3Fr/wSP4oK9lJYS1rJepEWy8P/TW/8uoQL5NP9QpXXsaGfJo4txwIMbCGiU+P4SXFRC4qPsRaGihlJeUsl4dZedng34kFqbFg0JPUG8CXDTt7dBw+5P3E0IVC2F3yOUkzsif3JKfETfn0YDbklC1GM/"
        },"endpoint": {
            "scope": {
                "type": "BearerToken","token": "eyJraWQiOiI2SXp5OTROeGUxVXloUWlIampLVmpNaTJqTUZhbGtBcnFTS3ZtYUoyQ3JRPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI3ZWMxMTZjZi01MjUzLTQyMjctYTE4NC0wYTM0YTIzZdhlNWUiLCJldmVudF9pZCI6ImJhNWI2NDI3LWZhYTItNDhhMC04NjE0LTM1Y2NhNjMyMWVmNiIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwiLCJhdXRoX3RpbWUiOjE2MTUyOtixNTksImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTIuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0yXzJ4ZHJMZWdIMyIsImV4cCI6MTYxNTM3NjkwOCwiaWF0IjoxNjE1MzczMzA4LCJ2ZXJzaW9uIjoyLCJqdGkiOiIyYmYzZWNjMS01NGVhLTQwM2ItYjhmOS0yNDdlYjFmNjdjNDIiLCJjbGllbnRfaWQiOiI2bWpzcWNmbzZoaThpdnRoMmtlMWplY3UwciIsInVzZXJuYW1lIjoiN2VjMTE2Y2YtNTI1My00MjI3LWExODQtMGEzNGEyM2Q4ZTVlIn0.N0Vppx-nkFO6fbddMyzef7zutVR9YiBO1hK6H5jVo4rNMwYbXhM_DH6l5nhwsuSmhhtzJjjwBCvB2hm2yJ9ZgYuIQPRttoPZZVsiVF_YQoMsOA08W1C3vJTXjIn5n1-NwHunegtiMHcqpMwvErJOg_fKE388dos2y-38rDmTTTwxKilSL1uU6NLoTcUbaPdKRlUkExqaaP_mGITGy7pviNk-tgCPQXdh3pf8kw9l1Jk_eWQDLT0lrAtUoWOhVtML5JKgGzysOU963mKQLgU-fcsWnrCwftrL5dGA57wJUzm9O5LIWwahzpdispv5KisIQxk0QcV7Qan27xnv8XD8VA"
            },"endpointId": "endpoint-001","cookie": {
                "detail1": "For simplicity,this is the only appliance","detail2": "that has some values in the additionalApplianceDetails"
            }
        },"payload": {}
    }
}

看看它显示的命名空间字段只显示 Alexa 而不是 Alexa.PowerController here is the official v3 sample

我仍然可以通过使用 name 字段来做到这一点,但我怀疑在使用某些 Alexa 设备时,即使它显示 v3,它也会回到文档中。

我该如何处理这种情况。 使用节点 14.x。

解决方法

您正在获取 ReportState 指令。它不是代替 PowerController。这是一个额外的指令。您假设发送 StateReport 作为响应。

通常,当移动应用打开时,此指令每隔几秒发送一次,因此如果您的设备状态发生变化(例如与设备进行物理交互),它会正确显示在应用中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...