华为云用户手册

  • LwM2M对象资源 物联网平台 向设备下发异步设备命令,物联网平台通过LwM2M的/19/1/0资源对象将命令打包到LwM2M write消息的payload里下发给设备。 Operation CoAP Method URI Success Failure Write PUT /19/1/0 2.04 Changed 4.00 Bad Request, 4.04 Not Found, 4.01 Unauthorized, 4.05 Method Not Allowed, 4.06 Not Acceptable 1、使用LwM2M协议接入的设备,物联网平台只支持下发异步设备命令。 2、物联网平台接收到命令之后会调用用户的在物联网平台上传的编解码插件进行编码后下发给设备,参考编解码插件开发。
  • 上行响应示例 Topic:$oc/devices/{device_id}/sys/properties/get/response/request_id={request_id} 数据格式: { "services": [ { "service_id": "Temperature", "properties": { "PhV_phsA": "1", "PhV_phsB": "2" }, "event_time": "20190606T121212Z" } ] }
  • Topic 下行: $oc/devices/{device_id}/sys/properties/get/request_id={request_id} 上行: $oc/devices/{device_id}/sys/properties/get/response/request_id={request_id} {request_id}用于唯一标识这次请求。设备侧收到下行请求的topic带该参数时,上行响应的topic需要将该参数值返回给平台。 应用查询设备属性时,平台会生成唯一ID用于标识该请求。同时该唯一标识会通过平台查询设备属性下行Topic中的requst_id携带给设备。 设备无法提前感知该request_id,在订阅该Topic时请使用通配符“#”来替代“request_id={request_id}”即为:$oc/devices/{device_id}/sys/properties/get/#。
  • URI POST /v5/iot/{project_id}/batchtasks/{task_id}/retry 表1 路径参数 参数 是否必选 参数类型 描述 task_id 是 String 参数说明:批量任务ID,创建批量任务时由物联网平台分配获得。 取值范围:长度不超过24,只允许小写字母a到f、数字的组合。 project_id 是 String 参数说明:项目ID。获取方法请参见 获取项目ID 。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用 IAM 服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。 最小长度:1 最大长度:36 表3 请求Body参数 参数 是否必选 参数类型 描述 targets 否 Array of strings 执行批量任务的目标集合,最多支持100个目标,当task_type为firmwareUpgrade,softwareUpgrade时,此处填写device_id
  • 请求示例 重新执行状态为失败,失败待重试和已停止的子任务 POST https://{endpoint}/v5/iot/{project_id}/batchtasks/{task_id}/retry { } 重新执行指定目标集合的子任务 POST https://{endpoint}/v5/iot/{project_id}/batchtasks/{task_id}/retry { "targets" : [ "e495cf17-ff79-4294-8f64-4d367919d665" ] }
  • 响应示例 状态码: 200 OK { "targets" : [ { "target" : "e495cf17-ff79-4294-8f64-4d367919d665", "status" : "failure", "error_code" : "IOTDA.014219", "error_msg" : "Invalid input. The target is not in the task" }, { "target" : "e495cf17-ff79-4294-8f64-4d367919d677", "status" : "success" } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 targets Array of BatchTargetResult objects 批量操作目标结果集合 表5 BatchTargetResult 参数 参数类型 描述 target String 执行批量任务的目标。 status String 目标的执行结果,为success或failure error_code String 操作失败的错误码 error_msg String 操作失败的错误描述
  • 响应示例 状态码: 201 Created { "task_id" : "5c8ba99030344005c02316ad", "task_name" : "testname", "task_type" : "softwareUpgrade", "targets" : [ "e495cf17-ff79-4294-8f64-4d367919d665" ], "targets_filter" : { "group_ids" : [ "e495cf17-ff79-4294-8f64-4d367919d665" ] }, "document" : { "package_id" : "32822e5744a45ede319d2c50" }, "task_policy" : { "schedule_time" : "20151212T121212Z", "retry_count" : 5, "retry_interval" : 60 }, "status" : "Success", "status_desc" : "string", "task_progress" : { "total" : 0, "processing" : 0, "success" : 0, "fail" : 0, "waitting" : 0, "fail_wait_retry" : 0, "stopped" : 0 }, "create_time" : "20151212T121212Z" }
  • 请求示例 创建批量软件升级任务,指定设备升级。 POST https://{endpoint}/v5/iot/{project_id}/batchtasks { "app_id" : "Ev8FVvCfOdQDzrFrxSOemiw_aMca", "task_name" : "BatchSoftwareUpgradeTask", "task_type" : "softwareUpgrade", "targets" : [ "e495cf17-ff79-4294-8f64-4d367919d665" ], "document" : { "package_id" : "32822e5744a45ede319d2c50" }, "task_policy" : { "schedule_time" : "20151212T121212Z", "retry_count" : 5, "retry_interval" : 60 } } 创建批量软件升级任务,指定设备组中设备进行升级。 POST https://{endpoint}/v5/iot/{project_id}/batchtasks { "app_id" : "Ev8FVvCfOdQDzrFrxSOemiw_aMca", "task_name" : "BatchSoftwareUpgradeTask", "task_type" : "softwareUpgrade", "document" : { "package_id" : "32822e5744a45ede319d2c50" }, "targets_filter" : { "group_ids" : [ "e495cf17-ff79-4294-8f64-4d367919d665" ] }, "task_policy" : { "schedule_time" : "20151212T121212Z", "retry_count" : 5, "retry_interval" : 60 } } 创建批量注册设备任务,从文件中读取参数。 POST https://{endpoint}/v5/iot/{project_id}/batchtasks { "app_id" : "Ev8FVvCfOdQDzrFrxSOemiw_aMca", "task_name" : "BatchCreateDevicesTask", "task_type" : "createDevices", "task_policy" : { "schedule_time" : "20151212T121212Z", "retry_count" : 5, "retry_interval" : 60 }, "document_source" : "jeQDJQZltU8iKgFFoW060F5SGZka" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 bridges Array of BridgeResponse objects 网桥列表。 page Page object 查询结果的分页信息。 表5 BridgeResponse 参数 参数类型 描述 bridge_id String 网桥ID bridge_name String 网桥名称。 status String 网桥状态。 ONLINE:网桥在线。 OFFLINE:网桥离线。 表6 Page 参数 参数类型 描述 count Long 满足查询条件的记录总数。 marker String 本次分页查询结果中最后一条记录的ID,可在下一次分页查询时使用。
  • 响应示例 状态码: 200 OK { "bridges" : [ { "bridge_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f", "bridge_name" : "dianabridge", "status" : "ONLINE" } ], "page" : { "count" : 10, "marker" : "5c90fa7d3c4e4405e8525079" } }
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。
  • URI GET /v5/iot/{project_id}/bridges 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数说明:项目ID。获取方法请参见 获取项目ID 。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 参数说明:分页查询时每页显示的记录数。 取值范围:1-50的整数,默认值为10。 最小值:1 最大值:50 缺省值:10 marker 否 String 参数说明:上一次分页查询结果中最后一条记录的ID,在上一次分页查询时由物联网平台返回获得。分页查询时物联网平台是按marker也就是记录ID降序查询的,越新的数据记录ID也会越大。若填写marker,则本次只查询记录ID小于marker的数据记录。若不填写,则从记录ID最大也就是最新的一条数据开始查询。如果需要依次查询所有数据,则每次查询时必须填写上一次查询响应中的marker值。 取值范围:长度为24的十六进制字符串,默认值为ffffffffffffffffffffffff。 缺省值:ffffffffffffffffffffffff offset 否 Integer 参数说明:表示从marker后偏移offset条记录开始查询。默认为0,取值范围为0-500的整数。当offset为0时,表示从marker后第一条记录开始输出。限制offset最大值是出于API性能考虑,您可以搭配marker使用该参数实现翻页,例如每页50条记录,1-11页内都可以直接使用offset跳转到指定页,但到11页后,由于offset限制为500,您需要使用第11页返回的marker作为下次查询的marker,以实现翻页到12-22页。 取值范围:0-500的整数,默认为0。 最小值:0 最大值:500 缺省值:0
  • 示例 Topic: $oc/devices/{device_id}/sys/events/up 数据格式: { "object_device_id": "{object_device_id}", "services": [{ "service_id": "$file_manager", "event_type": "get_download_url", "event_time": "20151212T121212Z", "paras": { "file_name": "a.jpg", "file_attributes": { "hash_code": "58059181f378062f9b446e884362a526", "size": 1024 } } }] }
  • 批量任务 批量任务场景下,用户通过调用此目录接口实现任务文件管理功能。 - 当前支持批量创建设备任务、批量删除设备任务、批量冻结设备任务、批量解冻设备任务的文件管理。 - 当前单用户管理的文件数量最大为10,超过则无法上传新的文件。 - 当前文件最大存储时间为1小时,超过1小时文件会被平台自动老化。 创建批量任务 查询批量任务列表 查询批量任务 删除批量任务 重试批量任务 停止批量任务 批量任务的文件管理 父主题: API
  • 示例 Topic: $oc/devices/{device_id}/sys/events/down 数据格式: { "object_device_id": "{object_device_id}", "services": [ { "service_id": "$sub_device_manager", "event_type": "add_sub_device_response", "event_time": "20151212T121212Z", "event_id": "40cc9ab1-3579-488c-95c6-c18941c99eb4", "paras": { "successful_devices": [ { "device_id": "c6b39067b0325db34663d3ef421a42f6_subdevice11", "name": "subdevice11", "node_id": "subdevice11", "product_id": "c6b39067b0325db34663d3ef421a42f6", "description": "subdevice11", "manufacturer_id": "ofo", "model": "twx2", "fw_version": null, "sw_version": null, "status": "ONLINE", "extension_info" : null, "parent_device_id" : null } ], "failed_devices": [ { "node_id": "subdevice12", "product_id": "c6b39067b0325db34663d3ef421a42f6", "error_code": "XXX", "error_msg": "XXXX" } ] } } ] }
  • 参数说明 表1 系统格式下发消息字段表 字段名 必选/可选 类型 参数描述 object_device_id 可选 String 平台下发时,若为网关子设备,该参数为Topic中设备的子设备Id。 平台下发时,若为直连设备,该参数会与Topic中的device_id一致。 name 可选 String 消息名称,可不填写,做说明用。 id 可选 String 消息的唯一标识,用于区分与查找消息。如不填写系统会自动生成一个消息ID,消息ID不可重复。 content 必选 String 消息内容,可以为base64编码格式。
  • 示例 系统格式: Topic: $oc/devices/{device_id}/sys/messages/down 数据格式: { "object_device_id": "{object_device_id}", "name": "name", "id": "id", "content": "hello" } 自定义格式: Topic: $oc/devices/{device_id}/sys/messages/down 数据格式: arbitrary content
  • 功能介绍 设备无法按照产品模型中定义的格式进行指令下发时,可使用此接口下发自定义格式的数据给设备。在此之上也可以使用平台封装的标准格式,即在应用侧API的下发设备消息中payload_format填写为“standard”,或者在设备详情页的云端下发-消息下发中下发时选择“按系统格式”。 消息下发和命令下发的区别,请查看消息通信说明。 低配置且资源受限或者对网络流量有要求的设备,不适合直接构造JSON数据与物联网平台通信时,可将原始二进制数据透传到物联网平台。通过开发编解码插件实现二进制数据到平台定义JSON格式的转换。
  • 示例 Topic: $oc/devices/{device_id}/sys/events/down 数据格式: { "services": [{ "service_id": "$log", "event_type": "log_config", "event_time": "20151212T121212Z", "paras": { "switch": "on", "end_time": "20151212T131212Z" } }] }
  • 请求消息头 附加请求消息头(header)字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 参数 说明 Content-Type 消息体的媒体类型,默认取值为“application/json”。 Authorization 访问物联网平台的认证信息,值为“Bearer {access_token}”,其中{access_token}为收到的升级通知中的access_token。 示例 GET https://100.93.28.202:8943/iodm/dev/v2.0/upgradefile/applications/******/devices/******/packages/****** Content-Type: application/json Authorization: Bearer ****** 如果event_type为firmware_upgrade_v2、software_upgrade_v2,则在请求下载软固件包时不需要携带请求头。请求示例如下: GET https://******.obs.cn-north-4.myhuaweicloud.com:443/test.bin?AccessKeyId=DX5G7W*********
  • 示例一 软固件保存在IoT平台,升级时设备会收到如下信息: Topic: $oc/devices/{device_id}/sys/events/down 数据格式: { "object_device_id": "{object_device_id}", "services": [ { "service_id": "$ota", "event_type": "firmware_upgrade", "event_time": "20151212T121212Z", "paras": { "version": "v1.2", "url": "https://100.93.28.202:8943/iodm/dev/v2.0/upgradefile/applications/******/devices/******/packages/******", "file_size": 81362928, "file_name": "upgrade.bin", "access_token": "595124473f866b033dfa1f", "expires": 86400, "sign": "595124473f866b033dfa1f7e831c8c99a12f6143f392dfa996a819010842c99d", "custom_info": "This upgrade package adds some new features.", "task_id": "65d31bf2581ed33a42a58d76", "sub_device_count": 2, "task_ext_info": { "device_type": "DDC" } } } ] }
  • 示例二 软固件保存在OBS中,升级时设备会收到如下信息: Topic: $oc/devices/{device_id}/sys/events/down 数据格式: { "object_device_id": "{object_device_id}", "services": [ { "service_id": "$ota", "event_type": "firmware_upgrade_v2", "event_time": "20151212T121212Z", "paras": { "version": "v1.2", "url": "https://******.obs.cn-north-4.myhuaweicloud.com:443/test.bin?AccessKeyId=DX5G7W*********", "file_size": 81362928, "file_name": "upgrade.bin", "expires": 3600, "sign": "595124473f866b033dfa1f7e831c8c99a12f6143f392dfa996a819010842c99d", "custom_info": "This upgrade package adds some new features.", "task_id": "65d31bf2581ed33a42a58d76", "sub_device_count": 2, "task_ext_info": { "device_type": "DDC" } } } ] }
  • URI DELETE /v5/iot/{project_id}/routing-rule/actions/{action_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数说明:项目ID。获取方法请参见 获取项目ID 。 action_id 是 String 参数说明:规则动作ID。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,一般华为云租户无需携带该参数,仅在物理多租场景下从管理面访问API时需要携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID。
  • 示例 Topic: $oc/devices/{device_id}/sys/events/down 数据格式: { "object_device_id": "{object_device_id}", "services": [ { "service_id": "$sub_device_manager", "event_type": "sub_device_update_status_response", "event_time": "20151212T121212Z", "event_id": "40cc9ab1-3579-488c-95c6-c18941c99eb4", "paras": { "successful_devices": [ { "device_id": "c6b39067b0325db34663d3ef421a42f6_subdevice11", "status": "ONLINE" } ], "failed_devices": [ { "device_id": "c6b39067b0325db34663d3ef421a42f6_subdevice11", "error_code": "XXX", "error_msg": "XXXX" } ] } } ] }
  • 响应参数 状态码: 201 表6 响应Body参数 参数 参数类型 描述 app_id String 资源空间ID。 最大长度:36 app_name String 资源空间名称。 device_id String 设备ID,用于唯一标识一个设备。在注册设备时直接指定,或者由物联网平台分配获得。由物联网平台分配时,生成规则为"product_id" + "_" + "node_id"拼接而成。 node_id String 设备标识码,通常使用IMEI、MAC地址或Serial No作为node_id。 gateway_id String 网关ID,用于标识设备所属的父设备,即父设备的设备ID。当设备是直连设备时,gateway_id与设备的device_id一致。当设备是非直连设备时,gateway_id为设备所关联的父设备的device_id。 device_name String 设备名称。 node_type String 设备节点类型。 ENDPOINT:非直连设备。 GATEWAY:直连设备或网关。 UNKNOWN:未知。 description String 设备的描述信息。 fw_version String 设备的固件版本。 sw_version String 设备的软件版本。 device_sdk_version String 设备的sdk信息。 auth_info AuthInfoRes object 设备的接入认证信息。 product_id String 设备关联的产品ID,用于唯一标识一个产品模型。 product_name String 设备关联的产品名称。 status String 设备的状态。 ONLINE:设备在线。 OFFLINE:设备离线。 ABNORMAL:设备异常。 INACTIVE:设备未激活。 FROZEN:设备冻结。 create_time String 在物联网平台注册设备的时间。格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 connection_status_update_time String 设备最近一次连接状态(ONLINE:在线,OFFLINE:离线,ABNORMAL:异常)变化时间。格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' ,如2015-12-12T12:12:122Z。 active_time String 设备激活时间。格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' ,如2015-12-12T12:12:122Z。 tags Array of TagV5DTO objects 设备的标签列表。 extension_info Object 设备扩展信息。用户可以自定义任何想要的扩展信息,如果在创建设备时为子设备指定该字段,将会通过MQTT接口“平台通知网关子设备新增“将该信息通知给网关。 表7 AuthInfoRes 参数 参数类型 描述 auth_type String 参数说明:鉴权类型。注意:不填写auth_type默认为密钥认证接入方式(SECRET)。 取值范围: SECRET:使用密钥认证接入方式。 CERTIFICATES:使用证书认证接入方式。 secret String 参数说明:设备密钥,认证类型使用密钥认证接入(SECRET)可填写该字段。注意:NB设备密钥由于协议特殊性,只支持十六进制密钥接入;查询设备列表接口不返回该参数。 取值范围:长度不低于8不超过32,只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:8 最大长度:32 secondary_secret String 参数说明:设备备用密钥,认证类型使用密钥认证接入(SECRET)该字段有效,当主密钥校验不通过时,会启用辅密钥校验,辅密钥与主密钥有相同的效力;辅密钥对coap协议接入的设备不生效。注意:NB设备密钥由于协议特殊性,只支持十六进制密钥接入;查询设备列表接口不返回该参数。 取值范围:长度不低于8不超过32,只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:8 最大长度:32 fingerprint String 参数说明:证书指纹,认证类型使用证书认证接入(CERTIFICATES)该字段有效,注册设备时不填写该字段则取第一次设备接入时的证书指纹。 取值范围:长度为40的十六进制字符串或者长度为64的十六进制字符串。 secondary_fingerprint String 参数说明:证书备用指纹,认证类型使用证书认证接入(CERTIFICATES)该字段有效,当主指纹校验不通过时,会启用辅指纹校验,辅指纹与主指纹有相同的效力。 取值范围:长度为40的十六进制字符串或者长度为64的十六进制字符串。 secure_access Boolean 参数说明:指设备是否通过安全协议方式接入。 取值范围: true:通过安全协议方式接入。 false:通过非安全协议方式接入。非安全接入的设备存在被仿冒等安全风险,请谨慎使用。 缺省值:true timeout Integer 参数说明:设备接入的有效时间,单位:秒,默认值:0 若设备在有效时间内未接入物联网平台并激活,则平台会删除该设备的注册信息。若设置为“0”,则表示平台不会删除该设备的注册信息(建议填写为“0”)。 注意:该参数只对直连设备生效。 最小值:0 最大值:2147483647 缺省值:0 表8 TagV5DTO 参数 参数类型 描述 tag_key String 参数说明:标签键,在同一资源下标签键唯一。绑定资源时,如果设置的键已存在,则将覆盖之前的标签值。如果设置的键值不存在,则新增标签。 取值范围:长度不超过64,只允许中文、字母、数字、以及_.-等字符的组合。 tag_value String 参数说明:标签值。 取值范围:长度不超过128,只允许中文、字母、数字、以及_.-等字符的组合。
  • 请求示例 创建设备,认证类型为密钥认证。 POST https://{endpoint}/v5/iot/{project_id}/devices { "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f", "node_id" : "ABC123456789", "device_name" : "dianadevice", "product_id" : "b640f4c203b7910fc3cbd446ed437cbd", "auth_info" : { "auth_type" : "SECRET", "secret" : "3b935a250c50dc2c6d481d048cefdc3c", "secure_access" : true }, "description" : "watermeter device", "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka", "extension_info" : { "aaa" : "xxx", "bbb" : 0 }, "shadow" : [ { "service_id" : "WaterMeter", "desired" : { "temperature" : "60" } } ] } 创建设备,认证类型为证书认证。 POST https://{endpoint}/v5/iot/{project_id}/devices { "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f", "node_id" : "ABC123456789", "device_name" : "dianadevice", "product_id" : "b640f4c203b7910fc3cbd446ed437cbd", "auth_info" : { "auth_type" : "CERTIFICATES", "fingerprint" : "dc0f1016f495157344ac5f1296335cff725ef22f", "secure_access" : true }, "description" : "watermeter device", "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka", "extension_info" : { "aaa" : "xxx", "bbb" : 0 }, "shadow" : [ { "service_id" : "WaterMeter", "desired" : { "temperature" : "60" } } ] } 创建设备,设备类型非直连设备。 POST https://{endpoint}/v5/iot/{project_id}/devices { "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f", "node_id" : "ABC123456789", "device_name" : "dianadevice", "product_id" : "b640f4c203b7910fc3cbd446ed437cbd", "description" : "watermeter device", "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka", "gateway_id" : "5a332c1a-d14f-489c-a8e7-4753b1bb0872", "extension_info" : { "aaa" : "xxx", "bbb" : 0 }, "shadow" : [ { "service_id" : "WaterMeter", "desired" : { "temperature" : "60" } } ] }
  • 响应示例 状态码: 201 Created { "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka", "app_name" : "testAPP01", "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f", "node_id" : "ABC123456789", "gateway_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f", "device_name" : "dianadevice", "node_type" : "ENDPOINT", "description" : "watermeter device", "fw_version" : "1.1.0", "sw_version" : "1.1.0", "auth_info" : { "auth_type" : "SECRET", "secret" : "3b93****fdc3c", "fingerprint" : "dc0f****f22f", "secure_access" : true, "timeout" : 0 }, "product_id" : "b640f4c203b7910fc3cbd446ed437cbd", "product_name" : "Thermometer", "status" : "INACTIVE", "create_time" : "20190303T081011Z", "connection_status_update_time" : null, "active_time" : null, "tags" : [ { "tag_key" : "testTagName", "tag_value" : "testTagValue" } ], "extension_info" : { "aaa" : "xxx", "bbb" : 0 } }
共100000条