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.
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +18 -0
- package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.js +2 -14
- package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
- package/dist/controller/model/device.js +3 -5
- package/dist/controller/model/device.js.map +1 -1
- package/dist/controller/model/endpoint.d.ts +1 -1
- package/dist/controller/model/endpoint.d.ts.map +1 -1
- package/dist/controller/model/endpoint.js +67 -43
- package/dist/controller/model/endpoint.js.map +1 -1
- package/dist/controller/model/group.d.ts.map +1 -1
- package/dist/controller/model/group.js +28 -17
- package/dist/controller/model/group.js.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.js +5 -5
- package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
- package/dist/zspec/zcl/definition/tstype.d.ts +1 -2
- package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
- package/dist/zspec/zcl/utils.d.ts.map +1 -1
- package/dist/zspec/zcl/utils.js +8 -30
- package/dist/zspec/zcl/utils.js.map +1 -1
- package/dist/zspec/zcl/zclFrame.d.ts +1 -1
- package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
- package/dist/zspec/zcl/zclFrame.js +8 -6
- package/dist/zspec/zcl/zclFrame.js.map +1 -1
- package/package.json +2 -2
- package/src/controller/helpers/zclFrameConverter.ts +4 -12
- package/src/controller/model/device.ts +5 -5
- package/src/controller/model/endpoint.ts +86 -49
- package/src/controller/model/group.ts +33 -18
- package/src/zspec/zcl/buffaloZcl.ts +6 -4
- package/src/zspec/zcl/definition/tstype.ts +1 -2
- package/src/zspec/zcl/utils.ts +8 -35
- package/src/zspec/zcl/zclFrame.ts +10 -8
- package/test/controller.test.ts +352 -1360
- package/test/requests.bench.ts +5 -0
- package/test/zcl.test.ts +11 -15
- package/test/zspec/zcl/frame.test.ts +25 -25
- 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":";;AAqEA,4CAUC;
|
|
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,
|
|
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 =
|
|
69
|
-
?
|
|
70
|
-
:
|
|
71
|
-
?
|
|
72
|
-
:
|
|
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.
|
|
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": "
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
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.
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
|
|
282
|
-
this.clusters[cluster.name]
|
|
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
|
-
|
|
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
|
-
|
|
372
|
-
|
|
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(
|
|
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
|
-
|
|
397
|
-
|
|
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(
|
|
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
|
-
|
|
422
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
480
|
-
|
|
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
|
-
|
|
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
|
|
715
|
+
} else {
|
|
692
716
|
const attribute = cluster.getAttribute(item.attribute);
|
|
693
|
-
|
|
694
|
-
|
|
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(
|
|
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
|
|
775
|
-
cluster
|
|
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
|
-
|
|
894
|
-
|
|
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(
|
|
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 =
|
|
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
|
|
970
|
-
cluster
|
|
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
|
|
1021
|
-
cluster
|
|
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
|
|
259
|
-
const
|
|
260
|
-
const
|
|
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
|
-
|
|
265
|
-
|
|
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
|
|
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
|
|
306
|
-
const
|
|
307
|
-
const
|
|
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
|
-
|
|
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
|
|
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
|
|
346
|
-
const
|
|
347
|
-
const
|
|
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
|
|
364
|
-
cluster
|
|
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(
|
|
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
|
|
402
|
+
manufacturerCode,
|
|
388
403
|
transactionSequenceNumber: undefined,
|
|
389
404
|
...(options || {}),
|
|
390
405
|
};
|