面向用户: 实施工程师 / 项目经理 版本: v1.0 编制日期: 2026-03-12 适用范围: 已存在通过 Modbus(或其他协议)采集全量点位的设备,需按 MQTT 主题拆分为多设备类的场景
本手册规范”全量点位设备”经 Modbus 等协议采集全量数据后,按 MQTT 主题拆分为多个设备类采集的配置流程。按本手册操作完成后,读者可以正确配置 MQTT Consumer 输入、创建新设备类属性,并确保拆分前后的属性命名与属性标识一致,便于数据追溯与系统对接。
1 术语与前提
1.1 术语说明
| 术语 | 说明 |
|---|---|
| 全量点位设备 | 原设备,通过 Modbus 或其他协议采集全量数据的设备 |
| 标准化名称 | 按统一规则命名的设备/点位名称,对应数仓字段 |
| 属性标识 | 采集数据匹配用字段,与标准化名称一一对应 |
| MQTT Consumer | Telegraf 中订阅 MQTT 主题并解析为指标的输入插件 |
1.2 前提条件
- 设备已按”标准化名称”完成统一命名
- 全量点位设备的配置中,标准化名称与属性标识已建立并保持一一对应关系
图 1 全量点位设备属性配置示意
2 整体配置流程
拆分配置按以下四步顺序执行。
图 2 MQTT 主题拆分配置四步流程
| 步骤 | 操作目标 | 对应章节 |
|---|---|---|
| 1. 确认拆分目标 | 明确设备类数量与 MQTT 主题 | 3.1 确认拆分目标与主题 |
| 2. 新增 MQTT Consumer | 新增 Telegraf 输入配置 | 3.2 新增 MQTT Consumer 输入配置 |
| 3. 配置新设备类属性 | 属性标识与标准化名称一致 | 3.3 配置新设备类属性 |
| 4. 校验与发布 | 下发配置并验证数据 | 3.4 校验与发布 |
3 操作步骤
3.1 确认拆分目标与主题
-
明确全量点位设备(如
dmRbqn03dV)当前通过 Modbus 采集全量数据。 -
确定拆分出的新设备类数量及各自对应的 MQTT 主题,例如
conn/device/25003/dmRbqn03dV/#或更细粒度主题。 -
记录以下信息,供后续配置使用:
信息项 示例 说明 设备类 ID — 新设备类唯一标识 主题列表 conn/device/25003/dmRbqn03dV/#MQTT 订阅主题 租户变量 ${TENANT_ID}租户标识 模板变量 ${TEMPLATE_NAME}模板名称 设备类型 ${DEVICE_TYPE}设备类型标识 设备标识 — 原设备标识
3.2 新增 MQTT Consumer 输入配置
在对应采集配置中新增一段 [[inputs.mqtt_consumer]],按实际环境填写变量与主题。
配置模板:
[[inputs.mqtt_consumer]]
name_override = "${TEMPLATE_NAME}${DEVICE_TYPE}"
alias = "${TEMPLATE_NAME}@input.mqtt_data"
servers = ["${EMQX_BROKER_SERVER}"]
topics = [
"conn/device/25003/dmRbqn03dV/#"
]
client_id = "{\"userId\":${EMQX_BROKER_USER_ID},\"telegraf\":\"${TENANT_ID}@${TEMPLATE_NAME}${DEVICE_TYPE}@input\"}"
username = "${EMQX_BROKER_USERNAME}"
password = "${EMQX_BROKER_PASSWORD}"
persistent_session = false
data_format = "json"
json_query = "fields"
json_string_fields = ["*"]💡
topics字段为拆分核心配置,按本次拆分的目标主题填写;其余变量通过环境变量注入,通常无需修改。
3.3 配置新设备类属性
- 在平台中为本次拆分出的新设备类创建或选择对应设备类。
- 按属性配置规则设置属性标识并保存。
⚠️ 属性配置核心规则
新设备类的属性标识 = 全量点位设备的标准化名称,必须完全一致,不得改名、翻译或缩写。
图 3 新设备类属性配置示意
3.4 校验与发布
按以下顺序执行校验、下发与验证:
| 子步骤 | 操作 | 检查要点 |
|---|---|---|
| 1. 配置校验 | 检查 TOML 文件 | topics 主题无误;变量名拼写正确;转义字符完整 |
| 2. 下发配置 | 通过**「配置下发」**使新 mqtt_consumer 生效 | 详见 viSCADA 数据对接配置手册 · 2 配置下发 |
| 3. 数据验证 | 查看**「设备历史数据」**或 connector 日志 | 新设备类有数据上报;属性标识与标准化名称一致 |
⚠️ 若数据验证未见新设备类数据上报,优先排查 MQTT 主题匹配、属性标识大小写与标准化名称是否完全一致。
4 常见问题
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
| 新设备类无数据上报 | MQTT 主题未匹配 | 检查 topics 通配符与实际上报主题是否一致 |
| 数据上报但属性值为空 | 属性标识与标准化名称不一致 | 按 3.3 配置新设备类属性 的核心规则核对 |
| 日志报 MQTT 连接失败 | servers 或认证变量未正确注入 | 检查环境变量 ${EMQX_BROKER_SERVER} 等是否生效 |
| 部分主题可接收、部分不可 | client_id 冲突 | 确认同一 client_id 未被多个 Consumer 占用 |