matterbridge-ha-roborock 3.1.0 → 3.4.4
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.
- package/CHANGELOG.md +79 -0
- package/FEATURE_SUMMARY_v3.2.0.md +293 -0
- package/PROGRESS_FEATURE.md +494 -0
- package/README.md +109 -4
- package/RELEASE_CHECKLIST.md +7 -0
- package/WEB_UI_GUIDE.md +228 -0
- package/config.example.json +47 -0
- package/config.json +24 -0
- package/deploy-to-server.sh +129 -0
- package/dist/src/ha-vacuum-controller.d.ts +43 -1
- package/dist/src/ha-vacuum-controller.js +227 -1
- package/dist/src/ha-vacuum-controller.js.map +1 -1
- package/dist/src/platform-config.d.ts +47 -0
- package/dist/src/platform-config.js +18 -0
- package/dist/src/platform-config.js.map +1 -1
- package/dist/src/platform.d.ts +15 -0
- package/dist/src/platform.js +736 -57
- package/dist/src/platform.js.map +1 -1
- package/matterbridge-daemon.sh +136 -0
- package/matterbridge-service.sh +122 -0
- package/package.json +143 -1
- package/publish.sh +54 -63
- package/view-clean-logs.sh +26 -0
- package/dist/test/test-connection.d.ts +0 -1
- package/dist/test/test-connection.js +0 -43
- package/dist/test/test-connection.js.map +0 -1
package/WEB_UI_GUIDE.md
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# Matterbridge Web UI 配置指南
|
|
2
|
+
|
|
3
|
+
本插件完全支持通过 Matterbridge Web UI 进行可视化配置,无需手动编辑 JSON 文件。
|
|
4
|
+
|
|
5
|
+
## 📱 访问 Web UI
|
|
6
|
+
|
|
7
|
+
1. 启动 Matterbridge:
|
|
8
|
+
```bash
|
|
9
|
+
matterbridge
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
2. 打开浏览器访问:
|
|
13
|
+
```
|
|
14
|
+
http://localhost:8283
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
3. 如果是远程服务器,将 `localhost` 替换为服务器 IP 地址
|
|
18
|
+
|
|
19
|
+
## ⚙️ 配置步骤
|
|
20
|
+
|
|
21
|
+
### 1. 找到插件
|
|
22
|
+
|
|
23
|
+
在 Matterbridge Web UI 的插件列表中找到 `matterbridge-ha-roborock`
|
|
24
|
+
|
|
25
|
+
### 2. 点击配置按钮
|
|
26
|
+
|
|
27
|
+
点击插件旁边的配置图标(齿轮图标)
|
|
28
|
+
|
|
29
|
+
### 3. 填写配置项
|
|
30
|
+
|
|
31
|
+
#### 必填项
|
|
32
|
+
|
|
33
|
+
**Home Assistant URL**
|
|
34
|
+
- 格式:`http://IP:端口`
|
|
35
|
+
- 示例:`http://192.168.1.100:8123`
|
|
36
|
+
- 说明:你的 Home Assistant 完整地址
|
|
37
|
+
|
|
38
|
+
**Home Assistant 长期访问令牌**
|
|
39
|
+
- 在 Home Assistant 中创建:
|
|
40
|
+
1. 点击左下角用户名
|
|
41
|
+
2. 选择"安全"
|
|
42
|
+
3. 滚动到"长期访问令牌"
|
|
43
|
+
4. 点击"创建令牌"
|
|
44
|
+
5. 复制生成的令牌
|
|
45
|
+
- 这是一个密码字段,输入后会自动隐藏
|
|
46
|
+
|
|
47
|
+
**Matter 模式**
|
|
48
|
+
- `server`(推荐):每个设备独立配对
|
|
49
|
+
- `bridge`:所有设备通过一个桥接器
|
|
50
|
+
|
|
51
|
+
#### 可选项(推荐配置)
|
|
52
|
+
|
|
53
|
+
**设备白名单**
|
|
54
|
+
- 点击"添加项"按钮
|
|
55
|
+
- 输入扫地机的 entity_id
|
|
56
|
+
- 示例:`vacuum.dreame_vacuum_r2254`
|
|
57
|
+
- 可以添加多个设备
|
|
58
|
+
|
|
59
|
+
**电池传感器映射**
|
|
60
|
+
- 格式:`vacuum.xxx` → `sensor.xxx_battery_level`
|
|
61
|
+
- 示例:
|
|
62
|
+
```
|
|
63
|
+
键: vacuum.dreame_vacuum_r2254
|
|
64
|
+
值: sensor.dreame_vacuum_r2254_battery_level
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**充电状态传感器映射**
|
|
68
|
+
- 格式:`vacuum.xxx` → `binary_sensor.xxx_charging_state`
|
|
69
|
+
- 示例:
|
|
70
|
+
```
|
|
71
|
+
键: vacuum.dreame_vacuum_r2254
|
|
72
|
+
值: binary_sensor.dreame_vacuum_r2254_charging_state
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**清洁模式实体映射**
|
|
76
|
+
- 格式:`vacuum.xxx` → `select.xxx_cleaning_mode`
|
|
77
|
+
- 示例:
|
|
78
|
+
```
|
|
79
|
+
键: vacuum.dreame_vacuum_r2254
|
|
80
|
+
值: select.dreame_vacuum_r2254_cleaning_mode
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**错误传感器映射**
|
|
84
|
+
- 格式:`vacuum.xxx` → `sensor.xxx_error`
|
|
85
|
+
- 示例:
|
|
86
|
+
```
|
|
87
|
+
键: vacuum.dreame_vacuum_r2254
|
|
88
|
+
值: sensor.dreame_vacuum_r2254_error
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**当前房间传感器映射**
|
|
92
|
+
- 格式:`vacuum.xxx` → `sensor.xxx_current_room`
|
|
93
|
+
- 示例:
|
|
94
|
+
```
|
|
95
|
+
键: vacuum.dreame_vacuum_r2254
|
|
96
|
+
值: sensor.sao_di_ji_current_room
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**已清洁面积传感器映射**
|
|
100
|
+
- 格式:`vacuum.xxx` → `sensor.xxx_cleaned_area`
|
|
101
|
+
- 示例:
|
|
102
|
+
```
|
|
103
|
+
键: vacuum.dreame_vacuum_r2254
|
|
104
|
+
值: sensor.dreame_vacuum_r2254_cleaned_area
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**清洁时间传感器映射**
|
|
108
|
+
- 格式:`vacuum.xxx` → `sensor.xxx_cleaning_time`
|
|
109
|
+
- 示例:
|
|
110
|
+
```
|
|
111
|
+
键: vacuum.dreame_vacuum_r2254
|
|
112
|
+
值: sensor.dreame_vacuum_r2254_cleaning_time
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**房间面积配置**
|
|
116
|
+
- 用于计算清洁进度和预计完成时间
|
|
117
|
+
- 格式:`房间名称` → `面积(平方米)`
|
|
118
|
+
- 示例:
|
|
119
|
+
```
|
|
120
|
+
键: 浴室
|
|
121
|
+
值: 5.5
|
|
122
|
+
|
|
123
|
+
键: 儿童房
|
|
124
|
+
值: 12
|
|
125
|
+
|
|
126
|
+
键: 卧室
|
|
127
|
+
值: 15
|
|
128
|
+
|
|
129
|
+
键: 阳光房
|
|
130
|
+
值: 10
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
#### 高级选项
|
|
134
|
+
|
|
135
|
+
**轮询间隔 (毫秒)**
|
|
136
|
+
- 默认:30000 (30秒)
|
|
137
|
+
- 范围:5000 - 300000
|
|
138
|
+
- 说明:状态更新的轮询间隔
|
|
139
|
+
|
|
140
|
+
**调试模式**
|
|
141
|
+
- 默认:关闭
|
|
142
|
+
- 开启后会输出详细的调试日志
|
|
143
|
+
|
|
144
|
+
**关闭时注销设备**
|
|
145
|
+
- 默认:关闭
|
|
146
|
+
- 开启后插件关闭时会从 Matter 网络注销设备
|
|
147
|
+
|
|
148
|
+
### 4. 保存配置
|
|
149
|
+
|
|
150
|
+
点击"保存"按钮保存配置
|
|
151
|
+
|
|
152
|
+
### 5. 重启插件
|
|
153
|
+
|
|
154
|
+
保存后需要重启插件使配置生效:
|
|
155
|
+
1. 在插件列表中找到 `matterbridge-ha-roborock`
|
|
156
|
+
2. 点击重启按钮
|
|
157
|
+
3. 等待插件重新加载
|
|
158
|
+
|
|
159
|
+
## 🎯 配置验证
|
|
160
|
+
|
|
161
|
+
### 检查插件状态
|
|
162
|
+
|
|
163
|
+
在 Web UI 中查看插件状态:
|
|
164
|
+
- ✅ 绿色:运行正常
|
|
165
|
+
- ⚠️ 黄色:有警告
|
|
166
|
+
- ❌ 红色:有错误
|
|
167
|
+
|
|
168
|
+
### 查看日志
|
|
169
|
+
|
|
170
|
+
在 Web UI 中点击"日志"按钮查看详细日志:
|
|
171
|
+
- 确认 Home Assistant 连接成功
|
|
172
|
+
- 确认设备已注册
|
|
173
|
+
- 查看配对码
|
|
174
|
+
|
|
175
|
+
### 测试配置
|
|
176
|
+
|
|
177
|
+
1. 在苹果家庭或其他 Matter 控制器中添加设备
|
|
178
|
+
2. 使用配对码配对
|
|
179
|
+
3. 测试基本功能:
|
|
180
|
+
- 开始/暂停清扫
|
|
181
|
+
- 返回充电
|
|
182
|
+
- 选择房间清扫
|
|
183
|
+
|
|
184
|
+
## 💡 常见问题
|
|
185
|
+
|
|
186
|
+
### Q: 配置保存后没有生效?
|
|
187
|
+
A: 需要重启插件才能使配置生效
|
|
188
|
+
|
|
189
|
+
### Q: 如何查看我的 entity_id?
|
|
190
|
+
A: 在 Home Assistant 中:
|
|
191
|
+
1. 开发者工具 → 状态
|
|
192
|
+
2. 搜索你的设备
|
|
193
|
+
3. 复制 entity_id
|
|
194
|
+
|
|
195
|
+
### Q: 房间名称从哪里获取?
|
|
196
|
+
A: 房间名称来自你的 Home Assistant 集成配置,通常在扫地机的地图配置中
|
|
197
|
+
|
|
198
|
+
### Q: 配置了传感器映射但没有效果?
|
|
199
|
+
A: 确保:
|
|
200
|
+
1. entity_id 正确(在 HA 中存在)
|
|
201
|
+
2. 传感器有值(不是 unavailable)
|
|
202
|
+
3. 已重启插件
|
|
203
|
+
|
|
204
|
+
### Q: Web UI 无法访问?
|
|
205
|
+
A: 检查:
|
|
206
|
+
1. Matterbridge 是否正在运行
|
|
207
|
+
2. 防火墙是否允许 8283 端口
|
|
208
|
+
3. 如果是远程访问,使用服务器 IP 而不是 localhost
|
|
209
|
+
|
|
210
|
+
## 📚 更多信息
|
|
211
|
+
|
|
212
|
+
- [完整文档](./README.md)
|
|
213
|
+
- [配置示例](./config.example.json)
|
|
214
|
+
- [更新日志](./CHANGELOG.md)
|
|
215
|
+
|
|
216
|
+
## 🆘 获取帮助
|
|
217
|
+
|
|
218
|
+
如果遇到问题:
|
|
219
|
+
1. 查看 Matterbridge 日志
|
|
220
|
+
2. 启用调试模式获取详细信息
|
|
221
|
+
3. 在 GitHub 提交 Issue
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "matterbridge-ha-roborock",
|
|
3
|
+
"type": "AccessoryPlatform",
|
|
4
|
+
"haUrl": "http://homeassistant.local:8123",
|
|
5
|
+
"haToken": "YOUR_LONG_LIVED_ACCESS_TOKEN_HERE",
|
|
6
|
+
"matterMode": "server",
|
|
7
|
+
"pollInterval": 30000,
|
|
8
|
+
"debug": false,
|
|
9
|
+
"deviceWhitelist": [
|
|
10
|
+
"vacuum.dreame_vacuum_r2254"
|
|
11
|
+
],
|
|
12
|
+
"batterySensorMap": {
|
|
13
|
+
"vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_battery_level"
|
|
14
|
+
},
|
|
15
|
+
"chargingSensorMap": {
|
|
16
|
+
"vacuum.dreame_vacuum_r2254": "binary_sensor.dreame_vacuum_r2254_charging_state"
|
|
17
|
+
},
|
|
18
|
+
"cleaningModeEntityMap": {
|
|
19
|
+
"vacuum.dreame_vacuum_r2254": "select.dreame_vacuum_r2254_cleaning_mode"
|
|
20
|
+
},
|
|
21
|
+
"errorSensorMap": {
|
|
22
|
+
"vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_error"
|
|
23
|
+
},
|
|
24
|
+
"currentRoomSensorMap": {
|
|
25
|
+
"vacuum.dreame_vacuum_r2254": "sensor.sao_di_ji_current_room"
|
|
26
|
+
},
|
|
27
|
+
"cleanedAreaSensorMap": {
|
|
28
|
+
"vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_cleaned_area"
|
|
29
|
+
},
|
|
30
|
+
"cleaningTimeSensorMap": {
|
|
31
|
+
"vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_cleaning_time"
|
|
32
|
+
},
|
|
33
|
+
"roomAreaSizes": {
|
|
34
|
+
"浴室": 5.5,
|
|
35
|
+
"儿童房": 12,
|
|
36
|
+
"卧室": 15,
|
|
37
|
+
"阳光房": 10
|
|
38
|
+
},
|
|
39
|
+
"unregisterOnShutdown": false
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
package/config.json
CHANGED
|
@@ -6,5 +6,29 @@
|
|
|
6
6
|
"deviceWhitelist": [
|
|
7
7
|
"vacuum.dreame_vacuum_r2254"
|
|
8
8
|
],
|
|
9
|
+
"batterySensorMap": {
|
|
10
|
+
"vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_battery_level"
|
|
11
|
+
},
|
|
12
|
+
"chargingSensorMap": {
|
|
13
|
+
"vacuum.dreame_vacuum_r2254": "binary_sensor.dreame_vacuum_r2254_charging_state"
|
|
14
|
+
},
|
|
15
|
+
"cleaningModeEntityMap": {
|
|
16
|
+
"vacuum.dreame_vacuum_r2254": "select.dreame_vacuum_r2254_cleaning_mode"
|
|
17
|
+
},
|
|
18
|
+
"errorSensorMap": {
|
|
19
|
+
"vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_error"
|
|
20
|
+
},
|
|
21
|
+
"currentRoomSensorMap": {
|
|
22
|
+
"vacuum.dreame_vacuum_r2254": "sensor.sao_di_ji_current_room"
|
|
23
|
+
},
|
|
24
|
+
"cleanedAreaSensorMap": {
|
|
25
|
+
"vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_cleaned_area"
|
|
26
|
+
},
|
|
27
|
+
"roomAreaSizes": {
|
|
28
|
+
"浴室": 5.5,
|
|
29
|
+
"儿童房": 12.0,
|
|
30
|
+
"卧室": 15.0,
|
|
31
|
+
"阳光房": 10.0
|
|
32
|
+
},
|
|
9
33
|
"debug": true
|
|
10
34
|
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
SERVER="root@10.10.10.167"
|
|
4
|
+
PASSWORD="19940725"
|
|
5
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
6
|
+
PACKAGE_FILE="matterbridge-ha-roborock-${VERSION}.tgz"
|
|
7
|
+
|
|
8
|
+
echo "🚀 部署 matterbridge-ha-roborock v${VERSION} 到服务器..."
|
|
9
|
+
echo ""
|
|
10
|
+
|
|
11
|
+
# 检查包文件是否存在
|
|
12
|
+
if [ ! -f "$PACKAGE_FILE" ]; then
|
|
13
|
+
echo "❌ 包文件不存在: $PACKAGE_FILE"
|
|
14
|
+
echo "请先运行: npm pack"
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
echo "📦 1/4 上传包到服务器..."
|
|
19
|
+
expect << EOF
|
|
20
|
+
set timeout 30
|
|
21
|
+
spawn scp $PACKAGE_FILE $SERVER:/tmp/
|
|
22
|
+
expect {
|
|
23
|
+
"password:" { send "$PASSWORD\r"; exp_continue }
|
|
24
|
+
"yes/no" { send "yes\r"; exp_continue }
|
|
25
|
+
eof
|
|
26
|
+
}
|
|
27
|
+
EOF
|
|
28
|
+
|
|
29
|
+
if [ $? -ne 0 ]; then
|
|
30
|
+
echo "❌ 上传失败"
|
|
31
|
+
exit 1
|
|
32
|
+
fi
|
|
33
|
+
echo "✅ 上传成功"
|
|
34
|
+
echo ""
|
|
35
|
+
|
|
36
|
+
echo "🔧 2/4 连接到服务器..."
|
|
37
|
+
echo ""
|
|
38
|
+
|
|
39
|
+
expect << 'EOFEXPECT'
|
|
40
|
+
set timeout 60
|
|
41
|
+
set password "19940725"
|
|
42
|
+
set server "root@10.10.10.167"
|
|
43
|
+
set version [exec node -p "require('./package.json').version"]
|
|
44
|
+
|
|
45
|
+
spawn ssh $server
|
|
46
|
+
|
|
47
|
+
expect {
|
|
48
|
+
"password:" { send "$password\r" }
|
|
49
|
+
"yes/no" { send "yes\r"; exp_continue }
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
expect "# "
|
|
53
|
+
send "echo '=== 停止 Matterbridge ==='\r"
|
|
54
|
+
|
|
55
|
+
expect "# "
|
|
56
|
+
send "pkill -f matterbridge || true\r"
|
|
57
|
+
|
|
58
|
+
expect "# "
|
|
59
|
+
send "sleep 2\r"
|
|
60
|
+
|
|
61
|
+
expect "# "
|
|
62
|
+
send "echo '=== 安装新版本 ==='\r"
|
|
63
|
+
|
|
64
|
+
expect "# "
|
|
65
|
+
send "npm install -g /tmp/matterbridge-ha-roborock-$version.tgz\r"
|
|
66
|
+
|
|
67
|
+
expect "# "
|
|
68
|
+
send "echo '=== 验证安装 ==='\r"
|
|
69
|
+
|
|
70
|
+
expect "# "
|
|
71
|
+
send "npm list -g matterbridge-ha-roborock\r"
|
|
72
|
+
|
|
73
|
+
expect "# "
|
|
74
|
+
send "echo '=== 清理临时文件 ==='\r"
|
|
75
|
+
|
|
76
|
+
expect "# "
|
|
77
|
+
send "rm -f /tmp/matterbridge-ha-roborock-*.tgz\r"
|
|
78
|
+
|
|
79
|
+
expect "# "
|
|
80
|
+
send "echo '=== 启动 Matterbridge ==='\r"
|
|
81
|
+
|
|
82
|
+
expect "# "
|
|
83
|
+
send "cd ~ && nohup matterbridge > /tmp/matterbridge.log 2>&1 &\r"
|
|
84
|
+
|
|
85
|
+
expect "# "
|
|
86
|
+
send "sleep 3\r"
|
|
87
|
+
|
|
88
|
+
expect "# "
|
|
89
|
+
send "echo '=== 检查运行状态 ==='\r"
|
|
90
|
+
|
|
91
|
+
expect "# "
|
|
92
|
+
send "ps aux | grep matterbridge | grep -v grep\r"
|
|
93
|
+
|
|
94
|
+
expect "# "
|
|
95
|
+
send "exit\r"
|
|
96
|
+
|
|
97
|
+
expect eof
|
|
98
|
+
EOFEXPECT
|
|
99
|
+
|
|
100
|
+
if [ $? -eq 0 ]; then
|
|
101
|
+
echo ""
|
|
102
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
103
|
+
echo "✅ 部署完成!"
|
|
104
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
105
|
+
echo ""
|
|
106
|
+
echo "📊 服务器信息:"
|
|
107
|
+
echo " 地址: $SERVER"
|
|
108
|
+
echo " 版本: v${VERSION}"
|
|
109
|
+
echo ""
|
|
110
|
+
echo "🔍 查看日志:"
|
|
111
|
+
echo " ssh $SERVER 'tail -f /tmp/matterbridge.log'"
|
|
112
|
+
echo ""
|
|
113
|
+
echo "🛑 停止服务:"
|
|
114
|
+
echo " ssh $SERVER 'pkill -f matterbridge'"
|
|
115
|
+
echo ""
|
|
116
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
117
|
+
else
|
|
118
|
+
echo ""
|
|
119
|
+
echo "❌ 部署失败"
|
|
120
|
+
exit 1
|
|
121
|
+
fi
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
@@ -5,6 +5,7 @@ import { HomeAssistantClient } from './homeassistant-client.js';
|
|
|
5
5
|
*/
|
|
6
6
|
export interface VacuumState {
|
|
7
7
|
state: string;
|
|
8
|
+
detailedState?: string;
|
|
8
9
|
batteryLevel: number;
|
|
9
10
|
isCharging: boolean;
|
|
10
11
|
fanSpeed?: string;
|
|
@@ -12,6 +13,9 @@ export interface VacuumState {
|
|
|
12
13
|
error?: string;
|
|
13
14
|
errorMsg?: string;
|
|
14
15
|
currentRoom?: string;
|
|
16
|
+
cleanedArea?: number;
|
|
17
|
+
cleaningTime?: number;
|
|
18
|
+
hepaFilterLife?: number;
|
|
15
19
|
rawAttributes?: any;
|
|
16
20
|
}
|
|
17
21
|
/**
|
|
@@ -33,8 +37,17 @@ export declare class HAVacuumController extends EventEmitter {
|
|
|
33
37
|
private cleaningModeEntityId?;
|
|
34
38
|
private errorSensorId?;
|
|
35
39
|
private currentRoomSensorId?;
|
|
40
|
+
private stateSensorId?;
|
|
41
|
+
private cleanedAreaSensorId?;
|
|
42
|
+
private cleaningTimeSensorId?;
|
|
43
|
+
private hepaFilterSensorId?;
|
|
44
|
+
private roomAreaSizes?;
|
|
45
|
+
private selectedRoomNames;
|
|
36
46
|
private currentState?;
|
|
37
|
-
|
|
47
|
+
private roomTimers;
|
|
48
|
+
private lastRoom?;
|
|
49
|
+
private taskStartTime;
|
|
50
|
+
constructor(haClient: HomeAssistantClient, entityId: string, batterySensorId?: string, chargingSensorId?: string, cleaningModeEntityId?: string, errorSensorId?: string, currentRoomSensorId?: string, stateSensorId?: string, cleanedAreaSensorId?: string, cleaningTimeSensorId?: string, hepaFilterSensorId?: string, roomAreaSizes?: Record<string, number>);
|
|
38
51
|
/**
|
|
39
52
|
* 初始化控制器 - 获取初始状态并设置监听
|
|
40
53
|
*/
|
|
@@ -51,6 +64,18 @@ export declare class HAVacuumController extends EventEmitter {
|
|
|
51
64
|
* 获取当前状态
|
|
52
65
|
*/
|
|
53
66
|
getState(): VacuumState | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* 获取选择的房间名称列表
|
|
69
|
+
*/
|
|
70
|
+
getSelectedRoomNames(): string[];
|
|
71
|
+
/**
|
|
72
|
+
* 设置选择的房间名称列表
|
|
73
|
+
*/
|
|
74
|
+
setSelectedRoomNames(roomNames: string[]): void;
|
|
75
|
+
/**
|
|
76
|
+
* 获取房间面积配置
|
|
77
|
+
*/
|
|
78
|
+
getRoomAreaSizes(): Record<string, number> | undefined;
|
|
54
79
|
/**
|
|
55
80
|
* 强制刷新状态(用于主动更新)
|
|
56
81
|
*/
|
|
@@ -97,6 +122,23 @@ export declare class HAVacuumController extends EventEmitter {
|
|
|
97
122
|
* @param segmentMap Matter ID 到 Dreame ID 的映射
|
|
98
123
|
*/
|
|
99
124
|
cleanSegments(segments: number[], segmentMap?: Record<number, string>): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* 更新房间计时器
|
|
127
|
+
* 当房间切换时记录上一个房间的时间,开始新房间的计时
|
|
128
|
+
*/
|
|
129
|
+
updateRoomTimer(currentRoom: string | undefined, isCleaningState: boolean): void;
|
|
130
|
+
/**
|
|
131
|
+
* 获取指定房间的清扫时间(秒)
|
|
132
|
+
*/
|
|
133
|
+
getRoomTime(roomName: string): number;
|
|
134
|
+
/**
|
|
135
|
+
* 重置所有房间计时器
|
|
136
|
+
*/
|
|
137
|
+
resetRoomTimers(): void;
|
|
138
|
+
/**
|
|
139
|
+
* 获取房间计时信息(用于调试)
|
|
140
|
+
*/
|
|
141
|
+
getRoomTimersInfo(): Record<string, number>;
|
|
100
142
|
/**
|
|
101
143
|
* 销毁控制器
|
|
102
144
|
*/
|