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

TTN V3对接Telegraf时Dragino LSE01土壤温湿度字段无法写入Influx

问题根因
  • 对比提供的MQTT原始报文和InfluxDB已入库字段可以发现:所有成功入库的字段均为JSON原生数值类型(无引号包裹),缺失的temp_SOIL、water_SOIL、temp_DS18B20三个字段均为字符串类型(双引号包裹的数值,如"19.20")。
  • 当前Telegraf的mqtt_consumer配置使用默认JSON解析规则,未指定采集字符串类型字段,也未开启字符串转数值的配置,因此这三个字符串格式的字段被直接丢弃,未写入InfluxDB。
  • 同品牌LHT65传感器能正常采集所有字段,是因为其TTN端解码器输出的温湿度字段为原生数值类型,不存在字符串类型问题。
  • 额外隐患:当前配置的client_id = "telegraf"如果和其他MQTT消费端重复,会导致MQTT连接互踢、随机丢消息,建议一并修改。
修复方案

二选一即可,优先选第一种改Telegraf配置,操作最快。

方案1:修改Telegraf配置(推荐)

在原有mqtt_consumer配置块中新增字符串字段采集、字符串数值自动转换配置,同时修改client_id为唯一值,参考配置如下:

## 湿度传感器 Dragino LSE01-8
[[inputs.mqtt_consumer]]
  name_override = "TTN-LSE01"
  servers = ["tcp://eu1.cloud.thethings.network:1883"]
  qos = 0
  connection_timeout = "30s"
  topics = [ "v3/lse01-8@ttn/devices/+/up" ]
  # 改为独立client_id,避免和其他消费端互踢
  client_id = "telegraf-lse01"
  username = "lse01-8@ttn"
  password = "NNSXS.LLSNSE67AP..................P67Q.Q...........HPG............KJA..........."   
  data_format = "json"
  # 指定需要采集的字符串字段
  json_string_fields = [
    "uplink_message_decoded_payload_temp_SOIL",
    "uplink_message_decoded_payload_water_SOIL",
    "uplink_message_decoded_payload_temp_DS18B20"
  ]
  # 自动将字符串格式的数值转为数值类型存储
  json_numeric_strings = true

修改完成后重启Telegraf服务,等待新的设备上行报文即可。

方案2:修改TTN端Payload解码器

进入TTN控制台对应应用的Payload Formatter配置页,找到LSE01的解码逻辑,将temp_SOIL、water_SOIL、temp_DS18B20三个字段的返回值从字符串改为数值类型,例如将原本类似temp_SOIL: tempVal.toFixed(2)的逻辑改为temp_SOIL: Number(tempVal.toFixed(2)),确保解码器输出的JSON中这三个字段是无引号的原生数值,和LHT65的输出格式保持一致即可,无需修改Telegraf配置。

验证与排障
  • 修改完成后等待2-3个设备上报周期(LSE01默认上报间隔为5-10分钟),再到InfluxDB查询对应字段是否存在。
  • 如果仍无法查询到字段,查看Telegraf运行日志:
    • 若存在字段类型冲突报错,说明之前该measurement下已有同名字段的其他类型数据,可修改name_override为新的测量名(如TTN-LSE01-v2)规避,或清理旧的冲突数据。
    • 若存在MQTT频繁断连报错,检查client_id是否唯一,MQTT账号密码、topic配置是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 21:18:21