Water Softener Salt Level with EZsalt

So I picked up the EZSalt 3 based on this post. :slight_smile: The problem is, when it got here, I couldn’t get my mac or my son’s windows computer to see the esp board in order to flash it. As it turns out, the issue was most likely the USB cable the sensor came with doesn’t support data, but during my frustration, I found a post from maybe a year ago where the guy who created the EZSalt sensor was hyping it up and said “you don’t have to use our software - it runs tasmota, so you can point it to whatever MQTT broker you want”…

I had no idea what tasmota or MQTT was, but I remember seeing MQTT in my HA Yellow somewhere - turns out, I did need their app in order to connect the sensor to my wifi, but once I did that, I was able to log into the local web server on the device (part of tasmota) and point it to the MQTT broker I setup on HA. From there, I was able to see the sensor in HA BUT there was a problem.

The sensor sends distance data in mm but states its in cm - that means the resulting distance is 10x bigger than it should be. Also, because I’m not using their app, the data is just distance. For me to turn it into a meaningful dashboard item, I needed to convert the distance into the proper units and into a meaningful number (amount of salt left, instead of distance from sensor to salt.

I created a helper sensor to address both - and now have a dashboard that looks very similar to yours.

Hey, this is the founder of EZsalt here. Love finding this thread! We are eager to build a home assistant integration and we’ve actually been in contact with Wes, the OP. I’d also love to know ideas of how we can make this more home automation friendly for those of you who want it. The new EZsalt sensor 3.0 does not support data transfer from the USB cable so yes like you pointed out, you would need to configure it through the access point.

HA is a priority for us but it is a foreign thing! Would love the help from this community to make our product better integrated.

Hey there! Any ETA/update on an HA integration? That would be awesome. Thanks!

Edit: For the second part of your post, really just having “remaining percent” available would be huge since I can automate notifications and things off of that.

You can do that today using EspHome. Look at the config file that I posted. I do this.

How did you find the address for the access point? I found a web address www.ezsaltgo.com that logs in through there website but not the local access address.

Never mind I found it.

I have reached the point where I have set up mosquito and was wondering which fields did you change to redirect it. I have other devices I set up for tasmota through the mosquito broker but it has been ages and I don’t remember what was required. Is it just the host and port? Also, I am assuming you set up a derivative helper but do you have the specifics of how you set them up?

I just got my EZsalt v3.0 in the mail today. Just to clarify, if I plan to flash the ESPHome code, I do not need to go through the setup instructions in the EZsalt manual, correct? That will all be handled by ESPHome?

If you’re using EspHome then the only setup instructions that are relevant are about how to physically attach it to your salt container.

Thank you. I’m sure I’m missing something simple as I’ve flashed several ESP boards before, but for some reason I cannot get the esp web installer to pick up the EZSalt device. I verified I’m using a usb data cord as I plugged in another esp32 board and it recognized it right away. I have the yaml code ready to flash, I just can’t get the computer to pick up the EZsalt device when plugged into USB to flash the device. Any suggestions?

Finally getting back to this. In trying to compile the below yaml, I get the error “‘esphome’ section missing from configuration. Please make sure your configuration has an ‘esphome:’ line in it.” What is the missing relevant section? Soooo close. TIA

esp8266:
  name: "ezsalt"
  friendly_name: "ezsalt"
  board: d1_mini

wifi:
  ssid: "<ssid>"
  password: "<ssidpwd>"

logger:
  baud_rate: 0

api:

ota:

web_server:
  port: 80

i2c:
  sda: D6
  scl: D7
  scan: True

button:
  - platform: restart
    name: Restart

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "IP Address"
      id: ip_address
      icon: mdi:ip-network
    ssid:
      name: SSID
      id: ssid
      icon: mdi:wifi

sensor:
  - platform: uptime
    name: Uptime
  - platform: wifi_signal
    name: "WiFi Signal"
    id: wifi_signal_strength
    update_interval: 60s
    icon: mdi:wifi-strength-1
  - platform: vl53l0x
    name: "Salt Level"
    id: salt_level
    update_interval: 10s
    address: 0x29
    unit_of_measurement: "Inches"
    filters:
      - multiply: 39.37  # convert from mm to inches
      - offset: -35      # height of salt container
      - multiply: -1     # back to a positive value

add this:

esphome:
  name: $name
  friendly_name: $friendly_name

Is that in addition to this section? If so, what about duplicate name and friendly_name? TIA

esp8266:
  name: "ezsalt"
  friendly_name: "ezsalt"
  board: d1_mini

Worked it out to this. But now it’s complaining about missing “platform:” At least one platform must be specified for ‘ota’; add ‘platform: esphome’ for original OTA functionality Might there be a complete and working YAML file you would be kind enough to post? TIA

esphome:
  name: softener1
  friendly_name: "ezsalt"

esp8266:
  board: d1_mini

wifi:
  ssid: "ssid"
  password: "password"

captive_portal:

logger:

api:

ota:


i2c:
  sda: D6
  scl: D7
  scan: True

sensor:
  - platform: vl53l0x
    name: softener1_salt_level
    update_interval: 10s
    address: 0x29
    unit_of_measurement: "Inches"
    filters:
      - multiply: 39.37  # convert from mm to inches
      - offset: -35      # height of salt container
      - multiply: -1     # back to a positive value

I was getting the same error message as you and added this to the OTA section and it compiled the yaml file:

ota:

  • platform: esphome
    password: “”

However, I still cannot get my computer to recognize the eztank when I connect it via USB so I’m unable to flash the yaml code. I did connect the eztank to my wifi using their app so I have a web address and then tried to flash the yaml over the air, but then I got this error message:

[WinError 10061] No connection could be made because the target machine actively refused it
ERROR Connection failed.

I downloaded the windows driver for the ch340 chip, but the board is not being picked up when I plug it in. Any suggestions?

@dsackr Would you be so kind as to share your configuration details? TIA!

I thought I read somewhere that the cable that comes with the EZSalt is power only and doesn’t pass thru data. Don’t know if this is true or not. So maybe try another cable and let us know?

I read that also, so I used two other cables that work when I plug in an ESP32. I downloaded the ch340 drivers since I believe the EZsalt uses an ESP8266 not an ESP32, but it’s still not picking up the board when I plug it in.

Cable is power only.

This thread is frustrating because its like 80% people like me, who cannot get it to flash. Someone must have figured it out! I assume i need to hold down the button but tried it both ways. Installed every driver i can find. Tried plugging directly into my HA server too. I’ve flashed other devices without issue, as have the others above.

Please, if you have this working, tell us what you did!