@matter/types 0.11.9-alpha.0-20241205-ccf69a00a → 0.11.9-alpha.0-20241206-22f233334

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/cjs/clusters/bridged-device-basic-information.d.ts +58 -7
  2. package/dist/cjs/clusters/bridged-device-basic-information.d.ts.map +1 -1
  3. package/dist/cjs/clusters/bridged-device-basic-information.js +19 -2
  4. package/dist/cjs/clusters/bridged-device-basic-information.js.map +1 -1
  5. package/dist/cjs/clusters/content-launcher.d.ts +10 -10
  6. package/dist/cjs/clusters/content-launcher.d.ts.map +1 -1
  7. package/dist/cjs/clusters/content-launcher.js +22 -22
  8. package/dist/cjs/clusters/content-launcher.js.map +2 -2
  9. package/dist/cjs/clusters/device-energy-management-mode.d.ts +411 -25
  10. package/dist/cjs/clusters/device-energy-management-mode.d.ts.map +1 -1
  11. package/dist/cjs/clusters/device-energy-management-mode.js +90 -1
  12. package/dist/cjs/clusters/device-energy-management-mode.js.map +1 -1
  13. package/dist/cjs/clusters/dishwasher-alarm.d.ts +1253 -42
  14. package/dist/cjs/clusters/dishwasher-alarm.d.ts.map +1 -1
  15. package/dist/cjs/clusters/dishwasher-alarm.js +72 -9
  16. package/dist/cjs/clusters/dishwasher-alarm.js.map +1 -1
  17. package/dist/cjs/clusters/dishwasher-mode.d.ts +340 -17
  18. package/dist/cjs/clusters/dishwasher-mode.d.ts.map +1 -1
  19. package/dist/cjs/clusters/dishwasher-mode.js +91 -2
  20. package/dist/cjs/clusters/dishwasher-mode.js.map +1 -1
  21. package/dist/cjs/clusters/door-lock.d.ts +1287 -135
  22. package/dist/cjs/clusters/door-lock.d.ts.map +1 -1
  23. package/dist/cjs/clusters/door-lock.js +199 -3
  24. package/dist/cjs/clusters/door-lock.js.map +1 -1
  25. package/dist/cjs/clusters/energy-evse-mode.d.ts +409 -25
  26. package/dist/cjs/clusters/energy-evse-mode.d.ts.map +1 -1
  27. package/dist/cjs/clusters/energy-evse-mode.js +90 -1
  28. package/dist/cjs/clusters/energy-evse-mode.js.map +1 -1
  29. package/dist/cjs/clusters/fan-control.d.ts +5 -0
  30. package/dist/cjs/clusters/fan-control.d.ts.map +1 -1
  31. package/dist/cjs/clusters/fan-control.js.map +1 -1
  32. package/dist/cjs/clusters/groups.d.ts +12 -0
  33. package/dist/cjs/clusters/groups.d.ts.map +1 -1
  34. package/dist/cjs/clusters/groups.js +7 -1
  35. package/dist/cjs/clusters/groups.js.map +1 -1
  36. package/dist/cjs/clusters/laundry-washer-mode.d.ts +340 -17
  37. package/dist/cjs/clusters/laundry-washer-mode.d.ts.map +1 -1
  38. package/dist/cjs/clusters/laundry-washer-mode.js +91 -2
  39. package/dist/cjs/clusters/laundry-washer-mode.js.map +1 -1
  40. package/dist/cjs/clusters/microwave-oven-mode.d.ts +330 -13
  41. package/dist/cjs/clusters/microwave-oven-mode.d.ts.map +1 -1
  42. package/dist/cjs/clusters/microwave-oven-mode.js +90 -2
  43. package/dist/cjs/clusters/microwave-oven-mode.js.map +1 -1
  44. package/dist/cjs/clusters/mode-base.d.ts +68 -68
  45. package/dist/cjs/clusters/mode-base.d.ts.map +1 -1
  46. package/dist/cjs/clusters/mode-base.js +16 -16
  47. package/dist/cjs/clusters/mode-base.js.map +2 -2
  48. package/dist/cjs/clusters/oven-mode.d.ts +409 -25
  49. package/dist/cjs/clusters/oven-mode.d.ts.map +1 -1
  50. package/dist/cjs/clusters/oven-mode.js +90 -1
  51. package/dist/cjs/clusters/oven-mode.js.map +1 -1
  52. package/dist/cjs/clusters/pump-configuration-and-control.d.ts +15 -0
  53. package/dist/cjs/clusters/pump-configuration-and-control.d.ts.map +1 -1
  54. package/dist/cjs/clusters/pump-configuration-and-control.js +6 -1
  55. package/dist/cjs/clusters/pump-configuration-and-control.js.map +1 -1
  56. package/dist/cjs/clusters/refrigerator-alarm.d.ts +364 -36
  57. package/dist/cjs/clusters/refrigerator-alarm.d.ts.map +1 -1
  58. package/dist/cjs/clusters/refrigerator-alarm.js +46 -8
  59. package/dist/cjs/clusters/refrigerator-alarm.js.map +1 -1
  60. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +340 -17
  61. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  62. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +91 -2
  63. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  64. package/dist/cjs/clusters/rvc-clean-mode.d.ts +374 -23
  65. package/dist/cjs/clusters/rvc-clean-mode.d.ts.map +1 -1
  66. package/dist/cjs/clusters/rvc-clean-mode.js +99 -6
  67. package/dist/cjs/clusters/rvc-clean-mode.js.map +2 -2
  68. package/dist/cjs/clusters/rvc-operational-state.d.ts +248 -22
  69. package/dist/cjs/clusters/rvc-operational-state.d.ts.map +1 -1
  70. package/dist/cjs/clusters/rvc-operational-state.js +59 -10
  71. package/dist/cjs/clusters/rvc-operational-state.js.map +1 -1
  72. package/dist/cjs/clusters/rvc-run-mode.d.ts +401 -40
  73. package/dist/cjs/clusters/rvc-run-mode.d.ts.map +1 -1
  74. package/dist/cjs/clusters/rvc-run-mode.js +101 -8
  75. package/dist/cjs/clusters/rvc-run-mode.js.map +2 -2
  76. package/dist/cjs/clusters/thermostat.d.ts +262 -61
  77. package/dist/cjs/clusters/thermostat.d.ts.map +1 -1
  78. package/dist/cjs/clusters/thermostat.js +72 -58
  79. package/dist/cjs/clusters/thermostat.js.map +1 -1
  80. package/dist/esm/clusters/bridged-device-basic-information.d.ts +58 -7
  81. package/dist/esm/clusters/bridged-device-basic-information.d.ts.map +1 -1
  82. package/dist/esm/clusters/bridged-device-basic-information.js +19 -2
  83. package/dist/esm/clusters/bridged-device-basic-information.js.map +1 -1
  84. package/dist/esm/clusters/content-launcher.d.ts +10 -10
  85. package/dist/esm/clusters/content-launcher.d.ts.map +1 -1
  86. package/dist/esm/clusters/content-launcher.js +22 -22
  87. package/dist/esm/clusters/content-launcher.js.map +2 -2
  88. package/dist/esm/clusters/device-energy-management-mode.d.ts +411 -25
  89. package/dist/esm/clusters/device-energy-management-mode.d.ts.map +1 -1
  90. package/dist/esm/clusters/device-energy-management-mode.js +91 -2
  91. package/dist/esm/clusters/device-energy-management-mode.js.map +1 -1
  92. package/dist/esm/clusters/dishwasher-alarm.d.ts +1253 -42
  93. package/dist/esm/clusters/dishwasher-alarm.d.ts.map +1 -1
  94. package/dist/esm/clusters/dishwasher-alarm.js +72 -9
  95. package/dist/esm/clusters/dishwasher-alarm.js.map +1 -1
  96. package/dist/esm/clusters/dishwasher-mode.d.ts +340 -17
  97. package/dist/esm/clusters/dishwasher-mode.d.ts.map +1 -1
  98. package/dist/esm/clusters/dishwasher-mode.js +91 -2
  99. package/dist/esm/clusters/dishwasher-mode.js.map +1 -1
  100. package/dist/esm/clusters/door-lock.d.ts +1287 -135
  101. package/dist/esm/clusters/door-lock.d.ts.map +1 -1
  102. package/dist/esm/clusters/door-lock.js +199 -3
  103. package/dist/esm/clusters/door-lock.js.map +1 -1
  104. package/dist/esm/clusters/energy-evse-mode.d.ts +409 -25
  105. package/dist/esm/clusters/energy-evse-mode.d.ts.map +1 -1
  106. package/dist/esm/clusters/energy-evse-mode.js +91 -2
  107. package/dist/esm/clusters/energy-evse-mode.js.map +1 -1
  108. package/dist/esm/clusters/fan-control.d.ts +5 -0
  109. package/dist/esm/clusters/fan-control.d.ts.map +1 -1
  110. package/dist/esm/clusters/fan-control.js.map +1 -1
  111. package/dist/esm/clusters/groups.d.ts +12 -0
  112. package/dist/esm/clusters/groups.d.ts.map +1 -1
  113. package/dist/esm/clusters/groups.js +7 -1
  114. package/dist/esm/clusters/groups.js.map +1 -1
  115. package/dist/esm/clusters/laundry-washer-mode.d.ts +340 -17
  116. package/dist/esm/clusters/laundry-washer-mode.d.ts.map +1 -1
  117. package/dist/esm/clusters/laundry-washer-mode.js +91 -2
  118. package/dist/esm/clusters/laundry-washer-mode.js.map +1 -1
  119. package/dist/esm/clusters/microwave-oven-mode.d.ts +330 -13
  120. package/dist/esm/clusters/microwave-oven-mode.d.ts.map +1 -1
  121. package/dist/esm/clusters/microwave-oven-mode.js +91 -3
  122. package/dist/esm/clusters/microwave-oven-mode.js.map +1 -1
  123. package/dist/esm/clusters/mode-base.d.ts +68 -68
  124. package/dist/esm/clusters/mode-base.d.ts.map +1 -1
  125. package/dist/esm/clusters/mode-base.js +17 -17
  126. package/dist/esm/clusters/mode-base.js.map +2 -2
  127. package/dist/esm/clusters/oven-mode.d.ts +409 -25
  128. package/dist/esm/clusters/oven-mode.d.ts.map +1 -1
  129. package/dist/esm/clusters/oven-mode.js +91 -2
  130. package/dist/esm/clusters/oven-mode.js.map +1 -1
  131. package/dist/esm/clusters/pump-configuration-and-control.d.ts +15 -0
  132. package/dist/esm/clusters/pump-configuration-and-control.d.ts.map +1 -1
  133. package/dist/esm/clusters/pump-configuration-and-control.js +6 -1
  134. package/dist/esm/clusters/pump-configuration-and-control.js.map +1 -1
  135. package/dist/esm/clusters/refrigerator-alarm.d.ts +364 -36
  136. package/dist/esm/clusters/refrigerator-alarm.d.ts.map +1 -1
  137. package/dist/esm/clusters/refrigerator-alarm.js +46 -8
  138. package/dist/esm/clusters/refrigerator-alarm.js.map +1 -1
  139. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +340 -17
  140. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  141. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +91 -2
  142. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  143. package/dist/esm/clusters/rvc-clean-mode.d.ts +374 -23
  144. package/dist/esm/clusters/rvc-clean-mode.d.ts.map +1 -1
  145. package/dist/esm/clusters/rvc-clean-mode.js +99 -6
  146. package/dist/esm/clusters/rvc-clean-mode.js.map +2 -2
  147. package/dist/esm/clusters/rvc-operational-state.d.ts +248 -22
  148. package/dist/esm/clusters/rvc-operational-state.d.ts.map +1 -1
  149. package/dist/esm/clusters/rvc-operational-state.js +60 -11
  150. package/dist/esm/clusters/rvc-operational-state.js.map +1 -1
  151. package/dist/esm/clusters/rvc-run-mode.d.ts +401 -40
  152. package/dist/esm/clusters/rvc-run-mode.d.ts.map +1 -1
  153. package/dist/esm/clusters/rvc-run-mode.js +101 -8
  154. package/dist/esm/clusters/rvc-run-mode.js.map +2 -2
  155. package/dist/esm/clusters/thermostat.d.ts +262 -61
  156. package/dist/esm/clusters/thermostat.d.ts.map +1 -1
  157. package/dist/esm/clusters/thermostat.js +72 -58
  158. package/dist/esm/clusters/thermostat.js.map +1 -1
  159. package/package.json +5 -5
  160. package/src/clusters/bridged-device-basic-information.ts +46 -2
  161. package/src/clusters/content-launcher.ts +5 -5
  162. package/src/clusters/device-energy-management-mode.ts +184 -3
  163. package/src/clusters/dishwasher-alarm.ts +115 -9
  164. package/src/clusters/dishwasher-mode.ts +188 -3
  165. package/src/clusters/door-lock.ts +247 -3
  166. package/src/clusters/energy-evse-mode.ts +182 -3
  167. package/src/clusters/fan-control.ts +5 -0
  168. package/src/clusters/groups.ts +8 -1
  169. package/src/clusters/laundry-washer-mode.ts +188 -3
  170. package/src/clusters/microwave-oven-mode.ts +182 -4
  171. package/src/clusters/mode-base.ts +77 -77
  172. package/src/clusters/oven-mode.ts +182 -3
  173. package/src/clusters/pump-configuration-and-control.ts +7 -1
  174. package/src/clusters/refrigerator-alarm.ts +76 -8
  175. package/src/clusters/refrigerator-and-temperature-controlled-cabinet-mode.ts +188 -3
  176. package/src/clusters/rvc-clean-mode.ts +227 -10
  177. package/src/clusters/rvc-operational-state.ts +112 -11
  178. package/src/clusters/rvc-run-mode.ts +253 -26
  179. package/src/clusters/thermostat.ts +80 -65
  180. package/src/globals/WildcardPathFlags.ts +1 -1
@@ -7,6 +7,7 @@
7
7
  import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
8
8
  import { BitFlag } from "../schema/BitmapSchema.js";
9
9
  import { FixedAttribute, Attribute, Command } from "../cluster/Cluster.js";
10
+ import { TypeFromSchema } from "../tlv/TlvSchema.js";
10
11
  import { Identity } from "#general";
11
12
  export declare namespace RvcCleanMode {
12
13
  /**
@@ -25,12 +26,6 @@ export declare namespace RvcCleanMode {
25
26
  */
26
27
  OnOff = "OnOff"
27
28
  }
28
- enum ModeChangeStatus {
29
- /**
30
- * @see {@link MatterSpecification.v13.Cluster} § 7.3.7.1
31
- */
32
- CleaningInProgress = 64
33
- }
34
29
  enum ModeTag {
35
30
  /**
36
31
  * @see {@link MatterSpecification.v13.Cluster} § 7.3.7.2
@@ -47,7 +42,229 @@ export declare namespace RvcCleanMode {
47
42
  *
48
43
  * @see {@link MatterSpecification.v13.Cluster} § 7.3.7.2.3
49
44
  */
50
- Mop = 16386
45
+ Mop = 16386,
46
+ /**
47
+ * The device decides which options, features and setting values to use.
48
+ *
49
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
50
+ */
51
+ Auto = 0,
52
+ /**
53
+ * The mode of the device is optimizing for faster completion.
54
+ *
55
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
56
+ */
57
+ Quick = 1,
58
+ /**
59
+ * The device is silent or barely audible while in this mode.
60
+ *
61
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
62
+ */
63
+ Quiet = 2,
64
+ /**
65
+ * Either the mode is inherently low noise or the device optimizes for that.
66
+ *
67
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
68
+ */
69
+ LowNoise = 3,
70
+ /**
71
+ * The device is optimizing for lower energy usage in this mode. Sometimes called "Eco mode".
72
+ *
73
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
74
+ */
75
+ LowEnergy = 4,
76
+ /**
77
+ * A mode suitable for use during vacations or other extended absences.
78
+ *
79
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
80
+ */
81
+ Vacation = 5,
82
+ /**
83
+ * The mode uses the lowest available setting value.
84
+ *
85
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
86
+ */
87
+ Min = 6,
88
+ /**
89
+ * The mode uses the highest available setting value.
90
+ *
91
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
92
+ */
93
+ Max = 7,
94
+ /**
95
+ * The mode is recommended or suitable for use during night time.
96
+ *
97
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
98
+ */
99
+ Night = 8,
100
+ /**
101
+ * The mode is recommended or suitable for use during day time.
102
+ *
103
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
104
+ */
105
+ Day = 9
106
+ }
107
+ /**
108
+ * A Mode Tag is meant to be interpreted by the client for the purpose the cluster serves.
109
+ *
110
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1
111
+ */
112
+ const TlvModeTagStruct: import("../tlv/TlvObject.js").ObjectSchema<{
113
+ /**
114
+ * If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
115
+ * 1.10.8, “Mode Namespace”).
116
+ *
117
+ * This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
118
+ *
119
+ * The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
120
+ * and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
121
+ * whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
122
+ * salt.
123
+ *
124
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
125
+ */
126
+ mfgCode: import("../tlv/TlvObject.js").OptionalFieldType<import("../datatype/VendorId.js").VendorId>;
127
+ /**
128
+ * This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
129
+ * standard.
130
+ *
131
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
132
+ */
133
+ value: import("../tlv/TlvObject.js").FieldType<ModeTag>;
134
+ }>;
135
+ /**
136
+ * A Mode Tag is meant to be interpreted by the client for the purpose the cluster serves.
137
+ *
138
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1
139
+ */
140
+ interface ModeTagStruct extends TypeFromSchema<typeof TlvModeTagStruct> {
141
+ }
142
+ /**
143
+ * The table below lists the changes relative to the Mode Base cluster for the fields of the ModeOptionStruct type.
144
+ * A blank field indicates no change.
145
+ *
146
+ * At least one entry in the SupportedModes attribute shall include the Vacuum and/or the Mop mode tag in the
147
+ * ModeTags field list.
148
+ *
149
+ * @see {@link MatterSpecification.v13.Cluster} § 7.3.5.1
150
+ */
151
+ const TlvModeOption: import("../tlv/TlvObject.js").ObjectSchema<{
152
+ /**
153
+ * This field shall indicate readable text that describes the mode option, so that a client can provide it to
154
+ * the user to indicate what this option means. This field is meant to be readable and understandable by the
155
+ * user.
156
+ *
157
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.1
158
+ */
159
+ label: import("../tlv/TlvObject.js").FieldType<string>;
160
+ /**
161
+ * This field is used to identify the mode option.
162
+ *
163
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.2
164
+ */
165
+ mode: import("../tlv/TlvObject.js").FieldType<number>;
166
+ /**
167
+ * This field shall contain a list of tags that are associated with the mode option. This may be used by
168
+ * clients to determine the full or the partial semantics of a certain mode, depending on which tags they
169
+ * understand, using standard definitions and/or manufacturer specific namespace definitions.
170
+ *
171
+ * The standard mode tags are defined in this cluster specification. For the derived cluster instances, if the
172
+ * specification of the derived cluster defines a namespace, the set of standard mode tags also includes the
173
+ * mode tag values from that namespace.
174
+ *
175
+ * Mode tags can help clients look for options that meet certain criteria, render the user interface, use
176
+ *
177
+ * the mode in an automation, or to craft help text their voice-driven interfaces. A mode tag shall be either a
178
+ * standard tag or a manufacturer specific tag, as defined in each ModeTagStruct list entry.
179
+ *
180
+ * A mode option may have more than one mode tag. A mode option may be associated with a mixture of standard
181
+ * and manufacturer specific mode tags. A mode option shall be associated with at least one standard mode tag.
182
+ *
183
+ * A few examples are provided below.
184
+ *
185
+ * • A mode named "100%" can have both the High (manufacturer specific) and Max (standard) mode tag. Clients
186
+ * seeking the mode for either High or Max will find the same mode in this case.
187
+ *
188
+ * • A mode that includes a LowEnergy tag can be displayed by the client using a widget icon that shows a
189
+ * green leaf.
190
+ *
191
+ * • A mode that includes a LowNoise tag may be used by the client when the user wishes for a lower level of
192
+ * audible sound, less likely to disturb the household’s activities.
193
+ *
194
+ * • A mode that includes a LowEnergy tag (standard, defined in this cluster specification) and also a
195
+ * Delicate tag (standard, defined in the namespace of a Laundry Mode derived cluster).
196
+ *
197
+ * • A mode that includes both a generic Quick tag (defined here), and Vacuum and Mop tags, (defined in the
198
+ * RVC Clean cluster that is a derivation of this cluster).
199
+ *
200
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.3
201
+ */
202
+ modeTags: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
203
+ /**
204
+ * If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
205
+ * 1.10.8, “Mode Namespace”).
206
+ *
207
+ * This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
208
+ *
209
+ * The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
210
+ * and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
211
+ * whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
212
+ * salt.
213
+ *
214
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
215
+ */
216
+ mfgCode: import("../tlv/TlvObject.js").OptionalFieldType<import("../datatype/VendorId.js").VendorId>;
217
+ /**
218
+ * This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
219
+ * standard.
220
+ *
221
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
222
+ */
223
+ value: import("../tlv/TlvObject.js").FieldType<ModeTag>;
224
+ }>[]>;
225
+ }>;
226
+ /**
227
+ * The table below lists the changes relative to the Mode Base cluster for the fields of the ModeOptionStruct type.
228
+ * A blank field indicates no change.
229
+ *
230
+ * At least one entry in the SupportedModes attribute shall include the Vacuum and/or the Mop mode tag in the
231
+ * ModeTags field list.
232
+ *
233
+ * @see {@link MatterSpecification.v13.Cluster} § 7.3.5.1
234
+ */
235
+ interface ModeOption extends TypeFromSchema<typeof TlvModeOption> {
236
+ }
237
+ enum ModeChangeStatus {
238
+ /**
239
+ * @see {@link MatterSpecification.v13.Cluster} § 7.3.7.1
240
+ */
241
+ CleaningInProgress = 64,
242
+ /**
243
+ * Switching to the mode indicated by the NewMode field is allowed and possible. The CurrentMode attribute is
244
+ * set to the value of the NewMode field.
245
+ *
246
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.2.1.2
247
+ */
248
+ Success = 0,
249
+ /**
250
+ * The value of the NewMode field doesn’t match any entries in the SupportedMode attribute.
251
+ *
252
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.2.1.2
253
+ */
254
+ UnsupportedMode = 1,
255
+ /**
256
+ * Generic failure code, indicating that switching to the mode indicated by the NewMode field is not allowed or
257
+ * not possible.
258
+ *
259
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.2.1.2
260
+ */
261
+ GenericFailure = 2,
262
+ /**
263
+ * The received request cannot be handled due to the current mode of the device
264
+ *
265
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.2.1.2
266
+ */
267
+ InvalidInMode = 3
51
268
  }
52
269
  /**
53
270
  * These elements and properties are present in all RvcCleanMode clusters.
@@ -71,12 +288,79 @@ export declare namespace RvcCleanMode {
71
288
  /**
72
289
  * @see {@link MatterSpecification.v13.Cluster} § 7.3.6
73
290
  */
74
- readonly supportedModes: FixedAttribute<import("../index.js").TypeFromFields<{
75
- label: import("../index.js").FieldType<string>;
76
- mode: import("../index.js").FieldType<number>;
77
- modeTags: import("../index.js").FieldType<import("../index.js").TypeFromFields<{
78
- mfgCode: import("../index.js").OptionalFieldType<import("../index.js").VendorId>;
79
- value: import("../index.js").FieldType<number>;
291
+ readonly supportedModes: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
292
+ /**
293
+ * This field shall indicate readable text that describes the mode option, so that a client can provide it to
294
+ * the user to indicate what this option means. This field is meant to be readable and understandable by the
295
+ * user.
296
+ *
297
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.1
298
+ */
299
+ label: import("../tlv/TlvObject.js").FieldType<string>;
300
+ /**
301
+ * This field is used to identify the mode option.
302
+ *
303
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.2
304
+ */
305
+ mode: import("../tlv/TlvObject.js").FieldType<number>;
306
+ /**
307
+ * This field shall contain a list of tags that are associated with the mode option. This may be used by
308
+ * clients to determine the full or the partial semantics of a certain mode, depending on which tags they
309
+ * understand, using standard definitions and/or manufacturer specific namespace definitions.
310
+ *
311
+ * The standard mode tags are defined in this cluster specification. For the derived cluster instances, if the
312
+ * specification of the derived cluster defines a namespace, the set of standard mode tags also includes the
313
+ * mode tag values from that namespace.
314
+ *
315
+ * Mode tags can help clients look for options that meet certain criteria, render the user interface, use
316
+ *
317
+ * the mode in an automation, or to craft help text their voice-driven interfaces. A mode tag shall be either a
318
+ * standard tag or a manufacturer specific tag, as defined in each ModeTagStruct list entry.
319
+ *
320
+ * A mode option may have more than one mode tag. A mode option may be associated with a mixture of standard
321
+ * and manufacturer specific mode tags. A mode option shall be associated with at least one standard mode tag.
322
+ *
323
+ * A few examples are provided below.
324
+ *
325
+ * • A mode named "100%" can have both the High (manufacturer specific) and Max (standard) mode tag. Clients
326
+ * seeking the mode for either High or Max will find the same mode in this case.
327
+ *
328
+ * • A mode that includes a LowEnergy tag can be displayed by the client using a widget icon that shows a
329
+ * green leaf.
330
+ *
331
+ * • A mode that includes a LowNoise tag may be used by the client when the user wishes for a lower level of
332
+ * audible sound, less likely to disturb the household’s activities.
333
+ *
334
+ * • A mode that includes a LowEnergy tag (standard, defined in this cluster specification) and also a
335
+ * Delicate tag (standard, defined in the namespace of a Laundry Mode derived cluster).
336
+ *
337
+ * • A mode that includes both a generic Quick tag (defined here), and Vacuum and Mop tags, (defined in the
338
+ * RVC Clean cluster that is a derivation of this cluster).
339
+ *
340
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.3
341
+ */
342
+ modeTags: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
343
+ /**
344
+ * If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
345
+ * 1.10.8, “Mode Namespace”).
346
+ *
347
+ * This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
348
+ *
349
+ * The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
350
+ * and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
351
+ * whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
352
+ * salt.
353
+ *
354
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
355
+ */
356
+ mfgCode: import("../tlv/TlvObject.js").OptionalFieldType<import("../datatype/VendorId.js").VendorId>;
357
+ /**
358
+ * This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
359
+ * standard.
360
+ *
361
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
362
+ */
363
+ value: import("../tlv/TlvObject.js").FieldType<ModeTag>;
80
364
  }>[]>;
81
365
  }>[], any>;
82
366
  /**
@@ -92,8 +376,8 @@ export declare namespace RvcCleanMode {
92
376
  *
93
377
  * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.1
94
378
  */
95
- readonly changeToMode: Command<import("../index.js").TypeFromFields<{
96
- newMode: import("../index.js").FieldType<number>;
379
+ readonly changeToMode: Command<import("../tlv/TlvObject.js").TypeFromFields<{
380
+ newMode: import("../tlv/TlvObject.js").FieldType<number>;
97
381
  }>, void, any>;
98
382
  };
99
383
  /**
@@ -124,12 +408,79 @@ export declare namespace RvcCleanMode {
124
408
  /**
125
409
  * @see {@link MatterSpecification.v13.Cluster} § 7.3.6
126
410
  */
127
- readonly supportedModes: FixedAttribute<import("../index.js").TypeFromFields<{
128
- label: import("../index.js").FieldType<string>;
129
- mode: import("../index.js").FieldType<number>;
130
- modeTags: import("../index.js").FieldType<import("../index.js").TypeFromFields<{
131
- mfgCode: import("../index.js").OptionalFieldType<import("../index.js").VendorId>;
132
- value: import("../index.js").FieldType<number>;
411
+ readonly supportedModes: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
412
+ /**
413
+ * This field shall indicate readable text that describes the mode option, so that a client can provide it to
414
+ * the user to indicate what this option means. This field is meant to be readable and understandable by the
415
+ * user.
416
+ *
417
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.1
418
+ */
419
+ label: import("../tlv/TlvObject.js").FieldType<string>;
420
+ /**
421
+ * This field is used to identify the mode option.
422
+ *
423
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.2
424
+ */
425
+ mode: import("../tlv/TlvObject.js").FieldType<number>;
426
+ /**
427
+ * This field shall contain a list of tags that are associated with the mode option. This may be used by
428
+ * clients to determine the full or the partial semantics of a certain mode, depending on which tags they
429
+ * understand, using standard definitions and/or manufacturer specific namespace definitions.
430
+ *
431
+ * The standard mode tags are defined in this cluster specification. For the derived cluster instances, if the
432
+ * specification of the derived cluster defines a namespace, the set of standard mode tags also includes the
433
+ * mode tag values from that namespace.
434
+ *
435
+ * Mode tags can help clients look for options that meet certain criteria, render the user interface, use
436
+ *
437
+ * the mode in an automation, or to craft help text their voice-driven interfaces. A mode tag shall be either a
438
+ * standard tag or a manufacturer specific tag, as defined in each ModeTagStruct list entry.
439
+ *
440
+ * A mode option may have more than one mode tag. A mode option may be associated with a mixture of standard
441
+ * and manufacturer specific mode tags. A mode option shall be associated with at least one standard mode tag.
442
+ *
443
+ * A few examples are provided below.
444
+ *
445
+ * • A mode named "100%" can have both the High (manufacturer specific) and Max (standard) mode tag. Clients
446
+ * seeking the mode for either High or Max will find the same mode in this case.
447
+ *
448
+ * • A mode that includes a LowEnergy tag can be displayed by the client using a widget icon that shows a
449
+ * green leaf.
450
+ *
451
+ * • A mode that includes a LowNoise tag may be used by the client when the user wishes for a lower level of
452
+ * audible sound, less likely to disturb the household’s activities.
453
+ *
454
+ * • A mode that includes a LowEnergy tag (standard, defined in this cluster specification) and also a
455
+ * Delicate tag (standard, defined in the namespace of a Laundry Mode derived cluster).
456
+ *
457
+ * • A mode that includes both a generic Quick tag (defined here), and Vacuum and Mop tags, (defined in the
458
+ * RVC Clean cluster that is a derivation of this cluster).
459
+ *
460
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.3
461
+ */
462
+ modeTags: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
463
+ /**
464
+ * If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
465
+ * 1.10.8, “Mode Namespace”).
466
+ *
467
+ * This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
468
+ *
469
+ * The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
470
+ * and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
471
+ * whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
472
+ * salt.
473
+ *
474
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
475
+ */
476
+ mfgCode: import("../tlv/TlvObject.js").OptionalFieldType<import("../datatype/VendorId.js").VendorId>;
477
+ /**
478
+ * This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
479
+ * standard.
480
+ *
481
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
482
+ */
483
+ value: import("../tlv/TlvObject.js").FieldType<ModeTag>;
133
484
  }>[]>;
134
485
  }>[], any>;
135
486
  /**
@@ -145,8 +496,8 @@ export declare namespace RvcCleanMode {
145
496
  *
146
497
  * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.1
147
498
  */
148
- readonly changeToMode: Command<import("../index.js").TypeFromFields<{
149
- newMode: import("../index.js").FieldType<number>;
499
+ readonly changeToMode: Command<import("../tlv/TlvObject.js").TypeFromFields<{
500
+ newMode: import("../tlv/TlvObject.js").FieldType<number>;
150
501
  }>, void, any>;
151
502
  };
152
503
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"rvc-clean-mode.d.ts","sourceRoot":"","sources":["../../../src/clusters/rvc-clean-mode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAiB,MAAM,uBAAuB,CAAC;AAI1F,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,yBAAiB,YAAY,CAAC;IAC1B;;;;OAIG;IACH,KAAY,OAAO;QACf;;;;;;;WAOG;QACH,KAAK,UAAU;KAClB;IAED,KAAY,gBAAgB;QACxB;;WAEG;QACH,kBAAkB,KAAK;KAC1B;IAED,KAAY,OAAO;QACf;;WAEG;QACH,SAAS,QAAQ;QAEjB;;;;WAIG;QACH,MAAM,QAAQ;QAEd;;;;WAIG;QACH,GAAG,QAAQ;KACd;IAED;;OAEG;IACI,MAAM,IAAI;;;;;YAMT;;;;;;;eAOG;;;;YAKH;;eAEG;;;;;;;;;YAOH;;eAEG;;;;YAKH;;;;;;eAMG;;;;;QAIP;;;WAGG;;KAEL,CAAC;IAEH;;OAEG;IACI,MAAM,eAAe;;;;;YAhDpB;;;;;;;eAOG;;;;YAKH;;eAEG;;;;;;;;;YAOH;;eAEG;;;;YAKH;;;;;;eAMG;;;;;QAIP;;;WAGG;;UAO4C,CAAC;IAEpD;;;;;;;;OAQG;IACH,UAAiB,OAAQ,SAAQ,QAAQ,CAAC,OAAO,eAAe,CAAC;KAAG;IAE7D,MAAM,OAAO,EAAE,OAAyB,CAAC;IACzC,MAAM,QAAQ,SAAU,CAAC;CACnC;AAED,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,CAAC;AACvD,eAAO,MAAM,mBAAmB,sBAAuB,CAAC"}
1
+ {"version":3,"file":"rvc-clean-mode.d.ts","sourceRoot":"","sources":["../../../src/clusters/rvc-clean-mode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAiB,MAAM,uBAAuB,CAAC;AAM1F,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,yBAAiB,YAAY,CAAC;IAC1B;;;;OAIG;IACH,KAAY,OAAO;QACf;;;;;;;WAOG;QACH,KAAK,UAAU;KAClB;IAED,KAAY,OAAO;QACf;;WAEG;QACH,SAAS,QAAQ;QAEjB;;;;WAIG;QACH,MAAM,QAAQ;QAEd;;;;WAIG;QACH,GAAG,QAAQ;QAEX;;;;WAIG;QACH,IAAI,IAAI;QAER;;;;WAIG;QACH,KAAK,IAAI;QAET;;;;WAIG;QACH,KAAK,IAAI;QAET;;;;WAIG;QACH,QAAQ,IAAI;QAEZ;;;;WAIG;QACH,SAAS,IAAI;QAEb;;;;WAIG;QACH,QAAQ,IAAI;QAEZ;;;;WAIG;QACH,GAAG,IAAI;QAEP;;;;WAIG;QACH,GAAG,IAAI;QAEP;;;;WAIG;QACH,KAAK,IAAI;QAET;;;;WAIG;QACH,GAAG,IAAI;KACV;IAED;;;;OAIG;IACI,MAAM,gBAAgB;QACzB;;;;;;;;;;;;WAYG;;QAGH;;;;;WAKG;;MAEL,CAAC;IAEH;;;;OAIG;IACH,UAAiB,aAAc,SAAQ,cAAc,CAAC,OAAO,gBAAgB,CAAC;KAAG;IAEjF;;;;;;;;OAQG;IACI,MAAM,aAAa;QACtB;;;;;;WAMG;;QAGH;;;;WAIG;;QAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAmCG;;YA5FH;;;;;;;;;;;;eAYG;;YAGH;;;;;eAKG;;;MA0EL,CAAC;IAEH;;;;;;;;OAQG;IACH,UAAiB,UAAW,SAAQ,cAAc,CAAC,OAAO,aAAa,CAAC;KAAG;IAE3E,KAAY,gBAAgB;QACxB;;WAEG;QACH,kBAAkB,KAAK;QAEvB;;;;;WAKG;QACH,OAAO,IAAI;QAEX;;;;WAIG;QACH,eAAe,IAAI;QAEnB;;;;;WAKG;QACH,cAAc,IAAI;QAElB;;;;WAIG;QACH,aAAa,IAAI;KACpB;IAED;;OAEG;IACI,MAAM,IAAI;;;;;YAMT;;;;;;;eAOG;;;;YAKH;;eAEG;;gBA9HP;;;;;;mBAMG;;gBAGH;;;;mBAIG;;gBAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAmCG;;oBA5FH;;;;;;;;;;;;uBAYG;;oBAGH;;;;;uBAKG;;;;YA0JC;;eAEG;;;;YAKH;;;;;;eAMG;;;;;QAIP;;;WAGG;;KAEL,CAAC;IAEH;;OAEG;IACI,MAAM,eAAe;;;;;YAhDpB;;;;;;;eAOG;;;;YAKH;;eAEG;;gBA9HP;;;;;;mBAMG;;gBAGH;;;;mBAIG;;gBAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAmCG;;oBA5FH;;;;;;;;;;;;uBAYG;;oBAGH;;;;;uBAKG;;;;YA0JC;;eAEG;;;;YAKH;;;;;;eAMG;;;;;QAIP;;;WAGG;;UAO4C,CAAC;IAEpD;;;;;;;;OAQG;IACH,UAAiB,OAAQ,SAAQ,QAAQ,CAAC,OAAO,eAAe,CAAC;KAAG;IAE7D,MAAM,OAAO,EAAE,OAAyB,CAAC;IACzC,MAAM,QAAQ,SAAU,CAAC;CACnC;AAED,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,CAAC;AACvD,eAAO,MAAM,mBAAmB,sBAAuB,CAAC"}
@@ -7,8 +7,11 @@ import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
7
7
  import { BitFlag } from "../schema/BitmapSchema.js";
8
8
  import { FixedAttribute, Attribute, Command, TlvNoResponse } from "../cluster/Cluster.js";
9
9
  import { TlvArray } from "../tlv/TlvArray.js";
10
+ import { TlvField, TlvOptionalField, TlvObject } from "../tlv/TlvObject.js";
11
+ import { TlvString } from "../tlv/TlvString.js";
12
+ import { TlvUInt8, TlvEnum } from "../tlv/TlvNumber.js";
13
+ import { TlvVendorId } from "../datatype/VendorId.js";
10
14
  import { ModeBase } from "./mode-base.js";
11
- import { TlvUInt8 } from "../tlv/TlvNumber.js";
12
15
  import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
13
16
  var RvcCleanMode;
14
17
  ((RvcCleanMode2) => {
@@ -16,16 +19,106 @@ var RvcCleanMode;
16
19
  ((Feature2) => {
17
20
  Feature2["OnOff"] = "OnOff";
18
21
  })(Feature = RvcCleanMode2.Feature || (RvcCleanMode2.Feature = {}));
19
- let ModeChangeStatus;
20
- ((ModeChangeStatus2) => {
21
- ModeChangeStatus2[ModeChangeStatus2["CleaningInProgress"] = 64] = "CleaningInProgress";
22
- })(ModeChangeStatus = RvcCleanMode2.ModeChangeStatus || (RvcCleanMode2.ModeChangeStatus = {}));
23
22
  let ModeTag;
24
23
  ((ModeTag2) => {
25
24
  ModeTag2[ModeTag2["DeepClean"] = 16384] = "DeepClean";
26
25
  ModeTag2[ModeTag2["Vacuum"] = 16385] = "Vacuum";
27
26
  ModeTag2[ModeTag2["Mop"] = 16386] = "Mop";
27
+ ModeTag2[ModeTag2["Auto"] = 0] = "Auto";
28
+ ModeTag2[ModeTag2["Quick"] = 1] = "Quick";
29
+ ModeTag2[ModeTag2["Quiet"] = 2] = "Quiet";
30
+ ModeTag2[ModeTag2["LowNoise"] = 3] = "LowNoise";
31
+ ModeTag2[ModeTag2["LowEnergy"] = 4] = "LowEnergy";
32
+ ModeTag2[ModeTag2["Vacation"] = 5] = "Vacation";
33
+ ModeTag2[ModeTag2["Min"] = 6] = "Min";
34
+ ModeTag2[ModeTag2["Max"] = 7] = "Max";
35
+ ModeTag2[ModeTag2["Night"] = 8] = "Night";
36
+ ModeTag2[ModeTag2["Day"] = 9] = "Day";
28
37
  })(ModeTag = RvcCleanMode2.ModeTag || (RvcCleanMode2.ModeTag = {}));
38
+ RvcCleanMode2.TlvModeTagStruct = TlvObject({
39
+ /**
40
+ * If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
41
+ * 1.10.8, “Mode Namespace”).
42
+ *
43
+ * This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
44
+ *
45
+ * The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
46
+ * and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
47
+ * whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
48
+ * salt.
49
+ *
50
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
51
+ */
52
+ mfgCode: TlvOptionalField(0, TlvVendorId),
53
+ /**
54
+ * This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
55
+ * standard.
56
+ *
57
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
58
+ */
59
+ value: TlvField(1, TlvEnum())
60
+ });
61
+ RvcCleanMode2.TlvModeOption = TlvObject({
62
+ /**
63
+ * This field shall indicate readable text that describes the mode option, so that a client can provide it to
64
+ * the user to indicate what this option means. This field is meant to be readable and understandable by the
65
+ * user.
66
+ *
67
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.1
68
+ */
69
+ label: TlvField(0, TlvString.bound({ maxLength: 64 })),
70
+ /**
71
+ * This field is used to identify the mode option.
72
+ *
73
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.2
74
+ */
75
+ mode: TlvField(1, TlvUInt8),
76
+ /**
77
+ * This field shall contain a list of tags that are associated with the mode option. This may be used by
78
+ * clients to determine the full or the partial semantics of a certain mode, depending on which tags they
79
+ * understand, using standard definitions and/or manufacturer specific namespace definitions.
80
+ *
81
+ * The standard mode tags are defined in this cluster specification. For the derived cluster instances, if the
82
+ * specification of the derived cluster defines a namespace, the set of standard mode tags also includes the
83
+ * mode tag values from that namespace.
84
+ *
85
+ * Mode tags can help clients look for options that meet certain criteria, render the user interface, use
86
+ *
87
+ * the mode in an automation, or to craft help text their voice-driven interfaces. A mode tag shall be either a
88
+ * standard tag or a manufacturer specific tag, as defined in each ModeTagStruct list entry.
89
+ *
90
+ * A mode option may have more than one mode tag. A mode option may be associated with a mixture of standard
91
+ * and manufacturer specific mode tags. A mode option shall be associated with at least one standard mode tag.
92
+ *
93
+ * A few examples are provided below.
94
+ *
95
+ * • A mode named "100%" can have both the High (manufacturer specific) and Max (standard) mode tag. Clients
96
+ * seeking the mode for either High or Max will find the same mode in this case.
97
+ *
98
+ * • A mode that includes a LowEnergy tag can be displayed by the client using a widget icon that shows a
99
+ * green leaf.
100
+ *
101
+ * • A mode that includes a LowNoise tag may be used by the client when the user wishes for a lower level of
102
+ * audible sound, less likely to disturb the household’s activities.
103
+ *
104
+ * • A mode that includes a LowEnergy tag (standard, defined in this cluster specification) and also a
105
+ * Delicate tag (standard, defined in the namespace of a Laundry Mode derived cluster).
106
+ *
107
+ * • A mode that includes both a generic Quick tag (defined here), and Vacuum and Mop tags, (defined in the
108
+ * RVC Clean cluster that is a derivation of this cluster).
109
+ *
110
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.3
111
+ */
112
+ modeTags: TlvField(2, TlvArray(RvcCleanMode2.TlvModeTagStruct, { maxLength: 8 }))
113
+ });
114
+ let ModeChangeStatus;
115
+ ((ModeChangeStatus2) => {
116
+ ModeChangeStatus2[ModeChangeStatus2["CleaningInProgress"] = 64] = "CleaningInProgress";
117
+ ModeChangeStatus2[ModeChangeStatus2["Success"] = 0] = "Success";
118
+ ModeChangeStatus2[ModeChangeStatus2["UnsupportedMode"] = 1] = "UnsupportedMode";
119
+ ModeChangeStatus2[ModeChangeStatus2["GenericFailure"] = 2] = "GenericFailure";
120
+ ModeChangeStatus2[ModeChangeStatus2["InvalidInMode"] = 3] = "InvalidInMode";
121
+ })(ModeChangeStatus = RvcCleanMode2.ModeChangeStatus || (RvcCleanMode2.ModeChangeStatus = {}));
29
122
  RvcCleanMode2.Base = MutableCluster.Component({
30
123
  id: 85,
31
124
  name: "RvcCleanMode",
@@ -47,7 +140,7 @@ var RvcCleanMode;
47
140
  */
48
141
  supportedModes: FixedAttribute(
49
142
  0,
50
- TlvArray(ModeBase.TlvModeOption, { minLength: 2, maxLength: 255 }),
143
+ TlvArray(RvcCleanMode2.TlvModeOption, { minLength: 2, maxLength: 255 }),
51
144
  { default: [] }
52
145
  ),
53
146
  /**
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/clusters/rvc-clean-mode.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,sBAAsB;AAC/B,SAAS,eAAe;AACxB,SAAS,gBAAgB,WAAW,SAAS,qBAAqB;AAClE,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAEzB,SAAS,uBAAuB;AAEzB,IAAU;AAAA,CAAV,CAAUA,kBAAV;AAMI,MAAK;AAAL,IAAKC,aAAL;AASH,IAAAA,SAAA,WAAQ;AAAA,KATA,UAAAD,cAAA,YAAAA,cAAA;AAYL,MAAK;AAAL,IAAKE,sBAAL;AAIH,IAAAA,oCAAA,wBAAqB,MAArB;AAAA,KAJQ,mBAAAF,cAAA,qBAAAA,cAAA;AAOL,MAAK;AAAL,IAAKG,aAAL;AAIH,IAAAA,kBAAA,eAAY,SAAZ;AAOA,IAAAA,kBAAA,YAAS,SAAT;AAOA,IAAAA,kBAAA,SAAM,SAAN;AAAA,KAlBQ,UAAAH,cAAA,YAAAA,cAAA;AAwBL,EAAMA,cAAA,OAAO,eAAe,UAAU;AAAA,IACzC,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IAEV,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASN,OAAO,QAAQ,CAAC;AAAA,IACpB;AAAA,IAEA,YAAY;AAAA;AAAA;AAAA;AAAA,MAIR,gBAAgB;AAAA,QACZ;AAAA,QACA,SAAS,SAAS,eAAe,EAAE,WAAW,GAAG,WAAW,IAAI,CAAC;AAAA,QACjE,EAAE,SAAS,CAAC,EAAE;AAAA,MAClB;AAAA;AAAA;AAAA;AAAA,MAKA,aAAa,UAAU,GAAK,UAAU,EAAE,OAAO,MAAM,YAAY,KAAK,CAAC;AAAA,IAC3E;AAAA,IAEA,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQN,cAAc,QAAQ,GAAK,SAAS,wBAAwB,GAAK,aAAa;AAAA,IAClF;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,YAAY,eAAe,WAAW;AAAA,EAC1C,CAAC;AAKM,EAAMA,cAAA,kBAAkB,eAAeA,cAAA,IAAI;AAa3C,EAAMA,cAAA,UAAmBA,cAAA;AACzB,EAAMA,cAAA,WAAWA,cAAA;AAAA,GArHX;AAyHV,MAAM,sBAAsB,aAAa;AAChD,gBAAgB,SAAS,aAAa,QAAQ;",
5
- "names": ["RvcCleanMode", "Feature", "ModeChangeStatus", "ModeTag"]
4
+ "mappings": "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",
5
+ "names": ["RvcCleanMode", "Feature", "ModeTag", "ModeChangeStatus"]
6
6
  }