action.devices.EXECUTE

此 intent 会发送要在智能家居设备上执行的命令。

您的执行方式应处理每个命令,将其传输到相应设备,并在 EXECUTE 响应中返回新状态。

一个 EXECUTE intent 可以使用多个命令定位多个设备。例如,一个被触发的 intent 可能会为一组灯设置亮度和颜色,或将多个灯设置为不同的颜色。

如需了解详情,请参阅查询和执行

请求格式

字段 类型 说明
requestId String

必填。

请求的 ID。

inputs 数组

必填。

与 intent 请求匹配的输入的列表。

[item, ...] 对象

与 intent 请求关联的类型和载荷。

intent

必填。

(常量值:"action.devices.EXECUTE"

intent 请求类型。

payload 对象

必填。

EXECUTE 请求载荷。

commands 数组

必填。

设备目标和命令对的列表。

[item, ...] 对象

要在已连接的设备目标上执行的一组命令。

devices 数组

必填。

目标设备列表。

[item, ...] 对象

要执行的设备目标。

id String

必填。

设备 ID,应与 SYNC 中提供的 ID 一致。

customData 对象

如果在 SYNC 中提供了不透明的 customData 对象,系统会将其发送到此处。

execution 数组

必填。

要在目标设备上执行的命令的列表。

[item, ...] 对象

设备命令。

command String

必填。

要执行的命令,通常附带参数。

params 对象

与每个命令的参数保持一致。

示例

EXECUTE intent 请求

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123",
                "customData": {
                  "fooValue": 74,
                  "barValue": true,
                  "bazValue": "sheepdip"
                }
              },
              {
                "id": "456",
                "customData": {
                  "fooValue": 36,
                  "barValue": false,
                  "bazValue": "moarsheep"
                }
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.OnOff",
                "params": {
                  "on": true
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

响应格式

字段 类型 说明
requestId String

必填。

相应请求的 ID。

payload 对象

必填。

intent 响应载荷。

errorCode String

整个事务的错误代码,用于表示授权失败和开发者系统不可用。对于单个设备错误,请使用 device 对象中的 errorCode。

debugString String

详细的响应错误,绝不会向用户显示,但可能会在开发期间记录或使用。

commands 数组

每个对象都包含一个或多个包含响应详细信息的设备。请注意,这些数据的组合方式可能与请求中不同。例如,请求可能会开启 7 个灯,其中 3 个灯成功开启,4 个灯开启失败,因此响应中会包含两个组。

[item, ...] 对象

设备执行结果。

ids 数组

必填。

与此状态对应的设备 ID 列表。

[item, ...] String

设备 ID。

status String

必填。

执行操作的结果。

支持的值:

SUCCESS
确认该命令是否成功。
PENDING
命令已加入队列,但预计会成功。
OFFLINE
目标设备处于离线状态或无法访问。
EXCEPTIONS
相应指令存在问题或提醒。该命令可能会成功或失败。当您想要发送有关其他已连接设备的更多信息时,通常会设置此状态类型。
ERROR
目标设备无法执行该命令。
states 对象

与每个 trait 架构参考文档中所述的每个 trait 状态保持一致。以下是执行后的状态(如果有)。

online 布尔值

指示设备是否处于在线(即可访问)状态。

errorCode String

根据预设错误代码(将映射到向用户显示的错误)扩展 ERROR 状态(如有必要)。

debugString String

详细的命令级错误,绝不会向用户显示,但可能会在开发期间记录或使用。

示例

EXECUTE intent 响应

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "on": true,
          "online": true
        }
      },
      {
        "ids": [
          "456"
        ],
        "status": "ERROR",
        "errorCode": "deviceTurnedOff"
      }
    ]
  }
}