Salt softener with ESPhome

Hi everyone, I followed this tutorial to create a sensor and I am using same devices with home assistant installation. I was able to connect and the ESP8266 is online, but I am getting the follwing error:
17:08:00][D][ultrasonic.sensor:036]: ‘Saltlevel in percent’ - Distance measurement timed out!
[17:08:00][D][sensor:126]: ‘Saltlevel in percent’: Sending state -nan % with 2 decimals of accuracy
[17:08:01][D][ultrasonic.sensor:036]: ‘Saltlevel in cm’ - Distance measurement timed out!
[17:08:01][D][sensor:126]: ‘Saltlevel in cm’: Sending state -nan cm with 2 decimals of accuracy

Thank you in advance for the help.

Detailes logs:

INFO Reading configuration /config/esphome/salt_level_sensor.yaml…
WARNING ‘salt_level_sensor’: Using the ‘_’ (underscore) character in the hostname is discouraged as it can cause problems with some DHCP and local name services. For more information, see Frequently Asked Questions — ESPHome
INFO Detected timezone ‘Europe/Paris’
INFO Starting log output from salt_level_sensor.local using esphome API
INFO Successfully connected to salt_level_sensor.local
[17:01:51][I][app:102]: ESPHome version 2022.8.1 compiled on Sep 2 2022, 16:38:50
[17:01:52][C][wifi:491]: WiFi:
[17:01:52][C][wifi:353]: Local MAC: :9F:6D:::
[17:01:52][C][wifi:354]: SSID: ‘IoT’[redacted]
[17:01:52][C][wifi:355]: IP Address: 192.168.20.145
[17:01:52][C][wifi:356]: BSSID: D2:21:F9:9C:84:F9[redacted]
[17:01:52][C][wifi:358]: Hostname: ‘salt_level_sensor’
[17:01:52][C][wifi:360]: Signal strength: -63 dB ▂▄▆█
[17:01:52][C][wifi:364]: Channel: 1
[17:01:52][C][wifi:365]: Subnet: 255.255.255.0
[17:01:52][C][wifi:366]: Gateway: 192.168.20.1
[17:01:52][C][wifi:367]: DNS1: 8.8.8.8
[17:01:52][C][wifi:368]: DNS2: 8.8.8.8
[17:01:52][C][logger:275]: Logger:
[17:01:52][C][logger:276]: Level: DEBUG
[17:01:52][C][logger:277]: Log Baud Rate: 115200
[17:01:52][C][logger:278]: Hardware UART: UART0
[17:01:52][C][uptime.sensor:031]: Uptime Sensor ‘salt_level_sensor Uptime’
[17:01:52][C][uptime.sensor:031]: State Class: ‘total_increasing’
[17:01:52][C][uptime.sensor:031]: Unit of Measurement: ‘s’
[17:01:52][C][uptime.sensor:031]: Accuracy Decimals: 0
[17:01:52][C][uptime.sensor:031]: Icon: ‘mdi:timer-outline’
[17:01:52][C][homeassistant.time:010]: Home Assistant Time:
[17:01:52][C][homeassistant.time:011]: Timezone: ‘CET-1CEST,M3.5.0,M10.5.0/3’
[17:01:52][C][version.text_sensor:021]: Version Text Sensor ‘salt_level_sensor ESPHome Version’
[17:01:52][C][version.text_sensor:021]: Icon: ‘mdi:new-box’
[17:01:52][C][restart:022]: Restart Switch ‘salt_level_sensor Restart’
[17:01:52][C][restart:022]: Icon: ‘mdi:restart’
[17:01:52][C][ultrasonic.sensor:045]: Ultrasonic Sensor ‘Saltlevel in percent’
[17:01:52][C][ultrasonic.sensor:045]: State Class: ‘measurement’
[17:01:52][C][ultrasonic.sensor:045]: Unit of Measurement: ‘%’
[17:01:52][C][ultrasonic.sensor:045]: Accuracy Decimals: 2
[17:01:52][C][ultrasonic.sensor:045]: Icon: ‘mdi:arrow-expand-vertical’
[17:01:52][C][ultrasonic.sensor:046]: Echo Pin: GPIO4
[17:01:52][C][ultrasonic.sensor:047]: Trigger Pin: GPIO5
[17:01:52][C][ultrasonic.sensor:048]: Pulse time: 10 µs
[17:01:52][C][ultrasonic.sensor:049]: Timeout: 11661 µs
[17:01:52][C][ultrasonic.sensor:050]: Update Interval: 10.0s
[17:01:52][C][ultrasonic.sensor:045]: Ultrasonic Sensor ‘Saltlevel in cm’
[17:01:52][C][ultrasonic.sensor:045]: State Class: ‘measurement’
[17:01:52][C][ultrasonic.sensor:045]: Unit of Measurement: ‘cm’
[17:01:52][C][ultrasonic.sensor:045]: Accuracy Decimals: 2
[17:01:52][C][ultrasonic.sensor:045]: Icon: ‘mdi:arrow-expand-vertical’
[17:01:52][C][ultrasonic.sensor:046]: Echo Pin: GPIO4
[17:01:52][C][ultrasonic.sensor:047]: Trigger Pin: GPIO5
[17:01:52][C][ultrasonic.sensor:048]: Pulse time: 10 µs
[17:01:52][C][ultrasonic.sensor:049]: Timeout: 11661 µs
[17:01:52][C][ultrasonic.sensor:050]: Update Interval: 10.0s
[17:01:52][C][web_server:125]: Web Server:
[17:01:52][C][web_server:126]: Address: salt_level_sensor.local:80
[17:01:52][C][mdns:094]: mDNS:
[17:01:52][C][mdns:095]: Hostname: salt_level_sensor
[17:01:52][C][ota:085]: Over-The-Air Updates:
[17:01:52][C][ota:086]: Address: salt_level_sensor.local:8266
[17:01:52][C][api:138]: API Server:
[17:01:52][C][api:139]: Address: salt_level_sensor.local:6053
[17:01:52][C][api:143]: Using noise encryption: NO
[17:01:52][C][wifi_info:009]: WifiInfo IPAddress ‘salt_level_sensor IP’
[17:01:52][C][wifi_info:011]: WifiInfo SSID ‘salt_level_sensor SSID’
[17:01:52][C][wifi_info:012]: WifiInfo BSSID ‘salt_level_sensor BSSID’
[17:01:52][C][wifi_signal.sensor:009]: WiFi Signal ‘salt_level_sensor WiFi Signal’
[17:01:52][C][wifi_signal.sensor:009]: Device Class: ‘signal_strength’
[17:01:52][C][wifi_signal.sensor:009]: State Class: ‘measurement’
[17:01:52][C][wifi_signal.sensor:009]: Unit of Measurement: ‘dBm’
[17:01:52][C][wifi_signal.sensor:009]: Accuracy Decimals: 0
[17:02:00][D][ultrasonic.sensor:036]: ‘Saltlevel in percent’ - Distance measurement timed out!
[17:02:00][D][sensor:126]: ‘Saltlevel in percent’: Sending state -nan % with 2 decimals of accuracy
[17:02:01][D][ultrasonic.sensor:036]: ‘Saltlevel in cm’ - Distance measurement timed out!
[17:02:01][D][sensor:126]: ‘Saltlevel in cm’: Sending state -nan cm with 2 decimals of accuracy

HERE is the code I am using:

---
  esphome:
    name: salt_level_sensor
    platform: ESP8266
    board: d1_mini
  
  # WiFi connection, replace these with values for your WiFi.
  wifi:
    ssid: IoT
    password: hidden
  
  # Enable logging
  logger:
  
  # Enable Home Assistant API
  api:
  
  # Enable over-the-air updates.
  ota:
  
  # Enable Web server.
  web_server:
    port: 80
  # Sync time with Home Assistant.
  time:
    - platform: homeassistant
      id: homeassistant_time
  
  # Text sensors with general information.
  text_sensor:
    # Expose ESPHome version as sensor.
    - platform: version
      name: salt_level_sensor ESPHome Version
    # Expose WiFi information as sensors.
    - platform: wifi_info
      ip_address:
        name: salt_level_sensor IP
      ssid:
        name: salt_level_sensor SSID
      bssid:
        name: salt_level_sensor BSSID
  
  # Exposed switches.
  # Switch to restart the salt_level_sensor.   
  switch:
    - platform: restart
      name: "salt_level_sensor Restart"
  
  sensor:
    # Uptime sensor.
    - platform: uptime
      name: salt_level_sensor Uptime
  
    # WiFi Signal sensor.
    - platform: wifi_signal
      name: salt_level_sensor WiFi Signal
      update_interval: 60s
  
    - platform: ultrasonic
      trigger_pin: D1
      echo_pin: D2
      name: "Saltlevel in percent"
      update_interval: 10s
      filters:
      # Calculates in %
      # Replace 0.42 by the height of your container. From the sensor to the bottom.
      # I used this website to know how I should multiply my values :https://www.skillsyouneed.com/num/percent-change.html 
      - lambda: return (0.42-x)*(100/0.42);
      unit_of_measurement: "%"
      
    - platform: ultrasonic
      trigger_pin: D1
      echo_pin: D2
      name: "Saltlevel in cm"
      update_interval: 10s
      filters:
      # Replace the 0.42 by the height of your container. From the sensor to the bottom.
      # I multiplied by 100 in order to get CM since the sensor works in meters
      - lambda: return (0.42-x)*100;
      unit_of_measurement: "cm"

Solved:
Faulty pin… I had to solder the board so it came back online!

1 Like