@homebridge-plugins/homebridge-august 3.0.4-beta.5 → 3.0.5

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.
Files changed (41) hide show
  1. package/.github/scripts/npm-version-script-esm-auto.js +207 -0
  2. package/.github/workflows/beta-release.yml +1 -1
  3. package/.github/workflows/release.yml +14 -7
  4. package/CHANGELOG.md +114 -0
  5. package/README.md +0 -25
  6. package/config.schema.json +1 -1
  7. package/dist/devices/device.d.ts +3 -1
  8. package/dist/devices/device.d.ts.map +1 -1
  9. package/dist/devices/device.js +35 -6
  10. package/dist/devices/device.js.map +1 -1
  11. package/dist/devices/device.test.js +212 -0
  12. package/dist/devices/device.test.js.map +1 -1
  13. package/dist/devices/lock.d.ts.map +1 -1
  14. package/dist/devices/lock.js +9 -2
  15. package/dist/devices/lock.js.map +1 -1
  16. package/dist/devices/lock.test.js +38 -40
  17. package/dist/devices/lock.test.js.map +1 -1
  18. package/dist/platform.d.ts.map +1 -1
  19. package/dist/platform.js +3 -4
  20. package/dist/platform.js.map +1 -1
  21. package/dist/platform.test.js +0 -122
  22. package/dist/platform.test.js.map +1 -1
  23. package/docs/assets/dmt/dmt-component-data.js +1 -0
  24. package/docs/assets/dmt/dmt-components.css +20 -0
  25. package/docs/assets/dmt/dmt-components.js +67 -0
  26. package/docs/assets/dmt/dmt-search.cmp +0 -0
  27. package/docs/assets/dmt/dmt-theme.css +1 -0
  28. package/docs/assets/highlight.css +0 -35
  29. package/docs/assets/main.js +5 -5
  30. package/docs/assets/style.css +229 -251
  31. package/docs/functions/default.html +2 -0
  32. package/docs/index.html +13 -18
  33. package/docs/modules.html +2 -1
  34. package/eslint.config.js +1 -0
  35. package/package.json +21 -19
  36. package/typedoc.json +4 -0
  37. package/.github/npm-version-script-esm.js +0 -97
  38. package/docs/assets/navigation.js +0 -1
  39. package/docs/assets/search.js +0 -1
  40. package/docs/hierarchy.html +0 -1
  41. package/docs/variables/default.html +0 -1
@@ -1,8 +1,67 @@
1
1
  import { beforeEach, describe, expect, it, vi } from 'vitest';
2
+ // Create a simplified test implementation that mimics the updateCharacteristic behavior
3
+ class MockDeviceWithCharacteristics {
4
+ accessory = { context: {}, displayName: 'Test Lock' };
5
+ debugLog = vi.fn();
6
+ debugWarnLog = vi.fn();
7
+ infoLog = vi.fn();
8
+ async updateCharacteristic(Service, ServiceName, Characteristic, CharacteristicValue, CharacteristicName, Value, StatusMatch, StatusDoesNotMatch) {
9
+ if (CharacteristicValue === undefined) {
10
+ await this.debugLog(`${CharacteristicName}: ${CharacteristicValue}`);
11
+ }
12
+ else {
13
+ const contextKey = `${ServiceName}${CharacteristicName}`;
14
+ await this.debugWarnLog(`context before: ${this.accessory.context[contextKey]}`);
15
+ const contextBefore = this.accessory.context[contextKey];
16
+ this.accessory.context[contextKey] = CharacteristicValue;
17
+ await this.debugWarnLog(`context after: ${this.accessory.context[contextKey]}`);
18
+ await this.debugLog(`updateCharacteristic ${CharacteristicName}: ${CharacteristicValue} (${CharacteristicValue === Value ? StatusMatch : StatusDoesNotMatch})`);
19
+ if (contextBefore !== CharacteristicValue) {
20
+ // Value actually changed - push update to HomeKit
21
+ Service.updateCharacteristic(Characteristic, CharacteristicValue);
22
+ // Only log state change messages when we had a prior known value (not initial discovery)
23
+ if (contextBefore !== undefined && StatusMatch && StatusDoesNotMatch) {
24
+ await this.infoLog(`was ${CharacteristicValue === Value ? StatusMatch : StatusDoesNotMatch}`);
25
+ }
26
+ }
27
+ }
28
+ }
29
+ }
2
30
  // Create a simplified test implementation that mimics the statusCode behavior
3
31
  class MockDevice {
4
32
  debugLog = vi.fn();
5
33
  debugErrorLog = vi.fn();
34
+ /**
35
+ * Check if error is a network timeout or session expiration that requires session refresh
36
+ * Handles 502 Bad Gateway, 401 Unauthorized, 503 Service Unavailable, and network timeouts
37
+ */
38
+ isTimeoutError(error) {
39
+ // Check for network timeout errors
40
+ if (error.message && error.message.includes('ETIMEDOUT')) {
41
+ return true;
42
+ }
43
+ // Check for status codes that indicate session expiration or temporary server issues
44
+ // 502 Bad Gateway - typically indicates session has expired or server issues
45
+ // 503 Service Unavailable - temporary server issues
46
+ // 401 Unauthorized - session has expired
47
+ if (error.statusCode && (error.statusCode === 502 || error.statusCode === 503 || error.statusCode === 401)) {
48
+ return true;
49
+ }
50
+ // Check for error messages containing these status codes (from tiny-json-http error format)
51
+ // Format: "POST failed with: 502" or "GET failed with: 401"
52
+ if (error.message) {
53
+ const sessionErrorPatterns = [
54
+ /failed with: 502/i,
55
+ /failed with: 503/i,
56
+ /failed with: 401/i,
57
+ /Bad Gateway/i,
58
+ /Service Unavailable/i,
59
+ /Unauthorized/i,
60
+ ];
61
+ return sessionErrorPatterns.some(pattern => pattern.test(error.message));
62
+ }
63
+ return false;
64
+ }
6
65
  async statusCode(action, error) {
7
66
  const statusCodeString = error.message || ''; // Convert statusCode to a string, handle undefined/null
8
67
  // Check if the error is an AggregateError or doesn't contain a status code
@@ -30,6 +89,64 @@ describe('statusCode error handling', () => {
30
89
  beforeEach(() => {
31
90
  mockDevice = new MockDevice();
32
91
  });
92
+ describe('isTimeoutError method', () => {
93
+ it('should detect ETIMEDOUT network errors', () => {
94
+ const error = { message: 'ETIMEDOUT connection timed out' };
95
+ expect(mockDevice.isTimeoutError(error)).toBe(true);
96
+ });
97
+ it('should detect 502 Bad Gateway status code', () => {
98
+ const error = { message: 'POST failed with: 502', statusCode: 502 };
99
+ expect(mockDevice.isTimeoutError(error)).toBe(true);
100
+ });
101
+ it('should detect 502 in error message', () => {
102
+ const error = { message: 'POST failed with: 502' };
103
+ expect(mockDevice.isTimeoutError(error)).toBe(true);
104
+ });
105
+ it('should detect 503 Service Unavailable status code', () => {
106
+ const error = { message: 'GET failed with: 503', statusCode: 503 };
107
+ expect(mockDevice.isTimeoutError(error)).toBe(true);
108
+ });
109
+ it('should detect 503 in error message', () => {
110
+ const error = { message: 'Service Unavailable' };
111
+ expect(mockDevice.isTimeoutError(error)).toBe(true);
112
+ });
113
+ it('should detect 401 Unauthorized status code', () => {
114
+ const error = { message: 'POST failed with: 401', statusCode: 401 };
115
+ expect(mockDevice.isTimeoutError(error)).toBe(true);
116
+ });
117
+ it('should detect 401 in error message', () => {
118
+ const error = { message: 'Unauthorized access' };
119
+ expect(mockDevice.isTimeoutError(error)).toBe(true);
120
+ });
121
+ it('should detect Bad Gateway in error message', () => {
122
+ const error = { message: 'Bad Gateway' };
123
+ expect(mockDevice.isTimeoutError(error)).toBe(true);
124
+ });
125
+ it('should return false for non-timeout errors', () => {
126
+ const error = { message: '404 Not Found' };
127
+ expect(mockDevice.isTimeoutError(error)).toBe(false);
128
+ });
129
+ it('should return false for 400 Bad Request', () => {
130
+ const error = { message: '400 Bad Request', statusCode: 400 };
131
+ expect(mockDevice.isTimeoutError(error)).toBe(false);
132
+ });
133
+ it('should return false for 429 Too Many Requests', () => {
134
+ const error = { message: '429 Too Many Requests', statusCode: 429 };
135
+ expect(mockDevice.isTimeoutError(error)).toBe(false);
136
+ });
137
+ it('should return false for empty message', () => {
138
+ const error = { message: '' };
139
+ expect(mockDevice.isTimeoutError(error)).toBe(false);
140
+ });
141
+ it('should not match 401 in non-HTTP status contexts', () => {
142
+ const error = { message: 'Expected 4012 records but found 401' };
143
+ expect(mockDevice.isTimeoutError(error)).toBe(false);
144
+ });
145
+ it('should not match 502 in non-HTTP status contexts', () => {
146
+ const error = { message: 'Lock ID 50234 not found' };
147
+ expect(mockDevice.isTimeoutError(error)).toBe(false);
148
+ });
149
+ });
33
150
  describe('statusCode method', () => {
34
151
  it('should handle standard HTTP status codes', async () => {
35
152
  await mockDevice.statusCode('test action', { message: '400 Bad Request' });
@@ -66,4 +183,99 @@ describe('statusCode error handling', () => {
66
183
  });
67
184
  });
68
185
  });
186
+ describe('updateCharacteristic', () => {
187
+ let device;
188
+ let mockService;
189
+ const CHARACTERISTIC = 'LockCurrentState';
190
+ beforeEach(() => {
191
+ device = new MockDeviceWithCharacteristics();
192
+ mockService = {
193
+ updateCharacteristic: vi.fn(),
194
+ };
195
+ });
196
+ it('should skip HomeKit update when CharacteristicValue is undefined', async () => {
197
+ await device.updateCharacteristic(mockService, 'LockMechanism', CHARACTERISTIC, undefined, 'LockCurrentState');
198
+ expect(mockService.updateCharacteristic).not.toHaveBeenCalled();
199
+ expect(device.debugLog).toHaveBeenCalledWith('LockCurrentState: undefined');
200
+ });
201
+ describe('initial state discovery (no prior context)', () => {
202
+ it('should push value to HomeKit on first update', async () => {
203
+ await device.updateCharacteristic(mockService, 'LockMechanism', CHARACTERISTIC, 0, 'LockCurrentState', 1, 'Locked', 'Unlocked');
204
+ expect(mockService.updateCharacteristic).toHaveBeenCalledWith(CHARACTERISTIC, 0);
205
+ });
206
+ it('should NOT log info message on initial discovery', async () => {
207
+ await device.updateCharacteristic(mockService, 'LockMechanism', CHARACTERISTIC, 0, 'LockCurrentState', 1, 'Locked', 'Unlocked');
208
+ expect(device.infoLog).not.toHaveBeenCalled();
209
+ });
210
+ it('should store the value in context for future comparisons', async () => {
211
+ await device.updateCharacteristic(mockService, 'LockMechanism', CHARACTERISTIC, 0, 'LockCurrentState', 1, 'Locked', 'Unlocked');
212
+ expect(device.accessory.context.LockMechanismLockCurrentState).toBe(0);
213
+ });
214
+ });
215
+ describe('subsequent updates with unchanged value', () => {
216
+ it('should NOT push to HomeKit when value has not changed', async () => {
217
+ // Seed context as if a previous update occurred
218
+ device.accessory.context.LockMechanismLockCurrentState = 1;
219
+ await device.updateCharacteristic(mockService, 'LockMechanism', CHARACTERISTIC, 1, 'LockCurrentState', 1, 'Locked', 'Unlocked');
220
+ expect(mockService.updateCharacteristic).not.toHaveBeenCalled();
221
+ });
222
+ it('should NOT log info message when value has not changed', async () => {
223
+ device.accessory.context.LockMechanismLockCurrentState = 1;
224
+ await device.updateCharacteristic(mockService, 'LockMechanism', CHARACTERISTIC, 1, 'LockCurrentState', 1, 'Locked', 'Unlocked');
225
+ expect(device.infoLog).not.toHaveBeenCalled();
226
+ });
227
+ });
228
+ describe('genuine state change', () => {
229
+ it('should push to HomeKit when value changes', async () => {
230
+ device.accessory.context.LockMechanismLockCurrentState = 1;
231
+ await device.updateCharacteristic(mockService, 'LockMechanism', CHARACTERISTIC, 0, 'LockCurrentState', 1, 'Locked', 'Unlocked');
232
+ expect(mockService.updateCharacteristic).toHaveBeenCalledWith(CHARACTERISTIC, 0);
233
+ });
234
+ it('should log "was Unlocked" when lock changes from secured to unsecured', async () => {
235
+ device.accessory.context.LockMechanismLockCurrentState = 1;
236
+ await device.updateCharacteristic(mockService, 'LockMechanism', CHARACTERISTIC, 0, 'LockCurrentState', 1, 'Locked', 'Unlocked');
237
+ expect(device.infoLog).toHaveBeenCalledWith('was Unlocked');
238
+ });
239
+ it('should log "was Locked" when lock changes from unsecured to secured', async () => {
240
+ device.accessory.context.LockMechanismLockCurrentState = 0;
241
+ await device.updateCharacteristic(mockService, 'LockMechanism', CHARACTERISTIC, 1, 'LockCurrentState', 1, 'Locked', 'Unlocked');
242
+ expect(device.infoLog).toHaveBeenCalledWith('was Locked');
243
+ });
244
+ it('should update context to new value', async () => {
245
+ device.accessory.context.LockMechanismLockCurrentState = 1;
246
+ await device.updateCharacteristic(mockService, 'LockMechanism', CHARACTERISTIC, 0, 'LockCurrentState', 1, 'Locked', 'Unlocked');
247
+ expect(device.accessory.context.LockMechanismLockCurrentState).toBe(0);
248
+ });
249
+ });
250
+ describe('contact sensor state changes', () => {
251
+ it('should log "was Closed" when door changes to closed', async () => {
252
+ device.accessory.context.ContactSensorContactSensorState = 1;
253
+ await device.updateCharacteristic(mockService, 'ContactSensor', 'ContactSensorState', 0, 'ContactSensorState', 1, 'Opened', 'Closed');
254
+ expect(device.infoLog).toHaveBeenCalledWith('was Closed');
255
+ });
256
+ it('should log "was Opened" when door changes to open', async () => {
257
+ device.accessory.context.ContactSensorContactSensorState = 0;
258
+ await device.updateCharacteristic(mockService, 'ContactSensor', 'ContactSensorState', 1, 'ContactSensorState', 1, 'Opened', 'Closed');
259
+ expect(device.infoLog).toHaveBeenCalledWith('was Opened');
260
+ });
261
+ });
262
+ describe('updates without StatusMatch/StatusDoesNotMatch', () => {
263
+ it('should push to HomeKit but not log info when no status strings provided', async () => {
264
+ device.accessory.context.BatteryBatteryLevel = 90;
265
+ await device.updateCharacteristic(mockService, 'Battery', 'BatteryLevel', 85, 'BatteryLevel');
266
+ expect(mockService.updateCharacteristic).toHaveBeenCalledWith('BatteryLevel', 85);
267
+ expect(device.infoLog).not.toHaveBeenCalled();
268
+ });
269
+ });
270
+ describe('startup simulation (seeded context matches API response)', () => {
271
+ it('should not push to HomeKit or log when seeded context matches first API value', async () => {
272
+ // Simulate constructor seeding: accessory.context.LockMechanismLockCurrentState ??= SECURED
273
+ device.accessory.context.LockMechanismLockCurrentState = 1;
274
+ // First API response returns same state (SECURED = 1)
275
+ await device.updateCharacteristic(mockService, 'LockMechanism', CHARACTERISTIC, 1, 'LockCurrentState', 1, 'Locked', 'Unlocked');
276
+ expect(mockService.updateCharacteristic).not.toHaveBeenCalled();
277
+ expect(device.infoLog).not.toHaveBeenCalled();
278
+ });
279
+ });
280
+ });
69
281
  //# sourceMappingURL=device.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"device.test.js","sourceRoot":"","sources":["../../src/devices/device.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.test.js","sourceRoot":"","sources":["../../src/devices/device.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/devices/lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAW,MAAM,YAAY,CAAA;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAU/F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAiCzC,QAAQ,CAAC,QAAQ,EAAE,cAAc;IA/BnC,OAAO,CAAC,aAAa,CAAC,CAKrB;IAED,OAAO,CAAC,OAAO,CAMd;IAED,OAAO,CAAC,aAAa,CAAC,CAIrB;IAGD,SAAS,EAAG,SAAS,CAAA;IACrB,UAAU,EAAG,UAAU,CAAA;IACvB,WAAW,EAAG,WAAW,CAAA;IAGzB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,YAAY,EAAE,GAAG,CAAA;gBAGN,QAAQ,EAAE,cAAc,EACjC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM,GAAG,aAAa;IAuHhC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAmElC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiDvC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA6CpC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA2DlC;;OAEG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB7C,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7D,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBvC"}
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/devices/lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAW,MAAM,YAAY,CAAA;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAU/F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAiCzC,QAAQ,CAAC,QAAQ,EAAE,cAAc;IA/BnC,OAAO,CAAC,aAAa,CAAC,CAKrB;IAED,OAAO,CAAC,OAAO,CAMd;IAED,OAAO,CAAC,aAAa,CAAC,CAIrB;IAGD,SAAS,EAAG,SAAS,CAAA;IACrB,UAAU,EAAG,UAAU,CAAA;IACvB,WAAW,EAAG,WAAW,CAAA;IAGzB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,YAAY,EAAE,GAAG,CAAA;gBAGN,QAAQ,EAAE,cAAc,EACjC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM,GAAG,aAAa;IA+HhC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAmElC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgDvC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA6CpC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA2DlC;;OAEG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB7C,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7D,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBvC"}
@@ -48,6 +48,9 @@ export class LockMechanism extends deviceBase {
48
48
  LockCurrentState: accessory.context.LockCurrentState ?? this.hap.Characteristic.LockCurrentState.SECURED,
49
49
  };
50
50
  accessory.context.LockMechanism = this.LockMechanism;
51
+ // Seed context keys for updateCharacteristic change detection
52
+ accessory.context.LockMechanismLockCurrentState ??= this.LockMechanism.LockCurrentState;
53
+ accessory.context.LockMechanismLockTargetState ??= this.LockMechanism.LockTargetState;
51
54
  // Initialize Lock Mechanism Characteristics
52
55
  this.LockMechanism.Service
53
56
  .setCharacteristic(this.hap.Characteristic.Name, this.LockMechanism.Name)
@@ -74,6 +77,8 @@ export class LockMechanism extends deviceBase {
74
77
  ContactSensorState: accessory.context.ContactSensorState ?? this.hap.Characteristic.ContactSensorState.CONTACT_NOT_DETECTED,
75
78
  };
76
79
  accessory.context.ContactSensor = this.ContactSensor;
80
+ // Seed context key for updateCharacteristic change detection
81
+ accessory.context.ContactSensorContactSensorState ??= this.ContactSensor.ContactSensorState;
77
82
  // Initialize Conact Sensor Characteristics
78
83
  this.ContactSensor.Service
79
84
  .setCharacteristic(this.hap.Characteristic.Name, this.ContactSensor.Name)
@@ -92,6 +97,9 @@ export class LockMechanism extends deviceBase {
92
97
  ChargingState: accessory.context.ChargingState ?? this.hap.Characteristic.ChargingState.NOT_CHARGING,
93
98
  };
94
99
  accessory.context.Battery = this.Battery;
100
+ // Seed context keys for updateCharacteristic change detection
101
+ accessory.context.BatteryBatteryLevel ??= this.Battery.BatteryLevel;
102
+ accessory.context.BatteryStatusLowBattery ??= this.Battery.StatusLowBattery;
95
103
  // Initialize Battery Characteristics
96
104
  this.Battery.Service
97
105
  .setCharacteristic(this.hap.Characteristic.Name, this.Battery.Name)
@@ -217,8 +225,7 @@ export class LockMechanism extends deviceBase {
217
225
  if (this.LockMechanism && (this.lockEvent.state.unlocking || this.lockEvent.state.locking)) {
218
226
  await this.debugLog(`is ${this.lockEvent.state.unlocking ? 'Unlocking' : this.lockEvent.state.locking ? 'Locking' : ''}, parseEventStatus`
219
227
  + ` lockEventState: ${JSON.stringify(this.lockEvent.state)}`);
220
- // Note: Removed early return to allow processing of final state when transitional state resolves
221
- // This prevents the lock from getting stuck in "Unlocking..." status
228
+ return;
222
229
  }
223
230
  if (!this.device.lock?.hide_lock && this.LockMechanism?.Service && (this.lockEvent.state.locked !== this.lockEvent.state.unlocked)) {
224
231
  this.LockMechanism.LockCurrentState = this.lockEvent.state.locked
@@ -1 +1 @@
1
- {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/devices/lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/devices/lock.ts"],"names":[],"mappings":"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"}
@@ -22,47 +22,45 @@ describe('lock pushChanges method', () => {
22
22
  expect(lockTsContent).toContain('pushChanges: ${e.message');
23
23
  });
24
24
  });
25
- describe('lock parseEventStatus method - transitional state handling', () => {
26
- it('should not have early return when in transitional states to prevent stuck "Unlocking..." status', () => {
27
- // Test that the parseEventStatus method has been fixed to not return early
28
- // when in locking/unlocking states, which was causing the stuck state issue
29
- const lockTsPath = join(__dirname, 'lock.ts');
30
- const lockTsContent = readFileSync(lockTsPath, 'utf8');
31
- // Extract only the parseEventStatus method content
32
- const parseEventStatusMatch = lockTsContent.match(/async parseEventStatus\(\)[\s\S]*?(?=async \w+\(\)|$)/g);
33
- expect(parseEventStatusMatch).toBeTruthy();
34
- if (parseEventStatusMatch && parseEventStatusMatch[0]) {
35
- const parseEventStatusContent = parseEventStatusMatch[0];
36
- // Look for the specific problematic pattern: if (unlocking || locking) { debugLog; return }
37
- // We need to ensure there's no actual return statement (not just the word in comments)
38
- const problematicPattern = /lockEvent\.state\.unlocking[\s\S]*?lockEvent\.state\.locking[\s\S]*?debugLog[\s\S]*?\sreturn\s*$/m;
39
- const hasProblematicPattern = problematicPattern.test(parseEventStatusContent);
40
- // This pattern should be removed/fixed to prevent stuck states
41
- expect(hasProblematicPattern).toBe(false);
42
- // Also check more directly - there should be no standalone return statement after the transitional check
43
- const transitionCheckMatch = parseEventStatusContent.match(/if\s*\(\s*this\.LockMechanism[\s\S]*?unlocking[\s\S]*?locking[\s\S]*?\)\s*\{([^}]*)\}/);
44
- if (transitionCheckMatch) {
45
- const blockContent = transitionCheckMatch[1];
46
- // The block should not contain a bare return statement
47
- expect(blockContent).not.toMatch(/^\s*return\s*$/m);
48
- }
49
- }
25
+ describe('lock context seeding for change detection', () => {
26
+ const lockTsPath = join(__dirname, 'lock.ts');
27
+ const lockTsContent = readFileSync(lockTsPath, 'utf8');
28
+ it('should seed LockMechanism context keys for change detection', () => {
29
+ expect(lockTsContent).toContain('accessory.context.LockMechanismLockCurrentState ??= this.LockMechanism.LockCurrentState');
30
+ expect(lockTsContent).toContain('accessory.context.LockMechanismLockTargetState ??= this.LockMechanism.LockTargetState');
50
31
  });
51
- it('should handle transitional states with proper logging but continue processing', () => {
52
- // Verify that the method processes the lock state updates even when transitional
53
- const lockTsPath = join(__dirname, 'lock.ts');
54
- const lockTsContent = readFileSync(lockTsPath, 'utf8');
55
- // Find the parseEventStatus method
56
- const parseEventStatusMatch = lockTsContent.match(/async parseEventStatus\(\)[\s\S]*?(?=async \w+\(\)|$)/g);
57
- if (parseEventStatusMatch && parseEventStatusMatch[0]) {
58
- const parseEventStatusContent = parseEventStatusMatch[0];
59
- // Should still have detection and logging for transitional states
60
- expect(parseEventStatusContent).toContain('unlocking');
61
- expect(parseEventStatusContent).toContain('locking');
62
- expect(parseEventStatusContent).toContain('debugLog');
63
- // Should also have the logic to update LockCurrentState
64
- expect(parseEventStatusContent).toContain('LockCurrentState');
65
- }
32
+ it('should seed ContactSensor context key for change detection', () => {
33
+ expect(lockTsContent).toContain('accessory.context.ContactSensorContactSensorState ??= this.ContactSensor.ContactSensorState');
34
+ });
35
+ it('should seed Battery context keys for change detection', () => {
36
+ expect(lockTsContent).toContain('accessory.context.BatteryBatteryLevel ??= this.Battery.BatteryLevel');
37
+ expect(lockTsContent).toContain('accessory.context.BatteryStatusLowBattery ??= this.Battery.StatusLowBattery');
38
+ });
39
+ it('should seed context keys after creating service objects but before initializing characteristics', () => {
40
+ // Verify seeding happens between object assignment and characteristic initialization
41
+ const lockMechanismSeed = lockTsContent.indexOf('accessory.context.LockMechanismLockCurrentState ??=');
42
+ const lockMechanismAssign = lockTsContent.indexOf('accessory.context.LockMechanism = this.LockMechanism as object');
43
+ const lockCharInit = lockTsContent.indexOf('this.LockMechanism.Service\n .setCharacteristic(this.hap.Characteristic.Name');
44
+ expect(lockMechanismSeed).toBeGreaterThan(lockMechanismAssign);
45
+ expect(lockMechanismSeed).toBeLessThan(lockCharInit);
46
+ const contactSensorSeed = lockTsContent.indexOf('accessory.context.ContactSensorContactSensorState ??=');
47
+ const contactSensorAssign = lockTsContent.indexOf('accessory.context.ContactSensor = this.ContactSensor as object');
48
+ const contactCharInit = lockTsContent.indexOf('this.ContactSensor.Service\n .setCharacteristic(this.hap.Characteristic.Name');
49
+ expect(contactSensorSeed).toBeGreaterThan(contactSensorAssign);
50
+ expect(contactSensorSeed).toBeLessThan(contactCharInit);
51
+ });
52
+ it('should use nullish coalescing assignment (??=) to preserve existing persisted values', () => {
53
+ // Ensure ??= is used (not = or ||=) so that persisted context values from previous runs are kept
54
+ const lockCurrentLine = lockTsContent.match(/accessory\.context\.LockMechanismLockCurrentState\s*\?\?=/);
55
+ const lockTargetLine = lockTsContent.match(/accessory\.context\.LockMechanismLockTargetState\s*\?\?=/);
56
+ const contactLine = lockTsContent.match(/accessory\.context\.ContactSensorContactSensorState\s*\?\?=/);
57
+ const batteryLevelLine = lockTsContent.match(/accessory\.context\.BatteryBatteryLevel\s*\?\?=/);
58
+ const batteryLowLine = lockTsContent.match(/accessory\.context\.BatteryStatusLowBattery\s*\?\?=/);
59
+ expect(lockCurrentLine).not.toBeNull();
60
+ expect(lockTargetLine).not.toBeNull();
61
+ expect(contactLine).not.toBeNull();
62
+ expect(batteryLevelLine).not.toBeNull();
63
+ expect(batteryLowLine).not.toBeNull();
66
64
  });
67
65
  });
68
66
  //# sourceMappingURL=lock.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lock.test.js","sourceRoot":"","sources":["../../src/devices/lock.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock.test.js","sourceRoot":"","sources":["../../src/devices/lock.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
package/dist/platform.js CHANGED
@@ -197,7 +197,6 @@ export class AugustPlatform {
197
197
  const countryCodeMapping = {
198
198
  'CA': 'US', // Canada -> United States (North American region)
199
199
  'MX': 'US', // Mexico -> United States (North American region)
200
- 'GB': 'US', // United Kingdom -> United States (after August/Yale split, UK uses US endpoints)
201
200
  };
202
201
  const originalCountryCode = credentials.countryCode?.toUpperCase();
203
202
  const normalizedCountryCode = originalCountryCode ? countryCodeMapping[originalCountryCode] : undefined;
@@ -420,7 +419,7 @@ export class AugustPlatform {
420
419
  this.accessories.push(accessory);
421
420
  }
422
421
  else {
423
- await this.warnLog(`Unable to Register: ${device.LockName}, Lock ID: ${device.lockId}. Check device configuration.`);
422
+ await this.debugErrorLog(`Unable to Register: ${device.LockName}, Lock ID: ${device.lockId} Check Config to see if is being Hidden.`);
424
423
  }
425
424
  }
426
425
  async registerDevice(device) {
@@ -435,8 +434,8 @@ export class AugustPlatform {
435
434
  }
436
435
  else if (device.homeKitEnabled && !device.overrideHomeKitEnabled) {
437
436
  this.registeringDevice = false;
438
- await this.errorLog(`Device: ${device.LockName} already has HomeKit enabled. `
439
- + `To register with Homebridge, add "overrideHomeKitEnabled": true to your device config.`);
437
+ await this.debugErrorLog(`Device: ${device.LockName} HomeKit Enabled: `
438
+ + `${device.homeKitEnabled}, device will not be registered. To enable, set overrideHomeKitEnabled to true.`);
440
439
  }
441
440
  else {
442
441
  this.registeringDevice = false;