云服务器内容精选

  • 示例 假设设备上报数据内容为"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!" }
  • 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,用于标识此次请求。
  • 参数说明 消息上报对数据内容不做固定的要求,当使用系统格式进行下发时,参数说明如下: 字段名 必选/可选 类型 参数描述 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格式的转换。
  • 请求参数 名称 必选 类型 位置 说明 access_token 是 String Header 参数说明: 调用设备鉴权信息返回的access_token 取值范围: 长度1-256 device_id 是 String Path 参数说明: 设备ID,用于唯一标识一个设备。在注册设备时直接指定,或者由物联网平台分配获得。由物联网平台分配时,生成规则为"product_id" + "_" + "node_id"拼接而成。 取值范围: 长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。 取值范围: 长度1-128 该接口支持设备将自定义数据通过请求中的body体上报给平台,平台收到该请求后会将body内容转发给应用服务器或华为云其他云服务上进行存储和处理。平台对body中的内容无具体格式限制,小于1MB的数据可以通过该接口携带。
  • 错误码 HTTP状态码 HTTP状态码描述 错误码 错误码描述 错误码中文描述 400 Bad Request IOTDA.000006 Invalid input data. 请求参数不合法 403 Forbidden IOTDA.000004 Invalid access token. 非法token IOTDA.021101 Request reached the maximum rate limit. 请求已经达到限制速率 IOTDA.021102 The request rate has reached the upper limit of the tenant, limit %s. 请求已经达到租户的限制速率
  • 响应参数 状态码: 201 表6 响应Body参数 参数 参数类型 描述 message_id String 消息id,由用户生成(推荐使用UUID),同一个设备下唯一, 如果用户不填写,则由物联网平台生成。 result MessageResult object 消息下发结果。Json格式。 表7 MessageResult 参数 参数类型 描述 status String 消息状态, PENDING,DELIVERED,FAILED和TIMEOUT。如果设备不在线,则平台缓存消息,并且返回PENDING,等设备数据上报之后再下发;如果设备在线,则消息直接进行下发,下发成功后接口返回DELIVERED,失败返回FAILED;如果消息在平台默认时间内(1天)还没有下发给设备,则平台会将消息设置为超时,状态为TIMEOUT。另外应用可以订阅消息的执行结果,平台会将消息结果推送给订阅的应用。 created_time String 消息的创建时间,"yyyyMMdd'T'HHmmss'Z'"格式的UTC字符串。 finished_time String 消息结束时间, "yyyyMMdd'T'HHmmss'Z'"格式的UTC字符串,包含消息转换到DELIVERED,FAILED和TIMEOUT状态的时间。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用 IAM 服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。 表3 请求Body参数 参数 是否必选 参数类型 描述 message_id 否 String 参数说明:消息id,由用户生成(推荐使用UUID),同一个设备下唯一, 如果用户填写的id在设备下不唯一, 则接口返回错误。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。 最大长度:128 name 否 String 参数说明:消息名称。 取值范围:长度不超过128,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 最大长度:128 message 是 Object 参数说明:消息内容,支持string和json格式。 properties 否 PropertiesDTO object 参数说明:消息下行到设备的属性参数。 encoding 否 String 参数说明:消息内容编码格式。默认值none。 取值范围: none base64 缺省值:none payload_format 否 String 参数说明:有效负载格式,在消息内容编码格式为none时有效。默认值standard(平台封装的标准格式)。 取值范围: standard raw:直接将消息内容作为有效负载下发。 缺省值:standard topic 否 String 参数说明:消息下行到设备的自定义topic后缀, 可选, 仅适用于MQTT协议接入的设备。 用户只能填写在租户产品界面配置的topic, 否则会校验不通过。 平台给消息topic添加的前缀为$oc/devices/{device_id}/user/, 用户可以在前缀的基础上增加自定义部分, 如增加messageDown,则平台拼接前缀后完整的topic为 $oc/devices/{device_id}/user/messageDown,其中device_id以实际设备的网关id替代。 如果用户指定该topic,消息会通过该topic下行到设备,如果用户不指定, 则消息通过系统默认的topic下行到设备,系统默认的topic格式为: $oc/devices/{device_id}/sys/messages/down。此字段与topic_full_name字段只可填写一个。 最大长度:128 topic_full_name 否 String 参数说明:消息下行到设备的完整topic名称, 可选。用户需要下发用户自定义的topic给设备时,可以使用该参数指定完整的topic名称,物联网平台不校验该topic是否在平台定义,直接透传给设备。设备需要提前订阅该topic。此字段与topic字段只可填写一个。 最大长度:128 ttl 否 Integer 参数说明:下发消息在平台缓存的老化时间,时间单位是分钟,默认值1440;ttl参数数值必须是5的倍数,即以5分钟为粒度;指定为0时表示不缓存消息,默认最大缓存时间为1440分钟,缓存时间超过1440分钟需申请,否则下发失败。 最小值:0 最大值:10080 缺省值:1440 表4 PropertiesDTO 参数 是否必选 参数类型 描述 correlation_data 否 String 参数说明:MQTT 5.0版本请求和响应模式中的相关数据,可选。用户可以通过该参数配置MQTT协议请求和响应模式中的相关数据。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。 response_topic 否 String 参数说明:MQTT 5.0版本请求和响应模式中的响应主题,可选。用户可以通过该参数配置MQTT协议请求和响应模式中的响应主题。 取值范围:长度不超过128, 只允许字母、数字、以及_-?=$#+/等字符的组合。 最大长度:128 user_properties 否 Array of UserPropDTO objects 参数说明:用户自定义属性,可选。用户可以通过该参数配置用户自定义属性。可以配置的最大自定义属性数量为20。 表5 UserPropDTO 参数 是否必选 参数类型 描述 prop_key 否 String 参数说明:用户自定义属性键。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。 prop_value 否 String 参数说明:用户自定义属性值。 取值范围:长度不超过128,只允许中文、字母、数字、以及_? '#().,&%@!-等字符的组合。
  • 响应示例 状态码: 201 Created { "message_id" : "b1224afb-e9f0-4916-8220-b6bab568e888", "result" : { "status" : "PENDING", "created_time" : "20151212T121212Z", "finished_time" : "20151212T121213Z" } }
  • 请求示例 创建消息,通过平台默认topic下发。 POST https://{endpoint}/v5/iot/{project_id}/devices/{device_id}/messages { "message_id" : "99b32da9-cd17-4cdf-a286-f6e849cbc364", "name" : "messageName", "message" : "HelloWorld" } 创建消息,通过平台自定义topic下发。 POST https://{endpoint}/v5/iot/{project_id}/devices/{device_id}/messages { "message_id" : "99b32da9-cd17-4cdf-a286-f6e849cbc364", "name" : "messageName", "message" : "HelloWorld", "topic" : "testTopic" } 创建消息,通过自定义topic下发。 POST https://{endpoint}/v5/iot/{project_id}/devices/{device_id}/messages { "message_id" : "99b32da9-cd17-4cdf-a286-f6e849cbc364", "name" : "messageName", "message" : "HelloWorld", "topic_full_name" : "/test/customTopic/testTopic" }
  • 功能介绍 物联网平台可向设备下发消息,应用服务器可调用此接口向指定设备下发消息,以实现对设备的控制。应用将消息下发给平台后,平台返回应用响应结果,平台再将消息发送给设备。平台返回应用响应结果不一定是设备接收结果,建议用户应用通过订阅设备消息状态变更通知,订阅后平台会将设备接收结果推送给订阅的应用。 注意: 此接口适用于MQTT设备消息下发,暂不支持其他协议接入的设备消息下发。 此接口仅支持单个设备消息下发,如需多个设备消息下发,请参见 创建批量任务。
  • URI POST /v5/iot/{project_id}/devices/{device_id}/messages 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数说明:项目ID。获取方法请参见 获取项目ID 。 device_id 是 String 参数说明:下发消息的设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。
  • 请求参数 名称 必选 类型 位置 说明 access_token 是 String Header 参数说明: 调用设备鉴权信息返回的access_token 取值范围: 长度1-256 device_id 是 String Path 参数说明: 参数说明:设备ID,用于唯一标识一个设备。在注册设备时直接指定,或者由物联网平台分配获得。由物联网平台分配时,生成规则为"product_id" + "_" + "node_id"拼接而成。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。 取值范围: 长度1-128 该接口支持设备将自定义数据通过请求中的body体上报给平台,平台收到该请求后会将body内容转发给应用服务器或华为云其他云服务上进行存储和处理。平台对body中的内容无具体格式限制,小于1MB的数据可以通过该接口携带。
  • 请求示例 POST https://{endpoint}/v5/devices/{device_id}/sys/messages/upContent-Type: application/jsonaccess_token: d144a524-1997-4b99-94bf-f27128da8a34{ "name" : "name", "id" : "id", "content" : "messageUp"}
  • 错误码 HTTP状态码 HTTP状态码描述 错误码 错误码描述 错误码中文描述 400 Bad Request IOTDA.000006 Invalid input data. 请求参数不合法 403 Forbidden IOTDA.000004 Invalid access token. 非法token IOTDA.021101 Request reached the maximum rate limit. 请求已经达到限制速率 IOTDA.021102 The request rate has reached the upper limit of the tenant, limit %s. 请求已经达到租户的限制速率