18 onenet mqttx 对接 设备 属性 上报 完整测试
02 mqttx 对接 onenet 设备 属性 上报 完整测试
本篇讲解中国移动OneNET平台标准物模型设备属性上报流程,采用MQTT协议通信,使用MQTTX工具模拟设备端完成报文收发测试,掌握上报主题规范、报文格式与平台交互逻辑。
1. 设备属性上报
本次演示普通直连设备上报,不涉及子设备层级,设备主动向平台上传自身运行状态、传感数据等属性信息。
1.1 通信主题规范
主题采用平台固定模板格式,pid为产品ID,device-name为设备名称,按需替换实际参数即可。
- 上行上报请求Topic
$sys/{pid}/{device-name}/thing/property/post示例实际主题
$sys/p1Fj0crQJo/device_2412/thing/property/post- 平台应答响应Topic
设备订阅该主题,接收平台上报结果回执
$sys/{pid}/{device-name}/thing/property/post/reply示例实际主题
$sys/p1Fj0crQJo/device_2412/thing/property/post/reply1.2 OneJSON标准报文格式
平台统一使用JSON格式交互,字段含义固定,上报数据必须严格遵循格式封装。
设备上行上报报文
{"id":"123","version":"1.0","params":{"temperature":{"value":25}}}字段说明
| 字段 | 释义 |
|---|---|
| id | 消息唯一编号,自定义自增数值,用于匹配应答报文 |
| version | 协议版本,固定填写1.0 |
| params | 属性参数集合,可同时上报多个属性 |
| temperature | 物模型定义的属性标识符,与平台配置一致 |
| value | 属性实际上报数值 |
平台下行响应报文
上报完成后平台原路返回应答,以此判断上报是否生效
{"id":"123","code":200,"msg":"success"}字段说明
| 字段 | 释义 |
|---|---|
| id | 对应上报消息编号,一一匹配 |
| code | 状态码,200代表上报成功 |
| msg | 结果描述信息 |
2. 整体测试流程
测试借助MQTTX客户端模拟设备,完成连接、订阅主题、发布上报报文、查看平台数据全流程验证。
2.1 平台前置配置
上报属性前,必须先在OneNET产品后台添加对应物模型属性,否则平台无法解析上报数据。
根据业务需求创建温度、开关、湿度等属性,属性标识、数据类型要和上报报文内参数保持统一。
2.2 MQTTX客户端操作
- 填写OneNET MQTT接入地址、端口、设备认证信息,建立设备与平台连接;
- 订阅属性响应主题,等待平台回执消息;
- 按照标准JSON格式编辑上报报文,发布至设备上报主题;
- 客户端面板可实时查看下发报文、平台返回应答内容。
2.3 平台数据校验
报文下发无误后,刷新设备详情页面,能够看到temperature属性数值同步更新为上报的25,代表属性上报链路通信正常,数据成功存入平台。
3. 常见问题小结
- 属性上报失败:核对报文内属性标识、数据类型和平台物模型配置是否一致;
- 收不到平台响应:检查是否正确订阅reply响应主题,MQTT连接状态是否正常;
- 状态码非200:排查设备接入秘钥、主题地址、JSON格式语法错误。
