Skip to content

Repository files navigation

Hayward AquaConnect Local

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.

Why

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.

How it works

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.htm returns 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.

Installation

Via HACS

  1. Add this repository as a custom repository in HACS (category: Integration).
  2. Install "Hayward AquaConnect Local".
  3. Restart Home Assistant.
  4. Go to Settings → Devices & Services → Add Integration → search for "Hayward AquaConnect Local".
  5. Enter the IP address of your Aqua Connect WiFi Base Station.

Manual

Copy custom_components/hayward_aquaconnect into your Home Assistant config/custom_components/ directory and restart.

Entities

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

Known limitations

  • 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 select entity 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.

Development

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

Publishing checklist (before submitting to HACS / PyPI)

  • Publish hayward-aquaconnect to PyPI and update the version pin in custom_components/hayward_aquaconnect/manifest.json
  • Confirm codeowners and documentation/issue_tracker URLs in manifest.json point at the final GitHub repository
  • Tag a release matching the version field in manifest.json

About

Home Assistant integration and Python library for local (non-cloud) control of a Hayward ProLogic pool panel via its Aqua Connect WiFi Base Station

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages