MQTT中文站
  • 首页
  • MQTT 学习
    • MQTT 入门
    • MQTT 进阶
    • MQTT 编程
    • MQTT 实例
    • MQTT 要点
    • MQTT5 要点
    • MQTT 工具
    • MQTT 客户端库
    • MQTT 服务器
    • Zigbee2MQTT
    • Sparkplug
    • Home Assistant
    • Node-RED
      • Node-RED 安装部署
      • Node-RED 用户指南
      • Node-RED 创建节点
      • Node-RED 示例教程
      • Node-RED 开发流程
      • Node-RED 接口参考
      • Node-RED 配置模板
      • Node-RED 常见问题
  • MQTT 规范
    • MQTT 5 规范
    • MQTT 3.1.1 规范
    • MQTT 3.1 规范
    • MQTT-SN v1.2规范
    • Sparkplug® v3.0.0规范
  • 产品中心
  • 解决方案
    • 环境监测
    • 工业制造
    • 智慧水利
    • 水利管网
    • 积水监测
    • 综合管廊
    • 档案库房
    • 交通物流
    • 智慧城市
    • 智慧农业
    • 智慧养殖
    • 能源电力
    • 石油石化
    • 智能家居
    • 物联网
    • 汽车与出行
  • 使用文档
  • MQTT 云平台
  • 登录
  • 注册

相对于2.2版本,Sparkplug规范版本3.0更新了什么?

2 年前 • Sparkplug

新的v3.0.0 Sparkplug®规范对之前版本进行了整理和正式化。根据Eclipse Sparkplug工作组的说法,其目标是澄清v2.2版本中存在的模糊不清的地方,并明确规范性的陈述,同时保持v2.2规范的总体意图。

例如,新规范的第2章“原则”取代了2.2规范中的“背景”章节。现在,它详细描述了Sparkplug的关键原则,第5章“操作行为”非常详细地描述了Sparkplug环境的操作方面。该组织还包括了MQTT v5.0的特定设置,特别是关于不同会话设置的设置,例如MQTT 3.1.1中的“清除会话”与v5.0中的“清除开始”。

Sparkplug基础设施对MQTT服务器(在规范文件中,将“MQTT代理”称为“MQTT服务器”)有特定的要求。任何完全符合MQTT v3.1.1的服务器/代理都将符合Sparkplug基础设施的要求。

然而,并不是MQTT规范的所有功能都是必需的。

基本要求功能包括:

  • 用于数据的QoS 0(最多一次)
  • 用于状态管理的QoS 1(至少一次)
  • 保留消息支持
  • 状态管理的“遗嘱消息”(LWT)
  • 支持通配符

规范区分了“符合Sparkplug MQTT服务器”和“了解Sparkplug MQTT服务器”。让我们快速看看两者之间的区别。

符合Sparkplug MQTT服务器

符合Sparkplug MQTT服务器必须支持以下功能:

  • 在QoS 0上发布和订阅
  • 在QoS 1上发布和订阅
  • 遗嘱消息的所有方面,包括使用保留标志和QoS 1
  • 保留标志的所有方面

了解Sparkplug MQTT服务器

而了解Sparkplug MQTT服务器包括了符合Sparkplug MQTT服务器的所有方面,并且必须具备以下额外的能力:

  • 在MQTT服务器传递NBIRTH消息时,存储NBIRTH消息
  • 将NBIRTH消息提供在以下形式的主题上:

$sparkplug/certificates/{namespace}/{group_id}/NBIRTH/{edge_node_id}
假设group_id=GROUP1和edge_node_id=EON1,则必须在主题上提供NBIRTH消息:$sparkplug/certificates/spBv1.0/GROUP1/NBIRTH/EON1

  • 将NBIRTH消息提供在以下形式的主题上:

$sparkplug/certificates/{namespace}/{group_id}/NBIRTH/{edge_node_id}
并将MQTT保留标志设置为true

  • 将DBIRTH消息提供在以下形式的主题上:

$sparkplug/certificates/namespace/group_id/DBIRTH/edge_node_id/device_id
假设group_id=GROUP1,edge_node_id=EON1和device_id=DEVICE1,则必须在主题上提供DBIRTH消息:$sparkplug/certificates/spBv1.0/GROUP1/DBIRTH/EON1/DEVICE1

  • 将DBIRTH消息提供在以下形式的主题上:

$sparkplug/certificates/{namespace}/{group_id}/DBIRTH/{edge_node_id}/{device_id}
并将MQTT保留标志设置为true

此外,了解Sparkplug MQTT服务器还可以替换NDEATH消息的时间戳。如果这样做,它必须将时间戳设置为UTC时间,以尝试将NDEATH传递给订阅客户端的时间。

因此,了解Sparkplug MQTT服务器扩展了Sparkplug的状态管理方法。简而言之,出生和死亡证书现在被存储为保留消息,并提供了新引入的主题结构$sparkplug/certificates/#。

更新NDEATH消息的时间戳的这一可选功能是这个版本的亮点。这些时间戳由于“遗嘱功能”而存储在代理中。遗嘱消息包含在MQTT连接尝试中,并且将包含无条件客户端断开连接的时间戳,实际上是未知的。这个(可选的)时间戳更新LWT消息发布解决了这个问题。

相对于2.2版本,Sparkplug规范版本3.0更新了什么?-MQTT中文站

通过Sparkplug®兼容性计划让终端用户知道您已经准备好了

Sparkplug兼容性计划允许软件和硬件供应商证明其产品与Eclipse Sparkplug和基于MQTT的物联网基础设施兼容,并为之获得认证。

获得认证的供应商使集成商和终端用户能够轻松地采购与Sparkplug规范兼容的设备和软件产品。该计划确保其解决方案能够与工业物联网中最常见的设备和网络无缝集成。

要获得认证,供应商的产品必须通过多个开源测试,以确认其符合Sparkplug技术兼容性工具包(TCK)的标准。如果产品通过了兼容性测试,Sparkplug工作组将将其添加到其官方的兼容产品列表中(可以在其网站上找到)。一旦获得许可,供应商可以使用Sparkplug兼容的标志向外界宣传其兼容性。

https://sparkplug.eclipse.org/compatibility/get-listed/

以下是您需要了解有关TCK的信息…

Sparkplug技术兼容性工具包(TCK)

适当的Sparkplug实施需要完全兼容以下组件:

  • 网络边缘节点/设备,
  • 主要应用程序,当然还有
  • MQTT代理。

Sparkplug技术兼容性工具包(TCK)提供了指南,验证所有待认证的组件是否符合Sparkplug规范。

TCK是一个Web应用程序,包括一个带有HiveMQ扩展和Web界面的HiveMQ代理。Web界面提供了对兼容性测试的访问。

相对于2.2版本,Sparkplug规范版本3.0更新了什么?-MQTT中文站

TCK可以在Eclipse Sparkplug存储库中找到。

要使用JDK 11构建Sparkplug TCK HiveMQ扩展(JDK 17不起作用),请从GitHub中的“sparkplug/tck”进行检出并运行./gradlew。您可以在项目文件夹的build/hivemq-extension中找到扩展工件。

您必须向HiveMQ代理添加WebSocket监听器,并将扩展包含在HiveMQ的扩展文件夹中。启动或重新启动HiveMQ后,扩展即可使用。

如果您想要在自己的IDE中直接运行或调试HiveMQ扩展,请使用./gradlew runHivemqWithExtension。在此Gradle目标中,HiveMQ Community Edition将自动下载并根据Gradle构建文件中的任务完全配置为TCK扩展。

如上所述,基于Nuxt.js(Vue.js)的Web控制台控制TCK。确保您的计算机上有最新版本的yarn和node.js。Mac用户应该查找brew install yarn和brew install node。如果出现错误消息:“env:node:No such file or directory”,这意味着未安装node。在这种情况下,您可以使用yarn install和yarn dev(有关更多详细信息,请参阅webconsole readme)来安装和启动Web控制台。

TCK Web控制台可以通过浏览器中的http://localhost:3000访问:

您可以为主机应用程序、边缘节点和MQTT代理选择Sparkplug符合性配置文件。

主机应用程序配置文件包含用于测试以下内容的测试:

  • 会话建立
  • 会话终止
  • 发送命令
  • 边缘会话终止
  • 消息排序和
  • 多个MQTT服务器(代理)。

边缘节点测试包括

  • 会话建立
  • 会话终止
  • 发送数据、发送复杂数据
  • 接收命令
  • 主机和多个MQTT服务器(代理)。

使用代理配置可以测试MQTT代理是否符合Sparkplug规范并具有了解Sparkplug的功能。

结论

尽管没有太多新规定,但新规范已经整理了许多主题,并更严格和全面地阐述了它们。然而,真正的收获主要在于证书产品或甚至检查产品的Sparkplug兼容性的可能性。这不仅对制造商有增值,也对终端用户有增值。

打赏赞(1)微海报分享
mqtt 兼容性 时间戳

使用 MQTT Sparkplug 构建强大的工业物联网系统

什么是MQTT Sparkplug?

猜你喜欢

改善基础设施:HiveMQ如何推动智能城市发展

改善基础设施:HiveMQ如何推动智能城市发展

08/07
2024
为什么企业选择全托管HiveMQ云进行MQTT部署

为什么企业选择全托管HiveMQ云进行MQTT部署

07/01
2024
MQTT 赋能工业 PLC 数据采集与应用

MQTT 赋能工业 PLC 数据采集与应用

06/30
2024

回复

抢沙发咯
  • 解决方案
    • 智能家居
    • 汽车与出行
    • 工业制造
    • 能源电力
    • 石油石化
    • 交通物流
    • 零售
  • 学习
    • MQTT 规范
    • MQTT 教程
    • MQTT 软件
    • MQTT 客户端库
    • MQTT 服务器
    • 工具和应用程序
  • 关于我们
    • 了解创科慧仁
    • 加入创科慧仁
    • 投资者关系
    • 新闻动态
    • 合作伙伴
    • 联系我们
  • 友情链接
    • Modbus中文网
    • 跳动符号官网
    • 物联网世界
    • RFID世界网
    • 深圳物联网协会
    • isoftstone软通动力
    • 中国发展战略学研究会
    • B.P商业伙伴
  • 在线客服
  • 全国客户服务热线
    4006909885
  • 官方公众号
  • 联系邮箱
    contact@mqtt.cn
Copyright © 2025 MQTT中文站. All rights reserved.Designed by nicetheme. 京ICP备20029519号
在线客服

微信咨询

微信咨询

4006909885

服务热线 7*24小时

电话咨询
  • 首页
  • MQTT 学习
    • MQTT 入门
    • MQTT 进阶
    • MQTT 编程
    • MQTT 实例
    • MQTT 要点
    • MQTT5 要点
    • MQTT 工具
    • MQTT 客户端库
    • MQTT 服务器
    • Zigbee2MQTT
    • Sparkplug
    • Home Assistant
    • Node-RED
  • MQTT 规范
    • MQTT 5 规范
    • MQTT 3.1.1 规范
    • MQTT 3.1 规范
    • MQTT-SN v1.2规范
    • Sparkplug® v3.0.0规范
  • 产品中心
  • 解决方案
    • 环境监测
    • 工业制造
    • 智慧水利
    • 水利管网
    • 积水监测
    • 综合管廊
    • 档案库房
    • 交通物流
    • 智慧城市
    • 智慧农业
    • 智慧养殖
    • 能源电力
    • 石油石化
    • 智能家居
    • 物联网
    • 汽车与出行
  • 使用文档
  • MQTT 云平台
  • 登录
  • 注册
 

正在加载评论...
 

您必须登录才能发表评论。

    string(5) "2.0.0"