zigbee-herdsman 4.5.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +18 -0
  3. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  4. package/dist/controller/helpers/zclFrameConverter.js +2 -14
  5. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  6. package/dist/controller/model/device.js +3 -5
  7. package/dist/controller/model/device.js.map +1 -1
  8. package/dist/controller/model/endpoint.d.ts +1 -1
  9. package/dist/controller/model/endpoint.d.ts.map +1 -1
  10. package/dist/controller/model/endpoint.js +67 -43
  11. package/dist/controller/model/endpoint.js.map +1 -1
  12. package/dist/controller/model/group.d.ts.map +1 -1
  13. package/dist/controller/model/group.js +28 -17
  14. package/dist/controller/model/group.js.map +1 -1
  15. package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -1
  16. package/dist/zspec/zcl/buffaloZcl.js +5 -5
  17. package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
  18. package/dist/zspec/zcl/definition/tstype.d.ts +1 -2
  19. package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
  20. package/dist/zspec/zcl/utils.d.ts.map +1 -1
  21. package/dist/zspec/zcl/utils.js +8 -30
  22. package/dist/zspec/zcl/utils.js.map +1 -1
  23. package/dist/zspec/zcl/zclFrame.d.ts +1 -1
  24. package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
  25. package/dist/zspec/zcl/zclFrame.js +8 -6
  26. package/dist/zspec/zcl/zclFrame.js.map +1 -1
  27. package/package.json +2 -2
  28. package/src/controller/helpers/zclFrameConverter.ts +4 -12
  29. package/src/controller/model/device.ts +5 -5
  30. package/src/controller/model/endpoint.ts +86 -49
  31. package/src/controller/model/group.ts +33 -18
  32. package/src/zspec/zcl/buffaloZcl.ts +6 -4
  33. package/src/zspec/zcl/definition/tstype.ts +1 -2
  34. package/src/zspec/zcl/utils.ts +8 -35
  35. package/src/zspec/zcl/zclFrame.ts +10 -8
  36. package/test/controller.test.ts +352 -1360
  37. package/test/requests.bench.ts +5 -0
  38. package/test/zcl.test.ts +11 -15
  39. package/test/zspec/zcl/frame.test.ts +25 -25
  40. package/test/zspec/zcl/utils.test.ts +6 -14
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/zspec/zcl/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/zspec/zcl/utils.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export declare class ZclFrame {
14
14
  /**
15
15
  * Creating
16
16
  */
17
- static create(frameType: FrameType, direction: Direction, disableDefaultResponse: boolean, manufacturerCode: number | undefined, transactionSequenceNumber: number, commandKey: number | string, clusterKey: number | string, payload: ZclPayload, customClusters: CustomClusters, reservedBits?: number): ZclFrame;
17
+ static create(frameType: FrameType, direction: Direction, disableDefaultResponse: boolean, manufacturerCode: number | undefined, transactionSequenceNumber: number, commandKey: number | string | Command, clusterKey: number | string | Cluster, payload: ZclPayload, customClusters: CustomClusters, reservedBits?: number): ZclFrame;
18
18
  toBuffer(): Buffer;
19
19
  private writePayloadGlobal;
20
20
  private writePayloadCluster;
@@ -1 +1 @@
1
- {"version":3,"file":"zclFrame.d.ts","sourceRoot":"","sources":["../../../src/zspec/zcl/zclFrame.ts"],"names":[],"mappings":"AAAA,OAAO,sCAAsC,CAAC;AAG9C,OAAO,EAA+B,SAAS,EAAE,SAAS,EAAqB,MAAM,oBAAoB,CAAC;AAC1G,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAAK,EAAoB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AAE/H,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAGtC,KAAK,UAAU,GAAG,GAAG,CAAC;AAUtB,qBAAa,QAAQ;IACjB,SAAgB,MAAM,EAAE,SAAS,CAAC;IAClC,SAAgB,OAAO,EAAE,UAAU,CAAC;IACpC,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,OAAO;IAOA,QAAQ,IAAI,MAAM;IAIzB;;OAEG;WACW,MAAM,CAChB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,sBAAsB,EAAE,OAAO,EAC/B,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,yBAAyB,EAAE,MAAM,EACjC,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,cAAc,EAC9B,YAAY,SAAI,GACjB,QAAQ;IAmBJ,QAAQ,IAAI,MAAM;IAezB,OAAO,CAAC,kBAAkB;IAuC1B,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;WACW,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,QAAQ;IAiBpI,OAAO,CAAC,MAAM,CAAC,YAAY;IAY3B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA6BlC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA6EjC;;OAEG;WAEW,eAAe,CAAC,SAAS,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IA6C5H,SAAS,CAAC,WAAW,EAAE,qBAAqB,GAAG,WAAW,GAAG,OAAO;IAKpE,SAAS,CAAC,WAAW,EAAE,qBAAqB,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO;CAG5I"}
1
+ {"version":3,"file":"zclFrame.d.ts","sourceRoot":"","sources":["../../../src/zspec/zcl/zclFrame.ts"],"names":[],"mappings":"AAAA,OAAO,sCAAsC,CAAC;AAG9C,OAAO,EAA+B,SAAS,EAAE,SAAS,EAAqB,MAAM,oBAAoB,CAAC;AAC1G,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAAK,EAAoB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AAE/H,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAGtC,KAAK,UAAU,GAAG,GAAG,CAAC;AAUtB,qBAAa,QAAQ;IACjB,SAAgB,MAAM,EAAE,SAAS,CAAC;IAClC,SAAgB,OAAO,EAAE,UAAU,CAAC;IACpC,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,OAAO;IAOA,QAAQ,IAAI,MAAM;IAIzB;;OAEG;WACW,MAAM,CAChB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,sBAAsB,EAAE,OAAO,EAC/B,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,yBAAyB,EAAE,MAAM,EACjC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EACrC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EACrC,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,cAAc,EAC9B,YAAY,SAAI,GACjB,QAAQ;IAqBJ,QAAQ,IAAI,MAAM;IAezB,OAAO,CAAC,kBAAkB;IAuC1B,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;WACW,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,QAAQ;IAiBpI,OAAO,CAAC,MAAM,CAAC,YAAY;IAY3B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA6BlC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA6EjC;;OAEG;WAEW,eAAe,CAAC,SAAS,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IA6C5H,SAAS,CAAC,WAAW,EAAE,qBAAqB,GAAG,WAAW,GAAG,OAAO;IAKpE,SAAS,CAAC,WAAW,EAAE,qBAAqB,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO;CAG5I"}
@@ -64,12 +64,14 @@ class ZclFrame {
64
64
  * Creating
65
65
  */
66
66
  static create(frameType, direction, disableDefaultResponse, manufacturerCode, transactionSequenceNumber, commandKey, clusterKey, payload, customClusters, reservedBits = 0) {
67
- const cluster = Utils.getCluster(clusterKey, manufacturerCode, customClusters);
68
- const command = frameType === enums_1.FrameType.GLOBAL
69
- ? Utils.getGlobalCommand(commandKey)
70
- : direction === enums_1.Direction.CLIENT_TO_SERVER
71
- ? cluster.getCommand(commandKey)
72
- : cluster.getCommandResponse(commandKey);
67
+ const cluster = typeof clusterKey === "object" ? clusterKey : Utils.getCluster(clusterKey, manufacturerCode, customClusters);
68
+ const command = typeof commandKey === "object"
69
+ ? commandKey
70
+ : frameType === enums_1.FrameType.GLOBAL
71
+ ? Utils.getGlobalCommand(commandKey)
72
+ : direction === enums_1.Direction.CLIENT_TO_SERVER
73
+ ? cluster.getCommand(commandKey)
74
+ : cluster.getCommandResponse(commandKey);
73
75
  const header = new zclHeader_1.ZclHeader({ reservedBits, frameType, direction, disableDefaultResponse, manufacturerSpecific: manufacturerCode != null }, manufacturerCode, transactionSequenceNumber, command.ID);
74
76
  return new ZclFrame(header, payload, cluster, command);
75
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"zclFrame.js","sourceRoot":"","sources":["../../../src/zspec/zcl/zclFrame.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zclFrame.js","sourceRoot":"","sources":["../../../src/zspec/zcl/zclFrame.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -46,7 +46,7 @@
46
46
  "@vitest/coverage-v8": "^3.1.1",
47
47
  "rimraf": "^6.0.1",
48
48
  "typescript": "^5.8.3",
49
- "vitest": "^3.1.1"
49
+ "vitest": "^3.2.4"
50
50
  },
51
51
  "homepage": "https://github.com/Koenkk/zigbee-herdsman",
52
52
  "keywords": [
@@ -64,7 +64,7 @@
64
64
  "type": "git",
65
65
  "url": "git+https://github.com/Koenkk/zigbee-herdsman.git"
66
66
  },
67
- "version": "4.5.0",
67
+ "version": "5.0.1",
68
68
  "scripts": {
69
69
  "build": "tsc",
70
70
  "build:watch": "tsc -w",
@@ -29,13 +29,9 @@ function attributeKeyValue(frame: Zcl.Frame, deviceManufacturerID: number | unde
29
29
  const cluster = getCluster(frame, deviceManufacturerID, customClusters);
30
30
 
31
31
  for (const item of frame.payload as AttrPayload) {
32
- try {
33
- const attribute = cluster.getAttribute(item.attrId);
34
- payload[attribute.name] = item.attrData;
35
- } catch {
36
- payload[item.attrId] = item.attrData;
37
- }
32
+ payload[cluster.getAttribute(item.attrId)?.name ?? item.attrId] = item.attrData;
38
33
  }
34
+
39
35
  return payload;
40
36
  }
41
37
 
@@ -46,13 +42,9 @@ function attributeList(frame: Zcl.Frame, deviceManufacturerID: number | undefine
46
42
  const cluster = getCluster(frame, deviceManufacturerID, customClusters);
47
43
 
48
44
  for (const item of frame.payload as AttrListPayload) {
49
- try {
50
- const attribute = cluster.getAttribute(item.attrId);
51
- payload.push(attribute.name);
52
- } catch {
53
- payload.push(item.attrId);
54
- }
45
+ payload.push(cluster.getAttribute(item.attrId)?.name ?? item.attrId);
55
46
  }
47
+
56
48
  return payload;
57
49
  }
58
50
 
@@ -416,12 +416,12 @@ export class Device extends Entity<ControllerEventMap> {
416
416
 
417
417
  if (frame.cluster.name in attributes) {
418
418
  const response: KeyValue = {};
419
+
419
420
  for (const entry of frame.payload) {
420
- if (frame.cluster.hasAttribute(entry.attrId)) {
421
- const name = frame.cluster.getAttribute(entry.attrId).name;
422
- if (name in attributes[frame.cluster.name].attributes) {
423
- response[name] = attributes[frame.cluster.name].attributes[name];
424
- }
421
+ const name = frame.cluster.getAttribute(entry.attrId)?.name;
422
+
423
+ if (name && name in attributes[frame.cluster.name].attributes) {
424
+ response[name] = attributes[frame.cluster.name].attributes[name];
425
425
  }
426
426
  }
427
427
 
@@ -124,9 +124,12 @@ export class Endpoint extends Entity {
124
124
 
125
125
  return this._configuredReportings.map((entry, index) => {
126
126
  const cluster = Zcl.Utils.getCluster(entry.cluster, entry.manufacturerCode, device.customClusters);
127
- const attribute: ZclTypes.Attribute = cluster.hasAttribute(entry.attrId)
128
- ? cluster.getAttribute(entry.attrId)
129
- : {ID: entry.attrId, name: `attr${index}`, type: Zcl.DataType.UNKNOWN, manufacturerCode: undefined};
127
+ const attribute: ZclTypes.Attribute = cluster.getAttribute(entry.attrId) ?? {
128
+ ID: entry.attrId,
129
+ name: `attr${index}`,
130
+ type: Zcl.DataType.UNKNOWN,
131
+ manufacturerCode: undefined,
132
+ };
130
133
 
131
134
  return {
132
135
  cluster,
@@ -276,19 +279,26 @@ export class Endpoint extends Entity {
276
279
 
277
280
  public saveClusterAttributeKeyValue(clusterKey: number | string, list: KeyValue): void {
278
281
  const cluster = this.getCluster(clusterKey);
279
- if (!this.clusters[cluster.name]) this.clusters[cluster.name] = {attributes: {}};
280
282
 
281
- for (const [attribute, value] of Object.entries(list)) {
282
- this.clusters[cluster.name].attributes[attribute] = value;
283
+ if (!this.clusters[cluster.name]) {
284
+ this.clusters[cluster.name] = {attributes: {}};
285
+ }
286
+
287
+ for (const attribute in list) {
288
+ this.clusters[cluster.name].attributes[attribute] = list[attribute];
283
289
  }
284
290
  }
285
291
 
286
292
  public getClusterAttributeValue(clusterKey: number | string, attributeKey: number | string): number | string | undefined {
287
293
  const cluster = this.getCluster(clusterKey);
288
- const attribute = cluster.getAttribute(attributeKey);
289
294
 
290
295
  if (this.clusters[cluster.name] && this.clusters[cluster.name].attributes) {
291
- return this.clusters[cluster.name].attributes[attribute.name];
296
+ // XXX: used to throw (behavior changed in #1455)
297
+ const attribute = cluster.getAttribute(attributeKey);
298
+
299
+ if (attribute) {
300
+ return this.clusters[cluster.name].attributes[attribute.name];
301
+ }
292
302
  }
293
303
 
294
304
  return undefined;
@@ -364,12 +374,13 @@ export class Endpoint extends Entity {
364
374
  }
365
375
 
366
376
  public async report(clusterKey: number | string, attributes: KeyValue, options?: Options): Promise<void> {
367
- const cluster = this.getCluster(clusterKey);
377
+ const cluster = this.getCluster(clusterKey, undefined, options?.manufacturerCode);
368
378
  const payload: {attrId: number; dataType: number; attrData: number | string | boolean}[] = [];
369
379
 
370
380
  for (const [nameOrID, value] of Object.entries(attributes)) {
371
- if (cluster.hasAttribute(nameOrID)) {
372
- const attribute = cluster.getAttribute(nameOrID);
381
+ const attribute = cluster.getAttribute(nameOrID);
382
+
383
+ if (attribute) {
373
384
  payload.push({attrId: attribute.ID, attrData: value, dataType: attribute.type});
374
385
  } else if (!Number.isNaN(Number(nameOrID))) {
375
386
  payload.push({attrId: Number(nameOrID), attrData: value.value, dataType: value.type});
@@ -378,11 +389,11 @@ export class Endpoint extends Entity {
378
389
  }
379
390
  }
380
391
 
381
- await this.zclCommand(clusterKey, "report", payload, options, attributes);
392
+ await this.zclCommand(cluster, "report", payload, options, attributes);
382
393
  }
383
394
 
384
395
  public async write(clusterKey: number | string, attributes: KeyValue, options?: Options): Promise<void> {
385
- const cluster = this.getCluster(clusterKey);
396
+ const cluster = this.getCluster(clusterKey, undefined, options?.manufacturerCode);
386
397
  const optionsWithDefaults = this.getOptionsWithDefaults(options, true, Zcl.Direction.CLIENT_TO_SERVER, cluster.manufacturerCode);
387
398
  optionsWithDefaults.manufacturerCode = this.ensureManufacturerCodeIsUniqueAndGet(
388
399
  cluster,
@@ -393,8 +404,9 @@ export class Endpoint extends Entity {
393
404
 
394
405
  const payload: {attrId: number; dataType: number; attrData: number | string | boolean}[] = [];
395
406
  for (const [nameOrID, value] of Object.entries(attributes)) {
396
- if (cluster.hasAttribute(nameOrID)) {
397
- const attribute = cluster.getAttribute(nameOrID);
407
+ const attribute = cluster.getAttribute(nameOrID);
408
+
409
+ if (attribute) {
398
410
  payload.push({attrId: attribute.ID, attrData: value, dataType: attribute.type});
399
411
  } else if (!Number.isNaN(Number(nameOrID))) {
400
412
  payload.push({attrId: Number(nameOrID), attrData: value.value, dataType: value.type});
@@ -403,7 +415,7 @@ export class Endpoint extends Entity {
403
415
  }
404
416
  }
405
417
 
406
- await this.zclCommand(clusterKey, optionsWithDefaults.writeUndiv ? "writeUndiv" : "write", payload, optionsWithDefaults, attributes, true);
418
+ await this.zclCommand(cluster, optionsWithDefaults.writeUndiv ? "writeUndiv" : "write", payload, optionsWithDefaults, attributes, true);
407
419
  }
408
420
 
409
421
  public async writeResponse(
@@ -413,13 +425,14 @@ export class Endpoint extends Entity {
413
425
  options?: Options,
414
426
  ): Promise<void> {
415
427
  assert(options?.transactionSequenceNumber === undefined, "Use parameter");
416
- const cluster = this.getCluster(clusterKey);
428
+ const cluster = this.getCluster(clusterKey, undefined, options?.manufacturerCode);
417
429
  const payload: {status: number; attrId: number}[] = [];
418
430
 
419
431
  for (const [nameOrID, value] of Object.entries(attributes)) {
420
432
  if (value.status !== undefined) {
421
- if (cluster.hasAttribute(nameOrID)) {
422
- const attribute = cluster.getAttribute(nameOrID);
433
+ const attribute = cluster.getAttribute(nameOrID);
434
+
435
+ if (attribute) {
423
436
  payload.push({attrId: attribute.ID, status: value.status});
424
437
  } else if (!Number.isNaN(Number(nameOrID))) {
425
438
  payload.push({attrId: Number(nameOrID), status: value.status});
@@ -432,7 +445,7 @@ export class Endpoint extends Entity {
432
445
  }
433
446
 
434
447
  await this.zclCommand(
435
- clusterKey,
448
+ cluster,
436
449
  "writeRsp",
437
450
  payload,
438
451
  {direction: Zcl.Direction.SERVER_TO_CLIENT, ...options, transactionSequenceNumber},
@@ -442,7 +455,7 @@ export class Endpoint extends Entity {
442
455
 
443
456
  public async read(clusterKey: number | string, attributes: (string | number)[], options?: Options): Promise<KeyValue> {
444
457
  const device = this.getDevice();
445
- const cluster = this.getCluster(clusterKey, device);
458
+ const cluster = this.getCluster(clusterKey, device, options?.manufacturerCode);
446
459
  const optionsWithDefaults = this.getOptionsWithDefaults(options, true, Zcl.Direction.CLIENT_TO_SERVER, cluster.manufacturerCode);
447
460
  optionsWithDefaults.manufacturerCode = this.ensureManufacturerCodeIsUniqueAndGet(
448
461
  cluster,
@@ -450,13 +463,23 @@ export class Endpoint extends Entity {
450
463
  optionsWithDefaults.manufacturerCode,
451
464
  "read",
452
465
  );
453
-
454
466
  const payload: {attrId: number}[] = [];
467
+
455
468
  for (const attribute of attributes) {
456
- payload.push({attrId: typeof attribute === "number" ? attribute : cluster.getAttribute(attribute).ID});
469
+ if (typeof attribute === "number") {
470
+ payload.push({attrId: attribute});
471
+ } else {
472
+ const attr = cluster.getAttribute(attribute);
473
+
474
+ if (attr) {
475
+ payload.push({attrId: attr.ID});
476
+ } else {
477
+ logger.warning(`Ignoring unknown attribute ${attribute} in cluster ${cluster.name}`, NS);
478
+ }
479
+ }
457
480
  }
458
481
 
459
- const resultFrame = await this.zclCommand(clusterKey, "read", payload, optionsWithDefaults, attributes, true);
482
+ const resultFrame = await this.zclCommand(cluster, "read", payload, optionsWithDefaults, attributes, true);
460
483
 
461
484
  if (resultFrame) {
462
485
  return ZclFrameConverter.attributeKeyValue(resultFrame, device.manufacturerID, device.customClusters);
@@ -473,11 +496,12 @@ export class Endpoint extends Entity {
473
496
  ): Promise<void> {
474
497
  assert(options?.transactionSequenceNumber === undefined, "Use parameter");
475
498
 
476
- const cluster = this.getCluster(clusterKey);
499
+ const cluster = this.getCluster(clusterKey, undefined, options?.manufacturerCode);
477
500
  const payload: {attrId: number; status: number; dataType: number; attrData: number | string}[] = [];
478
501
  for (const [nameOrID, value] of Object.entries(attributes)) {
479
- if (cluster.hasAttribute(nameOrID)) {
480
- const attribute = cluster.getAttribute(nameOrID);
502
+ const attribute = cluster.getAttribute(nameOrID);
503
+
504
+ if (attribute) {
481
505
  payload.push({attrId: attribute.ID, attrData: value, dataType: attribute.type, status: 0});
482
506
  } else if (!Number.isNaN(Number(nameOrID))) {
483
507
  payload.push({attrId: Number(nameOrID), attrData: value.value, dataType: value.type, status: 0});
@@ -487,7 +511,7 @@ export class Endpoint extends Entity {
487
511
  }
488
512
 
489
513
  await this.zclCommand(
490
- clusterKey,
514
+ cluster,
491
515
  "readRsp",
492
516
  payload,
493
517
  {direction: Zcl.Direction.SERVER_TO_CLIENT, ...options, transactionSequenceNumber},
@@ -672,7 +696,7 @@ export class Endpoint extends Entity {
672
696
  }
673
697
 
674
698
  public async configureReporting(clusterKey: number | string, items: ConfigureReportingItem[], options?: Options): Promise<void> {
675
- const cluster = this.getCluster(clusterKey);
699
+ const cluster = this.getCluster(clusterKey, undefined, options?.manufacturerCode);
676
700
  const optionsWithDefaults = this.getOptionsWithDefaults(options, true, Zcl.Direction.CLIENT_TO_SERVER, cluster.manufacturerCode);
677
701
  optionsWithDefaults.manufacturerCode = this.ensureManufacturerCodeIsUniqueAndGet(
678
702
  cluster,
@@ -688,10 +712,13 @@ export class Endpoint extends Entity {
688
712
  if (typeof item.attribute === "object") {
689
713
  dataType = item.attribute.type;
690
714
  attrId = item.attribute.ID;
691
- } else if (cluster.hasAttribute(item.attribute)) {
715
+ } else {
692
716
  const attribute = cluster.getAttribute(item.attribute);
693
- dataType = attribute.type;
694
- attrId = attribute.ID;
717
+
718
+ if (attribute) {
719
+ dataType = attribute.type;
720
+ attrId = attribute.ID;
721
+ }
695
722
  }
696
723
 
697
724
  return {
@@ -704,7 +731,7 @@ export class Endpoint extends Entity {
704
731
  };
705
732
  });
706
733
 
707
- await this.zclCommand(clusterKey, "configReport", payload, optionsWithDefaults, items, true);
734
+ await this.zclCommand(cluster, "configReport", payload, optionsWithDefaults, items, true);
708
735
 
709
736
  for (const e of payload) {
710
737
  this._configuredReportings = this._configuredReportings.filter(
@@ -760,7 +787,7 @@ export class Endpoint extends Entity {
760
787
  assert(options?.transactionSequenceNumber === undefined, "Use parameter");
761
788
 
762
789
  const device = this.getDevice();
763
- const cluster = this.getCluster(clusterKey, device);
790
+ const cluster = this.getCluster(clusterKey, device, options?.manufacturerCode);
764
791
  const command = cluster.getCommandResponse(commandKey);
765
792
  transactionSequenceNumber = transactionSequenceNumber || zclTransactionSequenceNumber.next();
766
793
  const optionsWithDefaults = this.getOptionsWithDefaults(options, true, Zcl.Direction.SERVER_TO_CLIENT, cluster.manufacturerCode);
@@ -771,8 +798,8 @@ export class Endpoint extends Entity {
771
798
  optionsWithDefaults.disableDefaultResponse,
772
799
  optionsWithDefaults.manufacturerCode,
773
800
  transactionSequenceNumber,
774
- command.name,
775
- cluster.name,
801
+ command,
802
+ cluster,
776
803
  payload,
777
804
  device.customClusters,
778
805
  optionsWithDefaults.reservedBits,
@@ -890,8 +917,9 @@ export class Endpoint extends Entity {
890
917
  }
891
918
 
892
919
  // we fall back to caller|cluster provided manufacturerCode
893
- if (cluster.hasAttribute(attributeID)) {
894
- const attribute = cluster.getAttribute(attributeID);
920
+ const attribute = cluster.getAttribute(attributeID);
921
+
922
+ if (attribute) {
895
923
  return attribute.manufacturerCode === undefined ? fallbackManufacturerCode : attribute.manufacturerCode;
896
924
  }
897
925
 
@@ -912,12 +940,16 @@ export class Endpoint extends Entity {
912
940
  group.addMember(this);
913
941
  }
914
942
 
915
- private getCluster(clusterKey: number | string, device: Device | undefined = undefined): ZclTypes.Cluster {
943
+ private getCluster(
944
+ clusterKey: number | string,
945
+ device: Device | undefined = undefined,
946
+ manufacturerCode: number | undefined = undefined,
947
+ ): ZclTypes.Cluster {
916
948
  if (!device) {
917
949
  device = this.getDevice();
918
950
  }
919
951
 
920
- return Zcl.Utils.getCluster(clusterKey, device.manufacturerID, device.customClusters);
952
+ return Zcl.Utils.getCluster(clusterKey, manufacturerCode ?? device.manufacturerID, device.customClusters);
921
953
  }
922
954
 
923
955
  /**
@@ -946,8 +978,8 @@ export class Endpoint extends Entity {
946
978
  }
947
979
 
948
980
  public async zclCommand(
949
- clusterKey: number | string,
950
- commandKey: number | string,
981
+ clusterKey: number | string | ZclTypes.Cluster,
982
+ commandKey: number | string | ZclTypes.Command,
951
983
  payload: KeyValue,
952
984
  options?: Options,
953
985
  logPayload?: KeyValue,
@@ -955,8 +987,13 @@ export class Endpoint extends Entity {
955
987
  frameType: Zcl.FrameType = Zcl.FrameType.GLOBAL,
956
988
  ): Promise<undefined | Zcl.Frame> {
957
989
  const device = this.getDevice();
958
- const cluster = this.getCluster(clusterKey, device);
959
- const command = frameType === Zcl.FrameType.GLOBAL ? Zcl.Utils.getGlobalCommand(commandKey) : cluster.getCommand(commandKey);
990
+ const cluster = typeof clusterKey === "object" ? clusterKey : this.getCluster(clusterKey, device, options?.manufacturerCode);
991
+ const command =
992
+ typeof commandKey === "object"
993
+ ? commandKey
994
+ : frameType === Zcl.FrameType.GLOBAL
995
+ ? Zcl.Utils.getGlobalCommand(commandKey)
996
+ : cluster.getCommand(commandKey);
960
997
  const hasResponse = frameType === Zcl.FrameType.GLOBAL ? true : command.response !== undefined;
961
998
  const optionsWithDefaults = this.getOptionsWithDefaults(options, hasResponse, Zcl.Direction.CLIENT_TO_SERVER, cluster.manufacturerCode);
962
999
 
@@ -966,8 +1003,8 @@ export class Endpoint extends Entity {
966
1003
  optionsWithDefaults.disableDefaultResponse,
967
1004
  optionsWithDefaults.manufacturerCode,
968
1005
  optionsWithDefaults.transactionSequenceNumber ?? zclTransactionSequenceNumber.next(),
969
- command.name,
970
- cluster.name,
1006
+ command,
1007
+ cluster,
971
1008
  payload,
972
1009
  device.customClusters,
973
1010
  optionsWithDefaults.reservedBits,
@@ -1006,7 +1043,7 @@ export class Endpoint extends Entity {
1006
1043
  options?: Options,
1007
1044
  ): Promise<void> {
1008
1045
  const device = this.getDevice();
1009
- const cluster = this.getCluster(clusterKey, device);
1046
+ const cluster = this.getCluster(clusterKey, device, options?.manufacturerCode);
1010
1047
  const command = cluster.getCommand(commandKey);
1011
1048
  const optionsWithDefaults = this.getOptionsWithDefaults(options, true, Zcl.Direction.CLIENT_TO_SERVER, cluster.manufacturerCode);
1012
1049
  const sourceEndpoint = optionsWithDefaults.srcEndpoint ?? this.ID;
@@ -1017,8 +1054,8 @@ export class Endpoint extends Entity {
1017
1054
  true,
1018
1055
  optionsWithDefaults.manufacturerCode,
1019
1056
  optionsWithDefaults.transactionSequenceNumber ?? zclTransactionSequenceNumber.next(),
1020
- command.name,
1021
- cluster.name,
1057
+ command,
1058
+ cluster,
1022
1059
  payload,
1023
1060
  device.customClusters,
1024
1061
  optionsWithDefaults.reservedBits,
@@ -255,14 +255,15 @@ export class Group extends Entity {
255
255
  */
256
256
 
257
257
  public async write(clusterKey: number | string, attributes: KeyValue, options?: Options): Promise<void> {
258
- const optionsWithDefaults = this.getOptionsWithDefaults(options, Zcl.Direction.CLIENT_TO_SERVER);
259
- const customClusters = this.#customClusters[optionsWithDefaults.direction === Zcl.Direction.CLIENT_TO_SERVER ? 0 : 1];
260
- const cluster = Zcl.Utils.getCluster(clusterKey, undefined, customClusters);
258
+ const customClusters = this.#customClusters[options?.direction === Zcl.Direction.SERVER_TO_CLIENT ? 1 : 0 /* default to CLIENT_TO_SERVER */];
259
+ const cluster = Zcl.Utils.getCluster(clusterKey, options?.manufacturerCode, customClusters);
260
+ const optionsWithDefaults = this.getOptionsWithDefaults(options, Zcl.Direction.CLIENT_TO_SERVER, cluster.manufacturerCode);
261
261
  const payload: {attrId: number; dataType: number; attrData: number | string | boolean}[] = [];
262
262
 
263
263
  for (const [nameOrID, value] of Object.entries(attributes)) {
264
- if (cluster.hasAttribute(nameOrID)) {
265
- const attribute = cluster.getAttribute(nameOrID);
264
+ const attribute = cluster.getAttribute(nameOrID);
265
+
266
+ if (attribute) {
266
267
  payload.push({attrId: attribute.ID, attrData: value, dataType: attribute.type});
267
268
  } else if (!Number.isNaN(Number(nameOrID))) {
268
269
  payload.push({attrId: Number(nameOrID), attrData: value.value, dataType: value.type});
@@ -283,7 +284,7 @@ export class Group extends Entity {
283
284
  optionsWithDefaults.manufacturerCode,
284
285
  optionsWithDefaults.transactionSequenceNumber ?? zclTransactionSequenceNumber.next(),
285
286
  "write",
286
- cluster.ID,
287
+ cluster,
287
288
  payload,
288
289
  customClusters,
289
290
  optionsWithDefaults.reservedBits,
@@ -302,13 +303,23 @@ export class Group extends Entity {
302
303
  }
303
304
 
304
305
  public async read(clusterKey: number | string, attributes: (string | number)[], options?: Options): Promise<void> {
305
- const optionsWithDefaults = this.getOptionsWithDefaults(options, Zcl.Direction.CLIENT_TO_SERVER);
306
- const customClusters = this.#customClusters[optionsWithDefaults.direction === Zcl.Direction.CLIENT_TO_SERVER ? 0 : 1];
307
- const cluster = Zcl.Utils.getCluster(clusterKey, undefined, customClusters);
306
+ const customClusters = this.#customClusters[options?.direction === Zcl.Direction.SERVER_TO_CLIENT ? 1 : 0 /* default to CLIENT_TO_SERVER */];
307
+ const cluster = Zcl.Utils.getCluster(clusterKey, options?.manufacturerCode, customClusters);
308
+ const optionsWithDefaults = this.getOptionsWithDefaults(options, Zcl.Direction.CLIENT_TO_SERVER, cluster.manufacturerCode);
308
309
  const payload: {attrId: number}[] = [];
309
310
 
310
311
  for (const attribute of attributes) {
311
- payload.push({attrId: typeof attribute === "number" ? attribute : cluster.getAttribute(attribute).ID});
312
+ if (typeof attribute === "number") {
313
+ payload.push({attrId: attribute});
314
+ } else {
315
+ const attr = cluster.getAttribute(attribute);
316
+
317
+ if (attr) {
318
+ payload.push({attrId: attr.ID});
319
+ } else {
320
+ logger.warning(`Ignoring unknown attribute ${attribute} in cluster ${cluster.name}`, NS);
321
+ }
322
+ }
312
323
  }
313
324
 
314
325
  const frame = Zcl.Frame.create(
@@ -318,7 +329,7 @@ export class Group extends Entity {
318
329
  optionsWithDefaults.manufacturerCode,
319
330
  optionsWithDefaults.transactionSequenceNumber ?? zclTransactionSequenceNumber.next(),
320
331
  "read",
321
- cluster.ID,
332
+ cluster,
322
333
  payload,
323
334
  customClusters,
324
335
  optionsWithDefaults.reservedBits,
@@ -342,9 +353,9 @@ export class Group extends Entity {
342
353
  }
343
354
 
344
355
  public async command(clusterKey: number | string, commandKey: number | string, payload: KeyValue, options?: Options): Promise<void> {
345
- const optionsWithDefaults = this.getOptionsWithDefaults(options, Zcl.Direction.CLIENT_TO_SERVER);
346
- const customClusters = this.#customClusters[optionsWithDefaults.direction === Zcl.Direction.CLIENT_TO_SERVER ? 0 : 1];
347
- const cluster = Zcl.Utils.getCluster(clusterKey, undefined, customClusters);
356
+ const customClusters = this.#customClusters[options?.direction === Zcl.Direction.SERVER_TO_CLIENT ? 1 : 0 /* default to CLIENT_TO_SERVER */];
357
+ const cluster = Zcl.Utils.getCluster(clusterKey, options?.manufacturerCode, customClusters);
358
+ const optionsWithDefaults = this.getOptionsWithDefaults(options, Zcl.Direction.CLIENT_TO_SERVER, cluster.manufacturerCode);
348
359
  const command =
349
360
  optionsWithDefaults.direction === Zcl.Direction.CLIENT_TO_SERVER
350
361
  ? cluster.getCommand(commandKey)
@@ -360,8 +371,8 @@ export class Group extends Entity {
360
371
  true,
361
372
  optionsWithDefaults.manufacturerCode,
362
373
  optionsWithDefaults.transactionSequenceNumber || zclTransactionSequenceNumber.next(),
363
- command.ID,
364
- cluster.ID,
374
+ command,
375
+ cluster,
365
376
  payload,
366
377
  customClusters,
367
378
  optionsWithDefaults.reservedBits,
@@ -379,12 +390,16 @@ export class Group extends Entity {
379
390
  }
380
391
  }
381
392
 
382
- private getOptionsWithDefaults(options: Options | undefined, direction: Zcl.Direction): OptionsWithDefaults {
393
+ private getOptionsWithDefaults(
394
+ options: Options | undefined,
395
+ direction: Zcl.Direction,
396
+ manufacturerCode: number | undefined,
397
+ ): OptionsWithDefaults {
383
398
  return {
384
399
  direction,
385
400
  srcEndpoint: undefined,
386
401
  reservedBits: 0,
387
- manufacturerCode: undefined,
402
+ manufacturerCode,
388
403
  transactionSequenceNumber: undefined,
389
404
  ...(options || {}),
390
405
  };