@matter/types 0.11.9-alpha.0-20241205-ccf69a00a → 0.11.9-alpha.0-20241207-b604cfa44
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/dist/cjs/clusters/bridged-device-basic-information.d.ts +58 -7
- package/dist/cjs/clusters/bridged-device-basic-information.d.ts.map +1 -1
- package/dist/cjs/clusters/bridged-device-basic-information.js +19 -2
- package/dist/cjs/clusters/bridged-device-basic-information.js.map +1 -1
- package/dist/cjs/clusters/content-launcher.d.ts +10 -10
- package/dist/cjs/clusters/content-launcher.d.ts.map +1 -1
- package/dist/cjs/clusters/content-launcher.js +22 -22
- package/dist/cjs/clusters/content-launcher.js.map +2 -2
- package/dist/cjs/clusters/device-energy-management-mode.d.ts +411 -25
- package/dist/cjs/clusters/device-energy-management-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/device-energy-management-mode.js +90 -1
- package/dist/cjs/clusters/device-energy-management-mode.js.map +1 -1
- package/dist/cjs/clusters/dishwasher-alarm.d.ts +1253 -42
- package/dist/cjs/clusters/dishwasher-alarm.d.ts.map +1 -1
- package/dist/cjs/clusters/dishwasher-alarm.js +72 -9
- package/dist/cjs/clusters/dishwasher-alarm.js.map +1 -1
- package/dist/cjs/clusters/dishwasher-mode.d.ts +340 -17
- package/dist/cjs/clusters/dishwasher-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/dishwasher-mode.js +91 -2
- package/dist/cjs/clusters/dishwasher-mode.js.map +1 -1
- package/dist/cjs/clusters/door-lock.d.ts +1287 -135
- package/dist/cjs/clusters/door-lock.d.ts.map +1 -1
- package/dist/cjs/clusters/door-lock.js +199 -3
- package/dist/cjs/clusters/door-lock.js.map +1 -1
- package/dist/cjs/clusters/energy-evse-mode.d.ts +409 -25
- package/dist/cjs/clusters/energy-evse-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/energy-evse-mode.js +90 -1
- package/dist/cjs/clusters/energy-evse-mode.js.map +1 -1
- package/dist/cjs/clusters/fan-control.d.ts +5 -0
- package/dist/cjs/clusters/fan-control.d.ts.map +1 -1
- package/dist/cjs/clusters/fan-control.js.map +1 -1
- package/dist/cjs/clusters/groups.d.ts +12 -0
- package/dist/cjs/clusters/groups.d.ts.map +1 -1
- package/dist/cjs/clusters/groups.js +7 -1
- package/dist/cjs/clusters/groups.js.map +1 -1
- package/dist/cjs/clusters/laundry-washer-mode.d.ts +340 -17
- package/dist/cjs/clusters/laundry-washer-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/laundry-washer-mode.js +91 -2
- package/dist/cjs/clusters/laundry-washer-mode.js.map +1 -1
- package/dist/cjs/clusters/microwave-oven-mode.d.ts +330 -13
- package/dist/cjs/clusters/microwave-oven-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/microwave-oven-mode.js +90 -2
- package/dist/cjs/clusters/microwave-oven-mode.js.map +1 -1
- package/dist/cjs/clusters/mode-base.d.ts +68 -68
- package/dist/cjs/clusters/mode-base.d.ts.map +1 -1
- package/dist/cjs/clusters/mode-base.js +16 -16
- package/dist/cjs/clusters/mode-base.js.map +2 -2
- package/dist/cjs/clusters/oven-mode.d.ts +409 -25
- package/dist/cjs/clusters/oven-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/oven-mode.js +90 -1
- package/dist/cjs/clusters/oven-mode.js.map +1 -1
- package/dist/cjs/clusters/pump-configuration-and-control.d.ts +15 -0
- package/dist/cjs/clusters/pump-configuration-and-control.d.ts.map +1 -1
- package/dist/cjs/clusters/pump-configuration-and-control.js +6 -1
- package/dist/cjs/clusters/pump-configuration-and-control.js.map +1 -1
- package/dist/cjs/clusters/refrigerator-alarm.d.ts +364 -36
- package/dist/cjs/clusters/refrigerator-alarm.d.ts.map +1 -1
- package/dist/cjs/clusters/refrigerator-alarm.js +46 -8
- package/dist/cjs/clusters/refrigerator-alarm.js.map +1 -1
- package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +340 -17
- package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +91 -2
- package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
- package/dist/cjs/clusters/rvc-clean-mode.d.ts +374 -23
- package/dist/cjs/clusters/rvc-clean-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/rvc-clean-mode.js +99 -6
- package/dist/cjs/clusters/rvc-clean-mode.js.map +2 -2
- package/dist/cjs/clusters/rvc-operational-state.d.ts +248 -22
- package/dist/cjs/clusters/rvc-operational-state.d.ts.map +1 -1
- package/dist/cjs/clusters/rvc-operational-state.js +59 -10
- package/dist/cjs/clusters/rvc-operational-state.js.map +1 -1
- package/dist/cjs/clusters/rvc-run-mode.d.ts +401 -40
- package/dist/cjs/clusters/rvc-run-mode.d.ts.map +1 -1
- package/dist/cjs/clusters/rvc-run-mode.js +101 -8
- package/dist/cjs/clusters/rvc-run-mode.js.map +2 -2
- package/dist/cjs/clusters/thermostat.d.ts +262 -61
- package/dist/cjs/clusters/thermostat.d.ts.map +1 -1
- package/dist/cjs/clusters/thermostat.js +72 -58
- package/dist/cjs/clusters/thermostat.js.map +1 -1
- package/dist/esm/clusters/bridged-device-basic-information.d.ts +58 -7
- package/dist/esm/clusters/bridged-device-basic-information.d.ts.map +1 -1
- package/dist/esm/clusters/bridged-device-basic-information.js +19 -2
- package/dist/esm/clusters/bridged-device-basic-information.js.map +1 -1
- package/dist/esm/clusters/content-launcher.d.ts +10 -10
- package/dist/esm/clusters/content-launcher.d.ts.map +1 -1
- package/dist/esm/clusters/content-launcher.js +22 -22
- package/dist/esm/clusters/content-launcher.js.map +2 -2
- package/dist/esm/clusters/device-energy-management-mode.d.ts +411 -25
- package/dist/esm/clusters/device-energy-management-mode.d.ts.map +1 -1
- package/dist/esm/clusters/device-energy-management-mode.js +91 -2
- package/dist/esm/clusters/device-energy-management-mode.js.map +1 -1
- package/dist/esm/clusters/dishwasher-alarm.d.ts +1253 -42
- package/dist/esm/clusters/dishwasher-alarm.d.ts.map +1 -1
- package/dist/esm/clusters/dishwasher-alarm.js +72 -9
- package/dist/esm/clusters/dishwasher-alarm.js.map +1 -1
- package/dist/esm/clusters/dishwasher-mode.d.ts +340 -17
- package/dist/esm/clusters/dishwasher-mode.d.ts.map +1 -1
- package/dist/esm/clusters/dishwasher-mode.js +91 -2
- package/dist/esm/clusters/dishwasher-mode.js.map +1 -1
- package/dist/esm/clusters/door-lock.d.ts +1287 -135
- package/dist/esm/clusters/door-lock.d.ts.map +1 -1
- package/dist/esm/clusters/door-lock.js +199 -3
- package/dist/esm/clusters/door-lock.js.map +1 -1
- package/dist/esm/clusters/energy-evse-mode.d.ts +409 -25
- package/dist/esm/clusters/energy-evse-mode.d.ts.map +1 -1
- package/dist/esm/clusters/energy-evse-mode.js +91 -2
- package/dist/esm/clusters/energy-evse-mode.js.map +1 -1
- package/dist/esm/clusters/fan-control.d.ts +5 -0
- package/dist/esm/clusters/fan-control.d.ts.map +1 -1
- package/dist/esm/clusters/fan-control.js.map +1 -1
- package/dist/esm/clusters/groups.d.ts +12 -0
- package/dist/esm/clusters/groups.d.ts.map +1 -1
- package/dist/esm/clusters/groups.js +7 -1
- package/dist/esm/clusters/groups.js.map +1 -1
- package/dist/esm/clusters/laundry-washer-mode.d.ts +340 -17
- package/dist/esm/clusters/laundry-washer-mode.d.ts.map +1 -1
- package/dist/esm/clusters/laundry-washer-mode.js +91 -2
- package/dist/esm/clusters/laundry-washer-mode.js.map +1 -1
- package/dist/esm/clusters/microwave-oven-mode.d.ts +330 -13
- package/dist/esm/clusters/microwave-oven-mode.d.ts.map +1 -1
- package/dist/esm/clusters/microwave-oven-mode.js +91 -3
- package/dist/esm/clusters/microwave-oven-mode.js.map +1 -1
- package/dist/esm/clusters/mode-base.d.ts +68 -68
- package/dist/esm/clusters/mode-base.d.ts.map +1 -1
- package/dist/esm/clusters/mode-base.js +17 -17
- package/dist/esm/clusters/mode-base.js.map +2 -2
- package/dist/esm/clusters/oven-mode.d.ts +409 -25
- package/dist/esm/clusters/oven-mode.d.ts.map +1 -1
- package/dist/esm/clusters/oven-mode.js +91 -2
- package/dist/esm/clusters/oven-mode.js.map +1 -1
- package/dist/esm/clusters/pump-configuration-and-control.d.ts +15 -0
- package/dist/esm/clusters/pump-configuration-and-control.d.ts.map +1 -1
- package/dist/esm/clusters/pump-configuration-and-control.js +6 -1
- package/dist/esm/clusters/pump-configuration-and-control.js.map +1 -1
- package/dist/esm/clusters/refrigerator-alarm.d.ts +364 -36
- package/dist/esm/clusters/refrigerator-alarm.d.ts.map +1 -1
- package/dist/esm/clusters/refrigerator-alarm.js +46 -8
- package/dist/esm/clusters/refrigerator-alarm.js.map +1 -1
- package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +340 -17
- package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
- package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +91 -2
- package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
- package/dist/esm/clusters/rvc-clean-mode.d.ts +374 -23
- package/dist/esm/clusters/rvc-clean-mode.d.ts.map +1 -1
- package/dist/esm/clusters/rvc-clean-mode.js +99 -6
- package/dist/esm/clusters/rvc-clean-mode.js.map +2 -2
- package/dist/esm/clusters/rvc-operational-state.d.ts +248 -22
- package/dist/esm/clusters/rvc-operational-state.d.ts.map +1 -1
- package/dist/esm/clusters/rvc-operational-state.js +60 -11
- package/dist/esm/clusters/rvc-operational-state.js.map +1 -1
- package/dist/esm/clusters/rvc-run-mode.d.ts +401 -40
- package/dist/esm/clusters/rvc-run-mode.d.ts.map +1 -1
- package/dist/esm/clusters/rvc-run-mode.js +101 -8
- package/dist/esm/clusters/rvc-run-mode.js.map +2 -2
- package/dist/esm/clusters/thermostat.d.ts +262 -61
- package/dist/esm/clusters/thermostat.d.ts.map +1 -1
- package/dist/esm/clusters/thermostat.js +72 -58
- package/dist/esm/clusters/thermostat.js.map +1 -1
- package/package.json +5 -5
- package/src/clusters/bridged-device-basic-information.ts +46 -2
- package/src/clusters/content-launcher.ts +5 -5
- package/src/clusters/device-energy-management-mode.ts +184 -3
- package/src/clusters/dishwasher-alarm.ts +115 -9
- package/src/clusters/dishwasher-mode.ts +188 -3
- package/src/clusters/door-lock.ts +247 -3
- package/src/clusters/energy-evse-mode.ts +182 -3
- package/src/clusters/fan-control.ts +5 -0
- package/src/clusters/groups.ts +8 -1
- package/src/clusters/laundry-washer-mode.ts +188 -3
- package/src/clusters/microwave-oven-mode.ts +182 -4
- package/src/clusters/mode-base.ts +77 -77
- package/src/clusters/oven-mode.ts +182 -3
- package/src/clusters/pump-configuration-and-control.ts +7 -1
- package/src/clusters/refrigerator-alarm.ts +76 -8
- package/src/clusters/refrigerator-and-temperature-controlled-cabinet-mode.ts +188 -3
- package/src/clusters/rvc-clean-mode.ts +227 -10
- package/src/clusters/rvc-operational-state.ts +112 -11
- package/src/clusters/rvc-run-mode.ts +253 -26
- package/src/clusters/thermostat.ts +80 -65
- package/src/globals/WildcardPathFlags.ts +1 -1
|
@@ -15,10 +15,14 @@ import {
|
|
|
15
15
|
Command,
|
|
16
16
|
TlvNoResponse
|
|
17
17
|
} from "../cluster/Cluster.js";
|
|
18
|
-
import { TlvUInt8 } from "../tlv/TlvNumber.js";
|
|
18
|
+
import { TlvUInt8, TlvEnum } from "../tlv/TlvNumber.js";
|
|
19
19
|
import { TlvNullable } from "../tlv/TlvNullable.js";
|
|
20
20
|
import { BitFlag } from "../schema/BitmapSchema.js";
|
|
21
21
|
import { TlvArray } from "../tlv/TlvArray.js";
|
|
22
|
+
import { TlvField, TlvOptionalField, TlvObject } from "../tlv/TlvObject.js";
|
|
23
|
+
import { TlvString } from "../tlv/TlvString.js";
|
|
24
|
+
import { TlvVendorId } from "../datatype/VendorId.js";
|
|
25
|
+
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
22
26
|
import { ModeBase } from "./mode-base.js";
|
|
23
27
|
import { Identity } from "#general";
|
|
24
28
|
import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
|
|
@@ -106,9 +110,184 @@ export namespace OvenMode {
|
|
|
106
110
|
/**
|
|
107
111
|
* @see {@link MatterSpecification.v13.Cluster} § 8.11.4.1
|
|
108
112
|
*/
|
|
109
|
-
Steam = 16393
|
|
113
|
+
Steam = 16393,
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* The device decides which options, features and setting values to use.
|
|
117
|
+
*
|
|
118
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
119
|
+
*/
|
|
120
|
+
Auto = 0,
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* The mode of the device is optimizing for faster completion.
|
|
124
|
+
*
|
|
125
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
126
|
+
*/
|
|
127
|
+
Quick = 1,
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* The device is silent or barely audible while in this mode.
|
|
131
|
+
*
|
|
132
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
133
|
+
*/
|
|
134
|
+
Quiet = 2,
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Either the mode is inherently low noise or the device optimizes for that.
|
|
138
|
+
*
|
|
139
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
140
|
+
*/
|
|
141
|
+
LowNoise = 3,
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* The device is optimizing for lower energy usage in this mode. Sometimes called "Eco mode".
|
|
145
|
+
*
|
|
146
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
147
|
+
*/
|
|
148
|
+
LowEnergy = 4,
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* A mode suitable for use during vacations or other extended absences.
|
|
152
|
+
*
|
|
153
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
154
|
+
*/
|
|
155
|
+
Vacation = 5,
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* The mode uses the lowest available setting value.
|
|
159
|
+
*
|
|
160
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
161
|
+
*/
|
|
162
|
+
Min = 6,
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* The mode uses the highest available setting value.
|
|
166
|
+
*
|
|
167
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
168
|
+
*/
|
|
169
|
+
Max = 7,
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* The mode is recommended or suitable for use during night time.
|
|
173
|
+
*
|
|
174
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
175
|
+
*/
|
|
176
|
+
Night = 8,
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* The mode is recommended or suitable for use during day time.
|
|
180
|
+
*
|
|
181
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
182
|
+
*/
|
|
183
|
+
Day = 9
|
|
110
184
|
}
|
|
111
185
|
|
|
186
|
+
/**
|
|
187
|
+
* A Mode Tag is meant to be interpreted by the client for the purpose the cluster serves.
|
|
188
|
+
*
|
|
189
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1
|
|
190
|
+
*/
|
|
191
|
+
export const TlvModeTagStruct = TlvObject({
|
|
192
|
+
/**
|
|
193
|
+
* If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
|
|
194
|
+
* 1.10.8, “Mode Namespace”).
|
|
195
|
+
*
|
|
196
|
+
* This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
|
|
197
|
+
*
|
|
198
|
+
* The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
|
|
199
|
+
* and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
|
|
200
|
+
* whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
|
|
201
|
+
* salt.
|
|
202
|
+
*
|
|
203
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
|
|
204
|
+
*/
|
|
205
|
+
mfgCode: TlvOptionalField(0, TlvVendorId),
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
|
|
209
|
+
* standard.
|
|
210
|
+
*
|
|
211
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
|
|
212
|
+
*/
|
|
213
|
+
value: TlvField(1, TlvEnum<ModeTag>())
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* A Mode Tag is meant to be interpreted by the client for the purpose the cluster serves.
|
|
218
|
+
*
|
|
219
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1
|
|
220
|
+
*/
|
|
221
|
+
export interface ModeTagStruct extends TypeFromSchema<typeof TlvModeTagStruct> {}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* This is a struct representing a possible mode of the server.
|
|
225
|
+
*
|
|
226
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2
|
|
227
|
+
*/
|
|
228
|
+
export const TlvModeOption = TlvObject({
|
|
229
|
+
/**
|
|
230
|
+
* This field shall indicate readable text that describes the mode option, so that a client can provide it to
|
|
231
|
+
* the user to indicate what this option means. This field is meant to be readable and understandable by the
|
|
232
|
+
* user.
|
|
233
|
+
*
|
|
234
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.1
|
|
235
|
+
*/
|
|
236
|
+
label: TlvField(0, TlvString.bound({ maxLength: 64 })),
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* This field is used to identify the mode option.
|
|
240
|
+
*
|
|
241
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.2
|
|
242
|
+
*/
|
|
243
|
+
mode: TlvField(1, TlvUInt8),
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* This field shall contain a list of tags that are associated with the mode option. This may be used by
|
|
247
|
+
* clients to determine the full or the partial semantics of a certain mode, depending on which tags they
|
|
248
|
+
* understand, using standard definitions and/or manufacturer specific namespace definitions.
|
|
249
|
+
*
|
|
250
|
+
* The standard mode tags are defined in this cluster specification. For the derived cluster instances, if the
|
|
251
|
+
* specification of the derived cluster defines a namespace, the set of standard mode tags also includes the
|
|
252
|
+
* mode tag values from that namespace.
|
|
253
|
+
*
|
|
254
|
+
* Mode tags can help clients look for options that meet certain criteria, render the user interface, use
|
|
255
|
+
*
|
|
256
|
+
* the mode in an automation, or to craft help text their voice-driven interfaces. A mode tag shall be either a
|
|
257
|
+
* standard tag or a manufacturer specific tag, as defined in each ModeTagStruct list entry.
|
|
258
|
+
*
|
|
259
|
+
* A mode option may have more than one mode tag. A mode option may be associated with a mixture of standard
|
|
260
|
+
* and manufacturer specific mode tags. A mode option shall be associated with at least one standard mode tag.
|
|
261
|
+
*
|
|
262
|
+
* A few examples are provided below.
|
|
263
|
+
*
|
|
264
|
+
* • A mode named "100%" can have both the High (manufacturer specific) and Max (standard) mode tag. Clients
|
|
265
|
+
* seeking the mode for either High or Max will find the same mode in this case.
|
|
266
|
+
*
|
|
267
|
+
* • A mode that includes a LowEnergy tag can be displayed by the client using a widget icon that shows a
|
|
268
|
+
* green leaf.
|
|
269
|
+
*
|
|
270
|
+
* • A mode that includes a LowNoise tag may be used by the client when the user wishes for a lower level of
|
|
271
|
+
* audible sound, less likely to disturb the household’s activities.
|
|
272
|
+
*
|
|
273
|
+
* • A mode that includes a LowEnergy tag (standard, defined in this cluster specification) and also a
|
|
274
|
+
* Delicate tag (standard, defined in the namespace of a Laundry Mode derived cluster).
|
|
275
|
+
*
|
|
276
|
+
* • A mode that includes both a generic Quick tag (defined here), and Vacuum and Mop tags, (defined in the
|
|
277
|
+
* RVC Clean cluster that is a derivation of this cluster).
|
|
278
|
+
*
|
|
279
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.3
|
|
280
|
+
*/
|
|
281
|
+
modeTags: TlvField(2, TlvArray(TlvModeTagStruct, { maxLength: 8 }))
|
|
282
|
+
});
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* This is a struct representing a possible mode of the server.
|
|
286
|
+
*
|
|
287
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2
|
|
288
|
+
*/
|
|
289
|
+
export interface ModeOption extends TypeFromSchema<typeof TlvModeOption> {}
|
|
290
|
+
|
|
112
291
|
/**
|
|
113
292
|
* A OvenModeCluster supports these elements if it supports feature OnOff.
|
|
114
293
|
*/
|
|
@@ -158,7 +337,7 @@ export namespace OvenMode {
|
|
|
158
337
|
*
|
|
159
338
|
* @see {@link MatterSpecification.v13.Cluster} § 1.10.6.2
|
|
160
339
|
*/
|
|
161
|
-
supportedModes: FixedAttribute(0x0, TlvArray(
|
|
340
|
+
supportedModes: FixedAttribute(0x0, TlvArray(TlvModeOption, { minLength: 2, maxLength: 255 })),
|
|
162
341
|
|
|
163
342
|
/**
|
|
164
343
|
* Indicates the current mode of the server.
|
|
@@ -787,7 +787,13 @@ export namespace PumpConfigurationAndControl {
|
|
|
787
787
|
0x21,
|
|
788
788
|
TlvEnum<ControlMode>(),
|
|
789
789
|
{ persistent: true, default: ControlMode.ConstantSpeed, writeAcl: AccessLevel.Manage }
|
|
790
|
-
)
|
|
790
|
+
),
|
|
791
|
+
|
|
792
|
+
/**
|
|
793
|
+
* @see {@link MatterSpecification.v13.Cluster} § 4.2.7
|
|
794
|
+
* @deprecated
|
|
795
|
+
*/
|
|
796
|
+
alarmMask: OptionalAttribute(0x22, TlvUInt16, { persistent: true, default: 0 })
|
|
791
797
|
},
|
|
792
798
|
|
|
793
799
|
events: {
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
|
|
10
10
|
import { FixedAttribute, Command, TlvNoResponse, Attribute, Event, EventPriority } from "../cluster/Cluster.js";
|
|
11
|
-
import { TlvUInt32 } from "../tlv/TlvNumber.js";
|
|
12
|
-
import { AlarmBase } from "./alarm-base.js";
|
|
13
11
|
import { BitFlag } from "../schema/BitmapSchema.js";
|
|
12
|
+
import { TlvUInt32, TlvBitmap } from "../tlv/TlvNumber.js";
|
|
13
|
+
import { TlvField, TlvObject } from "../tlv/TlvObject.js";
|
|
14
|
+
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
14
15
|
import { Identity } from "#general";
|
|
15
16
|
import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
|
|
16
17
|
|
|
@@ -39,6 +40,73 @@ export namespace RefrigeratorAlarm {
|
|
|
39
40
|
doorOpen: BitFlag(0)
|
|
40
41
|
};
|
|
41
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Input to the RefrigeratorAlarm reset command
|
|
45
|
+
*
|
|
46
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.15.7.1
|
|
47
|
+
*/
|
|
48
|
+
export const TlvResetRequest = TlvObject({
|
|
49
|
+
/**
|
|
50
|
+
* This field shall indicate a bitmap where each bit set in this field corresponds to an alarm that shall be
|
|
51
|
+
* reset to inactive in the State attribute unless the alarm definition requires manual intervention. If the
|
|
52
|
+
* alarms indicated are successfully reset, the response status code shall be SUCCESS, otherwise, the response
|
|
53
|
+
* status code shall be FAILURE.
|
|
54
|
+
*
|
|
55
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.15.7.1.1
|
|
56
|
+
*/
|
|
57
|
+
alarms: TlvField(0, TlvBitmap(TlvUInt32, Alarm))
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Input to the RefrigeratorAlarm reset command
|
|
62
|
+
*
|
|
63
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.15.7.1
|
|
64
|
+
*/
|
|
65
|
+
export interface ResetRequest extends TypeFromSchema<typeof TlvResetRequest> {}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Body of the RefrigeratorAlarm notify event
|
|
69
|
+
*
|
|
70
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.15.8.1
|
|
71
|
+
*/
|
|
72
|
+
export const TlvNotifyEvent = TlvObject({
|
|
73
|
+
/**
|
|
74
|
+
* This field shall indicate those alarms that have become active.
|
|
75
|
+
*
|
|
76
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.15.8.1.1
|
|
77
|
+
*/
|
|
78
|
+
active: TlvField(1, TlvBitmap(TlvUInt32, Alarm)),
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* This field shall indicate those alarms that have become inactive.
|
|
82
|
+
*
|
|
83
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.15.8.1.2
|
|
84
|
+
*/
|
|
85
|
+
inactive: TlvField(2, TlvBitmap(TlvUInt32, Alarm)),
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* This field shall be a copy of the new State attribute value that resulted in the event being generated. That
|
|
89
|
+
* is, this field shall have all the bits in Active set and shall NOT have any of the bits in Inactive set.
|
|
90
|
+
*
|
|
91
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.15.8.1.4
|
|
92
|
+
*/
|
|
93
|
+
state: TlvField(3, TlvBitmap(TlvUInt32, Alarm)),
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* This field shall be a copy of the Mask attribute when this event was generated.
|
|
97
|
+
*
|
|
98
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.15.8.1.3
|
|
99
|
+
*/
|
|
100
|
+
mask: TlvField(4, TlvBitmap(TlvUInt32, Alarm))
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Body of the RefrigeratorAlarm notify event
|
|
105
|
+
*
|
|
106
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.15.8.1
|
|
107
|
+
*/
|
|
108
|
+
export interface NotifyEvent extends TypeFromSchema<typeof TlvNotifyEvent> {}
|
|
109
|
+
|
|
42
110
|
/**
|
|
43
111
|
* A RefrigeratorAlarmCluster supports these elements if it supports feature Reset.
|
|
44
112
|
*/
|
|
@@ -51,7 +119,7 @@ export namespace RefrigeratorAlarm {
|
|
|
51
119
|
*
|
|
52
120
|
* @see {@link MatterSpecification.v13.Cluster} § 1.15.6.2
|
|
53
121
|
*/
|
|
54
|
-
latch: FixedAttribute(0x1, TlvUInt32)
|
|
122
|
+
latch: FixedAttribute(0x1, TlvBitmap(TlvUInt32, Alarm))
|
|
55
123
|
},
|
|
56
124
|
|
|
57
125
|
commands: {
|
|
@@ -61,7 +129,7 @@ export namespace RefrigeratorAlarm {
|
|
|
61
129
|
*
|
|
62
130
|
* @see {@link MatterSpecification.v13.Cluster} § 1.15.7.1
|
|
63
131
|
*/
|
|
64
|
-
reset: Command(0x0,
|
|
132
|
+
reset: Command(0x0, TlvResetRequest, 0x0, TlvNoResponse)
|
|
65
133
|
}
|
|
66
134
|
});
|
|
67
135
|
|
|
@@ -89,7 +157,7 @@ export namespace RefrigeratorAlarm {
|
|
|
89
157
|
*
|
|
90
158
|
* @see {@link MatterSpecification.v13.Cluster} § 1.15.6.1
|
|
91
159
|
*/
|
|
92
|
-
mask: Attribute(0x0, TlvUInt32),
|
|
160
|
+
mask: Attribute(0x0, TlvBitmap(TlvUInt32, Alarm)),
|
|
93
161
|
|
|
94
162
|
/**
|
|
95
163
|
* Indicates a bitmap where each bit shall represent the state of an alarm. The value of true means the
|
|
@@ -97,7 +165,7 @@ export namespace RefrigeratorAlarm {
|
|
|
97
165
|
*
|
|
98
166
|
* @see {@link MatterSpecification.v13.Cluster} § 1.15.6.3
|
|
99
167
|
*/
|
|
100
|
-
state: Attribute(0x2, TlvUInt32),
|
|
168
|
+
state: Attribute(0x2, TlvBitmap(TlvUInt32, Alarm)),
|
|
101
169
|
|
|
102
170
|
/**
|
|
103
171
|
* Indicates a bitmap where each bit shall represent whether or not an alarm is supported. The value of
|
|
@@ -107,7 +175,7 @@ export namespace RefrigeratorAlarm {
|
|
|
107
175
|
*
|
|
108
176
|
* @see {@link MatterSpecification.v13.Cluster} § 1.15.6.4
|
|
109
177
|
*/
|
|
110
|
-
supported: FixedAttribute(0x3, TlvUInt32)
|
|
178
|
+
supported: FixedAttribute(0x3, TlvBitmap(TlvUInt32, Alarm))
|
|
111
179
|
},
|
|
112
180
|
|
|
113
181
|
events: {
|
|
@@ -116,7 +184,7 @@ export namespace RefrigeratorAlarm {
|
|
|
116
184
|
*
|
|
117
185
|
* @see {@link MatterSpecification.v13.Cluster} § 1.15.8.1
|
|
118
186
|
*/
|
|
119
|
-
notify: Event(0x0, EventPriority.Info,
|
|
187
|
+
notify: Event(0x0, EventPriority.Info, TlvNotifyEvent)
|
|
120
188
|
},
|
|
121
189
|
|
|
122
190
|
/**
|
|
@@ -10,8 +10,12 @@ import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
|
|
|
10
10
|
import { BitFlag } from "../schema/BitmapSchema.js";
|
|
11
11
|
import { FixedAttribute, Attribute, WritableAttribute, Command, TlvNoResponse } from "../cluster/Cluster.js";
|
|
12
12
|
import { TlvArray } from "../tlv/TlvArray.js";
|
|
13
|
+
import { TlvField, TlvOptionalField, TlvObject } from "../tlv/TlvObject.js";
|
|
14
|
+
import { TlvString } from "../tlv/TlvString.js";
|
|
15
|
+
import { TlvUInt8, TlvEnum } from "../tlv/TlvNumber.js";
|
|
16
|
+
import { TlvVendorId } from "../datatype/VendorId.js";
|
|
17
|
+
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
13
18
|
import { ModeBase } from "./mode-base.js";
|
|
14
|
-
import { TlvUInt8 } from "../tlv/TlvNumber.js";
|
|
15
19
|
import { Identity } from "#general";
|
|
16
20
|
import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
|
|
17
21
|
|
|
@@ -46,9 +50,190 @@ export namespace RefrigeratorAndTemperatureControlledCabinetMode {
|
|
|
46
50
|
*
|
|
47
51
|
* @see {@link MatterSpecification.v13.Cluster} § 8.7.6.1.2
|
|
48
52
|
*/
|
|
49
|
-
RapidFreeze = 16385
|
|
53
|
+
RapidFreeze = 16385,
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The device decides which options, features and setting values to use.
|
|
57
|
+
*
|
|
58
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
59
|
+
*/
|
|
60
|
+
Auto = 0,
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The mode of the device is optimizing for faster completion.
|
|
64
|
+
*
|
|
65
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
66
|
+
*/
|
|
67
|
+
Quick = 1,
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* The device is silent or barely audible while in this mode.
|
|
71
|
+
*
|
|
72
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
73
|
+
*/
|
|
74
|
+
Quiet = 2,
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Either the mode is inherently low noise or the device optimizes for that.
|
|
78
|
+
*
|
|
79
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
80
|
+
*/
|
|
81
|
+
LowNoise = 3,
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* The device is optimizing for lower energy usage in this mode. Sometimes called "Eco mode".
|
|
85
|
+
*
|
|
86
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
87
|
+
*/
|
|
88
|
+
LowEnergy = 4,
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* A mode suitable for use during vacations or other extended absences.
|
|
92
|
+
*
|
|
93
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
94
|
+
*/
|
|
95
|
+
Vacation = 5,
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* The mode uses the lowest available setting value.
|
|
99
|
+
*
|
|
100
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
101
|
+
*/
|
|
102
|
+
Min = 6,
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* The mode uses the highest available setting value.
|
|
106
|
+
*
|
|
107
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
108
|
+
*/
|
|
109
|
+
Max = 7,
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* The mode is recommended or suitable for use during night time.
|
|
113
|
+
*
|
|
114
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
115
|
+
*/
|
|
116
|
+
Night = 8,
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* The mode is recommended or suitable for use during day time.
|
|
120
|
+
*
|
|
121
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.8
|
|
122
|
+
*/
|
|
123
|
+
Day = 9
|
|
50
124
|
}
|
|
51
125
|
|
|
126
|
+
/**
|
|
127
|
+
* A Mode Tag is meant to be interpreted by the client for the purpose the cluster serves.
|
|
128
|
+
*
|
|
129
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1
|
|
130
|
+
*/
|
|
131
|
+
export const TlvModeTagStruct = TlvObject({
|
|
132
|
+
/**
|
|
133
|
+
* If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
|
|
134
|
+
* 1.10.8, “Mode Namespace”).
|
|
135
|
+
*
|
|
136
|
+
* This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
|
|
137
|
+
*
|
|
138
|
+
* The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
|
|
139
|
+
* and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
|
|
140
|
+
* whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
|
|
141
|
+
* salt.
|
|
142
|
+
*
|
|
143
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
|
|
144
|
+
*/
|
|
145
|
+
mfgCode: TlvOptionalField(0, TlvVendorId),
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
|
|
149
|
+
* standard.
|
|
150
|
+
*
|
|
151
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
|
|
152
|
+
*/
|
|
153
|
+
value: TlvField(1, TlvEnum<ModeTag>())
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* A Mode Tag is meant to be interpreted by the client for the purpose the cluster serves.
|
|
158
|
+
*
|
|
159
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1
|
|
160
|
+
*/
|
|
161
|
+
export interface ModeTagStruct extends TypeFromSchema<typeof TlvModeTagStruct> {}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* The table below lists the changes relative to the Mode Base cluster for the fields of the ModeOptionStruct type.
|
|
165
|
+
* A blank field indicates no change.
|
|
166
|
+
*
|
|
167
|
+
* At least one entry in the SupportedModes attribute shall include the Auto mode tag in the ModeTags field list.
|
|
168
|
+
*
|
|
169
|
+
* @see {@link MatterSpecification.v13.Cluster} § 8.7.4.1
|
|
170
|
+
*/
|
|
171
|
+
export const TlvModeOption = TlvObject({
|
|
172
|
+
/**
|
|
173
|
+
* This field shall indicate readable text that describes the mode option, so that a client can provide it to
|
|
174
|
+
* the user to indicate what this option means. This field is meant to be readable and understandable by the
|
|
175
|
+
* user.
|
|
176
|
+
*
|
|
177
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.1
|
|
178
|
+
*/
|
|
179
|
+
label: TlvField(0, TlvString.bound({ maxLength: 64 })),
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* This field is used to identify the mode option.
|
|
183
|
+
*
|
|
184
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.2
|
|
185
|
+
*/
|
|
186
|
+
mode: TlvField(1, TlvUInt8),
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* This field shall contain a list of tags that are associated with the mode option. This may be used by
|
|
190
|
+
* clients to determine the full or the partial semantics of a certain mode, depending on which tags they
|
|
191
|
+
* understand, using standard definitions and/or manufacturer specific namespace definitions.
|
|
192
|
+
*
|
|
193
|
+
* The standard mode tags are defined in this cluster specification. For the derived cluster instances, if the
|
|
194
|
+
* specification of the derived cluster defines a namespace, the set of standard mode tags also includes the
|
|
195
|
+
* mode tag values from that namespace.
|
|
196
|
+
*
|
|
197
|
+
* Mode tags can help clients look for options that meet certain criteria, render the user interface, use
|
|
198
|
+
*
|
|
199
|
+
* the mode in an automation, or to craft help text their voice-driven interfaces. A mode tag shall be either a
|
|
200
|
+
* standard tag or a manufacturer specific tag, as defined in each ModeTagStruct list entry.
|
|
201
|
+
*
|
|
202
|
+
* A mode option may have more than one mode tag. A mode option may be associated with a mixture of standard
|
|
203
|
+
* and manufacturer specific mode tags. A mode option shall be associated with at least one standard mode tag.
|
|
204
|
+
*
|
|
205
|
+
* A few examples are provided below.
|
|
206
|
+
*
|
|
207
|
+
* • A mode named "100%" can have both the High (manufacturer specific) and Max (standard) mode tag. Clients
|
|
208
|
+
* seeking the mode for either High or Max will find the same mode in this case.
|
|
209
|
+
*
|
|
210
|
+
* • A mode that includes a LowEnergy tag can be displayed by the client using a widget icon that shows a
|
|
211
|
+
* green leaf.
|
|
212
|
+
*
|
|
213
|
+
* • A mode that includes a LowNoise tag may be used by the client when the user wishes for a lower level of
|
|
214
|
+
* audible sound, less likely to disturb the household’s activities.
|
|
215
|
+
*
|
|
216
|
+
* • A mode that includes a LowEnergy tag (standard, defined in this cluster specification) and also a
|
|
217
|
+
* Delicate tag (standard, defined in the namespace of a Laundry Mode derived cluster).
|
|
218
|
+
*
|
|
219
|
+
* • A mode that includes both a generic Quick tag (defined here), and Vacuum and Mop tags, (defined in the
|
|
220
|
+
* RVC Clean cluster that is a derivation of this cluster).
|
|
221
|
+
*
|
|
222
|
+
* @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.3
|
|
223
|
+
*/
|
|
224
|
+
modeTags: TlvField(2, TlvArray(TlvModeTagStruct, { maxLength: 8 }))
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* The table below lists the changes relative to the Mode Base cluster for the fields of the ModeOptionStruct type.
|
|
229
|
+
* A blank field indicates no change.
|
|
230
|
+
*
|
|
231
|
+
* At least one entry in the SupportedModes attribute shall include the Auto mode tag in the ModeTags field list.
|
|
232
|
+
*
|
|
233
|
+
* @see {@link MatterSpecification.v13.Cluster} § 8.7.4.1
|
|
234
|
+
*/
|
|
235
|
+
export interface ModeOption extends TypeFromSchema<typeof TlvModeOption> {}
|
|
236
|
+
|
|
52
237
|
/**
|
|
53
238
|
* These elements and properties are present in all RefrigeratorAndTemperatureControlledCabinetMode clusters.
|
|
54
239
|
*/
|
|
@@ -75,7 +260,7 @@ export namespace RefrigeratorAndTemperatureControlledCabinetMode {
|
|
|
75
260
|
*/
|
|
76
261
|
supportedModes: FixedAttribute(
|
|
77
262
|
0x0,
|
|
78
|
-
TlvArray(
|
|
263
|
+
TlvArray(TlvModeOption, { minLength: 2, maxLength: 255 }),
|
|
79
264
|
{ default: [] }
|
|
80
265
|
),
|
|
81
266
|
|