zigbee-herdsman 0.55.1 → 0.55.3

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 (49) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +16 -0
  3. package/dist/adapter/adapter.d.ts.map +1 -1
  4. package/dist/adapter/adapter.js +2 -2
  5. package/dist/adapter/adapter.js.map +1 -1
  6. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
  7. package/dist/adapter/ember/adapter/emberAdapter.js +0 -1
  8. package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
  9. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  10. package/dist/adapter/ezsp/driver/driver.js +2 -2
  11. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  12. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +1 -0
  13. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  14. package/dist/adapter/z-stack/adapter/zStackAdapter.js +43 -31
  15. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  16. package/dist/adapter/z-stack/unpi/frame.js +1 -1
  17. package/dist/adapter/z-stack/unpi/frame.js.map +1 -1
  18. package/dist/controller/controller.d.ts +12 -0
  19. package/dist/controller/controller.d.ts.map +1 -1
  20. package/dist/controller/controller.js +35 -8
  21. package/dist/controller/controller.js.map +1 -1
  22. package/dist/controller/database.d.ts +5 -5
  23. package/dist/controller/database.d.ts.map +1 -1
  24. package/dist/controller/database.js +38 -30
  25. package/dist/controller/database.js.map +1 -1
  26. package/dist/controller/model/device.d.ts +6 -1
  27. package/dist/controller/model/device.d.ts.map +1 -1
  28. package/dist/controller/model/device.js +53 -17
  29. package/dist/controller/model/device.js.map +1 -1
  30. package/dist/controller/model/endpoint.d.ts.map +1 -1
  31. package/dist/controller/model/endpoint.js +8 -8
  32. package/dist/controller/model/endpoint.js.map +1 -1
  33. package/dist/controller/model/group.d.ts +5 -0
  34. package/dist/controller/model/group.d.ts.map +1 -1
  35. package/dist/controller/model/group.js +22 -7
  36. package/dist/controller/model/group.js.map +1 -1
  37. package/dist/zspec/zcl/definition/foundation.d.ts +1 -2
  38. package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -1
  39. package/dist/zspec/zcl/utils.d.ts +3 -0
  40. package/dist/zspec/zcl/utils.d.ts.map +1 -1
  41. package/dist/zspec/zcl/utils.js +19 -0
  42. package/dist/zspec/zcl/utils.js.map +1 -1
  43. package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
  44. package/dist/zspec/zcl/zclFrame.js +4 -5
  45. package/dist/zspec/zcl/zclFrame.js.map +1 -1
  46. package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -1
  47. package/dist/zspec/zdo/buffaloZdo.js +0 -1
  48. package/dist/zspec/zdo/buffaloZdo.js.map +1 -1
  49. package/package.json +4 -6
@@ -154,10 +154,10 @@ class Controller extends events_1.default.EventEmitter {
154
154
  fs_1.default.copyFileSync(this.options.databasePath, this.options.databaseBackupPath);
155
155
  }
156
156
  logger_1.logger.debug('Clearing database...', NS);
157
- for (const group of group_1.default.all()) {
157
+ for (const group of group_1.default.allIterator()) {
158
158
  group.removeFromDatabase();
159
159
  }
160
- for (const device of model_1.Device.all()) {
160
+ for (const device of model_1.Device.allIterator()) {
161
161
  device.removeFromDatabase();
162
162
  }
163
163
  }
@@ -286,12 +286,14 @@ class Controller extends events_1.default.EventEmitter {
286
286
  await this.adapter.stop();
287
287
  this.adapterDisconnected = true;
288
288
  }
289
+ model_1.Device.resetCache();
290
+ group_1.default.resetCache();
289
291
  }
290
292
  databaseSave() {
291
- for (const device of model_1.Device.all()) {
293
+ for (const device of model_1.Device.allIterator()) {
292
294
  device.save(false);
293
295
  }
294
- for (const group of group_1.default.all()) {
296
+ for (const group of group_1.default.allIterator()) {
295
297
  group.save(false);
296
298
  }
297
299
  this.database.write();
@@ -300,7 +302,7 @@ class Controller extends events_1.default.EventEmitter {
300
302
  this.databaseSave();
301
303
  if (this.options.backupPath && (await this.adapter.supportsBackup())) {
302
304
  logger_1.logger.debug('Creating coordinator backup', NS);
303
- const backup = await this.adapter.backup(model_1.Device.all().map((d) => d.ieeeAddr));
305
+ const backup = await this.adapter.backup(this.getDeviceIeeeAddresses());
304
306
  const unifiedBackup = await utils_1.BackupUtils.toUnifiedBackup(backup);
305
307
  const tmpBackupPath = this.options.backupPath + '.tmp';
306
308
  fs_1.default.writeFileSync(tmpBackupPath, JSON.stringify(unifiedBackup, null, 2));
@@ -310,9 +312,12 @@ class Controller extends events_1.default.EventEmitter {
310
312
  }
311
313
  async coordinatorCheck() {
312
314
  if (await this.adapter.supportsBackup()) {
313
- const backup = await this.adapter.backup(model_1.Device.all().map((d) => d.ieeeAddr));
315
+ const backup = await this.adapter.backup(this.getDeviceIeeeAddresses());
314
316
  const devicesInBackup = backup.devices.map((d) => `0x${d.ieeeAddress.toString('hex')}`);
315
- const missingRouters = this.getDevices().filter((d) => d.type === 'Router' && !devicesInBackup.includes(d.ieeeAddr));
317
+ const missingRouters = [];
318
+ for (const device of this.getDevicesIterator((d) => d.type === 'Router' && !devicesInBackup.includes(d.ieeeAddr))) {
319
+ missingRouters.push(device);
320
+ }
316
321
  return { missingRouters };
317
322
  }
318
323
  else {
@@ -338,6 +343,12 @@ class Controller extends events_1.default.EventEmitter {
338
343
  getDevices() {
339
344
  return model_1.Device.all();
340
345
  }
346
+ /**
347
+ * Get iterator for all devices
348
+ */
349
+ getDevicesIterator(predicate) {
350
+ return model_1.Device.allIterator(predicate);
351
+ }
341
352
  /**
342
353
  * Get all devices with a specific type
343
354
  */
@@ -356,6 +367,16 @@ class Controller extends events_1.default.EventEmitter {
356
367
  getDeviceByNetworkAddress(networkAddress) {
357
368
  return model_1.Device.byNetworkAddress(networkAddress);
358
369
  }
370
+ /**
371
+ * Get IEEE address for all devices
372
+ */
373
+ getDeviceIeeeAddresses() {
374
+ const deviceIeeeAddresses = [];
375
+ for (const device of model_1.Device.allIterator()) {
376
+ deviceIeeeAddresses.push(device.ieeeAddr);
377
+ }
378
+ return deviceIeeeAddresses;
379
+ }
359
380
  /**
360
381
  * Get group by ID
361
382
  */
@@ -368,6 +389,12 @@ class Controller extends events_1.default.EventEmitter {
368
389
  getGroups() {
369
390
  return group_1.default.all();
370
391
  }
392
+ /**
393
+ * Get iterator for all groups
394
+ */
395
+ getGroupsIterator(predicate) {
396
+ return group_1.default.allIterator(predicate);
397
+ }
371
398
  /**
372
399
  * Create a Group
373
400
  */
@@ -583,7 +610,7 @@ class Controller extends events_1.default.EventEmitter {
583
610
  device.linkquality = payload.linkquality;
584
611
  let endpoint = device.getEndpoint(payload.endpoint);
585
612
  if (!endpoint) {
586
- logger_1.logger.debug(`Data is from unknown endpoint '${payload.endpoint}' from device with ` + `network address '${payload.address}', creating it...`, NS);
613
+ logger_1.logger.debug(`Data is from unknown endpoint '${payload.endpoint}' from device with network address '${payload.address}', creating it...`, NS);
587
614
  endpoint = device.createEndpoint(payload.endpoint);
588
615
  }
589
616
  // Parse command for event
@@ -1 +1 @@
1
- {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,11 @@ declare class Database {
5
5
  private maxId;
6
6
  private constructor();
7
7
  static open(path: string): Database;
8
- getEntries(type: EntityType[]): DatabaseEntry[];
9
- insert(DatabaseEntry: DatabaseEntry): void;
10
- update(DatabaseEntry: DatabaseEntry, write: boolean): void;
11
- remove(ID: number): void;
12
- has(ID: number): boolean;
8
+ getEntriesIterator(type: EntityType[]): Generator<DatabaseEntry>;
9
+ insert(databaseEntry: DatabaseEntry): void;
10
+ update(databaseEntry: DatabaseEntry, write: boolean): void;
11
+ remove(id: number): void;
12
+ has(id: number): boolean;
13
13
  newID(): number;
14
14
  write(): void;
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/controller/database.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAInD,cAAM,QAAQ;IACV,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO;WAMO,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAoBnC,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE;IAI/C,MAAM,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAS1C,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAY1D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASxB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,KAAK,IAAI,MAAM;IAKf,KAAK,IAAI,IAAI;CAevB;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/controller/database.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAInD,cAAM,QAAQ;IACV,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO;WAMO,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IA0BlC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC;IAUjE,MAAM,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAS1C,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAY1D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASxB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,KAAK,IAAI,MAAM;IAKf,KAAK,IAAI,IAAI;CAiBvB;AAED,eAAe,QAAQ,CAAC"}
@@ -18,48 +18,57 @@ class Database {
18
18
  static open(path) {
19
19
  const entries = {};
20
20
  if (fs_1.default.existsSync(path)) {
21
- const rows = fs_1.default
22
- .readFileSync(path, 'utf-8')
23
- .split('\n')
24
- .map((r) => r.trim())
25
- .filter((r) => r != '');
26
- for (const row of rows) {
27
- const json = JSON.parse(row);
28
- if (json.hasOwnProperty('id')) {
29
- entries[json.id] = json;
21
+ const file = fs_1.default.readFileSync(path, 'utf-8');
22
+ for (const row of file.split('\n')) {
23
+ if (!row) {
24
+ continue;
25
+ }
26
+ try {
27
+ const json = JSON.parse(row);
28
+ if (json.id != undefined) {
29
+ entries[json.id] = json;
30
+ }
31
+ }
32
+ catch (error) {
33
+ logger_1.logger.error(`Corrupted database line, ignoring. ${error}`, NS);
30
34
  }
31
35
  }
32
36
  }
33
37
  return new Database(entries, path);
34
38
  }
35
- getEntries(type) {
36
- return Object.values(this.entries).filter((e) => type.includes(e.type));
39
+ *getEntriesIterator(type) {
40
+ for (const id in this.entries) {
41
+ const entry = this.entries[id];
42
+ if (type.includes(entry.type)) {
43
+ yield entry;
44
+ }
45
+ }
37
46
  }
38
- insert(DatabaseEntry) {
39
- if (this.entries[DatabaseEntry.id]) {
40
- throw new Error(`DatabaseEntry with ID '${DatabaseEntry.id}' already exists`);
47
+ insert(databaseEntry) {
48
+ if (this.entries[databaseEntry.id]) {
49
+ throw new Error(`DatabaseEntry with ID '${databaseEntry.id}' already exists`);
41
50
  }
42
- this.entries[DatabaseEntry.id] = DatabaseEntry;
51
+ this.entries[databaseEntry.id] = databaseEntry;
43
52
  this.write();
44
53
  }
45
- update(DatabaseEntry, write) {
46
- if (!this.entries[DatabaseEntry.id]) {
47
- throw new Error(`DatabaseEntry with ID '${DatabaseEntry.id}' does not exist`);
54
+ update(databaseEntry, write) {
55
+ if (!this.entries[databaseEntry.id]) {
56
+ throw new Error(`DatabaseEntry with ID '${databaseEntry.id}' does not exist`);
48
57
  }
49
- this.entries[DatabaseEntry.id] = DatabaseEntry;
58
+ this.entries[databaseEntry.id] = databaseEntry;
50
59
  if (write) {
51
60
  this.write();
52
61
  }
53
62
  }
54
- remove(ID) {
55
- if (!this.entries[ID]) {
56
- throw new Error(`DatabaseEntry with ID '${ID}' does not exist`);
63
+ remove(id) {
64
+ if (!this.entries[id]) {
65
+ throw new Error(`DatabaseEntry with ID '${id}' does not exist`);
57
66
  }
58
- delete this.entries[ID];
67
+ delete this.entries[id];
59
68
  this.write();
60
69
  }
61
- has(ID) {
62
- return this.entries.hasOwnProperty(ID);
70
+ has(id) {
71
+ return Boolean(this.entries[id]);
63
72
  }
64
73
  newID() {
65
74
  this.maxId += 1;
@@ -67,13 +76,12 @@ class Database {
67
76
  }
68
77
  write() {
69
78
  logger_1.logger.debug(`Writing database to '${this.path}'`, NS);
70
- const lines = [];
71
- for (const DatabaseEntry of Object.values(this.entries)) {
72
- const json = JSON.stringify(DatabaseEntry);
73
- lines.push(json);
79
+ let lines = '';
80
+ for (const id in this.entries) {
81
+ lines += JSON.stringify(this.entries[id]) + `\n`;
74
82
  }
75
83
  const tmpPath = this.path + '.tmp';
76
- fs_1.default.writeFileSync(tmpPath, lines.join('\n'));
84
+ fs_1.default.writeFileSync(tmpPath, lines.slice(0, -1)); // remove last newline, no effect if empty string
77
85
  // Ensure file is on disk https://github.com/Koenkk/zigbee2mqtt/issues/11759
78
86
  const fd = fs_1.default.openSync(tmpPath, 'r+');
79
87
  fs_1.default.fsyncSync(fd);
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/controller/database.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AAEpB,4CAAuC;AAGvC,MAAM,EAAE,GAAG,wBAAwB,CAAC;AAEpC,MAAM,QAAQ;IACF,OAAO,CAAgC;IACvC,IAAI,CAAS;IACb,KAAK,CAAS;IAEtB,YAAoB,OAAsC,EAAE,IAAY;QACpE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,IAAY;QAC3B,MAAM,OAAO,GAAkC,EAAE,CAAC;QAElD,IAAI,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,YAAE;iBACV,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;iBAC3B,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;gBAC5B,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAEM,UAAU,CAAC,IAAkB;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEM,MAAM,CAAC,aAA4B;QACtC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,0BAA0B,aAAa,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,aAA4B,EAAE,KAAc;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,0BAA0B,aAAa,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC;QAE/C,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,EAAU;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,EAAE,kBAAkB,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAEM,GAAG,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEM,KAAK;QACR,eAAM,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnC,YAAE,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,4EAA4E;QAC5E,MAAM,EAAE,GAAG,YAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtC,YAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjB,YAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjB,YAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACJ;AAED,kBAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/controller/database.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,6 @@ declare class Device extends Entity {
43
43
  private _linkquality?;
44
44
  private _skipDefaultResponse;
45
45
  private _customReadResponse?;
46
- private _deleted;
47
46
  private _lastDefaultResponseSequenceNumber;
48
47
  private _checkinInterval;
49
48
  private _pendingRequestTimeout;
@@ -91,6 +90,7 @@ declare class Device extends Entity {
91
90
  get customClusters(): CustomClusters;
92
91
  meta: KeyValue;
93
92
  private static devices;
93
+ private static deletedDevices;
94
94
  static readonly ReportablePropertiesMapping: {
95
95
  [s: string]: {
96
96
  set: (value: string | number, device: Device) => void;
@@ -107,6 +107,10 @@ declare class Device extends Entity {
107
107
  private resetPendingRequestTimeout;
108
108
  private hasPendingRequests;
109
109
  onZclData(dataPayload: AdapterEvents.ZclPayload, frame: Zcl.Frame, endpoint: Endpoint): Promise<void>;
110
+ /**
111
+ * Reset runtime lookups.
112
+ */
113
+ static resetCache(): void;
110
114
  private static fromDatabaseEntry;
111
115
  private toDatabaseEntry;
112
116
  save(writeDatabase?: boolean): void;
@@ -116,6 +120,7 @@ declare class Device extends Entity {
116
120
  static byNetworkAddress(networkAddress: number, includeDeleted?: boolean): Device;
117
121
  static byType(type: DeviceType): Device[];
118
122
  static all(): Device[];
123
+ static allIterator(predicate?: (value: Device) => boolean): Generator<Device>;
119
124
  undelete(interviewCompleted?: boolean): void;
120
125
  static create(type: DeviceType, ieeeAddr: string, networkAddress: number, manufacturerID: number, manufacturerName: string, powerSource: string, modelID: string, interviewCompleted: boolean, endpoints: {
121
126
  ID: number;
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/controller/model/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/controller/model/device.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,6 @@ class Device extends entity_1.default {
62
62
  _linkquality;
63
63
  _skipDefaultResponse;
64
64
  _customReadResponse;
65
- _deleted;
66
65
  _lastDefaultResponseSequenceNumber;
67
66
  _checkinInterval;
68
67
  _pendingRequestTimeout;
@@ -96,7 +95,7 @@ class Device extends entity_1.default {
96
95
  return this._manufacturerID;
97
96
  }
98
97
  get isDeleted() {
99
- return this._deleted;
98
+ return Boolean(Device.deletedDevices[this.ieeeAddr]);
100
99
  }
101
100
  set type(type) {
102
101
  this._type = type;
@@ -199,6 +198,7 @@ class Device extends entity_1.default {
199
198
  // This lookup contains all devices that are queried from the database, this is to ensure that always
200
199
  // the same instance is returned.
201
200
  static devices = null;
201
+ static deletedDevices = {};
202
202
  static ReportablePropertiesMapping = {
203
203
  modelId: {
204
204
  key: 'modelID',
@@ -444,12 +444,20 @@ class Device extends entity_1.default {
444
444
  /*
445
445
  * CRUD
446
446
  */
447
+ /**
448
+ * Reset runtime lookups.
449
+ */
450
+ static resetCache() {
451
+ Device.devices = null;
452
+ Device.deletedDevices = {};
453
+ }
447
454
  static fromDatabaseEntry(entry) {
448
455
  const networkAddress = entry.nwkAddr;
449
456
  const ieeeAddr = entry.ieeeAddr;
450
- const endpoints = Object.values(entry.endpoints).map((e) => {
451
- return endpoint_1.default.fromDatabaseRecord(e, networkAddress, ieeeAddr);
452
- });
457
+ const endpoints = [];
458
+ for (const id in entry.endpoints) {
459
+ endpoints.push(endpoint_1.default.fromDatabaseRecord(entry.endpoints[id], networkAddress, ieeeAddr));
460
+ }
453
461
  const meta = entry.meta ? entry.meta : {};
454
462
  if (entry.type === 'Group') {
455
463
  throw new Error('Cannot load device from group');
@@ -504,8 +512,7 @@ class Device extends entity_1.default {
504
512
  static loadFromDatabaseIfNecessary() {
505
513
  if (!Device.devices) {
506
514
  Device.devices = {};
507
- const entries = entity_1.default.database.getEntries(['Coordinator', 'EndDevice', 'Router', 'GreenPower', 'Unknown']);
508
- for (const entry of entries) {
515
+ for (const entry of entity_1.default.database.getEntriesIterator(['Coordinator', 'EndDevice', 'Router', 'GreenPower', 'Unknown'])) {
509
516
  const device = Device.fromDatabaseEntry(entry);
510
517
  Device.devices[device.ieeeAddr] = device;
511
518
  }
@@ -518,30 +525,58 @@ class Device extends entity_1.default {
518
525
  }
519
526
  static byIeeeAddr(ieeeAddr, includeDeleted = false) {
520
527
  Device.loadFromDatabaseIfNecessary();
521
- const device = Device.devices[ieeeAddr];
522
- return device?._deleted && !includeDeleted ? undefined : device;
528
+ return includeDeleted ? (Device.deletedDevices[ieeeAddr] ?? Device.devices[ieeeAddr]) : Device.devices[ieeeAddr];
523
529
  }
524
530
  static byNetworkAddress(networkAddress, includeDeleted = false) {
525
531
  Device.loadFromDatabaseIfNecessary();
526
- return Object.values(Device.devices).find((d) => (includeDeleted || !d._deleted) && d.networkAddress === networkAddress);
532
+ if (includeDeleted) {
533
+ for (const ieeeAddress in Device.deletedDevices) {
534
+ const device = Device.deletedDevices[ieeeAddress];
535
+ /* istanbul ignore else */
536
+ if (device.networkAddress === networkAddress) {
537
+ return device;
538
+ }
539
+ }
540
+ }
541
+ for (const ieeeAddress in Device.devices) {
542
+ const device = Device.devices[ieeeAddress];
543
+ /* istanbul ignore else */
544
+ if (device.networkAddress === networkAddress) {
545
+ return device;
546
+ }
547
+ }
527
548
  }
528
549
  static byType(type) {
529
- return Device.all().filter((d) => d.type === type);
550
+ const devices = [];
551
+ for (const device of Device.allIterator((d) => d.type === type)) {
552
+ devices.push(device);
553
+ }
554
+ return devices;
530
555
  }
531
556
  static all() {
532
557
  Device.loadFromDatabaseIfNecessary();
533
- return Object.values(Device.devices).filter((d) => !d._deleted);
558
+ return Object.values(Device.devices);
559
+ }
560
+ static *allIterator(predicate) {
561
+ Device.loadFromDatabaseIfNecessary();
562
+ for (const ieeeAddr in Device.devices) {
563
+ const device = Device.devices[ieeeAddr];
564
+ if (!predicate || predicate(device)) {
565
+ yield device;
566
+ }
567
+ }
534
568
  }
535
569
  undelete(interviewCompleted) {
536
- (0, assert_1.default)(this._deleted, `Device '${this.ieeeAddr}' is not deleted`);
537
- this._deleted = false;
570
+ (0, assert_1.default)(Device.deletedDevices[this.ieeeAddr], `Device '${this.ieeeAddr}' is not deleted`);
571
+ Device.devices[this.ieeeAddr] = this;
572
+ delete Device.deletedDevices[this.ieeeAddr];
538
573
  this._interviewCompleted = interviewCompleted ?? this._interviewCompleted;
539
574
  entity_1.default.database.insert(this.toDatabaseEntry());
540
575
  }
541
576
  static create(type, ieeeAddr, networkAddress, manufacturerID, manufacturerName, powerSource, modelID, interviewCompleted, endpoints) {
542
577
  Device.loadFromDatabaseIfNecessary();
543
- if (Device.devices[ieeeAddr] && !Device.devices[ieeeAddr]._deleted) {
544
- throw new Error(`Device with ieeeAddr '${ieeeAddr}' already exists`);
578
+ if (Device.devices[ieeeAddr]) {
579
+ throw new Error(`Device with IEEE address '${ieeeAddr}' already exists`);
545
580
  }
546
581
  const endpointsMapped = endpoints.map((e) => {
547
582
  return endpoint_1.default.create(e.ID, e.profileID, e.deviceID, e.inputClusters, e.outputClusters, networkAddress, ieeeAddr);
@@ -843,7 +878,8 @@ class Device extends entity_1.default {
843
878
  if (entity_1.default.database.has(this.ID)) {
844
879
  entity_1.default.database.remove(this.ID);
845
880
  }
846
- this._deleted = true;
881
+ Device.deletedDevices[this.ieeeAddr] = this;
882
+ delete Device.devices[this.ieeeAddr];
847
883
  // Clear all data in case device joins again
848
884
  this._interviewCompleted = false;
849
885
  this._interviewing = false;