matterbridge-ha-roborock 3.0.0 → 3.1.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 +74 -0
- package/README.md +307 -5
- package/RELEASE_CHECKLIST.md +178 -0
- package/dist/src/ha-vacuum-controller.d.ts +3 -10
- package/dist/src/ha-vacuum-controller.js +28 -33
- package/dist/src/ha-vacuum-controller.js.map +1 -1
- package/dist/src/platform-config.d.ts +7 -0
- package/dist/src/platform-config.js +3 -0
- package/dist/src/platform-config.js.map +1 -1
- package/dist/src/platform.d.ts +6 -0
- package/dist/src/platform.js +105 -29
- package/dist/src/platform.js.map +1 -1
- package/package.json +1 -1
- package/publish.sh +84 -0
- package/src/ha-vacuum-controller.ts +0 -334
- package/src/homeassistant-client.ts +0 -169
- package/src/index.ts +0 -16
- package/src/platform-config.ts +0 -109
- package/src/platform.ts +0 -601
- package/test/test-connection.ts +0 -53
- package/tsconfig.json +0 -19
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [3.1.0] - 2024-12-31
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- ✨ **ServiceArea.currentArea 支持**:实时追踪扫地机当前所在房间
|
|
9
|
+
- 新增 `currentRoomSensorMap` 配置项,支持映射 HA 房间传感器
|
|
10
|
+
- 自动将中文房间名转换为 Matter Area ID
|
|
11
|
+
- 房间变化时自动更新 `currentArea` 属性
|
|
12
|
+
|
|
13
|
+
- 🎯 **区域清扫状态优化**:
|
|
14
|
+
- 改进状态映射逻辑,依赖 HA 的 `running` 属性
|
|
15
|
+
- 选区清扫开始时正确显示 "正在行进" (SeekingCharger)
|
|
16
|
+
- 进入房间后自动切换为 "正在清扫" (Running)
|
|
17
|
+
|
|
18
|
+
- 🏠 **返回基站功能修复**:
|
|
19
|
+
- 修复苹果家庭"返回基站"按钮无响应问题
|
|
20
|
+
- 添加 `RvcRunMode.Idle` 模式处理,正确触发返回充电座
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
- 🔄 **状态同步机制优化**:
|
|
24
|
+
- 移除 15 秒延迟刷新机制
|
|
25
|
+
- 移除 30 秒轮询备份机制
|
|
26
|
+
- 完全依赖 WebSocket 实时推送,响应更快
|
|
27
|
+
|
|
28
|
+
- 📊 **日志增强**:
|
|
29
|
+
- 添加房间变化检测日志
|
|
30
|
+
- 添加 `currentArea` 更新日志
|
|
31
|
+
- 优化操作状态显示(Transitioning⏳、ChargingTransition⚡)
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
- 🐛 修复 `changeToMode` 命令未处理 Idle 模式的问题
|
|
35
|
+
- 🐛 修复区域清扫时状态映射优先级错误
|
|
36
|
+
- 🐛 修复 `isAreaCleaning` 标记未正确重置的问题
|
|
37
|
+
|
|
38
|
+
### Technical Details
|
|
39
|
+
- 新增 `ROOM_NAME_TO_AREA_ID` 映射表
|
|
40
|
+
- 新增 `getRoomAreaId()` 辅助方法
|
|
41
|
+
- 优化 `mapHAStateToOperationalState()` 状态映射逻辑
|
|
42
|
+
- 增强 `HAVacuumController` 支持房间传感器监听
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## [3.0.0] - 2024-12-30
|
|
47
|
+
|
|
48
|
+
### Added
|
|
49
|
+
- 🎉 初始版本发布
|
|
50
|
+
- ✨ 支持 Home Assistant 扫地机桥接到 Matter
|
|
51
|
+
- 🏠 支持 Roborock/Dreame 扫地机
|
|
52
|
+
- 🗺️ 支持区域清扫(ServiceArea 集群)
|
|
53
|
+
- 🔋 支持电池状态监控
|
|
54
|
+
- 🎨 支持清洁模式切换(扫地、拖地、组合模式)
|
|
55
|
+
- 🌪️ 支持风速调节(Silent、Standard、Medium、Turbo)
|
|
56
|
+
- ⚙️ 支持传感器映射配置
|
|
57
|
+
- 🔌 WebSocket 实时状态同步
|
|
58
|
+
- 📡 REST API 命令控制
|
|
59
|
+
|
|
60
|
+
### Supported Clusters
|
|
61
|
+
- PowerSource (电源)
|
|
62
|
+
- RvcOperationalState (操作状态)
|
|
63
|
+
- RvcRunMode (运行模式)
|
|
64
|
+
- RvcCleanMode (清洁模式)
|
|
65
|
+
- ServiceArea (服务区域)
|
|
66
|
+
- Identify (识别)
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Version History
|
|
71
|
+
|
|
72
|
+
- **3.1.0** - CurrentArea 支持 + 状态优化 + 返回基站修复
|
|
73
|
+
- **3.0.0** - 初始版本
|
|
74
|
+
|
package/README.md
CHANGED
|
@@ -1,19 +1,321 @@
|
|
|
1
1
|
# Matterbridge HA Roborock
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/matterbridge-ha-roborock)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
|
|
6
|
+
将 Home Assistant 中的 Roborock/Dreame 扫地机桥接到 Matter 生态系统,支持苹果家庭、Google Home 等 Matter 控制器。
|
|
7
|
+
|
|
8
|
+
## ✨ 功能特性
|
|
9
|
+
|
|
10
|
+
### 核心功能
|
|
11
|
+
- 🏠 **完整的 Matter 扫地机支持**:实现 RoboticVacuumCleaner 设备类型
|
|
12
|
+
- 🗺️ **区域清扫**:支持选择特定房间进行清扫
|
|
13
|
+
- 📍 **实时位置追踪**:显示扫地机当前所在房间
|
|
14
|
+
- 🔋 **电池监控**:实时显示电量和充电状态
|
|
15
|
+
- 🎨 **清洁模式**:支持扫地、拖地、组合模式
|
|
16
|
+
- 🌪️ **风速调节**:Silent、Standard、Medium、Turbo
|
|
17
|
+
- ⚡ **实时同步**:通过 WebSocket 实时更新状态
|
|
18
|
+
|
|
19
|
+
### Matter 集群支持
|
|
20
|
+
- ✅ PowerSource - 电源管理
|
|
21
|
+
- ✅ RvcOperationalState - 操作状态
|
|
22
|
+
- ✅ RvcRunMode - 运行模式
|
|
23
|
+
- ✅ RvcCleanMode - 清洁模式
|
|
24
|
+
- ✅ ServiceArea - 服务区域(分区清扫)
|
|
25
|
+
- ✅ Identify - 设备识别
|
|
26
|
+
|
|
27
|
+
## 📦 安装
|
|
28
|
+
|
|
29
|
+
### 通过 Matterbridge 安装(推荐)
|
|
30
|
+
|
|
31
|
+
1. 安装 Matterbridge:
|
|
32
|
+
```bash
|
|
33
|
+
npm install -g matterbridge
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
2. 安装插件:
|
|
37
|
+
```bash
|
|
38
|
+
matterbridge -add matterbridge-ha-roborock
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 手动安装
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npm install -g matterbridge-ha-roborock
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## ⚙️ 配置
|
|
48
|
+
|
|
49
|
+
在 Matterbridge 配置目录(通常是 `~/.matterbridge/`)创建或编辑配置文件:
|
|
50
|
+
|
|
51
|
+
### 基础配置
|
|
4
52
|
|
|
5
|
-
## 配置
|
|
6
53
|
```json
|
|
7
54
|
{
|
|
55
|
+
"name": "matterbridge-ha-roborock",
|
|
56
|
+
"type": "AccessoryPlatform",
|
|
8
57
|
"haUrl": "http://homeassistant.local:8123",
|
|
9
|
-
"haToken": "your-token",
|
|
10
|
-
"deviceWhitelist": [
|
|
58
|
+
"haToken": "your-long-lived-access-token",
|
|
59
|
+
"deviceWhitelist": [
|
|
60
|
+
"vacuum.dreame_vacuum_r2254"
|
|
61
|
+
]
|
|
11
62
|
}
|
|
12
63
|
```
|
|
13
64
|
|
|
14
|
-
|
|
65
|
+
### 完整配置(推荐)
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
{
|
|
69
|
+
"name": "matterbridge-ha-roborock",
|
|
70
|
+
"type": "AccessoryPlatform",
|
|
71
|
+
"haUrl": "http://192.168.1.100:8123",
|
|
72
|
+
"haToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
|
73
|
+
"deviceWhitelist": [
|
|
74
|
+
"vacuum.dreame_vacuum_r2254"
|
|
75
|
+
],
|
|
76
|
+
"batterySensorMap": {
|
|
77
|
+
"vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_battery_level"
|
|
78
|
+
},
|
|
79
|
+
"chargingSensorMap": {
|
|
80
|
+
"vacuum.dreame_vacuum_r2254": "binary_sensor.dreame_vacuum_r2254_charging_state"
|
|
81
|
+
},
|
|
82
|
+
"cleaningModeEntityMap": {
|
|
83
|
+
"vacuum.dreame_vacuum_r2254": "select.dreame_vacuum_r2254_cleaning_mode"
|
|
84
|
+
},
|
|
85
|
+
"errorSensorMap": {
|
|
86
|
+
"vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_error"
|
|
87
|
+
},
|
|
88
|
+
"currentRoomSensorMap": {
|
|
89
|
+
"vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_current_room"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 配置项说明
|
|
95
|
+
|
|
96
|
+
| 配置项 | 类型 | 必需 | 说明 |
|
|
97
|
+
|--------|------|------|------|
|
|
98
|
+
| `haUrl` | string | ✅ | Home Assistant 地址 |
|
|
99
|
+
| `haToken` | string | ✅ | Home Assistant 长期访问令牌 |
|
|
100
|
+
| `deviceWhitelist` | string[] | ✅ | 要桥接的扫地机实体 ID 列表 |
|
|
101
|
+
| `batterySensorMap` | object | ⭐ | 电池电量传感器映射 |
|
|
102
|
+
| `chargingSensorMap` | object | ⭐ | 充电状态传感器映射 |
|
|
103
|
+
| `cleaningModeEntityMap` | object | ⭐ | 清洁模式实体映射 |
|
|
104
|
+
| `errorSensorMap` | object | ⭐ | 错误传感器映射 |
|
|
105
|
+
| `currentRoomSensorMap` | object | ⭐ | 当前房间传感器映射(v3.1.0+) |
|
|
106
|
+
|
|
107
|
+
⭐ = 强烈推荐配置以获得最佳体验
|
|
108
|
+
|
|
109
|
+
## 🚀 使用
|
|
110
|
+
|
|
111
|
+
### 1. 获取 Home Assistant 令牌
|
|
112
|
+
|
|
113
|
+
1. 登录 Home Assistant
|
|
114
|
+
2. 点击左下角用户名
|
|
115
|
+
3. 滚动到"长期访问令牌"部分
|
|
116
|
+
4. 点击"创建令牌"
|
|
117
|
+
5. 复制令牌到配置文件
|
|
118
|
+
|
|
119
|
+
### 2. 启动 Matterbridge
|
|
120
|
+
|
|
15
121
|
```bash
|
|
122
|
+
matterbridge
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 3. 添加到苹果家庭
|
|
126
|
+
|
|
127
|
+
1. 打开苹果家庭 App
|
|
128
|
+
2. 点击右上角 "+"
|
|
129
|
+
3. 选择"添加配件"
|
|
130
|
+
4. 选择"更多选项"
|
|
131
|
+
5. 找到"扫地机"并点击
|
|
132
|
+
6. 输入 Matterbridge 显示的配对码
|
|
133
|
+
|
|
134
|
+
### 4. 开始使用
|
|
135
|
+
|
|
136
|
+
在苹果家庭中,你可以:
|
|
137
|
+
- ▶️ 启动/暂停清扫
|
|
138
|
+
- 🏠 返回充电座
|
|
139
|
+
- 🗺️ 选择房间清扫
|
|
140
|
+
- 🔋 查看电量和充电状态
|
|
141
|
+
- 📍 查看当前位置
|
|
142
|
+
|
|
143
|
+
## 🗺️ 区域清扫配置
|
|
144
|
+
|
|
145
|
+
### 定义房间映射
|
|
146
|
+
|
|
147
|
+
在 `src/platform.ts` 中配置你的房间映射:
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
// Matter Area ID -> Dreame Segment ID
|
|
151
|
+
const AREA_TO_SEGMENT_MAP: Record<number, string> = {
|
|
152
|
+
1: '3', // 浴室 -> Dreame segment 3
|
|
153
|
+
2: '4', // 儿童房 -> Dreame segment 4
|
|
154
|
+
3: '5', // 卧室 -> Dreame segment 5
|
|
155
|
+
4: '6', // 阳光房 -> Dreame segment 6
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
// HA 房间名称 -> Matter Area ID
|
|
159
|
+
const ROOM_NAME_TO_AREA_ID: Record<string, number | null> = {
|
|
160
|
+
'浴室': 1,
|
|
161
|
+
'儿童房': 2,
|
|
162
|
+
'卧室': 3,
|
|
163
|
+
'阳光房': 4,
|
|
164
|
+
'过道': null,
|
|
165
|
+
'充电座': null,
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
// 支持的区域定义
|
|
169
|
+
const SUPPORTED_AREAS = [
|
|
170
|
+
{
|
|
171
|
+
areaId: 1,
|
|
172
|
+
areaInfo: {
|
|
173
|
+
locationInfo: { locationName: '浴室' }
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
// ... 更多房间
|
|
177
|
+
];
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 获取 Dreame Segment ID
|
|
181
|
+
|
|
182
|
+
在 Home Assistant 开发者工具中调用服务:
|
|
183
|
+
|
|
184
|
+
```yaml
|
|
185
|
+
service: dreame_vacuum.vacuum_clean_segment
|
|
186
|
+
target:
|
|
187
|
+
entity_id: vacuum.dreame_vacuum_r2254
|
|
188
|
+
data:
|
|
189
|
+
segments: [3, 4, 5] # 这些就是 segment ID
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## 📊 状态映射
|
|
193
|
+
|
|
194
|
+
### HA 状态 → Matter 操作状态
|
|
195
|
+
|
|
196
|
+
| HA State | Matter OperationalState | 显示 |
|
|
197
|
+
|----------|------------------------|------|
|
|
198
|
+
| `docked` | Docked (6) | 已充电 |
|
|
199
|
+
| `charging` | Charging (5) | 充电中 |
|
|
200
|
+
| `cleaning` + `running=true` | Running (1) | 正在清扫 |
|
|
201
|
+
| `cleaning` + `started=true` | SeekingCharger (4) | 正在行进 |
|
|
202
|
+
| `returning` | SeekingCharger (4) | 返回中 |
|
|
203
|
+
| `paused` | Paused (2) | 已暂停 |
|
|
204
|
+
| `error` | Error (3) | 错误 |
|
|
205
|
+
|
|
206
|
+
### HA 状态 → Matter 运行模式
|
|
207
|
+
|
|
208
|
+
| HA State | Matter RunMode | 显示 |
|
|
209
|
+
|----------|---------------|------|
|
|
210
|
+
| `docked`, `idle` | Idle (1) | 空闲 |
|
|
211
|
+
| `cleaning` | Cleaning (2) | 清扫中 |
|
|
212
|
+
| `mapping` | Mapping (3) | 建图中 |
|
|
213
|
+
|
|
214
|
+
## 🔧 开发
|
|
215
|
+
|
|
216
|
+
### 环境要求
|
|
217
|
+
|
|
218
|
+
- Node.js >= 18.0.0
|
|
219
|
+
- TypeScript >= 5.3.0
|
|
220
|
+
- Matterbridge >= 3.0.0
|
|
221
|
+
|
|
222
|
+
### 本地开发
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# 克隆仓库
|
|
226
|
+
git clone https://github.com/yourusername/matterbridge-ha-roborock.git
|
|
227
|
+
cd matterbridge-ha-roborock
|
|
228
|
+
|
|
229
|
+
# 安装依赖
|
|
16
230
|
npm install
|
|
231
|
+
|
|
232
|
+
# 构建
|
|
17
233
|
npm run build
|
|
234
|
+
|
|
235
|
+
# 监听模式
|
|
236
|
+
npm run watch
|
|
237
|
+
|
|
238
|
+
# 测试连接
|
|
18
239
|
npm test
|
|
19
240
|
```
|
|
241
|
+
|
|
242
|
+
### 项目结构
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
matterbridge-ha-roborock/
|
|
246
|
+
├── src/
|
|
247
|
+
│ ├── index.ts # 插件入口
|
|
248
|
+
│ ├── platform.ts # 核心平台逻辑
|
|
249
|
+
│ ├── platform-config.ts # 配置定义
|
|
250
|
+
│ ├── homeassistant-client.ts # HA 客户端
|
|
251
|
+
│ └── ha-vacuum-controller.ts # 扫地机控制器
|
|
252
|
+
├── test/
|
|
253
|
+
│ └── test-connection.ts # 连接测试
|
|
254
|
+
├── package.json
|
|
255
|
+
├── tsconfig.json
|
|
256
|
+
├── CHANGELOG.md
|
|
257
|
+
└── README.md
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## 🐛 故障排查
|
|
261
|
+
|
|
262
|
+
### 扫地机未显示
|
|
263
|
+
|
|
264
|
+
1. 检查 HA 连接:
|
|
265
|
+
```bash
|
|
266
|
+
curl -H "Authorization: Bearer YOUR_TOKEN" \
|
|
267
|
+
http://homeassistant.local:8123/api/states/vacuum.your_vacuum
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
2. 检查 Matterbridge 日志:
|
|
271
|
+
```bash
|
|
272
|
+
tail -f ~/.matterbridge/logs/matterbridge.log
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### 区域清扫不工作
|
|
276
|
+
|
|
277
|
+
1. 验证 segment ID 映射是否正确
|
|
278
|
+
2. 在 HA 中手动测试 `dreame_vacuum.vacuum_clean_segment` 服务
|
|
279
|
+
3. 检查 `AREA_TO_SEGMENT_MAP` 配置
|
|
280
|
+
|
|
281
|
+
### 返回基站无响应
|
|
282
|
+
|
|
283
|
+
- 确保使用 v3.1.0 或更高版本
|
|
284
|
+
- 检查 HA 中 `vacuum.return_to_base` 服务是否可用
|
|
285
|
+
|
|
286
|
+
## 📝 更新日志
|
|
287
|
+
|
|
288
|
+
查看 [CHANGELOG.md](./CHANGELOG.md) 了解详细更新历史。
|
|
289
|
+
|
|
290
|
+
### v3.1.0 (2024-12-31)
|
|
291
|
+
- ✨ 新增 `currentArea` 支持,实时显示当前房间
|
|
292
|
+
- 🎯 优化区域清扫状态映射
|
|
293
|
+
- 🏠 修复返回基站功能
|
|
294
|
+
- 🔄 移除轮询机制,完全依赖 WebSocket
|
|
295
|
+
|
|
296
|
+
### v3.0.0 (2024-12-30)
|
|
297
|
+
- 🎉 初始版本发布
|
|
298
|
+
|
|
299
|
+
## 📄 许可证
|
|
300
|
+
|
|
301
|
+
MIT License - 详见 [LICENSE](./LICENSE) 文件
|
|
302
|
+
|
|
303
|
+
## 🤝 贡献
|
|
304
|
+
|
|
305
|
+
欢迎提交 Issue 和 Pull Request!
|
|
306
|
+
|
|
307
|
+
## 🙏 致谢
|
|
308
|
+
|
|
309
|
+
- [Matterbridge](https://github.com/Luligu/matterbridge) - Matter 桥接框架
|
|
310
|
+
- [Home Assistant](https://www.home-assistant.io/) - 智能家居平台
|
|
311
|
+
- [Matter](https://csa-iot.org/all-solutions/matter/) - 智能家居标准
|
|
312
|
+
|
|
313
|
+
## 📞 支持
|
|
314
|
+
|
|
315
|
+
- 📧 Email: your-email@example.com
|
|
316
|
+
- 💬 Issues: [GitHub Issues](https://github.com/yourusername/matterbridge-ha-roborock/issues)
|
|
317
|
+
- 📖 文档: [Wiki](https://github.com/yourusername/matterbridge-ha-roborock/wiki)
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
**如果这个项目对你有帮助,请给个 ⭐ Star!**
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# Release Checklist v3.1.0
|
|
2
|
+
|
|
3
|
+
## 📋 发布前检查清单
|
|
4
|
+
|
|
5
|
+
### 1️⃣ 代码准备
|
|
6
|
+
- [x] 更新版本号到 3.1.0 (package.json)
|
|
7
|
+
- [x] 创建 CHANGELOG.md
|
|
8
|
+
- [x] 更新 README.md
|
|
9
|
+
- [x] 创建 .npmignore
|
|
10
|
+
- [x] 清理并重新编译代码
|
|
11
|
+
- [x] 创建 npm 包 (npm pack)
|
|
12
|
+
|
|
13
|
+
### 2️⃣ 测试验证
|
|
14
|
+
- [ ] 本地测试所有功能
|
|
15
|
+
- [ ] 基本清扫功能
|
|
16
|
+
- [ ] 区域清扫功能
|
|
17
|
+
- [ ] 返回基站功能
|
|
18
|
+
- [ ] currentArea 更新
|
|
19
|
+
- [ ] 状态同步
|
|
20
|
+
- [ ] 在 Matterbridge 中测试安装
|
|
21
|
+
- [ ] 在苹果家庭中测试控制
|
|
22
|
+
|
|
23
|
+
### 3️⃣ 文档检查
|
|
24
|
+
- [x] README.md 包含完整使用说明
|
|
25
|
+
- [x] CHANGELOG.md 记录所有更改
|
|
26
|
+
- [x] 配置示例完整
|
|
27
|
+
- [x] 故障排查指南
|
|
28
|
+
|
|
29
|
+
### 4️⃣ npm 发布
|
|
30
|
+
- [ ] 登录 npm 账号
|
|
31
|
+
```bash
|
|
32
|
+
npm login
|
|
33
|
+
```
|
|
34
|
+
- [ ] 检查登录状态
|
|
35
|
+
```bash
|
|
36
|
+
npm whoami
|
|
37
|
+
```
|
|
38
|
+
- [ ] 执行发布脚本
|
|
39
|
+
```bash
|
|
40
|
+
./publish.sh
|
|
41
|
+
```
|
|
42
|
+
- [ ] 验证发布成功
|
|
43
|
+
```bash
|
|
44
|
+
npm view matterbridge-ha-roborock
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 5️⃣ GitHub 发布
|
|
48
|
+
- [ ] 提交所有更改
|
|
49
|
+
```bash
|
|
50
|
+
git add .
|
|
51
|
+
git commit -m "chore: release v3.1.0"
|
|
52
|
+
```
|
|
53
|
+
- [ ] 创建 git tag
|
|
54
|
+
```bash
|
|
55
|
+
git tag -a v3.1.0 -m "Release v3.1.0"
|
|
56
|
+
```
|
|
57
|
+
- [ ] 推送到 GitHub
|
|
58
|
+
```bash
|
|
59
|
+
git push origin main
|
|
60
|
+
git push origin v3.1.0
|
|
61
|
+
```
|
|
62
|
+
- [ ] 在 GitHub 创建 Release
|
|
63
|
+
- 标题: `v3.1.0 - CurrentArea Support + State Optimization`
|
|
64
|
+
- 描述: 复制 CHANGELOG.md 中的 v3.1.0 部分
|
|
65
|
+
|
|
66
|
+
### 6️⃣ 发布后验证
|
|
67
|
+
- [ ] 检查 npm 包页面
|
|
68
|
+
- https://www.npmjs.com/package/matterbridge-ha-roborock
|
|
69
|
+
- [ ] 测试全局安装
|
|
70
|
+
```bash
|
|
71
|
+
npm install -g matterbridge-ha-roborock
|
|
72
|
+
```
|
|
73
|
+
- [ ] 检查版本号
|
|
74
|
+
```bash
|
|
75
|
+
npm list -g matterbridge-ha-roborock
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 7️⃣ 通知和推广
|
|
79
|
+
- [ ] 更新项目文档
|
|
80
|
+
- [ ] 发布更新公告
|
|
81
|
+
- [ ] 通知现有用户
|
|
82
|
+
- [ ] 更新相关论坛/社区帖子
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 🚀 快速发布命令
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# 1. 确保在正确的分支
|
|
90
|
+
git checkout main
|
|
91
|
+
|
|
92
|
+
# 2. 拉取最新代码
|
|
93
|
+
git pull
|
|
94
|
+
|
|
95
|
+
# 3. 运行发布脚本
|
|
96
|
+
./publish.sh
|
|
97
|
+
|
|
98
|
+
# 4. 提交并推送
|
|
99
|
+
git add .
|
|
100
|
+
git commit -m "chore: release v3.1.0"
|
|
101
|
+
git tag -a v3.1.0 -m "Release v3.1.0"
|
|
102
|
+
git push origin main --tags
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 📝 发布说明模板
|
|
108
|
+
|
|
109
|
+
### npm 发布说明
|
|
110
|
+
|
|
111
|
+
```markdown
|
|
112
|
+
# matterbridge-ha-roborock v3.1.0
|
|
113
|
+
|
|
114
|
+
## 🎉 新功能
|
|
115
|
+
|
|
116
|
+
- ✨ **ServiceArea.currentArea 支持**:实时追踪扫地机当前所在房间
|
|
117
|
+
- 🎯 **区域清扫状态优化**:改进状态映射逻辑
|
|
118
|
+
- 🏠 **返回基站功能修复**:修复苹果家庭"返回基站"按钮
|
|
119
|
+
|
|
120
|
+
## 🔄 改进
|
|
121
|
+
|
|
122
|
+
- 移除轮询机制,完全依赖 WebSocket 实时推送
|
|
123
|
+
- 优化日志输出,更清晰的状态显示
|
|
124
|
+
|
|
125
|
+
## 🐛 修复
|
|
126
|
+
|
|
127
|
+
- 修复 `changeToMode` 命令未处理 Idle 模式
|
|
128
|
+
- 修复区域清扫状态映射优先级
|
|
129
|
+
|
|
130
|
+
## 📦 安装
|
|
131
|
+
|
|
132
|
+
\`\`\`bash
|
|
133
|
+
npm install -g matterbridge-ha-roborock
|
|
134
|
+
\`\`\`
|
|
135
|
+
|
|
136
|
+
## 📖 文档
|
|
137
|
+
|
|
138
|
+
查看 [README.md](https://github.com/yourusername/matterbridge-ha-roborock) 了解详细使用说明。
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## ⚠️ 注意事项
|
|
144
|
+
|
|
145
|
+
1. **版本号规范**:遵循语义化版本 (Semantic Versioning)
|
|
146
|
+
- MAJOR.MINOR.PATCH (3.1.0)
|
|
147
|
+
- MAJOR: 不兼容的 API 更改
|
|
148
|
+
- MINOR: 向后兼容的功能新增
|
|
149
|
+
- PATCH: 向后兼容的问题修复
|
|
150
|
+
|
|
151
|
+
2. **npm 发布权限**:确保有发布权限
|
|
152
|
+
```bash
|
|
153
|
+
npm owner ls matterbridge-ha-roborock
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
3. **回滚方案**:如果发布有问题
|
|
157
|
+
```bash
|
|
158
|
+
npm unpublish matterbridge-ha-roborock@3.1.0
|
|
159
|
+
```
|
|
160
|
+
注意:unpublish 有 24 小时限制
|
|
161
|
+
|
|
162
|
+
4. **标签管理**:
|
|
163
|
+
- `latest`: 默认标签,用于稳定版本
|
|
164
|
+
- `beta`: 测试版本
|
|
165
|
+
- `next`: 下一个版本
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## ✅ 发布完成
|
|
170
|
+
|
|
171
|
+
- [ ] npm 包已发布
|
|
172
|
+
- [ ] GitHub Release 已创建
|
|
173
|
+
- [ ] 文档已更新
|
|
174
|
+
- [ ] 用户已通知
|
|
175
|
+
|
|
176
|
+
**发布日期**: _______________
|
|
177
|
+
**发布人**: _______________
|
|
178
|
+
|
|
@@ -11,6 +11,7 @@ export interface VacuumState {
|
|
|
11
11
|
cleaningMode?: string;
|
|
12
12
|
error?: string;
|
|
13
13
|
errorMsg?: string;
|
|
14
|
+
currentRoom?: string;
|
|
14
15
|
rawAttributes?: any;
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
@@ -31,9 +32,9 @@ export declare class HAVacuumController extends EventEmitter {
|
|
|
31
32
|
private chargingSensorId?;
|
|
32
33
|
private cleaningModeEntityId?;
|
|
33
34
|
private errorSensorId?;
|
|
35
|
+
private currentRoomSensorId?;
|
|
34
36
|
private currentState?;
|
|
35
|
-
|
|
36
|
-
constructor(haClient: HomeAssistantClient, entityId: string, batterySensorId?: string, chargingSensorId?: string, cleaningModeEntityId?: string, errorSensorId?: string);
|
|
37
|
+
constructor(haClient: HomeAssistantClient, entityId: string, batterySensorId?: string, chargingSensorId?: string, cleaningModeEntityId?: string, errorSensorId?: string, currentRoomSensorId?: string);
|
|
37
38
|
/**
|
|
38
39
|
* 初始化控制器 - 获取初始状态并设置监听
|
|
39
40
|
*/
|
|
@@ -46,14 +47,6 @@ export declare class HAVacuumController extends EventEmitter {
|
|
|
46
47
|
* 处理状态变化
|
|
47
48
|
*/
|
|
48
49
|
private handleStateChange;
|
|
49
|
-
/**
|
|
50
|
-
* 启动轮询
|
|
51
|
-
*/
|
|
52
|
-
private startPolling;
|
|
53
|
-
/**
|
|
54
|
-
* 停止轮询
|
|
55
|
-
*/
|
|
56
|
-
private stopPolling;
|
|
57
50
|
/**
|
|
58
51
|
* 获取当前状态
|
|
59
52
|
*/
|