A Home Assistant integration and standalone Python library for local (non-cloud) control of a Hayward ProLogic pool panel through its Aqua Connect WiFi Base Station.
The official Hayward cloud integration is slow and occasionally unreliable. The Aqua Connect WiFi Base Station exposes a local HTTP interface that emulates its physical keypad and LCD display — this project talks to that interface directly, so control and sensor readings never leave the local network.
The base station has no documented API. This integration was built by
reverse-engineering the HTML served at http://<device-ip>/index.htm:
GET /index.htmreturns the current LCD text and the on/off state of every keypad button (as CSS classes).GET /index.htm?FakeOutKeyId=<code>simulates pressing a physical button.
Sensor readings (pool temperature, air temperature, salt level) are only shown one at a time on the two-line LCD, so this integration navigates the menu (MENU to reach the "Default" top-level menu, then RIGHT repeatedly) to sweep through every screen once per poll interval.
- Add this repository as a custom repository in HACS (category: Integration).
- Install "Hayward AquaConnect Local".
- Restart Home Assistant.
- Go to Settings → Devices & Services → Add Integration → search for "Hayward AquaConnect Local".
- Enter the IP address of your Aqua Connect WiFi Base Station.
Copy custom_components/hayward_aquaconnect into your Home Assistant
config/custom_components/ directory and restart.
| Entity | Type | Notes |
|---|---|---|
| Pool Mode | select |
Options: Off, Pool, Spa, Spillover |
| Filter | switch |
|
| Lights | switch |
|
| Heater 1 | switch |
|
| Valve 3 | switch |
|
| Aux 1 | switch |
|
| Aux 2 | switch |
|
| Pool Temperature | sensor |
°F |
| Air Temperature | sensor |
°F |
| Salt Level | sensor |
PPM |
- LCD navigation keypresses are visible on the physical panel display during each poll cycle. This is inherent to the API and unavoidable.
- Default poll interval is 30 seconds; lowering it increases keypress traffic to the panel.
- Pool, Spa, and Spillover share a single keypress code and are mutually
exclusive — modeled as one
selectentity rather than three switches. - This integration targets the ProLogic panel specifically. Other Hayward panels behind an Aqua Connect base station may use a different keypad layout and are not currently supported.
- The "Off" option on Pool Mode has not been verified against a physical panel. Pool, Spa, Spillover, and Off all cycle through the same keypress, and the exact cycle order was determined by inspecting the device's HTML, not by testing every transition live (to avoid remotely toggling a real pump/valve without someone present to observe it). Before relying on "Off" in an automation, manually select it once from the Home Assistant UI while watching the physical panel to confirm it lands where expected.
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest # unit + HA tests, no network required
pytest -m integration # requires a live device on the network- Publish
hayward-aquaconnectto PyPI and update the version pin incustom_components/hayward_aquaconnect/manifest.json - Confirm
codeownersanddocumentation/issue_trackerURLs inmanifest.jsonpoint at the final GitHub repository - Tag a release matching the
versionfield inmanifest.json