@homebridge-plugins/homebridge-matter 0.7.0 → 0.7.1-beta.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.
@@ -6,4 +6,15 @@ import { BaseMatterAccessory } from './BaseMatterAccessory.js';
6
6
  export declare class ContactSensorAccessory extends BaseMatterAccessory {
7
7
  constructor(api: API, log: Logger);
8
8
  updateContactState(isOpen: boolean): Promise<void>;
9
+ /**
10
+ * Event Methods
11
+ * These methods trigger Matter cluster events to notify controllers of state changes
12
+ */
13
+ /**
14
+ * Trigger a state change event
15
+ * Notifies controllers when contact state changes
16
+ *
17
+ * @param isOpen - true if contact is open, false if closed
18
+ */
19
+ triggerStateChangeEvent(isOpen: boolean): Promise<void>;
9
20
  }
@@ -27,5 +27,26 @@ export class ContactSensorAccessory extends BaseMatterAccessory {
27
27
  await this.updateState(this.api.matter.clusterNames.BooleanState, { stateValue: !isOpen });
28
28
  this.logInfo(`contact state: ${isOpen ? 'OPEN' : 'CLOSED'}.`);
29
29
  }
30
+ /**
31
+ * Event Methods
32
+ * These methods trigger Matter cluster events to notify controllers of state changes
33
+ */
34
+ /**
35
+ * Trigger a state change event
36
+ * Notifies controllers when contact state changes
37
+ *
38
+ * @param isOpen - true if contact is open, false if closed
39
+ */
40
+ async triggerStateChangeEvent(isOpen) {
41
+ try {
42
+ // Matter BooleanState: false = open/triggered, true = closed/normal (inverted!)
43
+ const stateValue = !isOpen;
44
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.BooleanState, 'stateChange', { stateValue });
45
+ this.logInfo(`stateChange event triggered: ${isOpen ? 'OPEN' : 'CLOSED'}`);
46
+ }
47
+ catch (error) {
48
+ this.logError('Failed to trigger stateChange event:', error);
49
+ }
50
+ }
30
51
  }
31
52
  //# sourceMappingURL=ContactSensorAccessory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContactSensorAccessory.js","sourceRoot":"","sources":["../../src/devices/ContactSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAC7D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,gBAAgB;YAC7B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa;YAChD,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,0BAA0B;YACjC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,YAAY,EAAE;oBACZ,UAAU,EAAE,IAAI,EAAE,uDAAuD;iBAC1E;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,MAAe;QAC7C,gFAAgF;QAChF,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;QAC1F,IAAI,CAAC,OAAO,CAAC,kBAAkB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC/D,CAAC;CACF"}
1
+ {"version":3,"file":"ContactSensorAccessory.js","sourceRoot":"","sources":["../../src/devices/ContactSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAC7D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,gBAAgB;YAC7B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa;YAChD,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,0BAA0B;YACjC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,YAAY,EAAE;oBACZ,UAAU,EAAE,IAAI,EAAE,uDAAuD;iBAC1E;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,MAAe;QAC7C,gFAAgF;QAChF,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;QAC1F,IAAI,CAAC,OAAO,CAAC,kBAAkB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC/D,CAAC;IAED;;;OAGG;IAEH;;;;;OAKG;IACI,KAAK,CAAC,uBAAuB,CAAC,MAAe;QAClD,IAAI,CAAC;YACH,gFAAgF;YAChF,MAAM,UAAU,GAAG,CAAC,MAAM,CAAA;YAC1B,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CACvC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EACzC,aAAa,EACb,EAAE,UAAU,EAAE,CACf,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,gCAAgC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;CACF"}
@@ -8,4 +8,39 @@ export declare class DoorLockAccessory extends BaseMatterAccessory {
8
8
  private handleLock;
9
9
  private handleUnlock;
10
10
  updateLockState(state: 0 | 1 | 2): Promise<void>;
11
+ /**
12
+ * Event Methods
13
+ * These methods trigger Matter cluster events to notify controllers of significant lock events
14
+ */
15
+ /**
16
+ * Trigger a door state change event
17
+ * Notifies controllers when the door state changes (open, closed, jammed, etc.)
18
+ *
19
+ * @param doorState - Door state: 0=Open, 1=Closed, 2=DoorJammed, 3=ForcedOpen, 4=Unspecified, 252-255=Reserved
20
+ */
21
+ triggerDoorStateChangeEvent(doorState: number): Promise<void>;
22
+ /**
23
+ * Trigger a lock operation event
24
+ * Notifies controllers when a lock/unlock operation occurs
25
+ *
26
+ * @param lockOperationType - 0=Lock, 1=Unlock, 2=NonAccessUserEvent, 3=ForcedUserEvent
27
+ * @param operationSource - 0=Unspecified, 1=Manual, 2=ProprietaryRemote, 3=Keypad, 4=Auto, 5=Button, 6=Schedule, 7=Remote, 8=RFID, 9=Biometric
28
+ * @param userIndex - Optional: User index (null if no user)
29
+ * @param fabricIndex - Optional: Fabric index (null if not applicable)
30
+ * @param sourceNode - Optional: Source node ID (null if not applicable)
31
+ */
32
+ triggerLockOperationEvent(lockOperationType: number, operationSource: number, userIndex?: number | null, fabricIndex?: number | null, sourceNode?: number | null): Promise<void>;
33
+ /**
34
+ * Trigger a lock operation error event
35
+ * Notifies controllers when a lock/unlock operation fails
36
+ *
37
+ * @param lockOperationType - 0=Lock, 1=Unlock, 2=NonAccessUserEvent, 3=ForcedUserEvent
38
+ * @param operationSource - Source of the operation (see lockOperation for values)
39
+ * @param operationError - 0=Unspecified, 1=InvalidCredential, 2=DisabledUserDenied, 3=Restricted, 4=InsufficientBattery
40
+ * @param userIndex - Optional: User index (null if no user)
41
+ * @param fabricIndex - Optional: Fabric index (null if not applicable)
42
+ * @param sourceNode - Optional: Source node ID (null if not applicable)
43
+ * @param credentials - Optional: Credentials list (null if not applicable)
44
+ */
45
+ triggerLockOperationErrorEvent(lockOperationType: number, operationSource: number, operationError: number, userIndex?: number | null, fabricIndex?: number | null, sourceNode?: number | null, credentials?: unknown): Promise<void>;
11
46
  }
@@ -78,5 +78,110 @@ export class DoorLockAccessory extends BaseMatterAccessory {
78
78
  const stateStr = ['Not Fully Locked', 'Locked', 'Unlocked'][state];
79
79
  this.logInfo(`lock state: ${stateStr}.`);
80
80
  }
81
+ /**
82
+ * Event Methods
83
+ * These methods trigger Matter cluster events to notify controllers of significant lock events
84
+ */
85
+ /**
86
+ * Trigger a door state change event
87
+ * Notifies controllers when the door state changes (open, closed, jammed, etc.)
88
+ *
89
+ * @param doorState - Door state: 0=Open, 1=Closed, 2=DoorJammed, 3=ForcedOpen, 4=Unspecified, 252-255=Reserved
90
+ */
91
+ async triggerDoorStateChangeEvent(doorState) {
92
+ try {
93
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.DoorLock, 'doorStateChange', { doorState });
94
+ const stateNames = {
95
+ 0: 'Open',
96
+ 1: 'Closed',
97
+ 2: 'Door Jammed',
98
+ 3: 'Forced Open',
99
+ 4: 'Unspecified',
100
+ };
101
+ this.logInfo(`doorStateChange event triggered: ${stateNames[doorState] || `Unknown (${doorState})`}`);
102
+ }
103
+ catch (error) {
104
+ this.logError('Failed to trigger doorStateChange event:', error);
105
+ }
106
+ }
107
+ /**
108
+ * Trigger a lock operation event
109
+ * Notifies controllers when a lock/unlock operation occurs
110
+ *
111
+ * @param lockOperationType - 0=Lock, 1=Unlock, 2=NonAccessUserEvent, 3=ForcedUserEvent
112
+ * @param operationSource - 0=Unspecified, 1=Manual, 2=ProprietaryRemote, 3=Keypad, 4=Auto, 5=Button, 6=Schedule, 7=Remote, 8=RFID, 9=Biometric
113
+ * @param userIndex - Optional: User index (null if no user)
114
+ * @param fabricIndex - Optional: Fabric index (null if not applicable)
115
+ * @param sourceNode - Optional: Source node ID (null if not applicable)
116
+ */
117
+ async triggerLockOperationEvent(lockOperationType, operationSource, userIndex = null, fabricIndex = null, sourceNode = null) {
118
+ try {
119
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.DoorLock, 'lockOperation', {
120
+ lockOperationType,
121
+ operationSource,
122
+ userIndex,
123
+ fabricIndex,
124
+ sourceNode,
125
+ });
126
+ const opTypeNames = {
127
+ 0: 'Lock',
128
+ 1: 'Unlock',
129
+ 2: 'NonAccessUserEvent',
130
+ 3: 'ForcedUserEvent',
131
+ };
132
+ const sourceNames = {
133
+ 0: 'Unspecified',
134
+ 1: 'Manual',
135
+ 2: 'ProprietaryRemote',
136
+ 3: 'Keypad',
137
+ 4: 'Auto',
138
+ 5: 'Button',
139
+ 6: 'Schedule',
140
+ 7: 'Remote',
141
+ 8: 'RFID',
142
+ 9: 'Biometric',
143
+ };
144
+ this.logInfo(`lockOperation event triggered: ${opTypeNames[lockOperationType]} from ${sourceNames[operationSource]}`);
145
+ }
146
+ catch (error) {
147
+ this.logError('Failed to trigger lockOperation event:', error);
148
+ }
149
+ }
150
+ /**
151
+ * Trigger a lock operation error event
152
+ * Notifies controllers when a lock/unlock operation fails
153
+ *
154
+ * @param lockOperationType - 0=Lock, 1=Unlock, 2=NonAccessUserEvent, 3=ForcedUserEvent
155
+ * @param operationSource - Source of the operation (see lockOperation for values)
156
+ * @param operationError - 0=Unspecified, 1=InvalidCredential, 2=DisabledUserDenied, 3=Restricted, 4=InsufficientBattery
157
+ * @param userIndex - Optional: User index (null if no user)
158
+ * @param fabricIndex - Optional: Fabric index (null if not applicable)
159
+ * @param sourceNode - Optional: Source node ID (null if not applicable)
160
+ * @param credentials - Optional: Credentials list (null if not applicable)
161
+ */
162
+ async triggerLockOperationErrorEvent(lockOperationType, operationSource, operationError, userIndex = null, fabricIndex = null, sourceNode = null, credentials = null) {
163
+ try {
164
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.DoorLock, 'lockOperationError', {
165
+ lockOperationType,
166
+ operationSource,
167
+ operationError,
168
+ userIndex,
169
+ fabricIndex,
170
+ sourceNode,
171
+ credentials,
172
+ });
173
+ const errorNames = {
174
+ 0: 'Unspecified',
175
+ 1: 'InvalidCredential',
176
+ 2: 'DisabledUserDenied',
177
+ 3: 'Restricted',
178
+ 4: 'InsufficientBattery',
179
+ };
180
+ this.logError(`lockOperationError event triggered: ${errorNames[operationError] || `Unknown (${operationError})`}`);
181
+ }
182
+ catch (error) {
183
+ this.logError('Failed to trigger lockOperationError event:', error);
184
+ }
185
+ }
81
186
  }
82
187
  //# sourceMappingURL=DoorLockAccessory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DoorLockAccessory.js","sourceRoot":"","sources":["../../src/devices/DoorLockAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IACxD,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,UAAU,CAAA;QAC/B,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ;YAC3C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,qBAAqB;YAC5B,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,QAAQ,EAAE;oBACR,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ;oBACvD,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ;oBACrD,eAAe,EAAE,IAAI;oBACrB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM;iBAC9D;aACF;YAED,QAAQ,EAAE;gBACR,QAAQ,EAAE;oBACR,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;oBACvC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;iBAC5C;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QAE7B,kDAAkD;QAClD,yBAAyB;QACzB,+EAA+E;QAC/E,IAAI;QAEJ,qDAAqD;QACrD,gCAAgC;QAChC,sEAAsE;QACtE,IAAI;QAEJ,gDAAgD;QAChD,QAAQ;QACR,gDAAgD;QAChD,oBAAoB;QACpB,wCAAwC;QACxC,8EAA8E;QAC9E,MAAM;QACN,sCAAsC;QACtC,qFAAqF;QACrF,MAAM;QACN,gBAAgB;QAChB,IAAI;QAEJ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QAE/B,kDAAkD;QAClD,uCAAuC;QACvC,uFAAuF;QACvF,IAAI;QAEJ,uDAAuD;QACvD,oCAAoC;QACpC,0FAA0F;QAC1F,IAAI;QAEJ,gDAAgD;QAChD,4CAA4C;QAC5C,6CAA6C;QAC7C,4FAA4F;QAC5F,IAAI;QAEJ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,KAAgB;QAC3C,iDAAiD;QACjD,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;QACxD,MAAM,QAAQ,GAAG,CAAC,kBAAkB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAA;QAClE,IAAI,CAAC,OAAO,CAAC,eAAe,QAAQ,GAAG,CAAC,CAAA;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"DoorLockAccessory.js","sourceRoot":"","sources":["../../src/devices/DoorLockAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IACxD,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,UAAU,CAAA;QAC/B,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ;YAC3C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,qBAAqB;YAC5B,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,QAAQ,EAAE;oBACR,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ;oBACvD,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ;oBACrD,eAAe,EAAE,IAAI;oBACrB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM;iBAC9D;aACF;YAED,QAAQ,EAAE;gBACR,QAAQ,EAAE;oBACR,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;oBACvC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;iBAC5C;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QAE7B,kDAAkD;QAClD,yBAAyB;QACzB,+EAA+E;QAC/E,IAAI;QAEJ,qDAAqD;QACrD,gCAAgC;QAChC,sEAAsE;QACtE,IAAI;QAEJ,gDAAgD;QAChD,QAAQ;QACR,gDAAgD;QAChD,oBAAoB;QACpB,wCAAwC;QACxC,8EAA8E;QAC9E,MAAM;QACN,sCAAsC;QACtC,qFAAqF;QACrF,MAAM;QACN,gBAAgB;QAChB,IAAI;QAEJ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QAE/B,kDAAkD;QAClD,uCAAuC;QACvC,uFAAuF;QACvF,IAAI;QAEJ,uDAAuD;QACvD,oCAAoC;QACpC,0FAA0F;QAC1F,IAAI;QAEJ,gDAAgD;QAChD,4CAA4C;QAC5C,6CAA6C;QAC7C,4FAA4F;QAC5F,IAAI;QAEJ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,KAAgB;QAC3C,iDAAiD;QACjD,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;QACxD,MAAM,QAAQ,GAAG,CAAC,kBAAkB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAA;QAClE,IAAI,CAAC,OAAO,CAAC,eAAe,QAAQ,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED;;;OAGG;IAEH;;;;;OAKG;IACI,KAAK,CAAC,2BAA2B,CAAC,SAAiB;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CACvC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EACrC,iBAAiB,EACjB,EAAE,SAAS,EAAE,CACd,CAAA;YACD,MAAM,UAAU,GAA2B;gBACzC,CAAC,EAAE,MAAM;gBACT,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,aAAa;gBAChB,CAAC,EAAE,aAAa;gBAChB,CAAC,EAAE,aAAa;aACjB,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,oCAAoC,UAAU,CAAC,SAAS,CAAC,IAAI,YAAY,SAAS,GAAG,EAAE,CAAC,CAAA;QACvG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,yBAAyB,CACpC,iBAAyB,EACzB,eAAuB,EACvB,YAA2B,IAAI,EAC/B,cAA6B,IAAI,EACjC,aAA4B,IAAI;QAEhC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CACvC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EACrC,eAAe,EACf;gBACE,iBAAiB;gBACjB,eAAe;gBACf,SAAS;gBACT,WAAW;gBACX,UAAU;aACX,CACF,CAAA;YACD,MAAM,WAAW,GAA2B;gBAC1C,CAAC,EAAE,MAAM;gBACT,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,oBAAoB;gBACvB,CAAC,EAAE,iBAAiB;aACrB,CAAA;YACD,MAAM,WAAW,GAA2B;gBAC1C,CAAC,EAAE,aAAa;gBAChB,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,mBAAmB;gBACtB,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,MAAM;gBACT,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,UAAU;gBACb,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,MAAM;gBACT,CAAC,EAAE,WAAW;aACf,CAAA;YACD,IAAI,CAAC,OAAO,CACV,kCAAkC,WAAW,CAAC,iBAAiB,CAAC,SAAS,WAAW,CAAC,eAAe,CAAC,EAAE,CACxG,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,8BAA8B,CACzC,iBAAyB,EACzB,eAAuB,EACvB,cAAsB,EACtB,YAA2B,IAAI,EAC/B,cAA6B,IAAI,EACjC,aAA4B,IAAI,EAChC,cAAuB,IAAI;QAE3B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CACvC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EACrC,oBAAoB,EACpB;gBACE,iBAAiB;gBACjB,eAAe;gBACf,cAAc;gBACd,SAAS;gBACT,WAAW;gBACX,UAAU;gBACV,WAAW;aACZ,CACF,CAAA;YACD,MAAM,UAAU,GAA2B;gBACzC,CAAC,EAAE,aAAa;gBAChB,CAAC,EAAE,mBAAmB;gBACtB,CAAC,EAAE,oBAAoB;gBACvB,CAAC,EAAE,YAAY;gBACf,CAAC,EAAE,qBAAqB;aACzB,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,uCAAuC,UAAU,CAAC,cAAc,CAAC,IAAI,YAAY,cAAc,GAAG,EAAE,CAAC,CAAA;QACrH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;CACF"}
@@ -6,4 +6,15 @@ import { BaseMatterAccessory } from './BaseMatterAccessory.js';
6
6
  export declare class LeakSensorAccessory extends BaseMatterAccessory {
7
7
  constructor(api: API, log: Logger);
8
8
  updateLeakState(leakDetected: boolean): Promise<void>;
9
+ /**
10
+ * Event Methods
11
+ * These methods trigger Matter cluster events to notify controllers of state changes
12
+ */
13
+ /**
14
+ * Trigger a state change event
15
+ * Notifies controllers when leak detection state changes
16
+ *
17
+ * @param leakDetected - true if leak detected, false if dry
18
+ */
19
+ triggerStateChangeEvent(leakDetected: boolean): Promise<void>;
9
20
  }
@@ -26,5 +26,24 @@ export class LeakSensorAccessory extends BaseMatterAccessory {
26
26
  await this.updateState(this.api.matter.clusterNames.BooleanState, { stateValue: leakDetected });
27
27
  this.logInfo(`leak: ${leakDetected ? 'detected' : 'none'}.`);
28
28
  }
29
+ /**
30
+ * Event Methods
31
+ * These methods trigger Matter cluster events to notify controllers of state changes
32
+ */
33
+ /**
34
+ * Trigger a state change event
35
+ * Notifies controllers when leak detection state changes
36
+ *
37
+ * @param leakDetected - true if leak detected, false if dry
38
+ */
39
+ async triggerStateChangeEvent(leakDetected) {
40
+ try {
41
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.BooleanState, 'stateChange', { stateValue: leakDetected });
42
+ this.logInfo(`stateChange event triggered: ${leakDetected ? 'LEAK DETECTED' : 'DRY'}`);
43
+ }
44
+ catch (error) {
45
+ this.logError('Failed to trigger stateChange event:', error);
46
+ }
47
+ }
29
48
  }
30
49
  //# sourceMappingURL=LeakSensorAccessory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LeakSensorAccessory.js","sourceRoot":"","sources":["../../src/devices/LeakSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,mBAAoB,SAAQ,mBAAmB;IAC1D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,aAAa;YAC1B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU;YAC7C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,uBAAuB;YAC9B,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,YAAY,EAAE;oBACZ,UAAU,EAAE,KAAK,EAAE,2BAA2B;iBAC/C;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,YAAqB;QAChD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;QAC/F,IAAI,CAAC,OAAO,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAC9D,CAAC;CACF"}
1
+ {"version":3,"file":"LeakSensorAccessory.js","sourceRoot":"","sources":["../../src/devices/LeakSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,mBAAoB,SAAQ,mBAAmB;IAC1D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,aAAa;YAC1B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU;YAC7C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,uBAAuB;YAC9B,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,YAAY,EAAE;oBACZ,UAAU,EAAE,KAAK,EAAE,2BAA2B;iBAC/C;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,YAAqB;QAChD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;QAC/F,IAAI,CAAC,OAAO,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAC9D,CAAC;IAED;;;OAGG;IAEH;;;;;OAKG;IACI,KAAK,CAAC,uBAAuB,CAAC,YAAqB;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CACvC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EACzC,aAAa,EACb,EAAE,UAAU,EAAE,YAAY,EAAE,CAC7B,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,gCAAgC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QACxF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;CACF"}
@@ -6,4 +6,15 @@ import { BaseMatterAccessory } from './BaseMatterAccessory.js';
6
6
  export declare class OccupancySensorAccessory extends BaseMatterAccessory {
7
7
  constructor(api: API, log: Logger);
8
8
  updateOccupancyDetected(detected: boolean): Promise<void>;
9
+ /**
10
+ * Event Methods
11
+ * These methods trigger Matter cluster events to notify controllers of occupancy changes
12
+ */
13
+ /**
14
+ * Trigger an occupancy changed event
15
+ * Notifies controllers when occupancy state changes
16
+ *
17
+ * @param detected - true if occupancy detected, false if clear
18
+ */
19
+ triggerOccupancyChangedEvent(detected: boolean): Promise<void>;
9
20
  }
@@ -38,5 +38,24 @@ export class OccupancySensorAccessory extends BaseMatterAccessory {
38
38
  });
39
39
  this.logInfo(`occupancy: ${detected ? 'detected' : 'clear'}.`);
40
40
  }
41
+ /**
42
+ * Event Methods
43
+ * These methods trigger Matter cluster events to notify controllers of occupancy changes
44
+ */
45
+ /**
46
+ * Trigger an occupancy changed event
47
+ * Notifies controllers when occupancy state changes
48
+ *
49
+ * @param detected - true if occupancy detected, false if clear
50
+ */
51
+ async triggerOccupancyChangedEvent(detected) {
52
+ try {
53
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.OccupancySensing, 'occupancyChanged', { occupancy: { occupied: detected } });
54
+ this.logInfo(`occupancyChanged event triggered: ${detected ? 'DETECTED' : 'CLEAR'}`);
55
+ }
56
+ catch (error) {
57
+ this.logError('Failed to trigger occupancyChanged event:', error);
58
+ }
59
+ }
41
60
  }
42
61
  //# sourceMappingURL=OccupancySensorAccessory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OccupancySensorAccessory.js","sourceRoot":"","sources":["../../src/devices/OccupancySensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,wBAAyB,SAAQ,mBAAmB;IAC/D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,sFAAsF;QACtF,MAAM,sBAAsB,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CACrE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAChG,CAAA;QAED,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,kBAAkB;YAC/B,UAAU,EAAE,sBAAsB;YAClC,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,4BAA4B;YACnC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,gBAAgB,EAAE;oBAChB,SAAS,EAAE;wBACT,QAAQ,EAAE,KAAK;qBAChB;oBACD,mBAAmB,EAAE,CAAC;oBACtB,yBAAyB,EAAE;wBACzB,GAAG,EAAE,IAAI;wBACT,UAAU,EAAE,KAAK;wBACjB,eAAe,EAAE,KAAK;qBACvB;iBACF;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,QAAiB;QACpD,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE;YACzC,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;SAClC,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,CAAC,cAAc,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAA;IAChE,CAAC;CACF"}
1
+ {"version":3,"file":"OccupancySensorAccessory.js","sourceRoot":"","sources":["../../src/devices/OccupancySensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,wBAAyB,SAAQ,mBAAmB;IAC/D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,sFAAsF;QACtF,MAAM,sBAAsB,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CACrE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAChG,CAAA;QAED,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,kBAAkB;YAC/B,UAAU,EAAE,sBAAsB;YAClC,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,4BAA4B;YACnC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,gBAAgB,EAAE;oBAChB,SAAS,EAAE;wBACT,QAAQ,EAAE,KAAK;qBAChB;oBACD,mBAAmB,EAAE,CAAC;oBACtB,yBAAyB,EAAE;wBACzB,GAAG,EAAE,IAAI;wBACT,UAAU,EAAE,KAAK;wBACjB,eAAe,EAAE,KAAK;qBACvB;iBACF;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,QAAiB;QACpD,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE;YACzC,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;SAClC,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,CAAC,cAAc,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAA;IAChE,CAAC;IAED;;;OAGG;IAEH;;;;;OAKG;IACI,KAAK,CAAC,4BAA4B,CAAC,QAAiB;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CACvC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAC7C,kBAAkB,EAClB,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACtC,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,qCAAqC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAA;QACnE,CAAC;IACH,CAAC;CACF"}
@@ -24,6 +24,7 @@ import type { API, Logger } from 'homebridge';
24
24
  import { BaseMatterAccessory } from './BaseMatterAccessory.js';
25
25
  export declare class RoboticVacuumAccessory extends BaseMatterAccessory {
26
26
  private activeTimers;
27
+ private currentOperationalState;
27
28
  constructor(api: API, log: Logger);
28
29
  private handleChangeRunMode;
29
30
  private handleChangeCleanMode;
@@ -62,4 +63,40 @@ export declare class RoboticVacuumAccessory extends BaseMatterAccessory {
62
63
  * @param percentage - Battery percentage (0-100)
63
64
  */
64
65
  updateBatteryPercentage(percentage: number): Promise<void>;
66
+ /**
67
+ * Convenience Methods for Maintenance States
68
+ * These helper methods make it easier to transition to maintenance states
69
+ */
70
+ /**
71
+ * Set the vacuum to emptying dust bin state (e.g., on a dock)
72
+ */
73
+ setEmptyingDustBin(): Promise<void>;
74
+ /**
75
+ * Set the vacuum to cleaning mop state (e.g., on a dock)
76
+ */
77
+ setCleaningMop(): Promise<void>;
78
+ /**
79
+ * Set the vacuum to filling water tank state (e.g., from a dock)
80
+ */
81
+ setFillingWaterTank(): Promise<void>;
82
+ /**
83
+ * Set the vacuum to updating maps state
84
+ */
85
+ setUpdatingMaps(): Promise<void>;
86
+ /**
87
+ * Schedule a cleaning operation with automatic completion
88
+ * Reduces code duplication across start/resume handlers
89
+ *
90
+ * @param durationSeconds - How long the cleaning should run before completing
91
+ */
92
+ private scheduleCleaningCompletion;
93
+ /**
94
+ * Trigger the operationCompletion event
95
+ * This notifies Matter controllers that a cleaning operation has completed
96
+ *
97
+ * @param errorCode - Error code (0 = NoError, or a specific error code from ErrorState enum)
98
+ * @param operationalTime - Total operational time in seconds
99
+ * @param pausedTime - Optional: Total paused time in seconds
100
+ */
101
+ private triggerOperationCompletionEvent;
65
102
  }
@@ -1,7 +1,9 @@
1
1
  /* global NodeJS */
2
+ import { MatterStatus } from 'homebridge';
2
3
  import { BaseMatterAccessory } from './BaseMatterAccessory.js';
3
4
  export class RoboticVacuumAccessory extends BaseMatterAccessory {
4
5
  activeTimers = [];
6
+ currentOperationalState = 66; // Track current state (start docked)
5
7
  constructor(api, log) {
6
8
  const serialNumber = 'VACUUM-001';
7
9
  super(api, log, {
@@ -72,6 +74,10 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
72
74
  { operationalStateId: 64 }, // seeking charger
73
75
  { operationalStateId: 65 }, // charging
74
76
  { operationalStateId: 66 }, // docked
77
+ { operationalStateId: 67 }, // emptying dust bin
78
+ { operationalStateId: 68 }, // cleaning mop
79
+ { operationalStateId: 69 }, // filling water tank
80
+ { operationalStateId: 70 }, // updating maps
75
81
  ],
76
82
  operationalState: 66, // start docked
77
83
  },
@@ -164,13 +170,7 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
164
170
  if (newMode === 1) {
165
171
  // Switching to Cleaning mode - start the vacuum
166
172
  await this.updateOperationalState(1); // Running
167
- // Simulate cleaning completion after 15 seconds
168
- const completionTimer = setTimeout(() => {
169
- this.logInfo('cleaning completed, returning to dock.');
170
- this.updateRunMode(0); // Set to Idle - cleaning session ending
171
- this.returnToDock();
172
- }, 15000);
173
- this.activeTimers.push(completionTimer);
173
+ this.scheduleCleaningCompletion(15); // Complete after 15 seconds
174
174
  }
175
175
  else if (newMode === 0) {
176
176
  // Switching to Idle mode - return to dock
@@ -223,6 +223,19 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
223
223
  }
224
224
  async handlePause() {
225
225
  this.logInfo('pausing.');
226
+ // Validate current state - cannot pause in maintenance or charging states
227
+ const invalidStates = [65, 66, 67, 68, 69, 70]; // Charging, Docked, EmptyingDustBin, CleaningMop, FillingWaterTank, UpdatingMaps
228
+ if (invalidStates.includes(this.currentOperationalState)) {
229
+ const stateNames = {
230
+ 65: 'Charging',
231
+ 66: 'Docked',
232
+ 67: 'Emptying Dust Bin',
233
+ 68: 'Cleaning Mop',
234
+ 69: 'Filling Water Tank',
235
+ 70: 'Updating Maps',
236
+ };
237
+ throw new MatterStatus.InvalidInState(`Cannot pause while in ${stateNames[this.currentOperationalState]} state`);
238
+ }
226
239
  // TODO: await myVacuumAPI.pause()
227
240
  this.clearTimers(); // Clear cleaning completion timer
228
241
  await this.updateOperationalState(2); // Paused
@@ -257,28 +270,30 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
257
270
  this.clearTimers();
258
271
  await this.updateRunMode(1); // Set to Cleaning mode - this will trigger the run mode handler logic
259
272
  await this.updateOperationalState(1); // Running
260
- // Simulate cleaning completion after 15 seconds
261
- const completionTimer = setTimeout(() => {
262
- this.logInfo('cleaning completed, returning to dock.');
263
- this.updateRunMode(0); // Set to Idle - cleaning session ending
264
- this.returnToDock();
265
- }, 15000);
266
- this.activeTimers.push(completionTimer);
273
+ this.scheduleCleaningCompletion(15); // Complete after 15 seconds
267
274
  }
268
275
  async handleResume() {
269
276
  this.logInfo('resuming.');
277
+ // Validate current state - cannot resume in maintenance, charging, or seeking states
278
+ const invalidStates = [64, 65, 66, 67, 68, 69, 70]; // SeekingCharger, Charging, Docked, EmptyingDustBin, CleaningMop, FillingWaterTank, UpdatingMaps
279
+ if (invalidStates.includes(this.currentOperationalState)) {
280
+ const stateNames = {
281
+ 64: 'Seeking Charger',
282
+ 65: 'Charging',
283
+ 66: 'Docked',
284
+ 67: 'Emptying Dust Bin',
285
+ 68: 'Cleaning Mop',
286
+ 69: 'Filling Water Tank',
287
+ 70: 'Updating Maps',
288
+ };
289
+ throw new MatterStatus.InvalidInState(`Cannot resume while in ${stateNames[this.currentOperationalState]} state`);
290
+ }
270
291
  // TODO: await myVacuumAPI.resume()
271
292
  // Clear any existing timers
272
293
  this.clearTimers();
273
294
  await this.updateRunMode(1); // Set to Cleaning mode
274
295
  await this.updateOperationalState(1); // Running
275
- // Simulate cleaning completion after 10 seconds (shorter since resuming)
276
- const completionTimer = setTimeout(() => {
277
- this.logInfo('cleaning completed, returning to dock.');
278
- this.updateRunMode(0); // Set to Idle - cleaning session ending
279
- this.returnToDock();
280
- }, 10000);
281
- this.activeTimers.push(completionTimer);
296
+ this.scheduleCleaningCompletion(10); // Complete after 10 seconds (shorter since resuming)
282
297
  }
283
298
  async handleGoHome() {
284
299
  this.logInfo('goHome command received.');
@@ -358,6 +373,7 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
358
373
  * Since this is a platform accessory, state updates work immediately after registration.
359
374
  */
360
375
  async updateOperationalState(state) {
376
+ this.currentOperationalState = state; // Track the current state
361
377
  await this.updateState('rvcOperationalState', { operationalState: state });
362
378
  const states = [
363
379
  'Stopped',
@@ -372,6 +388,10 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
372
388
  'Seeking Charger',
373
389
  'Charging',
374
390
  'Docked',
391
+ 'Emptying Dust Bin',
392
+ 'Cleaning Mop',
393
+ 'Filling Water Tank',
394
+ 'Updating Maps',
375
395
  ];
376
396
  this.logInfo(`operational state updated to: ${states[state] || `Unknown (${state})`}`);
377
397
  }
@@ -438,5 +458,70 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
438
458
  await this.updateState('powerSource', { batPercentRemaining, batChargeLevel });
439
459
  this.logInfo(`battery updated to: ${percentage}% (${batChargeLevel === 0 ? 'Ok' : batChargeLevel === 1 ? 'Warning' : 'Critical'})`);
440
460
  }
461
+ /**
462
+ * Convenience Methods for Maintenance States
463
+ * These helper methods make it easier to transition to maintenance states
464
+ */
465
+ /**
466
+ * Set the vacuum to emptying dust bin state (e.g., on a dock)
467
+ */
468
+ async setEmptyingDustBin() {
469
+ await this.updateOperationalState(67);
470
+ }
471
+ /**
472
+ * Set the vacuum to cleaning mop state (e.g., on a dock)
473
+ */
474
+ async setCleaningMop() {
475
+ await this.updateOperationalState(68);
476
+ }
477
+ /**
478
+ * Set the vacuum to filling water tank state (e.g., from a dock)
479
+ */
480
+ async setFillingWaterTank() {
481
+ await this.updateOperationalState(69);
482
+ }
483
+ /**
484
+ * Set the vacuum to updating maps state
485
+ */
486
+ async setUpdatingMaps() {
487
+ await this.updateOperationalState(70);
488
+ }
489
+ /**
490
+ * Schedule a cleaning operation with automatic completion
491
+ * Reduces code duplication across start/resume handlers
492
+ *
493
+ * @param durationSeconds - How long the cleaning should run before completing
494
+ */
495
+ scheduleCleaningCompletion(durationSeconds) {
496
+ const completionTimer = setTimeout(async () => {
497
+ this.logInfo('cleaning completed, returning to dock.');
498
+ await this.updateRunMode(0); // Set to Idle - cleaning session ending
499
+ // Trigger operationCompletion event
500
+ await this.triggerOperationCompletionEvent(0, durationSeconds); // NoError
501
+ this.returnToDock();
502
+ }, durationSeconds * 1000);
503
+ this.activeTimers.push(completionTimer);
504
+ }
505
+ /**
506
+ * Trigger the operationCompletion event
507
+ * This notifies Matter controllers that a cleaning operation has completed
508
+ *
509
+ * @param errorCode - Error code (0 = NoError, or a specific error code from ErrorState enum)
510
+ * @param operationalTime - Total operational time in seconds
511
+ * @param pausedTime - Optional: Total paused time in seconds
512
+ */
513
+ async triggerOperationCompletionEvent(errorCode, operationalTime, pausedTime = 0) {
514
+ try {
515
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.RvcOperationalState, 'operationCompletion', {
516
+ completionErrorCode: errorCode,
517
+ totalOperationalTime: operationalTime,
518
+ pausedTime,
519
+ });
520
+ this.logInfo(`operationCompletion event triggered: errorCode=${errorCode}, time=${operationalTime}s`);
521
+ }
522
+ catch (error) {
523
+ this.logError('Failed to trigger operationCompletion event:', error);
524
+ }
525
+ }
441
526
  }
442
527
  //# sourceMappingURL=RoboticVacuumAccessory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RoboticVacuumAccessory.js","sourceRoot":"","sources":["../../src/devices/RoboticVacuumAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RoboticVacuumAccessory.js","sourceRoot":"","sources":["../../src/devices/RoboticVacuumAccessory.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,75 @@ export declare class SmokeCOAlarmAccessory extends BaseMatterAccessory {
7
7
  constructor(api: API, log: Logger);
8
8
  updateSmokeState(state: 0 | 1 | 2): Promise<void>;
9
9
  updateCOState(state: 0 | 1 | 2): Promise<void>;
10
+ /**
11
+ * Event Methods
12
+ * These methods trigger Matter cluster events to notify controllers of alarm conditions
13
+ */
14
+ /**
15
+ * Trigger a smoke alarm event
16
+ * Notifies controllers when smoke is detected
17
+ *
18
+ * @param alarmSeverityLevel - 0=Normal, 1=Warning, 2=Critical
19
+ */
20
+ triggerSmokeAlarmEvent(alarmSeverityLevel: 0 | 1 | 2): Promise<void>;
21
+ /**
22
+ * Trigger a CO alarm event
23
+ * Notifies controllers when carbon monoxide is detected
24
+ *
25
+ * @param alarmSeverityLevel - 0=Normal, 1=Warning, 2=Critical
26
+ */
27
+ triggerCOAlarmEvent(alarmSeverityLevel: 0 | 1 | 2): Promise<void>;
28
+ /**
29
+ * Trigger a low battery event
30
+ * Notifies controllers when battery is low
31
+ *
32
+ * @param alarmSeverityLevel - 0=Normal, 1=Warning, 2=Critical
33
+ */
34
+ triggerLowBatteryEvent(alarmSeverityLevel: 0 | 1 | 2): Promise<void>;
35
+ /**
36
+ * Trigger a hardware fault event
37
+ * Notifies controllers when hardware malfunction is detected
38
+ */
39
+ triggerHardwareFaultEvent(): Promise<void>;
40
+ /**
41
+ * Trigger an end of service event
42
+ * Notifies controllers when device needs replacement
43
+ *
44
+ * @param alarmSeverityLevel - 0=Normal, 1=Warning, 2=Critical
45
+ */
46
+ triggerEndOfServiceEvent(alarmSeverityLevel: 0 | 1 | 2): Promise<void>;
47
+ /**
48
+ * Trigger a self-test complete event
49
+ * Notifies controllers when self-test has finished
50
+ */
51
+ triggerSelfTestCompleteEvent(): Promise<void>;
52
+ /**
53
+ * Trigger an alarm muted event
54
+ * Notifies controllers when alarm has been muted
55
+ */
56
+ triggerAlarmMutedEvent(): Promise<void>;
57
+ /**
58
+ * Trigger a mute ended event
59
+ * Notifies controllers when mute period has expired
60
+ */
61
+ triggerMuteEndedEvent(): Promise<void>;
62
+ /**
63
+ * Trigger an interconnect smoke alarm event
64
+ * Notifies controllers when interconnected sensor triggers smoke alarm
65
+ *
66
+ * @param alarmSeverityLevel - 0=Normal, 1=Warning, 2=Critical
67
+ */
68
+ triggerInterconnectSmokeAlarmEvent(alarmSeverityLevel: 0 | 1 | 2): Promise<void>;
69
+ /**
70
+ * Trigger an interconnect CO alarm event
71
+ * Notifies controllers when interconnected sensor triggers CO alarm
72
+ *
73
+ * @param alarmSeverityLevel - 0=Normal, 1=Warning, 2=Critical
74
+ */
75
+ triggerInterconnectCOAlarmEvent(alarmSeverityLevel: 0 | 1 | 2): Promise<void>;
76
+ /**
77
+ * Trigger an all clear event
78
+ * Notifies controllers when all alarms have been cleared
79
+ */
80
+ triggerAllClearEvent(): Promise<void>;
10
81
  }
@@ -44,5 +44,170 @@ export class SmokeCOAlarmAccessory extends BaseMatterAccessory {
44
44
  const stateStr = ['Normal', 'Warning', 'Critical'][state];
45
45
  this.logInfo(`co state: ${stateStr}.`);
46
46
  }
47
+ /**
48
+ * Event Methods
49
+ * These methods trigger Matter cluster events to notify controllers of alarm conditions
50
+ */
51
+ /**
52
+ * Trigger a smoke alarm event
53
+ * Notifies controllers when smoke is detected
54
+ *
55
+ * @param alarmSeverityLevel - 0=Normal, 1=Warning, 2=Critical
56
+ */
57
+ async triggerSmokeAlarmEvent(alarmSeverityLevel) {
58
+ try {
59
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.SmokeCoAlarm, 'smokeAlarm', { alarmSeverityLevel });
60
+ const levelNames = ['Normal', 'Warning', 'Critical'];
61
+ this.logInfo(`smokeAlarm event triggered: ${levelNames[alarmSeverityLevel]}`);
62
+ }
63
+ catch (error) {
64
+ this.logError('Failed to trigger smokeAlarm event:', error);
65
+ }
66
+ }
67
+ /**
68
+ * Trigger a CO alarm event
69
+ * Notifies controllers when carbon monoxide is detected
70
+ *
71
+ * @param alarmSeverityLevel - 0=Normal, 1=Warning, 2=Critical
72
+ */
73
+ async triggerCOAlarmEvent(alarmSeverityLevel) {
74
+ try {
75
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.SmokeCoAlarm, 'coAlarm', { alarmSeverityLevel });
76
+ const levelNames = ['Normal', 'Warning', 'Critical'];
77
+ this.logInfo(`coAlarm event triggered: ${levelNames[alarmSeverityLevel]}`);
78
+ }
79
+ catch (error) {
80
+ this.logError('Failed to trigger coAlarm event:', error);
81
+ }
82
+ }
83
+ /**
84
+ * Trigger a low battery event
85
+ * Notifies controllers when battery is low
86
+ *
87
+ * @param alarmSeverityLevel - 0=Normal, 1=Warning, 2=Critical
88
+ */
89
+ async triggerLowBatteryEvent(alarmSeverityLevel) {
90
+ try {
91
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.SmokeCoAlarm, 'lowBattery', { alarmSeverityLevel });
92
+ const levelNames = ['Normal', 'Warning', 'Critical'];
93
+ this.logInfo(`lowBattery event triggered: ${levelNames[alarmSeverityLevel]}`);
94
+ }
95
+ catch (error) {
96
+ this.logError('Failed to trigger lowBattery event:', error);
97
+ }
98
+ }
99
+ /**
100
+ * Trigger a hardware fault event
101
+ * Notifies controllers when hardware malfunction is detected
102
+ */
103
+ async triggerHardwareFaultEvent() {
104
+ try {
105
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.SmokeCoAlarm, 'hardwareFault', {});
106
+ this.logError('hardwareFault event triggered');
107
+ }
108
+ catch (error) {
109
+ this.logError('Failed to trigger hardwareFault event:', error);
110
+ }
111
+ }
112
+ /**
113
+ * Trigger an end of service event
114
+ * Notifies controllers when device needs replacement
115
+ *
116
+ * @param alarmSeverityLevel - 0=Normal, 1=Warning, 2=Critical
117
+ */
118
+ async triggerEndOfServiceEvent(alarmSeverityLevel) {
119
+ try {
120
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.SmokeCoAlarm, 'endOfService', { alarmSeverityLevel });
121
+ const levelNames = ['Normal', 'Warning', 'Critical'];
122
+ this.logInfo(`endOfService event triggered: ${levelNames[alarmSeverityLevel]}`);
123
+ }
124
+ catch (error) {
125
+ this.logError('Failed to trigger endOfService event:', error);
126
+ }
127
+ }
128
+ /**
129
+ * Trigger a self-test complete event
130
+ * Notifies controllers when self-test has finished
131
+ */
132
+ async triggerSelfTestCompleteEvent() {
133
+ try {
134
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.SmokeCoAlarm, 'selfTestComplete', {});
135
+ this.logInfo('selfTestComplete event triggered');
136
+ }
137
+ catch (error) {
138
+ this.logError('Failed to trigger selfTestComplete event:', error);
139
+ }
140
+ }
141
+ /**
142
+ * Trigger an alarm muted event
143
+ * Notifies controllers when alarm has been muted
144
+ */
145
+ async triggerAlarmMutedEvent() {
146
+ try {
147
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.SmokeCoAlarm, 'alarmMuted', {});
148
+ this.logInfo('alarmMuted event triggered');
149
+ }
150
+ catch (error) {
151
+ this.logError('Failed to trigger alarmMuted event:', error);
152
+ }
153
+ }
154
+ /**
155
+ * Trigger a mute ended event
156
+ * Notifies controllers when mute period has expired
157
+ */
158
+ async triggerMuteEndedEvent() {
159
+ try {
160
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.SmokeCoAlarm, 'muteEnded', {});
161
+ this.logInfo('muteEnded event triggered');
162
+ }
163
+ catch (error) {
164
+ this.logError('Failed to trigger muteEnded event:', error);
165
+ }
166
+ }
167
+ /**
168
+ * Trigger an interconnect smoke alarm event
169
+ * Notifies controllers when interconnected sensor triggers smoke alarm
170
+ *
171
+ * @param alarmSeverityLevel - 0=Normal, 1=Warning, 2=Critical
172
+ */
173
+ async triggerInterconnectSmokeAlarmEvent(alarmSeverityLevel) {
174
+ try {
175
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.SmokeCoAlarm, 'interconnectSmokeAlarm', { alarmSeverityLevel });
176
+ const levelNames = ['Normal', 'Warning', 'Critical'];
177
+ this.logInfo(`interconnectSmokeAlarm event triggered: ${levelNames[alarmSeverityLevel]}`);
178
+ }
179
+ catch (error) {
180
+ this.logError('Failed to trigger interconnectSmokeAlarm event:', error);
181
+ }
182
+ }
183
+ /**
184
+ * Trigger an interconnect CO alarm event
185
+ * Notifies controllers when interconnected sensor triggers CO alarm
186
+ *
187
+ * @param alarmSeverityLevel - 0=Normal, 1=Warning, 2=Critical
188
+ */
189
+ async triggerInterconnectCOAlarmEvent(alarmSeverityLevel) {
190
+ try {
191
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.SmokeCoAlarm, 'interconnectCoAlarm', { alarmSeverityLevel });
192
+ const levelNames = ['Normal', 'Warning', 'Critical'];
193
+ this.logInfo(`interconnectCoAlarm event triggered: ${levelNames[alarmSeverityLevel]}`);
194
+ }
195
+ catch (error) {
196
+ this.logError('Failed to trigger interconnectCoAlarm event:', error);
197
+ }
198
+ }
199
+ /**
200
+ * Trigger an all clear event
201
+ * Notifies controllers when all alarms have been cleared
202
+ */
203
+ async triggerAllClearEvent() {
204
+ try {
205
+ await this.api.matter.triggerClusterEvent(this.uuid, this.api.matter.clusterNames.SmokeCoAlarm, 'allClear', {});
206
+ this.logInfo('allClear event triggered');
207
+ }
208
+ catch (error) {
209
+ this.logError('Failed to trigger allClear event:', error);
210
+ }
211
+ }
47
212
  }
48
213
  //# sourceMappingURL=SmokeCOAlarmAccessory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SmokeCOAlarmAccessory.js","sourceRoot":"","sources":["../../src/devices/SmokeCOAlarmAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,qBAAsB,SAAQ,mBAAmB;IAC5D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CACjE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CACjG,CAAA;QAED,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,cAAc;YAC3B,UAAU,EAAE,mBAAmB;YAC/B,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,2BAA2B;YAClC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,YAAY,EAAE;oBACZ,UAAU,EAAE,CAAC,EAAE,wCAAwC;oBACvD,OAAO,EAAE,CAAC;oBACV,YAAY,EAAE,CAAC;oBACf,WAAW,EAAE,CAAC;oBACd,cAAc,EAAE,KAAK;oBACrB,kBAAkB,EAAE,KAAK;oBACzB,iBAAiB,EAAE,CAAC;oBACpB,sBAAsB,EAAE,CAAC;oBACzB,mBAAmB,EAAE,CAAC;oBACtB,kBAAkB,EAAE,CAAC;oBACrB,qBAAqB,EAAE,CAAC;oBACxB,cAAc,EAAE,CAAC;iBAClB;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,KAAgB;QAC5C,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAA;QACzD,IAAI,CAAC,OAAO,CAAC,gBAAgB,QAAQ,GAAG,CAAC,CAAA;IAC3C,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAgB;QACzC,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAA;QACzD,IAAI,CAAC,OAAO,CAAC,aAAa,QAAQ,GAAG,CAAC,CAAA;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"SmokeCOAlarmAccessory.js","sourceRoot":"","sources":["../../src/devices/SmokeCOAlarmAccessory.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.7.0",
6
+ "version": "0.7.1-beta.0",
7
7
  "description": "Homebridge plugin to showcase examples of Matter devices in Homebridge.",
8
8
  "author": {
9
9
  "name": "bwp91",
@@ -64,7 +64,7 @@
64
64
  "devDependencies": {
65
65
  "@antfu/eslint-config": "^6.2.0",
66
66
  "@types/node": "^24.10.0",
67
- "homebridge": "2.0.0-beta.52",
67
+ "homebridge": "^2.0.0-beta.53",
68
68
  "rimraf": "^6.1.0",
69
69
  "ts-node": "^10.9.2",
70
70
  "typescript": "^5.9.3"