zigbee-clusters 2.5.1 → 2.7.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.
- package/.prettierrc +7 -0
- package/AGENTS.md +451 -0
- package/README.md +26 -3
- package/index.d.ts +1009 -272
- package/lib/Cluster.js +79 -42
- package/lib/clusters/doorLock.js +614 -2
- package/lib/clusters/metering.js +245 -9
- package/lib/clusters/occupancySensing.js +49 -13
- package/lib/clusters/windowCovering.js +58 -23
- package/package.json +4 -1
- package/scripts/generate-types.js +360 -0
package/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// Auto-generated TypeScript definitions for zigbee-clusters
|
|
2
|
+
// Generated by scripts/generate-types.js
|
|
3
|
+
|
|
1
4
|
import * as EventEmitter from "events";
|
|
2
5
|
|
|
3
6
|
type EndpointDescriptor = {
|
|
@@ -10,294 +13,987 @@ type ConstructorOptions = {
|
|
|
10
13
|
endpointDescriptors: EndpointDescriptor[];
|
|
11
14
|
sendFrame: (endpointId: number, clusterId: number, frame: Buffer) => Promise<void>;
|
|
12
15
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* commands are commands which may be sent by the remote cluster.
|
|
17
|
-
*
|
|
18
|
-
* TODO: handle the case where `lastResponse===false`. It might be possible that there are
|
|
19
|
-
* more commands to be reported than can be transmitted in one report (in practice very
|
|
20
|
-
* unlikely though). If `lastResponse===false` invoke `discoverCommandsGenerated` again
|
|
21
|
-
* starting from the index where the previous invocation stopped (`maxResults`).
|
|
22
|
-
*
|
|
23
|
-
* TODO: The manufacturer-specific sub-field SHALL be set to 0 to discover standard commands
|
|
24
|
-
* in a ZigBee cluster or 1 to discover manufacturer-specific commands in either a standard or
|
|
25
|
-
* a manufacturer-specific cluster. A manufacturer ID in this field of 0xffff (wildcard) will
|
|
26
|
-
* discover any manufacture- specific
|
|
27
|
-
* commands.
|
|
28
|
-
*
|
|
29
|
-
* @param {object} [opts=]
|
|
30
|
-
* @param {number} [opts.startValue=0]
|
|
31
|
-
* @param {number} [opts.maxResults=250]
|
|
32
|
-
* @returns {Promise<number[]>}
|
|
33
|
-
*/
|
|
34
|
-
discoverCommandsGenerated({
|
|
35
|
-
startValue,
|
|
36
|
-
maxResults,
|
|
37
|
-
}?: {
|
|
16
|
+
|
|
17
|
+
export interface ZCLNodeCluster extends EventEmitter {
|
|
18
|
+
discoverCommandsGenerated(opts?: {
|
|
38
19
|
startValue?: number;
|
|
39
20
|
maxResults?: number;
|
|
40
21
|
}): Promise<number[]>;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
* commands are commands which may be received by the remote cluster.
|
|
44
|
-
*
|
|
45
|
-
* TODO: handle the case where `lastResponse===false`. It might be possible that there are
|
|
46
|
-
* more commands to be reported than can be transmitted in one report (in practice very
|
|
47
|
-
* unlikely though). If `lastResponse===false` invoke `discoverCommandsGenerated` again
|
|
48
|
-
* starting from the index where the previous invocation stopped (`maxResults`).
|
|
49
|
-
*
|
|
50
|
-
* TODO: The manufacturer-specific sub-field SHALL be set to 0 to discover standard commands
|
|
51
|
-
* in a ZigBee cluster or 1 to discover manufacturer-specific commands in either a standard or
|
|
52
|
-
* a manufacturer-specific cluster. A manufacturer ID in this field of 0xffff (wildcard) will
|
|
53
|
-
* discover any manufacture- specific commands.
|
|
54
|
-
*
|
|
55
|
-
* @param {object} [opts=]
|
|
56
|
-
* @param {number} [opts.startValue=0]
|
|
57
|
-
* @param {number} [opts.maxResults=255]
|
|
58
|
-
* @returns {Promise<number[]>}
|
|
59
|
-
*/
|
|
60
|
-
discoverCommandsReceived({
|
|
61
|
-
startValue,
|
|
62
|
-
maxResults,
|
|
63
|
-
}?: {
|
|
22
|
+
|
|
23
|
+
discoverCommandsReceived(opts?: {
|
|
64
24
|
startValue?: number;
|
|
65
25
|
maxResults?: number;
|
|
66
26
|
}): Promise<number[]>;
|
|
67
|
-
|
|
68
|
-
* Command which reads a given set of attributes from the remote cluster.
|
|
69
|
-
* Note: do not mix regular and manufacturer specific attributes.
|
|
70
|
-
* @param {string[]} attributeNames
|
|
71
|
-
* @param {{timeout: number}} [opts=]
|
|
72
|
-
* @returns {Promise<Object.<string, unknown>>} - Object with values (e.g. `{ onOff: true }`)
|
|
73
|
-
*/
|
|
27
|
+
|
|
74
28
|
readAttributes(
|
|
75
29
|
attributeNames: string[],
|
|
76
|
-
opts?: {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
): Promise<
|
|
80
|
-
|
|
81
|
-
}>;
|
|
82
|
-
/**
|
|
83
|
-
* Command which writes a given set of attribute key-value pairs to the remote cluster.
|
|
84
|
-
* Note: do not mix regular and manufacturer specific attributes.
|
|
85
|
-
* @param {object} attributes - Object with attribute names as keys and their values (e.g. `{
|
|
86
|
-
* onOff: true, fakeAttributeName: 10 }`.
|
|
87
|
-
* @returns {Promise<*|{attributes: *}>}
|
|
88
|
-
*/
|
|
89
|
-
writeAttributes(attributes?: object): Promise<
|
|
90
|
-
| any
|
|
91
|
-
| {
|
|
92
|
-
attributes: any;
|
|
93
|
-
}
|
|
94
|
-
>;
|
|
95
|
-
/**
|
|
96
|
-
* Command which configures attribute reporting for the given `attributes` on the remote cluster.
|
|
97
|
-
* Note: do not mix regular and manufacturer specific attributes.
|
|
98
|
-
* @param {object} attributes - Attribute reporting configuration (e.g. `{ onOff: {
|
|
99
|
-
* minInterval: 0, maxInterval: 300, minChange: 1 } }`)
|
|
100
|
-
* @returns {Promise<void>}
|
|
101
|
-
*/
|
|
30
|
+
opts?: { timeout?: number }
|
|
31
|
+
): Promise<{ [x: string]: unknown }>;
|
|
32
|
+
|
|
33
|
+
writeAttributes(attributes?: object): Promise<void>;
|
|
34
|
+
|
|
102
35
|
configureReporting(attributes?: object): Promise<void>;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
36
|
+
|
|
37
|
+
readReportingConfiguration(attributes?: (string | number)[]): Promise<{
|
|
38
|
+
status: string;
|
|
39
|
+
direction: 'reported' | 'received';
|
|
40
|
+
attributeId: number;
|
|
41
|
+
attributeDataType?: number;
|
|
42
|
+
minInterval?: number;
|
|
43
|
+
maxInterval?: number;
|
|
44
|
+
minChange?: number;
|
|
45
|
+
timeoutPeriod?: number;
|
|
46
|
+
}[]>;
|
|
47
|
+
|
|
48
|
+
discoverAttributes(): Promise<(string | number)[]>;
|
|
49
|
+
|
|
50
|
+
discoverAttributesExtended(): Promise<{
|
|
51
|
+
name?: string;
|
|
52
|
+
id: number;
|
|
53
|
+
acl: { readable: boolean; writable: boolean; reportable: boolean };
|
|
54
|
+
}[]>;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface AlarmsCluster extends ZCLNodeCluster {
|
|
58
|
+
resetAllAlarms(): Promise<void>;
|
|
59
|
+
getAlarm(): Promise<void>;
|
|
60
|
+
resetAlarmLog(): Promise<void>;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface AnalogInputClusterAttributes {
|
|
64
|
+
description?: string;
|
|
65
|
+
maxPresentValue?: number;
|
|
66
|
+
minPresentValue?: number;
|
|
67
|
+
outOfService?: boolean;
|
|
68
|
+
presentValue?: number;
|
|
69
|
+
reliability?: 'noFaultDetected' | 'noSensor' | 'overRange' | 'underRange' | 'openLoop' | 'shortedLoop' | 'noOutput' | 'unreliableOther' | 'processError' | 'configurationError';
|
|
70
|
+
resolution?: number;
|
|
71
|
+
statusFlags?: Partial<{ inAlarm: boolean; fault: boolean; overridden: boolean; outOfService: boolean }>;
|
|
72
|
+
applicationType?: number;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface AnalogInputCluster extends ZCLNodeCluster {
|
|
76
|
+
readAttributes<K extends 'description' | 'maxPresentValue' | 'minPresentValue' | 'outOfService' | 'presentValue' | 'reliability' | 'resolution' | 'statusFlags' | 'applicationType'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<AnalogInputClusterAttributes, K>>;
|
|
77
|
+
writeAttributes(attributes: Partial<AnalogInputClusterAttributes>): Promise<void>;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface AnalogOutputClusterAttributes {
|
|
81
|
+
description?: string;
|
|
82
|
+
maxPresentValue?: number;
|
|
83
|
+
minPresentValue?: number;
|
|
84
|
+
outOfService?: boolean;
|
|
85
|
+
presentValue?: number;
|
|
86
|
+
reliability?: 'noFaultDetected' | 'overRange' | 'underRange' | 'openLoop' | 'shortedLoop' | 'unreliableOther' | 'processError' | 'configurationError';
|
|
87
|
+
relinquishDefault?: number;
|
|
88
|
+
resolution?: number;
|
|
89
|
+
statusFlags?: Partial<{ inAlarm: boolean; fault: boolean; overridden: boolean; outOfService: boolean }>;
|
|
90
|
+
applicationType?: number;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface AnalogOutputCluster extends ZCLNodeCluster {
|
|
94
|
+
readAttributes<K extends 'description' | 'maxPresentValue' | 'minPresentValue' | 'outOfService' | 'presentValue' | 'reliability' | 'relinquishDefault' | 'resolution' | 'statusFlags' | 'applicationType'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<AnalogOutputClusterAttributes, K>>;
|
|
95
|
+
writeAttributes(attributes: Partial<AnalogOutputClusterAttributes>): Promise<void>;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export interface AnalogValueClusterAttributes {
|
|
99
|
+
description?: string;
|
|
100
|
+
outOfService?: boolean;
|
|
101
|
+
presentValue?: number;
|
|
102
|
+
reliability?: 'noFaultDetected' | 'overRange' | 'underRange' | 'openLoop' | 'shortedLoop' | 'unreliableOther' | 'processError' | 'configurationError';
|
|
103
|
+
relinquishDefault?: number;
|
|
104
|
+
statusFlags?: Partial<{ inAlarm: boolean; fault: boolean; overridden: boolean; outOfService: boolean }>;
|
|
105
|
+
applicationType?: number;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export interface AnalogValueCluster extends ZCLNodeCluster {
|
|
109
|
+
readAttributes<K extends 'description' | 'outOfService' | 'presentValue' | 'reliability' | 'relinquishDefault' | 'statusFlags' | 'applicationType'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<AnalogValueClusterAttributes, K>>;
|
|
110
|
+
writeAttributes(attributes: Partial<AnalogValueClusterAttributes>): Promise<void>;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export interface BallastConfigurationClusterAttributes {
|
|
114
|
+
physicalMinLevel?: number;
|
|
115
|
+
physicalMaxLevel?: number;
|
|
116
|
+
ballastStatus?: Partial<{ nonOperational: boolean; lampNotInSocket: boolean }>;
|
|
117
|
+
minLevel?: number;
|
|
118
|
+
maxLevel?: number;
|
|
119
|
+
powerOnLevel?: number;
|
|
120
|
+
powerOnFadeTime?: number;
|
|
121
|
+
intrinsicBallastFactor?: number;
|
|
122
|
+
ballastFactorAdjustment?: number;
|
|
123
|
+
lampQuantity?: number;
|
|
124
|
+
lampType?: string;
|
|
125
|
+
lampManufacturer?: string;
|
|
126
|
+
lampRatedHours?: number;
|
|
127
|
+
lampBurnHours?: number;
|
|
128
|
+
lampAlarmMode?: Partial<{ lampBurnHours: boolean }>;
|
|
129
|
+
lampBurnHoursTripPoint?: number;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export interface BallastConfigurationCluster extends ZCLNodeCluster {
|
|
133
|
+
readAttributes<K extends 'physicalMinLevel' | 'physicalMaxLevel' | 'ballastStatus' | 'minLevel' | 'maxLevel' | 'powerOnLevel' | 'powerOnFadeTime' | 'intrinsicBallastFactor' | 'ballastFactorAdjustment' | 'lampQuantity' | 'lampType' | 'lampManufacturer' | 'lampRatedHours' | 'lampBurnHours' | 'lampAlarmMode' | 'lampBurnHoursTripPoint'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<BallastConfigurationClusterAttributes, K>>;
|
|
134
|
+
writeAttributes(attributes: Partial<BallastConfigurationClusterAttributes>): Promise<void>;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export interface BasicClusterAttributes {
|
|
138
|
+
zclVersion?: number;
|
|
139
|
+
appVersion?: number;
|
|
140
|
+
stackVersion?: number;
|
|
141
|
+
hwVersion?: number;
|
|
142
|
+
manufacturerName?: string;
|
|
143
|
+
modelId?: string;
|
|
144
|
+
dateCode?: string;
|
|
145
|
+
powerSource?: 'unknown' | 'mains' | 'mains3phase' | 'battery' | 'dc' | 'emergencyMains' | 'emergencyTransfer';
|
|
146
|
+
appProfileVersion?: number;
|
|
147
|
+
locationDesc?: string;
|
|
148
|
+
physicalEnv?: 'Unspecified' | 'Atrium' | 'Bar' | 'Courtyard' | 'Bathroom' | 'Bedroom' | 'BilliardRoom' | 'UtilityRoom' | 'Cellar' | 'StorageCloset' | 'Theater' | 'Office' | 'Deck' | 'Den' | 'DiningRoom' | 'ElectricalRoom' | 'Elevator' | 'Entry' | 'FamilyRoom' | 'MainFloor' | 'Upstairs' | 'Downstairs' | 'Basement' | 'Gallery' | 'GameRoom' | 'Garage' | 'Gym' | 'Hallway' | 'House' | 'Kitchen' | 'LaundryRoom' | 'Library' | 'MasterBedroom' | 'MudRoom' | 'Nursery' | 'Pantry' | 'Outside' | 'Pool' | 'Porch' | 'SewingRoom' | 'SittingRoom' | 'Stairway' | 'Yard' | 'Attic' | 'HotTub' | 'LivingRoom' | 'Sauna' | 'Workshop' | 'GuestBedroom' | 'GuestBath' | 'PowderRoom' | 'BackYard' | 'FrontYard' | 'Patio' | 'Driveway' | 'SunRoom' | 'Spa' | 'Whirlpool' | 'Shed' | 'EquipmentStorage' | 'HobbyRoom' | 'Fountain' | 'Pond' | 'ReceptionRoom' | 'BreakfastRoom' | 'Nook' | 'Garden' | 'Balcony' | 'PanicRoom' | 'Terrace' | 'Roof' | 'Toilet' | 'ToiletMain' | 'OutsideToilet' | 'ShowerRoom' | 'Study' | 'FrontGarden' | 'BackGarden' | 'Kettle' | 'Television' | 'Stove' | 'Microwave' | 'Toaster' | 'Vacuum' | 'Appliance' | 'FrontDoor' | 'BackDoor' | 'FridgeDoor' | 'MedicationCabinetDoor' | 'WardrobeDoor' | 'FrontCupboardDoor' | 'OtherDoor' | 'WaitingRoom' | 'TriageRoom' | 'DoctorsOffice' | 'PatientsPrivateRoom' | 'ConsultationRoom' | 'NurseStation' | 'Ward' | 'Corridor' | 'OperatingTheatre' | 'DentalSurgeryRoom' | 'MedicalImagingRoom' | 'DecontaminationRoom' | 'Unknown';
|
|
149
|
+
deviceEnabled?: boolean;
|
|
150
|
+
alarmMask?: Partial<{ hardwareFault: boolean; softwareFault: boolean }>;
|
|
151
|
+
disableLocalConfig?: Partial<{ factoryResetDisabled: boolean; configurationDisabled: boolean }>;
|
|
152
|
+
swBuildId?: string;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export interface BasicCluster extends ZCLNodeCluster {
|
|
156
|
+
readAttributes<K extends 'zclVersion' | 'appVersion' | 'stackVersion' | 'hwVersion' | 'manufacturerName' | 'modelId' | 'dateCode' | 'powerSource' | 'appProfileVersion' | 'locationDesc' | 'physicalEnv' | 'deviceEnabled' | 'alarmMask' | 'disableLocalConfig' | 'swBuildId'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<BasicClusterAttributes, K>>;
|
|
157
|
+
writeAttributes(attributes: Partial<BasicClusterAttributes>): Promise<void>;
|
|
177
158
|
factoryReset(): Promise<void>;
|
|
178
159
|
}
|
|
179
160
|
|
|
180
|
-
interface
|
|
161
|
+
export interface BinaryInputClusterAttributes {
|
|
162
|
+
activeText?: string;
|
|
163
|
+
description?: string;
|
|
164
|
+
inactiveText?: string;
|
|
165
|
+
outOfService?: boolean;
|
|
166
|
+
polarity?: 'normal' | 'reverse';
|
|
167
|
+
presentValue?: boolean;
|
|
168
|
+
reliability?: 'noFaultDetected' | 'noSensor' | 'overRange' | 'underRange' | 'openLoop' | 'shortedLoop' | 'noOutput' | 'unreliableOther' | 'processError' | 'configurationError';
|
|
169
|
+
statusFlags?: Partial<{ inAlarm: boolean; fault: boolean; overridden: boolean; outOfService: boolean }>;
|
|
170
|
+
applicationType?: number;
|
|
171
|
+
}
|
|
181
172
|
|
|
182
|
-
interface
|
|
183
|
-
|
|
173
|
+
export interface BinaryInputCluster extends ZCLNodeCluster {
|
|
174
|
+
readAttributes<K extends 'activeText' | 'description' | 'inactiveText' | 'outOfService' | 'polarity' | 'presentValue' | 'reliability' | 'statusFlags' | 'applicationType'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<BinaryInputClusterAttributes, K>>;
|
|
175
|
+
writeAttributes(attributes: Partial<BinaryInputClusterAttributes>): Promise<void>;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export interface BinaryOutputClusterAttributes {
|
|
179
|
+
activeText?: string;
|
|
180
|
+
description?: string;
|
|
181
|
+
inactiveText?: string;
|
|
182
|
+
minimumOffTime?: number;
|
|
183
|
+
minimumOnTime?: number;
|
|
184
|
+
outOfService?: boolean;
|
|
185
|
+
polarity?: 'normal' | 'reverse';
|
|
186
|
+
presentValue?: boolean;
|
|
187
|
+
reliability?: 'noFaultDetected' | 'overRange' | 'underRange' | 'openLoop' | 'shortedLoop' | 'unreliableOther' | 'processError' | 'configurationError';
|
|
188
|
+
relinquishDefault?: boolean;
|
|
189
|
+
statusFlags?: Partial<{ inAlarm: boolean; fault: boolean; overridden: boolean; outOfService: boolean }>;
|
|
190
|
+
applicationType?: number;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
export interface BinaryOutputCluster extends ZCLNodeCluster {
|
|
194
|
+
readAttributes<K extends 'activeText' | 'description' | 'inactiveText' | 'minimumOffTime' | 'minimumOnTime' | 'outOfService' | 'polarity' | 'presentValue' | 'reliability' | 'relinquishDefault' | 'statusFlags' | 'applicationType'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<BinaryOutputClusterAttributes, K>>;
|
|
195
|
+
writeAttributes(attributes: Partial<BinaryOutputClusterAttributes>): Promise<void>;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
export interface BinaryValueClusterAttributes {
|
|
199
|
+
activeText?: string;
|
|
200
|
+
description?: string;
|
|
201
|
+
inactiveText?: string;
|
|
202
|
+
minimumOffTime?: number;
|
|
203
|
+
minimumOnTime?: number;
|
|
204
|
+
outOfService?: boolean;
|
|
205
|
+
polarity?: 'normal' | 'reverse';
|
|
206
|
+
presentValue?: boolean;
|
|
207
|
+
reliability?: 'noFaultDetected' | 'overRange' | 'underRange' | 'openLoop' | 'shortedLoop' | 'unreliableOther' | 'processError' | 'configurationError';
|
|
208
|
+
relinquishDefault?: boolean;
|
|
209
|
+
statusFlags?: Partial<{ inAlarm: boolean; fault: boolean; overridden: boolean; outOfService: boolean }>;
|
|
210
|
+
applicationType?: number;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
export interface BinaryValueCluster extends ZCLNodeCluster {
|
|
214
|
+
readAttributes<K extends 'activeText' | 'description' | 'inactiveText' | 'minimumOffTime' | 'minimumOnTime' | 'outOfService' | 'polarity' | 'presentValue' | 'reliability' | 'relinquishDefault' | 'statusFlags' | 'applicationType'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<BinaryValueClusterAttributes, K>>;
|
|
215
|
+
writeAttributes(attributes: Partial<BinaryValueClusterAttributes>): Promise<void>;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export interface ColorControlClusterAttributes {
|
|
219
|
+
currentHue?: number;
|
|
220
|
+
currentSaturation?: number;
|
|
221
|
+
currentX?: number;
|
|
222
|
+
currentY?: number;
|
|
223
|
+
colorTemperatureMireds?: number;
|
|
224
|
+
colorMode?: 'currentHueAndCurrentSaturation' | 'currentXAndCurrentY' | 'colorTemperatureMireds';
|
|
225
|
+
colorCapabilities?: Partial<{ hueAndSaturation: boolean; enhancedHue: boolean; colorLoop: boolean; xy: boolean; colorTemperature: boolean }>;
|
|
226
|
+
colorTempPhysicalMinMireds?: number;
|
|
227
|
+
colorTempPhysicalMaxMireds?: number;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export interface ColorControlCluster extends ZCLNodeCluster {
|
|
231
|
+
readAttributes<K extends 'currentHue' | 'currentSaturation' | 'currentX' | 'currentY' | 'colorTemperatureMireds' | 'colorMode' | 'colorCapabilities' | 'colorTempPhysicalMinMireds' | 'colorTempPhysicalMaxMireds'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<ColorControlClusterAttributes, K>>;
|
|
232
|
+
writeAttributes(attributes: Partial<ColorControlClusterAttributes>): Promise<void>;
|
|
233
|
+
moveToHue(args: { hue: number; direction: 'shortestDistance' | 'longestDistance' | 'up' | 'down'; transitionTime: number }): Promise<void>;
|
|
234
|
+
moveToSaturation(args: { saturation: number; transitionTime: number }): Promise<void>;
|
|
235
|
+
moveToHueAndSaturation(args: { hue: number; saturation: number; transitionTime: number }): Promise<void>;
|
|
236
|
+
moveToColor(args: { colorX: number; colorY: number; transitionTime: number }): Promise<void>;
|
|
237
|
+
moveToColorTemperature(args: { colorTemperature: number; transitionTime: number }): Promise<void>;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
export interface DehumidificationControlCluster extends ZCLNodeCluster {
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export interface DeviceTemperatureClusterAttributes {
|
|
244
|
+
currentTemperature?: number;
|
|
245
|
+
minTempExperienced?: number;
|
|
246
|
+
maxTempExperienced?: number;
|
|
247
|
+
overTempTotalDwell?: number;
|
|
248
|
+
deviceTempAlarmMask?: Partial<{ deviceTemperatureTooLow: boolean; deviceTemperatureTooHigh: boolean }>;
|
|
249
|
+
lowTempThreshold?: number;
|
|
250
|
+
highTempThreshold?: number;
|
|
251
|
+
lowTempDwellTripPoint?: number;
|
|
252
|
+
highTempDwellTripPoint?: number;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export interface DeviceTemperatureCluster extends ZCLNodeCluster {
|
|
256
|
+
readAttributes<K extends 'currentTemperature' | 'minTempExperienced' | 'maxTempExperienced' | 'overTempTotalDwell' | 'deviceTempAlarmMask' | 'lowTempThreshold' | 'highTempThreshold' | 'lowTempDwellTripPoint' | 'highTempDwellTripPoint'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<DeviceTemperatureClusterAttributes, K>>;
|
|
257
|
+
writeAttributes(attributes: Partial<DeviceTemperatureClusterAttributes>): Promise<void>;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
export interface DiagnosticsCluster extends ZCLNodeCluster {
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
export interface DoorLockClusterAttributes {
|
|
264
|
+
lockState?: 'notFullyLocked' | 'locked' | 'unlocked' | 'undefined';
|
|
265
|
+
lockType?: 'deadBolt' | 'magnetic' | 'other' | 'mortise' | 'rim' | 'latchBolt' | 'cylindricalLock' | 'tubularLock' | 'interconnectedLock' | 'deadLatch' | 'doorFurniture';
|
|
266
|
+
actuatorEnabled?: boolean;
|
|
267
|
+
doorState?: 'open' | 'closed' | 'errorJammed' | 'errorForcedOpen' | 'errorUnspecified' | 'undefined';
|
|
268
|
+
doorOpenEvents?: number;
|
|
269
|
+
doorClosedEvents?: number;
|
|
270
|
+
openPeriod?: number;
|
|
271
|
+
numberOfLogRecordsSupported?: number;
|
|
272
|
+
numberOfTotalUsersSupported?: number;
|
|
273
|
+
numberOfPINUsersSupported?: number;
|
|
274
|
+
numberOfRFIDUsersSupported?: number;
|
|
275
|
+
numberOfWeekDaySchedulesSupportedPerUser?: number;
|
|
276
|
+
numberOfYearDaySchedulesSupportedPerUser?: number;
|
|
277
|
+
numberOfHolidaySchedulesSupported?: number;
|
|
278
|
+
maxPINCodeLength?: number;
|
|
279
|
+
minPINCodeLength?: number;
|
|
280
|
+
maxRFIDCodeLength?: number;
|
|
281
|
+
minRFIDCodeLength?: number;
|
|
282
|
+
enableLogging?: boolean;
|
|
283
|
+
language?: string;
|
|
284
|
+
ledSettings?: number;
|
|
285
|
+
autoRelockTime?: number;
|
|
286
|
+
soundVolume?: number;
|
|
287
|
+
operatingMode?: 'normal' | 'vacation' | 'privacy' | 'noRFLockOrUnlock' | 'passage';
|
|
288
|
+
supportedOperatingModes?: Partial<{ normal: boolean; vacation: boolean; privacy: boolean; noRFLockOrUnlock: boolean; passage: boolean }>;
|
|
289
|
+
defaultConfigurationRegister?: Partial<{ enableLocalProgramming: boolean; keypadInterfaceDefaultAccess: boolean; rfInterfaceDefaultAccess: boolean; reserved3: boolean; reserved4: boolean; soundEnabled: boolean; autoRelockTimeSet: boolean; ledSettingsSet: boolean }>;
|
|
290
|
+
enableLocalProgramming?: boolean;
|
|
291
|
+
enableOneTouchLocking?: boolean;
|
|
292
|
+
enableInsideStatusLED?: boolean;
|
|
293
|
+
enablePrivacyModeButton?: boolean;
|
|
294
|
+
wrongCodeEntryLimit?: number;
|
|
295
|
+
userCodeTemporaryDisableTime?: number;
|
|
296
|
+
sendPINOverTheAir?: boolean;
|
|
297
|
+
requirePINforRFOperation?: boolean;
|
|
298
|
+
securityLevel?: 'network' | 'apsSecurity';
|
|
299
|
+
alarmMask?: Partial<{ deadboltJammed: boolean; lockResetToFactoryDefaults: boolean; reserved2: boolean; rfModulePowerCycled: boolean; tamperAlarmWrongCodeEntryLimit: boolean; tamperAlarmFrontEscutcheonRemoved: boolean; forcedDoorOpenUnderDoorLockedCondition: boolean }>;
|
|
300
|
+
keypadOperationEventMask?: Partial<{ unknownOrManufacturerSpecificKeypadOperationEvent: boolean; lockSourceKeypad: boolean; unlockSourceKeypad: boolean; lockSourceKeypadErrorInvalidPIN: boolean; lockSourceKeypadErrorInvalidSchedule: boolean; unlockSourceKeypadErrorInvalidCode: boolean; unlockSourceKeypadErrorInvalidSchedule: boolean; nonAccessUserOperationEventSourceKeypad: boolean }>;
|
|
301
|
+
rfOperationEventMask?: Partial<{ unknownOrManufacturerSpecificKeypadOperationEvent: boolean; lockSourceRF: boolean; unlockSourceRF: boolean; lockSourceRFErrorInvalidCode: boolean; lockSourceRFErrorInvalidSchedule: boolean; unlockSourceRFErrorInvalidCode: boolean; unlockSourceRFErrorInvalidSchedule: boolean }>;
|
|
302
|
+
manualOperationEventMask?: Partial<{ unknownOrManufacturerSpecificManualOperationEvent: boolean; thumbturnLock: boolean; thumbturnUnlock: boolean; oneTouchLock: boolean; keyLock: boolean; keyUnlock: boolean; autoLock: boolean; scheduleLock: boolean; scheduleUnlock: boolean; manualLock: boolean; manualUnlock: boolean }>;
|
|
303
|
+
rfidOperationEventMask?: Partial<{ unknownOrManufacturerSpecificKeypadOperationEvent: boolean; lockSourceRFID: boolean; unlockSourceRFID: boolean; lockSourceRFIDErrorInvalidRFIDID: boolean; lockSourceRFIDErrorInvalidSchedule: boolean; unlockSourceRFIDErrorInvalidRFIDID: boolean; unlockSourceRFIDErrorInvalidSchedule: boolean }>;
|
|
304
|
+
keypadProgrammingEventMask?: Partial<{ unknownOrManufacturerSpecificKeypadProgrammingEvent: boolean; masterCodeChanged: boolean; pinCodeAdded: boolean; pinCodeDeleted: boolean; pinCodeChanged: boolean }>;
|
|
305
|
+
rfProgrammingEventMask?: Partial<{ unknownOrManufacturerSpecificRFProgrammingEvent: boolean; reserved1: boolean; pinCodeAdded: boolean; pinCodeDeleted: boolean; pinCodeChanged: boolean; rfidCodeAdded: boolean; rfidCodeDeleted: boolean }>;
|
|
306
|
+
rfidProgrammingEventMask?: Partial<{ unknownOrManufacturerSpecificRFIDProgrammingEvent: boolean; rfidCodeAdded: boolean; rfidCodeDeleted: boolean }>;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
export interface DoorLockCluster extends ZCLNodeCluster {
|
|
310
|
+
readAttributes<K extends 'lockState' | 'lockType' | 'actuatorEnabled' | 'doorState' | 'doorOpenEvents' | 'doorClosedEvents' | 'openPeriod' | 'numberOfLogRecordsSupported' | 'numberOfTotalUsersSupported' | 'numberOfPINUsersSupported' | 'numberOfRFIDUsersSupported' | 'numberOfWeekDaySchedulesSupportedPerUser' | 'numberOfYearDaySchedulesSupportedPerUser' | 'numberOfHolidaySchedulesSupported' | 'maxPINCodeLength' | 'minPINCodeLength' | 'maxRFIDCodeLength' | 'minRFIDCodeLength' | 'enableLogging' | 'language' | 'ledSettings' | 'autoRelockTime' | 'soundVolume' | 'operatingMode' | 'supportedOperatingModes' | 'defaultConfigurationRegister' | 'enableLocalProgramming' | 'enableOneTouchLocking' | 'enableInsideStatusLED' | 'enablePrivacyModeButton' | 'wrongCodeEntryLimit' | 'userCodeTemporaryDisableTime' | 'sendPINOverTheAir' | 'requirePINforRFOperation' | 'securityLevel' | 'alarmMask' | 'keypadOperationEventMask' | 'rfOperationEventMask' | 'manualOperationEventMask' | 'rfidOperationEventMask' | 'keypadProgrammingEventMask' | 'rfProgrammingEventMask' | 'rfidProgrammingEventMask'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<DoorLockClusterAttributes, K>>;
|
|
311
|
+
writeAttributes(attributes: Partial<DoorLockClusterAttributes>): Promise<void>;
|
|
312
|
+
lockDoor(args?: { pinCode?: Buffer }): Promise<{ status: number }>;
|
|
313
|
+
unlockDoor(args?: { pinCode?: Buffer }): Promise<{ status: number }>;
|
|
314
|
+
toggle(args?: { pinCode?: Buffer }): Promise<{ status: number }>;
|
|
315
|
+
unlockWithTimeout(args: { timeout: number; pinCode?: Buffer }): Promise<{ status: number }>;
|
|
316
|
+
getLogRecord(args: { logIndex: number }): Promise<{ logEntryId: number; timestamp: number; eventType: number; source: number; eventIdOrAlarmCode: number; userId: number; pin: Buffer }>;
|
|
317
|
+
setPINCode(args: { userId: number; userStatus: 'available' | 'occupiedEnabled' | 'occupiedDisabled' | 'notSupported'; userType: 'unrestricted' | 'yearDayScheduleUser' | 'weekDayScheduleUser' | 'masterUser' | 'nonAccessUser' | 'notSupported'; pinCode?: Buffer }): Promise<{ status: number }>;
|
|
318
|
+
getPINCode(args: { userId: number }): Promise<{ userId: number; userStatus: 'available' | 'occupiedEnabled' | 'occupiedDisabled' | 'notSupported'; userType: 'unrestricted' | 'yearDayScheduleUser' | 'weekDayScheduleUser' | 'masterUser' | 'nonAccessUser' | 'notSupported'; pinCode: Buffer }>;
|
|
319
|
+
clearPINCode(args: { userId: number }): Promise<{ status: number }>;
|
|
320
|
+
clearAllPINCodes(): Promise<{ status: number }>;
|
|
321
|
+
setUserStatus(args: { userId: number; userStatus: 'available' | 'occupiedEnabled' | 'occupiedDisabled' | 'notSupported' }): Promise<{ status: number }>;
|
|
322
|
+
getUserStatus(args: { userId: number }): Promise<{ userId: number; userStatus: 'available' | 'occupiedEnabled' | 'occupiedDisabled' | 'notSupported' }>;
|
|
323
|
+
setWeekDaySchedule(args: { scheduleId: number; userId: number; daysMask: Partial<{ sunday: boolean; monday: boolean; tuesday: boolean; wednesday: boolean; thursday: boolean; friday: boolean; saturday: boolean }>; startHour: number; startMinute: number; endHour: number; endMinute: number }): Promise<{ status: number }>;
|
|
324
|
+
getWeekDaySchedule(args: { scheduleId: number; userId: number }): Promise<{ scheduleId: number; userId: number; status: number; daysMask: Partial<{ sunday: boolean; monday: boolean; tuesday: boolean; wednesday: boolean; thursday: boolean; friday: boolean; saturday: boolean }>; startHour: number; startMinute: number; endHour: number; endMinute: number }>;
|
|
325
|
+
clearWeekDaySchedule(args: { scheduleId: number; userId: number }): Promise<{ status: number }>;
|
|
326
|
+
setYearDaySchedule(args: { scheduleId: number; userId: number; localStartTime: number; localEndTime: number }): Promise<{ status: number }>;
|
|
327
|
+
getYearDaySchedule(args: { scheduleId: number; userId: number }): Promise<{ scheduleId: number; userId: number; status: number; localStartTime: number; localEndTime: number }>;
|
|
328
|
+
clearYearDaySchedule(args: { scheduleId: number; userId: number }): Promise<{ status: number }>;
|
|
329
|
+
setHolidaySchedule(args: { holidayScheduleId: number; localStartTime: number; localEndTime: number; operatingModeDuringHoliday: 'normal' | 'vacation' | 'privacy' | 'noRFLockOrUnlock' | 'passage' }): Promise<{ status: number }>;
|
|
330
|
+
getHolidaySchedule(args: { holidayScheduleId: number }): Promise<{ holidayScheduleId: number; status: number; localStartTime: number; localEndTime: number; operatingMode: 'normal' | 'vacation' | 'privacy' | 'noRFLockOrUnlock' | 'passage' }>;
|
|
331
|
+
clearHolidaySchedule(args: { holidayScheduleId: number }): Promise<{ status: number }>;
|
|
332
|
+
setUserType(args: { userId: number; userType: 'unrestricted' | 'yearDayScheduleUser' | 'weekDayScheduleUser' | 'masterUser' | 'nonAccessUser' | 'notSupported' }): Promise<{ status: number }>;
|
|
333
|
+
getUserType(args: { userId: number }): Promise<{ userId: number; userType: 'unrestricted' | 'yearDayScheduleUser' | 'weekDayScheduleUser' | 'masterUser' | 'nonAccessUser' | 'notSupported' }>;
|
|
334
|
+
setRFIDCode(args: { userId: number; userStatus: 'available' | 'occupiedEnabled' | 'occupiedDisabled' | 'notSupported'; userType: 'unrestricted' | 'yearDayScheduleUser' | 'weekDayScheduleUser' | 'masterUser' | 'nonAccessUser' | 'notSupported'; rfidCode?: Buffer }): Promise<{ status: number }>;
|
|
335
|
+
getRFIDCode(args: { userId: number }): Promise<{ userId: number; userStatus: 'available' | 'occupiedEnabled' | 'occupiedDisabled' | 'notSupported'; userType: 'unrestricted' | 'yearDayScheduleUser' | 'weekDayScheduleUser' | 'masterUser' | 'nonAccessUser' | 'notSupported'; rfidCode: Buffer }>;
|
|
336
|
+
clearRFIDCode(args: { userId: number }): Promise<{ status: number }>;
|
|
337
|
+
clearAllRFIDCodes(): Promise<{ status: number }>;
|
|
338
|
+
operationEventNotification(args: { operationEventSource: number; operationEventCode: number; userId: number; pin?: Buffer; zigBeeLocalTime: number; data?: Buffer }): Promise<void>;
|
|
339
|
+
programmingEventNotification(args: { programEventSource: number; programEventCode: number; userId: number; pin?: Buffer; userType: 'unrestricted' | 'yearDayScheduleUser' | 'weekDayScheduleUser' | 'masterUser' | 'nonAccessUser' | 'notSupported'; userStatus: 'available' | 'occupiedEnabled' | 'occupiedDisabled' | 'notSupported'; zigBeeLocalTime: number; data?: Buffer }): Promise<void>;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
export interface ElectricalMeasurementClusterAttributes {
|
|
343
|
+
measurementType?: Partial<{ activeMeasurementAC: boolean; reactiveMeasurementAC: boolean; apparentMeasurementAC: boolean; phaseAMeasurement: boolean; phaseBMeasurement: boolean; phaseCMeasurement: boolean; dcMeasurement: boolean; harmonicsMeasurement: boolean; powerQualityMeasurement: boolean }>;
|
|
344
|
+
acFrequency?: number;
|
|
345
|
+
measuredPhase1stHarmonicCurrent?: number;
|
|
346
|
+
acFrequencyMultiplier?: number;
|
|
347
|
+
acFrequencyDivisor?: number;
|
|
348
|
+
phaseHarmonicCurrentMultiplier?: number;
|
|
349
|
+
rmsVoltage?: number;
|
|
350
|
+
rmsCurrent?: number;
|
|
351
|
+
activePower?: number;
|
|
352
|
+
reactivePower?: number;
|
|
353
|
+
acVoltageMultiplier?: number;
|
|
354
|
+
acVoltageDivisor?: number;
|
|
355
|
+
acCurrentMultiplier?: number;
|
|
356
|
+
acCurrentDivisor?: number;
|
|
357
|
+
acPowerMultiplier?: number;
|
|
358
|
+
acPowerDivisor?: number;
|
|
359
|
+
acAlarmsMask?: Partial<{ voltageOverload: boolean; currentOverload: boolean; activePowerOverload: boolean; reactivePowerOverload: boolean; averageRMSOverVoltage: boolean; averageRMSUnderVoltage: boolean; rmsExtremeOverVoltage: boolean; rmsExtremeUnderVoltage: boolean; rmsVoltageSag: boolean; rmsVoltageSwell: boolean }>;
|
|
360
|
+
acVoltageOverload?: number;
|
|
361
|
+
acCurrentOverload?: number;
|
|
362
|
+
acActivePowerOverload?: number;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
export interface ElectricalMeasurementCluster extends ZCLNodeCluster {
|
|
366
|
+
readAttributes<K extends 'measurementType' | 'acFrequency' | 'measuredPhase1stHarmonicCurrent' | 'acFrequencyMultiplier' | 'acFrequencyDivisor' | 'phaseHarmonicCurrentMultiplier' | 'rmsVoltage' | 'rmsCurrent' | 'activePower' | 'reactivePower' | 'acVoltageMultiplier' | 'acVoltageDivisor' | 'acCurrentMultiplier' | 'acCurrentDivisor' | 'acPowerMultiplier' | 'acPowerDivisor' | 'acAlarmsMask' | 'acVoltageOverload' | 'acCurrentOverload' | 'acActivePowerOverload'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<ElectricalMeasurementClusterAttributes, K>>;
|
|
367
|
+
writeAttributes(attributes: Partial<ElectricalMeasurementClusterAttributes>): Promise<void>;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
export interface FanControlCluster extends ZCLNodeCluster {
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
export interface FlowMeasurementClusterAttributes {
|
|
374
|
+
measuredValue?: number;
|
|
375
|
+
minMeasuredValue?: number;
|
|
376
|
+
maxMeasuredValue?: number;
|
|
377
|
+
tolerance?: number;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
export interface FlowMeasurementCluster extends ZCLNodeCluster {
|
|
381
|
+
readAttributes<K extends 'measuredValue' | 'minMeasuredValue' | 'maxMeasuredValue' | 'tolerance'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<FlowMeasurementClusterAttributes, K>>;
|
|
382
|
+
writeAttributes(attributes: Partial<FlowMeasurementClusterAttributes>): Promise<void>;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
export interface GroupsClusterAttributes {
|
|
386
|
+
nameSupport?: Partial<{ groupNames: boolean }>;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
export interface GroupsCluster extends ZCLNodeCluster {
|
|
390
|
+
readAttributes<K extends 'nameSupport'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<GroupsClusterAttributes, K>>;
|
|
391
|
+
writeAttributes(attributes: Partial<GroupsClusterAttributes>): Promise<void>;
|
|
392
|
+
addGroup(args: { groupId: number; groupName: string }): Promise<{ status: 'SUCCESS' | 'FAILURE' | 'NOT_AUTHORIZED' | 'RESERVED_FIELD_NOT_ZERO' | 'MALFORMED_COMMAND' | 'UNSUP_CLUSTER_COMMAND' | 'UNSUP_GENERAL_COMMAND' | 'UNSUP_MANUF_CLUSTER_COMMAND' | 'UNSUP_MANUF_GENERAL_COMMAND' | 'INVALID_FIELD' | 'UNSUPPORTED_ATTRIBUTE' | 'INVALID_VALUE' | 'READ_ONLY' | 'INSUFFICIENT_SPACE' | 'DUPLICATE_EXISTS' | 'NOT_FOUND' | 'UNREPORTABLE_ATTRIBUTE' | 'INVALID_DATA_TYPE' | 'INVALID_SELECTOR' | 'WRITE_ONLY' | 'INCONSISTENT_STARTUP_STATE' | 'DEFINED_OUT_OF_BAND' | 'INCONSISTENT' | 'ACTION_DENIED' | 'TIMEOUT' | 'ABORT' | 'INVALID_IMAGE' | 'WAIT_FOR_DATA' | 'NO_IMAGE_AVAILABLE' | 'REQUIRE_MORE_IMAGE' | 'NOTIFICATION_PENDING' | 'HARDWARE_FAILURE' | 'SOFTWARE_FAILURE' | 'CALIBRATION_ERROR' | 'UNSUPPORTED_CLUSTER'; groupId: number }>;
|
|
393
|
+
viewGroup(args: { groupId: number }): Promise<{ status: 'SUCCESS' | 'FAILURE' | 'NOT_AUTHORIZED' | 'RESERVED_FIELD_NOT_ZERO' | 'MALFORMED_COMMAND' | 'UNSUP_CLUSTER_COMMAND' | 'UNSUP_GENERAL_COMMAND' | 'UNSUP_MANUF_CLUSTER_COMMAND' | 'UNSUP_MANUF_GENERAL_COMMAND' | 'INVALID_FIELD' | 'UNSUPPORTED_ATTRIBUTE' | 'INVALID_VALUE' | 'READ_ONLY' | 'INSUFFICIENT_SPACE' | 'DUPLICATE_EXISTS' | 'NOT_FOUND' | 'UNREPORTABLE_ATTRIBUTE' | 'INVALID_DATA_TYPE' | 'INVALID_SELECTOR' | 'WRITE_ONLY' | 'INCONSISTENT_STARTUP_STATE' | 'DEFINED_OUT_OF_BAND' | 'INCONSISTENT' | 'ACTION_DENIED' | 'TIMEOUT' | 'ABORT' | 'INVALID_IMAGE' | 'WAIT_FOR_DATA' | 'NO_IMAGE_AVAILABLE' | 'REQUIRE_MORE_IMAGE' | 'NOTIFICATION_PENDING' | 'HARDWARE_FAILURE' | 'SOFTWARE_FAILURE' | 'CALIBRATION_ERROR' | 'UNSUPPORTED_CLUSTER'; groupId: number; groupNames: string }>;
|
|
394
|
+
getGroupMembership(args: { groupIds: number[] }): Promise<{ capacity: number; groups: number[] }>;
|
|
395
|
+
removeGroup(args: { groupId: number }): Promise<{ status: 'SUCCESS' | 'FAILURE' | 'NOT_AUTHORIZED' | 'RESERVED_FIELD_NOT_ZERO' | 'MALFORMED_COMMAND' | 'UNSUP_CLUSTER_COMMAND' | 'UNSUP_GENERAL_COMMAND' | 'UNSUP_MANUF_CLUSTER_COMMAND' | 'UNSUP_MANUF_GENERAL_COMMAND' | 'INVALID_FIELD' | 'UNSUPPORTED_ATTRIBUTE' | 'INVALID_VALUE' | 'READ_ONLY' | 'INSUFFICIENT_SPACE' | 'DUPLICATE_EXISTS' | 'NOT_FOUND' | 'UNREPORTABLE_ATTRIBUTE' | 'INVALID_DATA_TYPE' | 'INVALID_SELECTOR' | 'WRITE_ONLY' | 'INCONSISTENT_STARTUP_STATE' | 'DEFINED_OUT_OF_BAND' | 'INCONSISTENT' | 'ACTION_DENIED' | 'TIMEOUT' | 'ABORT' | 'INVALID_IMAGE' | 'WAIT_FOR_DATA' | 'NO_IMAGE_AVAILABLE' | 'REQUIRE_MORE_IMAGE' | 'NOTIFICATION_PENDING' | 'HARDWARE_FAILURE' | 'SOFTWARE_FAILURE' | 'CALIBRATION_ERROR' | 'UNSUPPORTED_CLUSTER'; groupId: number }>;
|
|
396
|
+
removeAllGroups(): Promise<void>;
|
|
397
|
+
addGroupIfIdentify(args: { groupId: number; groupName: string }): Promise<void>;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
export interface IasACECluster extends ZCLNodeCluster {
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
export interface IasWDCluster extends ZCLNodeCluster {
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
export interface IasZoneClusterAttributes {
|
|
407
|
+
zoneState?: 'notEnrolled' | 'enrolled';
|
|
408
|
+
zoneType?: 'standardCIE' | 'motionSensor' | 'contactSwitch' | 'fireSensor' | 'waterSensor' | 'cabonMonoxideSensor' | 'personalEmergencyDevice' | 'vibrationMovementSensor' | 'remoteControl' | 'keyfob' | 'keypad' | 'standardWarningDevice' | 'glassBreakSensor' | 'securityRepeater' | 'invalidZoneType';
|
|
409
|
+
zoneStatus?: Partial<{ alarm1: boolean; alarm2: boolean; tamper: boolean; battery: boolean; supervisionReports: boolean; restoreReports: boolean; trouble: boolean; acMains: boolean; test: boolean; batteryDefect: boolean }>;
|
|
410
|
+
iasCIEAddress?: string;
|
|
411
|
+
zoneId?: number;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
export interface IasZoneCluster extends ZCLNodeCluster {
|
|
415
|
+
readAttributes<K extends 'zoneState' | 'zoneType' | 'zoneStatus' | 'iasCIEAddress' | 'zoneId'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<IasZoneClusterAttributes, K>>;
|
|
416
|
+
writeAttributes(attributes: Partial<IasZoneClusterAttributes>): Promise<void>;
|
|
417
|
+
zoneStatusChangeNotification(args: { zoneStatus: Partial<{ alarm1: boolean; alarm2: boolean; tamper: boolean; battery: boolean; supervisionReports: boolean; restoreReports: boolean; trouble: boolean; acMains: boolean; test: boolean; batteryDefect: boolean }>; extendedStatus: number; zoneId: number; delay: number }): Promise<void>;
|
|
418
|
+
zoneEnrollResponse(args: { enrollResponseCode: 'success' | 'notSupported' | 'noEnrollPermit' | 'tooManyZones'; zoneId: number }): Promise<void>;
|
|
419
|
+
zoneEnrollRequest(args: { zoneType: 'standard' | 'motionSensor' | 'contactSwitch' | 'fireSensor' | 'waterSensor' | 'carbonMonoxideSensor' | 'personalEmergencyDevice' | 'vibrationMovementSensor' | 'remoteControl' | 'keyFob' | 'keyPad' | 'standardWarningDevice' | 'glassBreakSensor' | 'securityRepeater' | 'invalid'; manufacturerCode: number }): Promise<void>;
|
|
420
|
+
initiateNormalOperationMode(): Promise<void>;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
export interface IdentifyClusterAttributes {
|
|
424
|
+
identifyTime?: number;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
export interface IdentifyCluster extends ZCLNodeCluster {
|
|
428
|
+
readAttributes<K extends 'identifyTime'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<IdentifyClusterAttributes, K>>;
|
|
429
|
+
writeAttributes(attributes: Partial<IdentifyClusterAttributes>): Promise<void>;
|
|
430
|
+
identify(args: { identifyTime: number }): Promise<void>;
|
|
431
|
+
identifyQuery(): Promise<{ timeout: number }>;
|
|
432
|
+
triggerEffect(args: { effectIdentifier: 'blink' | 'breathe' | 'okay' | 'channelChange' | 'finish' | 'stop'; effectVariant: number }): Promise<void>;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
export interface IlluminanceLevelSensingClusterAttributes {
|
|
436
|
+
levelStatus?: 'illuminanceOnTarget' | 'illuminanceBelowTarget' | 'illuminanceAboveTarget';
|
|
437
|
+
lightSensorType?: 'photodiode' | 'cmos' | 'unknown';
|
|
438
|
+
illuminanceTargetLevel?: number;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
export interface IlluminanceLevelSensingCluster extends ZCLNodeCluster {
|
|
442
|
+
readAttributes<K extends 'levelStatus' | 'lightSensorType' | 'illuminanceTargetLevel'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<IlluminanceLevelSensingClusterAttributes, K>>;
|
|
443
|
+
writeAttributes(attributes: Partial<IlluminanceLevelSensingClusterAttributes>): Promise<void>;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
export interface IlluminanceMeasurementClusterAttributes {
|
|
447
|
+
measuredValue?: number;
|
|
448
|
+
minMeasuredValue?: number;
|
|
449
|
+
maxMeasuredValue?: number;
|
|
450
|
+
tolerance?: number;
|
|
451
|
+
lightSensorType?: 'photodiode' | 'cmos' | 'unknown';
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
export interface IlluminanceMeasurementCluster extends ZCLNodeCluster {
|
|
455
|
+
readAttributes<K extends 'measuredValue' | 'minMeasuredValue' | 'maxMeasuredValue' | 'tolerance' | 'lightSensorType'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<IlluminanceMeasurementClusterAttributes, K>>;
|
|
456
|
+
writeAttributes(attributes: Partial<IlluminanceMeasurementClusterAttributes>): Promise<void>;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
export interface LevelControlClusterAttributes {
|
|
460
|
+
currentLevel?: number;
|
|
461
|
+
remainingTime?: number;
|
|
462
|
+
onOffTransitionTime?: number;
|
|
463
|
+
onLevel?: number;
|
|
464
|
+
onTransitionTime?: number;
|
|
465
|
+
offTransitionTime?: number;
|
|
466
|
+
defaultMoveRate?: number;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
export interface LevelControlCluster extends ZCLNodeCluster {
|
|
470
|
+
readAttributes<K extends 'currentLevel' | 'remainingTime' | 'onOffTransitionTime' | 'onLevel' | 'onTransitionTime' | 'offTransitionTime' | 'defaultMoveRate'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<LevelControlClusterAttributes, K>>;
|
|
471
|
+
writeAttributes(attributes: Partial<LevelControlClusterAttributes>): Promise<void>;
|
|
472
|
+
moveToLevel(args: { level: number; transitionTime: number }): Promise<void>;
|
|
473
|
+
move(args: { moveMode: 'up' | 'down'; rate: number }): Promise<void>;
|
|
474
|
+
step(args: { mode: 'up' | 'down'; stepSize: number; transitionTime: number }): Promise<void>;
|
|
475
|
+
stop(): Promise<void>;
|
|
476
|
+
moveToLevelWithOnOff(args: { level: number; transitionTime: number }): Promise<void>;
|
|
477
|
+
moveWithOnOff(args: { moveMode: 'up' | 'down'; rate: number }): Promise<void>;
|
|
478
|
+
stepWithOnOff(args: { mode: 'up' | 'down'; stepSize: number; transitionTime: number }): Promise<void>;
|
|
479
|
+
stopWithOnOff(): Promise<void>;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
export interface MeteringClusterAttributes {
|
|
483
|
+
currentSummationDelivered?: number;
|
|
484
|
+
currentSummationReceived?: number;
|
|
485
|
+
currentMaxDemandDelivered?: number;
|
|
486
|
+
currentMaxDemandReceived?: number;
|
|
487
|
+
dftSummation?: number;
|
|
488
|
+
dailyFreezeTime?: number;
|
|
489
|
+
powerFactor?: number;
|
|
490
|
+
readingSnapShotTime?: number;
|
|
491
|
+
currentMaxDemandDeliveredTime?: number;
|
|
492
|
+
currentMaxDemandReceivedTime?: number;
|
|
493
|
+
defaultUpdatePeriod?: number;
|
|
494
|
+
fastPollUpdatePeriod?: number;
|
|
495
|
+
currentBlockPeriodConsumptionDelivered?: number;
|
|
496
|
+
dailyConsumptionTarget?: number;
|
|
497
|
+
currentBlock?: unknown;
|
|
498
|
+
profileIntervalPeriod?: unknown;
|
|
499
|
+
currentTier1SummationDelivered?: number;
|
|
500
|
+
currentTier1SummationReceived?: number;
|
|
501
|
+
currentTier2SummationDelivered?: number;
|
|
502
|
+
currentTier2SummationReceived?: number;
|
|
503
|
+
currentTier3SummationDelivered?: number;
|
|
504
|
+
currentTier3SummationReceived?: number;
|
|
505
|
+
currentTier4SummationDelivered?: number;
|
|
506
|
+
currentTier4SummationReceived?: number;
|
|
507
|
+
status?: unknown;
|
|
508
|
+
remainingBatteryLife?: number;
|
|
509
|
+
hoursInOperation?: number;
|
|
510
|
+
hoursInFault?: number;
|
|
511
|
+
extendedStatus?: unknown;
|
|
512
|
+
unitOfMeasure?: unknown;
|
|
513
|
+
multiplier?: number;
|
|
514
|
+
divisor?: number;
|
|
515
|
+
summationFormatting?: unknown;
|
|
516
|
+
demandFormatting?: unknown;
|
|
517
|
+
historicalConsumptionFormatting?: unknown;
|
|
518
|
+
meteringDeviceType?: unknown;
|
|
519
|
+
siteId?: Buffer;
|
|
520
|
+
meterSerialNumber?: Buffer;
|
|
521
|
+
energyCarrierUnitOfMeasure?: unknown;
|
|
522
|
+
energyCarrierSummationFormatting?: unknown;
|
|
523
|
+
energyCarrierDemandFormatting?: unknown;
|
|
524
|
+
temperatureUnitOfMeasure?: unknown;
|
|
525
|
+
temperatureFormatting?: unknown;
|
|
526
|
+
moduleSerialNumber?: Buffer;
|
|
527
|
+
operatingTariffLabelDelivered?: Buffer;
|
|
528
|
+
operatingTariffLabelReceived?: Buffer;
|
|
529
|
+
customerIdNumber?: Buffer;
|
|
530
|
+
alternativeUnitOfMeasure?: unknown;
|
|
531
|
+
alternativeDemandFormatting?: unknown;
|
|
532
|
+
alternativeConsumptionFormatting?: unknown;
|
|
533
|
+
instantaneousDemand?: number;
|
|
534
|
+
currentDayConsumptionDelivered?: number;
|
|
535
|
+
currentDayConsumptionReceived?: number;
|
|
536
|
+
previousDayConsumptionDelivered?: number;
|
|
537
|
+
previousDayConsumptionReceived?: number;
|
|
538
|
+
currentPartialProfileIntervalStartTimeDelivered?: number;
|
|
539
|
+
currentPartialProfileIntervalStartTimeReceived?: number;
|
|
540
|
+
currentPartialProfileIntervalValueDelivered?: number;
|
|
541
|
+
currentPartialProfileIntervalValueReceived?: number;
|
|
542
|
+
currentDayMaxPressure?: number;
|
|
543
|
+
currentDayMinPressure?: number;
|
|
544
|
+
previousDayMaxPressure?: number;
|
|
545
|
+
previousDayMinPressure?: number;
|
|
546
|
+
currentDayMaxDemand?: number;
|
|
547
|
+
previousDayMaxDemand?: number;
|
|
548
|
+
currentMonthMaxDemand?: number;
|
|
549
|
+
currentYearMaxDemand?: number;
|
|
550
|
+
currentDayMaxEnergyCarrierDemand?: number;
|
|
551
|
+
previousDayMaxEnergyCarrierDemand?: number;
|
|
552
|
+
currentMonthMaxEnergyCarrierDemand?: number;
|
|
553
|
+
currentMonthMinEnergyCarrierDemand?: number;
|
|
554
|
+
currentYearMaxEnergyCarrierDemand?: number;
|
|
555
|
+
currentYearMinEnergyCarrierDemand?: number;
|
|
556
|
+
maxNumberOfPeriodsDelivered?: number;
|
|
557
|
+
currentDemandDelivered?: number;
|
|
558
|
+
demandLimit?: number;
|
|
559
|
+
demandIntegrationPeriod?: number;
|
|
560
|
+
numberOfDemandSubintervals?: number;
|
|
561
|
+
demandLimitArmDuration?: number;
|
|
562
|
+
currentNoTierBlock1SummationDelivered?: number;
|
|
563
|
+
currentNoTierBlock2SummationDelivered?: number;
|
|
564
|
+
currentNoTierBlock3SummationDelivered?: number;
|
|
565
|
+
currentNoTierBlock4SummationDelivered?: number;
|
|
566
|
+
currentNoTierBlock5SummationDelivered?: number;
|
|
567
|
+
currentNoTierBlock6SummationDelivered?: number;
|
|
568
|
+
currentNoTierBlock7SummationDelivered?: number;
|
|
569
|
+
currentNoTierBlock8SummationDelivered?: number;
|
|
570
|
+
currentNoTierBlock9SummationDelivered?: number;
|
|
571
|
+
currentNoTierBlock10SummationDelivered?: number;
|
|
572
|
+
currentNoTierBlock11SummationDelivered?: number;
|
|
573
|
+
currentNoTierBlock12SummationDelivered?: number;
|
|
574
|
+
currentNoTierBlock13SummationDelivered?: number;
|
|
575
|
+
currentNoTierBlock14SummationDelivered?: number;
|
|
576
|
+
currentNoTierBlock15SummationDelivered?: number;
|
|
577
|
+
currentNoTierBlock16SummationDelivered?: number;
|
|
578
|
+
currentTier1Block1SummationDelivered?: number;
|
|
579
|
+
currentTier1Block2SummationDelivered?: number;
|
|
580
|
+
currentTier1Block3SummationDelivered?: number;
|
|
581
|
+
currentTier1Block4SummationDelivered?: number;
|
|
582
|
+
currentTier1Block5SummationDelivered?: number;
|
|
583
|
+
currentTier1Block6SummationDelivered?: number;
|
|
584
|
+
currentTier1Block7SummationDelivered?: number;
|
|
585
|
+
currentTier1Block8SummationDelivered?: number;
|
|
586
|
+
currentTier1Block9SummationDelivered?: number;
|
|
587
|
+
currentTier1Block10SummationDelivered?: number;
|
|
588
|
+
currentTier1Block11SummationDelivered?: number;
|
|
589
|
+
currentTier1Block12SummationDelivered?: number;
|
|
590
|
+
currentTier1Block13SummationDelivered?: number;
|
|
591
|
+
currentTier1Block14SummationDelivered?: number;
|
|
592
|
+
currentTier1Block15SummationDelivered?: number;
|
|
593
|
+
currentTier1Block16SummationDelivered?: number;
|
|
594
|
+
currentTier2Block1SummationDelivered?: number;
|
|
595
|
+
currentTier2Block2SummationDelivered?: number;
|
|
596
|
+
currentTier2Block3SummationDelivered?: number;
|
|
597
|
+
currentTier2Block4SummationDelivered?: number;
|
|
598
|
+
currentTier2Block5SummationDelivered?: number;
|
|
599
|
+
currentTier2Block6SummationDelivered?: number;
|
|
600
|
+
currentTier2Block7SummationDelivered?: number;
|
|
601
|
+
currentTier2Block8SummationDelivered?: number;
|
|
602
|
+
currentTier2Block9SummationDelivered?: number;
|
|
603
|
+
currentTier2Block10SummationDelivered?: number;
|
|
604
|
+
currentTier2Block11SummationDelivered?: number;
|
|
605
|
+
currentTier2Block12SummationDelivered?: number;
|
|
606
|
+
currentTier2Block13SummationDelivered?: number;
|
|
607
|
+
currentTier2Block14SummationDelivered?: number;
|
|
608
|
+
currentTier2Block15SummationDelivered?: number;
|
|
609
|
+
currentTier2Block16SummationDelivered?: number;
|
|
610
|
+
currentTier3Block1SummationDelivered?: number;
|
|
611
|
+
currentTier3Block2SummationDelivered?: number;
|
|
612
|
+
currentTier3Block3SummationDelivered?: number;
|
|
613
|
+
currentTier3Block4SummationDelivered?: number;
|
|
614
|
+
currentTier3Block5SummationDelivered?: number;
|
|
615
|
+
currentTier3Block6SummationDelivered?: number;
|
|
616
|
+
currentTier3Block7SummationDelivered?: number;
|
|
617
|
+
currentTier3Block8SummationDelivered?: number;
|
|
618
|
+
currentTier3Block9SummationDelivered?: number;
|
|
619
|
+
currentTier3Block10SummationDelivered?: number;
|
|
620
|
+
currentTier3Block11SummationDelivered?: number;
|
|
621
|
+
currentTier3Block12SummationDelivered?: number;
|
|
622
|
+
currentTier3Block13SummationDelivered?: number;
|
|
623
|
+
currentTier3Block14SummationDelivered?: number;
|
|
624
|
+
currentTier3Block15SummationDelivered?: number;
|
|
625
|
+
currentTier3Block16SummationDelivered?: number;
|
|
626
|
+
currentTier4Block1SummationDelivered?: number;
|
|
627
|
+
currentTier4Block2SummationDelivered?: number;
|
|
628
|
+
currentTier4Block3SummationDelivered?: number;
|
|
629
|
+
currentTier4Block4SummationDelivered?: number;
|
|
630
|
+
currentTier4Block5SummationDelivered?: number;
|
|
631
|
+
currentTier4Block6SummationDelivered?: number;
|
|
632
|
+
currentTier4Block7SummationDelivered?: number;
|
|
633
|
+
currentTier4Block8SummationDelivered?: number;
|
|
634
|
+
currentTier4Block9SummationDelivered?: number;
|
|
635
|
+
currentTier4Block10SummationDelivered?: number;
|
|
636
|
+
currentTier4Block11SummationDelivered?: number;
|
|
637
|
+
currentTier4Block12SummationDelivered?: number;
|
|
638
|
+
currentTier4Block13SummationDelivered?: number;
|
|
639
|
+
currentTier4Block14SummationDelivered?: number;
|
|
640
|
+
currentTier4Block15SummationDelivered?: number;
|
|
641
|
+
currentTier4Block16SummationDelivered?: number;
|
|
642
|
+
genericAlarmMask?: unknown;
|
|
643
|
+
electricityAlarmMask?: unknown;
|
|
644
|
+
genericFlowPressureAlarmMask?: unknown;
|
|
645
|
+
waterSpecificAlarmMask?: unknown;
|
|
646
|
+
heatAndCoolingSpecificAlarmMask?: unknown;
|
|
647
|
+
gasSpecificAlarmMask?: unknown;
|
|
648
|
+
extendedGenericAlarmMask?: unknown;
|
|
649
|
+
manufacturerAlarmMask?: unknown;
|
|
650
|
+
currentNoTierBlock1SummationReceived?: number;
|
|
651
|
+
currentNoTierBlock2SummationReceived?: number;
|
|
652
|
+
currentNoTierBlock3SummationReceived?: number;
|
|
653
|
+
currentNoTierBlock4SummationReceived?: number;
|
|
654
|
+
currentNoTierBlock5SummationReceived?: number;
|
|
655
|
+
currentNoTierBlock6SummationReceived?: number;
|
|
656
|
+
currentNoTierBlock7SummationReceived?: number;
|
|
657
|
+
currentNoTierBlock8SummationReceived?: number;
|
|
658
|
+
currentNoTierBlock9SummationReceived?: number;
|
|
659
|
+
currentNoTierBlock10SummationReceived?: number;
|
|
660
|
+
currentNoTierBlock11SummationReceived?: number;
|
|
661
|
+
currentNoTierBlock12SummationReceived?: number;
|
|
662
|
+
currentNoTierBlock13SummationReceived?: number;
|
|
663
|
+
currentNoTierBlock14SummationReceived?: number;
|
|
664
|
+
currentNoTierBlock15SummationReceived?: number;
|
|
665
|
+
currentNoTierBlock16SummationReceived?: number;
|
|
666
|
+
billToDateDelivered?: number;
|
|
667
|
+
billToDateTimeStampDelivered?: number;
|
|
668
|
+
projectedBillDelivered?: number;
|
|
669
|
+
projectedBillTimeStampDelivered?: number;
|
|
670
|
+
billDeliveredTrailingDigit?: unknown;
|
|
671
|
+
billToDateReceived?: number;
|
|
672
|
+
billToDateTimeStampReceived?: number;
|
|
673
|
+
projectedBillReceived?: number;
|
|
674
|
+
projectedBillTimeStampReceived?: number;
|
|
675
|
+
billReceivedTrailingDigit?: unknown;
|
|
676
|
+
proposedChangeSupplyImplementationTime?: number;
|
|
677
|
+
proposedChangeSupplyStatus?: unknown;
|
|
678
|
+
uncontrolledFlowThreshold?: number;
|
|
679
|
+
uncontrolledFlowThresholdUnitOfMeasure?: unknown;
|
|
680
|
+
uncontrolledFlowMultiplier?: number;
|
|
681
|
+
uncontrolledFlowDivisor?: number;
|
|
682
|
+
flowStabilisationPeriod?: number;
|
|
683
|
+
flowMeasurementPeriod?: number;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
export interface MeteringCluster extends ZCLNodeCluster {
|
|
687
|
+
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' | 'extendedStatus' | 'unitOfMeasure' | 'multiplier' | 'divisor' | 'summationFormatting' | 'demandFormatting' | 'historicalConsumptionFormatting' | 'meteringDeviceType' | 'siteId' | 'meterSerialNumber' | 'energyCarrierUnitOfMeasure' | 'energyCarrierSummationFormatting' | 'energyCarrierDemandFormatting' | 'temperatureUnitOfMeasure' | 'temperatureFormatting' | 'moduleSerialNumber' | 'operatingTariffLabelDelivered' | 'operatingTariffLabelReceived' | 'customerIdNumber' | 'alternativeUnitOfMeasure' | 'alternativeDemandFormatting' | 'alternativeConsumptionFormatting' | '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' | 'genericAlarmMask' | 'electricityAlarmMask' | 'genericFlowPressureAlarmMask' | 'waterSpecificAlarmMask' | 'heatAndCoolingSpecificAlarmMask' | 'gasSpecificAlarmMask' | 'extendedGenericAlarmMask' | 'manufacturerAlarmMask' | 'currentNoTierBlock1SummationReceived' | 'currentNoTierBlock2SummationReceived' | 'currentNoTierBlock3SummationReceived' | 'currentNoTierBlock4SummationReceived' | 'currentNoTierBlock5SummationReceived' | 'currentNoTierBlock6SummationReceived' | 'currentNoTierBlock7SummationReceived' | 'currentNoTierBlock8SummationReceived' | 'currentNoTierBlock9SummationReceived' | 'currentNoTierBlock10SummationReceived' | 'currentNoTierBlock11SummationReceived' | 'currentNoTierBlock12SummationReceived' | 'currentNoTierBlock13SummationReceived' | 'currentNoTierBlock14SummationReceived' | 'currentNoTierBlock15SummationReceived' | 'currentNoTierBlock16SummationReceived' | 'billToDateDelivered' | 'billToDateTimeStampDelivered' | 'projectedBillDelivered' | 'projectedBillTimeStampDelivered' | 'billDeliveredTrailingDigit' | 'billToDateReceived' | 'billToDateTimeStampReceived' | 'projectedBillReceived' | 'projectedBillTimeStampReceived' | 'billReceivedTrailingDigit' | 'proposedChangeSupplyImplementationTime' | 'proposedChangeSupplyStatus' | 'uncontrolledFlowThreshold' | 'uncontrolledFlowThresholdUnitOfMeasure' | 'uncontrolledFlowMultiplier' | 'uncontrolledFlowDivisor' | 'flowStabilisationPeriod' | 'flowMeasurementPeriod'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<MeteringClusterAttributes, K>>;
|
|
688
|
+
writeAttributes(attributes: Partial<MeteringClusterAttributes>): Promise<void>;
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
export interface MultistateInputClusterAttributes {
|
|
692
|
+
description?: string;
|
|
693
|
+
numberOfStates?: number;
|
|
694
|
+
outOfService?: boolean;
|
|
695
|
+
presentValue?: number;
|
|
696
|
+
reliability?: 'noFaultDetected' | 'noSensor' | 'overRange' | 'underRange' | 'openLoop' | 'shortedLoop' | 'noOutput' | 'unreliableOther' | 'processError' | 'multiStateFault' | 'configurationError';
|
|
697
|
+
statusFlags?: Partial<{ inAlarm: boolean; fault: boolean; overridden: boolean; outOfService: boolean }>;
|
|
698
|
+
applicationType?: number;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
export interface MultistateInputCluster extends ZCLNodeCluster {
|
|
702
|
+
readAttributes<K extends 'description' | 'numberOfStates' | 'outOfService' | 'presentValue' | 'reliability' | 'statusFlags' | 'applicationType'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<MultistateInputClusterAttributes, K>>;
|
|
703
|
+
writeAttributes(attributes: Partial<MultistateInputClusterAttributes>): Promise<void>;
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
export interface MultistateOutputClusterAttributes {
|
|
707
|
+
description?: string;
|
|
708
|
+
numberOfStates?: number;
|
|
709
|
+
outOfService?: boolean;
|
|
710
|
+
presentValue?: number;
|
|
711
|
+
reliability?: 'noFaultDetected' | 'overRange' | 'underRange' | 'openLoop' | 'shortedLoop' | 'unreliableOther' | 'processError' | 'multiStateFault' | 'configurationError';
|
|
712
|
+
relinquishDefault?: number;
|
|
713
|
+
statusFlags?: Partial<{ inAlarm: boolean; fault: boolean; overridden: boolean; outOfService: boolean }>;
|
|
714
|
+
applicationType?: number;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
export interface MultistateOutputCluster extends ZCLNodeCluster {
|
|
718
|
+
readAttributes<K extends 'description' | 'numberOfStates' | 'outOfService' | 'presentValue' | 'reliability' | 'relinquishDefault' | 'statusFlags' | 'applicationType'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<MultistateOutputClusterAttributes, K>>;
|
|
719
|
+
writeAttributes(attributes: Partial<MultistateOutputClusterAttributes>): Promise<void>;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
export interface MultistateValueClusterAttributes {
|
|
723
|
+
description?: string;
|
|
724
|
+
numberOfStates?: number;
|
|
725
|
+
outOfService?: boolean;
|
|
726
|
+
presentValue?: number;
|
|
727
|
+
reliability?: 'noFaultDetected' | 'noSensor' | 'overRange' | 'underRange' | 'openLoop' | 'shortedLoop' | 'noOutput' | 'unreliableOther' | 'processError' | 'multiStateFault' | 'configurationError';
|
|
728
|
+
relinquishDefault?: number;
|
|
729
|
+
statusFlags?: Partial<{ inAlarm: boolean; fault: boolean; overridden: boolean; outOfService: boolean }>;
|
|
730
|
+
applicationType?: number;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
export interface MultistateValueCluster extends ZCLNodeCluster {
|
|
734
|
+
readAttributes<K extends 'description' | 'numberOfStates' | 'outOfService' | 'presentValue' | 'reliability' | 'relinquishDefault' | 'statusFlags' | 'applicationType'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<MultistateValueClusterAttributes, K>>;
|
|
735
|
+
writeAttributes(attributes: Partial<MultistateValueClusterAttributes>): Promise<void>;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
export interface OccupancySensingClusterAttributes {
|
|
739
|
+
occupancy?: Partial<{ occupied: boolean }>;
|
|
740
|
+
occupancySensorType?: 'pir' | 'ultrasonic' | 'pirAndUltrasonic' | 'physicalContact';
|
|
741
|
+
occupancySensorTypeBitmap?: Partial<{ pir: boolean; ultrasonic: boolean; physicalContact: boolean }>;
|
|
742
|
+
pirOccupiedToUnoccupiedDelay?: number;
|
|
743
|
+
pirUnoccupiedToOccupiedDelay?: number;
|
|
744
|
+
pirUnoccupiedToOccupiedThreshold?: number;
|
|
745
|
+
ultrasonicOccupiedToUnoccupiedDelay?: number;
|
|
746
|
+
ultrasonicUnoccupiedToOccupiedDelay?: number;
|
|
747
|
+
ultrasonicUnoccupiedToOccupiedThreshold?: number;
|
|
748
|
+
physicalContactOccupiedToUnoccupiedDelay?: number;
|
|
749
|
+
physicalContactUnoccupiedToOccupiedDelay?: number;
|
|
750
|
+
physicalContactUnoccupiedToOccupiedThreshold?: number;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
export interface OccupancySensingCluster extends ZCLNodeCluster {
|
|
754
|
+
readAttributes<K extends 'occupancy' | 'occupancySensorType' | 'occupancySensorTypeBitmap' | 'pirOccupiedToUnoccupiedDelay' | 'pirUnoccupiedToOccupiedDelay' | 'pirUnoccupiedToOccupiedThreshold' | 'ultrasonicOccupiedToUnoccupiedDelay' | 'ultrasonicUnoccupiedToOccupiedDelay' | 'ultrasonicUnoccupiedToOccupiedThreshold' | 'physicalContactOccupiedToUnoccupiedDelay' | 'physicalContactUnoccupiedToOccupiedDelay' | 'physicalContactUnoccupiedToOccupiedThreshold'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<OccupancySensingClusterAttributes, K>>;
|
|
755
|
+
writeAttributes(attributes: Partial<OccupancySensingClusterAttributes>): Promise<void>;
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
export interface OnOffClusterAttributes {
|
|
759
|
+
onOff?: boolean;
|
|
760
|
+
onTime?: number;
|
|
761
|
+
offWaitTime?: number;
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
export interface OnOffCluster extends ZCLNodeCluster {
|
|
765
|
+
readAttributes<K extends 'onOff' | 'onTime' | 'offWaitTime'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<OnOffClusterAttributes, K>>;
|
|
766
|
+
writeAttributes(attributes: Partial<OnOffClusterAttributes>): Promise<void>;
|
|
184
767
|
setOff(): Promise<void>;
|
|
768
|
+
setOn(): Promise<void>;
|
|
185
769
|
toggle(): Promise<void>;
|
|
186
|
-
offWithEffect({
|
|
187
|
-
effectIdentifier,
|
|
188
|
-
effectVariant,
|
|
189
|
-
}: {
|
|
190
|
-
effectIdentifier: number;
|
|
191
|
-
effectVariant: number;
|
|
192
|
-
}): Promise<void>;
|
|
770
|
+
offWithEffect(args: { effectIdentifier: number; effectVariant: number }): Promise<void>;
|
|
193
771
|
onWithRecallGlobalScene(): Promise<void>;
|
|
194
|
-
onWithTimedOff({
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
offWaitTime: number;
|
|
202
|
-
}): Promise<void>;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
interface LevelControlCluster extends ZCLNodeCluster {
|
|
206
|
-
moveToLevel({ level, transitionTime }: { level: number; transitionTime: number }): Promise<void>;
|
|
207
|
-
move({ moveMode, rate }: { moveMode: "up" | "down"; rate: number }): Promise<void>;
|
|
208
|
-
step({
|
|
209
|
-
moveMode,
|
|
210
|
-
stepSize,
|
|
211
|
-
transitionTime,
|
|
212
|
-
}: {
|
|
213
|
-
moveMode: "up" | "down";
|
|
214
|
-
stepSize: number;
|
|
215
|
-
transitionTime: number;
|
|
216
|
-
}): Promise<void>;
|
|
217
|
-
moveToLevelWithOnOff({
|
|
218
|
-
level,
|
|
219
|
-
transitionTime,
|
|
220
|
-
}: {
|
|
221
|
-
level: number;
|
|
222
|
-
transitionTime: number;
|
|
223
|
-
}): Promise<void>;
|
|
224
|
-
moveWithOnOff({ moveMode, rate }: { moveMode: "up" | "down"; rate: number }): Promise<void>;
|
|
225
|
-
stepWithOnOff({
|
|
226
|
-
moveMode,
|
|
227
|
-
stepSize,
|
|
228
|
-
transitionTime,
|
|
229
|
-
}: {
|
|
230
|
-
moveMode: "up" | "down";
|
|
231
|
-
stepSize: number;
|
|
232
|
-
transitionTime: number;
|
|
233
|
-
}): Promise<void>;
|
|
234
|
-
stopWithOnOff(): Promise<void>;
|
|
772
|
+
onWithTimedOff(args: { onOffControl: number; onTime: number; offWaitTime: number }): Promise<void>;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
export interface OnOffSwitchCluster extends ZCLNodeCluster {
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
export interface OtaCluster extends ZCLNodeCluster {
|
|
235
779
|
}
|
|
236
780
|
|
|
237
|
-
interface
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
}: {
|
|
251
|
-
saturation: number;
|
|
252
|
-
transitionTime: number;
|
|
253
|
-
}): Promise<void>;
|
|
254
|
-
moveToHueAndSaturation({
|
|
255
|
-
hue,
|
|
256
|
-
saturation,
|
|
257
|
-
transitionTime,
|
|
258
|
-
}: {
|
|
259
|
-
hue: number;
|
|
260
|
-
saturation: number;
|
|
261
|
-
transitionTime: number;
|
|
262
|
-
}): Promise<void>;
|
|
263
|
-
moveToColor({
|
|
264
|
-
colorX,
|
|
265
|
-
colorY,
|
|
266
|
-
transitionTime,
|
|
267
|
-
}: {
|
|
268
|
-
colorX: number;
|
|
269
|
-
colorY: number;
|
|
270
|
-
transitionTime: number;
|
|
271
|
-
}): Promise<void>;
|
|
272
|
-
moveToColorTemperature({
|
|
273
|
-
colorTemperature,
|
|
274
|
-
transitionTime,
|
|
275
|
-
}: {
|
|
276
|
-
colorTemperature: number;
|
|
277
|
-
transitionTime: number;
|
|
278
|
-
}): Promise<void>;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
interface MeteringCluster extends ZCLNodeCluster {}
|
|
282
|
-
|
|
283
|
-
interface ElectricalMeasurementCluster extends ZCLNodeCluster {}
|
|
284
|
-
|
|
285
|
-
interface PollControlCluster extends ZCLNodeCluster {
|
|
781
|
+
export interface PollControlClusterAttributes {
|
|
782
|
+
checkInInterval?: number;
|
|
783
|
+
longPollInterval?: number;
|
|
784
|
+
shortPollInterval?: number;
|
|
785
|
+
fastPollTimeout?: number;
|
|
786
|
+
checkInIntervalMin?: number;
|
|
787
|
+
longPollIntervalMin?: number;
|
|
788
|
+
fastPollTimeoutMax?: number;
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
export interface PollControlCluster extends ZCLNodeCluster {
|
|
792
|
+
readAttributes<K extends 'checkInInterval' | 'longPollInterval' | 'shortPollInterval' | 'fastPollTimeout' | 'checkInIntervalMin' | 'longPollIntervalMin' | 'fastPollTimeoutMax'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<PollControlClusterAttributes, K>>;
|
|
793
|
+
writeAttributes(attributes: Partial<PollControlClusterAttributes>): Promise<void>;
|
|
286
794
|
fastPollStop(): Promise<void>;
|
|
287
|
-
setLongPollInterval(
|
|
288
|
-
setShortPollInterval(
|
|
795
|
+
setLongPollInterval(args: { newLongPollInterval: number }): Promise<void>;
|
|
796
|
+
setShortPollInterval(args: { newShortPollInterval: number }): Promise<void>;
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
export interface PowerConfigurationClusterAttributes {
|
|
800
|
+
batteryVoltage?: number;
|
|
801
|
+
batteryPercentageRemaining?: number;
|
|
802
|
+
batterySize?: 'noBattery' | 'builtIn' | 'other' | 'AA' | 'AAA' | 'C' | 'D' | 'CR2' | 'CR123A' | 'unknown';
|
|
803
|
+
batteryQuantity?: number;
|
|
804
|
+
batteryRatedVoltage?: number;
|
|
805
|
+
batteryVoltageMinThreshold?: number;
|
|
806
|
+
batteryAlarmState?: Partial<{ batteryThresholdBatterySource1: boolean; batteryThreshold1BatterySource1: boolean; batteryThreshold2BatterySource1: boolean; batteryThreshold3BatterySource1: boolean; reserved4: boolean; reserved5: boolean; reserved6: boolean; reserved7: boolean; reserved8: boolean; reserved9: boolean; batteryThresholdBatterySource2: boolean; batteryThreshold1BatterySource2: boolean; batteryThreshold2BatterySource2: boolean; batteryThreshold3BatterySource2: boolean; reserved14: boolean; reserved15: boolean; reserved16: boolean; reserved17: boolean; reserved18: boolean; reserved19: boolean; batteryThresholdBatterySource3: boolean; batteryThreshold1BatterySource3: boolean; batteryThreshold2BatterySource3: boolean; batteryThreshold3BatterySource3: boolean; reserved24: boolean; reserved25: boolean; reserved26: boolean; reserved27: boolean; reserved28: boolean; reserved29: boolean; mainsPowerSupplyLostUnavailable: boolean }>;
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
export interface PowerConfigurationCluster extends ZCLNodeCluster {
|
|
810
|
+
readAttributes<K extends 'batteryVoltage' | 'batteryPercentageRemaining' | 'batterySize' | 'batteryQuantity' | 'batteryRatedVoltage' | 'batteryVoltageMinThreshold' | 'batteryAlarmState'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<PowerConfigurationClusterAttributes, K>>;
|
|
811
|
+
writeAttributes(attributes: Partial<PowerConfigurationClusterAttributes>): Promise<void>;
|
|
289
812
|
}
|
|
290
813
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
814
|
+
export interface PowerProfileCluster extends ZCLNodeCluster {
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
export interface PressureMeasurementClusterAttributes {
|
|
818
|
+
measuredValue?: number;
|
|
819
|
+
minMeasuredValue?: number;
|
|
820
|
+
maxMeasuredValue?: number;
|
|
821
|
+
tolerance?: number;
|
|
822
|
+
scaledValue?: number;
|
|
823
|
+
minScaledValue?: number;
|
|
824
|
+
maxScaledValue?: number;
|
|
825
|
+
scaledTolerance?: number;
|
|
826
|
+
scale?: number;
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
export interface PressureMeasurementCluster extends ZCLNodeCluster {
|
|
830
|
+
readAttributes<K extends 'measuredValue' | 'minMeasuredValue' | 'maxMeasuredValue' | 'tolerance' | 'scaledValue' | 'minScaledValue' | 'maxScaledValue' | 'scaledTolerance' | 'scale'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<PressureMeasurementClusterAttributes, K>>;
|
|
831
|
+
writeAttributes(attributes: Partial<PressureMeasurementClusterAttributes>): Promise<void>;
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
export interface PumpConfigurationAndControlCluster extends ZCLNodeCluster {
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
export interface RelativeHumidityClusterAttributes {
|
|
838
|
+
measuredValue?: number;
|
|
839
|
+
minMeasuredValue?: number;
|
|
840
|
+
maxMeasuredValue?: number;
|
|
841
|
+
tolerance?: number;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
export interface RelativeHumidityCluster extends ZCLNodeCluster {
|
|
845
|
+
readAttributes<K extends 'measuredValue' | 'minMeasuredValue' | 'maxMeasuredValue' | 'tolerance'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<RelativeHumidityClusterAttributes, K>>;
|
|
846
|
+
writeAttributes(attributes: Partial<RelativeHumidityClusterAttributes>): Promise<void>;
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
export interface ScenesCluster extends ZCLNodeCluster {
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
export interface ShadeConfigurationCluster extends ZCLNodeCluster {
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
export interface TemperatureMeasurementClusterAttributes {
|
|
856
|
+
measuredValue?: number;
|
|
857
|
+
minMeasuredValue?: number;
|
|
858
|
+
maxMeasuredValue?: number;
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
export interface TemperatureMeasurementCluster extends ZCLNodeCluster {
|
|
862
|
+
readAttributes<K extends 'measuredValue' | 'minMeasuredValue' | 'maxMeasuredValue'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<TemperatureMeasurementClusterAttributes, K>>;
|
|
863
|
+
writeAttributes(attributes: Partial<TemperatureMeasurementClusterAttributes>): Promise<void>;
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
export interface ThermostatClusterAttributes {
|
|
867
|
+
localTemperature?: number;
|
|
868
|
+
outdoorTemperature?: number;
|
|
869
|
+
occupancy?: Partial<{ occupied: boolean }>;
|
|
870
|
+
absMinHeatSetpointLimit?: number;
|
|
871
|
+
absMaxHeatSetpointLimit?: number;
|
|
872
|
+
absMinCoolSetpointLimit?: number;
|
|
873
|
+
absMaxCoolSetpointLimit?: number;
|
|
874
|
+
pICoolingDemand?: number;
|
|
875
|
+
pIHeatingDemand?: number;
|
|
876
|
+
localTemperatureCalibration?: number;
|
|
877
|
+
occupiedCoolingSetpoint?: number;
|
|
878
|
+
occupiedHeatingSetpoint?: number;
|
|
879
|
+
unoccupiedCoolingSetpoint?: number;
|
|
880
|
+
unoccupiedHeatingSetpoint?: number;
|
|
881
|
+
minHeatSetpointLimit?: number;
|
|
882
|
+
maxHeatSetpointLimit?: number;
|
|
883
|
+
minCoolSetpointLimit?: number;
|
|
884
|
+
maxCoolSetpointLimit?: number;
|
|
885
|
+
minSetpointDeadBand?: number;
|
|
886
|
+
remoteSensing?: Partial<{ localTemperature: boolean; outdoorTemperature: boolean; occupancy: boolean }>;
|
|
887
|
+
controlSequenceOfOperation?: 'cooling' | 'coolingWithReheat' | 'heating' | 'heatingWithReheat' | 'coolingAndHeating4Pipes' | 'coolingAndHeating4PipesWithReheat';
|
|
888
|
+
systemMode?: 'off' | 'auto' | 'cool' | 'heat' | 'emergencyHeating' | 'precooling' | 'fanOnly' | 'dry' | 'sleep';
|
|
889
|
+
alarmMask?: Partial<{ initializationFailure: boolean; hardwareFailure: boolean; selfCalibrationFailure: boolean }>;
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
export interface ThermostatCluster extends ZCLNodeCluster {
|
|
893
|
+
readAttributes<K extends 'localTemperature' | 'outdoorTemperature' | 'occupancy' | 'absMinHeatSetpointLimit' | 'absMaxHeatSetpointLimit' | 'absMinCoolSetpointLimit' | 'absMaxCoolSetpointLimit' | 'pICoolingDemand' | 'pIHeatingDemand' | 'localTemperatureCalibration' | 'occupiedCoolingSetpoint' | 'occupiedHeatingSetpoint' | 'unoccupiedCoolingSetpoint' | 'unoccupiedHeatingSetpoint' | 'minHeatSetpointLimit' | 'maxHeatSetpointLimit' | 'minCoolSetpointLimit' | 'maxCoolSetpointLimit' | 'minSetpointDeadBand' | 'remoteSensing' | 'controlSequenceOfOperation' | 'systemMode' | 'alarmMask'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<ThermostatClusterAttributes, K>>;
|
|
894
|
+
writeAttributes(attributes: Partial<ThermostatClusterAttributes>): Promise<void>;
|
|
895
|
+
setSetpoint(args: { mode: 'heat' | 'cool' | 'both'; amount: number }): Promise<void>;
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
export interface TimeCluster extends ZCLNodeCluster {
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
export interface TouchlinkCluster extends ZCLNodeCluster {
|
|
902
|
+
getGroups(args: { startIdx: number }): Promise<{ total: number; startIndex: number; groups: unknown[] }>;
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
export interface WindowCoveringClusterAttributes {
|
|
906
|
+
windowCoveringType?: 'rollershade' | 'rollershade2Motor' | 'rollershadeExterior' | 'rollershadeExterior2Motor' | 'drapery' | 'awning' | 'shutter' | 'tiltBlindTiltOnly' | 'tiltBlindLiftAndTilt' | 'projectorScreen';
|
|
907
|
+
physicalClosedLimitLift?: number;
|
|
908
|
+
physicalClosedLimitTilt?: number;
|
|
909
|
+
currentPositionLift?: number;
|
|
910
|
+
currentPositionTilt?: number;
|
|
911
|
+
numberofActuationsLift?: number;
|
|
912
|
+
numberofActuationsTilt?: number;
|
|
913
|
+
configStatus?: Partial<{ operational: boolean; online: boolean; reversalLiftCommands: boolean; controlLift: boolean; controlTilt: boolean; encoderLift: boolean; encoderTilt: boolean; reserved: boolean }>;
|
|
914
|
+
currentPositionLiftPercentage?: number;
|
|
915
|
+
currentPositionTiltPercentage?: number;
|
|
916
|
+
installedOpenLimitLift?: number;
|
|
917
|
+
installedClosedLimitLift?: number;
|
|
918
|
+
installedOpenLimitTilt?: number;
|
|
919
|
+
installedClosedLimitTilt?: number;
|
|
920
|
+
velocityLift?: number;
|
|
921
|
+
accelerationTimeLift?: number;
|
|
922
|
+
decelerationTimeLift?: number;
|
|
923
|
+
mode?: Partial<{ motorDirectionReversed: boolean; calibrationMode: boolean; maintenanceMode: boolean; ledFeedback: boolean }>;
|
|
924
|
+
intermediateSetpointsLift?: Buffer;
|
|
925
|
+
intermediateSetpointsTilt?: Buffer;
|
|
926
|
+
}
|
|
927
|
+
|
|
928
|
+
export interface WindowCoveringCluster extends ZCLNodeCluster {
|
|
929
|
+
readAttributes<K extends 'windowCoveringType' | 'physicalClosedLimitLift' | 'physicalClosedLimitTilt' | 'currentPositionLift' | 'currentPositionTilt' | 'numberofActuationsLift' | 'numberofActuationsTilt' | 'configStatus' | 'currentPositionLiftPercentage' | 'currentPositionTiltPercentage' | 'installedOpenLimitLift' | 'installedClosedLimitLift' | 'installedOpenLimitTilt' | 'installedClosedLimitTilt' | 'velocityLift' | 'accelerationTimeLift' | 'decelerationTimeLift' | 'mode' | 'intermediateSetpointsLift' | 'intermediateSetpointsTilt'>(attributeNames: K[], opts?: { timeout?: number }): Promise<Pick<WindowCoveringClusterAttributes, K>>;
|
|
930
|
+
writeAttributes(attributes: Partial<WindowCoveringClusterAttributes>): Promise<void>;
|
|
931
|
+
upOpen(): Promise<void>;
|
|
932
|
+
downClose(): Promise<void>;
|
|
933
|
+
stop(): Promise<void>;
|
|
934
|
+
goToLiftValue(args: { liftValue: number }): Promise<void>;
|
|
935
|
+
goToLiftPercentage(args: { percentageLiftValue: number }): Promise<void>;
|
|
936
|
+
goToTiltValue(args: { tiltValue: number }): Promise<void>;
|
|
937
|
+
goToTiltPercentage(args: { percentageTiltValue: number }): Promise<void>;
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
/** Type-safe cluster registry */
|
|
941
|
+
export interface ClusterRegistry {
|
|
942
|
+
alarms?: AlarmsCluster;
|
|
943
|
+
analogInput?: AnalogInputCluster;
|
|
944
|
+
analogOutput?: AnalogOutputCluster;
|
|
945
|
+
analogValue?: AnalogValueCluster;
|
|
946
|
+
ballastConfiguration?: BallastConfigurationCluster;
|
|
947
|
+
basic?: BasicCluster;
|
|
948
|
+
binaryInput?: BinaryInputCluster;
|
|
949
|
+
binaryOutput?: BinaryOutputCluster;
|
|
950
|
+
binaryValue?: BinaryValueCluster;
|
|
951
|
+
colorControl?: ColorControlCluster;
|
|
952
|
+
dehumidificationControl?: DehumidificationControlCluster;
|
|
953
|
+
deviceTemperature?: DeviceTemperatureCluster;
|
|
954
|
+
diagnostics?: DiagnosticsCluster;
|
|
955
|
+
doorLock?: DoorLockCluster;
|
|
956
|
+
electricalMeasurement?: ElectricalMeasurementCluster;
|
|
957
|
+
fanControl?: FanControlCluster;
|
|
958
|
+
flowMeasurement?: FlowMeasurementCluster;
|
|
959
|
+
groups?: GroupsCluster;
|
|
960
|
+
iasACE?: IasACECluster;
|
|
961
|
+
iasWD?: IasWDCluster;
|
|
962
|
+
iasZone?: IasZoneCluster;
|
|
963
|
+
identify?: IdentifyCluster;
|
|
964
|
+
illuminanceLevelSensing?: IlluminanceLevelSensingCluster;
|
|
965
|
+
illuminanceMeasurement?: IlluminanceMeasurementCluster;
|
|
966
|
+
levelControl?: LevelControlCluster;
|
|
967
|
+
metering?: MeteringCluster;
|
|
968
|
+
multistateInput?: MultistateInputCluster;
|
|
969
|
+
multistateOutput?: MultistateOutputCluster;
|
|
970
|
+
multistateValue?: MultistateValueCluster;
|
|
971
|
+
occupancySensing?: OccupancySensingCluster;
|
|
972
|
+
onOff?: OnOffCluster;
|
|
973
|
+
onOffSwitch?: OnOffSwitchCluster;
|
|
974
|
+
ota?: OtaCluster;
|
|
975
|
+
pollControl?: PollControlCluster;
|
|
976
|
+
powerConfiguration?: PowerConfigurationCluster;
|
|
977
|
+
powerProfile?: PowerProfileCluster;
|
|
978
|
+
pressureMeasurement?: PressureMeasurementCluster;
|
|
979
|
+
pumpConfigurationAndControl?: PumpConfigurationAndControlCluster;
|
|
980
|
+
relativeHumidity?: RelativeHumidityCluster;
|
|
981
|
+
scenes?: ScenesCluster;
|
|
982
|
+
shadeConfiguration?: ShadeConfigurationCluster;
|
|
983
|
+
temperatureMeasurement?: TemperatureMeasurementCluster;
|
|
984
|
+
thermostat?: ThermostatCluster;
|
|
985
|
+
time?: TimeCluster;
|
|
986
|
+
touchlink?: TouchlinkCluster;
|
|
987
|
+
windowCovering?: WindowCoveringCluster;
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
export type ZCLNodeEndpoint = {
|
|
991
|
+
clusters: ClusterRegistry & {
|
|
296
992
|
[clusterName: string]: ZCLNodeCluster | undefined;
|
|
297
993
|
};
|
|
298
994
|
};
|
|
299
995
|
|
|
300
|
-
interface ZCLNode {
|
|
996
|
+
export interface ZCLNode {
|
|
301
997
|
endpoints: { [endpointId: number | string]: ZCLNodeEndpoint };
|
|
302
998
|
handleFrame: (
|
|
303
999
|
endpointId: number,
|
|
@@ -308,16 +1004,57 @@ interface ZCLNode {
|
|
|
308
1004
|
}
|
|
309
1005
|
|
|
310
1006
|
declare module "zigbee-clusters" {
|
|
311
|
-
export
|
|
1007
|
+
export const ZCLNode: {
|
|
312
1008
|
new (options: ConstructorOptions): ZCLNode;
|
|
313
1009
|
};
|
|
314
1010
|
export const CLUSTER: {
|
|
315
|
-
[key: string]: { ID: number; NAME: string; ATTRIBUTES:
|
|
1011
|
+
[key: string]: { ID: number; NAME: string; ATTRIBUTES: unknown; COMMANDS: unknown };
|
|
316
1012
|
};
|
|
317
|
-
export
|
|
318
|
-
export
|
|
319
|
-
export
|
|
320
|
-
export
|
|
321
|
-
export
|
|
322
|
-
export
|
|
323
|
-
|
|
1013
|
+
export { ZCLNodeCluster };
|
|
1014
|
+
export const AlarmsCluster: AlarmsCluster;
|
|
1015
|
+
export const AnalogInputCluster: AnalogInputCluster;
|
|
1016
|
+
export const AnalogOutputCluster: AnalogOutputCluster;
|
|
1017
|
+
export const AnalogValueCluster: AnalogValueCluster;
|
|
1018
|
+
export const BallastConfigurationCluster: BallastConfigurationCluster;
|
|
1019
|
+
export const BasicCluster: BasicCluster;
|
|
1020
|
+
export const BinaryInputCluster: BinaryInputCluster;
|
|
1021
|
+
export const BinaryOutputCluster: BinaryOutputCluster;
|
|
1022
|
+
export const BinaryValueCluster: BinaryValueCluster;
|
|
1023
|
+
export const ColorControlCluster: ColorControlCluster;
|
|
1024
|
+
export const DehumidificationControlCluster: DehumidificationControlCluster;
|
|
1025
|
+
export const DeviceTemperatureCluster: DeviceTemperatureCluster;
|
|
1026
|
+
export const DiagnosticsCluster: DiagnosticsCluster;
|
|
1027
|
+
export const DoorLockCluster: DoorLockCluster;
|
|
1028
|
+
export const ElectricalMeasurementCluster: ElectricalMeasurementCluster;
|
|
1029
|
+
export const FanControlCluster: FanControlCluster;
|
|
1030
|
+
export const FlowMeasurementCluster: FlowMeasurementCluster;
|
|
1031
|
+
export const GroupsCluster: GroupsCluster;
|
|
1032
|
+
export const IasACECluster: IasACECluster;
|
|
1033
|
+
export const IasWDCluster: IasWDCluster;
|
|
1034
|
+
export const IasZoneCluster: IasZoneCluster;
|
|
1035
|
+
export const IdentifyCluster: IdentifyCluster;
|
|
1036
|
+
export const IlluminanceLevelSensingCluster: IlluminanceLevelSensingCluster;
|
|
1037
|
+
export const IlluminanceMeasurementCluster: IlluminanceMeasurementCluster;
|
|
1038
|
+
export const LevelControlCluster: LevelControlCluster;
|
|
1039
|
+
export const MeteringCluster: MeteringCluster;
|
|
1040
|
+
export const MultistateInputCluster: MultistateInputCluster;
|
|
1041
|
+
export const MultistateOutputCluster: MultistateOutputCluster;
|
|
1042
|
+
export const MultistateValueCluster: MultistateValueCluster;
|
|
1043
|
+
export const OccupancySensingCluster: OccupancySensingCluster;
|
|
1044
|
+
export const OnOffCluster: OnOffCluster;
|
|
1045
|
+
export const OnOffSwitchCluster: OnOffSwitchCluster;
|
|
1046
|
+
export const OtaCluster: OtaCluster;
|
|
1047
|
+
export const PollControlCluster: PollControlCluster;
|
|
1048
|
+
export const PowerConfigurationCluster: PowerConfigurationCluster;
|
|
1049
|
+
export const PowerProfileCluster: PowerProfileCluster;
|
|
1050
|
+
export const PressureMeasurementCluster: PressureMeasurementCluster;
|
|
1051
|
+
export const PumpConfigurationAndControlCluster: PumpConfigurationAndControlCluster;
|
|
1052
|
+
export const RelativeHumidityCluster: RelativeHumidityCluster;
|
|
1053
|
+
export const ScenesCluster: ScenesCluster;
|
|
1054
|
+
export const ShadeConfigurationCluster: ShadeConfigurationCluster;
|
|
1055
|
+
export const TemperatureMeasurementCluster: TemperatureMeasurementCluster;
|
|
1056
|
+
export const ThermostatCluster: ThermostatCluster;
|
|
1057
|
+
export const TimeCluster: TimeCluster;
|
|
1058
|
+
export const TouchlinkCluster: TouchlinkCluster;
|
|
1059
|
+
export const WindowCoveringCluster: WindowCoveringCluster;
|
|
1060
|
+
}
|