一、Topic格式定义
/{auth token}/{endpoint id}/{endpoint name}/{method name}/{direction}
字段说明如下:
字段名 | 备注 | 说明 | 扩展说明 |
auth token | 认证Token | 接入管理分配的UUID | |
endpoint id | 备设备ID | 接入设备的ID,推荐填写成网关的mac地址 | |
endpoint name | 设备名称 | 接入管理定义的接入设备名 | |
direction | 主题方向 | push:云端请求;push_reply:响应云端请求,get:网关请求云端,get_reply:云端响应网关请求,report:主动上送云端,retain:主动上送云端,要求云端保留该消息,主要用于组态、配置信息与云端同步 | 不同的方法名支持的主题方向不同 |
功能清单:
功能 | 方法名/主题方向 | 说明 | 备注 |
设备主动上送位号数据 | metatag/retain | 单向上送,云端做数据持久化保证 | 必选 |
设备主动上送实时数据 | rtdvalue/report | 单向上送 | 必选 |
设备主动上送缓存续传数据 | cachevalue/report | 单向上送 | 必选 |
设备主动上送事件 | rtdevent/report | 单向上送 | 可选 |
设备主动上送请求 | rtdevent/get | 事件请求 | 可选,事件支持扩展,目前已经支持事件:1.系统对时 |
rtdevent/get_reply | 事件响应,无响应为异常,持续无响应可认为云端异常 | ||
云端主动刷新位号数据 | metatag/push | 元数据主动刷新请求,要求设备端主动上送一次全量的位号数据 | 必选,云端只会在必须要的情况下才会主动发送刷新请求 |
metatag/push_reply | 元数据主动刷新响应,持续无响应可认为设备端异常 | ||
云端主动刷新实时数据 | rtdvalue/push | 实时数据主动刷新请求,要求设备端主动上送一次全量的实时数据 | 必选,云端只会在必须要的情况下才会主动发送刷新请求 |
rtdvalue/push_reply | 实时数据刷新响应,持续无响应可认为设备端异常 | ||
云端主动发送事件通知 | rtdevent/push | 事件通知请求 | 可选 |
rtdevent/push_reply | 事件通知响应,持续无响应可认为设备端异常 | ||
云端主动发送下写通知 | rtdnotify/push | 云端下写通知 | 可选,支持下写特性的采集器需要进行订阅 |
rtdnotify/push_reply | 网关下写响应 |
说明:
下面的具体通讯过程里Topic的定义都是用
auth token: 86efdf12-4f54-4691-b833-09cbaa2d50a4
endpoint id: dev1234
endpoint name: test
作为举例说明各个协议功能。
二、位号元数据
设备主动刷新位号数据
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/metatag/retain
MQTT参数:
QOS = 0,Retain = 1
消息内容:
MetaTagSequence
说明:
- 设备启动后主动上送一次位号元数据
云端要求刷新设备位号数据
云端请求:
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/metatag/push
MQTT参数:
QOS = 1,Retain = 0
消息内容:
无
说明:
- 云端在发生服务重启时会主动发起刷新请求
响应云端:
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/metatag/push_reply
MQTT参数:
QOS = 1,Retain = 0
消息内容:
MetaTagSequence
三、实时数据
设备主动上送实时数据
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/rtdvalue/report
MQTT参数:
QOS = 1,Retain = 0
消息内容:
ValueSequence
说明:
- 设备在上送完位号数据后,可以主动上送实时数据
云端要求刷新设备实时数据
云端请求:
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/rtdvalue/push
MQTT参数:
QOS = 1,Retain = 0
消息内容:
无
说明:
- 云端在发生服务重启时会主动发起刷新请求
响应云端:
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/rtdvalue/push_reply
MQTT参数:
QOS = 1,Retain = 0
消息内容:
ValueSequence
四、历史数据续传
设备主动续传历史数据
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/cachevalue/report
MQTT参数:
QOS = 1,Retain = 0
消息内容:
ValueSequence
说明:
- 设备在主动上送实时数据失败时,可以将未上送成功的数据进行本地缓存。待通讯状态恢复后,通过历史数据续传的方式进行数据续传,以保证数据完整。
五、自定义事件
设备主动上报事件
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/rtdevent/report
MQTT参数:
QOS = 1,Retain = 0
消息内容:
RtdEvent
说明:
- 自定义事件是用来预留给各接入设备来进行自定义数据上报的机制,该类数据的处理需按需进行服务定制。
- RtdEvent里的topic由各接入设备来自定义,topic规则请参见1的格式定义,其中method name由各设备自定义。该数据的处理也由平台上自定义的应用来进行消费和处理。
设备请求云端事件
设备请求:
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/rtdevent/get
MQTT参数:
QOS = 1,Retain = 0
消息****内容:
RtdEvent
说明:
- 设备端主动发起请求,要求云端给出响应
云端响应:
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/rtdevent/get_reply
MQTT参数:
QOS = 1,Retain = 0
消息内容:
RtdEvent
说明:
- 云端响应设备端请求结果
云端主动通知事件
云端请求:
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/rtdevent/push
MQTT参数:
QOS = 1,Retain = 0
消息****内容:
RtdEvent
说明:
- 云端根据业务主动给设备端发送通知事件
设备响应:
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/rtdevent/push_reply
MQTT参数:
QOS = 1,Retain = 0
消息内容:
RtdEvent
说明:
- 设备端在完成通知事件处理后的,给出对应的响应
六、系统内置事件
系统对时
设备请求:
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/rtdevent/get
MQTT参数:
QOS = 1,Retain = 0
消息内容:
RtdEvent
topic = SyncTime
payload = GatewayCoordinate
说明:
- 设备主动给云端发送时间协调事件请求
云端响应:
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/rtdevent/get_reply
MQTT参数:
QOS = 1,Retain = 0
消息内容:
RtdEvent
topic = SyncTime
payload = ServerCoordinate
说明:
- 云端给设备发送时间协调事件响应
云端下写事件通知
云端请求:
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/rtdnotify/push
MQTT参数:
QOS = 0,Retain = 1
消息内容:
ValueSequence
说明:
- 云端主动发起请求,要求设备端给出响应
设备响应:
主题:
/86efdf12-4f54-4691-b833-09cbaa2d50a4/dev1234/test/rtdnotify/push_reply
MQTT参数:
QOS = 1,Retain = 0
消息内容:
无
说明:
- 设备端响应云端请求结果