Topic定义
设备使用MQTT协议接入平台时,平台和设备通过Topic进行通信。平台预置的topic列表如下:
| Topic分类 | Topic | Publisher(发布者) | Subscriber(订阅者) | 用途 |
|---|---|---|---|---|
| 设备消息相关Topic | $oc/devices/{device_id}/sys/messages/up | 设备 | 平台 | 设备消息上报 |
| $oc/devices/{device_id}/sys/messages/down | 平台 | 设备 | 平台下发消息给设备 | |
| 设备命令相关Topic | $oc/devices/{device_id}/sys/commands/request_id={request_id} | 平台 | 设备 | 平台下发命令给设备 |
| $oc/devices/{device_id}/sys/commands/response/request_id={request_id} | 设备 | 平台 | 设备返回命令响应 | |
| 设备属性相关Topic | $oc/devices/{device_id}/sys/properties/report | 设备 | 平台 | 设备上报属性数据 |
| $oc/devices/{device_id}/sys/gateway/sub_devices/properties/report | 设备 | 平台 | 网关批量上报属性数据 | |
| $oc/devices/{device_id}/sys/properties/set/request_id={request_id} | 平台 | 设备 | 平台设置设备属性 | |
| $oc/devices/{device_id}/sys/properties/set/response/request_id={request_id} | 设备 | 平台 | 属性设置的响应结果 | |
| $oc/devices/{device_id}/sys/properties/get/request_id={request_id} | 平台 | 设备 | 平台查询设备属性 | |
| $oc/devices/{device_id}/sys/properties/get/response/request_id={request_id} | 设备 | 平台 | 属性查询响应结果,这个结果不会对设备属性和影子产生影响 | |
| $oc/devices/{device_id}/sys/shadow/get/request_id={request_id} | 设备 | 平台 | 设备侧主动获取平台的设备影子数据 | |
| $oc/devices/{device_id}/sys/shadow/get/response/request_id={request_id} | 平台 | 设备 | 设备侧主动获取平台设备影子数据的响应 | |
| 设备事件相关Topic | $oc/devices/{device_id}/sys/events/up | 设备 | 平台 | 设备事件上报 |
| $oc/devices/{device_id}/sys/events/down | 平台 | 设备 | 平台事件下发 |
- {device_id}用于标识Topic路由的目标设备,设备侧订阅该topic或往topic推送消息时,该值需要替换为设备与平台建立MQTT连接时使用的设备ID参数值。
- {request_id}用于唯一标识这次请求。设备侧发起的消息带该参数时,需要保证设备侧该参数值的唯一性,可以用递增的数字或者UUID来实现。设备侧收到的消息带该参数时,响应消息需要将该参数值返回给平台。
- 设备侧订阅带{request_id}参数的topic时,可以使用通配#。如设备侧订阅命令下发请求的topic $oc/devices/{device_id}/sys/commands/request_id={request_id}时,可以用$oc/devices/{device_id}/sys/commands/#
Last Article: 设备与平台间通信方式概述
Next Article: 设备连接鉴权
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.