zigbee-herdsman 6.0.0 → 6.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 (79) hide show
  1. package/.github/workflows/ci.yml +1 -1
  2. package/.github/workflows/typedoc.yaml +1 -1
  3. package/.release-please-manifest.json +1 -1
  4. package/CHANGELOG.md +10 -0
  5. package/dist/controller/controller.d.ts.map +1 -1
  6. package/dist/controller/controller.js +7 -10
  7. package/dist/controller/controller.js.map +1 -1
  8. package/dist/controller/events.d.ts +1 -1
  9. package/dist/controller/events.d.ts.map +1 -1
  10. package/dist/controller/helpers/request.d.ts.map +1 -1
  11. package/dist/controller/helpers/request.js +2 -1
  12. package/dist/controller/helpers/request.js.map +1 -1
  13. package/dist/controller/helpers/zclFrameConverter.d.ts +2 -4
  14. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  15. package/dist/controller/helpers/zclFrameConverter.js +2 -0
  16. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  17. package/dist/controller/model/device.d.ts +13 -24
  18. package/dist/controller/model/device.d.ts.map +1 -1
  19. package/dist/controller/model/device.js +88 -129
  20. package/dist/controller/model/device.js.map +1 -1
  21. package/dist/controller/model/endpoint.d.ts +17 -16
  22. package/dist/controller/model/endpoint.d.ts.map +1 -1
  23. package/dist/controller/model/endpoint.js +31 -16
  24. package/dist/controller/model/endpoint.js.map +1 -1
  25. package/dist/controller/model/group.d.ts +6 -6
  26. package/dist/controller/model/group.d.ts.map +1 -1
  27. package/dist/controller/model/group.js +5 -3
  28. package/dist/controller/model/group.js.map +1 -1
  29. package/dist/controller/model/index.d.ts +1 -0
  30. package/dist/controller/model/index.d.ts.map +1 -1
  31. package/dist/controller/model/index.js +3 -1
  32. package/dist/controller/model/index.js.map +1 -1
  33. package/dist/controller/model/zigbeeEntity.d.ts +8 -0
  34. package/dist/controller/model/zigbeeEntity.d.ts.map +1 -0
  35. package/dist/controller/model/zigbeeEntity.js +11 -0
  36. package/dist/controller/model/zigbeeEntity.js.map +1 -0
  37. package/dist/controller/tstype.d.ts +22 -0
  38. package/dist/controller/tstype.d.ts.map +1 -1
  39. package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
  40. package/dist/zspec/zcl/definition/cluster.js +2 -9
  41. package/dist/zspec/zcl/definition/cluster.js.map +1 -1
  42. package/dist/zspec/zcl/definition/clusters-typegen.js +61 -13
  43. package/dist/zspec/zcl/definition/clusters-typegen.js.map +1 -1
  44. package/dist/zspec/zcl/definition/clusters-types.d.ts +173 -140
  45. package/dist/zspec/zcl/definition/clusters-types.d.ts.map +1 -1
  46. package/dist/zspec/zcl/definition/enums.d.ts +10 -0
  47. package/dist/zspec/zcl/definition/enums.d.ts.map +1 -1
  48. package/dist/zspec/zcl/definition/enums.js +12 -1
  49. package/dist/zspec/zcl/definition/enums.js.map +1 -1
  50. package/dist/zspec/zcl/definition/tstype.d.ts +1 -1
  51. package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
  52. package/dist/zspec/zcl/index.d.ts +1 -0
  53. package/dist/zspec/zcl/index.d.ts.map +1 -1
  54. package/dist/zspec/zcl/index.js.map +1 -1
  55. package/dist/zspec/zcl/utils.d.ts +1 -1
  56. package/dist/zspec/zcl/utils.d.ts.map +1 -1
  57. package/dist/zspec/zcl/utils.js +1 -1
  58. package/dist/zspec/zcl/utils.js.map +1 -1
  59. package/package.json +1 -1
  60. package/src/adapter/ezsp/driver/driver.ts +1 -1
  61. package/src/controller/controller.ts +11 -15
  62. package/src/controller/events.ts +1 -1
  63. package/src/controller/helpers/request.ts +3 -1
  64. package/src/controller/helpers/zclFrameConverter.ts +13 -17
  65. package/src/controller/model/device.ts +103 -148
  66. package/src/controller/model/endpoint.ts +112 -64
  67. package/src/controller/model/group.ts +33 -9
  68. package/src/controller/model/index.ts +1 -0
  69. package/src/controller/model/zigbeeEntity.ts +30 -0
  70. package/src/controller/tstype.ts +234 -0
  71. package/src/zspec/zcl/definition/cluster.ts +2 -9
  72. package/src/zspec/zcl/definition/clusters-typegen.ts +96 -19
  73. package/src/zspec/zcl/definition/clusters-types.ts +195 -146
  74. package/src/zspec/zcl/definition/enums.ts +11 -0
  75. package/src/zspec/zcl/definition/tstype.ts +0 -1
  76. package/src/zspec/zcl/index.ts +1 -0
  77. package/src/zspec/zcl/utils.ts +1 -1
  78. package/test/controller.test.ts +291 -93
  79. package/test/zspec/zcl/utils.test.ts +4 -4
@@ -1,4 +1,4 @@
1
- import type { ExtensionFieldSet, Gpd, GpdAttributeReport, GpdChannelRequest, MiboxerZone, Struct, StructuredSelector, ThermoTransition, TuyaDataPointValue, ZoneInfo } from "./tstype";
1
+ import type { ExtensionFieldSet, Gpd, GpdAttributeReport, GpdChannelConfiguration, GpdChannelRequest, GpdCommissioningReply, GpdCustomReply, MiboxerZone, Struct, StructuredSelector, ThermoTransition, TuyaDataPointValue, ZclArray, ZoneInfo } from "./tstype";
2
2
  export interface TClusters {
3
3
  genBasic: {
4
4
  attributes: {
@@ -390,11 +390,11 @@ export interface TClusters {
390
390
  groupid: number;
391
391
  /** Type: UINT8 */
392
392
  sceneid: number;
393
- /** Type: UINT16 */
393
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
394
394
  transtime?: number;
395
- /** Type: CHAR_STR */
395
+ /** Type: CHAR_STR, Conditions: [{fieldEquals field=status value=0}] */
396
396
  scenename?: string;
397
- /** Type: EXTENSION_FIELD_SETS */
397
+ /** Type: EXTENSION_FIELD_SETS, Conditions: [{fieldEquals field=status value=0}] */
398
398
  extensionfieldsets?: ExtensionFieldSet[];
399
399
  };
400
400
  /** ID: 2 */
@@ -430,9 +430,9 @@ export interface TClusters {
430
430
  capacity: number;
431
431
  /** Type: UINT16 */
432
432
  groupid: number;
433
- /** Type: UINT8 */
433
+ /** Type: UINT8, Conditions: [{fieldEquals field=status value=0}] */
434
434
  scenecount?: number;
435
- /** Type: LIST_UINT8 */
435
+ /** Type: LIST_UINT8, Conditions: [{fieldEquals field=status value=0}] */
436
436
  scenelist?: number[];
437
437
  };
438
438
  /** ID: 64 */
@@ -452,11 +452,11 @@ export interface TClusters {
452
452
  groupid: number;
453
453
  /** Type: UINT8 */
454
454
  sceneid: number;
455
- /** Type: UINT16 */
455
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
456
456
  transtime?: number;
457
- /** Type: CHAR_STR */
457
+ /** Type: CHAR_STR, Conditions: [{fieldEquals field=status value=0}] */
458
458
  scenename?: string;
459
- /** Type: EXTENSION_FIELD_SETS */
459
+ /** Type: EXTENSION_FIELD_SETS, Conditions: [{fieldEquals field=status value=0}] */
460
460
  extensionfieldsets?: ExtensionFieldSet[];
461
461
  };
462
462
  /** ID: 66 */
@@ -902,7 +902,7 @@ export interface TClusters {
902
902
  /** ID: 85 | Type: SINGLE_PREC */
903
903
  presentValue: number;
904
904
  /** ID: 87 | Type: ARRAY */
905
- priorityArray: unknown[];
905
+ priorityArray: ZclArray | unknown[];
906
906
  /** ID: 103 | Type: ENUM8 */
907
907
  reliability: number;
908
908
  /** ID: 104 | Type: SINGLE_PREC */
@@ -928,7 +928,7 @@ export interface TClusters {
928
928
  /** ID: 85 | Type: SINGLE_PREC */
929
929
  presentValue: number;
930
930
  /** ID: 87 | Type: ARRAY */
931
- priorityArray: unknown[];
931
+ priorityArray: ZclArray | unknown[];
932
932
  /** ID: 103 | Type: ENUM8 */
933
933
  reliability: number;
934
934
  /** ID: 104 | Type: SINGLE_PREC */
@@ -986,7 +986,7 @@ export interface TClusters {
986
986
  /** ID: 85 | Type: BOOLEAN */
987
987
  presentValue: number;
988
988
  /** ID: 87 | Type: ARRAY */
989
- priorityArray: unknown[];
989
+ priorityArray: ZclArray | unknown[];
990
990
  /** ID: 103 | Type: ENUM8 */
991
991
  reliability: number;
992
992
  /** ID: 104 | Type: BOOLEAN */
@@ -1016,7 +1016,7 @@ export interface TClusters {
1016
1016
  /** ID: 85 | Type: BOOLEAN */
1017
1017
  presentValue: number;
1018
1018
  /** ID: 87 | Type: ARRAY */
1019
- priorityArray: unknown[];
1019
+ priorityArray: ZclArray | unknown[];
1020
1020
  /** ID: 103 | Type: ENUM8 */
1021
1021
  reliability: number;
1022
1022
  /** ID: 104 | Type: BOOLEAN */
@@ -1032,7 +1032,7 @@ export interface TClusters {
1032
1032
  genMultistateInput: {
1033
1033
  attributes: {
1034
1034
  /** ID: 14 | Type: ARRAY */
1035
- stateText: unknown[];
1035
+ stateText: ZclArray | unknown[];
1036
1036
  /** ID: 28 | Type: CHAR_STR */
1037
1037
  description: string;
1038
1038
  /** ID: 74 | Type: UINT16 */
@@ -1054,7 +1054,7 @@ export interface TClusters {
1054
1054
  genMultistateOutput: {
1055
1055
  attributes: {
1056
1056
  /** ID: 14 | Type: ARRAY */
1057
- stateText: unknown[];
1057
+ stateText: ZclArray | unknown[];
1058
1058
  /** ID: 28 | Type: CHAR_STR */
1059
1059
  description: string;
1060
1060
  /** ID: 74 | Type: UINT16 */
@@ -1064,7 +1064,7 @@ export interface TClusters {
1064
1064
  /** ID: 85 | Type: UINT16 */
1065
1065
  presentValue: number;
1066
1066
  /** ID: 87 | Type: ARRAY */
1067
- priorityArray: unknown[];
1067
+ priorityArray: ZclArray | unknown[];
1068
1068
  /** ID: 103 | Type: ENUM8 */
1069
1069
  reliability: number;
1070
1070
  /** ID: 104 | Type: UINT16 */
@@ -1080,7 +1080,7 @@ export interface TClusters {
1080
1080
  genMultistateValue: {
1081
1081
  attributes: {
1082
1082
  /** ID: 14 | Type: ARRAY */
1083
- stateText: unknown[];
1083
+ stateText: ZclArray | unknown[];
1084
1084
  /** ID: 28 | Type: CHAR_STR */
1085
1085
  description: string;
1086
1086
  /** ID: 74 | Type: UINT16 */
@@ -1090,7 +1090,7 @@ export interface TClusters {
1090
1090
  /** ID: 85 | Type: UINT16 */
1091
1091
  presentValue: number;
1092
1092
  /** ID: 87 | Type: ARRAY */
1093
- priorityArray: unknown[];
1093
+ priorityArray: ZclArray | unknown[];
1094
1094
  /** ID: 103 | Type: ENUM8 */
1095
1095
  reliability: number;
1096
1096
  /** ID: 104 | Type: UINT16 */
@@ -1245,7 +1245,7 @@ export interface TClusters {
1245
1245
  imageType: number;
1246
1246
  /** Type: UINT32 */
1247
1247
  fileVersion: number;
1248
- /** Type: UINT16 */
1248
+ /** Type: UINT16, Conditions: [{bitMaskSet param=fieldControl mask=1}] */
1249
1249
  hardwareVersion?: number;
1250
1250
  };
1251
1251
  /** ID: 3 | Response ID: 5 */
@@ -1262,9 +1262,9 @@ export interface TClusters {
1262
1262
  fileOffset: number;
1263
1263
  /** Type: UINT8 */
1264
1264
  maximumDataSize: number;
1265
- /** Type: IEEE_ADDR */
1265
+ /** Type: IEEE_ADDR, Conditions: [{bitMaskSet param=fieldControl mask=1}] */
1266
1266
  requestNodeIeeeAddress?: string;
1267
- /** Type: UINT16 */
1267
+ /** Type: UINT16, Conditions: [{bitMaskSet param=fieldControl mask=2}{minimumRemainingBufferBytes value=2}] */
1268
1268
  minimumBlockPeriod?: number;
1269
1269
  };
1270
1270
  /** ID: 4 | Response ID: 5 */
@@ -1285,7 +1285,7 @@ export interface TClusters {
1285
1285
  pageSize: number;
1286
1286
  /** Type: UINT16 */
1287
1287
  responseSpacing: number;
1288
- /** Type: IEEE_ADDR */
1288
+ /** Type: IEEE_ADDR, Conditions: [{bitMaskSet param=fieldControl mask=1}] */
1289
1289
  requestNodeIeeeAddress?: string;
1290
1290
  };
1291
1291
  /** ID: 6 | Response ID: 7 */
@@ -1299,6 +1299,19 @@ export interface TClusters {
1299
1299
  /** Type: UINT32 */
1300
1300
  fileVersion: number;
1301
1301
  };
1302
+ /** ID: 8 | Response ID: 9 */
1303
+ queryDeviceSpecificFileRequest: {
1304
+ /** Type: IEEE_ADDR */
1305
+ eui64: string;
1306
+ /** Type: UINT16 */
1307
+ manufacturerCode: number;
1308
+ /** Type: UINT16 */
1309
+ imageType: number;
1310
+ /** Type: UINT32 */
1311
+ fileVersion: number;
1312
+ /** Type: UINT16 */
1313
+ zigbeeStackVersion: number;
1314
+ };
1302
1315
  };
1303
1316
  commandResponses: {
1304
1317
  /** ID: 0 */
@@ -1307,36 +1320,48 @@ export interface TClusters {
1307
1320
  payloadType: number;
1308
1321
  /** Type: UINT8 */
1309
1322
  queryJitter: number;
1323
+ /** Type: UINT16, Conditions: [{fieldGT field=payloadType value=0}] */
1324
+ manufacturerCode?: number;
1325
+ /** Type: UINT16, Conditions: [{fieldGT field=payloadType value=1}] */
1326
+ imageType?: number;
1327
+ /** Type: UINT32, Conditions: [{fieldGT field=payloadType value=2}] */
1328
+ fileVersion?: number;
1310
1329
  };
1311
1330
  /** ID: 2 */
1312
1331
  queryNextImageResponse: {
1313
1332
  /** Type: UINT8 */
1314
1333
  status: number;
1315
- /** Type: UINT16 */
1334
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
1316
1335
  manufacturerCode?: number;
1317
- /** Type: UINT16 */
1336
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
1318
1337
  imageType?: number;
1319
- /** Type: UINT32 */
1338
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=0}] */
1320
1339
  fileVersion?: number;
1321
- /** Type: UINT32 */
1340
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=0}] */
1322
1341
  imageSize?: number;
1323
1342
  };
1324
1343
  /** ID: 5 */
1325
1344
  imageBlockResponse: {
1326
1345
  /** Type: UINT8 */
1327
1346
  status: number;
1328
- /** Type: UINT16 */
1329
- manufacturerCode: number;
1330
- /** Type: UINT16 */
1331
- imageType: number;
1332
- /** Type: UINT32 */
1333
- fileVersion: number;
1334
- /** Type: UINT32 */
1335
- fileOffset: number;
1336
- /** Type: UINT8 */
1337
- dataSize: number;
1338
- /** Type: BUFFER */
1339
- data: Buffer;
1347
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
1348
+ manufacturerCode?: number;
1349
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
1350
+ imageType?: number;
1351
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=0}] */
1352
+ fileVersion?: number;
1353
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=0}] */
1354
+ fileOffset?: number;
1355
+ /** Type: UINT8, Conditions: [{fieldEquals field=status value=0}] */
1356
+ dataSize?: number;
1357
+ /** Type: BUFFER, Conditions: [{fieldEquals field=status value=0}] */
1358
+ data?: Buffer;
1359
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=151}] */
1360
+ currentTime?: number;
1361
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=151}] */
1362
+ requestTime?: number;
1363
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=151}] */
1364
+ minimumBlockPeriod?: number;
1340
1365
  };
1341
1366
  /** ID: 7 */
1342
1367
  upgradeEndResponse: {
@@ -1351,6 +1376,19 @@ export interface TClusters {
1351
1376
  /** Type: UINT32 */
1352
1377
  upgradeTime: number;
1353
1378
  };
1379
+ /** ID: 9 */
1380
+ queryDeviceSpecificFileResponse: {
1381
+ /** Type: UINT8 */
1382
+ status: number;
1383
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
1384
+ manufacturerCode?: number;
1385
+ /** Type: UINT16, Conditions: [{fieldEquals field=status value=0}] */
1386
+ imageType?: number;
1387
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=0}] */
1388
+ fileVersion?: number;
1389
+ /** Type: UINT32, Conditions: [{fieldEquals field=status value=0}] */
1390
+ imageSize?: number;
1391
+ };
1354
1392
  };
1355
1393
  };
1356
1394
  genPollCtrl: {
@@ -1397,17 +1435,17 @@ export interface TClusters {
1397
1435
  };
1398
1436
  };
1399
1437
  greenPower: {
1400
- attributes: Record<string, never>;
1438
+ attributes: never;
1401
1439
  commands: {
1402
1440
  /** ID: 0 */
1403
1441
  notification: {
1404
1442
  /** Type: BITMAP16 */
1405
1443
  options: number;
1406
- /** Type: UINT32 */
1444
+ /** Type: UINT32, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=0}] */
1407
1445
  srcID?: number;
1408
- /** Type: IEEE_ADDR */
1446
+ /** Type: IEEE_ADDR, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1409
1447
  gpdIEEEAddr?: string;
1410
- /** Type: UINT8 */
1448
+ /** Type: UINT8, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1411
1449
  gpdEndpoint?: number;
1412
1450
  /** Type: UINT32 */
1413
1451
  frameCounter: number;
@@ -1415,24 +1453,24 @@ export interface TClusters {
1415
1453
  commandID: number;
1416
1454
  /** Type: UINT8 */
1417
1455
  payloadSize: number;
1418
- /** Type: GPD_FRAME */
1456
+ /** Type: GPD_FRAME, Conditions: [{bitMaskSet param=options mask=192 reversed=true}] */
1419
1457
  commandFrame?: Gpd | GpdChannelRequest | GpdAttributeReport | {
1420
1458
  raw: Buffer;
1421
- } | Record<string, never>;
1422
- /** Type: UINT16 */
1459
+ } | Record<string, never> | GpdCommissioningReply | GpdChannelConfiguration | GpdCustomReply;
1460
+ /** Type: UINT16, Conditions: [{bitMaskSet param=options mask=16384}] */
1423
1461
  gppNwkAddr?: number;
1424
- /** Type: BITMAP8 */
1462
+ /** Type: BITMAP8, Conditions: [{bitMaskSet param=options mask=16384}] */
1425
1463
  gppGpdLink?: number;
1426
1464
  };
1427
1465
  /** ID: 4 */
1428
1466
  commissioningNotification: {
1429
1467
  /** Type: BITMAP16 */
1430
1468
  options: number;
1431
- /** Type: UINT32 */
1469
+ /** Type: UINT32, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=0}] */
1432
1470
  srcID?: number;
1433
- /** Type: IEEE_ADDR */
1471
+ /** Type: IEEE_ADDR, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1434
1472
  gpdIEEEAddr?: string;
1435
- /** Type: UINT8 */
1473
+ /** Type: UINT8, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1436
1474
  gpdEndpoint?: number;
1437
1475
  /** Type: UINT32 */
1438
1476
  frameCounter: number;
@@ -1440,15 +1478,15 @@ export interface TClusters {
1440
1478
  commandID: number;
1441
1479
  /** Type: UINT8 */
1442
1480
  payloadSize: number;
1443
- /** Type: GPD_FRAME */
1481
+ /** Type: GPD_FRAME, Conditions: [{bitMaskSet param=options mask=48 reversed=true}{bitMaskSet param=options mask=512 reversed=true}] */
1444
1482
  commandFrame?: Gpd | GpdChannelRequest | GpdAttributeReport | {
1445
1483
  raw: Buffer;
1446
- } | Record<string, never>;
1447
- /** Type: UINT16 */
1484
+ } | Record<string, never> | GpdCommissioningReply | GpdChannelConfiguration | GpdCustomReply;
1485
+ /** Type: UINT16, Conditions: [{bitMaskSet param=options mask=2048}] */
1448
1486
  gppNwkAddr?: number;
1449
- /** Type: BITMAP8 */
1487
+ /** Type: BITMAP8, Conditions: [{bitMaskSet param=options mask=2048}] */
1450
1488
  gppGpdLink?: number;
1451
- /** Type: UINT32 */
1489
+ /** Type: UINT32, Conditions: [{bitMaskSet param=options mask=512}] */
1452
1490
  mic?: number;
1453
1491
  };
1454
1492
  };
@@ -1461,53 +1499,53 @@ export interface TClusters {
1461
1499
  tempMaster: number;
1462
1500
  /** Type: BITMAP8 */
1463
1501
  tempMasterTx: number;
1464
- /** Type: UINT32 */
1502
+ /** Type: UINT32, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=0}] */
1465
1503
  srcID?: number;
1466
- /** Type: IEEE_ADDR */
1504
+ /** Type: IEEE_ADDR, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1467
1505
  gpdIEEEAddr?: string;
1468
- /** Type: UINT8 */
1506
+ /** Type: UINT8, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1469
1507
  gpdEndpoint?: number;
1470
1508
  /** Type: UINT8 */
1471
1509
  gpdCmd: number;
1472
1510
  /** Type: GPD_FRAME */
1473
1511
  gpdPayload: Gpd | GpdChannelRequest | GpdAttributeReport | {
1474
1512
  raw: Buffer;
1475
- } | Record<string, never>;
1513
+ } | Record<string, never> | GpdCommissioningReply | GpdChannelConfiguration | GpdCustomReply;
1476
1514
  };
1477
1515
  /** ID: 1 */
1478
1516
  pairing: {
1479
1517
  /** Type: BITMAP24 */
1480
1518
  options: number;
1481
- /** Type: UINT32 */
1519
+ /** Type: UINT32, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=0}] */
1482
1520
  srcID?: number;
1483
- /** Type: IEEE_ADDR */
1521
+ /** Type: IEEE_ADDR, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1484
1522
  gpdIEEEAddr?: string;
1485
- /** Type: UINT8 */
1523
+ /** Type: UINT8, Conditions: [{bitFieldEnum param=options offset=0 size=3 value=2}] */
1486
1524
  gpdEndpoint?: number;
1487
- /** Type: IEEE_ADDR */
1525
+ /** Type: IEEE_ADDR, Conditions: [{bitFieldEnum param=options offset=4 size=3 value=6}] */
1488
1526
  sinkIEEEAddr?: string;
1489
- /** Type: UINT16 */
1527
+ /** Type: UINT16, Conditions: [{bitFieldEnum param=options offset=4 size=3 value=6}] */
1490
1528
  sinkNwkAddr?: number;
1491
- /** Type: UINT16 */
1529
+ /** Type: UINT16, Conditions: [{bitFieldEnum param=options offset=4 size=3 value=4}] */
1492
1530
  sinkGroupID?: number;
1493
- /** Type: UINT8 */
1531
+ /** Type: UINT8, Conditions: [{bitMaskSet param=options mask=8}] */
1494
1532
  deviceID?: number;
1495
- /** Type: UINT32 */
1533
+ /** Type: UINT32, Conditions: [{bitMaskSet param=options mask=16384}] */
1496
1534
  frameCounter?: number;
1497
- /** Type: SEC_KEY */
1535
+ /** Type: SEC_KEY, Conditions: [{bitMaskSet param=options mask=32768}] */
1498
1536
  gpdKey?: Buffer;
1499
- /** Type: UINT16 */
1537
+ /** Type: UINT16, Conditions: [{bitMaskSet param=options mask=65536}] */
1500
1538
  assignedAlias?: number;
1501
- /** Type: UINT8 */
1539
+ /** Type: UINT8, Conditions: [{bitMaskSet param=options mask=131072}] */
1502
1540
  groupcastRadius?: number;
1503
1541
  };
1504
1542
  /** ID: 2 */
1505
1543
  commisioningMode: {
1506
1544
  /** Type: BITMAP8 */
1507
1545
  options: number;
1508
- /** Type: UINT16 */
1546
+ /** Type: UINT16, Conditions: [{bitMaskSet param=options mask=2}] */
1509
1547
  commisioningWindow?: number;
1510
- /** Type: UINT8 */
1548
+ /** Type: UINT8, Conditions: [{bitMaskSet param=options mask=16}] */
1511
1549
  channel?: number;
1512
1550
  };
1513
1551
  };
@@ -3734,7 +3772,7 @@ export interface TClusters {
3734
3772
  };
3735
3773
  };
3736
3774
  ssIasAce: {
3737
- attributes: Record<string, never>;
3775
+ attributes: never;
3738
3776
  commands: {
3739
3777
  /** ID: 0 | Response ID: 0 */
3740
3778
  arm: {
@@ -3948,7 +3986,7 @@ export interface TClusters {
3948
3986
  };
3949
3987
  };
3950
3988
  piBacnetProtocolTunnel: {
3951
- attributes: Record<string, never>;
3989
+ attributes: never;
3952
3990
  commands: {
3953
3991
  /** ID: 0 */
3954
3992
  transferNpdu: {
@@ -4001,7 +4039,7 @@ export interface TClusters {
4001
4039
  /** ID: 113 | Type: UINT8 */
4002
4040
  timeDelay: number;
4003
4041
  /** ID: 130 | Type: ARRAY */
4004
- eventTimeStamps: unknown[];
4042
+ eventTimeStamps: ZclArray | unknown[];
4005
4043
  };
4006
4044
  commands: {
4007
4045
  /** ID: 0 */
@@ -4058,7 +4096,7 @@ export interface TClusters {
4058
4096
  /** ID: 113 | Type: UINT8 */
4059
4097
  timeDelay: number;
4060
4098
  /** ID: 130 | Type: ARRAY */
4061
- eventTimeStamps: unknown[];
4099
+ eventTimeStamps: ZclArray | unknown[];
4062
4100
  };
4063
4101
  commands: never;
4064
4102
  commandResponses: never;
@@ -4102,7 +4140,7 @@ export interface TClusters {
4102
4140
  /** ID: 113 | Type: UINT8 */
4103
4141
  timeDelay: number;
4104
4142
  /** ID: 130 | Type: ARRAY */
4105
- eventTimeStamps: unknown[];
4143
+ eventTimeStamps: ZclArray | unknown[];
4106
4144
  };
4107
4145
  commands: never;
4108
4146
  commandResponses: never;
@@ -4150,7 +4188,7 @@ export interface TClusters {
4150
4188
  /** ID: 113 | Type: UINT8 */
4151
4189
  timeDelay: number;
4152
4190
  /** ID: 130 | Type: ARRAY */
4153
- eventTimeStamps: unknown[];
4191
+ eventTimeStamps: ZclArray | unknown[];
4154
4192
  };
4155
4193
  commands: never;
4156
4194
  commandResponses: never;
@@ -4198,7 +4236,7 @@ export interface TClusters {
4198
4236
  /** ID: 113 | Type: UINT8 */
4199
4237
  timeDelay: number;
4200
4238
  /** ID: 130 | Type: ARRAY */
4201
- eventTimeStamps: unknown[];
4239
+ eventTimeStamps: ZclArray | unknown[];
4202
4240
  };
4203
4241
  commands: never;
4204
4242
  commandResponses: never;
@@ -4244,7 +4282,7 @@ export interface TClusters {
4244
4282
  /** ID: 113 | Type: UINT8 */
4245
4283
  timeDelay: number;
4246
4284
  /** ID: 130 | Type: ARRAY */
4247
- eventTimeStamps: unknown[];
4285
+ eventTimeStamps: ZclArray | unknown[];
4248
4286
  };
4249
4287
  commands: never;
4250
4288
  commandResponses: never;
@@ -4284,7 +4322,7 @@ export interface TClusters {
4284
4322
  /** ID: 113 | Type: UINT8 */
4285
4323
  timeDelay: number;
4286
4324
  /** ID: 130 | Type: ARRAY */
4287
- eventTimeStamps: unknown[];
4325
+ eventTimeStamps: ZclArray | unknown[];
4288
4326
  };
4289
4327
  commands: never;
4290
4328
  commandResponses: never;
@@ -4322,7 +4360,7 @@ export interface TClusters {
4322
4360
  /** ID: 113 | Type: UINT8 */
4323
4361
  timeDelay: number;
4324
4362
  /** ID: 130 | Type: ARRAY */
4325
- eventTimeStamps: unknown[];
4363
+ eventTimeStamps: ZclArray | unknown[];
4326
4364
  };
4327
4365
  commands: never;
4328
4366
  commandResponses: never;
@@ -4360,7 +4398,7 @@ export interface TClusters {
4360
4398
  /** ID: 113 | Type: UINT8 */
4361
4399
  timeDelay: number;
4362
4400
  /** ID: 130 | Type: ARRAY */
4363
- eventTimeStamps: unknown[];
4401
+ eventTimeStamps: ZclArray | unknown[];
4364
4402
  };
4365
4403
  commands: never;
4366
4404
  commandResponses: never;
@@ -4368,7 +4406,7 @@ export interface TClusters {
4368
4406
  pi11073ProtocolTunnel: {
4369
4407
  attributes: {
4370
4408
  /** ID: 0 | Type: ARRAY */
4371
- deviceidList: unknown[];
4409
+ deviceidList: ZclArray | unknown[];
4372
4410
  /** ID: 1 | Type: IEEE_ADDR */
4373
4411
  managerTarget: string;
4374
4412
  /** ID: 2 | Type: UINT8 */
@@ -4547,7 +4585,7 @@ export interface TClusters {
4547
4585
  /** ID: 515 | Type: UINT24 */
4548
4586
  hoursInFault: number;
4549
4587
  /** ID: 516 | Type: BITMAP64 */
4550
- extendedStatus: number;
4588
+ extendedStatus: bigint;
4551
4589
  /** ID: 768 | Type: ENUM8 */
4552
4590
  unitOfMeasure: number;
4553
4591
  /** ID: 769 | Type: UINT24 */
@@ -4839,7 +4877,7 @@ export interface TClusters {
4839
4877
  };
4840
4878
  };
4841
4879
  tunneling: {
4842
- attributes: Record<string, never>;
4880
+ attributes: never;
4843
4881
  commands: {
4844
4882
  /** ID: 0 | Response ID: 0 */
4845
4883
  requestTunnel: {
@@ -4963,7 +5001,7 @@ export interface TClusters {
4963
5001
  haApplianceIdentification: {
4964
5002
  attributes: {
4965
5003
  /** ID: 0 | Type: UINT56 */
4966
- basicIdentification: number;
5004
+ basicIdentification: bigint;
4967
5005
  /** ID: 16 | Type: CHAR_STR */
4968
5006
  companyName: string;
4969
5007
  /** ID: 17 | Type: UINT16 */
@@ -5021,7 +5059,7 @@ export interface TClusters {
5021
5059
  commandResponses: never;
5022
5060
  };
5023
5061
  haApplianceEventsAlerts: {
5024
- attributes: Record<string, never>;
5062
+ attributes: never;
5025
5063
  commands: {
5026
5064
  /** ID: 0 */
5027
5065
  getAlerts: Record<string, never>;
@@ -5541,7 +5579,7 @@ export interface TClusters {
5541
5579
  commandResponses: never;
5542
5580
  };
5543
5581
  touchlink: {
5544
- attributes: Record<string, never>;
5582
+ attributes: never;
5545
5583
  commands: {
5546
5584
  /** ID: 0 | Response ID: 1 */
5547
5585
  scanRequest: {
@@ -5721,15 +5759,15 @@ export interface TClusters {
5721
5759
  numberOfSubDevices: number;
5722
5760
  /** Type: UINT8 */
5723
5761
  totalGroupIdentifiers: number;
5724
- /** Type: UINT8 */
5762
+ /** Type: UINT8, Conditions: [{fieldEquals field=numberOfSubDevices value=1}] */
5725
5763
  endpointID?: number;
5726
- /** Type: UINT16 */
5764
+ /** Type: UINT16, Conditions: [{fieldEquals field=numberOfSubDevices value=1}] */
5727
5765
  profileID?: number;
5728
- /** Type: UINT16 */
5766
+ /** Type: UINT16, Conditions: [{fieldEquals field=numberOfSubDevices value=1}] */
5729
5767
  deviceID?: number;
5730
- /** Type: UINT8 */
5768
+ /** Type: UINT8, Conditions: [{fieldEquals field=numberOfSubDevices value=1}] */
5731
5769
  version?: number;
5732
- /** Type: UINT8 */
5770
+ /** Type: UINT8, Conditions: [{fieldEquals field=numberOfSubDevices value=1}] */
5733
5771
  groupIDCount?: number;
5734
5772
  };
5735
5773
  /** ID: 3 */
@@ -5808,7 +5846,7 @@ export interface TClusters {
5808
5846
  };
5809
5847
  };
5810
5848
  manuSpecificClusterAduroSmart: {
5811
- attributes: Record<string, never>;
5849
+ attributes: never;
5812
5850
  commands: {
5813
5851
  /** ID: 0 */
5814
5852
  cmd0: Record<string, never>;
@@ -5816,7 +5854,7 @@ export interface TClusters {
5816
5854
  commandResponses: never;
5817
5855
  };
5818
5856
  manuSpecificOsram: {
5819
- attributes: Record<string, never>;
5857
+ attributes: never;
5820
5858
  commands: {
5821
5859
  /** ID: 1 */
5822
5860
  saveStartupParams: Record<string, never>;
@@ -5955,7 +5993,7 @@ export interface TClusters {
5955
5993
  /** ID: 301 | Type: INT16 */
5956
5994
  reportLocalTemperature: number;
5957
5995
  /** ID: 576 | Type: ARRAY */
5958
- flowMeterConfig: unknown[];
5996
+ flowMeterConfig: ZclArray | unknown[];
5959
5997
  /** ID: 643 | Type: UINT8 */
5960
5998
  coldLoadPickupStatus: number;
5961
5999
  };
@@ -5963,12 +6001,12 @@ export interface TClusters {
5963
6001
  commandResponses: never;
5964
6002
  };
5965
6003
  manuSpecificLegrandDevices: {
5966
- attributes: Record<string, never>;
6004
+ attributes: never;
5967
6005
  commands: never;
5968
6006
  commandResponses: never;
5969
6007
  };
5970
6008
  manuSpecificLegrandDevices2: {
5971
- attributes: Record<string, never>;
6009
+ attributes: never;
5972
6010
  commands: {
5973
6011
  /** ID: 0 */
5974
6012
  command0: {
@@ -5979,7 +6017,7 @@ export interface TClusters {
5979
6017
  commandResponses: never;
5980
6018
  };
5981
6019
  manuSpecificLegrandDevices3: {
5982
- attributes: Record<string, never>;
6020
+ attributes: never;
5983
6021
  commands: {
5984
6022
  /** ID: 0 */
5985
6023
  command0: {
@@ -5998,7 +6036,7 @@ export interface TClusters {
5998
6036
  commandResponses: never;
5999
6037
  };
6000
6038
  manuSpecificTuya: {
6001
- attributes: Record<string, never>;
6039
+ attributes: never;
6002
6040
  commands: {
6003
6041
  /** ID: 0 */
6004
6042
  dataRequest: {
@@ -6307,7 +6345,7 @@ export interface TClusters {
6307
6345
  commandResponses: never;
6308
6346
  };
6309
6347
  manuSpecificSmartThingsArrivalSensor: {
6310
- attributes: Record<string, never>;
6348
+ attributes: never;
6311
6349
  commands: never;
6312
6350
  commandResponses: {
6313
6351
  /** ID: 1 */
@@ -6374,7 +6412,7 @@ export interface TClusters {
6374
6412
  commandResponses: never;
6375
6413
  };
6376
6414
  heimanSpecificScenes: {
6377
- attributes: Record<string, never>;
6415
+ attributes: never;
6378
6416
  commands: {
6379
6417
  /** ID: 240 */
6380
6418
  cinema: Record<string, never>;
@@ -6390,7 +6428,7 @@ export interface TClusters {
6390
6428
  commandResponses: never;
6391
6429
  };
6392
6430
  tradfriButton: {
6393
- attributes: Record<string, never>;
6431
+ attributes: never;
6394
6432
  commands: {
6395
6433
  /** ID: 1 */
6396
6434
  action1: {
@@ -6421,7 +6459,7 @@ export interface TClusters {
6421
6459
  commandResponses: never;
6422
6460
  };
6423
6461
  heimanSpecificInfraRedRemote: {
6424
- attributes: Record<string, never>;
6462
+ attributes: never;
6425
6463
  commands: {
6426
6464
  /** ID: 240 */
6427
6465
  sendKey: {
@@ -6550,14 +6588,6 @@ export interface TClusters {
6550
6588
  commands: never;
6551
6589
  commandResponses: never;
6552
6590
  };
6553
- sprutDevice: {
6554
- attributes: {
6555
- /** ID: 0 | Type: BOOLEAN */
6556
- debug: number;
6557
- };
6558
- commands: never;
6559
- commandResponses: never;
6560
- };
6561
6591
  sprutVoc: {
6562
6592
  attributes: {
6563
6593
  /** ID: 26112 | Type: UINT16 */
@@ -6581,7 +6611,7 @@ export interface TClusters {
6581
6611
  commandResponses: never;
6582
6612
  };
6583
6613
  sprutIrBlaster: {
6584
- attributes: Record<string, never>;
6614
+ attributes: never;
6585
6615
  commands: {
6586
6616
  /** ID: 0 */
6587
6617
  playStore: {
@@ -6628,7 +6658,7 @@ export interface TClusters {
6628
6658
  commandResponses: never;
6629
6659
  };
6630
6660
  owonClearMetering: {
6631
- attributes: Record<string, never>;
6661
+ attributes: never;
6632
6662
  commands: {
6633
6663
  /** ID: 0 */
6634
6664
  owonClearMeasurementData: Record<string, never>;
@@ -6636,7 +6666,7 @@ export interface TClusters {
6636
6666
  commandResponses: never;
6637
6667
  };
6638
6668
  zosungIRTransmit: {
6639
- attributes: Record<string, never>;
6669
+ attributes: never;
6640
6670
  commands: {
6641
6671
  /** ID: 0 */
6642
6672
  zosungSendIRCode00: {
@@ -6737,7 +6767,7 @@ export interface TClusters {
6737
6767
  };
6738
6768
  };
6739
6769
  zosungIRControl: {
6740
- attributes: Record<string, never>;
6770
+ attributes: never;
6741
6771
  commands: {
6742
6772
  /** ID: 0 */
6743
6773
  zosungControlIRCommand00: {
@@ -6889,7 +6919,7 @@ export interface TClusters {
6889
6919
  };
6890
6920
  };
6891
6921
  manuSpecificDoorman: {
6892
- attributes: Record<string, never>;
6922
+ attributes: never;
6893
6923
  commands: {
6894
6924
  /** ID: 252 */
6895
6925
  getConfigurationParameter: {
@@ -6982,9 +7012,9 @@ export interface TFoundation {
6982
7012
  attrId: number;
6983
7013
  /** Type: UINT8 */
6984
7014
  status: number;
6985
- /** Type: UINT8 */
7015
+ /** Type: UINT8, Conditions: [{fieldEquals field=status value=0}] */
6986
7016
  dataType?: number;
6987
- /** Type: USE_DATA_TYPE */
7017
+ /** Type: USE_DATA_TYPE, Conditions: [{fieldEquals field=status value=0}] */
6988
7018
  attrData?: unknown;
6989
7019
  }[];
6990
7020
  /** ID: 2 */
@@ -7009,7 +7039,7 @@ export interface TFoundation {
7009
7039
  writeRsp: {
7010
7040
  /** Type: UINT8 */
7011
7041
  status: number;
7012
- /** Type: UINT16 */
7042
+ /** Type: UINT16, Conditions: [{fieldEquals field=status reversed=true value=0}] */
7013
7043
  attrId?: number;
7014
7044
  }[];
7015
7045
  /** ID: 5 */
@@ -7027,24 +7057,24 @@ export interface TFoundation {
7027
7057
  direction: number;
7028
7058
  /** Type: UINT16 */
7029
7059
  attrId: number;
7030
- /** Type: UINT8 */
7060
+ /** Type: UINT8, Conditions: [{fieldEquals field=direction value=0}] */
7031
7061
  dataType?: number;
7032
- /** Type: UINT16 */
7062
+ /** Type: UINT16, Conditions: [{fieldEquals field=direction value=0}] */
7033
7063
  minRepIntval?: number;
7034
- /** Type: UINT16 */
7064
+ /** Type: UINT16, Conditions: [{fieldEquals field=direction value=0}] */
7035
7065
  maxRepIntval?: number;
7036
- /** Type: USE_DATA_TYPE */
7066
+ /** Type: USE_DATA_TYPE, Conditions: [{fieldEquals field=direction value=0}{dataTypeValueTypeEquals value=ANALOG}] */
7037
7067
  repChange?: unknown;
7038
- /** Type: UINT16 */
7068
+ /** Type: UINT16, Conditions: [{fieldEquals field=direction value=1}] */
7039
7069
  timeout?: number;
7040
7070
  }[];
7041
7071
  /** ID: 7 */
7042
7072
  configReportRsp: {
7043
7073
  /** Type: UINT8 */
7044
7074
  status: number;
7045
- /** Type: UINT8 */
7075
+ /** Type: UINT8, Conditions: [{minimumRemainingBufferBytes value=3}] */
7046
7076
  direction?: number;
7047
- /** Type: UINT16 */
7077
+ /** Type: UINT16, Conditions: [{minimumRemainingBufferBytes value=2}] */
7048
7078
  attrId?: number;
7049
7079
  }[];
7050
7080
  /** ID: 8 */
@@ -7062,15 +7092,15 @@ export interface TFoundation {
7062
7092
  direction: number;
7063
7093
  /** Type: UINT16 */
7064
7094
  attrId: number;
7065
- /** Type: UINT8 */
7095
+ /** Type: UINT8, Conditions: [{fieldEquals field=direction value=0}] */
7066
7096
  dataType?: number;
7067
- /** Type: UINT16 */
7097
+ /** Type: UINT16, Conditions: [{fieldEquals field=direction value=0}] */
7068
7098
  minRepIntval?: number;
7069
- /** Type: UINT16 */
7099
+ /** Type: UINT16, Conditions: [{fieldEquals field=direction value=0}] */
7070
7100
  maxRepIntval?: number;
7071
- /** Type: USE_DATA_TYPE */
7101
+ /** Type: USE_DATA_TYPE, Conditions: [{fieldEquals field=direction value=0}{dataTypeValueTypeEquals value=ANALOG}] */
7072
7102
  repChange?: unknown;
7073
- /** Type: UINT16 */
7103
+ /** Type: UINT16, Conditions: [{fieldEquals field=direction value=1}] */
7074
7104
  timeout?: number;
7075
7105
  }[];
7076
7106
  /** ID: 10 */
@@ -7129,9 +7159,9 @@ export interface TFoundation {
7129
7159
  writeStructuredRsp: {
7130
7160
  /** Type: UINT8 */
7131
7161
  status: number;
7132
- /** Type: UINT16 */
7162
+ /** Type: UINT16, Conditions: [{fieldEquals field=status reversed=true value=0}] */
7133
7163
  attrId?: number;
7134
- /** Type: STRUCTURED_SELECTOR */
7164
+ /** Type: STRUCTURED_SELECTOR, Conditions: [{fieldEquals field=status reversed=true value=0}] */
7135
7165
  selector?: StructuredSelector;
7136
7166
  }[];
7137
7167
  /** ID: 17 */
@@ -7190,13 +7220,16 @@ export interface TFoundation {
7190
7220
  export type TFoundationRepetitive = "read" | "readRsp" | "write" | "writeUndiv" | "writeRsp" | "writeNoRsp" | "configReport" | "configReportRsp" | "readReportConfig" | "readReportConfigRsp" | "report" | "readStructured" | "writeStructured" | "writeStructuredRsp";
7191
7221
  export type TFoundationFlat = "defaultRsp" | "discover" | "discoverCommands" | "discoverCommandsGen" | "discoverExt";
7192
7222
  export type TFoundationOneOf = "discoverRsp" | "discoverCommandsRsp" | "discoverCommandsGenRsp" | "discoverExtRsp";
7193
- export type TClusterGenericPayload = Record<string, unknown>;
7194
7223
  export type TClusterAttributeKeys<Cl extends number | string> = Cl extends keyof TClusters ? (keyof TClusters[Cl]["attributes"])[] : (string | number)[];
7195
- export type TClusterAttributes<Cl extends number | string> = Cl extends keyof TClusters ? TClusters[Cl]["attributes"] : TClusterGenericPayload;
7196
- export type TPartialClusterAttributes<Cl extends number | string> = Cl extends keyof TClusters ? Partial<TClusters[Cl]["attributes"]> : TClusterGenericPayload;
7197
- export type TClusterCommandPayload<Cl extends number | string, Co extends number | string> = Cl extends keyof TClusters ? Co extends keyof TClusters[Cl]["commands"] ? TClusters[Cl]["commands"][Co] : TClusterGenericPayload : TClusterGenericPayload;
7198
- export type TClusterCommandResponsePayload<Cl extends number | string, Co extends number | string> = Cl extends keyof TClusters ? Co extends keyof TClusters[Cl]["commandResponses"] ? TClusters[Cl]["commandResponses"][Co] : TClusterGenericPayload : TClusterGenericPayload;
7199
- export type TClusterPayload<Cl extends number | string, Co extends number | string> = Cl extends keyof TClusters ? TClusters[Cl]["commands"] extends never ? TClusters[Cl]["commandResponses"] extends never ? never : Co extends keyof TClusters[Cl]["commandResponses"] ? TClusters[Cl]["commandResponses"][Co] : TClusterGenericPayload : Co extends keyof TClusters[Cl]["commands"] ? TClusters[Cl]["commands"][Co] : Co extends keyof TClusters[Cl]["commandResponses"] ? TClusters[Cl]["commandResponses"][Co] : TClusterGenericPayload : TClusterGenericPayload;
7224
+ export type TClusterAttributes<Cl extends number | string> = Cl extends keyof TClusters ? TClusters[Cl]["attributes"] : never;
7225
+ export type TPartialClusterAttributes<Cl extends number | string> = Cl extends keyof TClusters ? Partial<TClusters[Cl]["attributes"]> : never;
7226
+ export type TClusterCommandKeys<Cl extends number | string> = Cl extends keyof TClusters ? (keyof TClusters[Cl]["commands"])[] : (string | number)[];
7227
+ export type TClusterCommandResponseKeys<Cl extends number | string> = Cl extends keyof TClusters ? (keyof TClusters[Cl]["commandResponses"])[] : (string | number)[];
7228
+ export type TClusterCommands<Cl extends number | string> = Cl extends keyof TClusters ? TClusters[Cl]["commands"] : never;
7229
+ export type TClusterCommandResponses<Cl extends number | string> = Cl extends keyof TClusters ? TClusters[Cl]["commandResponses"] : never;
7230
+ export type TClusterCommandPayload<Cl extends number | string, Co extends number | string> = Cl extends keyof TClusters ? Co extends keyof TClusters[Cl]["commands"] ? TClusters[Cl]["commands"][Co] : never : never;
7231
+ export type TClusterCommandResponsePayload<Cl extends number | string, Co extends number | string> = Cl extends keyof TClusters ? Co extends keyof TClusters[Cl]["commandResponses"] ? TClusters[Cl]["commandResponses"][Co] : never : never;
7232
+ export type TClusterPayload<Cl extends number | string, Co extends number | string> = Cl extends keyof TClusters ? TClusters[Cl]["commands"] extends never ? TClusters[Cl]["commandResponses"] extends never ? never : Co extends keyof TClusters[Cl]["commandResponses"] ? TClusters[Cl]["commandResponses"][Co] : never : Co extends keyof TClusters[Cl]["commands"] ? TClusters[Cl]["commands"][Co] : Co extends keyof TClusters[Cl]["commandResponses"] ? TClusters[Cl]["commandResponses"][Co] : never : never;
7200
7233
  export type TFoundationGenericPayload = TFoundation[keyof TFoundation];
7201
7234
  export type TFoundationRepetitivePayload = TFoundation[TFoundationRepetitive];
7202
7235
  export type TFoundationFlatPayload = TFoundation[TFoundationFlat];