@homebridge-plugins/homebridge-matter 0.1.2 → 0.1.3-beta.1

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 CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to `@homebridge-plugins/homebridge-matter` will be documented in this file.
4
4
 
5
+ ## v0.1.3 (Unreleased)
6
+
7
+ ### Changes
8
+
9
+ - add realistic state changes to vacuum example
10
+
5
11
  ## v0.1.2 (2025-10-21)
6
12
 
7
13
  ### Changes
package/README.md CHANGED
@@ -68,7 +68,7 @@ This plugin provides example implementations of Matter device types in Homebridg
68
68
 
69
69
  - To use this plugin, you will need to already have:
70
70
  - [Node](https://nodejs.org): latest version of `v20`, `v22` or `v24` - any other major version is not supported.
71
- - [Homebridge](https://homebridge.io): `>=2.0.0-alpha.60 <2.0.0-beta.0` - refer to link for more information and installation instructions.
71
+ - [Homebridge](https://homebridge.io): `>=2.0.0-alpha.61 <2.0.0-beta.0` - refer to link for more information and installation instructions.
72
72
 
73
73
  ### Help/About
74
74
 
@@ -1,55 +1,3 @@
1
- /**
2
- * Robotic Vacuum Cleaner Device (Matter Spec § 12.1)
3
- *
4
- * A robotic vacuum cleaner with autonomous cleaning capabilities.
5
- *
6
- * ✅ Apple Home Compatibility - EXTERNAL ACCESSORIES
7
- * This device is published using api.matter.publishExternalAccessories() in platform.ts.
8
- * RVC devices MUST be on their own dedicated Matter bridge for Apple Home compatibility.
9
- *
10
- * IMPORTANT: This function only CREATES the accessory configuration.
11
- * The actual publishing happens in platform.ts using publishExternalAccessories().
12
- *
13
- * What happens when this device is published as external:
14
- * ─────────────────────────────────────────────────────────────
15
- * 1. Dedicated Matter Server: Gets its own MatterServer instance
16
- * 2. Automatic Port Allocation: Receives a unique port (e.g., 5541)
17
- * 3. Separate Commissioning: Gets its own QR code and manual pairing code
18
- * 4. Isolation: Completely independent of other Matter accessories
19
- * 5. Apple Home Compatible: Works properly with Apple Home's RVC requirements
20
- *
21
- * When you start Homebridge, you'll see logs like:
22
- * ```
23
- * [Matter] Publishing 1 external Matter accessory
24
- * [Matter] Allocated port 5541 for external Matter accessory: Robot Vacuum
25
- * [Matter] ✓ External Matter accessory published: Robot Vacuum on port 5541
26
- * [Matter] 📱 Commissioning codes for Robot Vacuum:
27
- * [Matter] QR Code: MT:Y.K9042C00KA0648G00
28
- * [Matter] Manual Code: 3492-8840-7309-5200-911
29
- * ```
30
- *
31
- * Use the separate QR code to commission this device in Apple Home.
32
- *
33
- * For developers implementing similar devices:
34
- * ──────────────────────────────────────────────
35
- * If you need to create your own device that requires isolation (like cameras,
36
- * doorbells, or other complex devices that Apple Home requires on separate bridges),
37
- * follow this pattern:
38
- *
39
- * 1. Create the accessory configuration in a device file (like this one)
40
- * 2. Return it from your registration function
41
- * 3. In platform.ts, use api.matter.publishExternalAccessories() instead of
42
- * api.matter.registerPlatformAccessories()
43
- *
44
- * Example in your platform.ts:
45
- * ```typescript
46
- * const accessories = [...registerYourDevice(context)]
47
- * if (accessories.length > 0) {
48
- * // Use publishExternalAccessories for devices that need isolation
49
- * this.api.matter.publishExternalAccessories(PLUGIN_NAME, accessories)
50
- * }
51
- * ```
52
- */
53
1
  import type { DeviceContext } from '../types.js';
54
2
  /**
55
3
  * Registers a Robotic Vacuum Cleaner accessory.
@@ -1,3 +1,4 @@
1
+ /* global NodeJS */
1
2
  /**
2
3
  * Robotic Vacuum Cleaner Device (Matter Spec § 12.1)
3
4
  *
@@ -51,6 +52,30 @@
51
52
  * ```
52
53
  */
53
54
  import { MatterTypes } from 'homebridge';
55
+ /**
56
+ * Timer management for realistic vacuum behavior
57
+ * Stores active timers so they can be cleared when state changes
58
+ */
59
+ const activeTimers = new Map();
60
+ /**
61
+ * Clear all active timers for a vacuum
62
+ */
63
+ function clearVacuumTimers(uuid) {
64
+ const timers = activeTimers.get(uuid);
65
+ if (timers) {
66
+ timers.forEach(timer => clearTimeout(timer));
67
+ activeTimers.delete(uuid);
68
+ }
69
+ }
70
+ /**
71
+ * Store a timer for a vacuum
72
+ */
73
+ function addVacuumTimer(uuid, timer) {
74
+ if (!activeTimers.has(uuid)) {
75
+ activeTimers.set(uuid, []);
76
+ }
77
+ activeTimers.get(uuid).push(timer);
78
+ }
54
79
  /**
55
80
  * Registers a Robotic Vacuum Cleaner accessory.
56
81
  *
@@ -295,34 +320,28 @@ export function registerRoboticVacuumCleaner(context) {
295
320
  /**
296
321
  * pause() - Called when user presses "pause" in Home app
297
322
  *
298
- * Best practices:
299
- * 1. Validate current state (can't pause if docked/charging)
300
- * 2. Send command to physical device
301
- * 3. Wait for confirmation
302
- * 4. Update Matter state
303
- * 5. Handle errors appropriately
323
+ * REALISTIC BEHAVIOR:
324
+ * - Immediately pauses the vacuum
325
+ * - Cancels any active cleaning or docking sequences
326
+ * - Stays paused until user resumes or sends home
304
327
  */
305
328
  pause: async () => {
306
329
  log.info('[Robot Vacuum] ✓ Handler `pause` called - Pausing cleaning');
307
330
  try {
308
- // TODO: Add validation - can we pause in current state?
309
- // const currentState = accessory.clusters.rvcOperationalState.operationalState
310
- // if (currentState === MatterTypes.RvcOperationalState.OperationalState.Charging ||
311
- // currentState === MatterTypes.RvcOperationalState.OperationalState.Docked) {
312
- // throw new Error('Cannot pause while docked or charging')
313
- // }
331
+ // Clear any active automated sequences (cleaning, docking, etc.)
332
+ clearVacuumTimers(uuid);
333
+ log.info('[Robot Vacuum] Cleared active timers');
314
334
  // TODO: Send pause command to your actual robot vacuum
315
335
  // Example: await yourVacuumAPI.pause()
316
- // Update Matter state to reflect the change
317
- return api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Paused });
336
+ // Update Matter state to Paused
337
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Paused });
318
338
  }
319
339
  catch (error) {
320
340
  log.error('[Robot Vacuum] Failed to pause:', error);
321
- // Update to error state
322
- return api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, {
341
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, {
323
342
  operationalState: MatterTypes.RvcOperationalState.OperationalState.Error,
324
343
  operationalError: {
325
- errorStateId: 1, // Generic error
344
+ errorStateId: 1,
326
345
  errorStateLabel: 'Failed to pause vacuum',
327
346
  },
328
347
  });
@@ -331,25 +350,54 @@ export function registerRoboticVacuumCleaner(context) {
331
350
  /**
332
351
  * resume() - Called when user presses "resume" or "start" in Home app
333
352
  *
334
- * This should resume a paused cleaning session or start a new one.
335
- * Make sure to validate the current state before resuming.
353
+ * REALISTIC BEHAVIOR:
354
+ * 1. Immediately starts cleaning (Running state)
355
+ * 2. After 10 seconds: Cleaning complete, automatically returns to dock (SeekingCharger)
356
+ * 3. After 10 more seconds: Reaches dock and starts charging (Charging)
357
+ * 4. After 10 more seconds: Fully charged and ready (Docked)
358
+ *
359
+ * This simulates a complete cleaning cycle without needing an external app.
336
360
  */
337
361
  resume: async () => {
338
- log.info('[Robot Vacuum] ✓ Handler `resume` called - Resuming cleaning');
362
+ log.info('[Robot Vacuum] ✓ Handler `resume` called - Starting cleaning cycle');
339
363
  try {
340
- // TODO: Add validation
341
- // const currentState = accessory.clusters.rvcOperationalState.operationalState
342
- // if (currentState === MatterTypes.RvcOperationalState.OperationalState.SeekingCharger) {
343
- // throw new Error('Cannot resume while seeking charger')
344
- // }
345
- // TODO: Send resume command to your actual robot vacuum
364
+ // Clear any previous timers to avoid conflicts
365
+ clearVacuumTimers(uuid);
366
+ // TODO: Send start/resume command to your actual robot vacuum
346
367
  // Example: await yourVacuumAPI.resume()
347
- // Update Matter state to Running
348
- return api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Running });
368
+ // Step 1: Start cleaning immediately
369
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Running });
370
+ log.info('[Robot Vacuum] State: Running (cleaning started)');
371
+ // Step 2: After 10 seconds, finish cleaning and head home
372
+ const timer1 = setTimeout(() => {
373
+ log.info('[Robot Vacuum] Cleaning complete after 10 seconds, returning to dock');
374
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.SeekingCharger });
375
+ log.info('[Robot Vacuum] State: SeekingCharger (heading to dock)');
376
+ // Clear current area since we're done cleaning
377
+ api.matter.updateAccessoryState(uuid, 'serviceArea', {
378
+ currentArea: null,
379
+ });
380
+ // Step 3: After 10 more seconds, reach dock and start charging
381
+ const timer2 = setTimeout(() => {
382
+ log.info('[Robot Vacuum] Reached dock after 10 seconds, starting charge');
383
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Charging });
384
+ log.info('[Robot Vacuum] State: Charging (on dock, charging battery)');
385
+ // Step 4: After 10 more seconds, fully charged and ready
386
+ const timer3 = setTimeout(() => {
387
+ log.info('[Robot Vacuum] Fully charged after 10 seconds, ready for next cycle');
388
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Docked });
389
+ log.info('[Robot Vacuum] State: Docked (ready and fully charged)');
390
+ }, 10000);
391
+ addVacuumTimer(uuid, timer3);
392
+ }, 10000);
393
+ addVacuumTimer(uuid, timer2);
394
+ }, 10000);
395
+ addVacuumTimer(uuid, timer1);
349
396
  }
350
397
  catch (error) {
351
398
  log.error('[Robot Vacuum] Failed to resume:', error);
352
- return api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, {
399
+ clearVacuumTimers(uuid);
400
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, {
353
401
  operationalState: MatterTypes.RvcOperationalState.OperationalState.Error,
354
402
  operationalError: {
355
403
  errorStateId: 1,
@@ -361,31 +409,46 @@ export function registerRoboticVacuumCleaner(context) {
361
409
  /**
362
410
  * goHome() - Called when user sends robot to charging dock
363
411
  *
364
- * This command should interrupt any current activity and return
365
- * the vacuum to its charging station.
412
+ * REALISTIC BEHAVIOR:
413
+ * 1. Immediately cancels cleaning and heads to dock (SeekingCharger)
414
+ * 2. After 10 seconds: Reaches dock and starts charging (Charging)
415
+ * 3. After 10 more seconds: Fully charged and ready (Docked)
416
+ *
417
+ * This simulates the robot navigating back to its dock and charging.
366
418
  */
367
419
  goHome: async () => {
368
420
  log.info('[Robot Vacuum] ✓ Handler `goHome` called - Returning to dock');
369
421
  try {
422
+ // Clear any active cleaning timers
423
+ clearVacuumTimers(uuid);
370
424
  // TODO: Send return-to-dock command to your actual robot vacuum
371
425
  // Example: await yourVacuumAPI.returnToDock()
372
426
  // Clear current area when returning home
373
427
  api.matter.updateAccessoryState(uuid, 'serviceArea', {
374
428
  currentArea: null,
375
429
  });
376
- // Update Matter state to SeekingCharger
377
- return api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.SeekingCharger });
378
- // TIP: Set up monitoring to track docking progress:
379
- // - When vacuum reaches dock: update to Charging state
380
- // - When fully charged: update to Docked state
381
- // Example:
382
- // await api.matter.updateAccessoryState(uuid, 'rvcOperationalState', {
383
- // operationalState: MatterTypes.RvcOperationalState.OperationalState.Charging
384
- // })
430
+ // Step 1: Start heading to dock immediately
431
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.SeekingCharger });
432
+ log.info('[Robot Vacuum] State: SeekingCharger (navigating to dock)');
433
+ // Step 2: After 10 seconds, reach dock and start charging
434
+ const timer1 = setTimeout(() => {
435
+ log.info('[Robot Vacuum] Reached dock after 10 seconds, starting charge');
436
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Charging });
437
+ log.info('[Robot Vacuum] State: Charging (on dock, charging battery)');
438
+ // Step 3: After 10 more seconds, fully charged and ready
439
+ const timer2 = setTimeout(() => {
440
+ log.info('[Robot Vacuum] Fully charged after 10 seconds, ready for next cycle');
441
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Docked });
442
+ log.info('[Robot Vacuum] State: Docked (ready and fully charged)');
443
+ }, 10000);
444
+ addVacuumTimer(uuid, timer2);
445
+ }, 10000);
446
+ addVacuumTimer(uuid, timer1);
385
447
  }
386
448
  catch (error) {
387
449
  log.error('[Robot Vacuum] Failed to return home:', error);
388
- return api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, {
450
+ clearVacuumTimers(uuid);
451
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, {
389
452
  operationalState: MatterTypes.RvcOperationalState.OperationalState.Error,
390
453
  operationalError: {
391
454
  errorStateId: 1,
@@ -404,35 +467,86 @@ export function registerRoboticVacuumCleaner(context) {
404
467
  *
405
468
  * Run Modes:
406
469
  * 0 = Idle - Device is inactive
407
- * 1 = Quick-Cleaning - Single cleaning cycle
408
- * 2 = Auto-Cleaning - Continuous/scheduled cleaning
409
- * 3 = Mapping - Map the environment
470
+ * 1 = Quick-Cleaning - Single cleaning cycle (5 seconds)
471
+ * 2 = Auto-Cleaning - Full cleaning cycle (10 seconds)
472
+ * 3 = Mapping - Map the environment (10 seconds, then stop)
410
473
  *
411
- * Implementation notes:
412
- * - Changing to a cleaning mode should start the vacuum
413
- * - Changing to Idle should stop current activity
414
- * - Update operational state accordingly
474
+ * REALISTIC BEHAVIOR:
475
+ * - Changing to Idle: Stops immediately (Stopped state)
476
+ * - Changing to Quick-Cleaning: Cleans for 5 seconds, then docks
477
+ * - Changing to Auto-Cleaning: Cleans for 10 seconds, then docks
478
+ * - Changing to Mapping: Maps for 10 seconds, then returns to Stopped
415
479
  */
416
480
  changeToMode: async (request) => {
417
481
  const modes = ['Idle', 'Quick-Cleaning', 'Auto-Cleaning', 'Mapping'];
418
482
  const modeName = modes[request.newMode] || `Unknown (${request.newMode})`;
419
483
  log.info(`[Robot Vacuum] ✓ Handler \`changeToMode\` (run mode) called: ${request.newMode} (${modeName})`);
420
484
  try {
421
- // TODO: Send mode change command to your actual robot vacuum
422
- // Example:
423
- // if (request.newMode === 0) {
424
- // await yourVacuumAPI.stop()
425
- // } else if (request.newMode === 1 || request.newMode === 2) {
426
- // await yourVacuumAPI.startCleaning()
427
- // } else if (request.newMode === 3) {
428
- // await yourVacuumAPI.startMapping()
429
- // }
430
- // Update Matter state
431
- return api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcRunMode, { currentMode: request.newMode });
485
+ // Clear any active timers
486
+ clearVacuumTimers(uuid);
487
+ // Update run mode
488
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcRunMode, { currentMode: request.newMode });
489
+ // Handle different modes with realistic behavior
490
+ if (request.newMode === 0) {
491
+ // Mode 0: Idle - Stop immediately
492
+ log.info('[Robot Vacuum] Switching to Idle mode - stopping');
493
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Stopped });
494
+ }
495
+ else if (request.newMode === 1) {
496
+ // Mode 1: Quick-Cleaning - Clean for 5 seconds, then dock
497
+ log.info('[Robot Vacuum] Starting Quick-Cleaning mode (5 seconds)');
498
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Running });
499
+ // After 5 seconds, return to dock
500
+ const timer1 = setTimeout(() => {
501
+ log.info('[Robot Vacuum] Quick-Cleaning complete, returning to dock');
502
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.SeekingCharger });
503
+ // 10 seconds to dock and charge (same as before)
504
+ const timer2 = setTimeout(() => {
505
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Charging });
506
+ const timer3 = setTimeout(() => {
507
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Docked });
508
+ }, 10000);
509
+ addVacuumTimer(uuid, timer3);
510
+ }, 10000);
511
+ addVacuumTimer(uuid, timer2);
512
+ }, 5000);
513
+ addVacuumTimer(uuid, timer1);
514
+ }
515
+ else if (request.newMode === 2) {
516
+ // Mode 2: Auto-Cleaning - Clean for 10 seconds, then dock
517
+ log.info('[Robot Vacuum] Starting Auto-Cleaning mode (10 seconds)');
518
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Running });
519
+ // After 10 seconds, return to dock (same logic as resume)
520
+ const timer1 = setTimeout(() => {
521
+ log.info('[Robot Vacuum] Auto-Cleaning complete, returning to dock');
522
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.SeekingCharger });
523
+ const timer2 = setTimeout(() => {
524
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Charging });
525
+ const timer3 = setTimeout(() => {
526
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Docked });
527
+ }, 10000);
528
+ addVacuumTimer(uuid, timer3);
529
+ }, 10000);
530
+ addVacuumTimer(uuid, timer2);
531
+ }, 10000);
532
+ addVacuumTimer(uuid, timer1);
533
+ }
534
+ else if (request.newMode === 3) {
535
+ // Mode 3: Mapping - Map for 10 seconds, then stop (no docking)
536
+ log.info('[Robot Vacuum] Starting Mapping mode (10 seconds)');
537
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Running });
538
+ // After 10 seconds, stop mapping
539
+ const timer1 = setTimeout(() => {
540
+ log.info('[Robot Vacuum] Mapping complete, stopping');
541
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Stopped });
542
+ }, 10000);
543
+ addVacuumTimer(uuid, timer1);
544
+ }
432
545
  }
433
546
  catch (error) {
434
547
  log.error('[Robot Vacuum] Failed to change run mode:', error);
435
- return api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, {
548
+ clearVacuumTimers(uuid);
549
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, {
436
550
  operationalState: MatterTypes.RvcOperationalState.OperationalState.Error,
437
551
  operationalError: {
438
552
  errorStateId: 1,
@@ -496,31 +610,78 @@ export function registerRoboticVacuumCleaner(context) {
496
610
  * selectAreas() - Called when user selects specific rooms to clean
497
611
  *
498
612
  * @param request - Request object
499
- * @param request.areas - Array of area IDs to clean
613
+ * @param request.newAreas - Array of area IDs to clean (Matter spec uses "newAreas")
500
614
  *
501
- * Example usage:
502
- * - User selects "Kitchen" and "Living Room" in Home app
503
- * - request.areas = [0, 1] (Kitchen=0, Living Room=1)
504
- * - Empty array means "clean all areas"
615
+ * REALISTIC BEHAVIOR:
616
+ * - Stores the selected areas
617
+ * - Automatically starts cleaning those areas sequentially
618
+ * - Each area takes 5 seconds to clean
619
+ * - Updates currentArea to show which room is being cleaned
620
+ * - After all areas cleaned, returns to dock
621
+ *
622
+ * Example: User selects Kitchen (0) and Living Room (1)
623
+ * 1. Clean Kitchen for 5 seconds
624
+ * 2. Clean Living Room for 5 seconds
625
+ * 3. Return to dock
505
626
  */
506
627
  selectAreas: async (request) => {
507
628
  const areaNames = ['Kitchen', 'Living Room', 'Bedroom', 'Bathroom'];
508
- const selectedNames = request.areas.map(id => areaNames[id] || `Area ${id}`);
629
+ const areas = request.newAreas || [];
630
+ const selectedNames = areas.map(id => areaNames[id] || `Area ${id}`);
509
631
  log.info(`[Robot Vacuum] ✓ Handler \`selectAreas\` called - Selected areas: ${selectedNames.join(', ') || 'All areas'}`);
510
632
  try {
511
- // TODO: Send area selection to your actual robot vacuum
512
- // Example:
513
- // if (request.areas.length > 0) {
514
- // await yourVacuumAPI.setCleaningAreas(request.areas)
515
- // } else {
516
- // await yourVacuumAPI.setCleaningAreas('all')
517
- // }
518
- // Update Matter state
519
- return api.matter.updateAccessoryState(uuid, 'serviceArea', { selectedAreas: request.areas });
633
+ // Clear any active timers
634
+ clearVacuumTimers(uuid);
635
+ // Update selected areas
636
+ api.matter.updateAccessoryState(uuid, 'serviceArea', { selectedAreas: areas });
637
+ // If no areas selected, just store and return
638
+ if (areas.length === 0) {
639
+ log.info('[Robot Vacuum] No specific areas selected, ready to clean all areas');
640
+ return;
641
+ }
642
+ // Start cleaning the selected areas sequentially
643
+ log.info(`[Robot Vacuum] Starting area-based cleaning: ${selectedNames.join(' → ')}`);
644
+ // Start running
645
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Running });
646
+ // Clean each area sequentially (5 seconds per area)
647
+ let delay = 0;
648
+ for (let i = 0; i < areas.length; i++) {
649
+ const areaId = areas[i];
650
+ const areaName = areaNames[areaId] || `Area ${areaId}`;
651
+ const timer = setTimeout(() => {
652
+ log.info(`[Robot Vacuum] Now cleaning: ${areaName} (${i + 1}/${areas.length})`);
653
+ api.matter.updateAccessoryState(uuid, 'serviceArea', {
654
+ currentArea: areaId,
655
+ });
656
+ }, delay);
657
+ addVacuumTimer(uuid, timer);
658
+ delay += 5000; // 5 seconds per area
659
+ }
660
+ // After all areas are cleaned, return to dock
661
+ const finalTimer = setTimeout(() => {
662
+ log.info('[Robot Vacuum] All areas cleaned, returning to dock');
663
+ api.matter.updateAccessoryState(uuid, 'serviceArea', {
664
+ currentArea: null,
665
+ });
666
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.SeekingCharger });
667
+ // 10 seconds to reach dock
668
+ const dockTimer1 = setTimeout(() => {
669
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Charging });
670
+ // 10 seconds to charge
671
+ const dockTimer2 = setTimeout(() => {
672
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, { operationalState: MatterTypes.RvcOperationalState.OperationalState.Docked });
673
+ log.info('[Robot Vacuum] Area-based cleaning complete, docked and charged');
674
+ }, 10000);
675
+ addVacuumTimer(uuid, dockTimer2);
676
+ }, 10000);
677
+ addVacuumTimer(uuid, dockTimer1);
678
+ }, delay);
679
+ addVacuumTimer(uuid, finalTimer);
520
680
  }
521
681
  catch (error) {
522
682
  log.error('[Robot Vacuum] Failed to select areas:', error);
523
- return api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, {
683
+ clearVacuumTimers(uuid);
684
+ api.matter.updateAccessoryState(uuid, api.matter.clusterNames.RvcOperationalState, {
524
685
  operationalState: MatterTypes.RvcOperationalState.OperationalState.Error,
525
686
  operationalError: {
526
687
  errorStateId: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"robotic-vacuum-cleaner.js","sourceRoot":"","sources":["../../../src/devices/section-12-robotic/robotic-vacuum-cleaner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"robotic-vacuum-cleaner.js","sourceRoot":"","sources":["../../../src/devices/section-12-robotic/robotic-vacuum-cleaner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "displayName": "Homebridge Matter",
4
4
  "alias": "Matter",
5
5
  "type": "module",
6
- "version": "0.1.2",
6
+ "version": "0.1.3-beta.1",
7
7
  "description": "Homebridge plugin to showcase examples of Matter devices in Homebridge.",
8
8
  "author": {
9
9
  "name": "bwp91",
@@ -49,7 +49,7 @@
49
49
  "main": "dist/index.js",
50
50
  "engines": {
51
51
  "node": "^20.18.0 || ^22.10.0 || ^24.0.0",
52
- "homebridge": ">=2.0.0-alpha.60 <2.0.0-beta.0"
52
+ "homebridge": ">=2.0.0-alpha.61 <2.0.0-beta.0"
53
53
  },
54
54
  "scripts": {
55
55
  "build": "rimraf ./dist && tsc && npm run plugin-ui",
@@ -65,7 +65,7 @@
65
65
  "devDependencies": {
66
66
  "@antfu/eslint-config": "^6.0.0",
67
67
  "@types/node": "^24.9.1",
68
- "homebridge": "2.0.0-alpha.60",
68
+ "homebridge": "2.0.0-alpha.61",
69
69
  "rimraf": "^6.0.1",
70
70
  "ts-node": "^10.9.2",
71
71
  "typescript": "^5.9.3"