华为云用户手册

  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。 表3 请求Body参数 参数 是否必选 参数类型 描述 proxy_name 是 String 参数说明:设备代理名称 最小长度:1 最大长度:64 proxy_devices 是 Array of strings 参数说明:代理设备列表,列表内所有设备共享网关权限,即列表内任意一个网关下的子设备可以通过组里任意一个网关上线然后进行数据上报。 取值范围:列表内填写设备id,列表内最少有2个设备id,最多有10个设备id,设备id取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合,建议不少于4个字符。 effective_time_range 是 EffectiveTimeRange object 参数说明:设备代理规则有效期 app_id 是 String 参数说明:资源空间ID。携带该参数指定创建的设备归属到哪个资源空间下。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 表4 EffectiveTimeRange 参数 是否必选 参数类型 描述 start_time 否 String 设备代理开始生效的时间,使用UTC时区,格式:yyyyMMdd'T'HHmmss'Z' end_time 否 String 设备代理失效的时间,必须大于start_time,使用UTC时区,格式:yyyyMMdd'T'HHmmss'Z'
  • 请求示例 设备删除通知示例: 设备删除通知 { "resource" : "device", "event" : "delete", "event_time" : "20151212T121212Z", "event_time_ms" : "2015-12-12T12:12:12.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" } ] } } }
  • 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 resource 是 String 参数说明:订阅的资源名称,取值为device。 event 是 String 参数说明:订阅的资源事件,取值为delete。 event_time 是 String 参数说明:资源事件生成时间,格式:yyyyMMdd'T'HHmmss'Z' UTC字符串,如:20151212T121212Z。若需要显示本地时区,您需要自己进行时间转换。 event_time_ms 否 String 参数说明:资源事件生成时间,格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' UTC字符串,如:2015-12-12T12:12:12.000Z。若需要显示本地时区,您需要自己进行时间转换。 request_id 否 String 参数说明:消息ID,由设备侧指定或平台生成,用于跟踪业务流程。 notify_data 是 DeviceDeleteNotifyData object 参数说明:推送消息。 表2 DeviceDeleteNotifyData 参数 是否必选 参数类型 描述 header 是 NotifyDataHeader object 参数说明:推送消息header。 表3 NotifyDataHeader 参数 是否必选 参数类型 描述 app_id 否 String 参数说明:应用ID。 最大长度:256 device_id 否 String 参数说明:设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 最大长度:256 node_id 否 String 参数说明:设备标识码,通常使用IMEI、MAC地址或Serial No作为nodeId。 最大长度:256 product_id 否 String 参数说明:产品ID,用于唯一标识一个产品,在注册产品时由物联网平台分配获得。 最大长度:256 gateway_id 否 String 参数说明:网关ID,用于标识一个网关设备。当设备是直连设备时,gatewayId与设备的deviceId一致。当设备是非直连设备时,gatewayId为设备所关联的直连设备(即网关)的deviceId。 最大长度:256 tags 否 Array of TagV5DTO objects 参数说明:要绑定到指定资源的标签列表,标签列表中各项标签键值之间不允许重复,一个资源最多可以绑定10个标签。 表4 TagV5DTO 参数 是否必选 参数类型 描述 tag_key 是 String 参数说明:标签键,在同一资源下标签键唯一。绑定资源时,如果设置的键已存在,则将覆盖之前的标签值。如果设置的键值不存在,则新增标签。 tag_value 否 String 参数说明:标签值。
  • 修订记录 发布日期 修订记录 2024-04-26 第三十九次正式发布 新增 创建设备代理 查询设备代理列表 查询设备代理详情 修改设备代理 删除设备代理 2024-04-11 第三十八次正式发布 新增 新建数据流转积压策略 查询数据流转积压策略列表 修改数据流转积压策略 查询数据流转积压策略 删除数据流转积压策略 新建数据流转流控策略 查询数据流转流控策略列表 修改数据流转流控策略 查询数据流转流控策略 删除数据流转流控策略 2024-03-29 第三十七次正式发布 新增 更新资源空间 修改 创建批量任务、查询批量任务列表、查询批量任务接口,新增task_mode参数用于软固件升级任务支持网关模式,task_ext_info参数用于支持添加批量任务的额外扩展信息。 2024-03-13 第三十六次正式发布 修改 上传设备CA证书、获取设备CA证书列表接口新增返回参数,provision_enable参数用于确认该CA证书是否开启自注册能力,template_id参数为开启自注册能力后关联的模板ID。 2024-02-27 第三十五次正式发布 修改 创建规则、查询规则列表、修改规则、查询规则接口,调整ActionSmnForwarding结构中的message_content参数为非必选参数,调整message_title参数的取值范围,新增message_template_name参数用于提供选择SMN模板的能力。 2024-01-05 第三十四次正式发布 修改 生成接入凭证:新增参数force_disconnect,用于生成接入凭证时供用户选择是否强制断开北向MQTT/AMQP的连接。 2023-12-06 第三十三次正式发布 修改 重置设备密钥:新增参数secret_type,用于设置/更新设备辅密钥。 重置设备指纹:新增参数fingerprint_type,用于设置/更新设备辅指纹。 查询设备、创建设备、修改设备:新增响应参数secondary_secret、secondary_fingerprint,用于查询出设备的辅指纹/辅密钥。 2023-11-15 第三十二次正式发布 修改创建规则动作、修改规则动作、查询规则动作列表、查询规则动作接口。 调整dms_kafka_forwarding结构中的mechanism参数枚举值,新增security_protocol参数用以完整的支持kafka的安全认证能力。 新增http_forwarding结构中的signature_enable、token参数,用以提供HTTP推送多样化的安全认证能力。 2023-10-23 第三十一次正式发布 修改 查询产品列表,新增product_name入参,支持产品名称检索能力。 2023-07-21 第三十次正式发布 新增 删除批量任务 创建设备隧道 查询设备所有隧道 查询设备隧道 关闭设备隧道 删除设备隧道 2023-06-17 第二十九次正式发布 新增 重试批量任务 停止批量任务 修改 设备同步命令、修改设备属性接口,增加响应参数error_code、error_msg,用以支持返回同步操作时设备的异常行为,如超时未响应。 2023-05-13 第二十八次正式发布 修改 添加设备组、修改设备组、查询设备组列表、查询设备组接口,新增group_type、dynamic_group_rule参数,用以支持动态设备组能力。 2023-04-19 第二十七次正式发布 新增 下发广播消息接口。 修改 创建批量任务、查询批量任务列表、查询批量任务,修改task_type参数,增加支持"updateDevices"枚举值,用以支持批量更新设备任务。 2023-03-29 第二十六次正式发布 修改 创建规则、修改规则、查询规则列表、查询规则接口,新增device_linkage_status_condition参数,用于支持设备状态变化的联动规则条件。 2023-02-24 第二十五次正式发布 新增 创建OTA升级包 查询OTA升级包列表 查询OTA升级包详情 删除OTA升级包 修改 修改查询设备接口,新增响应参数connection_status_update_time、active_time参数用以查询设备的连接状态变更时间和激活时间。 2023-02-07 第二十四次正式发布 修改 创建规则动作、修改规则动作、查询规则动作列表、查询规则动作接口,新增dms_rocketmq_forwarding、mrs_kafka_forwarding、roma_forwarding、influxdb_forwarding参数用以支持对rocketmq、kafka、roma、influxdb的消息流转能力。 2022-12-14 第二十三次正式发布 新增 灵活搜索设备列表接口。 修改 修改创建规则、修改规则、查询规则列表、查询规则接口,新增rule_type参数的枚举值"DEVICE_SIDE",用以支持设备端测规则联动的能力。 2022-09-20 第二十二次正式发布 修改下发设备消息、查询设备消息接口,新增properties参数用于支持MQTT5.0特性能力。 2022-03-21 第二十一次正式发布 新增 重置设备指纹接口。 2021-06-18 第二十次正式发布 修改 修改应用侧API接口参数的类型: 去除长度描述。 对象参数增加“Object”。 2021-05-28 第十九次正式发布 修改 修改应用侧API接口请求参数描述,增加参数说明和取值范围。 2021-02-08 第十八次正式发布 新增 设备添加通知、设备更新通知接口中,增加device_sdk_version字段类型。 2020-12-21 第十七次正式发布 修改 查询设备、修改设备接口中,补充secret字段和timeout字段说明。 2020-12-07 第十六次正式发布 新增 查询规则条件列表、创建规则触发条件、查询规则条件、修改规则触发条件接口中,增加resource字段类型。 2020-11-03 第十五次正式发布 新增 查询规则动作列表、创建规则动作、查询规则动作、修改规则动作、删除规则动作接口中,增加规则动作的类型。 2020-10-30 第十四次正式发布 修改 原规则管理接口删除了响应参数DATA_FORWARDING、EDGE,仅支持设备联动规则,并更名为设备联动规则。如需数据转发功能,可使用接口数据流转规则管理。 2020-09-17 第十三次正式发布 新增 网关新增子设备请求 网关新增子设备请求响应 网关删除子设备请求 网关删除子设备请求响应 2020-09-11 第十二次正式发布 新增 查询AMQP列表 创建AMQP队列 查询单个AMQP队列 删除AMQP队列 生成接入凭证 流转数据 数据流转规则管理 2020-08-21 第十一次正式发布 新增 下发异步设备命令 查询指定id的命令 补充错误码中文描述和处理建议。 2020-08-18 第十次正式发布 修改 设备上报获取文件上传URL请求、平台下发文件上传临时URL、设备上报获取文件下载URL请求、平台下发文件下载临时URL接口中,增加扩展参数file_attribute。 新增 设备属性上报和网关批量设备属性上报接口中,event_time字段,时间格式支持毫秒级别。 2020-08-10 第九次正式发布 新增 创建批量任务task_type参数中,新增freezeDevices和unfreezeDevices字段,支持批量冻结设备、批量解冻设备。 2020-07-17 第八次正式发布 新增 查询资源空间列表 创建资源空间 查询资源空间 删除资源空间 2020-06-28 第六次正式发布 新增 在冻结设备和解冻设备中,补充IOTDA.014038和IOTDA.014039错误码,以及错误码描述信息。 补充IOTDA.000022错误码描述信息。 补充文档修订记录。 2020-06-24 第五次正式发布 新增 冻结设备 解冻设备 查询批量任务文件列表 上传批量任务文件 删除批量任务文件 模组AT指令参考 2020-06-08 第四次正式发布 修改 批量任务,删除freezeDevices和unfreezeDevices参数。 新增通过API Explorer中直接运行调试该接口。 修改X-Auth-Token参数的描述信息。 创建设备,修改app_id参数的描述信息。 2020-06-02 第三次正式发布 新增 设备上报获取文件上传URL请求 平台下发文件上传临时URL 设备上报文件上传结果 设备上报获取文件下载URL请求 平台下发文件下载临时URL 设备上报文件下载结果 2020-05-26 第二次正式发布 修改 设备侧获取平台的设备影子数据,修改request_id的描述。 2020-03-03 第一次正式发布 应用侧API参考 设备侧MQTT/MQTTS接口参考
  • 请求示例 设备属性上报通知示例: 设备属性上报通知 { "resource" : "device.property", "event" : "report", "event_time" : "20151212T121212Z", "event_time_ms" : "2015-12-12T12:12:12.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" : { "services" : [ { "service_id" : "Battery", "properties" : { "batteryLevel" : 80 }, "event_time" : "20151212T121212Z" } ] } }
  • 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 resource 是 String 参数说明:订阅的资源名称,取值为device.property。 event 是 String 参数说明:订阅的资源事件,取值为report。 event_time 是 String 参数说明:资源事件生成时间,格式:yyyyMMdd'T'HHmmss'Z' UTC字符串,如:20151212T121212Z。若需要显示本地时区,您需要自己进行时间转换。 event_time_ms 否 String 参数说明:资源事件生成时间,格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' UTC字符串,如:2015-12-12T12:12:12.000Z。若需要显示本地时区,您需要自己进行时间转换。 request_id 否 String 参数说明:消息ID,由设备侧指定或平台生成,用于跟踪业务流程。 notify_data 是 DevicePropertyReportNotifyData object 参数说明:推送消息。 表2 DevicePropertyReportNotifyData 参数 是否必选 参数类型 描述 header 是 NotifyDataHeader object 参数说明:推送消息header。 body 是 DevicePropertyReport object 参数说明:推送消息body。 表3 NotifyDataHeader 参数 是否必选 参数类型 描述 app_id 否 String 参数说明:应用ID。 最大长度:256 device_id 否 String 参数说明:设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 最大长度:256 node_id 否 String 参数说明:设备标识码,通常使用IMEI、MAC地址或Serial No作为nodeId。 最大长度:256 product_id 否 String 参数说明:产品ID,用于唯一标识一个产品,在注册产品时由物联网平台分配获得。 最大长度:256 gateway_id 否 String 参数说明:网关ID,用于标识一个网关设备。当设备是直连设备时,gatewayId与设备的deviceId一致。当设备是非直连设备时,gatewayId为设备所关联的直连设备(即网关)的deviceId。 最大长度:256 tags 否 Array of TagV5DTO objects 参数说明:要绑定到指定资源的标签列表,标签列表中各项标签键值之间不允许重复,一个资源最多可以绑定10个标签。 表4 TagV5DTO 参数 是否必选 参数类型 描述 tag_key 是 String 参数说明:标签键,在同一资源下标签键唯一。绑定资源时,如果设置的键已存在,则将覆盖之前的标签值。如果设置的键值不存在,则新增标签。 tag_value 否 String 参数说明:标签值。 表5 DevicePropertyReport 参数 是否必选 参数类型 描述 services 是 Array of DevicePropertyV5 objects 参数说明:设备的服务信息列表。 表6 DevicePropertyV5 参数 是否必选 参数类型 描述 service_id 是 String 参数说明:设备的服务ID,在设备关联的产品模型中定义。 properties 是 Object 参数说明:设备上报的数据。 event_time 是 String 参数说明:设备数据上报的时间,格式取决于设备侧上报属性格式,支持的秒级格式:yyyyMMdd'T'HHmmss'Z',毫秒级格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z',例如20151212T121212Z或者2020-08-12T12:12:12.333Z。
  • 响应示例 状态码: 201 Created { "action_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce1", "rule_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce0", "app_id" : "1a7ffc5cd89c44dd8265b1653d951ce0", "channel" : "HTTP_FORWARDING", "channel_detail" : { "http_forwarding" : { "url" : "http://host:port/callbackurltest" } } }
  • 请求示例 创建规则动作,推送至http服务器。 POST https://{endpoint}/v5/iot/{project_id}/routing-rule/actions { "rule_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce0", "channel" : "HTTP_FORWARDING", "channel_detail" : { "http_forwarding" : { "url" : "http://host:port/callbackurltest" } } } 创建规则动作,推送至obs。 POST https://{endpoint}/v5/iot/{project_id}/routing-rule/actions { "rule_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce0", "channel" : "OBS_FORWARDING", "channel_detail" : { "obs_forwarding" : { "file_path" : "yourPath", "project_id" : "yourProjectId", "bucket_name" : "yourBucket_name", "region_name" : "yourRegion" } } } 创建规则动作,推送至amqp队列。 POST https://{endpoint}/v5/iot/{project_id}/routing-rule/actions { "rule_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce0", "channel" : "AMQP_FORWARDING", "channel_detail" : { "amqp_forwarding" : { "queue_name" : "yourQueueName" } } } 创建规则动作,推送至mysql数据库。 POST https://{endpoint}/v5/iot/{project_id}/routing-rule/actions { "rule_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce0", "channel" : "MYSQL_FORWARDING", "channel_detail" : { "mysql_forwarding" : { "address" : { "ip" : "yourIp", "port" : 3306 }, "username" : "userName", "password" : "passworld", "db_name" : "yourDBName", "table_name" : "yourTableName", "enable_ssl" : true, "column_mappings" : [ { "column_name" : "serviceId", "json_key" : "notify_data.body.services[0].service_id" } ] } } }
  • 响应示例 状态码: 200 Successful response { "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka", "app_name" : "testAPP01", "product_id" : "5ba24f5ebbe8f56f5a14f605", "name" : "Thermometer", "device_type" : "Thermometer", "protocol_type" : "MQTT", "data_format" : "json", "manufacturer_name" : "ABC", "industry" : "smartCity", "description" : "this is a thermometer produced by Huawei", "service_capabilities" : [ { "service_id" : "temperature", "service_type" : "temperature", "properties" : [ { "property_name" : "temperature", "required" : true, "data_type" : "decimal", "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "centigrade", "method" : "RW", "description" : "force", "default_value" : { "color" : "red", "size" : 1 } } ], "commands" : [ { "command_name" : "reboot", "paras" : [ { "para_name" : "force", "required" : false, "data_type" : "string", "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "km/h", "description" : "force" } ], "responses" : [ { "response_name" : "ACK", "paras" : [ { "para_name" : "force", "required" : false, "data_type" : "string", "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "km/h", "description" : "force" } ] } ] } ], "events" : [ { "event_type" : "reboot", "paras" : [ { "para_name" : "force", "required" : false, "data_type" : "string", "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "km/h", "description" : "force" } ] } ], "description" : "temperature", "option" : "Mandatory" } ], "create_time" : "20190303T081011Z" }
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 app_id String 资源空间ID。 app_name String 资源空间名称。 product_id String 产品ID,用于唯一标识一个产品,在物联网平台创建产品后由平台分配获得。 name String 产品名称。 device_type String 设备类型。 protocol_type String 设备使用的协议类型。取值范围:MQTT,CoAP,HTTP,HTTPS,Modbus,ONVIF, OPC-UA,OPC-DA,Other。 data_format String 设备上报数据的格式,取值范围:json,binary。 manufacturer_name String 厂商名称。 industry String 设备所属行业。 description String 产品的描述信息。 service_capabilities Array of ServiceCapability objects 设备的服务能力列表。 create_time String 在物联网平台创建产品的时间,格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 表5 ServiceCapability 参数 参数类型 描述 service_id String 参数说明:设备的服务ID。注:产品内不允许重复。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-$等字符的组合。 service_type String 参数说明:设备的服务类型。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-$等字符的组合。 properties Array of ServiceProperty objects 参数说明:设备服务支持的属性列表。 取值范围:数组长度大小不超过500。 commands Array of ServiceCommand objects 参数说明:设备服务支持的命令列表。 取值范围:数组长度大小不超过500。 events Array of ServiceEvent objects 参数说明:设备服务支持的事件列表。目前暂未支持自定义事件,创建/修改产品时无需定义该字段。 取值范围:数组长度大小不超过500。 description String 参数说明:设备服务的描述信息。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。 option String 参数说明:指定设备服务是否必选。目前本字段为非功能性字段,仅起到标识作用。 取值范围: Master:主服务 Mandatory:必选服务 Optional:可选服务 默认值为Optional。 缺省值:Optional 表6 ServiceProperty 参数 参数类型 描述 property_name String 参数说明:设备属性名称。注:设备服务内不允许重复。属性名称作为设备影子JSON文档中的key不支持特殊字符:点(.)、dollar符号($)、空char(十六进制的ASCII码为00),如果包含了以上特殊字符则无法正常刷新影子文档。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 data_type String 参数说明:设备属性的数据类型。 取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 required Boolean 参数说明:设备属性是否必选。默认为false。 缺省值:false enum_list Array of strings 参数说明:设备属性的枚举值列表。 min String 参数说明:设备属性的最小值。 取值范围:长度1-16。 最小长度:1 最大长度:16 max String 参数说明:设备属性的最大值。 取值范围:长度1-16。 最小长度:1 最大长度:16 max_length Integer 参数说明:设备属性的最大长度。 step Double 参数说明:设备属性的步长。 unit String 参数说明:设备属性的单位。 取值范围:长度不超过16。 最大长度:16 method String 参数说明:设备属性的访问模式。 取值范围:RWE,RW,RE,WE,E,W,R。 R:属性值可读 W:属性值可写 E:属性值可订阅,即属性值变化时上报事件 description String 参数说明:设备属性的描述。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。 default_value Object 参数说明:设备属性的默认值。如果设置了默认值,使用该产品创建设备时,会将该属性的默认值写入到该设备的设备影子预期数据中,待设备上线时将该属性默认值下发给设备。 表7 ServiceCommand 参数 参数类型 描述 command_name String 参数说明:设备命令名称。注:设备服务内不允许重复。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 paras Array of ServiceCommandPara objects 参数说明:设备命令的参数列表。 responses Array of ServiceCommandResponse objects 参数说明:设备命令的响应列表。 表8 ServiceCommandResponse 参数 参数类型 描述 response_name String 参数说明:设备命令响应名称。 取值范围:长度不超过128,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 paras Array of ServiceCommandPara objects 参数说明:设备命令响应的参数列表。 表9 ServiceEvent 参数 参数类型 描述 event_type String 参数说明:设备事件类型。注:设备服务内不允许重复。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 paras Array of ServiceCommandPara objects 参数说明:设备事件的参数列表。 表10 ServiceCommandPara 参数 参数类型 描述 para_name String 参数说明:参数的名称。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 data_type String 参数说明:参数的数据类型。 取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 required Boolean 参数说明:参数是否必选。默认为false。 缺省值:false enum_list Array of strings 参数说明:参数的枚举值列表。 min String 参数说明:参数的最小值。 取值范围:长度1-16。 最小长度:1 最大长度:16 max String 参数说明:参数的最大值。 取值范围:长度1-16。 最小长度:1 最大长度:16 max_length Integer 参数说明:参数的最大长度。 step Double 参数说明:参数的步长。 unit String 参数说明:参数的单位。 取值范围:长度不超过16。 最大长度:16 description String 参数说明:参数的描述。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。
  • URI GET /v5/iot/{project_id}/products/{product_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数说明:项目ID。获取方法请参见 获取项目ID 。 product_id 是 String 参数说明:产品ID,用于唯一标识一个产品,在物联网平台创建产品后由平台分配获得。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 表2 Query参数 参数 是否必选 参数类型 描述 app_id 否 String 参数说明:资源空间ID。此参数为非必选参数,存在多资源空间的用户需要使用该接口时,建议携带该参数,指定要查询的产品属于哪个资源空间;若不携带,则优先取默认资源空间下产品,如默认资源空间下无对应产品,则按照产品创建时间取最早创建产品。如果用户存在多资源空间,同时又不想携带该参数,可以联系华为技术支持对用户数据做资源空间合并。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。
  • 响应参数 状态码: 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 } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。 表3 请求Body参数 参数 是否必选 参数类型 描述 device_id 否 String 参数说明:设备ID,全局唯一,用于唯一标识一个设备。如果携带该参数,平台将设备ID设置为该参数值;如果不携带该参数,设备ID由物联网平台分配获得,生成规则为product_id + _ + node_id拼接而成。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合,建议不少于4个字符。 node_id 是 String 参数说明:设备标识码,通常使用IMEI、MAC地址或Serial No作为node_id。 设备标识码长度为1到64个字符,包含英文字母、数字、连接号-和下划线_。 注意:NB设备由于模组烧录信息后无法配置,所以NB设备会校验node_id全局唯一。 取值范围:长度不超过64,只允许字母、数字、下划线(_)、连接符(-)的组合,建议不少于4个字符。 device_name 否 String 参数说明:设备名称,资源空间下唯一,用于资源空间下唯一标识一个设备。 取值范围:长度不超过256,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合,建议不少于4个字符。 最小长度:1 最大长度:256 product_id 是 String 参数说明:设备关联的产品ID,用于唯一标识一个产品模型,创建产品后获得。方法请参见 创建产品。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 auth_info 否 AuthInfo object 参数说明:设备的接入认证信息。 description 否 String 参数说明:设备的描述信息。 取值范围:长度不超过2048,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合 最大长度:2048 gateway_id 否 String 参数说明:网关ID,用于标识设备所属的父设备,即父设备的设备ID。携带该参数时,表示在该父设备下创建一个子设备,这个子设备不与平台直连,此时必须保证这个父设备在平台已存在,创建成功后子设备的gateway_id等于该参数值;不携带该参数时,表示创建一个和平台直连的设备,创建成功后设备的device_id和gateway_id一致。注意:当前平台最多支持二级子设备。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。 app_id 否 String 参数说明:资源空间ID。此参数为非必选参数,存在多资源空间的用户需要使用该接口时,建议携带该参数指定创建的设备归属到哪个资源空间下,否则创建的设备将会归属到默认资源空间下。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 extension_info 否 Object 参数说明:设备扩展信息。用户可以自定义任何想要的扩展信息,如果在创建设备时为子设备指定该字段,将会通过MQTT接口“平台通知网关子设备新增“将该信息通知给网关。字段值大小上限为1K。 shadow 否 Array of InitialDesired objects 参数说明:设备初始配置。用户使用该字段可以为设备指定初始配置,指定后将会根据service_id和desired设置的属性值与产品中对应属性的默认值比对,如果不同,则将以shadow字段中设置的属性值为准写入到设备影子中。service_id的值和desired内的属性必须是profile中定义的。 表4 AuthInfo 参数 是否必选 参数类型 描述 auth_type 否 String 参数说明:鉴权类型。注意:不填写auth_type默认为密钥认证接入方式(SECRET)。 取值范围: SECRET:使用密钥认证接入方式。 CERTIFICATES:使用证书认证接入方式。 secret 否 String 参数说明:设备密钥,认证类型使用密钥认证接入(SECRET)可填写该字段。注意:NB设备密钥由于协议特殊性,只支持十六进制密钥接入;查询设备列表接口不返回该参数。 取值范围:长度不低于8不超过32,只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:8 最大长度:32 fingerprint 否 String 参数说明:证书指纹,认证类型使用证书认证接入(CERTIFICATES)可填写该字段,注册设备时不填写该字段则取第一次设备接入时的证书指纹。 取值范围:长度为40的十六进制字符串或者长度为64的十六进制字符串。 secure_access 否 Boolean 参数说明:指设备是否通过安全协议方式接入。 取值范围: true:通过安全协议方式接入。 false:通过非安全协议方式接入。非安全接入的设备存在被仿冒等安全风险,请谨慎使用。 缺省值:true timeout 否 Integer 参数说明:设备接入的有效时间,单位:秒,默认值:0 若设备在有效时间内未接入物联网平台并激活,则平台会删除该设备的注册信息。若设置为“0”,则表示平台不会删除该设备的注册信息(建议填写为“0”)。 注意:该参数只对直连设备生效。 最小值:0 最大值:2147483647 缺省值:0 表5 InitialDesired 参数 是否必选 参数类型 描述 service_id 是 String 参数说明:设备的服务ID,在设备关联的产品模型中定义。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 desired 是 Object 参数说明:设备初始配置属性数据,Json格式,里面是一个个键值对,每个键都是产品模型中属性的参数名(property_name),目前如样例所示只支持一层结构;这里设置的属性值与产品中对应属性的默认值比对,如果不同,则将以该字段中设置的属性值为准写入到设备影子中;如果想要删除整个desired可以填写空object(例如"desired":{}),如果想要删除某一个属性期望值可以将属性置位null(例如{"temperature":null})
  • 功能介绍 应用服务器可调用此接口在物联网平台创建一个设备,仅在创建后设备才可以接入物联网平台。 该接口支持使用gateway_id参数指定在父设备下创建一个子设备,并且支持多级子设备,当前最大支持二级子设备。 该接口同时还支持对设备进行初始配置,接口会读取创建设备请求参数product_id对应的产品详情,如果产品的属性有定义默认值,则会将该属性默认值写入该设备的设备影子中。 用户还可以使用创建设备请求参数shadow字段为设备指定初始配置,指定后将会根据service_id和desired设置的属性值与产品中对应属性的默认值比对,如果不同,则将以shadow字段中设置的属性值为准写入到设备影子中。 该接口仅支持创建单个设备,如需批量注册设备,请参见 创建批量任务。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。
  • 响应参数 状态码: 200 表3 响应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接口“平台通知网关子设备新增“将该信息通知给网关。 表4 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 表5 TagV5DTO 参数 参数类型 描述 tag_key String 参数说明:标签键,在同一资源下标签键唯一。绑定资源时,如果设置的键已存在,则将覆盖之前的标签值。如果设置的键值不存在,则新增标签。 取值范围:长度不超过64,只允许中文、字母、数字、以及_.-等字符的组合。 tag_value String 参数说明:标签值。 取值范围:长度不超过128,只允许中文、字母、数字、以及_.-等字符的组合。
  • 响应示例 状态码: 200 OK { "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" : "3b935a250c50dc2c6d481d048cefdc3c", "fingerprint" : "dc0f1016f495157344ac5f1296335cff725ef22f", "secure_access" : true, "timeout" : 0 }, "product_id" : "b640f4c203b7910fc3cbd446ed437cbd", "product_name" : "Thermometer", "status" : "ONLINE", "create_time" : "20190303T081011Z", "connection_status_update_time" : "2019-03-03T08:10:111Z", "active_time" : "2019-03-03T08:10:111Z", "tags" : [ { "tag_key" : "testTagName", "tag_value" : "testTagValue" } ], "extension_info" : { "aaa" : "xxx", "bbb" : 0 } }
  • URI GET /v5/iot/{project_id}/devices/{device_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数说明:项目ID。获取方法请参见 获取项目ID 。 device_id 是 String 参数说明:设备ID,用于唯一标识一个设备。在注册设备时直接指定,或者由物联网平台分配获得。由物联网平台分配时,生成规则为"product_id" + "" + "node_id"拼接而成。 取值范围:长度不超过128,只允许字母、数字、下划线()、连接符(-)的组合。
  • 请求示例 产品删除通知示例: 产品删除通知 { "resource" : "product", "event" : "delete", "event_time" : "20151212T121212Z", "event_time_ms" : "2015-12-12T12:12:12.000Z", "request_id" : "3fe58d5e-8697-4849-a165-7db128f7e776", "notify_data" : { "body" : { "product_id" : "5ba24f5ebbe8f56f5a14f605", "name" : "Thermometer", "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka" } } }
  • 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 resource 是 String 参数说明:订阅的资源名称,取值为product。 event 是 String 参数说明:订阅的资源事件,取值为delete。 event_time 是 String 参数说明:资源事件生成时间,格式:yyyyMMdd'T'HHmmss'Z' UTC字符串,如:20151212T121212Z。若需要显示本地时区,您需要自己进行时间转换。 event_time_ms 否 String 参数说明:资源事件生成时间,格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' UTC字符串,如:2015-12-12T12:12:12.000Z。若需要显示本地时区,您需要自己进行时间转换。 request_id 否 String 参数说明:消息ID,由设备侧指定或平台生成,用于跟踪业务流程。 notify_data 是 ProductDeleteNotifyData object 参数说明:推送消息。 表2 ProductDeleteNotifyData 参数 是否必选 参数类型 描述 body 是 DeletedProduct object 参数说明:推送消息内容。 表3 DeletedProduct 参数 是否必选 参数类型 描述 app_id 否 String 参数说明:资源空间ID。 product_id 否 String 参数说明:产品ID,用于唯一标识一个产品,在物联网平台创建产品后由平台分配获得。 name 否 String 参数说明:产品名称。
  • IoT Device SDK C Tiny相关问题 LiteOS操作系统层面相关技术问题解答。 请移步LiteOS社区。 日志中出现诸如mqtt_imp_init: ###please implement mqtt by yourself####此类问题。 首先检查编译架构中对于__attribute__ ((weak))函数的支持性,如果不支持,建议将这些函数全部注释掉;如果出现link_tcpip_imp_init:###please implement this function by yourself####,建议检查是否实现网络层的适配。 在使用SDK时发现某些任务执行顺序与任务优先级顺序不符? SDK中默认使用的优先级从大到小依次为0-31,用户可根据不同的操作系统自行调整相应任务的优先级。 SDK移植流程主要包括哪些步骤? 移植过程主要包括操作系统注册到OSAL层以及TCPIP注册到SAL层,同时可以根据需求进行模块化裁剪,详见开发指南。 使用MQTT协议对接华为云时,返回错误码2 具体日志如下所示 图1 MQTT链接错误提示 该问题为网络错误,首先建议用户检查开发板是否已经联网成功,如果网络联通,建议检查所要对接网络的IP地址或域名以及端口号是否正确,如linux环境下,可以ping所要对接的网络地址查看是否ping通。 客户在对接华为云时,出现网络断连接后,在恢复网络时设备没有自动重连。 图2 断链没有重连日志提示 日志中可见PAHO已经退出,设备已经与平台断开连接,主动下线。建议客户修改SDK目录中的network\mqtt\paho_mqtt\port\paho_mqtt_port.c文件中的函数__loop_entry()中的休眠时间1ms调大至100ms,具体为:osal_task_sleep(100),查看是否可以自动重连。 使用MQTTS对接华为云时,流程卡死在topic订阅阶段,参考日志如下所示。 图3 流程卡死topic订阅日志提示 请将iot_config.h文件中的宏CONFIG_PAHO_LOOPTIMEOUT调整为1000。 开发板使用MQTT对接华为云成功,但切换到MQTTS时对接失败 可能是开发板内存不足导致,建议测试下开发板剩余内存,建议内存尽量大于60K,如在OpenHarmony L0设备中可以调用接口LOS_MemPoolSizeGet(m_aucSysMem0)获取总内存,LOS_MemTotalUsedGet(m_aucSysMem0)获取已使用内存,做差即可获取到剩余内存,如果移植了shell也可以通过free指令获取到当前内存情况。 采用MQTT对接华为云的正确日志如下所示,应如何解读? 图4 MQTT正常建链日志提示 日志中第3、4行是MQTT协议对接华为云必现日志,若使用MQTTS则会出现第2行日志;如果使用适配sal的tcpip协议则会出现第1行日志;若相应日志没有打印,建议根据文件link_main.c找到对应功能的初始化函数所对应的宏,之后在iotlink_config.h中检查对应的宏是否打开。 设备断电之后在IoTDA平台仍然可以看到设备在线? 如果设备没有主动断链通知平台下线,则设备下线时间与代码中的MQTT心跳时间lifetime相关,为1.5倍的心跳时间,在MQTT建立连接时,连接参数中对lifetime进行设置即可。 目前已经移植了IoT Device SDK Tiny(附代码)的设备清单 详见移植设备清单列表。
  • IoT Device SDK 和IoT Device SDK Tiny有什么区别? 相比于IoT Device SDK,Tiny版本更加轻量,适用于内存以及磁盘空间更小的设备,且一般很少挂载子设备,在编译中没有使用动态链接库,代码提供了操作系统抽象层,可适配多种OS,例如FreeRTOS、linux、NovaOS、ucos_ii、OpenHarmony LiteOS-M等;除MQTT(S)还支持LwM2M,CoAP协议,Tiny使用的mbedtls加密,IoT Device SDK C采用的openssl加密。详细请参考IoT Device SDK介绍。
  • 在产品详情中上传产品模型,无法单击确认按钮? 问题描述 用户在产品详情页面中上传了产品模型,无法单击确认按钮。 图1 上传模型文件样例 可能原因 上传的产品模型文件命名不符合规范。 上传的产品模型的压缩文件不是zip格式的。 解决方法 检查产品模型文件的名称是否符合deviceType_manufacturerId_model.zip的格式,并检查“deviceType”、“manufacturerId”、“model”三个字段是否和devicetype-capability.json中的定义一致。 检查产品模型文件是否压缩为zip格式。如非zip格式,请解压后重新压缩、上传。
  • 在产品详情上传产品模型,弹窗提示“文件输入格式有误”? 问题描述 客户在产品详情界面里,上传产品模型文件,提示“文件输入格式有误”。 图2 上传模型文件错误提示 可能原因 模型的json文件格式错误。 servicetype-capability.json中commands/properties的值不是数组格式。 压缩包中存在其他的文件。 解决方法 检查每个json文件的格式是否正确,可以使用第三方格式校验工具进行检查。 检查servicetype-capability.json中commands/properties的值是否为数组格式(值是否包含在中括号之内)。 检查产品模型的压缩包是否存在其他文件或者隐藏文件,如果存在其他文件或者隐藏文件,则删除后重新上传。
  • 在线开发产品模型时,如何选择数据类型? 数据类型的配置可以参考如下原则: int:当上报的数据为整数或布尔值时,可以匹配为此类型。插件开发中可匹配int型或array类型。 decimal:当上报的数据为小数时,可以匹配为此类型。插件开发中可匹配string或者int或者array类型。 string:当上报的数据为字符串、枚举值或布尔值时,可以配置为此类型。如果为枚举值或布尔值,值之间需要用英文逗号(“,”)分隔。插件开发中可匹配string类型或者array类型。 dateTime:当上报的数据为日期时,可以配置为此类型。插件开发中可匹配string类型或者array类型。 jsonObject:当上报的数据为json结构体时,可以配置为此类型。插件开发者可匹配string或者array类型。
  • 使用小熊派开发板开发时,设备无法激活? 可以输入“AT+CGATT?”,然后单击“发送”,若返回“+CGATT:1”,表示网络附着成功(附着成功代表NB-IoT联网正常),返回“+CGATT:0”表示网络附着失败,请查看SIM卡是否插入正确,或联系运营商检查网络状态; 或者可以将拨测开关拨到AT-PC模式,选择STM的端口,波特率设置为9600,输入指令“AT+CGSN=1”获取IMEI号,比较跟在平台注册设备时填写IMEI号是否保持一致,不一致的话,需要修改成一致的。
  • 物联网卡无法正常接入设备接入平台? 电信NB物联网卡 由于电信NB网络做了限制,目前电信NB卡连接华为云IoT平台,会出现设备接入平台或执行软固件升级失败等情况。 3G/4G物联网卡 根据工网安函〔2020 〕1173 号文件,3G/4G物联网卡流量包规格大于100MB或配置流量池的情况下,需要提供定向IP地址或域名才能购买。因此如果您的物联网卡需要访问华为云IoT平台时,请您检查物联网卡的定向信息是否包含华为云IoT平台的域名。 图6 物联网卡 查询华为云IoT平台接入域名,详细步骤可以参考资源获取。 GSL控制台定向域名/IP修改方式进入订单管理页面,详细步骤请参考订单管理资料。 电信NB物联网卡通过云云对接接入华为云IoT平台的功能正在公测中,如有相关诉求请新建工单,联系相关技术专家进行处理。
共100000条