Ecovacs Robot Control
Auth Flow
Three-step flow: Login → Device List → Send Command
Full API details in references/api.md. Core script in scripts/ecovacs.py.
Session Management
Session (token + userid + resource) is stored in ~/.ecovacs_session.json after login.
Always load_session() before calling device APIs. Re-login if token expired (errno 3000).
Critical Rule
INLINECODE4 = device's class field from device list (e.g. o0lqjm).
NOT "device" or "USER" — this is the #1 cause of errno:3003 permission denied.
Using the Script
CODEBLOCK0
Direct API Calls
When using tools directly (not script), follow this pattern:
CODEBLOCK1
See references/api.md for full protocol reference:
- - Auth & device discovery — login, resource generation, device list fields
- All command payloads — clean_V2, charge, battery, stats, speed, water, workmode, lifespan, autoEmpty, maps, schedules
- State/event codes — error codes, evt codes, clean states
Common Protocols Quick Reference
| Goal | cmdName | key body.data fields |
|---|
| 开始全屋清扫 | INLINECODE11 | INLINECODE12 |
| 区域清扫 |
clean_V2 |
{act:"start", content:{type:"spotArea",value:"mssid1,mssid2"}} |
| 暂停/继续/停止 |
clean_V2 |
{act:"pause/resume/stop"} |
| 回充 |
charge |
{act:"go"} |
| 查电量 |
getBattery |
{} |
| 查清扫状态 |
getCleanInfo_V2 |
{} |
| 查本次面积时长 |
getStats |
{} |
| 查/设吸力 |
getSpeed/
setSpeed |
{speed:0} (1000静音/0标准/1强劲/2超强) |
| 查/设水量 |
getWaterInfo/
setWaterInfo |
{amount:2} (1低/2中/3高/4超高) |
| 查/设扫拖模式 |
getWorkMode/
setWorkMode |
{mode:0} (0边扫边拖/1仅扫/2仅拖/3先扫后拖) |
| 查耗材 |
getLifeSpan |
{type:"brush,sideBrush,heap,filter"} |
| 手动集尘 |
setAutoEmpty |
{act:"start"} |
| 查地图列表 |
getCachedMapInfo |
{} |
| 查房间区域 |
getMapSet |
{mid:"<map_id>",type:"ar"} |
| 查预约 |
getSched_V2 |
{type:1} |
Error Handling
| errno | meaning |
|---|
| 3000 | Token expired → re-login |
| 3003 |
Permission denied → check
toType = device
class |
| 30000 | Device response timeout → device offline |
| 0 (body.code) | Success |
Accounts (China domestic)
- - Login URL: INLINECODE46
- org:
ECOCN, country: INLINECODE48 - Password: MD5 hex of plaintext
Ecovacs 机器人控制
认证流程
三步流程:登录 → 设备列表 → 发送命令
完整 API 详情见 references/api.md。核心脚本位于 scripts/ecovacs.py。
会话管理
登录后,会话(token + userid + resource)存储在 ~/.ecovacs_session.json 中。
调用设备 API 前务必先执行 load_session()。若 token 过期(errno 3000),需重新登录。
关键规则
toType = 设备列表中设备的 class 字段(例如 o0lqjm)。
不是 device 或 USER —— 这是导致 errno:3003 permission denied 的首要原因。
使用脚本
bash
首次登录
python3 scripts/ecovacs.py login <手机号>
列出所有设备(显示 did、状态、名称)
python3 scripts/ecovacs.py devices
检查电量(使用 did 或昵称)
python3 scripts/ecovacs.py battery
检查清扫状态
python3 scripts/ecovacs.py status
开始全屋自动清扫
python3 scripts/ecovacs.py clean start
暂停 / 继续 / 停止
python3 scripts/ecovacs.py clean pause
python3 scripts/ecovacs.py clean resume
python3 scripts/ecovacs.py clean stop
返回充电座
python3 scripts/ecovacs.py charge
发送任意自定义命令
python3 scripts/ecovacs.py cmd getLifeSpan {type:brush,sideBrush,heap}
python3 scripts/ecovacs.py cmd setSpeed {speed:1}
python3 scripts/ecovacs.py cmd getWorkMode {}
直接 API 调用
当直接使用工具(而非脚本)时,请遵循以下模式:
python
1. 登录
session = login(phone, md5(password))
2. 获取设备
devices = get_devices(session)
device = next(d for d in devices if T50 in d[deviceName])
3. 发送命令
result = sendcmd(session, device, cleanV2, {
act: start,
content: {type: auto, count: 1}
})
完整协议参考见 references/api.md:
- - 认证与设备发现 — 登录、资源生成、设备列表字段
- 所有命令载荷 — clean_V2、charge、battery、stats、speed、water、workmode、lifespan、autoEmpty、maps、schedules
- 状态/事件码 — 错误码、evt 码、清扫状态
常用协议速查表
| 目标 | cmdName | 关键 body.data 字段 |
|---|
| 开始全屋清扫 | cleanV2 | {act:start, content:{type:auto,count:1}} |
| 区域清扫 |
cleanV2 | {act:start, content:{type:spotArea,value:mssid1,mssid2}} |
| 暂停/继续/停止 | clean_V2 | {act:pause/resume/stop} |
| 回充 | charge | {act:go} |
| 查电量 | getBattery | {} |
| 查清扫状态 | getCleanInfo_V2 | {} |
| 查本次面积时长 | getStats | {} |
| 查/设吸力 | getSpeed/setSpeed | {speed:0} (1000静音/0标准/1强劲/2超强) |
| 查/设水量 | getWaterInfo/setWaterInfo | {amount:2} (1低/2中/3高/4超高) |
| 查/设扫拖模式 | getWorkMode/setWorkMode | {mode:0} (0边扫边拖/1仅扫/2仅拖/3先扫后拖) |
| 查耗材 | getLifeSpan | {type:brush,sideBrush,heap,filter} |
| 手动集尘 | setAutoEmpty | {act:start} |
| 查地图列表 | getCachedMapInfo | {} |
| 查房间区域 | getMapSet | {mid:,type:ar} |
| 查预约 | getSched_V2 | {type:1} |
错误处理
| errno | 含义 |
|---|
| 3000 | Token 过期 → 重新登录 |
| 3003 |
权限拒绝 → 检查 toType 是否为设备 class |
| 30000 | 设备响应超时 → 设备离线 |
| 0 (body.code) | 成功 |
账户(中国大陆)
- - 登录 URL:https://api-app.dc-cn.cn.ecouser.net/api/users/user.do
- org:ECOCN,country:CN
- 密码:明文的 MD5 十六进制值