设备接入 IoTDA
设备接入 IoTDA
- 最新动态
- 功能总览
- 服务公告
- 计费说明
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
-
API参考
- 应用侧API参考
- 设备侧MQTT/MQTTS接口参考
- 设备侧HTTPS接口参考
- 设备侧LwM2M接口参考
- 安全隧道WebSocket接口参考
- 模组AT指令参考
- 修订记录
- SDK参考
- 场景代码示例
-
常见问题
- 热门问题
-
方案咨询
- 连接IoT平台的业务场景有哪些?
- 设备管理服务和设备接入服务合一后的差异点是什么?
- IAM子用户或子项目是否可以开通物联网平台服务?
- 物联网平台支持在华为云的哪些区域开通?
- 华为是否提供模组/硬件终端/应用软件等?
- IAM用户访问API提示没有权限?(是否区分版本?)
- 创建规则或者设置资源文件存储时候提示赋予Security Administrator权限
- 物联网平台设置默认资源空间的规则是什么?
- 设备接入服务如何获取设备数据?
- 物联网平台的资源空间和设备可以无限创建吗?
- 物联网平台支持批量注册设备吗?
- 物联网平台对应用侧和设备侧在开发或使用时有限制吗?
- 物联网平台支持的DTLS加密算法有哪些?
- 物联网平台支持二进制大小端模式切换吗?
- 什么是NB-IoT?
- 物联网平台支持的硬件架构和使用的相关组件有哪些?
- 如何获取平台接入地址?
- 设备集成相关问题
- 设备侧SDK相关问题
- 设备发放相关问题
- LWM2M/CoAP接入相关问题
- MQTT接入相关问题
- 泛协议接入相关问题
- 物模型相关问题
- 消息通信相关问题
- 订阅推送相关问题
- 编解码插件相关问题
- OTA升级相关问题
- 应用集成相关问题
- 实例管理相关问题
- 视频帮助
- 文档下载
- 通用参考
本文导读
链接复制成功!
设备消息上报
概述
消息上报是设备直接将数据传到云端,通过数据流转功能将数据转发到应用侧或华为云其他云服务的一种方式。平台对设备上报的消息不进行解析和存储,不需要建立产品模型便可以使用。
图1 设备消息上报流程

使用场景
平台对设备上报的数据不进行解析和存储,需要通过数据转发规则转发到华为云其他云服务上进行存储和处理的场景。
使用限制
- 单个消息内容不大于1M。
- 单个MQTT连接最大带宽1MB/s。
- 单个MQTT连接每秒最大上行消息数量为50条(一次请求为一条)。
使用说明
图2 设备消息上报操作流程

- 创建产品与设备:创建产品流程、创建设备流程。
- 设备鉴权:平台验证设备是否具有接入权限。
- 设备消息上报:设备通过MQTT/HTTPS等协议发送消息数据。
按照不同的设备协议,调用的接口不一样,下面分别介绍MQTT、HTTPS协议消息上报的样例:
MQTT:通过消息上报接口MQTT协议消息上报、使用MQTT.fx调测上报数据到物联网平台。
- MQTT消息上报Topic样例如下:
$oc/devices/{device_id}/sys/messages/up
- MQTT消息上报数据格式样例如下:
{ "content": {"hello":"123"} }
HTTPS:通过消息上报接口HTTP协议消息上报上报数据到物联网平台,其中access_token获取参考:HTTPS设备鉴权。HTTPS消息上报样例如下:POST https://{endpoint}/v5/devices/{device_id}/sys/messages/up Content-Type: application/json access_token: ******** { "name": "name", "id": "id", "content": "messageUp" }
- MQTT消息上报Topic样例如下:
- 数据转发:可以通过数据流转功能转发到应用侧或华为云其他云服务上进行进一步处理。
消息上报JAVA SDK使用示例
本部分介绍如何使用JAVA SDK进行消息上报的开发。本示例使用的开发环境为JDK 1.8及以上版本。
配置设备侧SDK步骤如下:
- SDK代码获取:SDK下载。
- 配置设备侧SDK的Maven依赖。
<dependency> <groupId>com.huaweicloud</groupId> <artifactId>iot-device-sdk-java</artifactId> <version>1.1.4</version> </dependency>
- 配置设备侧SDK,设备连接参数。
//加载iot平台的ca证书,获取链接参考:https://support.huaweicloud.com/devg-iothub/iot_02_1004.html#section3 URL resource = BroadcastMessageSample.class.getClassLoader().getResource("ca.jks"); File file = new File(resource.getPath()); //注意格式为:ssl://接入地址:端口号。 //接入地址获取方式:登录华为云IoTDA控制台左侧导航栏“总览”页签,在选择的实例基本信息中,单击“接入信息”。选择8883端口对应的接入地址。 String serverUrl = "ssl://localhost:8883"; //在IoT平台创建的设备ID。 String deviceId = "deviceId"; //设备ID对应的密钥。 String deviceSecret = "secret"; //创建设备 IoTDevice device = new IoTDevice(serverUrl, deviceId, deviceSecret, file); if (device.init() != 0) { return; }
- 上报设备消息:
device.getClient().reportDeviceMessage(new DeviceMessage("hello"), new ActionListener() { @Override public void onSuccess(Object context) { log.info("reportDeviceMessage success: "); } @Override public void onFailure(Object context, Throwable var2) { log.error("reportDeviceMessage fail: "+var2); } });
测试验证步骤如下:
- 在设备接入控制台,进入“设备 > 所有设备”,单击具体设备,启动“消息跟踪”。
图3 消息跟踪-启动消息跟踪
- 设备端运行设备侧SDK代码,设备侧消息上报日志格式样例如下:
图4 java SDK消息上报结果log
- “消息跟踪”显示结果如下,平台已经收到设备的消息上报,并且已经触发流转规则:
图5 消息跟踪-消息上报触发流转规则
父主题: 设备数据上报