找回密码
 立即注册
楼主: heqicheng

[经验分享] 分享一个tds传感器接入ha的项目

  [复制链接]

6

主题

93

回帖

881

积分

高级会员

积分
881
金钱
782
HASS币
0
发表于 2024-5-17 17:29:20 | 显示全部楼层

还在,紫薯布丁
回复

使用道具 举报

2

主题

18

回帖

217

积分

中级会员

积分
217
金钱
197
HASS币
0
发表于 2024-7-27 14:29:03 | 显示全部楼层
大佬求助,我下载了您的代码,我用的esp01s模块,对应的平台代码怎么改需要求助,谢谢我的QQ452288231
回复

使用道具 举报

2

主题

112

回帖

995

积分

高级会员

积分
995
金钱
881
HASS币
0
发表于 2024-8-31 19:03:05 | 显示全部楼层
本帖最后由 lfdsanmu 于 2024-8-31 19:54 编辑

准备做一个试试
回复

使用道具 举报

15

主题

451

回帖

3157

积分

论坛元老

积分
3157
金钱
2691
HASS币
0
发表于 2024-8-31 21:21:36 | 显示全部楼层
本帖最后由 george65 于 2024-8-31 21:24 编辑

我照著用ESP01S做了兩個  
改動的部份是我在switch:那
添加了一條下面的代碼
restore_mode: ALWAYS_ON #启动时始终将开关初始化为 ON。
之前做好剛啟動不知道要手動打開開關  
想說怎麼都沒有數據出現
有了這行代碼  一啟動就有數據了

還有一個改動是把原本的數據更新時間
從1秒 60秒改成9秒 10秒
原本是想改成10秒 10秒的  
但是秒數一樣數據會無法出現

esphome:
  name: tds2-8266
  friendly_name: tds2-8266
  includes:
   - TDSSensor.h

esp8266:
  board: esp01_1m

# Enable logging
logger:
  baud_rate: 0

web_server:


# Enable Home Assistant API
api:
  encryption:
    key: "bko9GlRpSUGyUBZl+USDm1eGKZbtMwOFnKJc+084HSI="

ota:
- platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Tds2-8266"
    password: "12345678"

captive_portal:

uart:
  - id: uart_bus1
    tx_pin: TX
    rx_pin: RX
    baud_rate: 9600
    # debug:
      # direction: BOTH
      # dummy_receiver: true
      # after:
      #   delimiter: "\n"
      # sequence:
      #   - lambda: UARTDebug::log_string(direction, bytes);

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

switch:
  - platform: template
    restore_mode: ALWAYS_ON #启动时始终将开关初始化为 ON。
    name: "TDS Switch"
    id: "tds_switch"
    lambda: return id(tds_switch).state;
    optimistic: true
    # turn_on_action:
      # - uart.write: [0x55, 0x07, 0x05, 0x01, 0x00, 0x00, 0x00, 0x62]
      # - uart.write: [0x55, 0x07, 0x03, 0x01, 0x01, 0x0B, 0xCA, 0x36]
    turn_off_action:
      - uart.write: [0x55, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x62]
    #   - uart.write: [0x55, 0x07, 0x05, 0x02, 0x00, 0x00, 0x00, 0x63]
      # - switch.turn_on: switch1

time:
  - platform: sntp
    id: sntp_time
    on_time:
      - seconds: /9
        then:
          - if:
              condition:
                lambda: |-
                  if (id(tds_switch).state == true) {
                    auto time = id(sntp_time).now();
                    return time.second != 0;
                  }
                  return false;
              then:
                # - if:
                #   condition:
                #     lambda: |-
                #       # auto time = id(sntp_time).now();
                #       # return time.second != 0;
                #       return id(tds_switch).state == true;
                #   then:
                #     - uart.write: [0x55, 0x07, 0x05, 0x01, 0x00, 0x00, 0x00, 0x62]
                #   else:
                #     - uart.write: [0x55, 0x07, 0x05, 0x02, 0x00, 0x00, 0x00, 0x63]
                # - delay: 5s
                - uart.write: [0x55, 0x07, 0x05, 0x01, 0x00, 0x00, 0x00, 0x62]

  - platform: sntp
    on_time:
      - seconds: /10
        then:
          - if:
              condition:
                lambda: |-
                  return id(tds_switch).state == true;
              then:
                - uart.write: [0x55, 0x07, 0x05, 0x02, 0x00, 0x00, 0x00, 0x63]

螢幕擷取畫面 2024-08-31 210225.png 螢幕擷取畫面 2024-08-31 211519.png


用杜邦線接好塞進盒子裡
2024-03-12 00.01.29.jpg
成品圖
2024-03-11 23.58.35.jpg
回复

使用道具 举报

1

主题

60

回帖

759

积分

高级会员

积分
759
金钱
698
HASS币
0
发表于 2024-9-19 16:02:17 | 显示全部楼层
本帖最后由 fkxldn 于 2024-9-25 19:21 编辑

我的模块跟楼主的一样,怎么死活读不到数据呢??
回复

使用道具 举报

3

主题

72

回帖

498

积分

中级会员

积分
498
金钱
423
HASS币
0
发表于 2025-2-25 17:24:26 | 显示全部楼层
升级ESPHome最新版以后,不能引入文件了,有什么办法?
回复

使用道具 举报

0

主题

108

回帖

1291

积分

论坛积极会员

积分
1291
金钱
1183
HASS币
0
发表于 2025-2-26 08:33:03 | 显示全部楼层
feifei006 发表于 2025-2-25 17:24
升级ESPHome最新版以后,不能引入文件了,有什么办法?

一样,升级后之前的都无法升级了,会报错
回复

使用道具 举报

15

主题

451

回帖

3157

积分

论坛元老

积分
3157
金钱
2691
HASS币
0
发表于 2025-2-27 19:20:30 | 显示全部楼层
現在沒辦法更新了  還好還能繼續使用  
回复

使用道具 举报

0

主题

25

回帖

252

积分

中级会员

积分
252
金钱
227
HASS币
0
发表于 2025-3-11 17:03:38 | 显示全部楼层
rm6220534 发表于 2025-2-26 08:33
一样,升级后之前的都无法升级了,会报错

通过docker安装历史版本的esphome,我就是通过这样的方式实现的。
回复

使用道具 举报

0

主题

25

回帖

252

积分

中级会员

积分
252
金钱
227
HASS币
0
发表于 2025-3-11 17:05:25 | 显示全部楼层
george65 发表于 2024-4-2 01:24
TDS2數字出來慢的問題我也遇過
因為TDS1是每秒刷新1次 TDS2是60秒刷新1次  
我把TDS1改成3  TDS2改成5   ...

大佬,方便分享一下改刷新时间的代码吗,是在yaml文件改呀,还是在.h文件修改
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-5-3 21:45 , Processed in 0.348156 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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