Blue Connect pool measurements

Hi, I just got a used BlueConnect Go from a friend today. Pool and app are set up, so is the integration.

I had a spare ESP32 module which I’d use as a BLE Proxy. It has been discovered by HA but does not find the device (It’s a ESP32 Cam module which I had leftover, I ordered a proper board but did not yet receive it).

I am not able to find the blueriiot device. I tried some code from this thread and tried setting things up with chatgpt. I placed the device directly to the esp32 to make sure its not an issue with connectivity…

Can anybody guide me on how to set up and connect? I do not find the MAC of the device in the app.

Currently, I am using this basic code:

esphome:
  name: ble-extender
  friendly_name: BLE Extender

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:
  
# Enable Home Assistant API
api:
  encryption:
    key: "xxx"

ota:
  - platform: esphome
    password: "xxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Ble-Extender Fallback Hotspot"
    password: "xxx"

esp32_ble_tracker:
  scan_parameters:
    active: true
    interval: 1000ms
    window: 700ms

In the log:

INFO Starting log output from 192.168.0.80 using esphome API
INFO Successfully connected to ble-extender @ 192.168.0.80 in 0.101s
INFO Successful handshake with ble-extender @ 192.168.0.80 in 0.126s
[18:36:38][I][app:100]: ESPHome version 2025.4.1 compiled on May  3 2025, 18:31:40
[18:36:38][C][wifi:600]: WiFi:
[18:36:38][C][wifi:428]:   Local MAC: A0:B7:65:50:76:38
[18:36:38][C][wifi:433]:   SSID: [redacted]
[18:36:38][C][wifi:436]:   IP Address: 192.168.0.80
[18:36:38][C][wifi:440]:   BSSID: [redacted]
[18:36:38][C][wifi:441]:   Hostname: 'ble-extender'
[18:36:38][C][wifi:443]:   Signal strength: -56 dB ▂▄▆█
[18:36:38][C][wifi:447]:   Channel: 1
[18:36:38][C][wifi:448]:   Subnet: 255.255.255.0
[18:36:38][C][wifi:449]:   Gateway: 192.168.0.1
[18:36:38][C][wifi:450]:   DNS1: 192.168.0.170
[18:36:38][C][wifi:451]:   DNS2: 0.0.0.0
[18:36:38][C][logger:177]: Logger:
[18:36:38][C][logger:178]:   Max Level: DEBUG
[18:36:38][C][logger:179]:   Initial Level: DEBUG
[18:36:38][C][logger:181]:   Log Baud Rate: 115200
[18:36:38][C][logger:182]:   Hardware UART: UART0
[18:36:38][C][esp32_ble:418]: ESP32 BLE:
[18:36:38][C][esp32_ble:420]:   MAC address: A0:B7:65:50:76:3A
[18:36:38][C][esp32_ble:421]:   IO Capability: none
[18:36:38][C][esp32_ble_tracker:677]: BLE Tracker:
[18:36:38][C][esp32_ble_tracker:678]:   Scan Duration: 300 s
[18:36:38][C][esp32_ble_tracker:679]:   Scan Interval: 1000.0 ms
[18:36:38][C][esp32_ble_tracker:680]:   Scan Window: 700.0 ms
[18:36:38][C][esp32_ble_tracker:681]:   Scan Type: ACTIVE
[18:36:38][C][esp32_ble_tracker:682]:   Continuous Scanning: YES
[18:36:38][C][esp32_ble_tracker:683]:   Scanner Idle: NO
[18:36:38][C][esp32_ble_tracker:684]:   Scan End: NO
[18:36:38][C][esp32_ble_tracker:686]:   Connecting: 0, discovered: 0, searching: 0, disconnecting: 0
[18:36:38][C][mdns:116]: mDNS:
[18:36:38][C][mdns:117]:   Hostname: ble-extender
[18:36:38][C][esphome.ota:073]: Over-The-Air updates:
[18:36:38][C][esphome.ota:074]:   Address: ble-extender.local:3232
[18:36:38][C][esphome.ota:075]:   Version: 2
[18:36:38][C][esphome.ota:078]:   Password configured
[18:36:38][C][safe_mode:018]: Safe Mode:
[18:36:38][C][safe_mode:020]:   Boot considered successful after 60 seconds
[18:36:38][C][safe_mode:021]:   Invoke after 10 boot attempts
[18:36:38][C][safe_mode:023]:   Remain in safe mode for 300 seconds
[18:36:38][C][api:140]: API Server:
[18:36:38][C][api:141]:   Address: ble-extender.local:6053
[18:36:38][C][api:143]:   Using noise encryption: YES

After a while a scan starts but nothing is ever found. Any hints for me?

Ok, managed to connect up everything.

Only annoyance: pH is shown with several digits after the comma. I can limit it in the entity to show only 1 or 2 digits, but in the card it stays like this anyway. Any idea?

I agree with you. Please let me know if you figure out how to do that.
If it requires an update on the integration (are you using the HACS version?) I’d be happy to accept a PR or do the change if anyone can give me a hint on the right way to do it.

I have three questions:

I want to buy a Pool Analyser Blue Connect GO and the WLAN Modul and i want to integrate it to Homeassistent.

Is a Premium Abo nesessary for that or will IT Work without the Abo?

How much measurements wilk Take place in one day without the Abo? Will they Take place automaticaly or only with the Trigger through the App?

Without the Abo i cant Trigger the measurements via Homeassistent? Is that right?

If i integrate a blue Connect without plus and without the Abo/Premium with a esp32 BLE in my Homeassistent. Is that possible? How offen the Sensor will send Data or can a Trigger a new measurement via Homeassistent? How does IT Work without the Abo?

You trigger a measurement reading via HA automation. So, you decide how often you want to update the sensors in HA. Just remember, the more often you trigger measurements, the faster your battery will drain.
I trigger a measurement once an hour and get 1-2 years battery life. Since my BlueConnect is in a Hottub and not a swimming pool, I have a binary sensor helper I switch on when the Hottub is being heated up and will be used. I use this as a switch to trigger a few things I want to happen during usage. First, I increase the measurement interval to once every 10 minutes to get a more current water temperature while heating up and while in the Hottub. And secondly, I disable the filter pump since it cools the water somewhat while pumping the water through underground pipes. So, while bathing I don‘t want to work against the heating process.
Anyways, all that just to say you have control over the measurement reading interval via HA automation.
Basically, the esp32 BLE code includes an „enable“ switch which triggers measurement readings and automatically turns the switch off after reading is finished.
The BlueConnect subscription only changes how many readings the WiFi gateway from BlueRiiot will execute and how many it will store in the cloud (I think this also applies to when Sigfox is used instead of the WiFi Gateway). It doesn‘t really change anything in the device itself (except maybe enabling/disabling Sigfox). The BlueConnect device regularly sends BLE advertisements and the esp32 BLE tracker connects to the device when it detects an advertisement from the configured MAC address (see it as if you are connecting with the app on your smartphone when in close proximity). So, the BlueConnect is always advertising itself, waiting for the BLE Gateway to connect to it in order to read its measurements. I hope that makes sense.

thank you. in this case i think the abo/premium isn’t needed for the esp32 homeassistant setup.

i think i doesn’t get it…sry…

At the beginning, you wrote that you can decide yourself how often to update a sensor value, and that this wakes up the device to get a new reading. But at the end, you said that the device regularly sends BLE advertisement signals and waits for a BLE gateway to connect and read the measurements.

How should I understand this?
Does the device sleep until I want a new value and I wake it up with a new measurement request?
Or do I have to wait until it wakes up by itself before I can request a new value?

I think the misunderstanding is in the „sleep“ part. The BlueConnect never really sleeps, at least not a real deep sleep. Or maybe better said, it only sends BLE advertisements while it is „sleeping“. When the app or a BLE gateway (either BlueRiiot‘s Extender or esp23 BLE device) receives an advertisement and connects to the advertised MAC address, the BlueConnect „wakes up“ and sends all it‘s sensor values over BLE.
Does that make more sense?

ah ok. i get it now. thankt you very much

Correct, you don‘t need the premium subscription or the BlueRiiot extender (WiFi Gateway) when you use a ESP32 BLE tracker with HA. All the sensor data remains local and is published into your HA instance as sensors for pH, Temp, ORP and conductivity (for Plus version). You only need the Plus version if you have a salt water pool.

1 Like

tanks.
Would it be possible for you to post a step-by-step guide here? There are so many posts by now, and the topic and procedure have changed quite a bit since the first post back in 2019 — including the integration and everything else.
I believe several others would also really appreciate that.

whould it be possible to use a Shelly as BLE proxy for that?

I don’t think so since the sensors are programmed into the esp32 BLE tracker. For it to work with a plain BLE proxy, you would need the additional HA integration mentioned above to receive the data over BLE and map them to HA sensors.
I am using the esp32 as the sensors imported into HA without any other integration (except ESPHOME).

You basically need to do just a few things. Although the most time consuming part is getting acquainted with ESPHOME if not already.

  1. get an esp32 dev board and flash it with a minimal ESPHOME image. Ideally create a minimal image directly with the BLE scanner to capture the MAC address of your BlueConnect device.
  1. Position somewhere near the BlueConnect and start it up. Of course the esp32 also needs WiFi connectivity to publish events to your HA

  2. note the MAC address of the BlueConnect that the BLE scanner captures

  3. Modify the YAML for your esp32 device to utilize BLE tracker to populate HA sensors via the HA API.
    Here’s mine that you can modify to match your esp32 board. Some parts are in the ESPHOME secrets file that you would need to add with your specific data. In particular I put the BlueConnect MAC address in the secrets file. The name and id can be whatever you want and don‘t need to be in the secrets file. The rest of the components in the secrets file are not related to the BlueConnect, but more general things like WiFi password, HA API encryption key etc.

Unfortunately, this thread is a mixture of people using the above mentioned integration and some coding it all into the esp32 itself. So, a little confusing.

1 Like

Tank you very much…thats what i need… Is a ESP with externe Antenne a good Idea? I need IT outside. Because of that i think a Shelly is a smart Idea to use…
What do you think about using a new Generation Shelly as BLE Proxy…is that a good Idea or is the esp Methode better?

I dont know whats the best way to install the esp32 in a outside Box…best way for the current Installation. So you have a good Idea?

how can i set up the triger for the measurements.

automation:

  • alias: “Blue Connect - Messung alle 2 Stunden”
    trigger:
    • platform: time_pattern
      hours: “/2”
      condition:
    • condition: state
      entity_id: switch.blueconnect_pool_sensor_enable
      state: “off”
      for:
      minutes: 1
      action:
    • service: switch.turn_on
      target:
      entity_id: switch.blueconnect_pool_sensor_enable
      mode: single

is that correct?

Looks pretty much correct. Mine looks like this without the off condition. I think if the switch is already on, the automation just won‘t do anything. So, I think the additional condition is not necessary.

alias: Fetch Blue Connect Values
description: Hottub Wasserwerte
triggers:
  - trigger: time_pattern
    hours: /1
conditions: []
actions:
  - type: turn_on
    device_id: dba460797d504f56f871fa567a274676
    entity_id: 547c6ed410a77db117af13aaa28da2a8
    domain: switch
mode: single

I created it with the UI, so device_id and entity_id were selected by the UI.

I would just get some IP65 electric boxes from your next Baumarkt. Although I have to admit I still try to put them somewhere they won‘t be directly in the rain. In my case I have an outdoor sauna next to the Hottub and the Sauna has a utility box on the back where I placed the esp32. It‘s still close enough to discover the BlueConnect.
I am redoing my BlueConnect esp32 gateway on an esp32 board with integrated display and I plan on fitting that into a waterproof box and mount it onto the Hottub. This way au have the readings directly available by just touching the screen.
This is the board I will transition to. I already have the BlueConnect stuff working and am just tweaking the UI. I also added two Dallas sensors to the board to get outside and water temperatures directly as well.
https://amzn.eu/d/4hxSUjL