文档首页> 设备接入 IoTDA> API参考> 应用侧API参考> API> 流转数据> 设备异步命令状态变更通知
更新时间:2024-02-28 GMT+08:00
分享

设备异步命令状态变更通知

接口说明

应用服务器在调用物联网平台的创建规则触发条件(Resource:device.command.status,Event:update)、创建规则动作修改规则触发条件接口配置并激活规则后,当命令状态变更时,物联网平台会向应用服务器推送通知消息。

注意事项

应用服务器收到推送消息时,请务必返回响应码。

URI

请求方法

POST

URI

应用服务器创建设备异步命令状态变更通知规则时的Url决定(HTTP),AMQP通道不需要url

传输协议

HTTPS

请求参数

名称

必选/可选

类型

位置

说明

resource

必选

String

Body

参数说明:订阅的资源名称,取值为device.commmad.status。

event

必选

String

Body

参数说明:订阅的资源事件,取值为update。

event_time

必选

String

Body

参数说明:资源事件生成时间,格式:yyyyMMdd'T'HHmmss'Z' UTC字符串,如:20151212T121212Z。若需要显示本地时区,您需要自己进行时间转换。

event_time_ms

可选

String

Body

参数说明:资源事件生成时间,格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' UTC字符串。如:2019-03-03T08:10:11.000Z。若需要显示本地时区,您需要自己进行时间转换。

request_id

可选

String

Body

参数说明:消息ID,由设备侧指定或平台生成,用于跟踪业务流程。

notify_data

必选

DeviceCommandStatusUpdateNotifyDataV5 Object

Body

参数说明:推送消息。

表1 DeviceCommandStatusUpdateNotifyDataV5

名称

必选/可选

类型

说明

header

必选

NotifyDataHeader Object

参数说明:推送消息header。

body

必选

DeviceCommandStatusUpdate Object

参数说明:推送消息body。

表2 NotifyDataHeader

名称

必选/可选

类型

说明

app_id

可选

String

参数说明:应用ID。

device_id

可选

String

参数说明:设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。

node_id

可选

String

参数说明:设备标识码,通常使用IMEI、MAC地址或Serial No作为nodeId。

product_id

可选

String

参数说明:产品ID,用于唯一标识一个产品,在注册产品时由物联网平台分配获得。

gateway_id

可选

String

参数说明:网关ID,用于标识一个网关设备。当设备是直连设备时,gatewayId与设备的deviceId一致。当设备是非直连设备时,gatewayId为设备所关联的直连设备(即网关)的deviceId。

tags

可选

List<TagV5DTO>

参数说明:要绑定到指定资源的标签列表,标签列表中各项标签键值之间不允许重复,一个资源最多可以绑定10个标签。

表3 TagV5DTO

名称

必选/可选

类型

说明

tag_key

必选

String

参数说明:标签键,在同一资源下标签键唯一。绑定资源时,如果设置的键已存在,则将覆盖之前的标签值。如果设置的键值不存在,则新增标签。

tag_value

可选

String

参数说明:标签值。

表4 DeviceCommandStatusUpdate

名称

必选/可选

类型

说明

command_id

必选

String

参数说明:命令id,唯一标识一条命令。

created_time

可选

String

参数说明:命令的创建时间,"yyyyMMdd'T'HHmmss'Z'"格式的UTC字符串。

sent_time

可选

String

参数说明:物联网平台发送命令的时间,如果命令是立即下发, 则该时间与命令创建时间一致, 如果是缓存命令, 则是命令实际下发的时间。"yyyyMMdd'T'HHmmss'Z'"格式的UTC字符串。

delivered_time

可选

String

参数说明:物联网平台将命令送达到设备的时间,"yyyyMMdd'T'HHmmss'Z'"格式的UTC字符串。

response_time

可选

String

参数说明:设备响应命令的时间,"yyyyMMdd'T'HHmmss'Z'"格式的UTC字符串。

status

可选

String

参数说明:下发命令的状态。

  • PENDING表示未下发,在物联网平台缓存着
  • EXPIRED表示命令已经过期,即缓存的时间超过设定的expireTime
  • SENT表示命令正在下发
  • DELIVERED表示命令已送达设备
  • SUCCESSFUL表示命令已经成功执行
  • FAILED表示命令执行失败
  • TIMEOUT表示命令下发之后,没有收到设备确认或者响应结果而超时。

result

可选

Object

参数说明:设备命令执行的详细结果,由设备返回,Json格式。

请求示例

POST https://{Endpoint}应用服务器创建设备异步命令状态变更通知规则时的Url决定(HTTP),AMQP通道不需要url
Content-Type: application/json

{
  "resource" : "device.commmad.status",
  "event" : "update",
  "event_time" : "20190303T081011Z",
  "event_time_ms" : "2019-03-03T08:10:11.000Z",
  "request_id" : "3fe58d5e-8697-4849-a165-7db128f7e776",
  "notify_data" : {
    "header" : {
      "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
      "product_id" : "ABC123456789",
      "app_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
      "gateway_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
      "node_id" : "ABC123456789",
      "tags" : [ {
        "tag_value" : "testTagValue",
        "tag_key" : "testTagName"
      } ]
    },
    "body" : {
      "result" : {
        "key" : "value"
      },
      "created_time" : "20151212T121212Z",
      "sent_time" : "20151212T121212Z",
      "command_id" : "id",
      "delivered_time" : "20151212T131212Z",
      "response_time" : "20151212T131212Z",
      "status" : "SUCCESSFUL"
    }
  }
}

响应示例

Status Code: 200 OK

分享:

    相关文档

    相关产品