@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.
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 RvcRunMode {
12
13
  /**
@@ -25,6 +26,239 @@ export declare namespace RvcRunMode {
25
26
  */
26
27
  OnOff = "OnOff"
27
28
  }
29
+ enum ModeTag {
30
+ /**
31
+ * The device is not performing any of the main operations of the other modes. However, auxiliary actions, such
32
+ * as seeking the charger or charging, may occur.
33
+ *
34
+ * For example, the device has completed cleaning, successfully or not, on its own or due to a command, or has
35
+ * not been asked to clean after a restart.
36
+ *
37
+ * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.2.1
38
+ */
39
+ Idle = 16384,
40
+ /**
41
+ * The device was asked to clean so it may be actively running, or paused due to an error, due to a pause
42
+ * command, or for recharging etc. If currently paused and the device can resume it will continue to clean.
43
+ *
44
+ * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.2.2
45
+ */
46
+ Cleaning = 16385,
47
+ /**
48
+ * The device was asked to create a map of the space it is located in, so it may be actively running, or paused
49
+ * due to an error, due to a pause command, or for recharging etc. If currently paused and the device can
50
+ * resume, it will continue to map.
51
+ *
52
+ * NOTE
53
+ *
54
+ * this mode is intended to be used so the current space can be mapped by the device if the robot has not
55
+ * previously done that, or if the layout has substantially changed, for an optimal subsequent cleaning
56
+ * experience.
57
+ *
58
+ * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.2.3
59
+ */
60
+ Mapping = 16386,
61
+ /**
62
+ * The device decides which options, features and setting values to use.
63
+ *
64
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
65
+ */
66
+ Auto = 0,
67
+ /**
68
+ * The mode of the device is optimizing for faster completion.
69
+ *
70
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
71
+ */
72
+ Quick = 1,
73
+ /**
74
+ * The device is silent or barely audible while in this mode.
75
+ *
76
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
77
+ */
78
+ Quiet = 2,
79
+ /**
80
+ * Either the mode is inherently low noise or the device optimizes for that.
81
+ *
82
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
83
+ */
84
+ LowNoise = 3,
85
+ /**
86
+ * The device is optimizing for lower energy usage in this mode. Sometimes called "Eco mode".
87
+ *
88
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
89
+ */
90
+ LowEnergy = 4,
91
+ /**
92
+ * A mode suitable for use during vacations or other extended absences.
93
+ *
94
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
95
+ */
96
+ Vacation = 5,
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
+ * The mode uses the highest available setting value.
105
+ *
106
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
107
+ */
108
+ Max = 7,
109
+ /**
110
+ * The mode is recommended or suitable for use during night time.
111
+ *
112
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
113
+ */
114
+ Night = 8,
115
+ /**
116
+ * The mode is recommended or suitable for use during day time.
117
+ *
118
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
119
+ */
120
+ Day = 9
121
+ }
122
+ /**
123
+ * A Mode Tag is meant to be interpreted by the client for the purpose the cluster serves.
124
+ *
125
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1
126
+ */
127
+ const TlvModeTagStruct: import("../tlv/TlvObject.js").ObjectSchema<{
128
+ /**
129
+ * If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
130
+ * 1.10.8, “Mode Namespace”).
131
+ *
132
+ * This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
133
+ *
134
+ * The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
135
+ * and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
136
+ * whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
137
+ * salt.
138
+ *
139
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
140
+ */
141
+ mfgCode: import("../tlv/TlvObject.js").OptionalFieldType<import("../datatype/VendorId.js").VendorId>;
142
+ /**
143
+ * This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
144
+ * standard.
145
+ *
146
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
147
+ */
148
+ value: import("../tlv/TlvObject.js").FieldType<ModeTag>;
149
+ }>;
150
+ /**
151
+ * A Mode Tag is meant to be interpreted by the client for the purpose the cluster serves.
152
+ *
153
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1
154
+ */
155
+ interface ModeTagStruct extends TypeFromSchema<typeof TlvModeTagStruct> {
156
+ }
157
+ /**
158
+ * The table below lists the changes relative to the Mode Base cluster for the fields of the ModeOptionStruct type.
159
+ * A blank field indicates no change.
160
+ *
161
+ * At least one entry in the SupportedModes attribute shall include the Idle mode tag in the ModeTags field.
162
+ *
163
+ * At least one entry in the SupportedModes attribute (different from the one above) shall include the Cleaning
164
+ * mode tag in the ModeTags field.
165
+ *
166
+ * The Mapping, Cleaning, and Idle mode tags are mutually exclusive and shall NOT be used together in a mode’s
167
+ * ModeTags.
168
+ *
169
+ * @see {@link MatterSpecification.v13.Cluster} § 7.2.5.1
170
+ */
171
+ const TlvModeOption: import("../tlv/TlvObject.js").ObjectSchema<{
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: import("../tlv/TlvObject.js").FieldType<string>;
180
+ /**
181
+ * This field is used to identify the mode option.
182
+ *
183
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.2
184
+ */
185
+ mode: import("../tlv/TlvObject.js").FieldType<number>;
186
+ /**
187
+ * This field shall contain a list of tags that are associated with the mode option. This may be used by
188
+ * clients to determine the full or the partial semantics of a certain mode, depending on which tags they
189
+ * understand, using standard definitions and/or manufacturer specific namespace definitions.
190
+ *
191
+ * The standard mode tags are defined in this cluster specification. For the derived cluster instances, if the
192
+ * specification of the derived cluster defines a namespace, the set of standard mode tags also includes the
193
+ * mode tag values from that namespace.
194
+ *
195
+ * Mode tags can help clients look for options that meet certain criteria, render the user interface, use
196
+ *
197
+ * the mode in an automation, or to craft help text their voice-driven interfaces. A mode tag shall be either a
198
+ * standard tag or a manufacturer specific tag, as defined in each ModeTagStruct list entry.
199
+ *
200
+ * A mode option may have more than one mode tag. A mode option may be associated with a mixture of standard
201
+ * and manufacturer specific mode tags. A mode option shall be associated with at least one standard mode tag.
202
+ *
203
+ * A few examples are provided below.
204
+ *
205
+ * • A mode named "100%" can have both the High (manufacturer specific) and Max (standard) mode tag. Clients
206
+ * seeking the mode for either High or Max will find the same mode in this case.
207
+ *
208
+ * • A mode that includes a LowEnergy tag can be displayed by the client using a widget icon that shows a
209
+ * green leaf.
210
+ *
211
+ * • A mode that includes a LowNoise tag may be used by the client when the user wishes for a lower level of
212
+ * audible sound, less likely to disturb the household’s activities.
213
+ *
214
+ * • A mode that includes a LowEnergy tag (standard, defined in this cluster specification) and also a
215
+ * Delicate tag (standard, defined in the namespace of a Laundry Mode derived cluster).
216
+ *
217
+ * • A mode that includes both a generic Quick tag (defined here), and Vacuum and Mop tags, (defined in the
218
+ * RVC Clean cluster that is a derivation of this cluster).
219
+ *
220
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.3
221
+ */
222
+ modeTags: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
223
+ /**
224
+ * If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
225
+ * 1.10.8, “Mode Namespace”).
226
+ *
227
+ * This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
228
+ *
229
+ * The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
230
+ * and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
231
+ * whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
232
+ * salt.
233
+ *
234
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
235
+ */
236
+ mfgCode: import("../tlv/TlvObject.js").OptionalFieldType<import("../datatype/VendorId.js").VendorId>;
237
+ /**
238
+ * This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
239
+ * standard.
240
+ *
241
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
242
+ */
243
+ value: import("../tlv/TlvObject.js").FieldType<ModeTag>;
244
+ }>[]>;
245
+ }>;
246
+ /**
247
+ * The table below lists the changes relative to the Mode Base cluster for the fields of the ModeOptionStruct type.
248
+ * A blank field indicates no change.
249
+ *
250
+ * At least one entry in the SupportedModes attribute shall include the Idle mode tag in the ModeTags field.
251
+ *
252
+ * At least one entry in the SupportedModes attribute (different from the one above) shall include the Cleaning
253
+ * mode tag in the ModeTags field.
254
+ *
255
+ * The Mapping, Cleaning, and Idle mode tags are mutually exclusive and shall NOT be used together in a mode’s
256
+ * ModeTags.
257
+ *
258
+ * @see {@link MatterSpecification.v13.Cluster} § 7.2.5.1
259
+ */
260
+ interface ModeOption extends TypeFromSchema<typeof TlvModeOption> {
261
+ }
28
262
  enum ModeChangeStatus {
29
263
  /**
30
264
  * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.1
@@ -57,40 +291,33 @@ export declare namespace RvcRunMode {
57
291
  /**
58
292
  * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.1
59
293
  */
60
- BatteryLow = 72
61
- }
62
- enum ModeTag {
294
+ BatteryLow = 72,
63
295
  /**
64
- * The device is not performing any of the main operations of the other modes. However, auxiliary actions, such
65
- * as seeking the charger or charging, may occur.
66
- *
67
- * For example, the device has completed cleaning, successfully or not, on its own or due to a command, or has
68
- * not been asked to clean after a restart.
296
+ * Switching to the mode indicated by the NewMode field is allowed and possible. The CurrentMode attribute is
297
+ * set to the value of the NewMode field.
69
298
  *
70
- * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.2.1
299
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.2.1.2
71
300
  */
72
- Idle = 16384,
301
+ Success = 0,
73
302
  /**
74
- * The device was asked to clean so it may be actively running, or paused due to an error, due to a pause
75
- * command, or for recharging etc. If currently paused and the device can resume it will continue to clean.
303
+ * The value of the NewMode field doesn’t match any entries in the SupportedMode attribute.
76
304
  *
77
- * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.2.2
305
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.2.1.2
78
306
  */
79
- Cleaning = 16385,
307
+ UnsupportedMode = 1,
80
308
  /**
81
- * The device was asked to create a map of the space it is located in, so it may be actively running, or paused
82
- * due to an error, due to a pause command, or for recharging etc. If currently paused and the device can
83
- * resume, it will continue to map.
309
+ * Generic failure code, indicating that switching to the mode indicated by the NewMode field is not allowed or
310
+ * not possible.
84
311
  *
85
- * NOTE
86
- *
87
- * this mode is intended to be used so the current space can be mapped by the device if the robot has not
88
- * previously done that, or if the layout has substantially changed, for an optimal subsequent cleaning
89
- * experience.
312
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.2.1.2
313
+ */
314
+ GenericFailure = 2,
315
+ /**
316
+ * The received request cannot be handled due to the current mode of the device
90
317
  *
91
- * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.2.3
318
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.2.1.2
92
319
  */
93
- Mapping = 16386
320
+ InvalidInMode = 3
94
321
  }
95
322
  /**
96
323
  * These elements and properties are present in all RvcRunMode clusters.
@@ -114,12 +341,79 @@ export declare namespace RvcRunMode {
114
341
  /**
115
342
  * @see {@link MatterSpecification.v13.Cluster} § 7.2.6
116
343
  */
117
- readonly supportedModes: FixedAttribute<import("../index.js").TypeFromFields<{
118
- label: import("../index.js").FieldType<string>;
119
- mode: import("../index.js").FieldType<number>;
120
- modeTags: import("../index.js").FieldType<import("../index.js").TypeFromFields<{
121
- mfgCode: import("../index.js").OptionalFieldType<import("../index.js").VendorId>;
122
- value: import("../index.js").FieldType<number>;
344
+ readonly supportedModes: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
345
+ /**
346
+ * This field shall indicate readable text that describes the mode option, so that a client can provide it to
347
+ * the user to indicate what this option means. This field is meant to be readable and understandable by the
348
+ * user.
349
+ *
350
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.1
351
+ */
352
+ label: import("../tlv/TlvObject.js").FieldType<string>;
353
+ /**
354
+ * This field is used to identify the mode option.
355
+ *
356
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.2
357
+ */
358
+ mode: import("../tlv/TlvObject.js").FieldType<number>;
359
+ /**
360
+ * This field shall contain a list of tags that are associated with the mode option. This may be used by
361
+ * clients to determine the full or the partial semantics of a certain mode, depending on which tags they
362
+ * understand, using standard definitions and/or manufacturer specific namespace definitions.
363
+ *
364
+ * The standard mode tags are defined in this cluster specification. For the derived cluster instances, if the
365
+ * specification of the derived cluster defines a namespace, the set of standard mode tags also includes the
366
+ * mode tag values from that namespace.
367
+ *
368
+ * Mode tags can help clients look for options that meet certain criteria, render the user interface, use
369
+ *
370
+ * the mode in an automation, or to craft help text their voice-driven interfaces. A mode tag shall be either a
371
+ * standard tag or a manufacturer specific tag, as defined in each ModeTagStruct list entry.
372
+ *
373
+ * A mode option may have more than one mode tag. A mode option may be associated with a mixture of standard
374
+ * and manufacturer specific mode tags. A mode option shall be associated with at least one standard mode tag.
375
+ *
376
+ * A few examples are provided below.
377
+ *
378
+ * • A mode named "100%" can have both the High (manufacturer specific) and Max (standard) mode tag. Clients
379
+ * seeking the mode for either High or Max will find the same mode in this case.
380
+ *
381
+ * • A mode that includes a LowEnergy tag can be displayed by the client using a widget icon that shows a
382
+ * green leaf.
383
+ *
384
+ * • A mode that includes a LowNoise tag may be used by the client when the user wishes for a lower level of
385
+ * audible sound, less likely to disturb the household’s activities.
386
+ *
387
+ * • A mode that includes a LowEnergy tag (standard, defined in this cluster specification) and also a
388
+ * Delicate tag (standard, defined in the namespace of a Laundry Mode derived cluster).
389
+ *
390
+ * • A mode that includes both a generic Quick tag (defined here), and Vacuum and Mop tags, (defined in the
391
+ * RVC Clean cluster that is a derivation of this cluster).
392
+ *
393
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.3
394
+ */
395
+ modeTags: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
396
+ /**
397
+ * If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
398
+ * 1.10.8, “Mode Namespace”).
399
+ *
400
+ * This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
401
+ *
402
+ * The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
403
+ * and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
404
+ * whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
405
+ * salt.
406
+ *
407
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
408
+ */
409
+ mfgCode: import("../tlv/TlvObject.js").OptionalFieldType<import("../datatype/VendorId.js").VendorId>;
410
+ /**
411
+ * This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
412
+ * standard.
413
+ *
414
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
415
+ */
416
+ value: import("../tlv/TlvObject.js").FieldType<ModeTag>;
123
417
  }>[]>;
124
418
  }>[], any>;
125
419
  /**
@@ -135,8 +429,8 @@ export declare namespace RvcRunMode {
135
429
  *
136
430
  * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.1
137
431
  */
138
- readonly changeToMode: Command<import("../index.js").TypeFromFields<{
139
- newMode: import("../index.js").FieldType<number>;
432
+ readonly changeToMode: Command<import("../tlv/TlvObject.js").TypeFromFields<{
433
+ newMode: import("../tlv/TlvObject.js").FieldType<number>;
140
434
  }>, void, any>;
141
435
  };
142
436
  /**
@@ -167,12 +461,79 @@ export declare namespace RvcRunMode {
167
461
  /**
168
462
  * @see {@link MatterSpecification.v13.Cluster} § 7.2.6
169
463
  */
170
- readonly supportedModes: FixedAttribute<import("../index.js").TypeFromFields<{
171
- label: import("../index.js").FieldType<string>;
172
- mode: import("../index.js").FieldType<number>;
173
- modeTags: import("../index.js").FieldType<import("../index.js").TypeFromFields<{
174
- mfgCode: import("../index.js").OptionalFieldType<import("../index.js").VendorId>;
175
- value: import("../index.js").FieldType<number>;
464
+ readonly supportedModes: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
465
+ /**
466
+ * This field shall indicate readable text that describes the mode option, so that a client can provide it to
467
+ * the user to indicate what this option means. This field is meant to be readable and understandable by the
468
+ * user.
469
+ *
470
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.1
471
+ */
472
+ label: import("../tlv/TlvObject.js").FieldType<string>;
473
+ /**
474
+ * This field is used to identify the mode option.
475
+ *
476
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.2
477
+ */
478
+ mode: import("../tlv/TlvObject.js").FieldType<number>;
479
+ /**
480
+ * This field shall contain a list of tags that are associated with the mode option. This may be used by
481
+ * clients to determine the full or the partial semantics of a certain mode, depending on which tags they
482
+ * understand, using standard definitions and/or manufacturer specific namespace definitions.
483
+ *
484
+ * The standard mode tags are defined in this cluster specification. For the derived cluster instances, if the
485
+ * specification of the derived cluster defines a namespace, the set of standard mode tags also includes the
486
+ * mode tag values from that namespace.
487
+ *
488
+ * Mode tags can help clients look for options that meet certain criteria, render the user interface, use
489
+ *
490
+ * the mode in an automation, or to craft help text their voice-driven interfaces. A mode tag shall be either a
491
+ * standard tag or a manufacturer specific tag, as defined in each ModeTagStruct list entry.
492
+ *
493
+ * A mode option may have more than one mode tag. A mode option may be associated with a mixture of standard
494
+ * and manufacturer specific mode tags. A mode option shall be associated with at least one standard mode tag.
495
+ *
496
+ * A few examples are provided below.
497
+ *
498
+ * • A mode named "100%" can have both the High (manufacturer specific) and Max (standard) mode tag. Clients
499
+ * seeking the mode for either High or Max will find the same mode in this case.
500
+ *
501
+ * • A mode that includes a LowEnergy tag can be displayed by the client using a widget icon that shows a
502
+ * green leaf.
503
+ *
504
+ * • A mode that includes a LowNoise tag may be used by the client when the user wishes for a lower level of
505
+ * audible sound, less likely to disturb the household’s activities.
506
+ *
507
+ * • A mode that includes a LowEnergy tag (standard, defined in this cluster specification) and also a
508
+ * Delicate tag (standard, defined in the namespace of a Laundry Mode derived cluster).
509
+ *
510
+ * • A mode that includes both a generic Quick tag (defined here), and Vacuum and Mop tags, (defined in the
511
+ * RVC Clean cluster that is a derivation of this cluster).
512
+ *
513
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.3
514
+ */
515
+ modeTags: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
516
+ /**
517
+ * If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
518
+ * 1.10.8, “Mode Namespace”).
519
+ *
520
+ * This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
521
+ *
522
+ * The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
523
+ * and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
524
+ * whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
525
+ * salt.
526
+ *
527
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
528
+ */
529
+ mfgCode: import("../tlv/TlvObject.js").OptionalFieldType<import("../datatype/VendorId.js").VendorId>;
530
+ /**
531
+ * This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
532
+ * standard.
533
+ *
534
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
535
+ */
536
+ value: import("../tlv/TlvObject.js").FieldType<ModeTag>;
176
537
  }>[]>;
177
538
  }>[], any>;
178
539
  /**
@@ -188,8 +549,8 @@ export declare namespace RvcRunMode {
188
549
  *
189
550
  * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.1
190
551
  */
191
- readonly changeToMode: Command<import("../index.js").TypeFromFields<{
192
- newMode: import("../index.js").FieldType<number>;
552
+ readonly changeToMode: Command<import("../tlv/TlvObject.js").TypeFromFields<{
553
+ newMode: import("../tlv/TlvObject.js").FieldType<number>;
193
554
  }>, void, any>;
194
555
  };
195
556
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"rvc-run-mode.d.ts","sourceRoot":"","sources":["../../../src/clusters/rvc-run-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,UAAU,CAAC;IACxB;;;;OAIG;IACH,KAAY,OAAO;QACf;;;;;;;WAOG;QACH,KAAK,UAAU;KAClB;IAED,KAAY,gBAAgB;QACxB;;WAEG;QACH,KAAK,KAAK;QAEV;;WAEG;QACH,cAAc,KAAK;QAEnB;;WAEG;QACH,WAAW,KAAK;QAEhB;;WAEG;QACH,cAAc,KAAK;QAEnB;;WAEG;QACH,gBAAgB,KAAK;QAErB;;WAEG;QACH,gBAAgB,KAAK;QAErB;;WAEG;QACH,qBAAqB,KAAK;QAE1B;;WAEG;QACH,UAAU,KAAK;KAClB;IAED,KAAY,OAAO;QACf;;;;;;;;WAQG;QACH,IAAI,QAAQ;QAEZ;;;;;WAKG;QACH,QAAQ,QAAQ;QAEhB;;;;;;;;;;;;WAYG;QACH,OAAO,QAAQ;KAClB;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,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC;AACnD,eAAO,MAAM,iBAAiB,oBAAqB,CAAC"}
1
+ {"version":3,"file":"rvc-run-mode.d.ts","sourceRoot":"","sources":["../../../src/clusters/rvc-run-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,UAAU,CAAC;IACxB;;;;OAIG;IACH,KAAY,OAAO;QACf;;;;;;;WAOG;QACH,KAAK,UAAU;KAClB;IAED,KAAY,OAAO;QACf;;;;;;;;WAQG;QACH,IAAI,QAAQ;QAEZ;;;;;WAKG;QACH,QAAQ,QAAQ;QAEhB;;;;;;;;;;;;WAYG;QACH,OAAO,QAAQ;QAEf;;;;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;;;;;;;;;;;;;OAaG;IACI,MAAM,aAAa;QACtB;;;;;;WAMG;;QAGH;;;;WAIG;;QAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAmCG;;YAjGH;;;;;;;;;;;;eAYG;;YAGH;;;;;eAKG;;;MA+EL,CAAC;IAEH;;;;;;;;;;;;;OAaG;IACH,UAAiB,UAAW,SAAQ,cAAc,CAAC,OAAO,aAAa,CAAC;KAAG;IAE3E,KAAY,gBAAgB;QACxB;;WAEG;QACH,KAAK,KAAK;QAEV;;WAEG;QACH,cAAc,KAAK;QAEnB;;WAEG;QACH,WAAW,KAAK;QAEhB;;WAEG;QACH,cAAc,KAAK;QAEnB;;WAEG;QACH,gBAAgB,KAAK;QAErB;;WAEG;QACH,gBAAgB,KAAK;QAErB;;WAEG;QACH,qBAAqB,KAAK;QAE1B;;WAEG;QACH,UAAU,KAAK;QAEf;;;;;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;;gBAtKP;;;;;;mBAMG;;gBAGH;;;;mBAIG;;gBAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAmCG;;oBAjGH;;;;;;;;;;;;uBAYG;;oBAGH;;;;;uBAKG;;;;YAuMC;;eAEG;;;;YAKH;;;;;;eAMG;;;;;QAIP;;;WAGG;;KAEL,CAAC;IAEH;;OAEG;IACI,MAAM,eAAe;;;;;YAhDpB;;;;;;;eAOG;;;;YAKH;;eAEG;;gBAtKP;;;;;;mBAMG;;gBAGH;;;;mBAIG;;gBAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAmCG;;oBAjGH;;;;;;;;;;;;uBAYG;;oBAGH;;;;;uBAKG;;;;YAuMC;;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,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC;AACnD,eAAO,MAAM,iBAAiB,oBAAqB,CAAC"}
@@ -26,8 +26,11 @@ var import_MutableCluster = require("../cluster/mutation/MutableCluster.js");
26
26
  var import_BitmapSchema = require("../schema/BitmapSchema.js");
27
27
  var import_Cluster = require("../cluster/Cluster.js");
28
28
  var import_TlvArray = require("../tlv/TlvArray.js");
29
- var import_mode_base = require("./mode-base.js");
29
+ var import_TlvObject = require("../tlv/TlvObject.js");
30
+ var import_TlvString = require("../tlv/TlvString.js");
30
31
  var import_TlvNumber = require("../tlv/TlvNumber.js");
32
+ var import_VendorId = require("../datatype/VendorId.js");
33
+ var import_mode_base = require("./mode-base.js");
31
34
  var import_ClusterRegistry = require("../cluster/ClusterRegistry.js");
32
35
  /**
33
36
  * @license
@@ -40,6 +43,98 @@ var RvcRunMode;
40
43
  ((Feature2) => {
41
44
  Feature2["OnOff"] = "OnOff";
42
45
  })(Feature = RvcRunMode2.Feature || (RvcRunMode2.Feature = {}));
46
+ let ModeTag;
47
+ ((ModeTag2) => {
48
+ ModeTag2[ModeTag2["Idle"] = 16384] = "Idle";
49
+ ModeTag2[ModeTag2["Cleaning"] = 16385] = "Cleaning";
50
+ ModeTag2[ModeTag2["Mapping"] = 16386] = "Mapping";
51
+ ModeTag2[ModeTag2["Auto"] = 0] = "Auto";
52
+ ModeTag2[ModeTag2["Quick"] = 1] = "Quick";
53
+ ModeTag2[ModeTag2["Quiet"] = 2] = "Quiet";
54
+ ModeTag2[ModeTag2["LowNoise"] = 3] = "LowNoise";
55
+ ModeTag2[ModeTag2["LowEnergy"] = 4] = "LowEnergy";
56
+ ModeTag2[ModeTag2["Vacation"] = 5] = "Vacation";
57
+ ModeTag2[ModeTag2["Min"] = 6] = "Min";
58
+ ModeTag2[ModeTag2["Max"] = 7] = "Max";
59
+ ModeTag2[ModeTag2["Night"] = 8] = "Night";
60
+ ModeTag2[ModeTag2["Day"] = 9] = "Day";
61
+ })(ModeTag = RvcRunMode2.ModeTag || (RvcRunMode2.ModeTag = {}));
62
+ RvcRunMode2.TlvModeTagStruct = (0, import_TlvObject.TlvObject)({
63
+ /**
64
+ * If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
65
+ * 1.10.8, “Mode Namespace”).
66
+ *
67
+ * This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
68
+ *
69
+ * The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
70
+ * and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
71
+ * whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
72
+ * salt.
73
+ *
74
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
75
+ */
76
+ mfgCode: (0, import_TlvObject.TlvOptionalField)(0, import_VendorId.TlvVendorId),
77
+ /**
78
+ * This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
79
+ * standard.
80
+ *
81
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
82
+ */
83
+ value: (0, import_TlvObject.TlvField)(1, (0, import_TlvNumber.TlvEnum)())
84
+ });
85
+ RvcRunMode2.TlvModeOption = (0, import_TlvObject.TlvObject)({
86
+ /**
87
+ * This field shall indicate readable text that describes the mode option, so that a client can provide it to
88
+ * the user to indicate what this option means. This field is meant to be readable and understandable by the
89
+ * user.
90
+ *
91
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.1
92
+ */
93
+ label: (0, import_TlvObject.TlvField)(0, import_TlvString.TlvString.bound({ maxLength: 64 })),
94
+ /**
95
+ * This field is used to identify the mode option.
96
+ *
97
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.2
98
+ */
99
+ mode: (0, import_TlvObject.TlvField)(1, import_TlvNumber.TlvUInt8),
100
+ /**
101
+ * This field shall contain a list of tags that are associated with the mode option. This may be used by
102
+ * clients to determine the full or the partial semantics of a certain mode, depending on which tags they
103
+ * understand, using standard definitions and/or manufacturer specific namespace definitions.
104
+ *
105
+ * The standard mode tags are defined in this cluster specification. For the derived cluster instances, if the
106
+ * specification of the derived cluster defines a namespace, the set of standard mode tags also includes the
107
+ * mode tag values from that namespace.
108
+ *
109
+ * Mode tags can help clients look for options that meet certain criteria, render the user interface, use
110
+ *
111
+ * the mode in an automation, or to craft help text their voice-driven interfaces. A mode tag shall be either a
112
+ * standard tag or a manufacturer specific tag, as defined in each ModeTagStruct list entry.
113
+ *
114
+ * A mode option may have more than one mode tag. A mode option may be associated with a mixture of standard
115
+ * and manufacturer specific mode tags. A mode option shall be associated with at least one standard mode tag.
116
+ *
117
+ * A few examples are provided below.
118
+ *
119
+ * • A mode named "100%" can have both the High (manufacturer specific) and Max (standard) mode tag. Clients
120
+ * seeking the mode for either High or Max will find the same mode in this case.
121
+ *
122
+ * • A mode that includes a LowEnergy tag can be displayed by the client using a widget icon that shows a
123
+ * green leaf.
124
+ *
125
+ * • A mode that includes a LowNoise tag may be used by the client when the user wishes for a lower level of
126
+ * audible sound, less likely to disturb the household’s activities.
127
+ *
128
+ * • A mode that includes a LowEnergy tag (standard, defined in this cluster specification) and also a
129
+ * Delicate tag (standard, defined in the namespace of a Laundry Mode derived cluster).
130
+ *
131
+ * • A mode that includes both a generic Quick tag (defined here), and Vacuum and Mop tags, (defined in the
132
+ * RVC Clean cluster that is a derivation of this cluster).
133
+ *
134
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.3
135
+ */
136
+ modeTags: (0, import_TlvObject.TlvField)(2, (0, import_TlvArray.TlvArray)(RvcRunMode2.TlvModeTagStruct, { maxLength: 8 }))
137
+ });
43
138
  let ModeChangeStatus;
44
139
  ((ModeChangeStatus2) => {
45
140
  ModeChangeStatus2[ModeChangeStatus2["Stuck"] = 65] = "Stuck";
@@ -50,13 +145,11 @@ var RvcRunMode;
50
145
  ModeChangeStatus2[ModeChangeStatus2["WaterTankLidOpen"] = 70] = "WaterTankLidOpen";
51
146
  ModeChangeStatus2[ModeChangeStatus2["MopCleaningPadMissing"] = 71] = "MopCleaningPadMissing";
52
147
  ModeChangeStatus2[ModeChangeStatus2["BatteryLow"] = 72] = "BatteryLow";
148
+ ModeChangeStatus2[ModeChangeStatus2["Success"] = 0] = "Success";
149
+ ModeChangeStatus2[ModeChangeStatus2["UnsupportedMode"] = 1] = "UnsupportedMode";
150
+ ModeChangeStatus2[ModeChangeStatus2["GenericFailure"] = 2] = "GenericFailure";
151
+ ModeChangeStatus2[ModeChangeStatus2["InvalidInMode"] = 3] = "InvalidInMode";
53
152
  })(ModeChangeStatus = RvcRunMode2.ModeChangeStatus || (RvcRunMode2.ModeChangeStatus = {}));
54
- let ModeTag;
55
- ((ModeTag2) => {
56
- ModeTag2[ModeTag2["Idle"] = 16384] = "Idle";
57
- ModeTag2[ModeTag2["Cleaning"] = 16385] = "Cleaning";
58
- ModeTag2[ModeTag2["Mapping"] = 16386] = "Mapping";
59
- })(ModeTag = RvcRunMode2.ModeTag || (RvcRunMode2.ModeTag = {}));
60
153
  RvcRunMode2.Base = import_MutableCluster.MutableCluster.Component({
61
154
  id: 84,
62
155
  name: "RvcRunMode",
@@ -78,7 +171,7 @@ var RvcRunMode;
78
171
  */
79
172
  supportedModes: (0, import_Cluster.FixedAttribute)(
80
173
  0,
81
- (0, import_TlvArray.TlvArray)(import_mode_base.ModeBase.TlvModeOption, { minLength: 2, maxLength: 255 }),
174
+ (0, import_TlvArray.TlvArray)(RvcRunMode2.TlvModeOption, { minLength: 2, maxLength: 255 }),
82
175
  { default: [] }
83
176
  ),
84
177
  /**