找回密码
 立即注册
查看: 427|回复: 8

[求助] 2025ESP出错TDS

[复制链接]

74

主题

544

回帖

3559

积分

论坛元老

积分
3559
金钱
2941
HASS币
0
发表于 2025-2-20 08:15:49 | 显示全部楼层 |阅读模式
本帖最后由 lrving163 于 2025-3-17 21:34 编辑

更新最新版后,改了几个规则,TDS出错。有大佬帮看下点修改?感谢。

#sensor:
  - platform: custom
    lambda: |-
      auto tds_sensor = new TDSSensorComponent(id(uart_bus1));
      App.register_component(tds_sensor);
      return {tds_sensor->tds1,tds_sensor->temperature1,tds_sensor->tds2,tds_sensor->temperature2};
    sensors:
      - name: "tds1"
        id: "tds1"
        unit_of_measurement: ppm
        accuracy_decimals: 1
      - name: "temperature1"
        id: "temperature1"
        unit_of_measurement: °C
        accuracy_decimals: 2
      - name: "tds2"
        id: "tds2"
        unit_of_measurement: ppm
        accuracy_decimals: 1
      - name: "temperature2"
        id: "temperature2"
        unit_of_measurement: °C
        accuracy_decimals: 2


回复

使用道具 举报

1

主题

37

回帖

513

积分

高级会员

积分
513
金钱
475
HASS币
0
发表于 2025-2-20 09:03:04 | 显示全部楼层
DS-R1改的,不知道对不对:
sensor:
  - platform: custom
    lambda: |-
      auto tds_sensor = new TDSSensorComponent(id(uart_bus1));
      App.register_component(tds_sensor);
      return std::vector<sensor::Sensor*>{
        tds_sensor->tds1,
        tds_sensor->temperature1,
        tds_sensor->tds2,
        tds_sensor->temperature2
      };
    sensors:
      tds1:
        name: "TDS Sensor 1"
        unit_of_measurement: "ppm"
        accuracy_decimals: 1
      temperature1:
        name: "Temperature 1"
        unit_of_measurement: "°C"
        accuracy_decimals: 2
      tds2:
        name: "TDS Sensor 2"
        unit_of_measurement: "ppm"
        accuracy_decimals: 1
      temperature2:
        name: "Temperature 2"
        unit_of_measurement: "°C"
        accuracy_decimals: 2

修改说明:

使用std::vector<sensor::Sensor*>明确返回类型,避免类型推导错误
采用键值对形式声明传感器配置,符合新版配置规范
移除冗余的id声明(自定义组件已自带唯一标识)
建议为每个传感器添加更详细的name描述
字符串类型的单位声明需使用双引号包裹
若问题仍未解决,请检查:

UART总线配置是否正确(波特率/引脚定义)
自定义组件TDSSensorComponent是否适配最新版ESPHome API
确保在全局配置中正确定义了uart_bus1:
uart:
  - id: uart_bus1
    tx_pin: GPIOXX
    rx_pin: GPIOXX
    baud_rate: XXXX
回复

使用道具 举报

15

主题

451

回帖

3151

积分

论坛元老

积分
3151
金钱
2685
HASS币
0
发表于 2025-2-20 11:17:49 | 显示全部楼层
你這個代碼跟我的一模一樣  
難道也是用GhatGPT寫的
回复

使用道具 举报

74

主题

544

回帖

3559

积分

论坛元老

积分
3559
金钱
2941
HASS币
0
 楼主| 发表于 2025-2-23 17:56:14 | 显示全部楼层
落楓 发表于 2025-2-20 09:03
DS-R1改的,不知道对不对:

修改说明:

感谢。。。。。
回复

使用道具 举报

74

主题

544

回帖

3559

积分

论坛元老

积分
3559
金钱
2941
HASS币
0
 楼主| 发表于 2025-2-23 18:18:42 | 显示全部楼层
本帖最后由 lrving163 于 2025-2-23 18:22 编辑
落楓 发表于 2025-2-20 09:03
DS-R1改的,不知道对不对:

修改说明:

好像还是出错。INFO ESPHome 2025.2.0INFO Reading configuration /config/esphome/water1.yaml...Failed configsensor.custom: [source /config/esphome/water1.yaml:82]    The "custom" component has been removed. Consider conversion to an external component.  https://esphome.io/guides/contri ... -custom-components.  platform: custom  lambda: |-    auto tds_sensor = new TDSSensorComponent(id(uart_bus1));    App.register_component(tds_sensor);    return std::vector<sensor::Sensor*>{      tds_sensor->tds1,      tds_sensor->temperature1,      tds_sensor->tds2,      tds_sensor->temperature2    };  sensors:
回复

使用道具 举报

0

主题

108

回帖

1291

积分

论坛积极会员

积分
1291
金钱
1183
HASS币
0
发表于 2025-2-24 10:09:00 | 显示全部楼层
好像是自定义组件不再支持了,我的也无法更新了
回复

使用道具 举报

74

主题

544

回帖

3559

积分

论坛元老

积分
3559
金钱
2941
HASS币
0
 楼主| 发表于 2025-3-4 19:49:38 | 显示全部楼层
rm6220534 发表于 2025-2-24 10:09
好像是自定义组件不再支持了,我的也无法更新了

找到解决方法了吗?
回复

使用道具 举报

25

主题

232

回帖

2487

积分

金牌会员

积分
2487
金钱
2230
HASS币
0
发表于 2025-3-6 20:11:38 | 显示全部楼层
是自定义被删了,不支持了。我的也是这样,看文档是使用外部组件,还没搞清楚呢
回复

使用道具 举报

74

主题

544

回帖

3559

积分

论坛元老

积分
3559
金钱
2941
HASS币
0
 楼主| 发表于 2025-3-6 20:25:04 | 显示全部楼层
bhc1365 发表于 2025-3-6 20:11
是自定义被删了,不支持了。我的也是这样,看文档是使用外部组件,还没搞清楚呢 ...

官方好像没看到有支持TDS的文档。不知道为什么,真奇怪
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-5-1 09:41 , Processed in 0.708531 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表