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.
@@ -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
- const controller = new HAVacuumController(this.haClient, entityId, batterySensorId, chargingSensorId, cleaningModeEntityId, errorSensorId);
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 而不是 detailedStatus)
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
- this.log.debug(` ✓ 运行状态: ${newOperationalState}`);
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
- this.log.debug(` ✓ 运行模式: ${newRunMode}`);
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
  }
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "matterbridge-ha-roborock",
3
- "version": "3.0.0",
3
+ "version": "3.3.0",
4
4
  "description": "Matterbridge plugin for Roborock vacuums via Home Assistant",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",