更新时间:2025-10-22 GMT+08:00

发送命令 - SendCommand

功能介绍

发送命令

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项

URI

POST /v2/{project_id}/link/instances/{instance_id}/devices/{device_id}/send-command

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID。兼容20.0场景默认为default。项目ID,获取方式请参见API参考的“附录 > 获取项目ID”章节。

instance_id

String

实例的ID。兼容20.0场景默认为default。

device_id

Integer

设备ID,该字段为数据库中的自增唯一标识符;通过调用查询设备接口:GET /v2/{project_id}/link/instances/{instance_id}/devices获取响应体中对应设备的device_id字段值。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

service_id

Integer

服务ID,该字段为数据库中的自增唯一标识符;通过调用查询服务接口:GET /v2/{project_id}/link/instances/{instance_id}/services获取响应体中对应服务的service_id字段值。

command_id

Integer

命令ID,该字段为数据库中的自增唯一标识符;通过调用查询命令接口:GET /v2/{project_id}/link/instances/{instance_id}/services/{service_id}/commands获取响应体中对应命令的command_id字段值。

is_sync

Boolean

命令是否同步,1-同步,0-异步。 同步命令会将命令以MQTT消息发送给设备后等待设备的MQTT命令响应,收到响应后再回复响应(默认超时5秒),超时时接口报错误信息,异步命令则以立即返回响应。

is_cache_to_shadow

Boolean

是否要将该命令存入设备影子,1-启用(默认),0-禁用。 如果将该命令存入设备影子,设备订阅command topic或者子设备上线时,会收到设备影子中存储的命令,返回命令响应时会将对应的命令从设备影子清除。 如果不将该命令存入设备影子,即使没下发命令成功,后续设备订阅topic也不会收到这条命令。

requests

Array of RequestParameter objects

请求参数列表。

表4 RequestParameter

参数

是否必选

参数类型

描述

parameter_name

String

请求参数名。

parameter_value

String

请求参数值。

响应参数

状态码:204

No Content

状态码:400

表5 响应Body参数

参数

参数类型

描述

error_code

String

系统错误码,针对4xx和5xx类HTTP错误码的详细错误码。

error_msg

String

错误描述。

request_id

String

消息ID。

状态码:404

表6 响应Body参数

参数

参数类型

描述

error_code

String

系统错误码,针对4xx和5xx类HTTP错误码的详细错误码。

error_msg

String

错误描述。

request_id

String

消息ID。

状态码:500

表7 响应Body参数

参数

参数类型

描述

error_code

String

系统错误码,针对4xx和5xx类HTTP错误码的详细错误码。

error_msg

String

错误描述。

request_id

String

消息ID。

请求示例

向指定设备发送命令,命令发送方式为同步发送

{
  "service_id" : 10001,
  "command_id" : 20001,
  "is_sync" : 1
}

响应示例

状态码:400

Bad Request

{
  "error_code" : "SCB.00000000",
  "error_msg" : "Parameter is not valid for operation [romalink.link-device.sendCommand]. Parameter is [device_id]. Processor is [path].",
  "request_id" : "cb39e78a-afd3-4e04-901d-70468b1c23dc-1619602712496-cnnorth7a-P-romalink-service01"
}

状态码:404

Not Found

{
  "error_code" : "ROMA.00110006",
  "error_msg" : "The resource does not exist. Check whether the resource ID 1 is correct.",
  "request_id" : "624c8be1-39b6-47b7-941d-c159aced368a-1619602544650-cnnorth7a-P-romalink-service01"
}

状态码:500

Internal Server Error

{
  "error_code" : "ROMA.00110002",
  "error_msg" : "The instance does not exist. project_id: 397cd10b30544c588b2f4a56d83856c4, instance_id: f3bb386a-23ec-47aa-9943-4c60ac658611",
  "request_id" : "c8c06d0a-be92-4fdf-9d10-bc20131ab158-1619593104919-cnnorth7a-P-romalink-service01"
}

状态码

状态码

描述

204

No Content

400

Bad Request

404

Not Found

500

Internal Server Error

错误码

请参见错误码