智能家居 - 更正 JSON 以在设备离线时响应 EXECUTE

Smart Home - Correct JSON to respond to EXECUTE when device is offline

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

当它是 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
      }
    ]
  }
}

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

所以如果你有任何想法,因为我已经检查了我的 JSON 回复 100 万次并多次阅读文档但我找不到我的错误。

文档 here 有点令人困惑,因为该示例显示了 QUERY 意图的响应负载。

EXECUTE 意图的响应负载略有不同,并记录在案 here

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

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

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

引用文档:

ids: Array. Required. Partner device IDs of the response