You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ThingsBoard IoT Gateway中从MQTT主题提取遥测Key?

解决ThingsBoard IoT Gateway从MQTT主题提取遥测Key的问题

问题背景

电气测量设备通过MQTT发布数据,主题格式为measuring/[site]/[param],Payload是纯文本数值(如230.0)。使用ThingsBoard IoT Gateway 3.7.0对接平台3.9.1时,配置了主题过滤器measuring/site1/+,Payload类型设为Bytes,值表达式[:],但无法从主题提取param作为遥测Key,直接写正则会导致Key显示为正则字符串本身。

正确配置方法

ThingsBoard IoT Gateway的Data Mapping字段不支持直接用正则捕获组提取主题内容,需使用内置的主题占位符或表达式语言:

方法1:使用主题层级占位符

主题measuring/site1/L1-Voltage按/分割后有3个层级(索引从0开始):

  • 层级0:measuring
  • 层级1:site1
  • 层级2:L1-Voltage

在Data Mapping的Key字段中填写:

${topicPart(2)}

该占位符会直接提取主题第3个层级的内容作为遥测Key。

方法2:使用表达式语言解析主题

如果需要更灵活的处理,可使用表达式语言分割主题字符串:
在Key字段中填写:

#{split(topic, '/')[2]}

split(topic, '/')将主题按/拆分为数组,[2]取数组第3个元素(即param部分)。

验证配置

  1. 保存Gateway配置并重启服务
  2. 发送测试MQTT消息(如主题measuring/site1/Freq,Payload50.0)
  3. 在ThingsBoard平台对应设备的遥测数据中,即可看到Key为Freq,值为50.0的条目

内容的提问来源于stack exchange,提问作者ZioTibia81

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:23:26