IoT物联网平台通信用Topic梳理

简介: 基于设备实践梳理出来的Topic总结

1.前言

IoT物联网平台基于MQTT协议的Pub/Sub通信,那么topic和payload设计就很重要。
我们可以定义出不同topic来处理不同业务场景,类似web开发中的API设计。

2.自定义Topic类

2.1 默认自定义Topic

当我们创建产品后,系统会自动生成3个自定义topic,方便我们使用。

Topic 权限 备注
/${ProductKey}/${DeviceName}/user/update 发布 上报数据
/${ProductKey}/${DeviceName}/user/update/error 发布 上报错误事件
/${ProductKey}/${DeviceName}/user/get 订阅 接收云端数据

2.2 自定义Topic

默认topic是一个示范,我们可以根据业务需求,自己定义Topic和Payload,来解决现实中的问题。比如下面的示例:

Topic 权限 备注
/${ProductKey}/${DeviceName}/user/heart/post 发布 定期上报数据
/${ProductKey}/${DeviceName}/user/bizdata/post 发布 业务触发上报
/${ProductKey}/${DeviceName}/user/biz/control 订阅 接收云端指令
/${ProductKey}/${DeviceName}/user/config/modify 订阅 接收设备配置变更

对于设备上报数据,我们可以把不同优先级的消息做分类,通过规则引擎流转分流到不同队列,给予不同处理资源,避免重要业务消息延迟过高。
对于云端指令接收,我们也可以区分业务指令和配置指令,给予不同优先级。

3.系统Topic列表

3.1 设备影子 

用于实现设备影子功能,需要使用如下topic

Topic 权限 备注
/shadow/update/${ProductKey}/${DeviceName} 发布 更新设备影子 QoS=1
/shadow/get/${ProductKey}/${DeviceName} 订阅 获取设备影子

设备影子可以实现设备的运行参数的配置更新功能。

3.2 固件升级

Topic 权限 备注
/ota/device/inform//${ProductKey}/${DeviceName} 发布 上报当前固件版本
/ota/device/upgrade/${ProductKey}/${DeviceName} 订阅 接收OTA信息
/ota/device/progress/${ProductKey}/${DeviceName} 发布 上报OTA进度
/ota/device/request/${ProductKey}/${DeviceName} 发布 主动请求OTA信息

3.3 广播

Topic 权限 备注
/broadcast/${YourProductKey}/+ 订阅 接收广播信息

同一产品的设备,可以接收到云端的广播指令,由于IoT平台限制广播最大触达1000个设备。
这里我们可以把设备按规则做分组,不同组设备自动订阅不同group的topic,比如:

  • /broadcast/${YourProductKey}/group/a 
  • /broadcast/${YourProductKey}/group/b

3.4 RRPC通信

使用下面topic,IoT平台实现了基于mqtt协议的云端发起对设备的同步RPC调用

Topic 权限 备注
/sys/${ProductKey}/${DeviceName}/rrpc/request/+ 订阅 接收RRPC调用
/sys/${ProductKey}/${DeviceName}/rrpc/response/${msgId} 发布 响应msgId对应RRPC请求

3.5 设备标签

使用设备标签topic可以动态给设备添加运行时标签

Topic 权限 备注
/sys/${ProductKey}/${DeviceName}/thing/deviceinfo/update 发布 更新设备标签

3.6 远程配置

Topic 权限 备注
/sys/${ProductKey}/${DeviceName}/thing/config/get 发布 主动查询配置信息
/sys/${ProductKey}/${DeviceName}/thing/config/push 订阅 接收配置信息
/sys/${ProductKey}/${DeviceName}/thing/config/get_reply 订阅 接收配置信息

4.物模型通信

4.1 物模型JSON数据通信

Topic 权限 备注
/sys/${ProductKey}/${DeviceName}/thing/event/property/post 发布 上报属性数据
/sys/${ProductKey}/${DeviceName}/thing/event/property/post_reply 订阅 接收返回结果
/sys/${ProductKey}/${DeviceName}/thing/event/{identifer}/post 发布 上报事件数据
/sys/${ProductKey}/${DeviceName}/thing/event/{identifer}/post_reply 订阅 接收返回结果
/sys/${ProductKey}/${DeviceName}/thing/service/property/set 订阅 接收属性设置指令
/sys/${ProductKey}/${DeviceName}/thing/service/property/set_reply 发布 返回处理结果
/sys/${ProductKey}/${DeviceName}/thing/service/{identifer} 发布 接收服务调用指令
/sys/${ProductKey}/${DeviceName}/thing/service/{identifer}_reply 订阅 返回服务处理结果

4.2 物模型透传数据通信

Topic 权限 备注
/sys/${ProductKey}/${DeviceName}/thing/model/up_raw 发布 上报数据
/sys/${ProductKey}/${DeviceName}/thing/model/down_raw 订阅 接收云端指令

更多信息参考: https://www.yuque.com/cloud-dev/iot-tech/kg84mi

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
23天前
|
传感器 存储 物联网
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点,广泛应用于嵌入式系统开发、通信协议实现及后端服务构建等领域,成为推动物联网技术进步的重要力量。
31 1
|
1月前
|
存储 安全 物联网
C# 在物联网 (IoT) 应用中的应用
本文介绍了C#在物联网(IoT)应用中的应用,涵盖基础概念、优势、常见问题及其解决方法。重点讨论了网络通信、数据处理和安全问题,并提供了相应的代码示例,旨在帮助开发者更好地利用C#进行IoT开发。
50 3
|
1月前
|
安全 物联网 网络安全
智能设备的安全隐患:物联网(IoT)安全指南
智能设备的安全隐患:物联网(IoT)安全指南
87 12
|
1月前
|
传感器 监控 安全
物联网(IoT):定义、影响与未来
物联网(IoT):定义、影响与未来
90 3
|
1月前
|
存储 JSON 运维
智能物联网平台:Azure IoT Hub在设备管理中的实践
【10月更文挑战第26天】随着物联网技术的发展,Azure IoT Hub成为企业管理和连接数百万台设备的强大平台。本文介绍Azure IoT Hub的设备管理功能,包括设备注册、设备孪生、直接方法和监控诊断,并通过示例代码展示其应用。
65 4
|
26天前
|
安全 物联网 物联网安全
揭秘区块链技术在物联网(IoT)安全中的革新应用
揭秘区块链技术在物联网(IoT)安全中的革新应用
|
2月前
|
物联网 5G 智能硬件
物联网卡:物联网卡不支持语音通话,是如何实现设备间的数据传输和通信的?
物联网卡(IoT SIM卡)通常被设计用于支持物联网(IoT)设备之间的数据传输,而不直接支持语音通话功能。这是因为物联网设备主要关注的是数据的收集、传输和处理,而不是语音通信。为了实现设备间的数据传输和通信,物联网卡及其背后的技术采用了多种方法,主要包括但不限于以下几种方式:
物联网卡:物联网卡不支持语音通话,是如何实现设备间的数据传输和通信的?
|
1月前
|
SQL 监控 物联网
ClickHouse在物联网(IoT)中的应用:实时监控与分析
【10月更文挑战第27天】随着物联网(IoT)技术的快速发展,越来越多的设备被连接到互联网上,产生了海量的数据。这些数据不仅包含了设备的状态信息,还包括用户的使用习惯、环境参数等。如何高效地处理和分析这些数据,成为了一个重要的挑战。作为一位数据工程师,我在一个物联网项目中深入使用了ClickHouse,以下是我的经验和思考。
89 0
|
2月前
|
人工智能 安全 物联网
|
3月前
|
传感器 监控 安全
物联网通信的基石:LoRa、Sigfox与NB-IoT详解
物联网通信的基石:LoRa、Sigfox与NB-IoT详解
402 0

相关产品

  • 物联网平台