此问题是由我们之前关于QUERY意图审核要求的问题提示的,here。
虽然我们目前无法实现查询许多设备的详细状态,但我们希望对QUERY意图的尝试做出正确回应。具体来说:使用 notSupported 错误响应似乎是合适的。对于一般用户查询,例如“桌面是否亮起?”,这可以正常运行:
“桌面灯无法使用该模式”。
但是,在尝试相对操作时,例如“Dim the Desk light。”,相同的响应格式会导致Google Home的以下响应:
“桌面灯遇到未知错误。”
在两种情况下都会返回相同的json响应:
{
"requestId": "****************",
"payload": {
"devices": {
"********": {
"errorCode": "notSupported"
}
}
}
}
我们通过伪造具有实际亮度状态的查询响应来验证QUERY返回后意图是否正确继续;接下来接收EXECUTE意图以实现亮度变化。
我们不确定为什么在这种情况下处理 notSupported 错误的方式不同;我们是否可能误解了如何对这种QUERY的错误响应进行格式化?如果是这样,我们如何区分一个QUERY意图后面的QUERY意图和一个单独的QUERY意图?也许还有其他一些我们错过的东西?
感谢您的阅读。
答案 0 :(得分:0)
在提供相对命令时,例如“调暗台灯”,Google智能助理首先需要知道当前的亮度。要执行此操作,助手需要首先查询您的服务器或使用REPORT_STATE将数据直接存储在HomeGraph中。
回复是故意的。如果我询问指示灯是否亮起,则设备无法响应该类型的查询。
如果我想改变亮度,那就是灯光可以支持的模式。否则说不正确。但是,执行流程失败,因为它无法检索您当前的亮度。不知道它现在是什么,它不能相对改变亮度并返回错误。
说“将我的光线设置为10%”这是一个绝对的变化。
答案 1 :(得分:0)
刚刚接下来 - 我得到了查询中的逻辑 - 但查询本身完全是普通的 - 我们怎么知道它是一个需要返回的查询: "亮度":65
而不是 - " on":true