zigbee-herdsman 6.0.0 → 6.0.2

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 (96) hide show
  1. package/.github/workflows/ci.yml +10 -5
  2. package/.github/workflows/typedoc.yaml +2 -2
  3. package/.release-please-manifest.json +1 -1
  4. package/CHANGELOG.md +19 -0
  5. package/biome.json +1 -1
  6. package/dist/adapter/ezsp/driver/uart.js +1 -1
  7. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  8. package/dist/adapter/z-stack/adapter/zStackAdapter.js +4 -4
  9. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  10. package/dist/adapter/zigate/adapter/zigateAdapter.js +4 -4
  11. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  12. package/dist/controller/controller.d.ts.map +1 -1
  13. package/dist/controller/controller.js +7 -10
  14. package/dist/controller/controller.js.map +1 -1
  15. package/dist/controller/events.d.ts +1 -1
  16. package/dist/controller/events.d.ts.map +1 -1
  17. package/dist/controller/helpers/request.d.ts.map +1 -1
  18. package/dist/controller/helpers/request.js +2 -1
  19. package/dist/controller/helpers/request.js.map +1 -1
  20. package/dist/controller/helpers/zclFrameConverter.d.ts +2 -4
  21. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  22. package/dist/controller/helpers/zclFrameConverter.js +2 -0
  23. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  24. package/dist/controller/model/device.d.ts +13 -24
  25. package/dist/controller/model/device.d.ts.map +1 -1
  26. package/dist/controller/model/device.js +89 -129
  27. package/dist/controller/model/device.js.map +1 -1
  28. package/dist/controller/model/endpoint.d.ts +17 -16
  29. package/dist/controller/model/endpoint.d.ts.map +1 -1
  30. package/dist/controller/model/endpoint.js +31 -16
  31. package/dist/controller/model/endpoint.js.map +1 -1
  32. package/dist/controller/model/group.d.ts +6 -6
  33. package/dist/controller/model/group.d.ts.map +1 -1
  34. package/dist/controller/model/group.js +5 -3
  35. package/dist/controller/model/group.js.map +1 -1
  36. package/dist/controller/model/index.d.ts +1 -0
  37. package/dist/controller/model/index.d.ts.map +1 -1
  38. package/dist/controller/model/index.js +3 -1
  39. package/dist/controller/model/index.js.map +1 -1
  40. package/dist/controller/model/zigbeeEntity.d.ts +8 -0
  41. package/dist/controller/model/zigbeeEntity.d.ts.map +1 -0
  42. package/dist/controller/model/zigbeeEntity.js +11 -0
  43. package/dist/controller/model/zigbeeEntity.js.map +1 -0
  44. package/dist/controller/tstype.d.ts +22 -0
  45. package/dist/controller/tstype.d.ts.map +1 -1
  46. package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
  47. package/dist/zspec/zcl/definition/cluster.js +2 -9
  48. package/dist/zspec/zcl/definition/cluster.js.map +1 -1
  49. package/dist/zspec/zcl/definition/clusters-typegen.js +61 -13
  50. package/dist/zspec/zcl/definition/clusters-typegen.js.map +1 -1
  51. package/dist/zspec/zcl/definition/clusters-types.d.ts +173 -140
  52. package/dist/zspec/zcl/definition/clusters-types.d.ts.map +1 -1
  53. package/dist/zspec/zcl/definition/enums.d.ts +10 -0
  54. package/dist/zspec/zcl/definition/enums.d.ts.map +1 -1
  55. package/dist/zspec/zcl/definition/enums.js +12 -1
  56. package/dist/zspec/zcl/definition/enums.js.map +1 -1
  57. package/dist/zspec/zcl/definition/tstype.d.ts +1 -1
  58. package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
  59. package/dist/zspec/zcl/index.d.ts +1 -0
  60. package/dist/zspec/zcl/index.d.ts.map +1 -1
  61. package/dist/zspec/zcl/index.js.map +1 -1
  62. package/dist/zspec/zcl/utils.d.ts +1 -1
  63. package/dist/zspec/zcl/utils.d.ts.map +1 -1
  64. package/dist/zspec/zcl/utils.js +1 -1
  65. package/dist/zspec/zcl/utils.js.map +1 -1
  66. package/package.json +3 -4
  67. package/src/adapter/ezsp/driver/driver.ts +1 -1
  68. package/src/adapter/ezsp/driver/uart.ts +1 -1
  69. package/src/adapter/z-stack/adapter/zStackAdapter.ts +4 -4
  70. package/src/adapter/zigate/adapter/zigateAdapter.ts +4 -4
  71. package/src/controller/controller.ts +11 -15
  72. package/src/controller/events.ts +1 -1
  73. package/src/controller/helpers/request.ts +3 -1
  74. package/src/controller/helpers/zclFrameConverter.ts +13 -17
  75. package/src/controller/model/device.ts +104 -148
  76. package/src/controller/model/endpoint.ts +112 -64
  77. package/src/controller/model/group.ts +33 -9
  78. package/src/controller/model/index.ts +1 -0
  79. package/src/controller/model/zigbeeEntity.ts +30 -0
  80. package/src/controller/tstype.ts +234 -0
  81. package/src/zspec/zcl/definition/cluster.ts +2 -9
  82. package/src/zspec/zcl/definition/clusters-typegen.ts +96 -19
  83. package/src/zspec/zcl/definition/clusters-types.ts +195 -146
  84. package/src/zspec/zcl/definition/enums.ts +11 -0
  85. package/src/zspec/zcl/definition/tstype.ts +0 -1
  86. package/src/zspec/zcl/index.ts +1 -0
  87. package/src/zspec/zcl/utils.ts +1 -1
  88. package/test/adapter/ezsp/uart.test.ts +2 -2
  89. package/test/adapter/z-stack/znp.test.ts +4 -4
  90. package/test/benchOptions.ts +14 -0
  91. package/test/controller.bench.ts +96 -75
  92. package/test/controller.test.ts +296 -98
  93. package/test/requests.bench.ts +37 -14
  94. package/test/vitest.config.mts +1 -2
  95. package/test/zcl.test.ts +1 -1
  96. package/test/zspec/zcl/utils.test.ts +4 -4
@@ -2,12 +2,16 @@ import type {
2
2
  ExtensionFieldSet,
3
3
  Gpd,
4
4
  GpdAttributeReport,
5
+ GpdChannelConfiguration,
5
6
  GpdChannelRequest,
7
+ GpdCommissioningReply,
8
+ GpdCustomReply,
6
9
  MiboxerZone,
7
10
  Struct,
8
11
  StructuredSelector,
9
12
  ThermoTransition,
10
13
  TuyaDataPointValue,
14
+ ZclArray,
11
15
  ZoneInfo,
12
16
  } from "./tstype";
13
17
 
@@ -402,11 +406,11 @@ export interface TClusters {
402
406
  groupid: number;
403
407
  /** Type: UINT8 */
404
408
  sceneid: number;
405
- /** Type: UINT16 */
409
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
406
410
  transtime?: number;
407
- /** Type: CHAR_STR */
411
+ /** Type: CHAR_STR, Conditions: [{fieldEquals field=status value=0}] */
408
412
  scenename?: string;
409
- /** Type: EXTENSION_FIELD_SETS */
413
+ /** Type: EXTENSION_FIELD_SETS, Conditions: [{fieldEquals field=status value=0}] */
410
414
  extensionfieldsets?: ExtensionFieldSet[];
411
415
  };
412
416
  /** ID: 2 */
@@ -442,9 +446,9 @@ export interface TClusters {
442
446
  capacity: number;
443
447
  /** Type: UINT16 */
444
448
  groupid: number;
445
- /** Type: UINT8 */
449
+ /** Type: UINT8, Conditions: [{fieldEquals field=status value=0}] */
446
450
  scenecount?: number;
447
- /** Type: LIST_UINT8 */
451
+ /** Type: LIST_UINT8, Conditions: [{fieldEquals field=status value=0}] */
448
452
  scenelist?: number[];
449
453
  };
450
454
  /** ID: 64 */
@@ -464,11 +468,11 @@ export interface TClusters {
464
468
  groupid: number;
465
469
  /** Type: UINT8 */
466
470
  sceneid: number;
467
- /** Type: UINT16 */
471
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
468
472
  transtime?: number;
469
- /** Type: CHAR_STR */
473
+ /** Type: CHAR_STR, Conditions: [{fieldEquals field=status value=0}] */
470
474
  scenename?: string;
471
- /** Type: EXTENSION_FIELD_SETS */
475
+ /** Type: EXTENSION_FIELD_SETS, Conditions: [{fieldEquals field=status value=0}] */
472
476
  extensionfieldsets?: ExtensionFieldSet[];
473
477
  };
474
478
  /** ID: 66 */
@@ -914,7 +918,7 @@ export interface TClusters {
914
918
  /** ID: 85 | Type: SINGLE_PREC */
915
919
  presentValue: number;
916
920
  /** ID: 87 | Type: ARRAY */
917
- priorityArray: unknown[];
921
+ priorityArray: ZclArray | unknown[];
918
922
  /** ID: 103 | Type: ENUM8 */
919
923
  reliability: number;
920
924
  /** ID: 104 | Type: SINGLE_PREC */
@@ -940,7 +944,7 @@ export interface TClusters {
940
944
  /** ID: 85 | Type: SINGLE_PREC */
941
945
  presentValue: number;
942
946
  /** ID: 87 | Type: ARRAY */
943
- priorityArray: unknown[];
947
+ priorityArray: ZclArray | unknown[];
944
948
  /** ID: 103 | Type: ENUM8 */
945
949
  reliability: number;
946
950
  /** ID: 104 | Type: SINGLE_PREC */
@@ -998,7 +1002,7 @@ export interface TClusters {
998
1002
  /** ID: 85 | Type: BOOLEAN */
999
1003
  presentValue: number;
1000
1004
  /** ID: 87 | Type: ARRAY */
1001
- priorityArray: unknown[];
1005
+ priorityArray: ZclArray | unknown[];
1002
1006
  /** ID: 103 | Type: ENUM8 */
1003
1007
  reliability: number;
1004
1008
  /** ID: 104 | Type: BOOLEAN */
@@ -1028,7 +1032,7 @@ export interface TClusters {
1028
1032
  /** ID: 85 | Type: BOOLEAN */
1029
1033
  presentValue: number;
1030
1034
  /** ID: 87 | Type: ARRAY */
1031
- priorityArray: unknown[];
1035
+ priorityArray: ZclArray | unknown[];
1032
1036
  /** ID: 103 | Type: ENUM8 */
1033
1037
  reliability: number;
1034
1038
  /** ID: 104 | Type: BOOLEAN */
@@ -1044,7 +1048,7 @@ export interface TClusters {
1044
1048
  genMultistateInput: {
1045
1049
  attributes: {
1046
1050
  /** ID: 14 | Type: ARRAY */
1047
- stateText: unknown[];
1051
+ stateText: ZclArray | unknown[];
1048
1052
  /** ID: 28 | Type: CHAR_STR */
1049
1053
  description: string;
1050
1054
  /** ID: 74 | Type: UINT16 */
@@ -1066,7 +1070,7 @@ export interface TClusters {
1066
1070
  genMultistateOutput: {
1067
1071
  attributes: {
1068
1072
  /** ID: 14 | Type: ARRAY */
1069
- stateText: unknown[];
1073
+ stateText: ZclArray | unknown[];
1070
1074
  /** ID: 28 | Type: CHAR_STR */
1071
1075
  description: string;
1072
1076
  /** ID: 74 | Type: UINT16 */
@@ -1076,7 +1080,7 @@ export interface TClusters {
1076
1080
  /** ID: 85 | Type: UINT16 */
1077
1081
  presentValue: number;
1078
1082
  /** ID: 87 | Type: ARRAY */
1079
- priorityArray: unknown[];
1083
+ priorityArray: ZclArray | unknown[];
1080
1084
  /** ID: 103 | Type: ENUM8 */
1081
1085
  reliability: number;
1082
1086
  /** ID: 104 | Type: UINT16 */
@@ -1092,7 +1096,7 @@ export interface TClusters {
1092
1096
  genMultistateValue: {
1093
1097
  attributes: {
1094
1098
  /** ID: 14 | Type: ARRAY */
1095
- stateText: unknown[];
1099
+ stateText: ZclArray | unknown[];
1096
1100
  /** ID: 28 | Type: CHAR_STR */
1097
1101
  description: string;
1098
1102
  /** ID: 74 | Type: UINT16 */
@@ -1102,7 +1106,7 @@ export interface TClusters {
1102
1106
  /** ID: 85 | Type: UINT16 */
1103
1107
  presentValue: number;
1104
1108
  /** ID: 87 | Type: ARRAY */
1105
- priorityArray: unknown[];
1109
+ priorityArray: ZclArray | unknown[];
1106
1110
  /** ID: 103 | Type: ENUM8 */
1107
1111
  reliability: number;
1108
1112
  /** ID: 104 | Type: UINT16 */
@@ -1257,7 +1261,7 @@ export interface TClusters {
1257
1261
  imageType: number;
1258
1262
  /** Type: UINT32 */
1259
1263
  fileVersion: number;
1260
- /** Type: UINT16 */
1264
+ /** Type: UINT16, Conditions: [{bitMaskSet param=fieldControl mask=1}] */
1261
1265
  hardwareVersion?: number;
1262
1266
  };
1263
1267
  /** ID: 3 | Response ID: 5 */
@@ -1274,9 +1278,9 @@ export interface TClusters {
1274
1278
  fileOffset: number;
1275
1279
  /** Type: UINT8 */
1276
1280
  maximumDataSize: number;
1277
- /** Type: IEEE_ADDR */
1281
+ /** Type: IEEE_ADDR, Conditions: [{bitMaskSet param=fieldControl mask=1}] */
1278
1282
  requestNodeIeeeAddress?: string;
1279
- /** Type: UINT16 */
1283
+ /** Type: UINT16, Conditions: [{bitMaskSet param=fieldControl mask=2}{minimumRemainingBufferBytes value=2}] */
1280
1284
  minimumBlockPeriod?: number;
1281
1285
  };
1282
1286
  /** ID: 4 | Response ID: 5 */
@@ -1297,7 +1301,7 @@ export interface TClusters {
1297
1301
  pageSize: number;
1298
1302
  /** Type: UINT16 */
1299
1303
  responseSpacing: number;
1300
- /** Type: IEEE_ADDR */
1304
+ /** Type: IEEE_ADDR, Conditions: [{bitMaskSet param=fieldControl mask=1}] */
1301
1305
  requestNodeIeeeAddress?: string;
1302
1306
  };
1303
1307
  /** ID: 6 | Response ID: 7 */
@@ -1311,6 +1315,19 @@ export interface TClusters {
1311
1315
  /** Type: UINT32 */
1312
1316
  fileVersion: number;
1313
1317
  };
1318
+ /** ID: 8 | Response ID: 9 */
1319
+ queryDeviceSpecificFileRequest: {
1320
+ /** Type: IEEE_ADDR */
1321
+ eui64: string;
1322
+ /** Type: UINT16 */
1323
+ manufacturerCode: number;
1324
+ /** Type: UINT16 */
1325
+ imageType: number;
1326
+ /** Type: UINT32 */
1327
+ fileVersion: number;
1328
+ /** Type: UINT16 */
1329
+ zigbeeStackVersion: number;
1330
+ };
1314
1331
  };
1315
1332
  commandResponses: {
1316
1333
  /** ID: 0 */
@@ -1319,36 +1336,48 @@ export interface TClusters {
1319
1336
  payloadType: number;
1320
1337
  /** Type: UINT8 */
1321
1338
  queryJitter: number;
1339
+ /** Type: UINT16, Conditions: [{fieldGT field=payloadType value=0}] */
1340
+ manufacturerCode?: number;
1341
+ /** Type: UINT16, Conditions: [{fieldGT field=payloadType value=1}] */
1342
+ imageType?: number;
1343
+ /** Type: UINT32, Conditions: [{fieldGT field=payloadType value=2}] */
1344
+ fileVersion?: number;
1322
1345
  };
1323
1346
  /** ID: 2 */
1324
1347
  queryNextImageResponse: {
1325
1348
  /** Type: UINT8 */
1326
1349
  status: number;
1327
- /** Type: UINT16 */
1350
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
1328
1351
  manufacturerCode?: number;
1329
- /** Type: UINT16 */
1352
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
1330
1353
  imageType?: number;
1331
- /** Type: UINT32 */
1354
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=0}] */
1332
1355
  fileVersion?: number;
1333
- /** Type: UINT32 */
1356
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=0}] */
1334
1357
  imageSize?: number;
1335
1358
  };
1336
1359
  /** ID: 5 */
1337
1360
  imageBlockResponse: {
1338
1361
  /** Type: UINT8 */
1339
1362
  status: number;
1340
- /** Type: UINT16 */
1341
- manufacturerCode: number;
1342
- /** Type: UINT16 */
1343
- imageType: number;
1344
- /** Type: UINT32 */
1345
- fileVersion: number;
1346
- /** Type: UINT32 */
1347
- fileOffset: number;
1348
- /** Type: UINT8 */
1349
- dataSize: number;
1350
- /** Type: BUFFER */
1351
- data: Buffer;
1363
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
1364
+ manufacturerCode?: number;
1365
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
1366
+ imageType?: number;
1367
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=0}] */
1368
+ fileVersion?: number;
1369
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=0}] */
1370
+ fileOffset?: number;
1371
+ /** Type: UINT8, Conditions: [{fieldEquals field=status value=0}] */
1372
+ dataSize?: number;
1373
+ /** Type: BUFFER, Conditions: [{fieldEquals field=status value=0}] */
1374
+ data?: Buffer;
1375
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=151}] */
1376
+ currentTime?: number;
1377
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=151}] */
1378
+ requestTime?: number;
1379
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=151}] */
1380
+ minimumBlockPeriod?: number;
1352
1381
  };
1353
1382
  /** ID: 7 */
1354
1383
  upgradeEndResponse: {
@@ -1363,6 +1392,19 @@ export interface TClusters {
1363
1392
  /** Type: UINT32 */
1364
1393
  upgradeTime: number;
1365
1394
  };
1395
+ /** ID: 9 */
1396
+ queryDeviceSpecificFileResponse: {
1397
+ /** Type: UINT8 */
1398
+ status: number;
1399
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
1400
+ manufacturerCode?: number;
1401
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
1402
+ imageType?: number;
1403
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=0}] */
1404
+ fileVersion?: number;
1405
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=0}] */
1406
+ imageSize?: number;
1407
+ };
1366
1408
  };
1367
1409
  };
1368
1410
  genPollCtrl: {
@@ -1409,17 +1451,17 @@ export interface TClusters {
1409
1451
  };
1410
1452
  };
1411
1453
  greenPower: {
1412
- attributes: Record<string, never>;
1454
+ attributes: never;
1413
1455
  commands: {
1414
1456
  /** ID: 0 */
1415
1457
  notification: {
1416
1458
  /** Type: BITMAP16 */
1417
1459
  options: number;
1418
- /** Type: UINT32 */
1460
+ /** Type: UINT32, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=0}] */
1419
1461
  srcID?: number;
1420
- /** Type: IEEE_ADDR */
1462
+ /** Type: IEEE_ADDR, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1421
1463
  gpdIEEEAddr?: string;
1422
- /** Type: UINT8 */
1464
+ /** Type: UINT8, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1423
1465
  gpdEndpoint?: number;
1424
1466
  /** Type: UINT32 */
1425
1467
  frameCounter: number;
@@ -1427,7 +1469,7 @@ export interface TClusters {
1427
1469
  commandID: number;
1428
1470
  /** Type: UINT8 */
1429
1471
  payloadSize: number;
1430
- /** Type: GPD_FRAME */
1472
+ /** Type: GPD_FRAME, Conditions: [{bitMaskSet param=options mask=192 reversed=true}] */
1431
1473
  commandFrame?:
1432
1474
  | Gpd
1433
1475
  | GpdChannelRequest
@@ -1435,21 +1477,24 @@ export interface TClusters {
1435
1477
  | {
1436
1478
  raw: Buffer;
1437
1479
  }
1438
- | Record<string, never>;
1439
- /** Type: UINT16 */
1480
+ | Record<string, never>
1481
+ | GpdCommissioningReply
1482
+ | GpdChannelConfiguration
1483
+ | GpdCustomReply;
1484
+ /** Type: UINT16, Conditions: [{bitMaskSet param=options mask=16384}] */
1440
1485
  gppNwkAddr?: number;
1441
- /** Type: BITMAP8 */
1486
+ /** Type: BITMAP8, Conditions: [{bitMaskSet param=options mask=16384}] */
1442
1487
  gppGpdLink?: number;
1443
1488
  };
1444
1489
  /** ID: 4 */
1445
1490
  commissioningNotification: {
1446
1491
  /** Type: BITMAP16 */
1447
1492
  options: number;
1448
- /** Type: UINT32 */
1493
+ /** Type: UINT32, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=0}] */
1449
1494
  srcID?: number;
1450
- /** Type: IEEE_ADDR */
1495
+ /** Type: IEEE_ADDR, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1451
1496
  gpdIEEEAddr?: string;
1452
- /** Type: UINT8 */
1497
+ /** Type: UINT8, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1453
1498
  gpdEndpoint?: number;
1454
1499
  /** Type: UINT32 */
1455
1500
  frameCounter: number;
@@ -1457,7 +1502,7 @@ export interface TClusters {
1457
1502
  commandID: number;
1458
1503
  /** Type: UINT8 */
1459
1504
  payloadSize: number;
1460
- /** Type: GPD_FRAME */
1505
+ /** Type: GPD_FRAME, Conditions: [{bitMaskSet param=options mask=48 reversed=true}{bitMaskSet param=options mask=512 reversed=true}] */
1461
1506
  commandFrame?:
1462
1507
  | Gpd
1463
1508
  | GpdChannelRequest
@@ -1465,12 +1510,15 @@ export interface TClusters {
1465
1510
  | {
1466
1511
  raw: Buffer;
1467
1512
  }
1468
- | Record<string, never>;
1469
- /** Type: UINT16 */
1513
+ | Record<string, never>
1514
+ | GpdCommissioningReply
1515
+ | GpdChannelConfiguration
1516
+ | GpdCustomReply;
1517
+ /** Type: UINT16, Conditions: [{bitMaskSet param=options mask=2048}] */
1470
1518
  gppNwkAddr?: number;
1471
- /** Type: BITMAP8 */
1519
+ /** Type: BITMAP8, Conditions: [{bitMaskSet param=options mask=2048}] */
1472
1520
  gppGpdLink?: number;
1473
- /** Type: UINT32 */
1521
+ /** Type: UINT32, Conditions: [{bitMaskSet param=options mask=512}] */
1474
1522
  mic?: number;
1475
1523
  };
1476
1524
  };
@@ -1483,11 +1531,11 @@ export interface TClusters {
1483
1531
  tempMaster: number;
1484
1532
  /** Type: BITMAP8 */
1485
1533
  tempMasterTx: number;
1486
- /** Type: UINT32 */
1534
+ /** Type: UINT32, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=0}] */
1487
1535
  srcID?: number;
1488
- /** Type: IEEE_ADDR */
1536
+ /** Type: IEEE_ADDR, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1489
1537
  gpdIEEEAddr?: string;
1490
- /** Type: UINT8 */
1538
+ /** Type: UINT8, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1491
1539
  gpdEndpoint?: number;
1492
1540
  /** Type: UINT8 */
1493
1541
  gpdCmd: number;
@@ -1499,42 +1547,45 @@ export interface TClusters {
1499
1547
  | {
1500
1548
  raw: Buffer;
1501
1549
  }
1502
- | Record<string, never>;
1550
+ | Record<string, never>
1551
+ | GpdCommissioningReply
1552
+ | GpdChannelConfiguration
1553
+ | GpdCustomReply;
1503
1554
  };
1504
1555
  /** ID: 1 */
1505
1556
  pairing: {
1506
1557
  /** Type: BITMAP24 */
1507
1558
  options: number;
1508
- /** Type: UINT32 */
1559
+ /** Type: UINT32, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=0}] */
1509
1560
  srcID?: number;
1510
- /** Type: IEEE_ADDR */
1561
+ /** Type: IEEE_ADDR, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1511
1562
  gpdIEEEAddr?: string;
1512
- /** Type: UINT8 */
1563
+ /** Type: UINT8, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1513
1564
  gpdEndpoint?: number;
1514
- /** Type: IEEE_ADDR */
1565
+ /** Type: IEEE_ADDR, Conditions: [{bitFieldEnum param=options offset=4 size=3 value=6}] */
1515
1566
  sinkIEEEAddr?: string;
1516
- /** Type: UINT16 */
1567
+ /** Type: UINT16, Conditions: [{bitFieldEnum param=options offset=4 size=3 value=6}] */
1517
1568
  sinkNwkAddr?: number;
1518
- /** Type: UINT16 */
1569
+ /** Type: UINT16, Conditions: [{bitFieldEnum param=options offset=4 size=3 value=4}] */
1519
1570
  sinkGroupID?: number;
1520
- /** Type: UINT8 */
1571
+ /** Type: UINT8, Conditions: [{bitMaskSet param=options mask=8}] */
1521
1572
  deviceID?: number;
1522
- /** Type: UINT32 */
1573
+ /** Type: UINT32, Conditions: [{bitMaskSet param=options mask=16384}] */
1523
1574
  frameCounter?: number;
1524
- /** Type: SEC_KEY */
1575
+ /** Type: SEC_KEY, Conditions: [{bitMaskSet param=options mask=32768}] */
1525
1576
  gpdKey?: Buffer;
1526
- /** Type: UINT16 */
1577
+ /** Type: UINT16, Conditions: [{bitMaskSet param=options mask=65536}] */
1527
1578
  assignedAlias?: number;
1528
- /** Type: UINT8 */
1579
+ /** Type: UINT8, Conditions: [{bitMaskSet param=options mask=131072}] */
1529
1580
  groupcastRadius?: number;
1530
1581
  };
1531
1582
  /** ID: 2 */
1532
1583
  commisioningMode: {
1533
1584
  /** Type: BITMAP8 */
1534
1585
  options: number;
1535
- /** Type: UINT16 */
1586
+ /** Type: UINT16, Conditions: [{bitMaskSet param=options mask=2}] */
1536
1587
  commisioningWindow?: number;
1537
- /** Type: UINT8 */
1588
+ /** Type: UINT8, Conditions: [{bitMaskSet param=options mask=16}] */
1538
1589
  channel?: number;
1539
1590
  };
1540
1591
  };
@@ -3761,7 +3812,7 @@ export interface TClusters {
3761
3812
  };
3762
3813
  };
3763
3814
  ssIasAce: {
3764
- attributes: Record<string, never>;
3815
+ attributes: never;
3765
3816
  commands: {
3766
3817
  /** ID: 0 | Response ID: 0 */
3767
3818
  arm: {
@@ -3975,7 +4026,7 @@ export interface TClusters {
3975
4026
  };
3976
4027
  };
3977
4028
  piBacnetProtocolTunnel: {
3978
- attributes: Record<string, never>;
4029
+ attributes: never;
3979
4030
  commands: {
3980
4031
  /** ID: 0 */
3981
4032
  transferNpdu: {
@@ -4028,7 +4079,7 @@ export interface TClusters {
4028
4079
  /** ID: 113 | Type: UINT8 */
4029
4080
  timeDelay: number;
4030
4081
  /** ID: 130 | Type: ARRAY */
4031
- eventTimeStamps: unknown[];
4082
+ eventTimeStamps: ZclArray | unknown[];
4032
4083
  };
4033
4084
  commands: {
4034
4085
  /** ID: 0 */
@@ -4085,7 +4136,7 @@ export interface TClusters {
4085
4136
  /** ID: 113 | Type: UINT8 */
4086
4137
  timeDelay: number;
4087
4138
  /** ID: 130 | Type: ARRAY */
4088
- eventTimeStamps: unknown[];
4139
+ eventTimeStamps: ZclArray | unknown[];
4089
4140
  };
4090
4141
  commands: never;
4091
4142
  commandResponses: never;
@@ -4129,7 +4180,7 @@ export interface TClusters {
4129
4180
  /** ID: 113 | Type: UINT8 */
4130
4181
  timeDelay: number;
4131
4182
  /** ID: 130 | Type: ARRAY */
4132
- eventTimeStamps: unknown[];
4183
+ eventTimeStamps: ZclArray | unknown[];
4133
4184
  };
4134
4185
  commands: never;
4135
4186
  commandResponses: never;
@@ -4177,7 +4228,7 @@ export interface TClusters {
4177
4228
  /** ID: 113 | Type: UINT8 */
4178
4229
  timeDelay: number;
4179
4230
  /** ID: 130 | Type: ARRAY */
4180
- eventTimeStamps: unknown[];
4231
+ eventTimeStamps: ZclArray | unknown[];
4181
4232
  };
4182
4233
  commands: never;
4183
4234
  commandResponses: never;
@@ -4225,7 +4276,7 @@ export interface TClusters {
4225
4276
  /** ID: 113 | Type: UINT8 */
4226
4277
  timeDelay: number;
4227
4278
  /** ID: 130 | Type: ARRAY */
4228
- eventTimeStamps: unknown[];
4279
+ eventTimeStamps: ZclArray | unknown[];
4229
4280
  };
4230
4281
  commands: never;
4231
4282
  commandResponses: never;
@@ -4271,7 +4322,7 @@ export interface TClusters {
4271
4322
  /** ID: 113 | Type: UINT8 */
4272
4323
  timeDelay: number;
4273
4324
  /** ID: 130 | Type: ARRAY */
4274
- eventTimeStamps: unknown[];
4325
+ eventTimeStamps: ZclArray | unknown[];
4275
4326
  };
4276
4327
  commands: never;
4277
4328
  commandResponses: never;
@@ -4311,7 +4362,7 @@ export interface TClusters {
4311
4362
  /** ID: 113 | Type: UINT8 */
4312
4363
  timeDelay: number;
4313
4364
  /** ID: 130 | Type: ARRAY */
4314
- eventTimeStamps: unknown[];
4365
+ eventTimeStamps: ZclArray | unknown[];
4315
4366
  };
4316
4367
  commands: never;
4317
4368
  commandResponses: never;
@@ -4349,7 +4400,7 @@ export interface TClusters {
4349
4400
  /** ID: 113 | Type: UINT8 */
4350
4401
  timeDelay: number;
4351
4402
  /** ID: 130 | Type: ARRAY */
4352
- eventTimeStamps: unknown[];
4403
+ eventTimeStamps: ZclArray | unknown[];
4353
4404
  };
4354
4405
  commands: never;
4355
4406
  commandResponses: never;
@@ -4387,7 +4438,7 @@ export interface TClusters {
4387
4438
  /** ID: 113 | Type: UINT8 */
4388
4439
  timeDelay: number;
4389
4440
  /** ID: 130 | Type: ARRAY */
4390
- eventTimeStamps: unknown[];
4441
+ eventTimeStamps: ZclArray | unknown[];
4391
4442
  };
4392
4443
  commands: never;
4393
4444
  commandResponses: never;
@@ -4395,7 +4446,7 @@ export interface TClusters {
4395
4446
  pi11073ProtocolTunnel: {
4396
4447
  attributes: {
4397
4448
  /** ID: 0 | Type: ARRAY */
4398
- deviceidList: unknown[];
4449
+ deviceidList: ZclArray | unknown[];
4399
4450
  /** ID: 1 | Type: IEEE_ADDR */
4400
4451
  managerTarget: string;
4401
4452
  /** ID: 2 | Type: UINT8 */
@@ -4574,7 +4625,7 @@ export interface TClusters {
4574
4625
  /** ID: 515 | Type: UINT24 */
4575
4626
  hoursInFault: number;
4576
4627
  /** ID: 516 | Type: BITMAP64 */
4577
- extendedStatus: number;
4628
+ extendedStatus: bigint;
4578
4629
  /** ID: 768 | Type: ENUM8 */
4579
4630
  unitOfMeasure: number;
4580
4631
  /** ID: 769 | Type: UINT24 */
@@ -4866,7 +4917,7 @@ export interface TClusters {
4866
4917
  };
4867
4918
  };
4868
4919
  tunneling: {
4869
- attributes: Record<string, never>;
4920
+ attributes: never;
4870
4921
  commands: {
4871
4922
  /** ID: 0 | Response ID: 0 */
4872
4923
  requestTunnel: {
@@ -4990,7 +5041,7 @@ export interface TClusters {
4990
5041
  haApplianceIdentification: {
4991
5042
  attributes: {
4992
5043
  /** ID: 0 | Type: UINT56 */
4993
- basicIdentification: number;
5044
+ basicIdentification: bigint;
4994
5045
  /** ID: 16 | Type: CHAR_STR */
4995
5046
  companyName: string;
4996
5047
  /** ID: 17 | Type: UINT16 */
@@ -5048,7 +5099,7 @@ export interface TClusters {
5048
5099
  commandResponses: never;
5049
5100
  };
5050
5101
  haApplianceEventsAlerts: {
5051
- attributes: Record<string, never>;
5102
+ attributes: never;
5052
5103
  commands: {
5053
5104
  /** ID: 0 */
5054
5105
  getAlerts: Record<string, never>;
@@ -5568,7 +5619,7 @@ export interface TClusters {
5568
5619
  commandResponses: never;
5569
5620
  };
5570
5621
  touchlink: {
5571
- attributes: Record<string, never>;
5622
+ attributes: never;
5572
5623
  commands: {
5573
5624
  /** ID: 0 | Response ID: 1 */
5574
5625
  scanRequest: {
@@ -5748,15 +5799,15 @@ export interface TClusters {
5748
5799
  numberOfSubDevices: number;
5749
5800
  /** Type: UINT8 */
5750
5801
  totalGroupIdentifiers: number;
5751
- /** Type: UINT8 */
5802
+ /** Type: UINT8, Conditions: [{fieldEquals field=numberOfSubDevices value=1}] */
5752
5803
  endpointID?: number;
5753
- /** Type: UINT16 */
5804
+ /** Type: UINT16, Conditions: [{fieldEquals field=numberOfSubDevices value=1}] */
5754
5805
  profileID?: number;
5755
- /** Type: UINT16 */
5806
+ /** Type: UINT16, Conditions: [{fieldEquals field=numberOfSubDevices value=1}] */
5756
5807
  deviceID?: number;
5757
- /** Type: UINT8 */
5808
+ /** Type: UINT8, Conditions: [{fieldEquals field=numberOfSubDevices value=1}] */
5758
5809
  version?: number;
5759
- /** Type: UINT8 */
5810
+ /** Type: UINT8, Conditions: [{fieldEquals field=numberOfSubDevices value=1}] */
5760
5811
  groupIDCount?: number;
5761
5812
  };
5762
5813
  /** ID: 3 */
@@ -5835,7 +5886,7 @@ export interface TClusters {
5835
5886
  };
5836
5887
  };
5837
5888
  manuSpecificClusterAduroSmart: {
5838
- attributes: Record<string, never>;
5889
+ attributes: never;
5839
5890
  commands: {
5840
5891
  /** ID: 0 */
5841
5892
  cmd0: Record<string, never>;
@@ -5843,7 +5894,7 @@ export interface TClusters {
5843
5894
  commandResponses: never;
5844
5895
  };
5845
5896
  manuSpecificOsram: {
5846
- attributes: Record<string, never>;
5897
+ attributes: never;
5847
5898
  commands: {
5848
5899
  /** ID: 1 */
5849
5900
  saveStartupParams: Record<string, never>;
@@ -5982,7 +6033,7 @@ export interface TClusters {
5982
6033
  /** ID: 301 | Type: INT16 */
5983
6034
  reportLocalTemperature: number;
5984
6035
  /** ID: 576 | Type: ARRAY */
5985
- flowMeterConfig: unknown[];
6036
+ flowMeterConfig: ZclArray | unknown[];
5986
6037
  /** ID: 643 | Type: UINT8 */
5987
6038
  coldLoadPickupStatus: number;
5988
6039
  };
@@ -5990,12 +6041,12 @@ export interface TClusters {
5990
6041
  commandResponses: never;
5991
6042
  };
5992
6043
  manuSpecificLegrandDevices: {
5993
- attributes: Record<string, never>;
6044
+ attributes: never;
5994
6045
  commands: never;
5995
6046
  commandResponses: never;
5996
6047
  };
5997
6048
  manuSpecificLegrandDevices2: {
5998
- attributes: Record<string, never>;
6049
+ attributes: never;
5999
6050
  commands: {
6000
6051
  /** ID: 0 */
6001
6052
  command0: {
@@ -6006,7 +6057,7 @@ export interface TClusters {
6006
6057
  commandResponses: never;
6007
6058
  };
6008
6059
  manuSpecificLegrandDevices3: {
6009
- attributes: Record<string, never>;
6060
+ attributes: never;
6010
6061
  commands: {
6011
6062
  /** ID: 0 */
6012
6063
  command0: {
@@ -6025,7 +6076,7 @@ export interface TClusters {
6025
6076
  commandResponses: never;
6026
6077
  };
6027
6078
  manuSpecificTuya: {
6028
- attributes: Record<string, never>;
6079
+ attributes: never;
6029
6080
  commands: {
6030
6081
  /** ID: 0 */
6031
6082
  dataRequest: {
@@ -6334,7 +6385,7 @@ export interface TClusters {
6334
6385
  commandResponses: never;
6335
6386
  };
6336
6387
  manuSpecificSmartThingsArrivalSensor: {
6337
- attributes: Record<string, never>;
6388
+ attributes: never;
6338
6389
  commands: never;
6339
6390
  commandResponses: {
6340
6391
  /** ID: 1 */
@@ -6401,7 +6452,7 @@ export interface TClusters {
6401
6452
  commandResponses: never;
6402
6453
  };
6403
6454
  heimanSpecificScenes: {
6404
- attributes: Record<string, never>;
6455
+ attributes: never;
6405
6456
  commands: {
6406
6457
  /** ID: 240 */
6407
6458
  cinema: Record<string, never>;
@@ -6417,7 +6468,7 @@ export interface TClusters {
6417
6468
  commandResponses: never;
6418
6469
  };
6419
6470
  tradfriButton: {
6420
- attributes: Record<string, never>;
6471
+ attributes: never;
6421
6472
  commands: {
6422
6473
  /** ID: 1 */
6423
6474
  action1: {
@@ -6448,7 +6499,7 @@ export interface TClusters {
6448
6499
  commandResponses: never;
6449
6500
  };
6450
6501
  heimanSpecificInfraRedRemote: {
6451
- attributes: Record<string, never>;
6502
+ attributes: never;
6452
6503
  commands: {
6453
6504
  /** ID: 240 */
6454
6505
  sendKey: {
@@ -6577,14 +6628,6 @@ export interface TClusters {
6577
6628
  commands: never;
6578
6629
  commandResponses: never;
6579
6630
  };
6580
- sprutDevice: {
6581
- attributes: {
6582
- /** ID: 0 | Type: BOOLEAN */
6583
- debug: number;
6584
- };
6585
- commands: never;
6586
- commandResponses: never;
6587
- };
6588
6631
  sprutVoc: {
6589
6632
  attributes: {
6590
6633
  /** ID: 26112 | Type: UINT16 */
@@ -6608,7 +6651,7 @@ export interface TClusters {
6608
6651
  commandResponses: never;
6609
6652
  };
6610
6653
  sprutIrBlaster: {
6611
- attributes: Record<string, never>;
6654
+ attributes: never;
6612
6655
  commands: {
6613
6656
  /** ID: 0 */
6614
6657
  playStore: {
@@ -6655,7 +6698,7 @@ export interface TClusters {
6655
6698
  commandResponses: never;
6656
6699
  };
6657
6700
  owonClearMetering: {
6658
- attributes: Record<string, never>;
6701
+ attributes: never;
6659
6702
  commands: {
6660
6703
  /** ID: 0 */
6661
6704
  owonClearMeasurementData: Record<string, never>;
@@ -6663,7 +6706,7 @@ export interface TClusters {
6663
6706
  commandResponses: never;
6664
6707
  };
6665
6708
  zosungIRTransmit: {
6666
- attributes: Record<string, never>;
6709
+ attributes: never;
6667
6710
  commands: {
6668
6711
  /** ID: 0 */
6669
6712
  zosungSendIRCode00: {
@@ -6764,7 +6807,7 @@ export interface TClusters {
6764
6807
  };
6765
6808
  };
6766
6809
  zosungIRControl: {
6767
- attributes: Record<string, never>;
6810
+ attributes: never;
6768
6811
  commands: {
6769
6812
  /** ID: 0 */
6770
6813
  zosungControlIRCommand00: {
@@ -6916,7 +6959,7 @@ export interface TClusters {
6916
6959
  };
6917
6960
  };
6918
6961
  manuSpecificDoorman: {
6919
- attributes: Record<string, never>;
6962
+ attributes: never;
6920
6963
  commands: {
6921
6964
  /** ID: 252 */
6922
6965
  getConfigurationParameter: {
@@ -7010,9 +7053,9 @@ export interface TFoundation {
7010
7053
  attrId: number;
7011
7054
  /** Type: UINT8 */
7012
7055
  status: number;
7013
- /** Type: UINT8 */
7056
+ /** Type: UINT8, Conditions: [{fieldEquals field=status value=0}] */
7014
7057
  dataType?: number;
7015
- /** Type: USE_DATA_TYPE */
7058
+ /** Type: USE_DATA_TYPE, Conditions: [{fieldEquals field=status value=0}] */
7016
7059
  attrData?: unknown;
7017
7060
  }[];
7018
7061
  /** ID: 2 */
@@ -7037,7 +7080,7 @@ export interface TFoundation {
7037
7080
  writeRsp: {
7038
7081
  /** Type: UINT8 */
7039
7082
  status: number;
7040
- /** Type: UINT16 */
7083
+ /** Type: UINT16, Conditions: [{fieldEquals field=status reversed=true value=0}] */
7041
7084
  attrId?: number;
7042
7085
  }[];
7043
7086
  /** ID: 5 */
@@ -7055,24 +7098,24 @@ export interface TFoundation {
7055
7098
  direction: number;
7056
7099
  /** Type: UINT16 */
7057
7100
  attrId: number;
7058
- /** Type: UINT8 */
7101
+ /** Type: UINT8, Conditions: [{fieldEquals field=direction value=0}] */
7059
7102
  dataType?: number;
7060
- /** Type: UINT16 */
7103
+ /** Type: UINT16, Conditions: [{fieldEquals field=direction value=0}] */
7061
7104
  minRepIntval?: number;
7062
- /** Type: UINT16 */
7105
+ /** Type: UINT16, Conditions: [{fieldEquals field=direction value=0}] */
7063
7106
  maxRepIntval?: number;
7064
- /** Type: USE_DATA_TYPE */
7107
+ /** Type: USE_DATA_TYPE, Conditions: [{fieldEquals field=direction value=0}{dataTypeValueTypeEquals value=ANALOG}] */
7065
7108
  repChange?: unknown;
7066
- /** Type: UINT16 */
7109
+ /** Type: UINT16, Conditions: [{fieldEquals field=direction value=1}] */
7067
7110
  timeout?: number;
7068
7111
  }[];
7069
7112
  /** ID: 7 */
7070
7113
  configReportRsp: {
7071
7114
  /** Type: UINT8 */
7072
7115
  status: number;
7073
- /** Type: UINT8 */
7116
+ /** Type: UINT8, Conditions: [{minimumRemainingBufferBytes value=3}] */
7074
7117
  direction?: number;
7075
- /** Type: UINT16 */
7118
+ /** Type: UINT16, Conditions: [{minimumRemainingBufferBytes value=2}] */
7076
7119
  attrId?: number;
7077
7120
  }[];
7078
7121
  /** ID: 8 */
@@ -7090,15 +7133,15 @@ export interface TFoundation {
7090
7133
  direction: number;
7091
7134
  /** Type: UINT16 */
7092
7135
  attrId: number;
7093
- /** Type: UINT8 */
7136
+ /** Type: UINT8, Conditions: [{fieldEquals field=direction value=0}] */
7094
7137
  dataType?: number;
7095
- /** Type: UINT16 */
7138
+ /** Type: UINT16, Conditions: [{fieldEquals field=direction value=0}] */
7096
7139
  minRepIntval?: number;
7097
- /** Type: UINT16 */
7140
+ /** Type: UINT16, Conditions: [{fieldEquals field=direction value=0}] */
7098
7141
  maxRepIntval?: number;
7099
- /** Type: USE_DATA_TYPE */
7142
+ /** Type: USE_DATA_TYPE, Conditions: [{fieldEquals field=direction value=0}{dataTypeValueTypeEquals value=ANALOG}] */
7100
7143
  repChange?: unknown;
7101
- /** Type: UINT16 */
7144
+ /** Type: UINT16, Conditions: [{fieldEquals field=direction value=1}] */
7102
7145
  timeout?: number;
7103
7146
  }[];
7104
7147
  /** ID: 10 */
@@ -7157,9 +7200,9 @@ export interface TFoundation {
7157
7200
  writeStructuredRsp: {
7158
7201
  /** Type: UINT8 */
7159
7202
  status: number;
7160
- /** Type: UINT16 */
7203
+ /** Type: UINT16, Conditions: [{fieldEquals field=status reversed=true value=0}] */
7161
7204
  attrId?: number;
7162
- /** Type: STRUCTURED_SELECTOR */
7205
+ /** Type: STRUCTURED_SELECTOR, Conditions: [{fieldEquals field=status reversed=true value=0}] */
7163
7206
  selector?: StructuredSelector;
7164
7207
  }[];
7165
7208
  /** ID: 17 */
@@ -7235,29 +7278,35 @@ export type TFoundationFlat = "defaultRsp" | "discover" | "discoverCommands" | "
7235
7278
  export type TFoundationOneOf = "discoverRsp" | "discoverCommandsRsp" | "discoverCommandsGenRsp" | "discoverExtRsp";
7236
7279
 
7237
7280
  // Clusters
7238
- export type TClusterGenericPayload = Record<string, unknown>;
7239
-
7240
7281
  export type TClusterAttributeKeys<Cl extends number | string> = Cl extends keyof TClusters
7241
7282
  ? (keyof TClusters[Cl]["attributes"])[]
7242
7283
  : (string | number)[];
7243
7284
 
7244
- export type TClusterAttributes<Cl extends number | string> = Cl extends keyof TClusters ? TClusters[Cl]["attributes"] : TClusterGenericPayload;
7285
+ export type TClusterAttributes<Cl extends number | string> = Cl extends keyof TClusters ? TClusters[Cl]["attributes"] : never;
7286
+
7287
+ export type TPartialClusterAttributes<Cl extends number | string> = Cl extends keyof TClusters ? Partial<TClusters[Cl]["attributes"]> : never;
7288
+
7289
+ export type TClusterCommandKeys<Cl extends number | string> = Cl extends keyof TClusters ? (keyof TClusters[Cl]["commands"])[] : (string | number)[];
7290
+
7291
+ export type TClusterCommandResponseKeys<Cl extends number | string> = Cl extends keyof TClusters
7292
+ ? (keyof TClusters[Cl]["commandResponses"])[]
7293
+ : (string | number)[];
7294
+
7295
+ export type TClusterCommands<Cl extends number | string> = Cl extends keyof TClusters ? TClusters[Cl]["commands"] : never;
7245
7296
 
7246
- export type TPartialClusterAttributes<Cl extends number | string> = Cl extends keyof TClusters
7247
- ? Partial<TClusters[Cl]["attributes"]>
7248
- : TClusterGenericPayload;
7297
+ export type TClusterCommandResponses<Cl extends number | string> = Cl extends keyof TClusters ? TClusters[Cl]["commandResponses"] : never;
7249
7298
 
7250
7299
  export type TClusterCommandPayload<Cl extends number | string, Co extends number | string> = Cl extends keyof TClusters
7251
7300
  ? Co extends keyof TClusters[Cl]["commands"]
7252
7301
  ? TClusters[Cl]["commands"][Co]
7253
- : TClusterGenericPayload
7254
- : TClusterGenericPayload;
7302
+ : never
7303
+ : never;
7255
7304
 
7256
7305
  export type TClusterCommandResponsePayload<Cl extends number | string, Co extends number | string> = Cl extends keyof TClusters
7257
7306
  ? Co extends keyof TClusters[Cl]["commandResponses"]
7258
7307
  ? TClusters[Cl]["commandResponses"][Co]
7259
- : TClusterGenericPayload
7260
- : TClusterGenericPayload;
7308
+ : never
7309
+ : never;
7261
7310
 
7262
7311
  export type TClusterPayload<Cl extends number | string, Co extends number | string> = Cl extends keyof TClusters
7263
7312
  ? TClusters[Cl]["commands"] extends never
@@ -7265,13 +7314,13 @@ export type TClusterPayload<Cl extends number | string, Co extends number | stri
7265
7314
  ? never
7266
7315
  : Co extends keyof TClusters[Cl]["commandResponses"]
7267
7316
  ? TClusters[Cl]["commandResponses"][Co]
7268
- : TClusterGenericPayload
7317
+ : never
7269
7318
  : Co extends keyof TClusters[Cl]["commands"]
7270
7319
  ? TClusters[Cl]["commands"][Co]
7271
7320
  : Co extends keyof TClusters[Cl]["commandResponses"]
7272
7321
  ? TClusters[Cl]["commandResponses"][Co]
7273
- : TClusterGenericPayload
7274
- : TClusterGenericPayload;
7322
+ : never
7323
+ : never;
7275
7324
 
7276
7325
  // Foundation
7277
7326
  export type TFoundationGenericPayload = TFoundation[keyof TFoundation];