华为云用户手册

  • URI GET /v5/iot/{project_id}/apps 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数说明:项目ID 最小长度:0 最大长度:32 表2 Query参数 参数 是否必选 参数类型 描述 default_app 否 Boolean 参数说明:默认资源空间标识,不携带则查询所有资源空间。 取值范围: true:查询默认资源空间。 false:查询非默认资源空间。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务获取。 最小长度:0 最大长度:1024000 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。 最小长度:0 最大长度:36
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 applications Array of ApplicationDTO objects 资源空间信息列表。 数组长度:0 - 500 表5 ApplicationDTO 参数 参数类型 描述 app_id String 资源空间ID,唯一标识一个资源空间,由物联网平台在创建资源空间时分配。资源空间对应的是物联网平台原有的应用,在物联网平台的含义与应用一致,只是变更了名称。 最小长度:1 最大长度:64 app_name String 资源空间名称。 最小长度:1 最大长度:64 create_time String 资源空间创建时间,格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 最小长度:1 最大长度:64 default_app Boolean 是否为默认资源空间
  • 响应示例 状态码: 200 Successful response { "applications" : [ { "app_id" : "0ab87ceecbfc49acbcc8d5acdef3c68c", "app_name" : "testApp", "create_time" : "20151212T121212Z", "default_app" : true } ] }
  • 参数说明 消息上报对数据内容不做固定的要求,当使用系统格式进行下发时,参数说明如下: 字段名 必选/可选 类型 参数描述 object_device_id 可选 String 网关设备上报时,子设备进行上报需填写该参数。object_device_id为Topic中设备的子设备Id,否则将请求失败。 直连设备上报时,object_device_id需与Topic中的device_id一致。 若为空则默认该参数与Topic中的device_id一致。 name 可选 String 消息名称,可不填写,做说明用。 id 可选 String 消息的唯一标识,用于区分与查找消息。如不填写系统会自动生成一个消息ID,消息ID不可重复。 content 必选 Object、String 消息内容,可以为base64编码格式。 设备消息上报时平台不会校验消息格式,这里的参数说明和示例为给的消息样例,设备可以根据需要进行自定义数据格式的上报。
  • 功能描述 是指设备无法按照产品模型中定义的属性格式进行数据上报时,可调用此接口将设备的自定义数据格式上报给平台,平台对该消息不进行解析,该消息可以转发给应用服务器或华为云其他云服务上进行存储和处理。 消息上报和属性上报的区别,请查看消息通信说明。 低配置且资源受限或者对网络流量有要求的设备,不适合直接构造JSON数据与物联网平台通信时,可将原始二进制数据透传到物联网平台。通过开发编解码插件实现二进制数据到平台定义JSON格式的转换。
  • Topic 上行:$oc/devices/{device_id}/sys/messages/up 消息上报时除了使用系统预置的消息上报topic外,设备也可以使用非平台声明的自定义topic。如$oc/devices/{device_id}/user/{自定义}。 数据上报的过程中,可以通过在topic后面携带?request_id来指定request_id。比如说消息上报:$oc/devices/{device_id}/sys/messages/up?request_id={request_id}。若不指定,平台会自动生成request_id,用于标识此次请求。
  • 示例 假设设备上报数据内容为"hello!",请求的样例参考如下: 仅发送消息内容: Topic: $oc/devices/{device_id}/sys/messages/up 数据格式: hello! 以系统格式进行上报: Topic: $oc/devices/{device_id}/sys/messages/up 数据格式: { "object_device_id": "{object_device_id}", "name":null, "id":"aca6a906-c74c-4302-a2ce-b17ba2ce630c", "content":"hello!" }
  • 请求示例 设备更新通知示例: 设备更新通知 { "resource" : "device", "event" : "update", "event_time" : "20151212T121212Z", "event_time_ms" : "2015-12-12T12:12:12.000Z", "request_id" : "3fe58d5e-8697-4849-a165-7db128f7e776", "notify_data" : { "body" : { "device_sdk_version" : "C_v0.5.0", "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f", "create_time" : "20190303T081011Z", "description" : "watermeter device", "auth_info" : { "auth_type" : "SECRET", "secure_access" : true, "timeout" : 300 }, "product_name" : "Thermometer", "gateway_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f", "sw_version" : "1.1.0", "tags" : [ { "tag_value" : "testTagValue", "tag_key" : "testTagName" } ], "extension_info" : { "aaa" : "xxx", "bbb" : 0 }, "app_name" : "testAPP01", "device_name" : "dianadevice", "node_type" : "ENDPOINT", "product_id" : "b640f4c203b7910fc3cbd446ed437cbd", "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka", "fw_version" : "1.1.0", "node_id" : "ABC123456789", "status" : "INACTIVE" } } }
  • 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 resource 是 String 参数说明:订阅的资源名称,取值为device。 event 是 String 参数说明:订阅的资源事件,取值为update。 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 是 DeviceCreateOrUpdateNotifyData object 参数说明:推送消息。 表2 DeviceCreateOrUpdateNotifyData 参数 是否必选 参数类型 描述 body 是 QueryDeviceBase object 参数说明:推送消息内容。 表3 QueryDeviceBase 参数 是否必选 参数类型 描述 app_id 否 String 参数说明:资源空间ID。 最大长度:36 app_name 否 String 参数说明:资源空间名称。 device_id 否 String 参数说明:设备ID,用于唯一标识一个设备。在注册设备时直接指定,或者由物联网平台分配获得。由物联网平台分配时,生成规则为"product_id" + "_" + "node_id"拼接而成。 最大长度:256 node_id 否 String 参数说明:设备标识码,通常使用IMEI、MAC地址或Serial No作为nodeId。 最大长度:64 gateway_id 否 String 参数说明:网关ID,用于标识设备所属的父设备,即父设备的设备ID。当设备是直连设备时,gateway_id与设备的device_id一致。当设备是非直连设备时,gateway_id为设备所关联的父设备的device_id。 最大长度:256 device_name 否 String 参数说明:设备名称。 最大长度:256 node_type 否 String 参数说明:设备节点类型。 ENDPOINT:非直连设备。 GATEWAY:直连设备或网关。 UNKNOWN:未知。 description 否 String 参数说明:设备的描述信息。 最大长度:2048 fw_version 否 String 参数说明:设备的固件版本。 最大长度:256 sw_version 否 String 参数说明:设备的软件版本。 最大长度:256 device_sdk_version 否 String 参数说明:设备的SDK版本。 最大长度:256 auth_info 否 AuthInfo object 参数说明:设备的接入认证信息。 product_id 否 String 参数说明:设备关联的产品ID,用于唯一标识一个产品模型。 product_name 否 String 参数说明:设备关联的产品名称。 status 否 String 参数说明:设备的状态。 ONLINE:设备在线。 OFFLINE:设备离线。 ABNORMAL:设备异常。 INACTIVE:设备未激活。 FREEZED:设备冻结。 create_time 否 String 参数说明:在物联网平台注册设备的时间。格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 tags 否 Array of TagV5DTO objects 参数说明:设备的标签列表。 extension_info 否 Object 参数说明:设备扩展信息。用户可以自定义任何想要的扩展信息,如果在创建设备时为子设备指定该字段,将会通过MQTT接口“平台通知网关子设备新增“将该信息通知给网关。 表4 AuthInfo 参数 是否必选 参数类型 描述 auth_type 否 String 参数说明:鉴权类型。支持密钥认证接入(SECRET)和证书认证接入(CERTIFICATES)两种方式。使用密钥认证接入方式(SECRET)填写secret字段,使用证书认证接入方式(CERTIFICATES)填写fingerprint字段,不填写auth_type默认为密钥认证接入方式(SECRET) secure_access 否 Boolean 参数说明:指设备是否通过安全协议方式接入,默认值为true。 true:通过安全协议方式接入。 false:通过非安全协议方式接入。 缺省值:true timeout 否 Integer 参数说明:设备验证码的有效时间,单位:秒,默认值:0。若设备在有效时间内未接入物联网平台并激活,则平台会删除该设备的注册信息。若设置为“0”,则表示设备验证码不会失效(建议填写为“0”)。注意:只有注册设备接口或者修改设备接口修改timeout时返回该参数。 最小值:0 最大值:2147483647 缺省值:0 表5 TagV5DTO 参数 是否必选 参数类型 描述 tag_key 是 String 参数说明:标签键,在同一资源下标签键唯一。绑定资源时,如果设置的键已存在,则将覆盖之前的标签值。如果设置的键值不存在,则新增标签。 tag_value 否 String 参数说明:标签值。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,一般华为云租户无需携带该参数,仅在物理多租场景下从管理面访问API时需要携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID。
  • URI DELETE /v5/iot/{project_id}/routing-rule/rules/{rule_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数说明:项目ID。获取方法请参见 获取项目ID 。 rule_id 是 String 参数说明:规则条件ID。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。
  • 响应示例 状态码: 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 } }
  • 请求示例 修改设备,修改设备的名为device,接入类型为安全接入。 PUT https://{endpoint}/v5/iot/{project_id}/devices/{device_id} { "device_name" : "device", "description" : "watermeter device", "extension_info" : { "aaa" : "xxx", "bbb" : 0 }, "auth_info" : { "secure_access" : true } }
  • URI PUT /v5/iot/{project_id}/devices/{device_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数说明:项目ID。获取方法请参见 获取项目ID 。 device_id 是 String 参数说明:设备ID,用于唯一标识一个设备。在注册设备时直接指定,或者由物联网平台分配获得。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。
  • 响应参数 状态码: 200 表5 响应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接口“平台通知网关子设备新增“将该信息通知给网关。 表6 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 表7 TagV5DTO 参数 参数类型 描述 tag_key String 参数说明:标签键,在同一资源下标签键唯一。绑定资源时,如果设置的键已存在,则将覆盖之前的标签值。如果设置的键值不存在,则新增标签。 取值范围:长度不超过64,只允许中文、字母、数字、以及_.-等字符的组合。 tag_value String 参数说明:标签值。 取值范围:长度不超过128,只允许中文、字母、数字、以及_.-等字符的组合。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。 表3 请求Body参数 参数 是否必选 参数类型 描述 device_name 否 String 参数说明:设备名称,资源空间下唯一,用于资源空间下唯一标识一个设备。 取值范围:长度不超过256,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合,建议不少于4个字符。 最小长度:1 最大长度:256 description 否 String 参数说明:设备的描述信息。 取值范围:长度不超过2048,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合 最大长度:2048 extension_info 否 Object 参数说明:设备扩展信息。用户可以自定义任何想要的扩展信息,修改子设备信息时不会下发给网关。 auth_info 否 AuthInfoWithoutSecret object 参数说明:设备的接入认证信息。 表4 AuthInfoWithoutSecret 参数 是否必选 参数类型 描述 secure_access 否 Boolean 参数说明:指设备是否通过安全协议方式接入。 取值范围: true:通过安全协议方式接入。 false:通过非安全协议方式接入。非安全接入的设备存在被仿冒等安全风险,请谨慎使用。 缺省值:true timeout 否 Integer 参数说明:设备接入的有效时间,单位:秒,默认值:0。若设备在有效时间内未接入物联网平台并激活,则平台会删除该设备的注册信息。若设置为“0”,则表示平台不会删除该设备的注册信息(建议填写为“0”)。 注意:该参数只对直连设备生效 最小值:0 最大值:2147483647 缺省值:0
  • 请求示例 产品更新通知示例: 产品更新通知 { "resource" : "product", "event" : "update", "event_time" : "20151212T121212Z", "event_time_ms" : "2015-12-12T12:12:12.000Z", "request_id" : "3fe58d5e-8697-4849-a165-7db128f7e776", "notify_data" : { "body" : { "app_name" : "testAPP01", "protocol_type" : "CoAP", "data_format" : "binary", "service_capabilities" : [ { "service_type" : "temperature", "service_id" : "temperature", "description" : "temperature", "properties" : [ { "unit" : "centigrade", "min" : "1", "method" : "R", "max" : "100", "data_type" : "decimal", "description" : "force", "step" : 0.1, "default_value" : { "color" : "red", "size" : 1 }, "enum_list" : [ "string" ], "required" : true, "property_name" : "temperature", "max_length" : 100 } ], "commands" : [ { "command_name" : "reboot", "responses" : [ { "response_name" : "ACK", "paras" : [ { "unit" : "km/h", "min" : "1", "max" : "100", "para_name" : "force", "data_type" : "string", "description" : "force", "step" : 0.1, "enum_list" : [ "string" ], "required" : false, "max_length" : 100 } ] } ], "paras" : [ { "unit" : "km/h", "min" : "1", "max" : "100", "para_name" : "force", "data_type" : "string", "description" : "force", "step" : 0.1, "enum_list" : [ "string" ], "required" : false, "max_length" : 100 } ] } ], "events" : [ { "event_type" : "reboot", "paras" : [ { "unit" : "km/h", "min" : "1", "max" : "100", "para_name" : "force", "data_type" : "string", "description" : "force", "step" : 0.1, "enum_list" : [ "string" ], "required" : false, "max_length" : 100 } ] } ], "option" : "Mandatory" } ], "create_time" : "20190303T081011Z", "product_id" : "5ba24f5ebbe8f56f5a14f605", "name" : "Thermometer", "description" : "this is a thermometer produced by Huawei", "device_type" : "Thermometer", "industry" : "smartCity", "manufacturer_name" : "ABC", "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka" } } }
  • 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 resource 是 String 参数说明:订阅的资源名称,取值为product。 event 是 String 参数说明:订阅的资源事件,取值为update。 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 是 ProductUpdateNotifyData object 参数说明:推送消息。 表2 ProductUpdateNotifyData 参数 是否必选 参数类型 描述 body 是 Product object 参数说明:推送消息内容。 表3 Product 参数 是否必选 参数类型 描述 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。 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。 表4 ServiceCapability 参数 是否必选 参数类型 描述 service_id 是 String 参数说明:设备的服务ID。 service_type 是 String 参数说明:设备的服务类型。 properties 否 Array of ServiceProperty objects 参数说明:设备服务支持的属性列表。 commands 否 Array of ServiceCommand objects 参数说明:设备服务支持的命令列表。 events 否 Array of ServiceEvent objects 参数说明:设备服务支持的事件列表。 description 否 String 参数说明:设备服务的描述信息。 option 否 String 参数说明:指定设备服务是否必选。Master(主服务), Mandatory(必选服务), Optional(可选服务),目前本字段为非功能性字段,仅起到标识作用。默认为Optional(可选服务)。 缺省值:Optional 表5 ServiceProperty 参数 是否必选 参数类型 描述 property_name 是 String 参数说明:设备属性名称。 required 否 Boolean 参数说明:设备属性是否必选。默认为false。 缺省值:false data_type 是 String 参数说明:设备属性的数据类型。取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 enum_list 否 Array of strings 参数说明:设备属性的枚举值列表。 min 否 String 参数说明:设备属性的最小值。 最小长度:1 最大长度:16 max 否 String 参数说明:设备属性的最大值。 最小长度:1 最大长度:16 max_length 否 Integer 参数说明:设备属性的最大长度。 step 否 Double 参数说明:设备属性的步长。 unit 否 String 参数说明:设备属性的单位。 最大长度:16 method 是 String 参数说明:设备属性的访问模式。取值范围:RWE,RW,RE,WE,E,W,R。 R:属性值可读 W:属性值可写 E:属性值可订阅,即属性值变化时上报事件。 description 否 String 参数说明:设备属性的描述。 default_value 否 Object 参数说明:设备属性的默认值。如果设置了默认值,使用该产品创建设备时,会将该属性的默认值写入到该设备的设备影子预期数据中,待设备上线时将该属性默认值下发给设备。 表6 ServiceCommand 参数 是否必选 参数类型 描述 command_name 是 String 参数说明:设备命令名称。 paras 否 Array of ServiceCommandPara objects 参数说明:设备命令的参数列表。 responses 否 Array of ServiceCommandResponse objects 参数说明:设备命令的响应列表。 表7 ServiceCommandResponse 参数 是否必选 参数类型 描述 paras 否 Array of ServiceCommandPara objects 参数说明:设备命令响应的参数列表。 response_name 是 String 参数说明:设备命令响应名称。 表8 ServiceEvent 参数 是否必选 参数类型 描述 event_type 是 String 参数说明:设备事件类型。 paras 否 Array of ServiceCommandPara objects 参数说明:设备事件的参数列表。 表9 ServiceCommandPara 参数 是否必选 参数类型 描述 para_name 是 String 参数说明:参数的名称。 required 否 Boolean 参数说明:参数是否必选。默认为false。 缺省值:false data_type 是 String 参数说明:参数的数据类型。取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 enum_list 否 Array of strings 参数说明:参数的枚举值列表。 min 否 String 参数说明:参数的最小值。 最小长度:1 最大长度:16 max 否 String 参数说明:参数的最大值。 最小长度:1 最大长度:16 max_length 否 Integer 参数说明:参数的最大长度。 step 否 Double 参数说明:参数的步长。 unit 否 String 参数说明:参数的单位。 最大长度:16 description 否 String 参数说明:参数的描述。
  • 请求示例 设备异步命令状态变更通知: 设备异步命令状态变更通知 { "resource" : "device.command.status", "event" : "update", "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" : { "result" : { "key" : "value" }, "created_time" : "20151212T121212Z", "sent_time" : "20151212T121212Z", "command_id" : "id", "delivered_time" : "20151212T131212Z", "response_time" : "20151212T131212Z", "status" : "SUCCESSFUL" } } }
  • 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 resource 是 String 参数说明:订阅的资源名称,取值为device.command.status。 event 是 String 参数说明:订阅的资源事件,取值为update。 event_time 是 String 参数说明:资源事件生成时间,格式:yyyyMMdd'T'HHmmss'Z' UTC字符串,如:20151212T121212Z。若需要显示本地时区,您需要自己进行时间转换。 event_time_ms 否 String 参数说明:资源事件生成时间,格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' UTC字符串。如:2019-03-03T08:10:11.000Z。若需要显示本地时区,您需要自己进行时间转换。 request_id 否 String 参数说明:消息ID,由设备侧指定或平台生成,用于跟踪业务流程。 notify_data 是 DeviceCommandStatusUpdateNotifyDataV5 object 参数说明:推送消息。 表2 DeviceCommandStatusUpdateNotifyDataV5 参数 是否必选 参数类型 描述 header 是 NotifyDataHeader object 参数说明:推送消息header。 body 是 DeviceCommandStatusUpdate 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 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格式。
  • 请求示例 设备状态变更通知示例: 设备状态变更通知 { "resource" : "device.status", "event" : "update", "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" : { "last_online_time" : "20151212T121212Z", "status" : "ONLINE", "status_update_time" : "2015-12-12T12:12:12.815Z" } }
  • 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 resource 是 String 参数说明:订阅的资源名称,取值为device.status。 event 是 String 参数说明:订阅的资源事件,取值为update。 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 是 DeviceStatusUpdateNotifyDataV5 object 参数说明:推送消息。 表2 DeviceStatusUpdateNotifyDataV5 参数 是否必选 参数类型 描述 header 是 NotifyDataHeader object 参数说明:推送消息header。 body 是 DeviceStatusUpdate 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 DeviceStatusUpdate 参数 是否必选 参数类型 描述 status 是 String 参数说明:设备当前的状态。 ONLINE:设备在线 OFFLINE:设备离线 ABNORMAL:设备异常 last_online_time 是 String 参数说明:最近一次上线时间。 status_update_time 是 String 参数说明:设备更新到当前状态的时间。
  • 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 resource 是 String 参数说明:订阅的资源名称,取值为batchtask。 event 是 String 参数说明:订阅的资源事件,取值为update。 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 是 BatchTaskUpdateNotifyData object 参数说明:设备的自定义字段列表。 表2 BatchTaskUpdateNotifyData 参数 是否必选 参数类型 描述 body 是 BatchTaskUpdate object 参数说明:推送消息body。 表3 BatchTaskUpdate 参数 是否必选 参数类型 描述 app_id 是 String 参数说明:应用ID。 task_id 是 String 参数说明:批量任务ID。调用创建批量任务接口时返回的任务ID。 task_type 是 String 参数说明:任务类型。 firmwareUpgrade:固件升级 softwareUpgrade:软件升级 status 是 String 参数说明:任务状态。 Waitting 任务正在被等待执行 Processing 任务正在执行 Success 任务成功 PartialSuccess 任务部分成功 Fail 任务失败 Stopped 任务被停止 status_desc 是 String 参数说明:任务状态描述。
  • 请求示例 批量任务状态变更通知示例: 批量任务状态变更通知 { "resource" : "batchtask", "event" : "update", "event_time" : "20151212T121212Z", "event_time_ms" : "2015-12-12T12:12:12.000Z", "request_id" : "3fe58d5e-8697-4849-a165-7db128f7e776", "notify_data" : { "body" : { "status_desc" : "status_desc", "task_id" : "1a7ffc5c-d89c-44dd-8265", "task_type" : "softwareUpgrade", "app_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce0", "status" : "Waitting" } } }
  • 响应示例 状态码: 200 Successful response { "actions" : [ { "rule_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce1", "action_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce0", "channel_detail" : { "amqp_forwarding" : { "queue_name" : "test" }, "obs_forwarding" : { "file_path" : "device_property_report/{YYYY}/{MM}/{DD}/{HH}", "project_id" : "project_id", "bucket_name" : "bucket_name", "region_name" : "region_name", "location" : "location" }, "http_forwarding" : { "sni_enable" : false, "cn_name" : "domain:8443", "cert_id" : "0ae892cfeff641158920300b2292d2ca", "url" : "http://host:port/callbackurltest" }, "dis_forwarding" : { "stream_name" : "stream_name", "project_id" : "project_id", "stream_id" : "stream_id", "region_name" : "region_name" }, "dms_kafka_forwarding" : { "addresses" : [ { "port" : 443, "ip" : "host", "domain" : "huawei.com" } ], "password" : "password", "project_id" : "project_id", "topic" : "topic", "region_name" : "region_name", "mechanism" : "PLAIN", "security_protocol" : "SASL_SSL", "username" : "username" } }, "channel" : "HTTP_FORWARDING", "app_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce2" } ], "count" : 10, "marker" : "5c90fa7d3c4e4405e8525079" }
  • URI GET /v5/iot/{project_id}/routing-rule/actions 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数说明:项目ID。获取方法请参见 获取项目ID 。 表2 Query参数 参数 是否必选 参数类型 描述 rule_id 否 String 参数说明:规则触发条件ID。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 channel 否 String 参数说明:规则动作的类型。 取值范围: HTTP_FORWARDING:HTTP服务消息类型。 DIS_FORWARDING:转发DIS服务消息类型。 OBS_FORWARDING:转发OBS服务消息类型。 AMQP_FORWARDING:转发AMQP服务消息类型。 DMS_KAFKA_FORWARDING:转发kafka消息类型。 ROMA_FORWARDING:转发Roma消息类型。(仅企业版支持) INFLUXDB_FORWARDING:转发InfluxDB消息类型。(仅标准版和企业版支持) MYSQL_FORWARDING:转发MySQL消息类型。(仅标准版和企业版支持) FUNCTIONGRAPH_FORWARDING:转发FunctionGraph消息类型。(仅标准版和企业版支持) MRS_KAFKA_FORWARDING:转发MRS_KAFKA消息类型。(仅企业版支持) DMS_ROCKETMQ_FORWARDING:转发RocketMQ消息类型。(仅标准版和企业版支持) app_type 否 String 参数说明:租户规则的生效范围。 取值范围: GLOBAL:生效范围为租户级。 APP:生效范围为资源空间级。如果类型为APP,可携带app_id查询指定资源空间下的规则动作列表,不携带app_id则查询默认资源空间下的规则动作列表。 app_id 否 String 参数说明:资源空间ID。此参数为非必选参数,rule_id不携带且app_type为APP时,该参数生效,可携带app_id查询指定资源空间下的规则动作列表,不携带app_id则查询默认资源空间下的规则动作列表。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 limit 否 Integer 参数说明:分页查询时每页显示的记录数。默认每页10条记录,最大设定每页50条记录。 取值范围: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
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,一般华为云租户无需携带该参数,仅在物理多租场景下从管理面访问API时需要携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID。
  • 错误码 HTTP状态码 HTTP状态码描述 错误码 错误码描述 错误码中文描述 400 Bad Request IOTDA.000006 Invalid input data. 请求参数不合法 401 Unauthorized IOTDA.000002 The request is unauthorized. 鉴权失败 403 Forbidden IOTDA.021101 Request reached the maximum rate limit. 请求已经达到限制速率 IOTDA.021102 The request rate has reached the upper limit of the tenant, limit %s. 请求已经达到租户的限制速率
  • 请求参数 名称 必选 类型 位置 说明 device_id 是 String Body 参数说明: 设备ID,用于唯一标识一个设备。在注册设备时直接指定,或者由物联网平台分配获得。由物联网平台分配时,生成规则为"product_id" + "_" + "node_id"拼接而成。 取值范围: 长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。 取值范围: 长度1-128 sign_type 是 Integer Body 参数说明: 密码校验方式: 0 代表HMACSHA256校验时间戳时不会校验消息时间戳与平台时间是否一致,仅判断密码是否正确; 1 代表HMACSHA256校验时间戳时会先校验消息时间戳与平台时间是否一致,再判断密码是否正确。 取值范围: 大小0~1 timestamp 是 String Body 参数说明: 时间戳:为设备连接平台时的UTC时间,格式为YYYYMMDDHH,如UTC 时间2018/7/24 17:56:20 则应表示为2018072417。 取值范围: 固定长度10 password 是 String Body 参数说明: password的值为使用“HMACSHA256”算法以时间戳为密钥,对secret进行加密后的值。secret为注册设备时平台返回的secret。 取值范围: 固定长度64
共100000条