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

如何在Thingsboard CE中通过单个MQTT桥接设备接收多主题遥测?

解决方案:单个MQTT桥接设备接收多传感器主题遥测

核心思路

TB中单个MQTT桥接对应唯一设备(CID不可重复),无需创建第二个桥接设备,只需调整转发规则和TB内的数据路由逻辑,即可实现一个桥接接收两个传感器的遥测数据。

具体实现步骤

1. 调整RUT956的MQTT桥接主题映射

确保本地MQTT代理将两个ESP32的主题转发到TB桥接设备的指定路径,两种可选方式:

  • 方式A(带实体标识的转发):
    将ESP32_1的原始主题(如sensor/esp32_1/data)转发到TB的主题:

    v1/devices/me/telemetry?entityType=device&entityId=esp32_1
    

    ESP32_2的原始主题(如sensor/esp32_2/data)转发到:

    v1/devices/me/telemetry?entityType=device&entityId=esp32_2
    

    此方式下,桥接设备会直接将数据投递到TB中对应的esp32_1和esp32_2设备(需提前创建这两个虚拟设备)。

  • 方式B(数据内带设备标识):
    如果无法修改ESP32代码,可在RUT956的桥接转发时,给每个传感器的遥测数据添加device_id字段(部分MQTT代理支持消息改写),或直接将两个主题都转发到桥接设备的默认遥测主题v1/devices/me/telemetry,确保ESP32发布的遥测数据自带设备区分标识(比如ESP32_1发布{"device": "esp32_1", "temp": 26})。

2. TB内配置数据路由(针对方式B)

  1. 在TB中创建两个虚拟设备esp32_1和esp32_2,无需配置MQTT凭证(数据由桥接设备转发)。
  2. 打开桥接设备关联的规则链,添加脚本节点,编写解析逻辑提取device字段:
    var deviceId = msg.device;
    metadata.entityId = {
      "entityType": "DEVICE",
      "id": deviceId
    };
    return {msg: msg, metadata: metadata, msgType: "POST_TELEMETRY_REQUEST"};
    
  3. 添加实体存在检查节点,验证目标设备是否存在,然后连接到遥测节点完成数据投递。

关键注意事项

  • 桥接设备的CID、用户名密码仅需配置一次,所有传感器的主题都通过该桥接的MQTT连接上传到TB。
  • 确保RUT956的MQTT桥接配置中,转发的主题格式符合TB的MQTT API规范,避免数据丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 19:58:27