Skip to content

Add VSP (variable speed pump) support for iAqua systems#124

Open
CZyMfnIPC wants to merge 1 commit intoflz:masterfrom
CZyMfnIPC:add-vsp-pump-support
Open

Add VSP (variable speed pump) support for iAqua systems#124
CZyMfnIPC wants to merge 1 commit intoflz:masterfrom
CZyMfnIPC:add-vsp-pump-support

Conversation

@CZyMfnIPC
Copy link
Copy Markdown

Summary

  • Add IaquaPump device class (extends IaquaSwitch) with speed preset read/write support
  • Route _pump device names to IaquaPump in from_data() (backwards-compatible — on/off still works)
  • Add get_vsp_speed() and set_vsp_speed() methods to IaquaSystem
  • Uses undocumented iAquaLink session API commands: get_vsp_speedauxinfo and enable_disable_pump_speedId

Details

The iAquaLink cloud API exposes VSP pump speed data through undocumented session commands (discovered by reverse-engineering the Android APK). This PR adds support for:

  • Reading speed: IaquaPump.fetch_speed(slot_id) calls get_vsp_speedauxinfo and populates speed (RPM), speed_id (active preset 1-8), and speed_presets (all 8 presets with names/RPM values)
  • Setting speed: IaquaPump.set_speed(speed_id, slot_id) calls enable_disable_pump_speedId with on_off_action=on to activate a preset

Tested on a live system: Jandy ePump on AquaLink RS-4 (iAqua system type), successfully switched between speed presets.

Test plan

  • All existing tests pass (185 passed, 4 skipped)
  • _pump devices now create IaquaPump instead of IaquaSwitch
  • IaquaPump inherits all IaquaSwitch behavior (turn_on/turn_off via toggle)
  • Verified on live hardware: read speed presets, switch active preset, verify RPM change

🤖 Generated with Claude Code

Add IaquaPump device class with speed preset read/write via undocumented
iAquaLink session API commands (get_vsp_speedauxinfo, enable_disable_pump_speedId).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant