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 +138 -0
- package/FEATURE_SUMMARY_v3.2.0.md +287 -0
- package/PROGRESS_FEATURE.md +488 -0
- package/README.md +390 -5
- package/RELEASE_CHECKLIST.md +179 -0
- package/config.json +24 -0
- package/deploy-to-server.sh +123 -0
- package/dist/src/ha-vacuum-controller.d.ts +21 -8
- package/dist/src/ha-vacuum-controller.js +115 -30
- package/dist/src/ha-vacuum-controller.js.map +1 -1
- package/dist/src/platform-config.d.ts +37 -0
- package/dist/src/platform-config.js +15 -0
- package/dist/src/platform-config.js.map +1 -1
- package/dist/src/platform.d.ts +21 -0
- package/dist/src/platform.js +303 -31
- package/dist/src/platform.js.map +1 -1
- package/package.json +1 -1
- package/publish.sh +85 -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/dist/src/platform.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MatterbridgeAccessoryPlatform } from 'matterbridge';
|
|
2
2
|
import { RoboticVacuumCleaner } from 'matterbridge/devices';
|
|
3
|
-
import { RvcCleanMode, RvcRunMode, RvcOperationalState, PowerSource } from 'matterbridge/matter/clusters';
|
|
3
|
+
import { RvcCleanMode, RvcRunMode, RvcOperationalState, ServiceArea, PowerSource } from 'matterbridge/matter/clusters';
|
|
4
4
|
import { HomeAssistantClient } from './homeassistant-client.js';
|
|
5
5
|
import { HAVacuumController } from './ha-vacuum-controller.js';
|
|
6
6
|
import { validateConfig } from './platform-config.js';
|
|
@@ -75,6 +75,16 @@ const MATTER_TO_DREAME_SEGMENT = {
|
|
|
75
75
|
3: '5', // 卧室 -> Dreame segment 5
|
|
76
76
|
4: '6', // 阳光房 -> Dreame segment 6
|
|
77
77
|
};
|
|
78
|
+
// HA 房间名称 -> Matter Area ID 映射(用于 currentArea)
|
|
79
|
+
const ROOM_NAME_TO_AREA_ID = {
|
|
80
|
+
'浴室': 1,
|
|
81
|
+
'儿童房': 2,
|
|
82
|
+
'卧室': 3,
|
|
83
|
+
'阳光房': 4,
|
|
84
|
+
'过道': null, // 过道不属于任何定义区域
|
|
85
|
+
'充电座': null, // 充电座不属于任何定义区域
|
|
86
|
+
'unavailable': null, // 传感器不可用
|
|
87
|
+
};
|
|
78
88
|
const OPERATIONAL_STATES = [
|
|
79
89
|
{ operationalStateId: RvcOperationalState.OperationalState.Stopped, operationalStateLabel: 'Stopped' },
|
|
80
90
|
{ operationalStateId: RvcOperationalState.OperationalState.Running, operationalStateLabel: 'Running' },
|
|
@@ -85,7 +95,7 @@ const OPERATIONAL_STATES = [
|
|
|
85
95
|
{ operationalStateId: RvcOperationalState.OperationalState.Docked, operationalStateLabel: 'Docked' },
|
|
86
96
|
];
|
|
87
97
|
// 状态映射函数
|
|
88
|
-
function mapHAStateToOperationalState(haState, isCharging, errorMsg, rawAttributes) {
|
|
98
|
+
function mapHAStateToOperationalState(haState, isCharging, errorMsg, rawAttributes, isAreaCleaning, roomChanged) {
|
|
89
99
|
// 检查错误
|
|
90
100
|
if (errorMsg && errorMsg !== 'no_error' && errorMsg !== 'null' && errorMsg !== 'unavailable') {
|
|
91
101
|
return RvcOperationalState.OperationalState.Error;
|
|
@@ -109,7 +119,7 @@ function mapHAStateToOperationalState(haState, isCharging, errorMsg, rawAttribut
|
|
|
109
119
|
if (rawAttributes?.paused === true) {
|
|
110
120
|
return RvcOperationalState.OperationalState.Paused;
|
|
111
121
|
}
|
|
112
|
-
// running = true →
|
|
122
|
+
// running = true → 正在清扫(第二优先级,无论是否区域清扫)
|
|
113
123
|
if (rawAttributes?.running === true) {
|
|
114
124
|
return RvcOperationalState.OperationalState.Running;
|
|
115
125
|
}
|
|
@@ -172,6 +182,18 @@ export class RoborockHAPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
172
182
|
super(matterbridge, log, config);
|
|
173
183
|
this.log.info('🔧 初始化扫地机插件...');
|
|
174
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* 将 HA 房间名称转换为 Matter Area ID
|
|
187
|
+
* @param roomName HA 传感器报告的房间名称
|
|
188
|
+
* @returns Matter Area ID 或 null
|
|
189
|
+
*/
|
|
190
|
+
getRoomAreaId(roomName) {
|
|
191
|
+
if (!roomName) {
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
const areaId = ROOM_NAME_TO_AREA_ID[roomName];
|
|
195
|
+
return areaId !== undefined ? areaId : null;
|
|
196
|
+
}
|
|
175
197
|
async onStart(reason) {
|
|
176
198
|
this.log.info(`▶️ 启动插件: ${reason || '未知原因'}`);
|
|
177
199
|
this.platformConfig = validateConfig(this.config);
|
|
@@ -225,6 +247,11 @@ export class RoborockHAPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
225
247
|
const chargingSensorId = config.chargingSensorMap?.[entityId];
|
|
226
248
|
const cleaningModeEntityId = config.cleaningModeEntityMap?.[entityId];
|
|
227
249
|
const errorSensorId = config.errorSensorMap?.[entityId];
|
|
250
|
+
const currentRoomSensorId = config.currentRoomSensorMap?.[entityId];
|
|
251
|
+
const cleanedAreaSensorId = config.cleanedAreaSensorMap?.[entityId];
|
|
252
|
+
const cleaningTimeSensorId = config.cleaningTimeSensorMap?.[entityId];
|
|
253
|
+
const hepaFilterSensorId = config.hepaFilterSensorMap?.[entityId]; // 可选:如果有独立传感器
|
|
254
|
+
const roomAreaSizes = config.roomAreaSizes;
|
|
228
255
|
if (batterySensorId) {
|
|
229
256
|
this.log.info(` 电池: ${batterySensorId}`);
|
|
230
257
|
}
|
|
@@ -237,35 +264,100 @@ export class RoborockHAPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
237
264
|
if (errorSensorId) {
|
|
238
265
|
this.log.info(` 错误: ${errorSensorId}`);
|
|
239
266
|
}
|
|
240
|
-
|
|
267
|
+
if (currentRoomSensorId) {
|
|
268
|
+
this.log.info(` 房间: ${currentRoomSensorId}`);
|
|
269
|
+
}
|
|
270
|
+
if (cleanedAreaSensorId) {
|
|
271
|
+
this.log.info(` 面积: ${cleanedAreaSensorId}`);
|
|
272
|
+
}
|
|
273
|
+
if (cleaningTimeSensorId) {
|
|
274
|
+
this.log.info(` 时间: ${cleaningTimeSensorId}`);
|
|
275
|
+
}
|
|
276
|
+
if (hepaFilterSensorId) {
|
|
277
|
+
this.log.info(` HEPA滤网: ${hepaFilterSensorId}`);
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
this.log.info(` HEPA滤网: 从主实体 attributes.filter_left 读取`);
|
|
281
|
+
}
|
|
282
|
+
if (roomAreaSizes) {
|
|
283
|
+
const rooms = Object.keys(roomAreaSizes).map(r => `${r}:${roomAreaSizes[r]}m²`).join(', ');
|
|
284
|
+
this.log.info(` 房间面积: ${rooms}`);
|
|
285
|
+
}
|
|
286
|
+
const controller = new HAVacuumController(this.haClient, entityId, batterySensorId, chargingSensorId, cleaningModeEntityId, errorSensorId, currentRoomSensorId, cleanedAreaSensorId, cleaningTimeSensorId, hepaFilterSensorId, roomAreaSizes);
|
|
241
287
|
await controller.initialize();
|
|
242
288
|
const state = controller.getState();
|
|
243
289
|
if (!state)
|
|
244
290
|
throw new Error('No vacuum state available');
|
|
245
291
|
this.log.info(` 状态:${state.state} | 电量:${state.batteryLevel}% | 充电:${state.isCharging ? '是' : '否'} | ` +
|
|
246
292
|
`模式:${state.cleaningMode || '无'} | 风速:${state.fanSpeed || '无'}`);
|
|
247
|
-
const device = this.createMatterDevice(entityId, state, controller);
|
|
293
|
+
const device = await this.createMatterDevice(entityId, state, controller, hepaFilterSensorId);
|
|
248
294
|
await this.registerDevice(device);
|
|
249
295
|
this.vacuumControllers.set(entityId, controller);
|
|
250
296
|
this.matterDevices.set(entityId, device);
|
|
251
297
|
this.log.info(`✅ 注册完成\n`);
|
|
252
298
|
}
|
|
253
|
-
createMatterDevice(entityId, state, controller) {
|
|
299
|
+
async createMatterDevice(entityId, state, controller, hepaFilterSensorId) {
|
|
254
300
|
const name = state.rawAttributes?.friendly_name || entityId;
|
|
255
301
|
this.log.info(` 创建 Matter 设备: ${name}`);
|
|
256
302
|
const initialOperationalState = mapHAStateToOperationalState(state.state, state.isCharging);
|
|
257
303
|
const initialRunMode = mapHAStateToRunMode(state.state);
|
|
304
|
+
// 创建设备时使用默认的 ServiceArea cluster
|
|
258
305
|
const device = new RoboticVacuumCleaner(name, entityId, 'server', initialRunMode, SUPPORTED_RUN_MODES, CLEAN_MODE.VacMopQuiet, SUPPORTED_CLEAN_MODES, undefined, undefined, initialOperationalState, OPERATIONAL_STATES, SUPPORTED_AREAS, undefined, SUPPORTED_AREAS[0]?.areaId, []);
|
|
306
|
+
// 尝试初始化 progress 属性(如果 ProgressReporting feature 可用)
|
|
307
|
+
try {
|
|
308
|
+
device.setAttribute(ServiceArea.Cluster.id, 'progress', [], this.log);
|
|
309
|
+
this.log.info(` ✓ Progress 属性已初始化`);
|
|
310
|
+
}
|
|
311
|
+
catch (error) {
|
|
312
|
+
this.log.warn(` ⚠️ Progress 属性不可用(可能需要 Matterbridge 更新)`);
|
|
313
|
+
}
|
|
314
|
+
// 添加 HEPA 滤网监控
|
|
315
|
+
// 注意:HepaFilterMonitoring 需要在运行时动态添加
|
|
316
|
+
// 这里只是标记,实际的 cluster 添加将在 Matterbridge 核心层面处理
|
|
317
|
+
if (hepaFilterSensorId) {
|
|
318
|
+
this.log.info(` ✓ HEPA 滤网传感器: ${hepaFilterSensorId}`);
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
this.log.info(` ✓ HEPA 滤网: 从主实体 attributes.filter_left 读取`);
|
|
322
|
+
}
|
|
323
|
+
// HEPA 滤网监控已禁用(需要 Matterbridge 核心支持)
|
|
324
|
+
// 如果需要启用,需要修改 Matterbridge 核心的 roboticVacuumCleaner.js
|
|
325
|
+
// if (state.hepaFilterLife !== undefined) {
|
|
326
|
+
// await this.updateHepaFilterState(device, state.hepaFilterLife);
|
|
327
|
+
// this.log.info(` ✓ HEPA 滤网初始值: ${state.hepaFilterLife}%`);
|
|
328
|
+
// }
|
|
259
329
|
this.log.info(` 初始状态 → 运行:${initialOperationalState} | 模式:${initialRunMode} | 充电:${state.isCharging ? '是' : '否'}`);
|
|
260
330
|
// 设置初始电量
|
|
261
331
|
this.updateBatteryState(device, state);
|
|
332
|
+
// 设置初始 currentArea
|
|
333
|
+
const initialAreaId = this.getRoomAreaId(state.currentRoom);
|
|
334
|
+
if (initialAreaId !== undefined) {
|
|
335
|
+
try {
|
|
336
|
+
device.setAttribute(ServiceArea.Cluster.id, 'currentArea', initialAreaId, this.log);
|
|
337
|
+
if (initialAreaId !== null) {
|
|
338
|
+
const areaName = SUPPORTED_AREAS.find(a => a.areaId === initialAreaId)
|
|
339
|
+
?.areaInfo?.locationInfo?.locationName;
|
|
340
|
+
this.log.info(` 初始区域 → ${initialAreaId} (${areaName})`);
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
this.log.info(` 初始区域 → null (${state.currentRoom || '未知'})`);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
catch (error) {
|
|
347
|
+
this.log.debug(` 无法设置初始 currentArea:`, error);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
262
350
|
let selectedAreaIds = [];
|
|
351
|
+
let lastRoom = state.currentRoom; // 跟踪上一次的房间
|
|
352
|
+
let isAreaCleaning = false; // 标记是否正在进行区域清扫
|
|
263
353
|
// Command handlers
|
|
264
354
|
device.addCommandHandler('selectAreas', async ({ request }) => {
|
|
265
355
|
const { newAreas } = request;
|
|
266
356
|
selectedAreaIds = newAreas || [];
|
|
267
357
|
const areaNames = selectedAreaIds.map(id => SUPPORTED_AREAS.find(a => a.areaId === id)?.areaInfo?.locationInfo?.locationName || `Area ${id}`);
|
|
268
358
|
this.log.info(`📍 选择区域: ${areaNames.join('、')}`);
|
|
359
|
+
// 设置选择的房间名称
|
|
360
|
+
controller.setSelectedRoomNames(areaNames);
|
|
269
361
|
});
|
|
270
362
|
device.addCommandHandler('pause', async () => {
|
|
271
363
|
this.log.info(`⏸ 暂停清扫`);
|
|
@@ -274,25 +366,21 @@ export class RoborockHAPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
274
366
|
device.addCommandHandler('resume', async () => {
|
|
275
367
|
this.log.info(`▶️ 继续清扫`);
|
|
276
368
|
if (selectedAreaIds.length > 0 && selectedAreaIds.length < SUPPORTED_AREAS.length) {
|
|
369
|
+
isAreaCleaning = true; // 标记开始区域清扫
|
|
277
370
|
await controller.cleanSegments(selectedAreaIds, MATTER_TO_DREAME_SEGMENT);
|
|
278
|
-
// 15秒后主动刷新状态
|
|
279
|
-
setTimeout(async () => {
|
|
280
|
-
try {
|
|
281
|
-
this.log.info(`⏰ 15秒后自动刷新状态`);
|
|
282
|
-
await controller.forceRefreshState();
|
|
283
|
-
}
|
|
284
|
-
catch (error) {
|
|
285
|
-
this.log.error(`❌ 自动刷新状态失败:`, error);
|
|
286
|
-
}
|
|
287
|
-
}, 15000);
|
|
288
371
|
}
|
|
289
372
|
else {
|
|
373
|
+
isAreaCleaning = false;
|
|
374
|
+
// 全屋清扫时,设置所有房间
|
|
375
|
+
const allRoomNames = SUPPORTED_AREAS.map(a => a.areaInfo?.locationInfo?.locationName || '');
|
|
376
|
+
controller.setSelectedRoomNames(allRoomNames.filter(n => n));
|
|
290
377
|
await controller.start();
|
|
291
378
|
}
|
|
292
379
|
});
|
|
293
380
|
device.addCommandHandler('goHome', async () => {
|
|
294
381
|
this.log.info(`🏠 返回充电`);
|
|
295
382
|
selectedAreaIds = [];
|
|
383
|
+
isAreaCleaning = false; // 取消区域清扫标记
|
|
296
384
|
await controller.returnToBase();
|
|
297
385
|
});
|
|
298
386
|
// Locate/Identify 命令
|
|
@@ -310,6 +398,14 @@ export class RoborockHAPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
310
398
|
const mode = request.newMode;
|
|
311
399
|
const modeName = CLEAN_MODE_LABELS[mode] || `Unknown(${mode})`;
|
|
312
400
|
const haConfig = CLEAN_MODE_TO_HA[mode];
|
|
401
|
+
// 处理 Idle 模式(返回基站)
|
|
402
|
+
if (mode === 1) {
|
|
403
|
+
this.log.info(`🏠 切换到 Idle 模式 → 返回充电`);
|
|
404
|
+
selectedAreaIds = [];
|
|
405
|
+
isAreaCleaning = false;
|
|
406
|
+
await controller.returnToBase();
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
313
409
|
if (haConfig) {
|
|
314
410
|
this.log.info(`🔄 切换模式: ${modeName} → ${haConfig.cleaningMode} + ${haConfig.fanSpeed}`);
|
|
315
411
|
try {
|
|
@@ -327,19 +423,11 @@ export class RoborockHAPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
327
423
|
// 如果是 Cleaning 模式,启动清扫
|
|
328
424
|
if (mode === 2 || modeName.includes('Cleaning')) {
|
|
329
425
|
if (selectedAreaIds.length > 0 && selectedAreaIds.length < SUPPORTED_AREAS.length) {
|
|
426
|
+
isAreaCleaning = true; // 标记开始区域清扫
|
|
330
427
|
await controller.cleanSegments(selectedAreaIds, MATTER_TO_DREAME_SEGMENT);
|
|
331
|
-
// 15秒后主动刷新状态
|
|
332
|
-
setTimeout(async () => {
|
|
333
|
-
try {
|
|
334
|
-
this.log.info(`⏰ 15秒后自动刷新状态`);
|
|
335
|
-
await controller.forceRefreshState();
|
|
336
|
-
}
|
|
337
|
-
catch (error) {
|
|
338
|
-
this.log.error(`❌ 自动刷新状态失败:`, error);
|
|
339
|
-
}
|
|
340
|
-
}, 15000);
|
|
341
428
|
}
|
|
342
429
|
else {
|
|
430
|
+
isAreaCleaning = false;
|
|
343
431
|
await controller.start();
|
|
344
432
|
}
|
|
345
433
|
}
|
|
@@ -347,6 +435,9 @@ export class RoborockHAPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
347
435
|
// State sync
|
|
348
436
|
controller.on('stateChanged', (s) => {
|
|
349
437
|
const errorStr = s.errorMsg ? ` | ❌ ${s.errorMsg}` : '';
|
|
438
|
+
const roomStr = s.currentRoom ? ` | 🏠 ${s.currentRoom}` : '';
|
|
439
|
+
const areaStr = s.cleanedArea !== undefined ? ` | 🧹 ${s.cleanedArea.toFixed(1)}m²` : '';
|
|
440
|
+
const timeStr = s.cleaningTime !== undefined ? ` | ⏱️ ${s.cleaningTime}min` : '';
|
|
350
441
|
// 显示关键状态标志(running/started/paused)
|
|
351
442
|
const runningStr = s.rawAttributes?.running ? '🏃 running' : '';
|
|
352
443
|
const startedStr = s.rawAttributes?.started ? '▶️ started' : '';
|
|
@@ -354,14 +445,44 @@ export class RoborockHAPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
354
445
|
const returningStr = s.rawAttributes?.returning ? '🔙 returning' : '';
|
|
355
446
|
const statusFlags = [runningStr, startedStr, pausedStr, returningStr].filter(Boolean).join(' | ');
|
|
356
447
|
this.log.info(`🔄 ${s.state} | ${s.batteryLevel}% | ${s.isCharging ? '充电中' : '未充电'} | ` +
|
|
357
|
-
`${s.cleaningMode || '无模式'} | ${s.fanSpeed || '无风速'}${errorStr}`);
|
|
448
|
+
`${s.cleaningMode || '无模式'} | ${s.fanSpeed || '无风速'}${roomStr}${areaStr}${timeStr}${errorStr}`);
|
|
358
449
|
if (statusFlags) {
|
|
359
450
|
this.log.info(` 状态标志: ${statusFlags}`);
|
|
360
451
|
}
|
|
452
|
+
// 检测房间变化(用于区域清扫和 currentArea 更新)
|
|
453
|
+
const roomChanged = !!(s.currentRoom && lastRoom && s.currentRoom !== lastRoom);
|
|
454
|
+
if (roomChanged) {
|
|
455
|
+
this.log.info(` 🚪 房间变化: ${lastRoom} → ${s.currentRoom} (isAreaCleaning: ${isAreaCleaning})`);
|
|
456
|
+
// 更新 Matter currentArea 属性
|
|
457
|
+
const newAreaId = this.getRoomAreaId(s.currentRoom);
|
|
458
|
+
try {
|
|
459
|
+
device.setAttribute(ServiceArea.Cluster.id, 'currentArea', newAreaId, this.log);
|
|
460
|
+
if (newAreaId !== null) {
|
|
461
|
+
const areaName = SUPPORTED_AREAS.find(a => a.areaId === newAreaId)
|
|
462
|
+
?.areaInfo?.locationInfo?.locationName;
|
|
463
|
+
this.log.info(` ✓ 当前区域: ${newAreaId} (${areaName})`);
|
|
464
|
+
}
|
|
465
|
+
else {
|
|
466
|
+
this.log.info(` ✓ 当前区域: null (${s.currentRoom})`);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
catch (error) {
|
|
470
|
+
this.log.debug(` 无法更新 currentArea:`, error);
|
|
471
|
+
}
|
|
472
|
+
// 如果是区域清扫并进入目标房间,记录特殊日志
|
|
473
|
+
if (isAreaCleaning && newAreaId !== null) {
|
|
474
|
+
this.log.info(` 🎯 已到达清扫区域: ${s.currentRoom},开始清扫!`);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
lastRoom = s.currentRoom; // 更新上一次的房间
|
|
478
|
+
// 如果状态变为 returning 或 docked,重置区域清扫标记
|
|
479
|
+
if (s.state === 'returning' || s.state === 'docked') {
|
|
480
|
+
isAreaCleaning = false;
|
|
481
|
+
}
|
|
361
482
|
// 更新电池状态
|
|
362
483
|
this.updateBatteryState(device, s);
|
|
363
|
-
// 更新运行状态(传递 rawAttributes
|
|
364
|
-
const newOperationalState = mapHAStateToOperationalState(s.state, s.isCharging, s.errorMsg, s.rawAttributes);
|
|
484
|
+
// 更新运行状态(传递 rawAttributes 和房间变化信息)
|
|
485
|
+
const newOperationalState = mapHAStateToOperationalState(s.state, s.isCharging, s.errorMsg, s.rawAttributes, isAreaCleaning, roomChanged);
|
|
365
486
|
// 如果有错误,显示错误详情
|
|
366
487
|
if (s.errorMsg && s.errorMsg !== 'no_error' && s.errorMsg !== 'unavailable') {
|
|
367
488
|
const errorInfo = mapDreameErrorToMatter(s.errorMsg);
|
|
@@ -372,7 +493,12 @@ export class RoborockHAPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
372
493
|
}
|
|
373
494
|
try {
|
|
374
495
|
device.setAttribute(RvcOperationalState.Cluster.id, 'operationalState', newOperationalState, this.log);
|
|
375
|
-
|
|
496
|
+
const opStateLabels = {
|
|
497
|
+
0: 'Stopped', 1: 'Running', 2: 'Paused', 3: 'Error',
|
|
498
|
+
4: 'SeekingCharger', 5: 'Charging', 6: 'Docked',
|
|
499
|
+
64: 'Transitioning⏳', 65: 'ChargingTransition⚡'
|
|
500
|
+
};
|
|
501
|
+
this.log.info(` ✓ 操作状态: ${newOperationalState} (${opStateLabels[newOperationalState] || 'Unknown'})`);
|
|
376
502
|
}
|
|
377
503
|
catch (error) {
|
|
378
504
|
this.log.error(` ✗ 运行状态更新失败:`, error);
|
|
@@ -381,11 +507,18 @@ export class RoborockHAPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
381
507
|
const newRunMode = mapHAStateToRunMode(s.state);
|
|
382
508
|
try {
|
|
383
509
|
device.setAttribute(RvcRunMode.Cluster.id, 'currentMode', newRunMode, this.log);
|
|
384
|
-
|
|
510
|
+
const runModeLabel = newRunMode === 2 ? 'Cleaning' : newRunMode === 1 ? 'Idle' : 'Mapping';
|
|
511
|
+
this.log.info(` ✓ 运行模式: ${newRunMode} (${runModeLabel})`);
|
|
385
512
|
}
|
|
386
513
|
catch (error) {
|
|
387
514
|
this.log.error(` ✗ 运行模式更新失败:`, error);
|
|
388
515
|
}
|
|
516
|
+
// 更新 Matter Progress 数组
|
|
517
|
+
this.updateProgressArray(device, controller, s, selectedAreaIds);
|
|
518
|
+
// HEPA 滤网监控已禁用(需要 Matterbridge 核心支持)
|
|
519
|
+
// if (s.hepaFilterLife !== undefined) {
|
|
520
|
+
// this.updateHepaFilterState(device, s.hepaFilterLife);
|
|
521
|
+
// }
|
|
389
522
|
});
|
|
390
523
|
return device;
|
|
391
524
|
}
|
|
@@ -408,6 +541,145 @@ export class RoborockHAPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
408
541
|
this.log.error('❌ 电池状态更新失败:', error);
|
|
409
542
|
}
|
|
410
543
|
}
|
|
544
|
+
/**
|
|
545
|
+
* 更新 HEPA 滤网状态
|
|
546
|
+
* HepaFilterMonitoring Cluster ID: 0x0071 (113)
|
|
547
|
+
*/
|
|
548
|
+
async updateHepaFilterState(device, filterLife) {
|
|
549
|
+
try {
|
|
550
|
+
const HEPA_FILTER_MONITORING_CLUSTER_ID = 0x0071; // 113
|
|
551
|
+
// condition: 剩余寿命百分比 (0-100)
|
|
552
|
+
const condition = Math.min(100, Math.max(0, Math.round(filterLife)));
|
|
553
|
+
// changeIndication 枚举值: Ok=0, Warning=1, Critical=2
|
|
554
|
+
let changeIndication;
|
|
555
|
+
if (condition >= 20) {
|
|
556
|
+
changeIndication = 0; // Ok
|
|
557
|
+
}
|
|
558
|
+
else if (condition >= 10) {
|
|
559
|
+
changeIndication = 1; // Warning
|
|
560
|
+
}
|
|
561
|
+
else {
|
|
562
|
+
changeIndication = 2; // Critical
|
|
563
|
+
}
|
|
564
|
+
// 更新 HepaFilterMonitoring cluster 属性
|
|
565
|
+
device.setAttribute(HEPA_FILTER_MONITORING_CLUSTER_ID, 'condition', condition, this.log);
|
|
566
|
+
device.setAttribute(HEPA_FILTER_MONITORING_CLUSTER_ID, 'changeIndication', changeIndication, this.log);
|
|
567
|
+
const statusLabels = {
|
|
568
|
+
0: 'Ok',
|
|
569
|
+
1: 'Warning',
|
|
570
|
+
2: 'Critical'
|
|
571
|
+
};
|
|
572
|
+
this.log.debug(` ✓ HEPA 滤网: ${condition}% (${statusLabels[changeIndication]})`);
|
|
573
|
+
}
|
|
574
|
+
catch (error) {
|
|
575
|
+
this.log.debug(` 无法更新 HEPA 滤网状态:`, error);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
/**
|
|
579
|
+
* 更新 Matter Progress 数组
|
|
580
|
+
* Progress 是一个数组,每个选中的区域一个条目
|
|
581
|
+
*/
|
|
582
|
+
updateProgressArray(device, controller, state, selectedAreaIds) {
|
|
583
|
+
// 如果没有选中区域,不更新 Progress
|
|
584
|
+
if (selectedAreaIds.length === 0) {
|
|
585
|
+
return;
|
|
586
|
+
}
|
|
587
|
+
const roomAreaSizes = controller.getRoomAreaSizes();
|
|
588
|
+
const currentRoom = state.currentRoom;
|
|
589
|
+
const cleanedArea = state.cleanedArea || 0;
|
|
590
|
+
const cleaningTime = state.cleaningTime || 0;
|
|
591
|
+
// 构建 Progress 数组
|
|
592
|
+
const progressArray = selectedAreaIds.map(areaId => {
|
|
593
|
+
const area = SUPPORTED_AREAS.find(a => a.areaId === areaId);
|
|
594
|
+
const roomName = area?.areaInfo?.locationInfo?.locationName || '';
|
|
595
|
+
const roomSize = roomAreaSizes?.[roomName] || 0;
|
|
596
|
+
// 确定状态
|
|
597
|
+
let status;
|
|
598
|
+
if (currentRoom === roomName && state.state === 'cleaning') {
|
|
599
|
+
status = 1; // Operating
|
|
600
|
+
}
|
|
601
|
+
else if (state.state === 'docked' || state.state === 'returning') {
|
|
602
|
+
// 如果已完成或返回中,检查是否已清洁
|
|
603
|
+
status = 3; // Completed(简化处理)
|
|
604
|
+
}
|
|
605
|
+
else {
|
|
606
|
+
status = 0; // Pending
|
|
607
|
+
}
|
|
608
|
+
// totalOperationalTime: 总操作时间(秒)
|
|
609
|
+
const totalOperationalTime = cleaningTime * 60; // 转换为秒
|
|
610
|
+
// estimatedTime: 预计时间(秒)
|
|
611
|
+
let estimatedTime = null;
|
|
612
|
+
if (status === 0 && roomSize > 0 && cleanedArea > 0) {
|
|
613
|
+
// 如果是 Pending 状态,根据已清洁面积估算
|
|
614
|
+
const avgSpeed = cleanedArea / (cleaningTime || 1); // m²/min
|
|
615
|
+
const estimatedMinutes = roomSize / avgSpeed;
|
|
616
|
+
estimatedTime = Math.round(estimatedMinutes * 60); // 转换为秒
|
|
617
|
+
}
|
|
618
|
+
else if (status === 1 && roomSize > 0 && cleanedArea > 0) {
|
|
619
|
+
// 如果正在清扫,计算剩余时间
|
|
620
|
+
const remaining = Math.max(0, roomSize - cleanedArea);
|
|
621
|
+
const avgSpeed = cleanedArea / (cleaningTime || 1);
|
|
622
|
+
const estimatedMinutes = remaining / avgSpeed;
|
|
623
|
+
estimatedTime = Math.round(estimatedMinutes * 60);
|
|
624
|
+
}
|
|
625
|
+
return {
|
|
626
|
+
areaId,
|
|
627
|
+
status,
|
|
628
|
+
totalOperationalTime: totalOperationalTime > 0 ? totalOperationalTime : null,
|
|
629
|
+
estimatedTime
|
|
630
|
+
};
|
|
631
|
+
});
|
|
632
|
+
// 更新 Matter Progress 属性
|
|
633
|
+
try {
|
|
634
|
+
device.setAttribute(ServiceArea.Cluster.id, 'progress', progressArray, this.log);
|
|
635
|
+
this.log.debug(` ✓ Progress 数组已更新: ${JSON.stringify(progressArray)}`);
|
|
636
|
+
}
|
|
637
|
+
catch (error) {
|
|
638
|
+
this.log.debug(` 无法更新 Progress 数组:`, error);
|
|
639
|
+
}
|
|
640
|
+
// 更新 estimatedEndTime(整体完成时间)
|
|
641
|
+
this.updateEstimatedEndTime(device, progressArray, state);
|
|
642
|
+
}
|
|
643
|
+
/**
|
|
644
|
+
* 更新 ServiceArea.estimatedEndTime 属性
|
|
645
|
+
* 根据 Matter 规范,这是整个清扫任务的预计完成时间点(Unix 时间戳)
|
|
646
|
+
*/
|
|
647
|
+
updateEstimatedEndTime(device, progressArray, state) {
|
|
648
|
+
let estimatedEndTime = null;
|
|
649
|
+
// 只有在清扫状态下才计算完成时间
|
|
650
|
+
if (state.state === 'cleaning') {
|
|
651
|
+
// 计算所有未完成区域的总预计时间(秒)
|
|
652
|
+
let totalEstimatedSeconds = 0;
|
|
653
|
+
for (const progress of progressArray) {
|
|
654
|
+
// 只统计 Pending (0) 和 Operating (1) 状态的区域
|
|
655
|
+
if (progress.status === 0 || progress.status === 1) {
|
|
656
|
+
if (progress.estimatedTime !== null && progress.estimatedTime !== undefined) {
|
|
657
|
+
totalEstimatedSeconds += progress.estimatedTime;
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
// 如果有预计时间,计算完成时间点(Unix 时间戳)
|
|
662
|
+
if (totalEstimatedSeconds > 0) {
|
|
663
|
+
const now = Math.floor(Date.now() / 1000); // 当前 Unix 时间戳(秒)
|
|
664
|
+
estimatedEndTime = now + totalEstimatedSeconds;
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
// 设置 estimatedEndTime 属性
|
|
668
|
+
try {
|
|
669
|
+
device.setAttribute(ServiceArea.Cluster.id, 'estimatedEndTime', estimatedEndTime, this.log);
|
|
670
|
+
if (estimatedEndTime !== null) {
|
|
671
|
+
const date = new Date(estimatedEndTime * 1000);
|
|
672
|
+
const totalSeconds = estimatedEndTime - Math.floor(Date.now() / 1000);
|
|
673
|
+
this.log.debug(` ✓ 预计完成时间: ${date.toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' })} (${totalSeconds}秒后)`);
|
|
674
|
+
}
|
|
675
|
+
else {
|
|
676
|
+
this.log.debug(` ✓ 预计完成时间: 未知 (null)`);
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
catch (error) {
|
|
680
|
+
this.log.debug(` 无法设置 estimatedEndTime:`, error);
|
|
681
|
+
}
|
|
682
|
+
}
|
|
411
683
|
async onConfigure() {
|
|
412
684
|
this.log.info('⚙️ 配置插件');
|
|
413
685
|
}
|
package/dist/src/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"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"}
|