MQTT客户端接口

本文定义的协议名称是 MQTT 协议,目标是解决物联网中设备之间、设备和云端之间的互操作,基于此协议开发的网关和设备, 可以随时接入物联网,云端可以自动识别新接入的设备和设备中的数据,无需事先和设备厂商协商 数据交互流程和数据格式

1.术语、定义和缩略语

1.1 术语定义

网关
设备跟云端连接的桥梁,对于不具备互联网接口的设备,或者需要数据汇聚后跟云端连接 的设备,可以先通过现场协议连接到网关,网关再连接到云端。
数据项
网关采集设备(组)的数据。
云端
物联网的控制中心,执行数据采集、存储、分析计算,提供基于设备数据的物联网增值服 务,如:远程设备/系统监控,大数据应用,机器学习,商业智能,行业专家系统等等。
MQTT 服务器
一个消息代理,网关(或设备)和云端通过 MQTT 服务器转发消息。

1.2 符号和缩略语

本部分中所使用到的符号和缩略语见表 1。
缩略语英文全称说明
pKey productKey 供应商产品系列编号
snserialNum物联电表编号、网关编号
devdevId配置工程中的设备名称
seqsequence数据帧序号 seq (uint32 类型不重复数),召读类消息,由召方生成 seq,响应方复制 seq回复。边缘侧网关 edge 自动上报信息,seq缺省。
typetype表示包类型
tstimestamp表示绝对时间 unix(秒)
tftimeoffset 相对于绝对时间的偏移
verversion表示数据格式版本, 缺省时表示直连设备
compId companyId厂家 ID
meidmobile equipment identifier移动设备识别码
sVersoftVersion软件版本
hVerhardwareVersion硬件版本
loclocation地址,“${经度},${纬度}”
macMedia Access Control AddressMAC 地址
encrencryption加密方式
commFlowYcommunicationFlowsYear年度通信流量累计
commFlowMcommunicationFlows Moth月度通信流量累计
mmetric测点名
vvalue测点值
dqdata quality数据质量标识,缺省为 0,0 标识当前值有效,非0 标识非当前值
acalarm code告警码,缺省为 0,0 标识当前值无报警,非 0标识有报警信息
validvalid代表返回结果,1 为设置成功,0 为设置失败
remarkremark备注,具体原因
regGrpregGroup寄存器组
ststarttime开始时间
etendtime 结束时间
limitlimit召读 limit 条最近调试信息调试信息
memSizememSize设备内存大小 KB
memUsedmemUsed设备内存空间使用率
diskSizediskSize设备磁盘空间大小 KB
diskUseddiskSize设备磁盘空间使用率

2.主题(Topic)

物联网平台中,云端和设备端通过 Topic 来实现消息通信。设备上报消息至指定的 Topic中,并从 Topic 中订阅消息。云端将指令下发到 Topic 中,并订阅具体 Topic 来获取设备信息。

2.1 Topic

物联网平台中,网关和云端通过 Topic 来实现消息通信。Topic 是针对网关与设备的概念。

2.2 网关 Topic 主题设置

Topic 设置
证书添加
说明:启用双向认证时需要在 MQTT 服务器设置界面选择相应的 CA 文件,然后还需要将ClientCrt 文件和 ClientKey 文件拷贝到工程文件夹下。

2.3 Topic 列表

Topic发布/订阅说明
/edge/${pKey}/${sn}/info发布设备上报设备信息
/edge/${pKey}/${sn}/status发布设备上报设备工况(//需平台召唤)
/edge/${pKey}/${sn}/rtg发布物联网关上报实时数据
/cloud/${pKey}/${sn}/timing/call订阅接收对时命令
/edge/${pKey}/${sn}/timing/cack发布响应对时命令
/edge/${pKey}/${sn}/history发布断点续传自动上报
/cloud/${pKey}/${sn}/history/call订阅接收历史数据召读命令
/edge/${pKey}/${sn}/history/cack发布响应历史数据召读命令上传报历史数据
/cloud/${pKey}/${sn}/cmd/set订阅接收控制命令
/edge/${pKey}/${sn}/cmd/set/cack发布响应控制命令

2.4 工程参数说明

2.4.1 设备静态信息

说明:
驱动名称和通道名称在进行 MQTT 数据传输的时候无效,设备名称 DeviceName 在整个工程中需要唯一,是每个末端设备的唯一标识。

2.4.2 辅助信息

说明:

3.数据说明

定义各 Topic 对应的数据结构及说明。

3.1 设备静态信息

3.1.1 自动上报

设备静态信息建立连接后第一时间,主动向云平台发送一消息,Topic 格式是/edge/{pKey}/{sn}/info;
例如: /edge/HY01G/DD4F63F2B7CE4CE58C88F23678F290F6/info

3.1.2 首次连接自动上报一次所有数据当前值

设备静态信息建立连接后,主动向云平台发送一次 消息,Topic 格式是/edge/{pKey}/{sn}/rtg;
例如:/edge/HY01G/DD4F63F2B7CE4CE58C88F23678F290F6/rtg

3.1.3 召读

主动召读设备静态信息消息由云平台送给网关,Topic 格式是/cloud/{pKey}/{sn}/info/call,
例如:/cloud/HY01G/DD4F63F2B7CE4CE58C88F23678F290F6/info/call

3.1.4 召读响应

响应消息和自动上报消息一致,seq 复制召读消息。

3.2 设备实时工况信息

3.2.1 召读

主动召读设备静态信息消息由云平台送给网关,Topic 格式是/cloud/{pKey}/{sn}/status/call,
例如:/cloud/HY01G/DD4F63F2B7CE4CE58C88F23678F290F6/status/call

3.2.2 召读响应

网关响应云平台召读消息将设备实时工况上送给云平台,Topic 是/edge/{pKey}/{sn}/status
例如:/edge/HY01G/DD4F63F2B7CE4CE58C88F23678F290F6/status

3.3 设备上报实时数据

3.3.1 网关实时外部开关量数据

网关外部开关量变化上传 Topic: /edge/${pKey}/${sn}/rtg
例如:/edge/HY01G/DD4F63F2B7CE4CE58C88F23678F290F6/rtg

3.3.2 网关实时外部模拟量数据

网关外部模拟量变化上传 Topic: /edge/${pKey}/${sn}/rtg
例如:/edge/HY01G/DD4F63F2B7CE4CE58C88F23678F290F6/rtg

3.4 补召历史数据

3.4.1 断点续传

断点续传历史数据由网关自动上报至云平台,Topic 是/edge/{pKey}/{sn}/history
例如:/edge/HY01G/DD4F63F2B7CE4CE58C88F23678F290F6/history

3.4.2 召读

主动召读历史数据消息由云平台发送至网关,Topic 是/cloud/{pKey}/{sn}/history/call
例如:/cloud/HY01G/DD4F63F2B7CE4CE58C88F23678F290F6/history/call

3.4.3 召读响应

响应召读历史数据消息由网关发送至云平台,Topic 是/edge/{pKey}/{sn}/history/cack
例如:/edge/HY01G/DD4F63F2B7CE4CE58C88F23678F290F6/history/cack

3.5 设备对时

3.5.1 下发对时

对时命令消息由云平台发送至网关,Topic 是/cloud/{pKey}/{sn}/timing/call,
例如:/cloud/HY01G/DD4F63F2B7CE4CE58C88F23678F290F6/timing/call

3.5.2 响应对时

响应下发 对时 命令网关将网关对时完成后的当前系统 时间 上送给云平台, Topic 是/edge/{pKey}/{sn}/timing/cack
例如:/edge/HY01G/DD4F63F2B7CE4CE58C88F23678F290F6/timing/cack

3.6 平台控制

3.6.1 下发控制

对时命令消息由云平台发送至网关,Topic 是/cloud/{pKey}/{sn}/cmd/set,
例如:/cloud/XR03G/1903150424/cmd/set

3.6.2 响应控制

响应下发控制命令, Topic 是/edge/{pKey}/{sn}/cmd/set/cack
例如:/edge/XR03G/1903150424/cmd/set/cack
注:详情请联系技术支持。
2023-08-23
4 1