Custom Component: Hayward Aquarite

THanks as always @fdebrus !!!

New release 0.5.0 is out

Summary

This release improves the overall robustness, usability, and consistency of the Aquarite integration.

Configuration flow enhancements

The config flow now provides a guided setup experience, covering credential entry, pool selection, and reauthentication. User access is validated against the Aquarite cloud API at each step.

Improved integration initialization

The setup process has been refined to authenticate and initialize the API and coordinator more cleanly, start token refresh in the background, and ensure the pool time-synchronization service is registered only once.

Coordinator reliability improvements

The coordinator now includes periodic polling and health checks, more resilient subscription management, and a dedicated helper to keep the pool controller’s clock aligned with Home Assistant’s timezone.

Shared entity base class

Introduced a common entity base to standardize device information, entity naming, and unique ID generation across all platforms.

@fdebrus I’m not getting any prompts to login after installing from HACS is there a way I can force this?

Could you detail how you installed ?

Normal procress for any custom integration is

  • Download from HACS
  • Restart HA
  • Add the download custom integration from Settings - Device and Services - Add Integration (here aquarite)

let me know

Ahh I had missed a step.
I didn’t add integration to Device and Services. That got the prompt to login and is now working.

It did not appear in HACS, so I had to add the github as a custom repository.
Feel abit stupid for not reading instructions properly. Thanks for your help!

Hello

is there anyu problmes with the clouds of the integration HA , i can’t connect to my aquarite account in HA ?

Something is wrong since 4hrs I do not receive updates anymore. Will check.

Token no longer refresh, will investigate

Traceback (most recent call last):
File “/config/custom_components/aquarite/coordinator.py”, line 83, in poll_state
client = await self.auth.get_client()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/aquarite/application_credentials.py”, line 104, in get_client
await self.refresh_token()
File “/config/custom_components/aquarite/application_credentials.py”, line 82, in refresh_token
raise UnauthorizedException(“Failed to refresh token.”)
custom_components.aquarite.application_credentials.UnauthorizedException: Failed to refresh token.

Thanks for your help

New release is out, maybe other changes have been introduced that I do not know about yet. Please post anything you find here. thanks. Also I need to wait expiration time of the token to see if the refresh is resolved, more fixes might be needed.

It works thanks for all

More work needed, the refresh token is not ok.

2026-02-08 17:00:13.214 DEBUG (MainThread) [custom_components.aquarite.application_credentials] Token expired, refreshing…
2026-02-08 17:00:13.408 DEBUG (MainThread) [custom_components.aquarite.application_credentials] Token refreshed successfully; token expiry updated.

Fixed, new release available 0.5.2

The integration has been optimized, user interface now react before the cloud confirm the command success, if failure the UI will revert.

I’ve also removed the pooling from the backend, which was a safety net but also raising API calls numbers, there is a increased focus on the backend from the supplier…

Let’s me know might something not behave as expected.