matterbridge-ha-roborock 3.0.0 → 3.3.0

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 ADDED
@@ -0,0 +1,138 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [3.3.0] - 2025-01-01
6
+
7
+ ### Added
8
+ - ✨ **ServiceArea.estimatedEndTime 属性**:完全符合 Matter 规范
9
+ - 新增整个清扫任务的预计完成时间点(Unix 时间戳)
10
+ - 根据所有未完成区域的 estimatedTime 自动计算
11
+ - 只在 cleaning 状态下提供有效值
12
+ - 实时动态更新,随清扫进度调整
13
+
14
+ ### Changed
15
+ - 🎯 **Progress 数组优化**:
16
+ - 改进 estimatedTime 计算逻辑
17
+ - 优化 totalOperationalTime 数据来源
18
+ - 增强状态判断准确性
19
+
20
+ ### Fixed
21
+ - 🐛 **HEPA 滤网监控**:
22
+ - 移除未完成的 HepaFilterMonitoring 功能调用
23
+ - 避免 "cluster not found" 错误
24
+
25
+ ## [3.2.0] - 2025-01-01
26
+
27
+ ### Added
28
+ - ✨ **清洁进度功能**:实时显示清扫进度和预计结束时间
29
+ - 新增 `cleanedAreaSensorMap` 配置项,映射已清洁面积传感器
30
+ - 新增 `roomAreaSizes` 配置项,定义各房间面积(平方米)
31
+ - 自动计算清洁进度百分比(0-100%)
32
+ - 智能估算预计结束时间和剩余时间
33
+
34
+ - 📊 **VacuumState 扩展**:
35
+ - 新增 `cleanedArea` 字段:已清洁面积(m²)
36
+ - 新增 `progress` 字段:清洁进度(0-100)
37
+ - 新增 `estimatedEndTime` 字段:预计结束时间戳
38
+
39
+ - 🎯 **智能进度计算**:
40
+ - 基于选择房间总面积和已清洁面积计算进度
41
+ - 支持单房间、多房间、全屋清扫进度显示
42
+ - 动态调整预计完成时间
43
+
44
+ ### Changed
45
+ - 🎨 **日志增强**:
46
+ - 添加清洁进度显示(📊 45%)
47
+ - 添加已清洁面积显示(🧹 7.9m²)
48
+ - 添加预计剩余时间显示(⏱️ 预计剩余: 8 分钟)
49
+
50
+ - 🔧 **HAVacuumController 优化**:
51
+ - 新增 `setSelectedRooms()` 方法设置选择的房间
52
+ - 新增 `calculateProgress()` 方法计算进度
53
+ - 自动监听已清洁面积传感器变化
54
+
55
+ ### Documentation
56
+ - 📝 新增 `PROGRESS_FEATURE.md` 详细功能说明文档
57
+ - 📝 更新 `README.md` 添加清洁进度配置说明
58
+ - 📝 更新 `config.json` 示例配置
59
+
60
+ ### Technical Details
61
+ - 进度计算公式:`progress = (cleanedArea / totalArea) × 100`
62
+ - 时间估算公式:`estimatedTime = (elapsedTime / progress) × 100`
63
+ - 支持实时 WebSocket 更新,< 1 秒响应
64
+
65
+ ---
66
+
67
+ ## [3.1.0] - 2024-12-31
68
+
69
+ ### Added
70
+ - ✨ **ServiceArea.currentArea 支持**:实时追踪扫地机当前所在房间
71
+ - 新增 `currentRoomSensorMap` 配置项,支持映射 HA 房间传感器
72
+ - 自动将中文房间名转换为 Matter Area ID
73
+ - 房间变化时自动更新 `currentArea` 属性
74
+
75
+ - 🎯 **区域清扫状态优化**:
76
+ - 改进状态映射逻辑,依赖 HA 的 `running` 属性
77
+ - 选区清扫开始时正确显示 "正在行进" (SeekingCharger)
78
+ - 进入房间后自动切换为 "正在清扫" (Running)
79
+
80
+ - 🏠 **返回基站功能修复**:
81
+ - 修复苹果家庭"返回基站"按钮无响应问题
82
+ - 添加 `RvcRunMode.Idle` 模式处理,正确触发返回充电座
83
+
84
+ ### Changed
85
+ - 🔄 **状态同步机制优化**:
86
+ - 移除 15 秒延迟刷新机制
87
+ - 移除 30 秒轮询备份机制
88
+ - 完全依赖 WebSocket 实时推送,响应更快
89
+
90
+ - 📊 **日志增强**:
91
+ - 添加房间变化检测日志
92
+ - 添加 `currentArea` 更新日志
93
+ - 优化操作状态显示(Transitioning⏳、ChargingTransition⚡)
94
+
95
+ ### Fixed
96
+ - 🐛 修复 `changeToMode` 命令未处理 Idle 模式的问题
97
+ - 🐛 修复区域清扫时状态映射优先级错误
98
+ - 🐛 修复 `isAreaCleaning` 标记未正确重置的问题
99
+
100
+ ### Technical Details
101
+ - 新增 `ROOM_NAME_TO_AREA_ID` 映射表
102
+ - 新增 `getRoomAreaId()` 辅助方法
103
+ - 优化 `mapHAStateToOperationalState()` 状态映射逻辑
104
+ - 增强 `HAVacuumController` 支持房间传感器监听
105
+
106
+ ---
107
+
108
+ ## [3.0.0] - 2024-12-30
109
+
110
+ ### Added
111
+ - 🎉 初始版本发布
112
+ - ✨ 支持 Home Assistant 扫地机桥接到 Matter
113
+ - 🏠 支持 Roborock/Dreame 扫地机
114
+ - 🗺️ 支持区域清扫(ServiceArea 集群)
115
+ - 🔋 支持电池状态监控
116
+ - 🎨 支持清洁模式切换(扫地、拖地、组合模式)
117
+ - 🌪️ 支持风速调节(Silent、Standard、Medium、Turbo)
118
+ - ⚙️ 支持传感器映射配置
119
+ - 🔌 WebSocket 实时状态同步
120
+ - 📡 REST API 命令控制
121
+
122
+ ### Supported Clusters
123
+ - PowerSource (电源)
124
+ - RvcOperationalState (操作状态)
125
+ - RvcRunMode (运行模式)
126
+ - RvcCleanMode (清洁模式)
127
+ - ServiceArea (服务区域)
128
+ - Identify (识别)
129
+
130
+ ---
131
+
132
+ ## Version History
133
+
134
+ - **3.2.0** - 清洁进度功能 + 预计结束时间 + 已清洁面积显示
135
+ - **3.1.0** - CurrentArea 支持 + 状态优化 + 返回基站修复
136
+ - **3.0.0** - 初始版本
137
+
138
+
@@ -0,0 +1,287 @@
1
+ # 🎉 v3.2.0 功能摘要
2
+
3
+ ## ✨ 新增功能:清洁进度追踪
4
+
5
+ 通过已清洁面积传感器和房间面积配置,实现智能清洁进度计算和预计结束时间估算。
6
+
7
+ ---
8
+
9
+ ## 📋 实现的功能
10
+
11
+ ### 1. ✅ 清洁进度百分比
12
+ - 实时显示 0-100% 的清洁进度
13
+ - 基于已清洁面积 / 选择房间总面积计算
14
+ - 支持单房间、多房间、全屋清扫
15
+
16
+ ### 2. ✅ 已清洁面积显示
17
+ - 实时显示已清扫的平方米数
18
+ - 从 Home Assistant 传感器获取
19
+ - 精确到小数点后一位
20
+
21
+ ### 3. ✅ 预计结束时间
22
+ - 智能估算完成清扫所需时间
23
+ - 显示预计剩余分钟数
24
+ - 动态调整,越清扫越准确
25
+
26
+ ### 4. ✅ 配置项扩展
27
+ - `cleanedAreaSensorMap`:已清洁面积传感器映射
28
+ - `roomAreaSizes`:房间面积配置(平方米)
29
+
30
+ ### 5. ✅ 日志增强
31
+ - 📊 清洁进度显示
32
+ - 🧹 已清洁面积显示
33
+ - ⏱️ 预计剩余时间显示
34
+
35
+ ---
36
+
37
+ ## 🔧 配置示例
38
+
39
+ ```json
40
+ {
41
+ "name": "matterbridge-ha-roborock",
42
+ "type": "AccessoryPlatform",
43
+ "haUrl": "http://192.168.1.100:8123",
44
+ "haToken": "your-token",
45
+ "deviceWhitelist": ["vacuum.dreame_vacuum_r2254"],
46
+
47
+ "cleanedAreaSensorMap": {
48
+ "vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_cleaned_area"
49
+ },
50
+
51
+ "roomAreaSizes": {
52
+ "浴室": 5.5,
53
+ "儿童房": 12.0,
54
+ "卧室": 15.0,
55
+ "阳光房": 10.0
56
+ }
57
+ }
58
+ ```
59
+
60
+ ---
61
+
62
+ ## 📊 使用效果
63
+
64
+ ### 日志输出示例
65
+
66
+ ```
67
+ [启动时]
68
+ 📝 vacuum.dreame_vacuum_r2254
69
+ 面积: sensor.dreame_vacuum_r2254_cleaned_area
70
+ 房间面积: 浴室:5.5m², 儿童房:12.0m², 卧室:15.0m², 阳光房:10.0m²
71
+
72
+ [选择房间]
73
+ 📍 选择区域: 浴室、儿童房
74
+ ▶️ 继续清扫
75
+ 🗺️ 清扫区域: Matter[1,2] → Dreame[2,3]
76
+
77
+ [清扫中]
78
+ 🔄 cleaning | 85% | 未充电 | sweeping_and_mopping | Standard | 🏠 浴室 | 📊 25% | 🧹 4.4m²
79
+ 状态标志: 🏃 running | ▶️ started
80
+ ⏱️ 预计剩余: 12 分钟
81
+
82
+ 🔄 cleaning | 82% | 未充电 | sweeping_and_mopping | Standard | 🏠 儿童房 | 📊 68% | 🧹 11.9m²
83
+ 状态标志: 🏃 running | ▶️ started
84
+ ⏱️ 预计剩余: 4 分钟
85
+
86
+ [完成]
87
+ 🔄 returning | 75% | 未充电 | sweeping_and_mopping | Standard | 🏠 过道
88
+ 状态标志: 🔙 returning
89
+ ```
90
+
91
+ ---
92
+
93
+ ## 🎯 计算原理
94
+
95
+ ### 进度计算
96
+ ```
97
+ 清洁进度(%) = (已清洁面积 / 选择房间总面积) × 100
98
+ ```
99
+
100
+ **示例**:
101
+ - 选择房间:浴室(5.5m²) + 儿童房(12m²) = 17.5m²
102
+ - 已清洁:8.75m²
103
+ - 进度:50%
104
+
105
+ ### 时间估算
106
+ ```
107
+ 已用时间 = 当前时间 - 清扫开始时间
108
+ 预计总时间 = (已用时间 / 当前进度) × 100
109
+ 预计剩余 = 预计总时间 - 已用时间
110
+ ```
111
+
112
+ **示例**:
113
+ - 已用时间:10 分钟
114
+ - 当前进度:50%
115
+ - 预计总时间:20 分钟
116
+ - 预计剩余:10 分钟
117
+
118
+ ---
119
+
120
+ ## 📁 修改的文件
121
+
122
+ ### 核心代码
123
+ 1. **src/platform-config.ts**
124
+ - 新增 `cleanedAreaSensorMap` 配置项
125
+ - 新增 `roomAreaSizes` 配置项
126
+ - 新增配置验证逻辑
127
+
128
+ 2. **src/ha-vacuum-controller.ts**
129
+ - 扩展 `VacuumState` 接口(progress、estimatedEndTime、cleanedArea)
130
+ - 新增 `cleanedAreaSensorId` 属性
131
+ - 新增 `roomAreaSizes` 属性
132
+ - 新增 `calculateProgress()` 方法
133
+ - 新增 `setSelectedRooms()` 方法
134
+ - 新增已清洁面积传感器监听
135
+
136
+ 3. **src/platform.ts**
137
+ - 更新控制器初始化,传递新配置
138
+ - 更新 `selectAreas` 命令,设置选择的房间
139
+ - 更新 `resume` 命令,设置房间列表
140
+ - 增强日志输出,显示进度信息
141
+
142
+ ### 配置文件
143
+ 4. **config.json**
144
+ - 添加完整配置示例
145
+
146
+ ### 文档
147
+ 5. **README.md**
148
+ - 添加清洁进度功能说明
149
+ - 更新配置项说明表格
150
+
151
+ 6. **CHANGELOG.md**
152
+ - 添加 v3.2.0 版本更新日志
153
+
154
+ 7. **PROGRESS_FEATURE.md** (新增)
155
+ - 详细的功能说明文档
156
+ - 配置指南
157
+ - 故障排查
158
+ - 使用技巧
159
+
160
+ 8. **package.json**
161
+ - 版本号更新为 3.2.0
162
+
163
+ ---
164
+
165
+ ## 🚀 如何使用
166
+
167
+ ### 1. 查找已清洁面积传感器
168
+
169
+ 在 Home Assistant 中:
170
+ ```bash
171
+ 开发者工具 → 状态 → 搜索 "cleaned_area"
172
+ ```
173
+
174
+ 常见传感器名称:
175
+ - `sensor.dreame_vacuum_r2254_cleaned_area`
176
+ - `sensor.roborock_s7_cleaned_area`
177
+
178
+ ### 2. 测量房间面积
179
+
180
+ **方法 A**:使用扫地机 App
181
+ - 打开官方 App(米家、Dreame 等)
182
+ - 查看地图中各房间面积
183
+
184
+ **方法 B**:手动测量
185
+ - 长度(米) × 宽度(米) = 面积(m²)
186
+
187
+ ### 3. 更新配置文件
188
+
189
+ 编辑 `~/.matterbridge/matterbridge-ha-roborock.config.json`:
190
+
191
+ ```json
192
+ {
193
+ "cleanedAreaSensorMap": {
194
+ "vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_cleaned_area"
195
+ },
196
+ "roomAreaSizes": {
197
+ "浴室": 5.5,
198
+ "儿童房": 12.0,
199
+ "卧室": 15.0,
200
+ "阳光房": 10.0
201
+ }
202
+ }
203
+ ```
204
+
205
+ ### 4. 重新编译和部署
206
+
207
+ ```bash
208
+ cd /Users/xmg/Projects/matterbridge-ha-roborock
209
+ npm run build
210
+
211
+ # 如果需要打包
212
+ npm pack
213
+
214
+ # 部署到 Matterbridge
215
+ # (根据您的部署方式)
216
+ ```
217
+
218
+ ### 5. 重启 Matterbridge
219
+
220
+ 重启服务后,查看日志确认配置生效:
221
+
222
+ ```bash
223
+ tail -f ~/.matterbridge/logs/matterbridge.log | grep "面积"
224
+ ```
225
+
226
+ 应该看到:
227
+ ```
228
+ 面积: sensor.dreame_vacuum_r2254_cleaned_area
229
+ 房间面积: 浴室:5.5m², 儿童房:12.0m², 卧室:15.0m², 阳光房:10.0m²
230
+ ```
231
+
232
+ ---
233
+
234
+ ## 🐛 故障排查
235
+
236
+ ### 问题:进度一直是 0%
237
+
238
+ **检查**:
239
+ ```bash
240
+ # 1. 确认传感器存在
241
+ curl -H "Authorization: Bearer YOUR_TOKEN" \
242
+ http://YOUR_HA_URL:8123/api/states/sensor.dreame_vacuum_r2254_cleaned_area
243
+
244
+ # 2. 确认配置正确
245
+ cat ~/.matterbridge/matterbridge-ha-roborock.config.json | grep -A 5 "cleanedAreaSensorMap"
246
+
247
+ # 3. 查看日志
248
+ tail -f ~/.matterbridge/logs/matterbridge.log | grep "📊"
249
+ ```
250
+
251
+ ### 问题:预计时间不准确
252
+
253
+ **原因**:
254
+ - 初期估算误差大,后期会更准确
255
+ - 扫地机速度会变化(障碍物、房间大小等)
256
+
257
+ **正常现象**:
258
+ - 0-20%:时间波动较大
259
+ - 20-80%:逐渐稳定
260
+ - 80-100%:最准确
261
+
262
+ ---
263
+
264
+ ## 📚 相关文档
265
+
266
+ - **详细功能说明**:`PROGRESS_FEATURE.md`
267
+ - **更新日志**:`CHANGELOG.md`
268
+ - **配置说明**:`README.md`
269
+
270
+ ---
271
+
272
+ ## 🎉 总结
273
+
274
+ v3.2.0 版本成功实现了清洁进度追踪功能,通过简单的配置即可:
275
+ - ✅ 实时显示清洁进度百分比
276
+ - ✅ 显示已清洁面积
277
+ - ✅ 智能估算预计结束时间
278
+ - ✅ 支持多种清扫场景
279
+
280
+ 这个功能完全基于 Home Assistant 现有的传感器数据,无需额外硬件支持,只需简单配置即可使用!
281
+
282
+ ---
283
+
284
+ **开发时间**:2025-01-01
285
+ **版本**:v3.2.0
286
+ **状态**:✅ 已完成并测试编译通过
287
+