← 返回 Skills 市场
ecovacs-ai

ecovacs-skills-pet-control

作者 ecovacs · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
47
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install ecovacs-skills-pet-control
功能描述
Control Ecovacs FAMIBOT (pet) robots via the Open Platform Access Key (AK) and the gateway endpoint POST /robot/skill/pet/cmd, by sending a business cmd plus...
使用说明 (SKILL.md)

Ecovacs Pet (FAMIBOT) Control

What you need

You provide Notes
AK (Access Key) Get one from the Ecovacs Open Platform “Service Overview” (CN: https://open.ecovacs.cn/, INTL: https://open.ecovacs.com/) and put it in your env or pass to set-ak. Do not hand the skill a username/password to log in on your behalf.
Device nickname fragment Used to fuzzy-match nick or name returned by the device list.

Three-step flow

  1. Configure AK (export ECOVACS_AK=... or python3 scripts/ecovacs.py set-ak \x3Cak>)
  2. List devices: python3 scripts/ecovacs.py devices
  3. Control: Use POST /robot/skill/pet/cmd or the script's cmd / display subcommands; cmd must be in the gateway allowlist, otherwise the gateway returns command not enabled.

Run from the repository root: python3 scripts/ecovacs.py .... You may set ECOVACS_PORTAL_URL to a custom gateway base URL; when unset, the default is the CN Open Platform domain.


Usage constraints

  • Only cmd (string) + data (object) are supported; for invalid parameters, trust the error message returned by the cloud.
  • cmd not in the allowlist is rejected; to expose more cmd values, ask a maintainer (or configure PET_CMD_ALLOWLIST).

Response field notes and common set* inputs (externalized)

For field explanations and common set* inputs, see references/schema.md.

Capabilities currently exposed

Name-level only; data is validated by the cloud; actual availability depends on the allowlist check.

Queries

Description cmd
Pet state / emotion / achievements / persona / gender / location & weather / initialization getPetState, getEmotion, getAchievement, getPerson, getPetGender, getLocationInfo, getInitiateState
Microphone / camera / volume / eye brightness / language / wake idle timeout getMicro, getCamera, getVolume, getEyesLight, getLanguage, getWakeTimeout
Latest diary entry getLatestDiary

Deebot-style cmd (battery, work status, consumables, etc.) are not enabled by default; ask a maintainer to enable them if required.

Settings

Description cmd
Microphone / camera / volume / eye brightness / language / wake idle timeout / wake word / gender / initialization setMicro, setCamera, setVolume, setEyesLight, setLanguage, setWakeTimeout, setNickname, setPetGender, setInitiateState

Note: setEyesLight currently returns parameter error (20011) on some hardware, and setCamera may time out (errno=500) on some hardware. Both are not enabled by default; if needed, ask a maintainer to temporarily add them to PET_CMD_ALLOWLIST and verify on a real device.

Control

Description cmd
Display / action sequences (persona, motion sequences, etc.) display
Play sound (high-level wrapper, no raw file) playSound

Before sending any display motion/persona action through scripts/ecovacs.py display ..., the script checks getCamera. If enable != 1, it wakes the pet through the skill gateway with setCamera {"enable":1}, waits until getCamera.enable=1, switches work mode back to standard with setWorkMode {"mode":"standard"}, and only then sends the action. Set ECOVACS_SKIP_WAKE_CHECK=1 only for debugging when you intentionally want to bypass this guard.

Not enabled by default (OTA, Wi-Fi, persona maintenance, data wipe, etc.): adjust the allowlist before invoking.


Script examples

SCRIPT="./scripts/ecovacs.py"

python3 "$SCRIPT" cmd \x3Cnickname-fragment> getPetState '{}'
python3 "$SCRIPT" cmd \x3Cnickname-fragment> getCamera '{}'
python3 "$SCRIPT" cmd \x3Cnickname-fragment> setWakeTimeout '{"timeout":180}'

# Actions go through display; data is the business object
python3 "$SCRIPT" display \x3Cnickname-fragment> personality 127
python3 "$SCRIPT" display \x3Cnickname-fragment> sequence '{"actions":[{"type":"nod_head","angle":"20","moveTimeMs":"800","count":"1","delay":"0","ctrlpoint":""}]}'

# Sound: prefer playSound (server picks a random file and fills moveTimeMs; raw voice file is not exposed)
python3 "$SCRIPT" cmd \x3Cnickname-fragment> playSound '{"category":"happy","count":10}'

HTTP calls (no Python available)

Default gateways: CN https://open.ecovacs.cn, INTL https://open.ecovacs.com (override with ECOVACS_PORTAL_URL if needed).

Device list

curl -sS "${BASE_URL}/robot/skill/deviceList?ak=YOUR_AK"

Pet control

curl -sS -X POST "${BASE_URL}/robot/skill/pet/cmd" -H 'Content-Type: application/json' \
  -d "{\"ak\":\"${AK}\",\"nickName\":\"nickname-fragment\",\"cmd\":\"getPetState\",\"data\":{}}"

The field name must be nickName exactly as above (uppercase N).

Compatibility path: POST /robot/skill/ctl + ctl is still accepted for pet devices and is also subject to the cmd allowlist.


Recommended verification order

Use the script and HTTP examples earlier in this document (get* first, then set* / display) to confirm nickName resolution and allowlist behavior before relying on higher-risk writes.


Errors and troubleshooting (summary)

Case What to do
Outer code != 0 Read msg (invalid AK, device not found, not FAMIBOT, command not enabled)
command not enabled Add the cmd to PET_CMD_ALLOWLIST or ask a maintainer to enable it
setCamera / setWorkMode blocked before a display action Automatic wake-up could not fully run; enable both in the gateway allowlist or wake the pet manually
Token errors like 4504 Check / rotate the AK
3003 Verify nickname matches the right device and that the model supports the capability

More detailed troubleshooting (including "why was this judged not-pet") lives in references/troubleshooting.md.


Doc map

File Audience Content
This SKILL.md Agent / user AK, device list, pet/cmd usage, public capability name-level notes
references/api.md User Gateway URLs and request body fields
references/schema.md User Common response fields, set* input names and compatibility rules
references/troubleshooting.md User Common error branches and resolution paths

Convention: capability boundaries are defined by the gateway allowlist.

安全使用建议
Before installing, make sure you trust the Ecovacs gateway you configure, protect the AK, verify device nicknames before issuing commands, and avoid enabling broad or destructive commands in PET_CMD_ALLOWLIST unless explicitly needed.
功能分析
Type: OpenClaw Skill Name: ecovacs-skills-pet-control Version: 1.0.0 The skill bundle provides tools to control Ecovacs FAMIBOT robots, including camera, microphone, and physical motion. While the logic in `scripts/ecovacs.py` is aligned with the stated purpose, it exhibits high-risk behaviors such as storing the Access Key (AK) in a local plaintext file (`~/.ecovacs_session.json`) and automatically enabling the device's camera (`setCamera`) as a side effect of motion commands. Per the analysis criteria, these risky capabilities (network/file access and hardware control) are classified as suspicious despite the lack of clear malicious intent.
能力评估
Purpose & Capability
The documented purpose, API calls, and helper script align around Ecovacs FAMIBOT discovery, status queries, settings, sounds, and display actions. Some capabilities affect camera/microphone-related state and physical robot behavior, which is expected but sensitive.
Instruction Scope
The skill documents a cmd/data gateway interface and emphasizes an allowlist. Users should avoid widening PET_CMD_ALLOWLIST unless they intentionally want the additional command surface.
Install Mechanism
There is no package install or remote installer shown, and the helper uses Python standard libraries. Registry metadata does not declare the AK credential/env usage even though the docs disclose it.
Credentials
Network calls to the Ecovacs Open Platform are proportional to the purpose. A custom ECOVACS_PORTAL_URL is supported, so users should only set it to a trusted gateway because the AK is sent there.
Persistence & Privilege
The helper can persist the AK in a local home-directory file. This is disclosed and bounded, but users should protect or remove that file if the machine is shared.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ecovacs-skills-pet-control
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ecovacs-skills-pet-control 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
- Initial release of Ecovacs Pet (FAMIBOT) control for the Open Platform. - Rename and refocus the skill for FAMIBOT/pet robots, using POST /robot/skill/pet/cmd APIs. - Document device discovery, the pet command allowlist, supported queries/settings, and basic troubleshooting. - Add user guides for access key setup, device matching, HTTP and script-based control. - Add new reference docs: `schema.md` (fields/cmds) and `troubleshooting.md` (error handling); remove internal agent documentation.
元数据
Slug ecovacs-skills-pet-control
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

ecovacs-skills-pet-control 是什么?

Control Ecovacs FAMIBOT (pet) robots via the Open Platform Access Key (AK) and the gateway endpoint POST /robot/skill/pet/cmd, by sending a business cmd plus... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 47 次。

如何安装 ecovacs-skills-pet-control?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install ecovacs-skills-pet-control」即可一键安装,无需额外配置。

ecovacs-skills-pet-control 是免费的吗?

是的,ecovacs-skills-pet-control 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

ecovacs-skills-pet-control 支持哪些平台?

ecovacs-skills-pet-control 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 ecovacs-skills-pet-control?

由 ecovacs(@ecovacs-ai)开发并维护,当前版本 v1.0.0。

💬 留言讨论