Swimming Pool Chemical Dispenser

No. I didn’t use ESP Home and calibration was one of the reasons. I like ESP Home and use it for most of my devices, but I kept it the probes on Tasmota and it works great.

You may need to replace the “-2” if your pH probe is not the second sensor and then also do the low and high calibration

1 Like

Thanks. Did you follow good instructions online? I’m having trouble with Tasmota setup, and haven’t found a good walkthrough yet.

Hi @smurry this is an inspiring project! In fact, I’m set to build a similar one based on ESPHome, and the Atlas Scientific EZO circuits and probes. One question I’d currently have, during design, is how to make the SMA connector(s) pass through a cable gland, which will remain watertight. In your picture, I see both probes go through the same cable gland. Which size is that cable gland, and how did you ensure proper seal given the probe cables are so thin? Thanks!

I’m working on a similar project, using Atlas Scientific equipment and ESPHome. For the pump, I can get all features working via the ezo_pmp ESP component except one. So all sensors, actions etc are flawless. Changing the I2C address fails however. This is an issue if you want to run multiple pumps as they default to 103 of course.

Below is the yaml snippet. Compiles and installs correctly. Action shows up in HA. When pressed, I see the press in ESP logs, but it returns a syntax error.

Any ideas? As I said, all other actions and sensors work fine, so it’s not a larger config issue. I just can’t get the change address action to work.

[09:42:16][D][button:010]: ‘Change Pump I2C Address’ Pressed.
[09:42:17][E][ezo-pmp:122]: device returned a syntax error

button:
  - platform: template
    name: "Change Pump I2C Address"
    on_press:
      - ezo_pmp.change_i2c_address:
          id: ezo_pmp_1
          address: 104

So I figured this out, although I believe the ezo ESPHome component needs to be updated. The issue was the protocol lock on the pump. This prevents switching modes (UART to I2C and v.v.), however it turns out that it ALSO prevents changing the I2C address, even though I could not see that mentioned anywhere in the docs.

I don’t think I’m alone, as many have struggled to change the address and ultimately ended up changing to UART first, before changing the address back to I2C. Turns out it is not the UART change that ‘fixes’ the issue, it is the removal of the plock (to get to UART) that unlocks the ability to change the I2C address.

So in ESPHome, I think the sequence needs to be

  1. check current plock (plock,?)
  2. if locked, unlock (plock,0)
  3. change i2c address (i2c,x)
  4. return plock to state from #1 (plock,[0 or 1])

I’m not aware of a way to issue these extra commands in the yaml config, but this should be added to the ezo component code so it “just works”. I ended up reflashing via Arduino and unlocking and changing the address there, before reflashing with ESPHome. Lots of extra steps for 1 tiny address change.

Anyway, wanted to document here in case others are struggling with the i2c address change. Hope that helps.

db

Is it pinch a penny?