Blue Connect pool measurements

Yes, Those configs originate out of mine (also shared on git btw) where I create the switch behavior with esp32.

When i leave the switch on the app won’t connect anymore

When using one of the git configs it will create a switch that you can trigger, something like this:

But the switch is not supposed to constantly be turned on. It should turn back off after it’s taken a reading. I can understand that the Blue Connect probably only allows one client connection. And if the switch remains on, the ESP stays connected. I turn the switch on using an automation every hour and the switch turns off automatically afterwards, then the connection from the app should work.

wt32eth01.yaml

updated with last value for salt calculation and correction for battery %

The switch turns off after every reading, so in order to trigger the reading, you can simply turn the switch on via automation, then it will be automatically turned off.

That’s the whole purpose of that switch actually.

I’m using a variation of @nitocris configuration.

Yes, I know. I was replying to @Peerke who sounded like he was saying he keeps it on. Mine works just like expected. I turn it on once an hour via automation and the ESPHOME code turns it off after the reading is finished.

I was also thinking that we also have a button entity…the switch looks redundant, we could directly use only the button. Right now it’s only internal, not exposed to HA.

What do you think @nitocris?

UPDATE: I stand corrected: there’s no button.ble_client platform. Sorry for suggesting it.

Values of pH and ORP are in line with the probes of my Hayward system probes (calibrated). Salt looks way too high, I measured it at 3.6g/l with an external probe.

I’m using @ST8 formula for salt. Here’s my complete config: https://github.com/alexdelprete/Esphome-Blueriiot/raw/main/m5stack-atom-blueconnect.yaml

image

When compared to Blueriiot app, everything seems in line, except for ORP (I just replaced the Blueconnect probe, it’s brand new):

1 Like

where i find this mac adresse?

  blueriiot_mac: !secret blueriiot_mac
  blueriiot_name_prefix: !secret blueriiot_nameprefix
  blueriiot_id_prefix: !secret blueriiot_idprefix

I went out and picked up one of these units last night and got it up and running today. Thanks to all the contributors here!

First, setup your esp32 as a scanner.

esp32_ble_tracker:

text_sensor:
  - platform: ble_scanner
    name: "BLE Devices Scanner"

let that run for a few minutes within range of the device while viewing logs.
download the log.
Search the log for 00:A0
that should be your blueriiot device

Allesandro, great that I can use my Blueriiot plus with the salt levels (using a mineral pool) but the last line errors out:

            Couldn't find ID 'uptime_blueriiot'. Please check you have defined an ID with that name in your configuration. These IDs look similar: "sensor_blueriiot_ph", "sensor_blueriiot_orp", "sensor_blueriiot_bat".
            id: uptime_blueriiot
            
            Couldn't find ID 'homeassistant_time'. Please check you have defined an ID with that name in your configuration.

Disabling the last update time makes it work again.

I see some differences in readouts, my battery level went from 31% to 86% which is more likely to be right. (dont see anything in the app with battery value)
PH is 7.3 instead of 7.4
ORP is 749 instead of 509 (which I wish was true :slight_smile: )
Salinity 2.8 versus 2.5
I have some manual reader all giving different levels and I also did the PH test with the old test set and that seems pretty close. I guess at some point you learn what numbers work for your own pool especially since I use an Purapool Oxynator (Ozon).

PS really glad I found this and got it working. I bought the extender but it died on me within 2 weeks (and seller does not reply on calls for replacement) and as frequent traveller like to monitor remote.
Thanks all involved to make this possible.

uptime_blueriiot is not in my config file, and homeassistant_time is properly defined.

# Time sync with Home Assistant
time:
  - platform: homeassistant
    id: homeassistant_time
    timezone: Europe/Rome
    on_time_sync:
      then:
        - logger.log:
            format: "Synchronized system clock with HA"
            level: "INFO"

No errors here. (link to my configuration)

You have probably mixed things from various configs in this thread, it happened to me in the past.

I updated my YAML for the battery correction. But, I am hesitant to believe that this actually provides a battery percentage at all. This value seems to be a temperature value instead as it increases when the water temperature increases and vice versa.
Maybe it provides the temperature of the battery and this somehow alludes to how efficient the battery is? I’m starting to think that we somehow need to take the water temperature reading into account while interpreting the battery temperature in order to provide whether the battery is still performing well.
I find it interesting that the BlueRiiot app doesn’t show battery percentage, but rather only whether the battery is low or not. So, maybe the battery temperature compared to the water temperature (which is the outside temperature for the device itself) just provides enough information to tell if the battery is still performing or about to die and not the actual percentage.

The https://www.virtualpoolcare.io/ portal has a fair bit of info about the device, such as current battery voltage and pcb temperature. See below.



1 Like

Yeah,
We concluded a while back that this value is most likely the internal temp. So looking at the reply from @mackspower that seems to be correct.
The other values are not, or don’t seem to be in the hex string returned by the device. Maybe there is another BLE service that we need to call to get those. I don’t have a BLE/BT sniffer to see what the app is communicating to the BlueRiiot device.
(in my understanding all the data-handling is done in the BlueRiiot cloud and the result is then fed back in the app (through the API that LordMike is using for his MQTT integration)

yup my bad. I overlooked youre time setup because I added the code to an excisting pool level sensor setup I have. Seems to work great

Yeah, it seems to me the x[11] value is PCB Temperature instead of Battery %. I do notice that x[0] is not used anywhere in the YAML. Do we know what the x[0] value represents?

That is covered here:

looks like some sort of versioning

Got it. We might as well remove the battery percentage or rename it to PCB Temperature (or similar) to avoid confusion.
I have the BlueConnect in my Hottub/Spa and when I heat it up to over 32 degrees C then the battery percentage goes above 100% :smiley: So, this value definitely has nothing to do with battery level.

I have added your code mostly to my ESP32 sensor, and my readings in Home Assistant for pH and Temperature are spot on (0,2 pH difference because of the time of results recording). What goes for the ORP it seems to high. I use a brand new Blue Connect Go.

When compared In the blueriiot app:

Any good ideas?
Thanks for making this possible.