安装与下载
1 ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install iaqualink
2 手动安装
将技能文件夹复制到以下位置之一
~/.openclaw/skills/
{'/skills/'}
优先级:工作区 › 全局 › 内置
3 提示词安装
将此提示词复制到 Openclaw 即可自动安装。
请帮我使用 Clawhub 安装 skill-iaqualink。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
基本信息
iaqualink
安装指南
- ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install iaqualink - 手动安装
将技能文件夹复制到以下位置之一
全局模式
~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置 - 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 iaqualink。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
下载技能 (.zip)
什么是
iAqualink 技能通过 iaqualink-mcp 工具将人工智能代理连接到用户的 iAqua 或 eXO 泳池和水疗系统。它可以报告温度、设定点、设备状态、辅助电路、灯光、日程表,以及在支持的情况下报告氯化器输出和水质化学数据。使用 Openclaw Skills 将自然语言请求(例如检查泳池温度或启动 Spa 模式)转化为系统感知操作。
每次写入操作都会检查当前状态,在需要时请求明确确认,并重新读取系统以验证结果。confirmed 响应意味着观察到了更改;sent-unconfirmed 意味着系统接受了请求,但更新后的状态尚不可见。该技能基于开源的 iaqualink-py 客户端,针对真实泳池的实时验证正在进行中。
应用场景
检查泳池、水疗中心和空气温度、加热器设定点、水泵状态以及可用的化学读数。
打开或关闭水泵、加热器、太阳能加热、辅助电路或泳池灯。
设置泳池或水疗中心的目标温度,并区分更改设定点与打开加热器。
设置可调光灯的亮度或请求支持的颜色效果。
管理 eXO 氯化器产量、增强或低模式、加热、过滤泵和定时器。
查看、添加、编辑或删除 Jandy AquaLink RS 面板程序,或检查 eXO 日程表。
运行一键场景(如 Spa 模式或全部关闭),并管理变速水泵设置。
诊断缺失凭据、拒绝登录、离线面板、日程错误或延迟的设备更新。
工作原理
识别系统。 调用 iaqualink_list_systems 以检索系统序列号和类型。将相关序列号用于后续请求。
读取当前状态。 调用 iaqualink_get_status 获取温度、设定点、设备、辅助电路、灯光以及可用的氯化器或化学数据。选择 full 获取附加灯光效果和原始条目,或选择 raw 获取 iAqualink 响应。
在需要时检查连接性。 使用 iaqualink_healthcheck 检查登录配置和接受情况。使用 iaqualink_check_panel 处理面板、日程、一键、超时或离线问题。
选择适当的操作。 根据请求的更改和系统类型,使用设备、辅助、灯光、温度、氯化器、场景、水泵速度或日程工具。
审查并确认写入。 写入操作会检查请求的状态是否已经设置。如果需要明确确认,请出示预览,获得用户的批准,并使用其 confirmToken 重复该操作。如果草稿已更改,请改为出示刷新后的预览。
验证结果。 confirmed 结果表明重新读取显示了更改。如果结果是 sent-unconfirmed,请明确说明并稍后再次检查状态;不要盲目重试基于切换(toggle)的 iAqua 命令。
准确报告限制和错误。 空读数意味着传感器没有要报告的值。按原样传递面板中止状态详细信息,当面板有未保存的日程编辑时,请勿重试写入。
配置指南
使 iaqualink-mcp 工具可供 Openclaw Skills 代理使用或重新连接托管连接器。提供的技能文档未指定软件包安装命令或连接器特定的配置格式。
通过受支持的环境或托管连接器配置 iAqualink 帐户凭据。请对凭据保密,切勿将真实密码放入聊天或源码控制中。
export IAQUALINK_EMAIL="your-account-email"
export IAQUALINK_PASSWORD="your-account-password"
更正凭据后,重新启动或重新连接 MCP 服务器或托管连接器。如果登录失败,请运行 iaqualink_healthcheck;no_credential 表示未配置凭据,而 credential_rejected 意味着必须更正帐户详细信息。服务器不会重试被拒绝的凭据。
运行 iaqualink_list_systems,选择所需的系统序列号,然后调用 iaqualink_get_status 以在进行更改之前确认其可达性。
对于任何返回 confirmation-required 的写入,请显示其预览并在使用返回的 confirmToken 重新提交之前获得明确的用户批准。
iAqualink Pool & Spa Control 数据架构与分类体系
该技能对由序列号和系统类型标识的帐户系统进行操作。它从 iAqualink 读取实时状态并通过 iaqualink-mcp 发送控制请求;文档未描述本地数据库或生成的文件。
数据区域 组织与详情
系统 序列号和类型:iAqua 或 eXO。可能会列出机器人清洁器,但无法通过此技能进行控制。
状态 温度、加热器设定点、设备状态、带标签的辅助电路、灯光以及可用的氯化器或化学读数。值使用系统的单位(F 或 C);eXO 读数使用 °C。缺失的传感器读数显示为 null。
设备 水泵、加热器、太阳能、eXO 过滤泵和加热,以及氯化器运行模式,具体取决于系统类型。设备状态可以是 off、on、standby 或 enabled。
灯光和电路 辅助电路可以通过编号、标识符(如 aux_3)或标签来寻址。灯光控制支持记录的亮度级别 0、25、50、75 或 100,并在可用时支持效果选择。当前颜色效果无法读回。
日程 iAqua RS 程序包括电路、24 小时起止时间、运行天数以及面板页/行。eXO 日程涵盖水泵、氯化器和辅助定时器。RS 运行 days 包括 All、单个工作日缩写、Wkdays 和 Wkends。
写入确认 写入可能会返回 unchanged、带有 confirmToken 的 confirmation-required、confirmed 或 sent-unconfirmed。过期的确认草稿可能会被拒绝为 DRAFT_CHANGED。
诊断 健康检查报告凭据配置和接受情况;面板检查报告云连接和面板状况,例如 edit_unsaved。日程列表可能包含 webtouchError 和 iQ20 后备。
高级特性
两个受支持的系统系列:
iAqua 面板公开水泵、加热器、设定点、辅助电路、灯光、面板日程、一键场景和变速水泵控件;eXO 系统公开氯化器功能、化学、加热和定时器。
支持确认的写入:
当请求的状态已存在时,操作避免发送命令。没有确认提示的客户端在写入进行之前会收到预览和令牌工作流。
写后读取验证:
结果将经过验证的更改与已被接受但尚未反映在状态中的命令区分开来。这对于异步 eXO 更改尤其重要。
面板日程管理:
在编辑或删除程序之前列出它们;编辑和删除通过列表返回的值来识别行。删除无法撤消,当停止时间早于开始时间时,支持隔夜程序。
面板和 WebTouch 诊断:
在日程或一键错误后检查云状态和面板状态。如果面板有未保存的日程编辑,所有者必须在面板或 WebTouch 中保存或放弃它们;请勿重试写入。
一键和水泵速度控件:
场景充当切换开关,仅在需要时按下。命名的水泵速度选择和更改速度的 RPM 是单独的操作。
具安全意识的操作指导:
加热器激活与设置目标温度是分开的;氯化器定时器必须适合水泵定时器窗口;限速系统在再次轮询之前应给予一定时间。
诚实的未知报告:
如果命令返回
sent-unconfirmed
,则传达结果未经验证的结果。不要盲目重试 iAqua 水泵、加热器或辅助命令,因为它们是切换开关。
name: iaqualink description: Check and control an iAqualink (Zodiac / Jandy iAquaLink / Fluidra) pool or spa through the iaqualink-mcp tools — pool, spa and air temperatures, heater set points, pumps, heaters, lights, aux circuits (cleaner, waterfall, bubbler), salt chlorinator output, salinity, pH and ORP, schedules/timers and OneTouch scenes. Use when the user asks "what's the pool temperature", "is the pool pump running", "turn on the spa", "heat the spa to 102", "turn on the pool lights", "set the pool light to Caribbean Blue", "boost the chlorinator", "what are the pool schedules", "run Spa Mode", or anything about their iAqualink / iAquaLink / eXO system.
iAqualink (iaqualink-mcp)
Tools for the user's own iAqualink pool/spa systems. Two system types are supported: iAqua (Jandy iAquaLink panels — pumps, heaters, set points, aux circuits, lights) and eXO (Zodiac salt chlorinators — chlorine production, boost, low mode, filter pump, heating, pH/ORP). Other devices on the account (robotic cleaners) are listed but not controlled.
Built from the open-source iaqualink-py client; live verification against a real pool is pending. If a write comes back sent-unconfirmed, say so plainly rather than claiming it worked.
Start here
iaqualink_list_systems → serials and types. Most homes have one system; use its serial everywhere else.
iaqualink_get_status { serial } → temperatures, set points, equipment states (off / on / standby / enabled = heating), aux circuits with labels, lights, and chlorinator/chemistry where present. view: "full" adds light effect lists and the raw entries; view: "raw" is iAqualink's own response.
iaqualink_healthcheck when something fails: it says whether a sign-in is configured and whether iAqualink accepted it.
Readings are in the system's own unit (unit: F or C; eXO is always °C). An empty reading (null) means the sensor has nothing to report — e.g. the spa temperature while the spa pump is off.
Changing things
Want Tool
pump / heater / solar on-off; eXO filter pump, production, boost, low, heating iaqualink_set_equipment { serial, equipment, on }
an aux circuit or light on/off (by number, aux_3, or its label) iaqualink_set_aux { serial, aux, on }
dimmable light level (0/25/50/75/100) or color effect iaqualink_set_light { serial, aux, brightness | effect }
pool and/or spa target temperature iaqualink_set_temperature { serial, pool?, spa? }
eXO chlorinator output % iaqualink_set_chlorinator { serial, percent }
run / stop a OneTouch scene (iAqua) iaqualink_set_onetouch { serial, onetouch, on }
add a panel program (iAqua) iaqualink_add_schedule { serial, circuit, start, stop, days }
change a panel program's times/days iaqualink_edit_schedule { serial, page, row, circuit, start, stop, days, newStart?, newStop?, newDays? }
delete a panel program (no undo) iaqualink_delete_schedule { serial, page, row, circuit, start, stop, days }
change or disable an eXO timer iaqualink_set_schedule { serial, schedule, start, stop, rpm?, enabled? }
Every write:
Checks first. If the equipment is already in the requested state it returns status: "unchanged" and sends nothing.
Asks for confirmation. On clients without a prompt the first call returns a confirmation-required preview and a confirmToken; show the preview to the user, get their explicit yes in chat, then repeat the call with the token. If the pool's state changed in between, the token is refused (DRAFT_CHANGED) with a fresh preview — show that one instead.
Verifies. confirmed means a re-read shows the change. sent-unconfirmed means iAqualink accepted it but the re-read did not show it yet — eXO systems apply changes asynchronously; tell the user and check iaqualink_get_status again later. Do not blindly retry: iAqua pump/heater/aux commands are toggles.
Notes:
Turning a heater on lets it heat to the set point; changing the set point alone does not turn the heater on.
A color light's current color cannot be read back, so an effect change is confirmed only by the light being on.
iaqualink_set_chlorinator uses an inferred request shape (not in the reference client) — trust it only when the result is confirmed.
Schedules and scenes
iaqualink_list_schedules { serial } — on a Jandy AquaLink RS panel (iAqua): the panel's own programs (circuit, 24-hour start/stop plus the panel's text, run days, and the page/row each sits at), read through WebTouch. eXO: pump / chlorinator / aux timers. If WebTouch is unavailable the result says so (webtouchError) and shows the iQ20 fallback instead.
RS panel programs: iaqualink_add_schedule, iaqualink_edit_schedule, iaqualink_delete_schedule. Edit and delete identify a program by exactly what the list showed (page, row, circuit, start, stop, days) — always list first. Times are 24-hour HH:MM; a stop earlier than the start runs overnight. Run days are the panel's: All, M, Tu, W, Th, F, Sa, Su, Wkdays, Wkends. The preview shows the list before and after; confirmed means a fresh re-read matched. Delete has no undo.
If a panel write aborts, the error says exactly what state the panel was left in (e.g. "in Edit mode with UNSAVED changes") — relay it verbatim.
eXO timers: iaqualink_set_schedule; a chlorinator timer must sit inside its pump timer's window, and enabled: false clears a timer.
iaqualink_check_panel — first stop when a schedule/OneTouch tool reports a dialog or a timeout, or the app shows the system offline: reports the cloud online flag and what the panel shows. edit_unsaved means the panel is in schedule Edit mode with unsaved changes; the owner must Save or discard them at the panel or in WebTouch — do not retry the write.
iaqualink_list_pump_speeds / iaqualink_set_pump_speed / iaqualink_set_pump_speed_rpm — an RS panel's variable-speed pump. Pressing a named speed on the panel runs the pump at it at once, so "switch speed" and "change a speed's RPM" are separate tools; changing a speed that is not running runs it for a few seconds and then switches back.
iaqualink_list_onetouch / iaqualink_set_onetouch — the panel's one-button scenes ("Spa Mode", "All OFF"), via WebTouch. The button is a toggle; it is pressed only when the scene is not already in the requested state.
Trouble
no_credential → the user needs to set IAQUALINK_EMAIL / IAQUALINK_PASSWORD (or reconnect the hosted connector).
credential_rejected → the email/password is wrong. The server will not retry it (so the account cannot be locked); the user must fix it and restart or reconnect.
Rate limited → wait a minute; eXO systems in particular dislike fast polling.
System online: false → the panel is offline from iAqualink's cloud; nothing can be controlled until it reconnects.
通过 curl 使用 iAqualink
铲雪策略师