When you get the logs from ESPHome dashboard it will show the dialogue for the i2c component scanning your channel for a device. It will show the address if it finds something. That address is what you then use in your sensor set up. Can you post your full log from the dashboard?
Edit: post text not photo. And make use of the formatting for yaml.
…and the little led will be blue when powered on and flick green for a split second each time a reading is taken which is a good indicator things are working….aside from seeing values in any output console you have.
It’s the box directly from Atlas with pH, ORP, and Temperature probes. Everything was already preinstalled in the kit, so I just connected the probes to my pool equipment, flashed it with homeassitant using ESPHome dashboard. Took a stab editing the yaml and failed. Did you use the kit directly from Atlas? If so, can I see what your YAML looks like?
This is my latest attempt, but the logs indicate that nothing is working:
@HG901 here’s mine. Note, my config is set to publish values via MQTT so change/rip that out as needed as well as changing other credentials in the top sections as appropriate.
esphome:
name: poolmonitortest
friendly_name: poolmonitortest
esp32:
board: featheresp32
# framework:
# type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "1234567890"
ota:
password: "1234567890"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Poolmonitortest Fallback Hotspot"
password: "1234567890"
captive_portal:
mqtt:
broker: 111.111.111.111
port: 1883
username: mqttuser
password: mqttpass
# discovery_prefix: homeassistant
i2c:
sda: GPIO23 #D4 23
scl: GPIO22 #D5 22
scan: True
sensor:
- platform: ezo
name: "Pool Monitor pH"
id: ph_ezo
address: 99
unit_of_measurement: "pH"
update_interval: 30s
accuracy_decimals: 2
on_value:
- mqtt.publish:
topic: "poolmonitor/ph"
payload: !lambda |-
return to_string(id(ph_ezo).state);
- platform: ezo
id: orp_ezo
name: "Pool Monitor ORP"
address: 98
unit_of_measurement: "mv"
accuracy_decimals: 2
update_interval: 30s
on_value:
- mqtt.publish:
topic: "poolmonitor/orp"
payload: !lambda |-
return to_string(id(orp_ezo).state);
# return to_string(id(orp_ezo).state);
# states('sensor.usd_to_gbp')|float)|round(2) }
- platform: ezo
id: pump_acid #Currently only reads pumped volume from the pump
name: "Poll Monitor Pump Acid"
address: 103
unit_of_measurement: "ml"
- platform: ezo
name: "Pool Monitor Temp"
filters:
- lambda: return x * (9.0/5.0) + 32.0;
id: rtd_ezo
address: 102 # aka 0x66, see page 5 on https://atlas-scientific.com/files/Wi-Fi-Pool-kit-setup-guide.pdf
accuracy_decimals: 2
unit_of_measurement: "°F"
update_interval: 30s
on_value:
- mqtt.publish:
topic: "poolmonitor/temp"
payload: !lambda |-
return to_string(id(rtd_ezo).state);
- platform: ezo
id: pump_cl #Currently only reads pumped volume from the pump
name: Pool Monitor Pump Cl
address: 104
unit_of_measurement: "ml"
switch:
- platform: gpio
pin: 12 #14
name: "pH On"
inverted: yes #Makes the ON status turn the pin LOW
internal: true #Hides the switch from Home Assistant so as not to clutter the interface
restore_mode: ALWAYS_ON #Sets the switch status ON at boot
- platform: gpio
pin: 15
name: "Temp On"
inverted: no #This pin needs to be HIGH, so not inverted
internal: true #Hides the switch from Home Assistant so as not to clutter the interface
restore_mode: ALWAYS_ON #Sets the switch status ON at boot
- platform: gpio
pin: 27 #12
name: "ORP On"
inverted: yes #Makes the ON status turn the pin LOW
internal: true #Hides the switch from Home Assistant so as not to clutter the interface
restore_mode: ALWAYS_ON #Sets the switch status ON at boot
- platform: gpio
pin: 33 #13
name: "AUX On"
inverted: yes #Makes the ON status turn the pin LOW
internal: true #Hides the switch from Home Assistant so as not to clutter the interface
restore_mode: ALWAYS_ON #Sets the switch status ON at boot
So far it is working, and all three sensors (pH, ORP, and temp) show up in home assistant so I added them to the dashboard as a gauge. I haven’t figured out yet how to calibrate the sensors, but it homeassistant showed my pH as being high and my chlorine (ORP) being low, and a test strip confirmed it so at least it’s not too far off. ORP is reported in mV, and converting to PPM seems difficult. My immediate goals will be to figure out how to calibrate and use some of the statistics functions to give me trending numbers that I can use in my next automations (i.e. turn on my chlorine generator and pH reducer).
@HG901 you should have gotten calibration solutions with your kit. There are ways to calibrate (again, with the solutions) via esphome but I reflashed the original firmware from atlas, did the calibrate and then reflashed again w my esphome config. Ultimately I just bought a second huzzah esp and keep one with the original firmware and one with esphome.
yes, I have the calibration solutions. I did update my yaml to include the lamda buttons I found here for easy calibration. I also used their code to change my temperature readings to Fahrenheit which is nice.