roborock-cli 0.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- roborock_cli/__init__.py +3 -0
- roborock_cli/__main__.py +76 -0
- roborock_cli/_vendor/VERSION +6 -0
- roborock_cli/_vendor/__init__.py +0 -0
- roborock_cli/_vendor/roborock/__init__.py +27 -0
- roborock_cli/_vendor/roborock/broadcast_protocol.py +114 -0
- roborock_cli/_vendor/roborock/callbacks.py +130 -0
- roborock_cli/_vendor/roborock/cli.py +1338 -0
- roborock_cli/_vendor/roborock/const.py +84 -0
- roborock_cli/_vendor/roborock/data/__init__.py +9 -0
- roborock_cli/_vendor/roborock/data/b01_q10/__init__.py +2 -0
- roborock_cli/_vendor/roborock/data/b01_q10/b01_q10_code_mappings.py +213 -0
- roborock_cli/_vendor/roborock/data/b01_q10/b01_q10_containers.py +102 -0
- roborock_cli/_vendor/roborock/data/b01_q7/__init__.py +2 -0
- roborock_cli/_vendor/roborock/data/b01_q7/b01_q7_code_mappings.py +303 -0
- roborock_cli/_vendor/roborock/data/b01_q7/b01_q7_containers.py +302 -0
- roborock_cli/_vendor/roborock/data/code_mappings.py +198 -0
- roborock_cli/_vendor/roborock/data/containers.py +530 -0
- roborock_cli/_vendor/roborock/data/dyad/__init__.py +2 -0
- roborock_cli/_vendor/roborock/data/dyad/dyad_code_mappings.py +102 -0
- roborock_cli/_vendor/roborock/data/dyad/dyad_containers.py +28 -0
- roborock_cli/_vendor/roborock/data/v1/__init__.py +3 -0
- roborock_cli/_vendor/roborock/data/v1/v1_clean_modes.py +192 -0
- roborock_cli/_vendor/roborock/data/v1/v1_code_mappings.py +644 -0
- roborock_cli/_vendor/roborock/data/v1/v1_containers.py +800 -0
- roborock_cli/_vendor/roborock/data/zeo/__init__.py +2 -0
- roborock_cli/_vendor/roborock/data/zeo/zeo_code_mappings.py +138 -0
- roborock_cli/_vendor/roborock/data/zeo/zeo_containers.py +0 -0
- roborock_cli/_vendor/roborock/device_features.py +668 -0
- roborock_cli/_vendor/roborock/devices/README.md +41 -0
- roborock_cli/_vendor/roborock/devices/__init__.py +11 -0
- roborock_cli/_vendor/roborock/devices/cache.py +143 -0
- roborock_cli/_vendor/roborock/devices/device.py +240 -0
- roborock_cli/_vendor/roborock/devices/device_manager.py +269 -0
- roborock_cli/_vendor/roborock/devices/file_cache.py +79 -0
- roborock_cli/_vendor/roborock/devices/rpc/__init__.py +14 -0
- roborock_cli/_vendor/roborock/devices/rpc/a01_channel.py +94 -0
- roborock_cli/_vendor/roborock/devices/rpc/b01_q10_channel.py +57 -0
- roborock_cli/_vendor/roborock/devices/rpc/b01_q7_channel.py +101 -0
- roborock_cli/_vendor/roborock/devices/rpc/v1_channel.py +457 -0
- roborock_cli/_vendor/roborock/devices/traits/__init__.py +28 -0
- roborock_cli/_vendor/roborock/devices/traits/a01/__init__.py +191 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/__init__.py +12 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q10/__init__.py +76 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q10/command.py +32 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q10/common.py +115 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q10/status.py +32 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q10/vacuum.py +81 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q7/__init__.py +136 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q7/clean_summary.py +75 -0
- roborock_cli/_vendor/roborock/devices/traits/traits_mixin.py +64 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/__init__.py +344 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/child_lock.py +29 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/clean_summary.py +83 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/command.py +38 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/common.py +172 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/consumeable.py +48 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/device_features.py +74 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/do_not_disturb.py +41 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/dust_collection_mode.py +13 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/flow_led_status.py +29 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/home.py +285 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/led_status.py +43 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/map_content.py +83 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/maps.py +80 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/network_info.py +55 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/rooms.py +105 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/routines.py +26 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/smart_wash_params.py +13 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/status.py +101 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/valley_electricity_timer.py +44 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/volume.py +27 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/wash_towel_mode.py +13 -0
- roborock_cli/_vendor/roborock/devices/transport/__init__.py +8 -0
- roborock_cli/_vendor/roborock/devices/transport/channel.py +32 -0
- roborock_cli/_vendor/roborock/devices/transport/local_channel.py +295 -0
- roborock_cli/_vendor/roborock/devices/transport/mqtt_channel.py +118 -0
- roborock_cli/_vendor/roborock/diagnostics.py +166 -0
- roborock_cli/_vendor/roborock/exceptions.py +95 -0
- roborock_cli/_vendor/roborock/map/__init__.py +7 -0
- roborock_cli/_vendor/roborock/map/map_parser.py +123 -0
- roborock_cli/_vendor/roborock/mqtt/__init__.py +10 -0
- roborock_cli/_vendor/roborock/mqtt/health_manager.py +60 -0
- roborock_cli/_vendor/roborock/mqtt/roborock_session.py +463 -0
- roborock_cli/_vendor/roborock/mqtt/session.py +108 -0
- roborock_cli/_vendor/roborock/protocol.py +558 -0
- roborock_cli/_vendor/roborock/protocols/__init__.py +3 -0
- roborock_cli/_vendor/roborock/protocols/a01_protocol.py +74 -0
- roborock_cli/_vendor/roborock/protocols/b01_q10_protocol.py +87 -0
- roborock_cli/_vendor/roborock/protocols/b01_q7_protocol.py +81 -0
- roborock_cli/_vendor/roborock/protocols/v1_protocol.py +271 -0
- roborock_cli/_vendor/roborock/py.typed +0 -0
- roborock_cli/_vendor/roborock/roborock_message.py +246 -0
- roborock_cli/_vendor/roborock/roborock_typing.py +382 -0
- roborock_cli/_vendor/roborock/util.py +54 -0
- roborock_cli/_vendor/roborock/web_api.py +761 -0
- roborock_cli/cli.py +715 -0
- roborock_cli/connection.py +202 -0
- roborock_cli/helpers.py +71 -0
- roborock_cli/server.py +759 -0
- roborock_cli/setup_auth.py +92 -0
- roborock_cli-0.1.1.dist-info/METADATA +172 -0
- roborock_cli-0.1.1.dist-info/RECORD +106 -0
- roborock_cli-0.1.1.dist-info/WHEEL +4 -0
- roborock_cli-0.1.1.dist-info/entry_points.txt +2 -0
- roborock_cli-0.1.1.dist-info/licenses/LICENSE +674 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"""
|
|
2
|
+
首次认证脚本
|
|
3
|
+
|
|
4
|
+
通过交互式输入邮箱验证码完成认证,将 UserData 缓存到本地 JSON 文件。
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import json
|
|
8
|
+
import os
|
|
9
|
+
import ssl
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
|
|
12
|
+
import aiohttp
|
|
13
|
+
import certifi
|
|
14
|
+
from roborock_cli._vendor.roborock.web_api import RoborockApiClient
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
CACHE_DIR = Path.home() / ".cache" / "roborock-cli"
|
|
18
|
+
TOKEN_FILE = CACHE_DIR / "user_data.json"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
async def setup():
|
|
22
|
+
"""交互式认证流程"""
|
|
23
|
+
print("=" * 50)
|
|
24
|
+
print(" Roborock CLI 首次认证")
|
|
25
|
+
print("=" * 50)
|
|
26
|
+
|
|
27
|
+
email = input("\n请输入 Roborock 账户邮箱: ").strip()
|
|
28
|
+
if not email:
|
|
29
|
+
print("错误:邮箱不能为空")
|
|
30
|
+
return
|
|
31
|
+
|
|
32
|
+
ssl_ctx = ssl.create_default_context(cafile=certifi.where())
|
|
33
|
+
connector = aiohttp.TCPConnector(ssl=ssl_ctx)
|
|
34
|
+
session = aiohttp.ClientSession(connector=connector)
|
|
35
|
+
|
|
36
|
+
try:
|
|
37
|
+
web_api = RoborockApiClient(username=email, session=session)
|
|
38
|
+
|
|
39
|
+
print(f"\n正在向 {email} 发送验证码...")
|
|
40
|
+
try:
|
|
41
|
+
await web_api.request_code_v4()
|
|
42
|
+
except Exception as e:
|
|
43
|
+
print(f"发送验证码失败: {e}")
|
|
44
|
+
return
|
|
45
|
+
|
|
46
|
+
print("验证码已发送,请查收邮件")
|
|
47
|
+
|
|
48
|
+
code = input("\n请输入收到的验证码: ").strip()
|
|
49
|
+
if not code:
|
|
50
|
+
print("错误:验证码不能为空")
|
|
51
|
+
return
|
|
52
|
+
|
|
53
|
+
print("正在验证...")
|
|
54
|
+
try:
|
|
55
|
+
user_data = await web_api.code_login_v4(code)
|
|
56
|
+
except Exception as e:
|
|
57
|
+
print(f"验证失败: {e}")
|
|
58
|
+
return
|
|
59
|
+
finally:
|
|
60
|
+
await session.close()
|
|
61
|
+
|
|
62
|
+
# 保存缓存(不保存 base_url,让 SDK 自动发现)
|
|
63
|
+
CACHE_DIR.mkdir(parents=True, exist_ok=True)
|
|
64
|
+
data = {
|
|
65
|
+
"email": email,
|
|
66
|
+
"user_data": user_data.as_dict(),
|
|
67
|
+
}
|
|
68
|
+
fd = os.open(TOKEN_FILE, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600)
|
|
69
|
+
with os.fdopen(fd, "w") as f:
|
|
70
|
+
json.dump(data, f, indent=2)
|
|
71
|
+
|
|
72
|
+
print(f"\n认证成功!")
|
|
73
|
+
print(f"缓存已保存到: {TOKEN_FILE}")
|
|
74
|
+
print("\n现在可以使用 CLI 了:")
|
|
75
|
+
print(" roborock-cli devices")
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def main():
|
|
79
|
+
import sys
|
|
80
|
+
import anyio
|
|
81
|
+
|
|
82
|
+
if sys.platform == "win32":
|
|
83
|
+
import asyncio
|
|
84
|
+
backend_options = {"loop_factory": asyncio.SelectorEventLoop}
|
|
85
|
+
else:
|
|
86
|
+
backend_options = {}
|
|
87
|
+
|
|
88
|
+
anyio.run(setup, backend_options=backend_options)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
if __name__ == "__main__":
|
|
92
|
+
main()
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: roborock-cli
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Roborock 扫地机 CLI 控制工具
|
|
5
|
+
License-Expression: GPL-3.0-only
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Requires-Python: >=3.12
|
|
8
|
+
Requires-Dist: aiohttp<4,>=3.8.2
|
|
9
|
+
Requires-Dist: aiomqtt<3,>=2.5.0
|
|
10
|
+
Requires-Dist: certifi
|
|
11
|
+
Requires-Dist: click-shell~=2.1
|
|
12
|
+
Requires-Dist: click>=8
|
|
13
|
+
Requires-Dist: construct<3,>=2.10.57
|
|
14
|
+
Requires-Dist: mcp[cli]>=1.6.0
|
|
15
|
+
Requires-Dist: paho-mqtt<3.0.0,>=1.6.1
|
|
16
|
+
Requires-Dist: pycryptodomex~=3.18; sys_platform == 'darwin'
|
|
17
|
+
Requires-Dist: pycryptodome~=3.18
|
|
18
|
+
Requires-Dist: pyrate-limiter<5,>=4.0.0
|
|
19
|
+
Requires-Dist: vacuum-map-parser-roborock
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+
# roborock-cli
|
|
23
|
+
|
|
24
|
+
Roborock 扫地机 CLI 控制工具,也可作为 MCP 服务器使用。
|
|
25
|
+
|
|
26
|
+
## 功能
|
|
27
|
+
|
|
28
|
+
提供 15 个 CLI 命令,支持多设备(通过设备名称模糊匹配选择目标设备)。
|
|
29
|
+
|
|
30
|
+
### 查询命令(5 个)
|
|
31
|
+
|
|
32
|
+
| 命令 | 说明 |
|
|
33
|
+
|------|------|
|
|
34
|
+
| `roborock-cli devices` | 列出所有设备(名称、型号、DUID、固件版本) |
|
|
35
|
+
| `roborock-cli status` | 设备精简状态(电量、清洁进度、耗材、房间列表等) |
|
|
36
|
+
| `roborock-cli map` | 获取地图元数据和图片 |
|
|
37
|
+
| `roborock-cli routines` | 列出智能场景 |
|
|
38
|
+
| `roborock-cli auth` | 交互式认证(需要 TTY) |
|
|
39
|
+
|
|
40
|
+
### 控制命令(10 个)
|
|
41
|
+
|
|
42
|
+
| 命令 | 说明 |
|
|
43
|
+
|------|------|
|
|
44
|
+
| `roborock-cli start-clean` | 开始清洁(全屋或指定房间) |
|
|
45
|
+
| `roborock-cli stop-clean` | 停止清洁 |
|
|
46
|
+
| `roborock-cli pause-clean` | 暂停清洁 |
|
|
47
|
+
| `roborock-cli resume-clean` | 恢复清洁 |
|
|
48
|
+
| `roborock-cli go-home` | 回充电座 |
|
|
49
|
+
| `roborock-cli find-robot` | 寻找机器人(发出声音) |
|
|
50
|
+
| `roborock-cli dock-action` | 基座操作(集尘/洗拖布) |
|
|
51
|
+
| `roborock-cli set-volume` | 设置音量(0-100) |
|
|
52
|
+
| `roborock-cli set-dnd` | 设置勿扰模式 |
|
|
53
|
+
| `roborock-cli execute-routine` | 执行智能场景 |
|
|
54
|
+
|
|
55
|
+
## 安装使用
|
|
56
|
+
|
|
57
|
+
### 前置:安装 uv
|
|
58
|
+
|
|
59
|
+
本项目通过 `uvx` 运行,需要先安装 [uv](https://docs.astral.sh/uv/):
|
|
60
|
+
|
|
61
|
+
**macOS / Linux**
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Windows**
|
|
68
|
+
|
|
69
|
+
```powershell
|
|
70
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
安装后终端输入 `uvx --version` 验证。
|
|
74
|
+
|
|
75
|
+
### 通过 uvx(推荐)
|
|
76
|
+
|
|
77
|
+
**1. 首次认证**
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
uvx roborock-cli auth
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
按提示输入 Roborock 账户邮箱和验证码,认证信息保存在 `~/.cache/roborock-cli/`。
|
|
84
|
+
|
|
85
|
+
**2. 使用 CLI**
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# 列出设备
|
|
89
|
+
roborock-cli devices
|
|
90
|
+
|
|
91
|
+
# 查看状态
|
|
92
|
+
roborock-cli status
|
|
93
|
+
|
|
94
|
+
# 开始全屋清洁
|
|
95
|
+
roborock-cli start-clean
|
|
96
|
+
|
|
97
|
+
# 开始房间清洁(房间 ID 通过 status 命令获取)
|
|
98
|
+
roborock-cli start-clean -s 1 2 3
|
|
99
|
+
|
|
100
|
+
# 回充电座
|
|
101
|
+
roborock-cli go-home
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 作为 MCP 服务器使用
|
|
105
|
+
|
|
106
|
+
roborock-cli 也可以作为 MCP 服务器运行,供 Claude Desktop/Code 等客户端使用:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
roborock-cli mcp
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**配置 Claude Code**
|
|
113
|
+
|
|
114
|
+
在项目目录创建 `.mcp.json`:
|
|
115
|
+
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"mcpServers": {
|
|
119
|
+
"roborock": {
|
|
120
|
+
"command": "uvx",
|
|
121
|
+
"args": ["roborock-cli@latest", "mcp"]
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### 开发模式
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# 需要先 clone python-roborock 到 ./python-roborock/
|
|
131
|
+
uv venv --python 3.12
|
|
132
|
+
source .venv/bin/activate
|
|
133
|
+
uv pip install -e .
|
|
134
|
+
|
|
135
|
+
roborock-cli --help # CLI 帮助
|
|
136
|
+
roborock-cli auth # 认证
|
|
137
|
+
roborock-cli mcp # 启动 MCP server
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## 输出格式
|
|
141
|
+
|
|
142
|
+
CLI 命令默认输出 JSON 格式,便于程序解析:
|
|
143
|
+
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"count": 2,
|
|
147
|
+
"devices": [
|
|
148
|
+
{"name": "客厅扫地机", "duid": "abc123", "model": "roborock.vacuum.a75", "firmware": "02.00.01"},
|
|
149
|
+
{"name": "卧室扫地机", "duid": "def456", "model": "roborock.vacuum.s8", "firmware": "02.00.02"}
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## 错误退出码
|
|
155
|
+
|
|
156
|
+
| 退出码 | 含义 |
|
|
157
|
+
|--------|------|
|
|
158
|
+
| 0 | 成功 |
|
|
159
|
+
| 1 | 通用业务错误 |
|
|
160
|
+
| 2 | 认证错误(需重新运行 `roborock-cli auth`) |
|
|
161
|
+
| 3 | 设备错误 |
|
|
162
|
+
| 4 | 参数无效 |
|
|
163
|
+
| 5 | 内部错误 |
|
|
164
|
+
|
|
165
|
+
## 要求
|
|
166
|
+
|
|
167
|
+
- Python >= 3.12
|
|
168
|
+
- Roborock 账户(国际版,邮箱注册)
|
|
169
|
+
|
|
170
|
+
## 许可证
|
|
171
|
+
|
|
172
|
+
GPL-3.0-only(由于 vendoring 了 [python-roborock](https://github.com/humbertogontijo/python-roborock))
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
roborock_cli/__init__.py,sha256=ayAazwsLSEnfhY8YCsuZ8lVAxN_0CecUC-qmRkOBXsk,105
|
|
2
|
+
roborock_cli/__main__.py,sha256=OvJF3tHA7F2f9PhSYanm5QEL3Wxo2mQnb5K3QSAKzqc,2251
|
|
3
|
+
roborock_cli/cli.py,sha256=586avjeqPqKdVL5-yuJH62uoxDR7-RJYl1NMjqVe3ec,24906
|
|
4
|
+
roborock_cli/connection.py,sha256=HS0kL0DJWzvA0iprStwDVRIE4xJYz7IRXaC5MIy3Kng,6286
|
|
5
|
+
roborock_cli/helpers.py,sha256=c6y9UEOlVzDumypfKS5a6arazAJr6VRfJYhYqwVdmF8,2728
|
|
6
|
+
roborock_cli/server.py,sha256=xZzxv8fjtIiF_BIX0IRmi6EH8L7VT7bAfhWy3_D5-Eg,26484
|
|
7
|
+
roborock_cli/setup_auth.py,sha256=0E7PdV88cZzMnOZmnJwDDbzdvFMJRauo4oFvxWwOFbQ,2384
|
|
8
|
+
roborock_cli/_vendor/VERSION,sha256=QAgfL2MjIY7_o7gq388X1jBewQ2622k5qaogMkUVaSM,229
|
|
9
|
+
roborock_cli/_vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
roborock_cli/_vendor/roborock/__init__.py,sha256=DVel3ZT0hJQR1Zg1UNykEx7ab4RNm_I5p-1CxjiT-40,438
|
|
11
|
+
roborock_cli/_vendor/roborock/broadcast_protocol.py,sha256=KPhgIJTueSjXf1g1g_0HfXs4trp3r5jDhaSvSoR8LHE,4114
|
|
12
|
+
roborock_cli/_vendor/roborock/callbacks.py,sha256=ftPsPk1lcHMyRuFFy2OX9RTdpjp9KSHi13KIcv_pRwg,4277
|
|
13
|
+
roborock_cli/_vendor/roborock/cli.py,sha256=G6-VwaKRsD2gmzuQDh_s1nttPQvqYPvY7m0VyiY2LqQ,49457
|
|
14
|
+
roborock_cli/_vendor/roborock/const.py,sha256=fWpgUPrCgLnaXmncgjCLZET-t7wHWQlpyzV8qHtTjb4,2860
|
|
15
|
+
roborock_cli/_vendor/roborock/device_features.py,sha256=9GaNAktQMXXFlbOBtXrGs0fZqsSuzuTo3twReNnqvQ8,35982
|
|
16
|
+
roborock_cli/_vendor/roborock/diagnostics.py,sha256=DpsFiGAoPGSVTkavwA1Yed61NYWehBUiOcchjAomTXg,5136
|
|
17
|
+
roborock_cli/_vendor/roborock/exceptions.py,sha256=bP6_h_YMxM82bC9VGAPzbcjaJ8aHvwwcL1ioVAxNQQE,2644
|
|
18
|
+
roborock_cli/_vendor/roborock/protocol.py,sha256=zoWvb0wKYBzSQjl-Y5kCBp7EA7a9vWAJ0O6pTwFSrfk,20313
|
|
19
|
+
roborock_cli/_vendor/roborock/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
+
roborock_cli/_vendor/roborock/roborock_message.py,sha256=ftRgd9MP3pOh1J61jIRmyt0qyvP6z5MyNGnwJSGROL0,6518
|
|
21
|
+
roborock_cli/_vendor/roborock/roborock_typing.py,sha256=z8XrUY7btaDWLtjRq-SoYUb2K27iMVrzh4yYntagTKY,17152
|
|
22
|
+
roborock_cli/_vendor/roborock/util.py,sha256=nwSH5ZGnqUgVrVC-Iejc3YzlP9ufhv31VKq16GivdT8,1707
|
|
23
|
+
roborock_cli/_vendor/roborock/web_api.py,sha256=U-z4o8a52yosG9IAsmi0g6ixoOy01krBssE0HgWLduE,33651
|
|
24
|
+
roborock_cli/_vendor/roborock/data/__init__.py,sha256=DikqaVM7VPVddkBNkHSss5zb1_iKB7GYmc2GiHoMAkA,257
|
|
25
|
+
roborock_cli/_vendor/roborock/data/code_mappings.py,sha256=1xejDPDbOZciZ9lBJUp_tZJOXQqW7BL4MwYcQ_dyY50,7741
|
|
26
|
+
roborock_cli/_vendor/roborock/data/containers.py,sha256=tCq2b1iG9lQzNhZyt0g-zbyO3ae68fQ0VHnhzdyLWlc,15831
|
|
27
|
+
roborock_cli/_vendor/roborock/data/b01_q10/__init__.py,sha256=E4lwJcz4AI1z92FcYOJ-cY3fcfHSoXqvYVgfA-TgaRk,71
|
|
28
|
+
roborock_cli/_vendor/roborock/data/b01_q10/b01_q10_code_mappings.py,sha256=UUSLHVyxHR5-BSXM265JoJOloIx4ttzvO6tdm3MNylY,7730
|
|
29
|
+
roborock_cli/_vendor/roborock/data/b01_q10/b01_q10_containers.py,sha256=ycHqetaQdZ2yrroxtXJ8prgYmeyufaSJUZo2cMx8O7k,2755
|
|
30
|
+
roborock_cli/_vendor/roborock/data/b01_q7/__init__.py,sha256=D-Cd8eB0njf1PQPM6Exl_9A0AhpzIjrL0hapGOCEkkA,69
|
|
31
|
+
roborock_cli/_vendor/roborock/data/b01_q7/b01_q7_code_mappings.py,sha256=EHSCZSv_Os049NcenKo4tkPjDOB4vpmQ2p2Psr9FRCc,10698
|
|
32
|
+
roborock_cli/_vendor/roborock/data/b01_q7/b01_q7_containers.py,sha256=nP0fuPaFLjHsHJi3GLzncafpzuLZxWn9cNj7UjwHNBs,9290
|
|
33
|
+
roborock_cli/_vendor/roborock/data/dyad/__init__.py,sha256=Ksx7Ri1alsAYAyILOpj9iNbCC_6sF7xvETFRnTO4rdM,65
|
|
34
|
+
roborock_cli/_vendor/roborock/data/dyad/dyad_code_mappings.py,sha256=MVhAuQaI2TcDBMQKQcbRk4MbFObx_5XEXTc3n4uAeWc,2836
|
|
35
|
+
roborock_cli/_vendor/roborock/data/dyad/dyad_containers.py,sha256=klJD2wV-2McjAoSN8Bthuyeid59L7M8nzSvc3MtmqOI,434
|
|
36
|
+
roborock_cli/_vendor/roborock/data/v1/__init__.py,sha256=Lx_D6baZrCMxp57D0NcdiA8rssJ5NnInZwUwrT79XOI,91
|
|
37
|
+
roborock_cli/_vendor/roborock/data/v1/v1_clean_modes.py,sha256=jfW4ZkleG_Vkt6DILI9-jn1P6QKPJCdAEKZln3iyHc8,7215
|
|
38
|
+
roborock_cli/_vendor/roborock/data/v1/v1_code_mappings.py,sha256=fchsvYjv0Q4Q8XnU8LDBTVoy1kT7VWrzkS8l7F96Wsw,14406
|
|
39
|
+
roborock_cli/_vendor/roborock/data/v1/v1_containers.py,sha256=5GACj0249Ibn4Ba8DrmGZO93RKnkmpJ-8v05SIEHpHY,25017
|
|
40
|
+
roborock_cli/_vendor/roborock/data/zeo/__init__.py,sha256=VxG5qG4M24DGOq2YAaxownWp6bEfj9DEOgOMHmTpcqY,63
|
|
41
|
+
roborock_cli/_vendor/roborock/data/zeo/zeo_code_mappings.py,sha256=aj-TBjLWzxSBzpBESOtwNeFwD2rv-Jj95RZidO28szA,2319
|
|
42
|
+
roborock_cli/_vendor/roborock/data/zeo/zeo_containers.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
|
+
roborock_cli/_vendor/roborock/devices/README.md,sha256=zjssyRIlFWTgQz8hLdsJC9_stlHdUQybz7r2af_8q1k,2186
|
|
44
|
+
roborock_cli/_vendor/roborock/devices/__init__.py,sha256=yOWuncnp5wwKPLzcnblsBMGD0v8hcDDDC_x7YdSrN70,129
|
|
45
|
+
roborock_cli/_vendor/roborock/devices/cache.py,sha256=Qzqs-ST6gDiCGozTqCsk5_xLJ5JUh4VeFgpW_q-ZM4w,4675
|
|
46
|
+
roborock_cli/_vendor/roborock/devices/device.py,sha256=0nmRG8aj2Vn-TJ66VzbZV61GAbzBUz2b-c3Pkq-P6Vw,9094
|
|
47
|
+
roborock_cli/_vendor/roborock/devices/device_manager.py,sha256=oEl-LPgTiJVx7RqnWbctjDQsDlx_ORZOEf1Q6KA8TmA,10836
|
|
48
|
+
roborock_cli/_vendor/roborock/devices/file_cache.py,sha256=Qc4k9-tOOC9rzvJD8Jv0JSu8MiAPMGksfzQmqEZ8wUI,2805
|
|
49
|
+
roborock_cli/_vendor/roborock/devices/rpc/__init__.py,sha256=MDtZovvHi3F4Wbgyzu6gyjAjkZ6xYGU1LRQmtiIapuU,561
|
|
50
|
+
roborock_cli/_vendor/roborock/devices/rpc/a01_channel.py,sha256=16cSwjNCSNC1Tpth0Ez8S_bHLAtSMfIbL94qvnXqW9I,3434
|
|
51
|
+
roborock_cli/_vendor/roborock/devices/rpc/b01_q10_channel.py,sha256=WyBEZc9pHjWt9z8yBw03oPZjG3drUDosT2mpgw8VPoY,1858
|
|
52
|
+
roborock_cli/_vendor/roborock/devices/rpc/b01_q7_channel.py,sha256=2nsT_zGy06_qB6VfL2ZP6TlLmg3VkHj2rOQ29Tgu018,3953
|
|
53
|
+
roborock_cli/_vendor/roborock/devices/rpc/v1_channel.py,sha256=HXmK2maW9GFs6sHp8pvCgq21w7aM2yjM637JAexevQM,19471
|
|
54
|
+
roborock_cli/_vendor/roborock/devices/traits/__init__.py,sha256=YaL9qoxG6IBG0XXDP0HMTvoc0Jkmq7AF6iH2oYWNtcg,765
|
|
55
|
+
roborock_cli/_vendor/roborock/devices/traits/traits_mixin.py,sha256=7t15l_Ty1cN-3-fKNtRH1XR6-mfadPnTBCQRZP4rAtc,2092
|
|
56
|
+
roborock_cli/_vendor/roborock/devices/traits/a01/__init__.py,sha256=YMhSidQcYkFw_TXfsG5a-uCgq9eNw-CGpWDvrP6izp0,8251
|
|
57
|
+
roborock_cli/_vendor/roborock/devices/traits/b01/__init__.py,sha256=pGN6wEocE6Fr2BTasG8Z_75crD6OdTwpju59Vw7eTDk,202
|
|
58
|
+
roborock_cli/_vendor/roborock/devices/traits/b01/q10/__init__.py,sha256=scApTeuyydJ348tQVMDRCQQt5zkzsOfYBu9vy1dSV8o,2725
|
|
59
|
+
roborock_cli/_vendor/roborock/devices/traits/b01/q10/command.py,sha256=pPPlgh1v0kBYg8w0xizmcIHj1Kxcs-QbH6b1J5fd77U,1390
|
|
60
|
+
roborock_cli/_vendor/roborock/devices/traits/b01/q10/common.py,sha256=F4jG7B-dOOvKwklbHb8AcDqmTgtlELkbNe5mp8UWKwM,4559
|
|
61
|
+
roborock_cli/_vendor/roborock/devices/traits/b01/q10/status.py,sha256=Z4ofpVpEuOCyiTnOjuAyraRhZCkBKaAcWMiRLwcycc0,1153
|
|
62
|
+
roborock_cli/_vendor/roborock/devices/traits/b01/q10/vacuum.py,sha256=vUOEDjXqVGqaXRGtGyGtsXsm-zTABPDi_84K6a4elH8,2301
|
|
63
|
+
roborock_cli/_vendor/roborock/devices/traits/b01/q7/__init__.py,sha256=x-hGa-Ak-OIWrAmB0QLZ6dlBawNPAB9uHpGPGcCYvT4,4970
|
|
64
|
+
roborock_cli/_vendor/roborock/devices/traits/b01/q7/clean_summary.py,sha256=zGi7Cr41xzYURFwJM05GT5SsxC3Rg9SHnMUmEwLcmPc,3099
|
|
65
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/__init__.py,sha256=NSPvyoZaMid-h1X_0jRnszXnOTdEMGqQrPv0kbt9S80,13949
|
|
66
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/child_lock.py,sha256=A4T-E6_BK6O6V0kOiX0PsHnGXsQxEJaE7RGjhEWiqqM,1167
|
|
67
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/clean_summary.py,sha256=sNcpp-0oR5DpDjxzbYI9aXCjSIif35hW2nHlKwmrgUM,4037
|
|
68
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/command.py,sha256=4Tv1bf9tlXMVkBRCnCf746k7pXXftlKE-98y4c0ApsU,1536
|
|
69
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/common.py,sha256=oqDABXZpJ8rG6uMobCzxEtCVU9icqMEdMVwRG8XqKxA,6519
|
|
70
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/consumeable.py,sha256=wRS5V4g52Sz2JBKVe0kD03tpr32toxxP7FXY224FOQQ,1593
|
|
71
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/device_features.py,sha256=8hMhq8RkvddzktkpWwmGOO70tgrIsPJfRMquoUzD-RY,3563
|
|
72
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/do_not_disturb.py,sha256=SXDqxca96NZXqcOSheFdnwsYFNgzI7Ax41aWOmKb3nE,1674
|
|
73
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/dust_collection_mode.py,sha256=iKGWfBcK58_uvaDNzUI0DGgMeLiVSnFGwPZx0bxHyPI,529
|
|
74
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/flow_led_status.py,sha256=v1caj_puSCkFyKm2FsEEzmwVCiOfl5tTvzylinXAB8g,1168
|
|
75
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/home.py,sha256=gBug0towW6OxT5Zdlj0POCxQkp0LvxhzMUy_ifzd3Po,13136
|
|
76
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/led_status.py,sha256=6nfCc-8VUJqouoaH13UI0WHV-dVei4TzZPJUQ3ZAW9o,1703
|
|
77
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/map_content.py,sha256=wQsJ0fR_vfCAVSljueuaNdGO25pPdIsUTjBJk2xXuDU,2969
|
|
78
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/maps.py,sha256=bBzutV9y19GqIB8d7QngSTIxMOQ-i0vSMCezKKsPOm4,3403
|
|
79
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/network_info.py,sha256=cjd4G3x26tBI6geUo8QcpLKvM5RO_d3Oc9WH31toqcw,2252
|
|
80
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/rooms.py,sha256=-eEkSTEnKfbOf01LtYSrjgUXW_74GqrgWLDs5-0Two8,4242
|
|
81
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/routines.py,sha256=CBnBnYqvH-XehpRn7JxgKUGLqzf-SBuJ7UIJr2dO1rM,973
|
|
82
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/smart_wash_params.py,sha256=Hga_d3xEE7xy6Nwm0KqMTVLj5N7sKGu4gucUqsbkqyw,531
|
|
83
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/status.py,sha256=iKEAZR_033_w4NUkTiqU2qsUky7xwIj54lqAIqNJucI,3562
|
|
84
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/valley_electricity_timer.py,sha256=UB_69bv4_cfcZ3JkuViE4mXGfkybAaQ-3YsxyTgmmMU,1862
|
|
85
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/volume.py,sha256=Y7GzjAjJanIxCZQL9eoUmBX72i8ussymBCMRr1fWn9A,1010
|
|
86
|
+
roborock_cli/_vendor/roborock/devices/traits/v1/wash_towel_mode.py,sha256=TY_wHiJE-HujIlgBSEARmRKRcVG5VSHDX4xeonNM4sY,511
|
|
87
|
+
roborock_cli/_vendor/roborock/devices/transport/__init__.py,sha256=6_vMJ7BFAX_I56-Y0MT3TKhOXT4Qv5q_eT5dZLaUNqU,288
|
|
88
|
+
roborock_cli/_vendor/roborock/devices/transport/channel.py,sha256=9J13gp8uwNCXHHN1SYG8vP_nzX5T_elrZCajyRZPRzk,1002
|
|
89
|
+
roborock_cli/_vendor/roborock/devices/transport/local_channel.py,sha256=CFJBXoGImH1SHe2FVMQZCTZ3MQ6QKpCW5NZmz3KCQLc,11737
|
|
90
|
+
roborock_cli/_vendor/roborock/devices/transport/mqtt_channel.py,sha256=KU50bdPugEWNT4zqlDGiHX38JygLG2Ad5hO9hJYGktA,4779
|
|
91
|
+
roborock_cli/_vendor/roborock/map/__init__.py,sha256=L3WHujuxUHCTTPaOElkJsTN_FkYhw01drfR-W4blgFc,146
|
|
92
|
+
roborock_cli/_vendor/roborock/map/map_parser.py,sha256=l_IJ0bkLWK7Ox9rxZoEI5VrE9v3nXSE865gBMuPS7Fs,4075
|
|
93
|
+
roborock_cli/_vendor/roborock/mqtt/__init__.py,sha256=Lplt5aS3lCJW09KX34tf2r6NHU8penM-R07FI56Z5CE,415
|
|
94
|
+
roborock_cli/_vendor/roborock/mqtt/health_manager.py,sha256=i_3vbslHMebVd0VNBWalPaEnZi8gcRI3IcKPt2wlQF8,2208
|
|
95
|
+
roborock_cli/_vendor/roborock/mqtt/roborock_session.py,sha256=QA-DKgZgVZ_hv4nTUNhMlqkjRUChf_34CwzeTOV35Es,20862
|
|
96
|
+
roborock_cli/_vendor/roborock/mqtt/session.py,sha256=1LtyDvMCMw2cOwxSFo1IVjEhTSq7mIF7yXvHZzTl-Tk,3436
|
|
97
|
+
roborock_cli/_vendor/roborock/protocols/__init__.py,sha256=1ems3I1_KUQoMf2Hf6ZYDKFhu5Gnsc0PbfD-dkQJ7vA,82
|
|
98
|
+
roborock_cli/_vendor/roborock/protocols/a01_protocol.py,sha256=qgQkjIJ8C6aFA6NDhqWcDN06COm_m9-RP3oJzagQGqY,2438
|
|
99
|
+
roborock_cli/_vendor/roborock/protocols/b01_q10_protocol.py,sha256=_bPfq_Arw3rHSisJAmDqq2CXxtAh0JqE-gya85MQQyQ,3470
|
|
100
|
+
roborock_cli/_vendor/roborock/protocols/b01_q7_protocol.py,sha256=14SZrj7TTbyysyXpI0MiETZwNDQ6NK7RldCiEitfnfQ,2885
|
|
101
|
+
roborock_cli/_vendor/roborock/protocols/v1_protocol.py,sha256=I5bjnVbhYbpGnaR8Ly_ZO1W7RANPlt1l3rBjRL8QTOc,9761
|
|
102
|
+
roborock_cli-0.1.1.dist-info/METADATA,sha256=2kTDmIAcW-XCMQUKE41LrbklWL6LbzEwVOSazsUrACI,4138
|
|
103
|
+
roborock_cli-0.1.1.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
|
|
104
|
+
roborock_cli-0.1.1.dist-info/entry_points.txt,sha256=KBO4vEBgnWWnthvGj-N2IkGIeAC_Yp192Zf7LL8sIpM,60
|
|
105
|
+
roborock_cli-0.1.1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
106
|
+
roborock_cli-0.1.1.dist-info/RECORD,,
|