Hi everyone,
I own an Oklyn pool controller (a French pool monitoring box: pH, ORP, water/air temperature, pump and 2 auxiliary outputs). I originally integrated it with REST sensors, but after building a DIY chlorine doser with a peristaltic pump driven by one of the auxiliaries, the YAML got messy — so I rewrote everything as a proper HACS integration, and I'm sharing it here.
Integration: GitHub - ADNPolymerase/hacs.oklyn: Home Assistant custom integration for Oklyn pool controller · GitHub
- Full UI config, just paste your API key
- pH, ORP/RedOx, water & air temperature sensors
- Pump as a 3-mode select (auto/on/off) with the real running state exposed even in auto mode
- Both auxiliaries: optional, renamable, and configurable as switch (controllable) or regulator (read-only binary_sensor — that's what I use for my chlorine doser, so I can see it running without being able to toggle it by mistake)
Companion card: GitHub - ADNPolymerase/hacs.oklyn-card: Card for Oklyn integration · GitHub
No dependency, full visual editor: pH/ORP with color thresholds, pump buttons, aux controls, and a pH calibration offset (my probe drifts by ~1, I just set -0.99 and the card shows the corrected value).
Both install via HACS → Custom repositories.
I only have one unit to test with, so feedback from other Oklyn owners is very welcome — especially if your aux 2 is actually wired (mine returns HTTP 400). Issues and PRs open on GitHub!
Big update following early feedback! 
ha-oklyn v0.2.5 (integration):
Salt sensor: new sensor.oklyn_salt entity (g/L) for salt water pools
Oklyn model selector in the config flow and options, matching the official lineup:
- Filtration — temperatures, pump, auxiliaries
- Filtration + Analysis — adds pH and RedOx
- Filtration + Analysis + Salt — adds the salt sensor
- Bonus for the base Filtration model: the integration no longer polls the pH/ORP endpoints at all (fewer API calls, no dead entities)
oklyn-card v0.2.10 (Lovelace card):
Same model selector at the top of the card editor: the card only shows the metrics your controller actually has, and the editor only shows the relevant options (no more endless menu)
Salt tile with a configurable green zone (turns orange when out of range)
Customizable auxiliary icons with the native MDI icon picker (search by name)
Per-metric color coding: each metric (pH, RedOx, salt, water temperature) has its own toggle that reveals its min/max thresholds
New optional "Filtration 24h" tile: cumulative actual pump runtime over the last rolling 24 hours, computed from the recorder history — scheduled runs and manual ON both count. Handy to verify your filtration target is actually met
More reliable HACS updates (the card file is now attached as a release asset)
Upgrading: update both through HACS (everything is stable, no beta channel needed), restart HA for the integration, and hard-refresh your browser (Ctrl+Shift+R / Cmd+Shift+R) for the card. Existing configurations migrate automatically — nothing to redo.
I don't own a salt water pool, so the salt sensor is implemented from the API docs without real-world testing: feedback with actual salt readings is very welcome! If everything checks out, v0.3.0 is next. 
Update: v0.2.5 → v0.5.0
New since the last update:
- Pump running binary_sensor — reflects the real electrical state of the pump, independent from the commanded mode (useful to detect if the pump physically stopped despite being commanded ON)
- status attribute on pH, RedOx, temperature and salt sensors — exposes the Oklyn alert level (normal / low / high), which the companion Oklyn Card can use directly for color coding
- Fixed a bug where the "last reading" timestamp was always empty (the API returns the field as "recorded", not "measured_at")
- Added 8 new languages: German, Dutch, Spanish, Italian, Swedish, Norwegian, Danish and Polish (on top of English and French)
Also new: a local, read-only companion integration — ha-oklyn-local. It polls the controller directly over your LAN (HTTP, port 80), no cloud, no account, no token needed. Good fit if you just want to read pH/ORP/temperature/pump status without depending on the Oklyn cloud API. Note it's read-only (no pump/AUX control) — for control you still need the cloud integration above.
Still on the roadmap: HACS default store submission is pending review for all three projects (currently in the community PR queue).
Integration (cloud): GitHub - ADNPolymerase/ha-oklyn: Home Assistant custom integration for Oklyn pool controller · GitHub
Integration (local, read-only): GitHub - ADNPolymerase/ha-oklyn-local: POC Home Assistant custom integration: local read-only polling of an Oklyn pool controller (no cloud, no writes). · GitHub
Companion card: GitHub - ADNPolymerase/oklyn-card: Card for Oklyn integration · GitHub
More of my Home Assistant projects: ADNPolymerase — Home Assistant Projects