zigbee-clusters 2.9.0 → 2.9.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/index.d.ts +2 -22
- package/lib/clusters/metering.js +41 -21
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -579,32 +579,22 @@ export interface MeteringClusterAttributes {
|
|
|
579
579
|
currentTier3SummationReceived?: number;
|
|
580
580
|
currentTier4SummationDelivered?: number;
|
|
581
581
|
currentTier4SummationReceived?: number;
|
|
582
|
-
status?:
|
|
582
|
+
status?: Partial<{ checkMeter: boolean; lowBattery: boolean; tamperDetect: boolean; powerFailure: boolean; powerQuality: boolean; leakDetect: boolean; serviceDisconnect: boolean }>;
|
|
583
583
|
remainingBatteryLife?: number;
|
|
584
584
|
hoursInOperation?: number;
|
|
585
585
|
hoursInFault?: number;
|
|
586
|
-
extendedStatus?: unknown;
|
|
587
586
|
unitOfMeasure?: unknown;
|
|
588
587
|
multiplier?: number;
|
|
589
588
|
divisor?: number;
|
|
590
|
-
summationFormatting?: unknown;
|
|
591
|
-
demandFormatting?: unknown;
|
|
592
|
-
historicalConsumptionFormatting?: unknown;
|
|
593
|
-
meteringDeviceType?: unknown;
|
|
594
589
|
siteId?: Buffer;
|
|
595
590
|
meterSerialNumber?: Buffer;
|
|
596
591
|
energyCarrierUnitOfMeasure?: unknown;
|
|
597
|
-
energyCarrierSummationFormatting?: unknown;
|
|
598
|
-
energyCarrierDemandFormatting?: unknown;
|
|
599
592
|
temperatureUnitOfMeasure?: unknown;
|
|
600
|
-
temperatureFormatting?: unknown;
|
|
601
593
|
moduleSerialNumber?: Buffer;
|
|
602
594
|
operatingTariffLabelDelivered?: Buffer;
|
|
603
595
|
operatingTariffLabelReceived?: Buffer;
|
|
604
596
|
customerIdNumber?: Buffer;
|
|
605
597
|
alternativeUnitOfMeasure?: unknown;
|
|
606
|
-
alternativeDemandFormatting?: unknown;
|
|
607
|
-
alternativeConsumptionFormatting?: unknown;
|
|
608
598
|
instantaneousDemand?: number;
|
|
609
599
|
currentDayConsumptionDelivered?: number;
|
|
610
600
|
currentDayConsumptionReceived?: number;
|
|
@@ -714,14 +704,6 @@ export interface MeteringClusterAttributes {
|
|
|
714
704
|
currentTier4Block14SummationDelivered?: number;
|
|
715
705
|
currentTier4Block15SummationDelivered?: number;
|
|
716
706
|
currentTier4Block16SummationDelivered?: number;
|
|
717
|
-
genericAlarmMask?: unknown;
|
|
718
|
-
electricityAlarmMask?: unknown;
|
|
719
|
-
genericFlowPressureAlarmMask?: unknown;
|
|
720
|
-
waterSpecificAlarmMask?: unknown;
|
|
721
|
-
heatAndCoolingSpecificAlarmMask?: unknown;
|
|
722
|
-
gasSpecificAlarmMask?: unknown;
|
|
723
|
-
extendedGenericAlarmMask?: unknown;
|
|
724
|
-
manufacturerAlarmMask?: unknown;
|
|
725
707
|
currentNoTierBlock1SummationReceived?: number;
|
|
726
708
|
currentNoTierBlock2SummationReceived?: number;
|
|
727
709
|
currentNoTierBlock3SummationReceived?: number;
|
|
@@ -742,12 +724,10 @@ export interface MeteringClusterAttributes {
|
|
|
742
724
|
billToDateTimeStampDelivered?: number;
|
|
743
725
|
projectedBillDelivered?: number;
|
|
744
726
|
projectedBillTimeStampDelivered?: number;
|
|
745
|
-
billDeliveredTrailingDigit?: unknown;
|
|
746
727
|
billToDateReceived?: number;
|
|
747
728
|
billToDateTimeStampReceived?: number;
|
|
748
729
|
projectedBillReceived?: number;
|
|
749
730
|
projectedBillTimeStampReceived?: number;
|
|
750
|
-
billReceivedTrailingDigit?: unknown;
|
|
751
731
|
proposedChangeSupplyImplementationTime?: number;
|
|
752
732
|
proposedChangeSupplyStatus?: unknown;
|
|
753
733
|
uncontrolledFlowThreshold?: number;
|
|
@@ -759,7 +739,7 @@ export interface MeteringClusterAttributes {
|
|
|
759
739
|
}
|
|
760
740
|
|
|
761
741
|
export interface MeteringCluster extends ZCLNodeCluster {
|
|
762
|
-
readAttributes<K extends 'currentSummationDelivered' | 'currentSummationReceived' | 'currentMaxDemandDelivered' | 'currentMaxDemandReceived' | 'dftSummation' | 'dailyFreezeTime' | 'powerFactor' | 'readingSnapShotTime' | 'currentMaxDemandDeliveredTime' | 'currentMaxDemandReceivedTime' | 'defaultUpdatePeriod' | 'fastPollUpdatePeriod' | 'currentBlockPeriodConsumptionDelivered' | 'dailyConsumptionTarget' | 'currentBlock' | 'profileIntervalPeriod' | 'currentTier1SummationDelivered' | 'currentTier1SummationReceived' | 'currentTier2SummationDelivered' | 'currentTier2SummationReceived' | 'currentTier3SummationDelivered' | 'currentTier3SummationReceived' | 'currentTier4SummationDelivered' | 'currentTier4SummationReceived' | 'status' | 'remainingBatteryLife' | 'hoursInOperation' | 'hoursInFault' | '
|
|
742
|
+
readAttributes<K extends 'currentSummationDelivered' | 'currentSummationReceived' | 'currentMaxDemandDelivered' | 'currentMaxDemandReceived' | 'dftSummation' | 'dailyFreezeTime' | 'powerFactor' | 'readingSnapShotTime' | 'currentMaxDemandDeliveredTime' | 'currentMaxDemandReceivedTime' | 'defaultUpdatePeriod' | 'fastPollUpdatePeriod' | 'currentBlockPeriodConsumptionDelivered' | 'dailyConsumptionTarget' | 'currentBlock' | 'profileIntervalPeriod' | 'currentTier1SummationDelivered' | 'currentTier1SummationReceived' | 'currentTier2SummationDelivered' | 'currentTier2SummationReceived' | 'currentTier3SummationDelivered' | 'currentTier3SummationReceived' | 'currentTier4SummationDelivered' | 'currentTier4SummationReceived' | 'status' | 'remainingBatteryLife' | 'hoursInOperation' | 'hoursInFault' | 'unitOfMeasure' | 'multiplier' | 'divisor' | 'siteId' | 'meterSerialNumber' | 'energyCarrierUnitOfMeasure' | 'temperatureUnitOfMeasure' | 'moduleSerialNumber' | 'operatingTariffLabelDelivered' | 'operatingTariffLabelReceived' | 'customerIdNumber' | 'alternativeUnitOfMeasure' | 'instantaneousDemand' | 'currentDayConsumptionDelivered' | 'currentDayConsumptionReceived' | 'previousDayConsumptionDelivered' | 'previousDayConsumptionReceived' | 'currentPartialProfileIntervalStartTimeDelivered' | 'currentPartialProfileIntervalStartTimeReceived' | 'currentPartialProfileIntervalValueDelivered' | 'currentPartialProfileIntervalValueReceived' | 'currentDayMaxPressure' | 'currentDayMinPressure' | 'previousDayMaxPressure' | 'previousDayMinPressure' | 'currentDayMaxDemand' | 'previousDayMaxDemand' | 'currentMonthMaxDemand' | 'currentYearMaxDemand' | 'currentDayMaxEnergyCarrierDemand' | 'previousDayMaxEnergyCarrierDemand' | 'currentMonthMaxEnergyCarrierDemand' | 'currentMonthMinEnergyCarrierDemand' | 'currentYearMaxEnergyCarrierDemand' | 'currentYearMinEnergyCarrierDemand' | 'maxNumberOfPeriodsDelivered' | 'currentDemandDelivered' | 'demandLimit' | 'demandIntegrationPeriod' | 'numberOfDemandSubintervals' | 'demandLimitArmDuration' | 'currentNoTierBlock1SummationDelivered' | 'currentNoTierBlock2SummationDelivered' | 'currentNoTierBlock3SummationDelivered' | 'currentNoTierBlock4SummationDelivered' | 'currentNoTierBlock5SummationDelivered' | 'currentNoTierBlock6SummationDelivered' | 'currentNoTierBlock7SummationDelivered' | 'currentNoTierBlock8SummationDelivered' | 'currentNoTierBlock9SummationDelivered' | 'currentNoTierBlock10SummationDelivered' | 'currentNoTierBlock11SummationDelivered' | 'currentNoTierBlock12SummationDelivered' | 'currentNoTierBlock13SummationDelivered' | 'currentNoTierBlock14SummationDelivered' | 'currentNoTierBlock15SummationDelivered' | 'currentNoTierBlock16SummationDelivered' | 'currentTier1Block1SummationDelivered' | 'currentTier1Block2SummationDelivered' | 'currentTier1Block3SummationDelivered' | 'currentTier1Block4SummationDelivered' | 'currentTier1Block5SummationDelivered' | 'currentTier1Block6SummationDelivered' | 'currentTier1Block7SummationDelivered' | 'currentTier1Block8SummationDelivered' | 'currentTier1Block9SummationDelivered' | 'currentTier1Block10SummationDelivered' | 'currentTier1Block11SummationDelivered' | 'currentTier1Block12SummationDelivered' | 'currentTier1Block13SummationDelivered' | 'currentTier1Block14SummationDelivered' | 'currentTier1Block15SummationDelivered' | 'currentTier1Block16SummationDelivered' | 'currentTier2Block1SummationDelivered' | 'currentTier2Block2SummationDelivered' | 'currentTier2Block3SummationDelivered' | 'currentTier2Block4SummationDelivered' | 'currentTier2Block5SummationDelivered' | 'currentTier2Block6SummationDelivered' | 'currentTier2Block7SummationDelivered' | 'currentTier2Block8SummationDelivered' | 'currentTier2Block9SummationDelivered' | 'currentTier2Block10SummationDelivered' | 'currentTier2Block11SummationDelivered' | 'currentTier2Block12SummationDelivered' | 'currentTier2Block13SummationDelivered' | 'currentTier2Block14SummationDelivered' | 'currentTier2Block15SummationDelivered' | 'currentTier2Block16SummationDelivered' | 'currentTier3Block1SummationDelivered' | 'currentTier3Block2SummationDelivered' | 'currentTier3Block3SummationDelivered' | 'currentTier3Block4SummationDelivered' | 'currentTier3Block5SummationDelivered' | 'currentTier3Block6SummationDelivered' | 'currentTier3Block7SummationDelivered' | 'currentTier3Block8SummationDelivered' | 'currentTier3Block9SummationDelivered' | 'currentTier3Block10SummationDelivered' | 'currentTier3Block11SummationDelivered' | 'currentTier3Block12SummationDelivered' | 'currentTier3Block13SummationDelivered' | 'currentTier3Block14SummationDelivered' | 'currentTier3Block15SummationDelivered' | 'currentTier3Block16SummationDelivered' | 'currentTier4Block1SummationDelivered' | 'currentTier4Block2SummationDelivered' | 'currentTier4Block3SummationDelivered' | 'currentTier4Block4SummationDelivered' | 'currentTier4Block5SummationDelivered' | 'currentTier4Block6SummationDelivered' | 'currentTier4Block7SummationDelivered' | 'currentTier4Block8SummationDelivered' | 'currentTier4Block9SummationDelivered' | 'currentTier4Block10SummationDelivered' | 'currentTier4Block11SummationDelivered' | 'currentTier4Block12SummationDelivered' | 'currentTier4Block13SummationDelivered' | 'currentTier4Block14SummationDelivered' | 'currentTier4Block15SummationDelivered' | 'currentTier4Block16SummationDelivered' | 'currentNoTierBlock1SummationReceived' | 'currentNoTierBlock2SummationReceived' | 'currentNoTierBlock3SummationReceived' | 'currentNoTierBlock4SummationReceived' | 'currentNoTierBlock5SummationReceived' | 'currentNoTierBlock6SummationReceived' | 'currentNoTierBlock7SummationReceived' | 'currentNoTierBlock8SummationReceived' | 'currentNoTierBlock9SummationReceived' | 'currentNoTierBlock10SummationReceived' | 'currentNoTierBlock11SummationReceived' | 'currentNoTierBlock12SummationReceived' | 'currentNoTierBlock13SummationReceived' | 'currentNoTierBlock14SummationReceived' | 'currentNoTierBlock15SummationReceived' | 'currentNoTierBlock16SummationReceived' | 'billToDateDelivered' | 'billToDateTimeStampDelivered' | 'projectedBillDelivered' | 'projectedBillTimeStampDelivered' | 'billToDateReceived' | 'billToDateTimeStampReceived' | 'projectedBillReceived' | 'projectedBillTimeStampReceived' | 'proposedChangeSupplyImplementationTime' | 'proposedChangeSupplyStatus' | 'uncontrolledFlowThreshold' | 'uncontrolledFlowThresholdUnitOfMeasure' | 'uncontrolledFlowMultiplier' | 'uncontrolledFlowDivisor' | 'flowStabilisationPeriod' | 'flowMeasurementPeriod'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<MeteringClusterAttributes, K>>;
|
|
763
743
|
readAttributes(attributeNames: Array<keyof MeteringClusterAttributes | number>, opts?: { timeout?: number }): Promise<Partial<MeteringClusterAttributes> & Record<number, unknown>>;
|
|
764
744
|
writeAttributes(attributes: Partial<MeteringClusterAttributes>, opts?: { timeout?: number }): Promise<unknown>;
|
|
765
745
|
on<K extends keyof MeteringClusterAttributes & string>(eventName: `attr.${K}`, listener: (value: MeteringClusterAttributes[K]) => void): this;
|
package/lib/clusters/metering.js
CHANGED
|
@@ -33,34 +33,51 @@ const ATTRIBUTES = {
|
|
|
33
33
|
currentTier4SummationReceived: { id: 0x0107, type: ZCLDataTypes.uint48 }, // 263, Optional
|
|
34
34
|
|
|
35
35
|
// Meter Status (0x0200 - 0x02FF)
|
|
36
|
-
status: {
|
|
36
|
+
status: { // 512, Optional
|
|
37
|
+
id: 0x0200,
|
|
38
|
+
type: ZCLDataTypes.map8(
|
|
39
|
+
'checkMeter',
|
|
40
|
+
'lowBattery',
|
|
41
|
+
'tamperDetect',
|
|
42
|
+
'powerFailure',
|
|
43
|
+
'powerQuality',
|
|
44
|
+
'leakDetect',
|
|
45
|
+
'serviceDisconnect',
|
|
46
|
+
),
|
|
47
|
+
},
|
|
37
48
|
remainingBatteryLife: { id: 0x0201, type: ZCLDataTypes.uint8 }, // 513, Optional
|
|
38
49
|
hoursInOperation: { id: 0x0202, type: ZCLDataTypes.uint24 }, // 514, Optional
|
|
39
50
|
hoursInFault: { id: 0x0203, type: ZCLDataTypes.uint24 }, // 515, Optional
|
|
40
|
-
|
|
51
|
+
// TODO: map64 bitmap with general flags (bits 0-13) and meter-type-specific flags (bits 24+)
|
|
52
|
+
// extendedStatus: { id: 0x0204, type: ZCLDataTypes.map64() }, // 516, Optional
|
|
41
53
|
|
|
42
54
|
// Formatting Set (0x0300 - 0x03FF)
|
|
43
55
|
unitOfMeasure: { id: 0x0300, type: ZCLDataTypes.enum8 }, // 768, Mandatory
|
|
44
56
|
multiplier: { id: 0x0301, type: ZCLDataTypes.uint24 }, // 769, Optional
|
|
45
57
|
divisor: { id: 0x0302, type: ZCLDataTypes.uint24 }, // 770, Optional
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
58
|
+
// TODO: map8 packed fields — bits 0-2: right digits, 3-6: left digits, 7: suppress zeros
|
|
59
|
+
// summationFormatting: { id: 0x0303, type: ZCLDataTypes.map8() }, // 771, Mandatory
|
|
60
|
+
// demandFormatting: { id: 0x0304, type: ZCLDataTypes.map8() }, // 772, Optional
|
|
61
|
+
// historicalConsumptionFormatting: { id: 0x0305, type: ZCLDataTypes.map8() }, // 773, Optional
|
|
62
|
+
// TODO: ZCL spec says enum values, but wire type is map8 for backwards compat
|
|
63
|
+
// meteringDeviceType: { id: 0x0306, type: ZCLDataTypes.map8() }, // 774, Mandatory
|
|
50
64
|
siteId: { id: 0x0307, type: ZCLDataTypes.octstr }, // 775, Optional
|
|
51
65
|
meterSerialNumber: { id: 0x0308, type: ZCLDataTypes.octstr }, // 776, Optional
|
|
52
66
|
energyCarrierUnitOfMeasure: { id: 0x0309, type: ZCLDataTypes.enum8 }, // 777, Optional
|
|
53
|
-
|
|
54
|
-
|
|
67
|
+
// TODO: map8 packed fields — bits 0-2: right digits, 3-6: left digits, 7: suppress zeros
|
|
68
|
+
// energyCarrierSummationFormatting: { id: 0x030A, type: ZCLDataTypes.map8() }, // 778, Optional
|
|
69
|
+
// energyCarrierDemandFormatting: { id: 0x030B, type: ZCLDataTypes.map8() }, // 779, Optional
|
|
55
70
|
temperatureUnitOfMeasure: { id: 0x030C, type: ZCLDataTypes.enum8 }, // 780, Optional
|
|
56
|
-
|
|
71
|
+
// TODO: map8 packed fields — bits 0-2: right digits, 3-6: left digits, 7: suppress zeros
|
|
72
|
+
// temperatureFormatting: { id: 0x030D, type: ZCLDataTypes.map8() }, // 781, Optional
|
|
57
73
|
moduleSerialNumber: { id: 0x030E, type: ZCLDataTypes.octstr }, // 782, Optional
|
|
58
74
|
operatingTariffLabelDelivered: { id: 0x030F, type: ZCLDataTypes.octstr }, // 783, Optional
|
|
59
75
|
operatingTariffLabelReceived: { id: 0x0310, type: ZCLDataTypes.octstr }, // 784, Optional
|
|
60
76
|
customerIdNumber: { id: 0x0311, type: ZCLDataTypes.octstr }, // 785, Optional
|
|
61
77
|
alternativeUnitOfMeasure: { id: 0x0312, type: ZCLDataTypes.enum8 }, // 786, Optional
|
|
62
|
-
|
|
63
|
-
|
|
78
|
+
// TODO: map8 packed fields — bits 0-2: right digits, 3-6: left digits, 7: suppress zeros
|
|
79
|
+
// alternativeDemandFormatting: { id: 0x0313, type: ZCLDataTypes.map8() }, // 787, Optional
|
|
80
|
+
// alternativeConsumptionFormatting: { id: 0x0314, type: ZCLDataTypes.map8() }, // 788, Optional
|
|
64
81
|
|
|
65
82
|
// Historical Consumption (0x0400 - 0x04FF)
|
|
66
83
|
instantaneousDemand: { id: 0x0400, type: ZCLDataTypes.int24 }, // 1024, Optional
|
|
@@ -193,14 +210,15 @@ const ATTRIBUTES = {
|
|
|
193
210
|
currentTier4Block16SummationDelivered: { id: 0x074F, type: ZCLDataTypes.uint48 },
|
|
194
211
|
|
|
195
212
|
// Alarms (0x0800 - 0x08FF)
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
213
|
+
// TODO: map16/32/48 alarm masks — bits map to alarm codes in their group (spec 10.4.2.2.9.1)
|
|
214
|
+
// genericAlarmMask: { id: 0x0800, type: ZCLDataTypes.map16() }, // 2048, Optional
|
|
215
|
+
// electricityAlarmMask: { id: 0x0801, type: ZCLDataTypes.map32() }, // 2049, Optional
|
|
216
|
+
// genericFlowPressureAlarmMask: { id: 0x0802, type: ZCLDataTypes.map16() }, // 2050, Optional
|
|
217
|
+
// waterSpecificAlarmMask: { id: 0x0803, type: ZCLDataTypes.map16() }, // 2051, Optional
|
|
218
|
+
// heatAndCoolingSpecificAlarmMask: { id: 0x0804, type: ZCLDataTypes.map16() }, // 2052, Optional
|
|
219
|
+
// gasSpecificAlarmMask: { id: 0x0805, type: ZCLDataTypes.map16() }, // 2053, Optional
|
|
220
|
+
// extendedGenericAlarmMask: { id: 0x0806, type: ZCLDataTypes.map48() }, // 2054, Optional
|
|
221
|
+
// manufacturerAlarmMask: { id: 0x0807, type: ZCLDataTypes.map16() }, // 2055, Optional
|
|
204
222
|
|
|
205
223
|
// Block Information Received (0x0900 - 0x09FF)
|
|
206
224
|
// All attributes in this section are Optional
|
|
@@ -226,12 +244,14 @@ const ATTRIBUTES = {
|
|
|
226
244
|
billToDateTimeStampDelivered: { id: 0x0A01, type: ZCLDataTypes.uint32 }, // 2561, Optional
|
|
227
245
|
projectedBillDelivered: { id: 0x0A02, type: ZCLDataTypes.uint32 }, // 2562, Optional
|
|
228
246
|
projectedBillTimeStampDelivered: { id: 0x0A03, type: ZCLDataTypes.uint32 }, // 2563, Optional
|
|
229
|
-
|
|
247
|
+
// TODO: map8 packed field — most significant nibble = digits right of decimal
|
|
248
|
+
// billDeliveredTrailingDigit: { id: 0x0A04, type: ZCLDataTypes.map8() }, // 2564, Optional
|
|
230
249
|
billToDateReceived: { id: 0x0A10, type: ZCLDataTypes.uint32 }, // 2576, Optional
|
|
231
250
|
billToDateTimeStampReceived: { id: 0x0A11, type: ZCLDataTypes.uint32 }, // 2577, Optional
|
|
232
251
|
projectedBillReceived: { id: 0x0A12, type: ZCLDataTypes.uint32 }, // 2578, Optional
|
|
233
252
|
projectedBillTimeStampReceived: { id: 0x0A13, type: ZCLDataTypes.uint32 }, // 2579, Optional
|
|
234
|
-
|
|
253
|
+
// TODO: map8 packed field — most significant nibble = digits right of decimal
|
|
254
|
+
// billReceivedTrailingDigit: { id: 0x0A14, type: ZCLDataTypes.map8() }, // 2580, Optional
|
|
235
255
|
|
|
236
256
|
// Supply Control (0x0B00 - 0x0BFF)
|
|
237
257
|
proposedChangeSupplyImplementationTime: { // Optional
|