A Home Assistant integration for Fluidra Connect pool equipment β variable-speed pumps, heat pumps, salt chlorinators / electrolysers, water analysers and connected lighting. It talks to the Fluidra cloud (AWS Cognito auth) and exposes each device as native Home Assistant entities.
The integration was built by reverse-engineering the Fluidra Connect API. Most device mappings were confirmed by the community against the official Fluidra Pool app β if your model isn't recognised yet, open an issue and help us add it.
If this integration is useful to you, you can support its development:
- PayPal: paypal.me/foXaCe66
- πͺ Bitcoin:
bc1qhe4ge22x0anuyeg0fmts6rdmz3t735dnqwt3p7
Your contributions help me keep improving this project and adding new equipment. Thank you! π
- Cloud login with MFA β email/password sign-in, multi-factor (OTP) challenge support, automatic token refresh, plus re-authentication and reconfigure flows when your credentials change or expire.
- Automatic device discovery β pools and their equipment are discovered from your account; each device is created with proper Home Assistant device grouping.
- Robust cloud client β bounded timeouts, exponential-backoff retries on 429/5xx, a circuit breaker for sustained outages, and a rate limiter.
- Localized UI β English, French, Spanish and Portuguese translations; failed commands surface a clear, translated error instead of silently doing nothing.
- Diagnostics β downloadable diagnostics (with credentials redacted) for bug reports.
| Platform | What it controls |
|---|---|
switch |
Pump on/off, auto mode, heater, heat pump, chlorinator, boost, schedule slots |
select |
Pump speed / mode, chlorinator mode, light effect/scene, per-slot schedule speed |
number |
Custom pump speed (0β100%), chlorination level, pH & ORP setpoints, light effect speed |
climate |
Heat-pump control (HVAC mode/action, target temperature, preset modes) |
light |
LumiPlus Connect RGBW (on/off, brightness, colour) |
time |
Schedule start/end time editing |
button |
Victoria VS pump Stop (halt without disarming the schedule) |
sensor |
pH, ORP, free chlorine, salinity, temperatures, pump speed/mode, power & head & flow (VS pumps), firmware, signal, status |
Device recognition is data-driven and community-confirmed. Many models below were added and verified through GitHub issues. Anything not matched falls back to a sensible generic profile, so unknown equipment is usually still usable.
- E30iQ (also matches
LE*/PUMP*serials)- 3 speeds: Low (45%), Medium (65%), High (100%)
- Automatic / scheduled mode
- Custom speed control (0β100%)
- Up to 8 daily schedule slots (per-slot speed + start/end time)
- Victoria Smart Connect VS (AstralPool,
mppvs) β running state, live output %, AUTO / QUICK FUNCTION mode, speed or flow-rate setpoint, plus power (W), head (m) and flow rate (mΒ³/h) sensors, and an activity sensor that reports the transient priming / calibration phases separately from the speed. Control mirrors the app: an Auto-schedule toggle and a dedicated Stop button (halts the motor without disarming the schedule); speed-preset dry-contact inputs are exposed as diagnostic binary sensors. Direct speed/quick-function control (via/schedulers) is still being added β see #144. - Generic variable-speed pump fallback
- LG Eco Elyo β reversible: Smart Heating / Cooling, Boost, Silence presets; target temp; water-temp sensor
- Z250iQ / Z25iQ β on/off, target temperature, current temperature
- Z260iQ β HVAC modes (heat / cool / heat-cool), presets, no-flow alarm, water/air temperatures
- Z550iQ+ β HVAC modes (heat / cool / auto), presets, HVAC action (heating/cooling/idle/no-flow), water/air temperatures
- Gre HPGIC β on/off, target temperature, water temperature
- Generic heat-pump fallback
- tecnoLC2 family (30+ models) β AstralPool Clear Connect / Clear Connect Evo / Scalable,
Blauswim, IrriPool / Irrijardin iSalt, KLINWASS Mark Salt, Zodiac GenSalt OE iQ, Zodiac
Ei2 iQ / Ei2 pH Evo, Gre, Energy Connect, and more (
CC*/LC*serials, including bridged*.nn_*devices) - Automatic tecnoLC2 detection β a chlorinator whose serial isn't on file yet is auto-recognised from its component signature and reads pH, ORP, water temperature and salinity on the right registers, so unknown units work correctly without waiting for their serial to be added by hand
- Zodiac EXO iQ (e.g. iQ35 / NS25) β 0β100% chlorination in 5% steps, output schedules
- DM24049704 (Domotic S2) β program/slot schedule format
- Typical capabilities (model-dependent): chlorination level (0β100%), pH setpoint, ORP/Redox setpoint, boost mode, schedules, and sensors (pH, ORP, free chlorine, salinity, water temperature)
- Zodiac Blue Connect Silver / Gold (
WA*, BC3) β pH, ORP and water-temperature sensors (read-only)
- LumiPlus Connect (RGBW) β on/off, brightness (0β100%), RGBW colour + white channel, effect/scene selection and effect speed, light schedules
- Generic LED light fallback
- Generic on/off heater (component-9) with optional temperature attributes
Your equipment isn't listed or is only partially recognised? Help us add it:
- Enable debug logs
logger: logs: custom_components.fluidra_pool: debug
- Open an issue with:
- Your equipment model and serial prefix
- The device-discovery debug logs
- The features/values shown in the official Fluidra Pool app
- Test and share your results β most new models are added this way.
- Add this repository as a custom repository (category Integration):
https://github.com/foXaCe/Fluidra-pool - HACS β search "Fluidra Pool" β Download
- Restart Home Assistant
- Settings β Devices & Services β Add Integration β "Fluidra Pool"
git clone https://github.com/foXaCe/Fluidra-pool.git
cp -r Fluidra-pool/custom_components/fluidra_pool /config/custom_components/Then restart Home Assistant and add the integration from the UI.
The integration is configured entirely from the UI (config flow):
- Email β your Fluidra Connect account email
- Password β your Fluidra Connect password
- MFA β if your account uses multi-factor authentication, you'll be prompted for the code
- Re-auth / Reconfigure β Home Assistant prompts you to re-authenticate if the token is rejected; you can also reconfigure (e.g. change the account email) from the integration menu
Important
Region β EMEA (Europe) only. This integration talks to Fluidra's EMEA backend
(api.fluidra-emea.com). Only myFluidra / Fluidra Connect accounts registered in the
EMEA region can log in. Accounts created in other regions β e.g. North America
(iAquaLink US) or Australia / APAC β live on a different Fluidra backend and will be
rejected with an "invalid credentials" error even though the same credentials work in the
official app. Multi-region support isn't available yet (it needs the regional endpoints and
a test account to implement safely).
- Update interval β polling interval in seconds, configurable from 30 to 1800 (default 30 s). Change it via the integration's Configure button.
automation:
- alias: "Pool β economy mode at night"
triggers:
- trigger: time
at: "22:00:00"
actions:
- action: select.select_option
target:
entity_id: select.pool_pump_speed
data:
option: "low"The integration registers three services for schedule management. The device_id is the
Fluidra equipment serial (visible in the device's Diagnostics / Device info).
fluidra_pool.set_schedule β replace the schedule of a device:
action: fluidra_pool.set_schedule
data:
device_id: "LE24500883"
schedules:
- enabled: true
start_time: "08:00"
end_time: "12:00"
mode: "1" # 0 = Low, 1 = Medium, 2 = High
days: [1, 2, 3, 4, 5] # 1 = Monday β¦ 7 = Sunday
- enabled: true
start_time: "18:00"
end_time: "20:00"
mode: "2"
days: [6, 7]fluidra_pool.clear_schedule β remove all schedules of a device:
action: fluidra_pool.clear_schedule
data:
device_id: "LE24500883"fluidra_pool.set_preset_schedule β apply a ready-made schedule preset:
action: fluidra_pool.set_preset_schedule
data:
device_id: "LE24500883"
preset: "standard" # standard | intensive | eco | summer | winter| Preset | Schedule |
|---|---|
standard |
08:00β12:00 + 18:00β20:00 (Medium) |
intensive |
08:00β18:00 (High) |
eco |
10:00β14:00 (Low) |
summer |
06:00β10:00 + 16:00β22:00 (High) |
winter |
12:00β16:00 (Low) |
type: entities
title: Pool Control
entities:
- entity: switch.pool_pump
- entity: select.pool_pump_speed
- entity: number.pool_chlorination_level
- entity: climate.pool_heat_pump
- entity: light.pool_lightEntity IDs depend on your device names (entities use has_entity_name); the names above are illustrative.
- Authentication fails β check the email/password, and complete the MFA prompt if shown. If the token was rejected, Home Assistant starts a re-authentication flow automatically.
- No pools found β confirm your equipment appears in the official Fluidra Pool app.
- Enable debug logs (see Adding New Equipment) and attach them to any issue.
- Download diagnostics β from the integration's device page (credentials are redacted).
| Symptom | Likely cause / fix |
|---|---|
Invalid credentials but the app works |
Account registered outside EMEA (North America, Australia, β¦) β not supported (see Configuration) |
Authentication failed |
Wrong credentials or expired token β re-authenticate |
No pools found |
Account has no equipment, or it's offline in the Fluidra app |
| Wrong readings after a HACS update (e.g. a chlorinator's pH shows a temperature) | A custom integration's code only reloads on a full Home Assistant restart (Settings β System β Restart) β a "Reload" is not enough. Restart, then re-check |
| Device shows unavailable | The device reports itself offline to the Fluidra cloud |
| Commands seem ignored | Check debug logs; transient cloud rejections now surface as errors |
| Setpoints/switches never change (no error) | Account has viewer (read-only) access to the pool β the cloud accepts writes but doesn't apply them. Check the access_level attribute on the pool status sensor; owner access is required to control equipment |
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Run the checks β
ruff check,ruff format,mypy, andpytest(seerequirements_test.txt) - Commit your changes (Conventional Commits)
- Open a Pull Request
CI runs Ruff, HACS validation, Hassfest, the pytest suite (with a coverage gate) and mypy.
MIT β see LICENSE.
- Fluidra for their equipment
- Home Assistant for the platform
- The community for testing, device captures and feedback
- Issues: GitHub Issues
- Discussions: GitHub Discussions
β If this integration is useful to you, feel free to leave a star!