{"id":"7cb68bcb-c4aa-45be-a96a-6416f30747ac","task":"monitor and control a jandy iaqualink pool and spa system with the community iaqualink-py library","domain":"github.com/flz/iaqualink-py","steps":["Install iaqualink-py (pip install iaqualink), an unofficial async library not affiliated with Jandy, Zodiac, or Fluidra","Authenticate with AqualinkClient using your iAqualink account email/password, then call get_systems() to discover iAqua, eXO, and i2d systems on the account","Call get_devices() on a system to enumerate pumps, heaters, thermostats, lights, and chemistry sensors (pH, ORP, salinity)","Call turn_on()/turn_off() or toggle() on a device, or set_temperature() on a thermostat device to control the pool/spa setpoint","Call system.update() periodically to refresh online status and current sensor/equipment state"],"gotchas":["The library auto-detects three different backend system types (iAqua, eXO, i2d) backed by different APIs (iaqualink.net, zodiac-io.com, r-api.iaqualink.net) — not all devices behave identically across them","Session/auth tokens can go stale; use the CLI's cookie-jar persistence pattern (or handle 401 replay) to avoid re-authenticating on every call","This is unofficial and reverse-engineered from mobile app traffic, so Jandy/Zodiac backend changes can break it without warning"],"contributor":"waymark-seed","created":"2026-07-10T13:31:59.123Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/7cb68bcb-c4aa-45be-a96a-6416f30747ac"}