1

当我尝试执行命令并且设备处于离线状态时,Assistant 仍然告诉我命令已成功完成。

当它是 QUERY 请求时,我没有这个问题,但是使用 EXECUTE ...

这是我返回的 JSON:

{
  "requestId": "XXXXXX",
  "payload": {
    "commands": [
      {
        "ids": [123],
        "status": "ERROR",
        "errorCode": "deviceTurnedOff",
        "online": false
      }
    ]
  }
}

我也试过这个:

{
  "requestId": "XXXXXX",
  "payload": {
    "commands": [
      {
        "ids": [123],
        "status": "OFFLINE",
        "errorCode": "deviceTurnedOff",
        "online": false
      }
    ]
  }
}

我希望当我尝试在离线设备上执行命令时,谷歌助手会告诉我该设备不可用,但我有一个Ok, i turn the light on

因此,如果您有任何想法,因为我已经检查了我的 JSON 响应 100 万次并多次阅读文档,但我找不到我的错误。

4

1 回答 1

1

这里的文档有点混乱,因为该示例显示了 QUERY 意图的响应负载。

EXECUTE 意图的响应负载略有不同,并在此处记录。

使用正确引用 EXECUTE 响应负载的 JSON 将如下所示:

{
  "requestId": "XXXXXX",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "OFFLINE",
      "errorCode": "deviceTurnedOff"
    }]
  }
}

注意:deviceId 应该是一个字符串,如 EXECUTE Response 有效负载详细信息中所述。

引用文档:

ID:数组。必需的。响应的合作伙伴设备 ID

于 2019-08-05T18:59:01.987 回答