action.devices.EXECUTE
此 intent 会发送要在智能家居设备上执行的命令。
您的执行方式应处理每个命令,将其传输到相应设备,并在 EXECUTE 响应中返回新状态。
一个 EXECUTE intent 可以使用多个命令定位多个设备。例如,一个被触发的 intent 可能会为一组灯设置亮度和颜色,或将多个灯设置为不同的颜色。
如需了解详情,请参阅查询和执行。
请求格式
| 字段 | 类型 | 说明 | 
|---|---|---|
requestId | 
    String | 
       必填。 请求的 ID。  | 
  
inputs | 
    数组 | 
       必填。 与 intent 请求匹配的输入的列表。  | 
  
[item, ...] | 
    对象 | 
       与 intent 请求关联的类型和载荷。  | 
  
intent | 
    
       必填。 (常量值: 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 | 
       必填。 执行操作的结果。 支持的值: 
  | 
  
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" } ] } }