@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.
- package/dist/devices/ContactSensorAccessory.d.ts +11 -0
- package/dist/devices/ContactSensorAccessory.js +21 -0
- package/dist/devices/ContactSensorAccessory.js.map +1 -1
- package/dist/devices/DoorLockAccessory.d.ts +35 -0
- package/dist/devices/DoorLockAccessory.js +105 -0
- package/dist/devices/DoorLockAccessory.js.map +1 -1
- package/dist/devices/LeakSensorAccessory.d.ts +11 -0
- package/dist/devices/LeakSensorAccessory.js +19 -0
- package/dist/devices/LeakSensorAccessory.js.map +1 -1
- package/dist/devices/OccupancySensorAccessory.d.ts +11 -0
- package/dist/devices/OccupancySensorAccessory.js +19 -0
- package/dist/devices/OccupancySensorAccessory.js.map +1 -1
- package/dist/devices/RoboticVacuumAccessory.d.ts +37 -0
- package/dist/devices/RoboticVacuumAccessory.js +106 -21
- package/dist/devices/RoboticVacuumAccessory.js.map +1 -1
- package/dist/devices/SmokeCOAlarmAccessory.d.ts +71 -0
- package/dist/devices/SmokeCOAlarmAccessory.js +165 -0
- package/dist/devices/SmokeCOAlarmAccessory.js.map +1 -1
- package/package.json +2 -2
|
@@ -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":"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"}
|
|
@@ -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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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.
|
|
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"
|