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
相关文章
|
2月前
|
物联网 数据管理 Apache
拥抱IoT浪潮,Apache IoTDB如何成为你的智能数据守护者?解锁物联网新纪元的数据管理秘籍!
【8月更文挑战第22天】随着物联网技术的发展,数据量激增对数据库提出新挑战。Apache IoTDB凭借其面向时间序列数据的设计,在IoT领域脱颖而出。相较于传统数据库,IoTDB采用树形数据模型高效管理实时数据,具备轻量级结构与高并发能力,并集成Hadoop/Spark支持复杂分析。在智能城市等场景下,IoTDB能处理如交通流量等数据,为决策提供支持。IoTDB还提供InfluxDB协议适配器简化迁移过程,并支持细致的权限管理确保数据安全。综上所述,IoTDB在IoT数据管理中展现出巨大潜力与竞争力。
57 1
|
1月前
|
存储 物联网 关系型数据库
PolarDB在物联网(IoT)数据存储中的应用探索
【9月更文挑战第6天】随着物联网技术的发展,海量设备数据对实时存储和处理提出了更高要求。传统数据库在扩展性、性能及实时性方面面临挑战。阿里云推出的PolarDB具备高性能、高可靠及高扩展性特点,能有效应对这些挑战。它采用分布式存储架构,支持多副本写入优化、并行查询等技术,确保数据实时写入与查询;多副本存储架构和数据持久化存储机制保证了数据安全;支持动态调整数据库规模,适应设备和数据增长。通过API或SDK接入IoT设备,实现数据实时写入、分布式存储与高效查询,展现出在IoT数据存储领域的巨大潜力。
49 1
|
12天前
|
传感器 监控 安全
物联网通信的基石:LoRa、Sigfox与NB-IoT详解
物联网通信的基石:LoRa、Sigfox与NB-IoT详解
77 0
|
2月前
|
消息中间件 存储 传感器
RabbitMQ 在物联网 (IoT) 项目中的应用案例
【8月更文第28天】随着物联网技术的发展,越来越多的设备被连接到互联网上以收集和传输数据。这些设备可以是传感器、执行器或其他类型的硬件。为了有效地管理这些设备并处理它们产生的大量数据,需要一个可靠的消息传递系统。RabbitMQ 是一个流行的开源消息中间件,它提供了一种灵活的方式来处理和转发消息,非常适合用于物联网环境。
77 1
|
2月前
|
存储 传感器 监控
理解并利用物联网(IoT)数据的技术探索
【8月更文挑战第11天】物联网数据是数字化转型的重要资源。通过深入理解物联网数据的特性和价值,并采取有效的收集、处理和分析策略,我们可以更好地利用这些数据为企业决策提供支持、优化运营效率、创造新的商业模式并推动数字化转型的深入发展。
|
1月前
|
机器学习/深度学习 人工智能 算法
物联网(IoT)就像是一个大型派对,无数的设备都在欢快地交流着信息
【9月更文挑战第4天】在这个万物互联的时代,物联网(IoT)犹如一场盛大的派对,各类设备欢聚一堂。然而,如何让这些设备互相理解并协同工作呢?这就需要机器学习与人工智能的助力。例如,智能空调通过学习你的使用习惯来调节温度,使你更加舒适;智能安防系统则能识别异常行为并及时报警,保障家庭安全。此外,智能农业、交通等领域也因机器学习和人工智能的应用变得更加高效。下面通过一个简单的温度预测代码示例,展示机器学习在物联网中的实际应用,让我们一起感受其强大潜力。
30 0
|
2月前
|
消息中间件 传感器 物联网
Producer 在物联网 (IoT) 中的应用
【8月更文第29天】在物联网 (IoT) 领域,设备和传感器不断生成大量的数据。为了有效地收集、处理和分析这些数据,通常会采用消息队列技术。消息队列允许设备将数据发送给后端系统进行进一步处理。在这个过程中,消息生产者(Producer)扮演着关键角色,负责将数据从设备发送到消息队列。本文将详细介绍如何使用消息生产者来收集来自各种传感器和其他 IoT 设备的数据,并提供一个基于 Python 和 Kafka 的示例代码。
30 0
|
2月前
|
消息中间件 传感器 监控
AMQP 与物联网 (IoT) 应用的结合
【8月更文第28天】高级消息队列协议 (AMQP) 是一种开放标准的应用层协议,特别适合于物联网 (IoT) 场景中的消息传递。AMQP 提供了可靠的、可扩展的消息传输机制,能够处理来自大量设备的数据流。本文将探讨 AMQP 在 IoT 应用中的优势,并提供使用不同编程语言构建 AMQP 客户端的具体示例。
28 0
|
2月前
|
存储 安全 物联网
物联网中的通信模型
【8月更文挑战第23天】
34 0
|
2月前
|
物联网 C语言
C语言与物联网:设备间的通信与控制
C语言与物联网:设备间的通信与控制
43 0

相关产品

  • 物联网平台
  • 下一篇
    无影云桌面