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

针对身份验证失败和开发者系统不可用的整个事务的错误代码。对于单个设备错误,请在设备对象中使用 errorCode。

debugString String

详细错误,此类错误永远不会向用户显示,但可能会在开发过程中被记录或使用。

commands 数组

每个对象都包含一个或多个具有响应详情的设备。注意这些事件的分组方式可能与请求中的方式不同。例如,请求可能会打开 7 盏灯,其中 3 盏灯成功,4 盏灯失败,因此响应中有两组。

[item, ...] 对象

设备执行结果。

ids 数组

必填。

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

[item, ...] String

设备 ID。

status String

必填。

执行操作的结果。

支持的值:

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

与每个特征架构参考中描述的每个特征状态保持一致。这些是执行后的状态(如果有)。

online 布尔值

指示设备是否在线(即可连接)。

errorCode String

根据需要从预设的错误代码扩展 ERROR 状态,该状态将映射到呈现给用户的错误。

示例

执行 intent 响应

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