Skip to content

How Does an ESP32-S3 and W5500 Bridge a Sterilor XP Pool Chlorinator to Home Assistant over BLE?

Reverse-engineered BLE bridge: an ESP32-S3 reads pool pH and sets salt production on Sterilor XP units, and a W5500 sends it to Home Assistant over Ethernet.

ElenaLee

Published October 13, 2026 · © MIT license (MIT)

How Does an ESP32-S3 and W5500 Bridge a Sterilor XP Pool Chlorinator to Home Assistant over BLE?

Components

Hardware components

WIZnet parts

Project description

📌 Overview

Sterilor-ESPHome is an open-source ESPHome project published in August 2026 by GitHub user Marcpil. It turns a Waveshare ESP32-S3-ETH board into a local bridge between a Sterilor XP pool salt chlorinator, a Sterilor XP pH regulator, and Home Assistant, with no cloud account and no proprietary gateway. The ESP32-S3 talks to both pool units over Bluetooth Low Energy (BLE), and the board's WIZnet W5500 carries the results to Home Assistant over wired Ethernet.

The author built it because the Sterilor XP units have a BLE interface but no public Home Assistant integration, so the protocol was reverse engineered from real devices without official documentation. The shipped v1.0.1 configuration has an ethernet: type: W5500 block and no Wi-Fi block at all, so the ESP32-S3 radio is used only for Bluetooth while the W5500 handles the network.

Sterilor XP salt chlorinator, pH regulator, and Connect module installed in a pool technical room The author's Sterilor XP installation: salt chlorinator, pH regulator with its dosing pump, and Connect module. Image: Marcpil, MIT License.

Key takeaway: this is a working, field-validated pattern for pool and plant-room equipment: BLE stays local to the devices, and a W5500 provides the stable wired uplink that a concrete technical room rarely gets from Wi-Fi.

Background: Sterilor XP and Why a Bridge Is Needed

Sterilor has made pool water treatment equipment since 1985. Its Sterilor XP range, announced in September 2021, is modular: a salt chlorinator, a pH regulator, a redox regulator, a temperature module, and a Connect module. The modules talk to each other and to a smartphone app over Bluetooth, and the Connect module links the system to the internet for remote access.

A salt chlorinator produces chlorine from salted pool water, so its production percentage sets how much sanitizer the pool gets. A pH regulator doses acid with a small pump to keep pH in range. Owners who run Home Assistant want both values next to the rest of the house, and they want to change production without the vendor app. Sterilor-ESPHome reads pH and production and writes the production setpoint locally.

How the System Works

The ESP32-S3 acts as a BLE central and connects to the two Sterilor units, which act as BLE peripherals. Data moves through BLE notifications and writes on a UART-style service: the firmware writes short request frames, and each unit answers with 11-byte notification frames. The protocol notes document two registers in plain terms:

  • Register 0x14 returns the chlorinator's current production percentage and a status byte. A captured frame 01 00 14 01 50 ... decodes to 80 percent.
  • Register 0x0B returns pool pH. The firmware combines two bytes and divides by 1000, so 01 00 0B 1D 89 decodes to pH 7.561.

ESPHome turns these values into Home Assistant entities, and the repository ships a ready-made Mushroom dashboard.

Generated diagram of the Sterilor XP BLE to W5500 Ethernet bridge Generated technical diagram: two Sterilor units over BLE, the ESP32-S3 as central, and the W5500 as the Ethernet uplink to Home Assistant.

⚙️ Role of the WIZnet W5500

The recommended board, the Waveshare ESP32-S3-ETH, puts an ESP32-S3 and a WIZnet W5500 on one PCB. The project YAML drives the W5500 over SPI at 16 MHz on GPIO13, 11, 12, and 14, with reset on GPIO9 and interrupt on GPIO10, and assigns a static IP address.

The W5500 is the bridge's only network path: Home Assistant API traffic, entity updates, and OTA updates all leave the device through it. That split matters for two reasons the author documents. The hardware guide calls Ethernet the recommended choice because the bridge was built for a pool technical room, where it avoids Wi-Fi interference and coverage problems and gives better long-term reliability. And the BLE link has its own placement rule: the ESP32 should sit within about 5 meters of the Sterilor units and outside metal enclosures. With Ethernet, the board can go where BLE works best and still reach the house network over a cable.

Waveshare ESP32-S3-ETH board used for the bridge The tested Waveshare ESP32-S3-ETH board, which carries the ESP32-S3 and a W5500 Ethernet controller on one PCB. Image: Marcpil, MIT License.

WIZnet role in one line: the ESP32-S3 handles Bluetooth to the pool equipment, and the W5500 handles everything that goes to Home Assistant.

Safety Details in the Firmware

Writing to pool chemistry equipment needs care, and the YAML shows it. A "Autoriser commandes Sterilor" (allow Sterilor commands) switch must be turned on before any setpoint change is accepted, and it always boots in the off position. The production setpoint moves in 5 percent steps, only one write can run at a time, and the firmware waits for the chlorinator to report the new value before it marks the write as confirmed. pH setpoint writing is disabled in v1.0.1 because that part of the protocol is not yet validated; it is on the 1.1 roadmap together with RSSI monitoring.

Home Assistant Mushroom dashboard for the pool The included Mushroom dashboard showing water temperature, filtration, salt production, pH, and connection status. Image: Marcpil, MIT License.

Where It Fits: Value and Limits

The project is a clear example of a BLE-to-Ethernet bridge for equipment that only speaks Bluetooth: keep the radio next to the device, and put the wired link where the network is. The same pattern applies to other plant-room equipment with app-only BLE interfaces. Version 1.0.1 is a single-author release validated on the author's own installation, it supports two Sterilor XP modules, and the protocol notes are a reverse-engineered reading rather than vendor documentation. The project is not affiliated with Sterilor.

Related WIZnet Maker Projects

The closest architectural match is esphome-teslable-poe, which also uses an ESPHome BLE client to talk to a product that only offers Bluetooth, here a Tesla vehicle, with W5500 Ethernet and PoE for the uplink.

For another pool project, Pool-Matrix-Monitor focuses on displaying pool readings, which pairs well with this bridge if you want a local display next to the Home Assistant dashboard.

For a wired ESPHome controller that speaks an appliance's own protocol, OpenQuatt controls a Quatt heat pump over a W5500 connection, showing the same local-control idea in home heating.

❓ FAQ

Q. What does this project use the W5500 for? The W5500 on the Waveshare ESP32-S3-ETH board is the bridge's Ethernet interface. It carries the Home Assistant API connection and OTA updates, while the ESP32-S3 radio talks to the Sterilor units over BLE.

Q. Can I use Wi-Fi instead of Ethernet? The hardware guide lists a plain ESP32 DevKit on Wi-Fi as compatible when the signal is good and the board sits close to the pool equipment, but Ethernet is the recommended and tested setup.

Q. Which Sterilor devices are supported? The Sterilor XP salt chlorinator and the Sterilor XP pH regulator. Other Sterilor models are listed as future work.

Q. Can it change the pool pH setpoint? Not in v1.0.1. It reads pH and can change the salt production setpoint; pH setpoint writing is disabled until the protocol is validated.

Q. Does it need the Sterilor app or internet access? No. The bridge talks to the units over local BLE and to Home Assistant over the local network, with no cloud service.

 

Documents

  • Sterilor-ESPHome repository

    Original source: ESPHome YAML, dashboard, docs

  • ESPHome YAML v1.0.1

    W5500 ethernet block and BLE client configuration

  • Hardware guide

    Why Ethernet is recommended for the pool technical room

  • BLE protocol notes

    Reverse-engineered registers 0x14 and 0x0B

  • Sterilor XP range announcement (2021)

    Domain context: the modular Sterilor XP range

  • Waveshare ESP32-S3-ETH

    Board with ESP32-S3 and W5500

  • WIZnet W5500

    WIZnet chip page

Comments

Similar projects you might like

Comments