@matter/types 0.11.9-alpha.0-20241203-06077d82e → 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 (233) hide show
  1. package/dist/cjs/clusters/access-control.d.ts +4 -4
  2. package/dist/cjs/clusters/administrator-commissioning.d.ts +8 -8
  3. package/dist/cjs/clusters/application-launcher.d.ts +14 -14
  4. package/dist/cjs/clusters/bridged-device-basic-information.d.ts +58 -7
  5. package/dist/cjs/clusters/bridged-device-basic-information.d.ts.map +1 -1
  6. package/dist/cjs/clusters/bridged-device-basic-information.js +19 -2
  7. package/dist/cjs/clusters/bridged-device-basic-information.js.map +1 -1
  8. package/dist/cjs/clusters/channel.d.ts +15 -15
  9. package/dist/cjs/clusters/color-control.d.ts.map +1 -1
  10. package/dist/cjs/clusters/color-control.js +1 -5
  11. package/dist/cjs/clusters/color-control.js.map +1 -1
  12. package/dist/cjs/clusters/content-launcher.d.ts +10 -10
  13. package/dist/cjs/clusters/content-launcher.d.ts.map +1 -1
  14. package/dist/cjs/clusters/content-launcher.js +22 -22
  15. package/dist/cjs/clusters/content-launcher.js.map +2 -2
  16. package/dist/cjs/clusters/device-energy-management-mode.d.ts +411 -25
  17. package/dist/cjs/clusters/device-energy-management-mode.d.ts.map +1 -1
  18. package/dist/cjs/clusters/device-energy-management-mode.js +90 -1
  19. package/dist/cjs/clusters/device-energy-management-mode.js.map +1 -1
  20. package/dist/cjs/clusters/diagnostic-logs.d.ts +2 -2
  21. package/dist/cjs/clusters/dishwasher-alarm.d.ts +1253 -42
  22. package/dist/cjs/clusters/dishwasher-alarm.d.ts.map +1 -1
  23. package/dist/cjs/clusters/dishwasher-alarm.js +72 -9
  24. package/dist/cjs/clusters/dishwasher-alarm.js.map +1 -1
  25. package/dist/cjs/clusters/dishwasher-mode.d.ts +340 -17
  26. package/dist/cjs/clusters/dishwasher-mode.d.ts.map +1 -1
  27. package/dist/cjs/clusters/dishwasher-mode.js +91 -2
  28. package/dist/cjs/clusters/dishwasher-mode.js.map +1 -1
  29. package/dist/cjs/clusters/door-lock.d.ts +1344 -192
  30. package/dist/cjs/clusters/door-lock.d.ts.map +1 -1
  31. package/dist/cjs/clusters/door-lock.js +199 -3
  32. package/dist/cjs/clusters/door-lock.js.map +1 -1
  33. package/dist/cjs/clusters/energy-evse-mode.d.ts +409 -25
  34. package/dist/cjs/clusters/energy-evse-mode.d.ts.map +1 -1
  35. package/dist/cjs/clusters/energy-evse-mode.js +90 -1
  36. package/dist/cjs/clusters/energy-evse-mode.js.map +1 -1
  37. package/dist/cjs/clusters/energy-evse.d.ts +5 -5
  38. package/dist/cjs/clusters/fan-control.d.ts +5 -0
  39. package/dist/cjs/clusters/fan-control.d.ts.map +1 -1
  40. package/dist/cjs/clusters/fan-control.js.map +1 -1
  41. package/dist/cjs/clusters/general-diagnostics.d.ts +26 -26
  42. package/dist/cjs/clusters/group-key-management.d.ts +21 -21
  43. package/dist/cjs/clusters/groups.d.ts +12 -0
  44. package/dist/cjs/clusters/groups.d.ts.map +1 -1
  45. package/dist/cjs/clusters/groups.js +7 -1
  46. package/dist/cjs/clusters/groups.js.map +1 -1
  47. package/dist/cjs/clusters/icd-management.d.ts +15 -15
  48. package/dist/cjs/clusters/laundry-washer-mode.d.ts +340 -17
  49. package/dist/cjs/clusters/laundry-washer-mode.d.ts.map +1 -1
  50. package/dist/cjs/clusters/laundry-washer-mode.js +91 -2
  51. package/dist/cjs/clusters/laundry-washer-mode.js.map +1 -1
  52. package/dist/cjs/clusters/media-playback.d.ts +4 -4
  53. package/dist/cjs/clusters/messages.d.ts +20 -20
  54. package/dist/cjs/clusters/microwave-oven-mode.d.ts +330 -13
  55. package/dist/cjs/clusters/microwave-oven-mode.d.ts.map +1 -1
  56. package/dist/cjs/clusters/microwave-oven-mode.js +90 -2
  57. package/dist/cjs/clusters/microwave-oven-mode.js.map +1 -1
  58. package/dist/cjs/clusters/mode-base.d.ts +68 -68
  59. package/dist/cjs/clusters/mode-base.d.ts.map +1 -1
  60. package/dist/cjs/clusters/mode-base.js +16 -16
  61. package/dist/cjs/clusters/mode-base.js.map +2 -2
  62. package/dist/cjs/clusters/network-commissioning.d.ts +74 -74
  63. package/dist/cjs/clusters/operational-credentials.d.ts +33 -33
  64. package/dist/cjs/clusters/ota-software-update-provider.d.ts +10 -10
  65. package/dist/cjs/clusters/ota-software-update-requestor.d.ts +2 -2
  66. package/dist/cjs/clusters/oven-mode.d.ts +409 -25
  67. package/dist/cjs/clusters/oven-mode.d.ts.map +1 -1
  68. package/dist/cjs/clusters/oven-mode.js +90 -1
  69. package/dist/cjs/clusters/oven-mode.js.map +1 -1
  70. package/dist/cjs/clusters/pump-configuration-and-control.d.ts +15 -0
  71. package/dist/cjs/clusters/pump-configuration-and-control.d.ts.map +1 -1
  72. package/dist/cjs/clusters/pump-configuration-and-control.js +6 -1
  73. package/dist/cjs/clusters/pump-configuration-and-control.js.map +1 -1
  74. package/dist/cjs/clusters/refrigerator-alarm.d.ts +364 -36
  75. package/dist/cjs/clusters/refrigerator-alarm.d.ts.map +1 -1
  76. package/dist/cjs/clusters/refrigerator-alarm.js +46 -8
  77. package/dist/cjs/clusters/refrigerator-alarm.js.map +1 -1
  78. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +340 -17
  79. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  80. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +91 -2
  81. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  82. package/dist/cjs/clusters/rvc-clean-mode.d.ts +374 -23
  83. package/dist/cjs/clusters/rvc-clean-mode.d.ts.map +1 -1
  84. package/dist/cjs/clusters/rvc-clean-mode.js +99 -6
  85. package/dist/cjs/clusters/rvc-clean-mode.js.map +2 -2
  86. package/dist/cjs/clusters/rvc-operational-state.d.ts +248 -22
  87. package/dist/cjs/clusters/rvc-operational-state.d.ts.map +1 -1
  88. package/dist/cjs/clusters/rvc-operational-state.js +59 -10
  89. package/dist/cjs/clusters/rvc-operational-state.js.map +1 -1
  90. package/dist/cjs/clusters/rvc-run-mode.d.ts +401 -40
  91. package/dist/cjs/clusters/rvc-run-mode.d.ts.map +1 -1
  92. package/dist/cjs/clusters/rvc-run-mode.js +101 -8
  93. package/dist/cjs/clusters/rvc-run-mode.js.map +2 -2
  94. package/dist/cjs/clusters/software-diagnostics.d.ts +4 -4
  95. package/dist/cjs/clusters/target-navigator.d.ts +2 -2
  96. package/dist/cjs/clusters/thermostat.d.ts +262 -61
  97. package/dist/cjs/clusters/thermostat.d.ts.map +1 -1
  98. package/dist/cjs/clusters/thermostat.js +72 -58
  99. package/dist/cjs/clusters/thermostat.js.map +1 -1
  100. package/dist/cjs/clusters/thread-network-diagnostics.d.ts +6 -6
  101. package/dist/cjs/clusters/wake-on-lan.d.ts +1 -1
  102. package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts +3 -3
  103. package/dist/cjs/schema/BitmapSchema.d.ts +1 -1
  104. package/dist/cjs/schema/PairingCodeSchema.d.ts +2 -2
  105. package/dist/cjs/tlv/TlvSchema.d.ts +1 -1
  106. package/dist/esm/clusters/access-control.d.ts +4 -4
  107. package/dist/esm/clusters/administrator-commissioning.d.ts +8 -8
  108. package/dist/esm/clusters/application-launcher.d.ts +14 -14
  109. package/dist/esm/clusters/bridged-device-basic-information.d.ts +58 -7
  110. package/dist/esm/clusters/bridged-device-basic-information.d.ts.map +1 -1
  111. package/dist/esm/clusters/bridged-device-basic-information.js +19 -2
  112. package/dist/esm/clusters/bridged-device-basic-information.js.map +1 -1
  113. package/dist/esm/clusters/channel.d.ts +15 -15
  114. package/dist/esm/clusters/color-control.d.ts.map +1 -1
  115. package/dist/esm/clusters/color-control.js +1 -5
  116. package/dist/esm/clusters/color-control.js.map +1 -1
  117. package/dist/esm/clusters/content-launcher.d.ts +10 -10
  118. package/dist/esm/clusters/content-launcher.d.ts.map +1 -1
  119. package/dist/esm/clusters/content-launcher.js +22 -22
  120. package/dist/esm/clusters/content-launcher.js.map +2 -2
  121. package/dist/esm/clusters/device-energy-management-mode.d.ts +411 -25
  122. package/dist/esm/clusters/device-energy-management-mode.d.ts.map +1 -1
  123. package/dist/esm/clusters/device-energy-management-mode.js +91 -2
  124. package/dist/esm/clusters/device-energy-management-mode.js.map +1 -1
  125. package/dist/esm/clusters/diagnostic-logs.d.ts +2 -2
  126. package/dist/esm/clusters/dishwasher-alarm.d.ts +1253 -42
  127. package/dist/esm/clusters/dishwasher-alarm.d.ts.map +1 -1
  128. package/dist/esm/clusters/dishwasher-alarm.js +72 -9
  129. package/dist/esm/clusters/dishwasher-alarm.js.map +1 -1
  130. package/dist/esm/clusters/dishwasher-mode.d.ts +340 -17
  131. package/dist/esm/clusters/dishwasher-mode.d.ts.map +1 -1
  132. package/dist/esm/clusters/dishwasher-mode.js +91 -2
  133. package/dist/esm/clusters/dishwasher-mode.js.map +1 -1
  134. package/dist/esm/clusters/door-lock.d.ts +1344 -192
  135. package/dist/esm/clusters/door-lock.d.ts.map +1 -1
  136. package/dist/esm/clusters/door-lock.js +199 -3
  137. package/dist/esm/clusters/door-lock.js.map +1 -1
  138. package/dist/esm/clusters/energy-evse-mode.d.ts +409 -25
  139. package/dist/esm/clusters/energy-evse-mode.d.ts.map +1 -1
  140. package/dist/esm/clusters/energy-evse-mode.js +91 -2
  141. package/dist/esm/clusters/energy-evse-mode.js.map +1 -1
  142. package/dist/esm/clusters/energy-evse.d.ts +5 -5
  143. package/dist/esm/clusters/fan-control.d.ts +5 -0
  144. package/dist/esm/clusters/fan-control.d.ts.map +1 -1
  145. package/dist/esm/clusters/fan-control.js.map +1 -1
  146. package/dist/esm/clusters/general-diagnostics.d.ts +26 -26
  147. package/dist/esm/clusters/group-key-management.d.ts +21 -21
  148. package/dist/esm/clusters/groups.d.ts +12 -0
  149. package/dist/esm/clusters/groups.d.ts.map +1 -1
  150. package/dist/esm/clusters/groups.js +7 -1
  151. package/dist/esm/clusters/groups.js.map +1 -1
  152. package/dist/esm/clusters/icd-management.d.ts +15 -15
  153. package/dist/esm/clusters/laundry-washer-mode.d.ts +340 -17
  154. package/dist/esm/clusters/laundry-washer-mode.d.ts.map +1 -1
  155. package/dist/esm/clusters/laundry-washer-mode.js +91 -2
  156. package/dist/esm/clusters/laundry-washer-mode.js.map +1 -1
  157. package/dist/esm/clusters/media-playback.d.ts +4 -4
  158. package/dist/esm/clusters/messages.d.ts +20 -20
  159. package/dist/esm/clusters/microwave-oven-mode.d.ts +330 -13
  160. package/dist/esm/clusters/microwave-oven-mode.d.ts.map +1 -1
  161. package/dist/esm/clusters/microwave-oven-mode.js +91 -3
  162. package/dist/esm/clusters/microwave-oven-mode.js.map +1 -1
  163. package/dist/esm/clusters/mode-base.d.ts +68 -68
  164. package/dist/esm/clusters/mode-base.d.ts.map +1 -1
  165. package/dist/esm/clusters/mode-base.js +17 -17
  166. package/dist/esm/clusters/mode-base.js.map +2 -2
  167. package/dist/esm/clusters/network-commissioning.d.ts +74 -74
  168. package/dist/esm/clusters/operational-credentials.d.ts +33 -33
  169. package/dist/esm/clusters/ota-software-update-provider.d.ts +10 -10
  170. package/dist/esm/clusters/ota-software-update-requestor.d.ts +2 -2
  171. package/dist/esm/clusters/oven-mode.d.ts +409 -25
  172. package/dist/esm/clusters/oven-mode.d.ts.map +1 -1
  173. package/dist/esm/clusters/oven-mode.js +91 -2
  174. package/dist/esm/clusters/oven-mode.js.map +1 -1
  175. package/dist/esm/clusters/pump-configuration-and-control.d.ts +15 -0
  176. package/dist/esm/clusters/pump-configuration-and-control.d.ts.map +1 -1
  177. package/dist/esm/clusters/pump-configuration-and-control.js +6 -1
  178. package/dist/esm/clusters/pump-configuration-and-control.js.map +1 -1
  179. package/dist/esm/clusters/refrigerator-alarm.d.ts +364 -36
  180. package/dist/esm/clusters/refrigerator-alarm.d.ts.map +1 -1
  181. package/dist/esm/clusters/refrigerator-alarm.js +46 -8
  182. package/dist/esm/clusters/refrigerator-alarm.js.map +1 -1
  183. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +340 -17
  184. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  185. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +91 -2
  186. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  187. package/dist/esm/clusters/rvc-clean-mode.d.ts +374 -23
  188. package/dist/esm/clusters/rvc-clean-mode.d.ts.map +1 -1
  189. package/dist/esm/clusters/rvc-clean-mode.js +99 -6
  190. package/dist/esm/clusters/rvc-clean-mode.js.map +2 -2
  191. package/dist/esm/clusters/rvc-operational-state.d.ts +248 -22
  192. package/dist/esm/clusters/rvc-operational-state.d.ts.map +1 -1
  193. package/dist/esm/clusters/rvc-operational-state.js +60 -11
  194. package/dist/esm/clusters/rvc-operational-state.js.map +1 -1
  195. package/dist/esm/clusters/rvc-run-mode.d.ts +401 -40
  196. package/dist/esm/clusters/rvc-run-mode.d.ts.map +1 -1
  197. package/dist/esm/clusters/rvc-run-mode.js +101 -8
  198. package/dist/esm/clusters/rvc-run-mode.js.map +2 -2
  199. package/dist/esm/clusters/software-diagnostics.d.ts +4 -4
  200. package/dist/esm/clusters/target-navigator.d.ts +2 -2
  201. package/dist/esm/clusters/thermostat.d.ts +262 -61
  202. package/dist/esm/clusters/thermostat.d.ts.map +1 -1
  203. package/dist/esm/clusters/thermostat.js +72 -58
  204. package/dist/esm/clusters/thermostat.js.map +1 -1
  205. package/dist/esm/clusters/thread-network-diagnostics.d.ts +6 -6
  206. package/dist/esm/clusters/wake-on-lan.d.ts +1 -1
  207. package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts +3 -3
  208. package/dist/esm/schema/BitmapSchema.d.ts +1 -1
  209. package/dist/esm/schema/PairingCodeSchema.d.ts +2 -2
  210. package/dist/esm/tlv/TlvSchema.d.ts +1 -1
  211. package/package.json +5 -5
  212. package/src/clusters/bridged-device-basic-information.ts +46 -2
  213. package/src/clusters/color-control.ts +1 -5
  214. package/src/clusters/content-launcher.ts +5 -5
  215. package/src/clusters/device-energy-management-mode.ts +184 -3
  216. package/src/clusters/dishwasher-alarm.ts +115 -9
  217. package/src/clusters/dishwasher-mode.ts +188 -3
  218. package/src/clusters/door-lock.ts +247 -3
  219. package/src/clusters/energy-evse-mode.ts +182 -3
  220. package/src/clusters/fan-control.ts +5 -0
  221. package/src/clusters/groups.ts +8 -1
  222. package/src/clusters/laundry-washer-mode.ts +188 -3
  223. package/src/clusters/microwave-oven-mode.ts +182 -4
  224. package/src/clusters/mode-base.ts +77 -77
  225. package/src/clusters/oven-mode.ts +182 -3
  226. package/src/clusters/pump-configuration-and-control.ts +7 -1
  227. package/src/clusters/refrigerator-alarm.ts +76 -8
  228. package/src/clusters/refrigerator-and-temperature-controlled-cabinet-mode.ts +188 -3
  229. package/src/clusters/rvc-clean-mode.ts +227 -10
  230. package/src/clusters/rvc-operational-state.ts +112 -11
  231. package/src/clusters/rvc-run-mode.ts +253 -26
  232. package/src/clusters/thermostat.ts +80 -65
  233. package/src/globals/WildcardPathFlags.ts +1 -1
@@ -10,8 +10,12 @@ import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
10
10
  import { BitFlag } from "../schema/BitmapSchema.js";
11
11
  import { FixedAttribute, Attribute, Command, TlvNoResponse } from "../cluster/Cluster.js";
12
12
  import { TlvArray } from "../tlv/TlvArray.js";
13
+ import { TlvField, TlvOptionalField, TlvObject } from "../tlv/TlvObject.js";
14
+ import { TlvString } from "../tlv/TlvString.js";
15
+ import { TlvUInt8, TlvEnum } from "../tlv/TlvNumber.js";
16
+ import { TlvVendorId } from "../datatype/VendorId.js";
17
+ import { TypeFromSchema } from "../tlv/TlvSchema.js";
13
18
  import { ModeBase } from "./mode-base.js";
14
- import { TlvUInt8 } from "../tlv/TlvNumber.js";
15
19
  import { Identity } from "#general";
16
20
  import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
17
21
 
@@ -33,6 +37,235 @@ export namespace RvcRunMode {
33
37
  OnOff = "OnOff"
34
38
  }
35
39
 
40
+ export enum ModeTag {
41
+ /**
42
+ * The device is not performing any of the main operations of the other modes. However, auxiliary actions, such
43
+ * as seeking the charger or charging, may occur.
44
+ *
45
+ * For example, the device has completed cleaning, successfully or not, on its own or due to a command, or has
46
+ * not been asked to clean after a restart.
47
+ *
48
+ * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.2.1
49
+ */
50
+ Idle = 16384,
51
+
52
+ /**
53
+ * The device was asked to clean so it may be actively running, or paused due to an error, due to a pause
54
+ * command, or for recharging etc. If currently paused and the device can resume it will continue to clean.
55
+ *
56
+ * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.2.2
57
+ */
58
+ Cleaning = 16385,
59
+
60
+ /**
61
+ * The device was asked to create a map of the space it is located in, so it may be actively running, or paused
62
+ * due to an error, due to a pause command, or for recharging etc. If currently paused and the device can
63
+ * resume, it will continue to map.
64
+ *
65
+ * NOTE
66
+ *
67
+ * this mode is intended to be used so the current space can be mapped by the device if the robot has not
68
+ * previously done that, or if the layout has substantially changed, for an optimal subsequent cleaning
69
+ * experience.
70
+ *
71
+ * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.2.3
72
+ */
73
+ Mapping = 16386,
74
+
75
+ /**
76
+ * The device decides which options, features and setting values to use.
77
+ *
78
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
79
+ */
80
+ Auto = 0,
81
+
82
+ /**
83
+ * The mode of the device is optimizing for faster completion.
84
+ *
85
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
86
+ */
87
+ Quick = 1,
88
+
89
+ /**
90
+ * The device is silent or barely audible while in this mode.
91
+ *
92
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
93
+ */
94
+ Quiet = 2,
95
+
96
+ /**
97
+ * Either the mode is inherently low noise or the device optimizes for that.
98
+ *
99
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
100
+ */
101
+ LowNoise = 3,
102
+
103
+ /**
104
+ * The device is optimizing for lower energy usage in this mode. Sometimes called "Eco mode".
105
+ *
106
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
107
+ */
108
+ LowEnergy = 4,
109
+
110
+ /**
111
+ * A mode suitable for use during vacations or other extended absences.
112
+ *
113
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
114
+ */
115
+ Vacation = 5,
116
+
117
+ /**
118
+ * The mode uses the lowest available setting value.
119
+ *
120
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
121
+ */
122
+ Min = 6,
123
+
124
+ /**
125
+ * The mode uses the highest available setting value.
126
+ *
127
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
128
+ */
129
+ Max = 7,
130
+
131
+ /**
132
+ * The mode is recommended or suitable for use during night time.
133
+ *
134
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
135
+ */
136
+ Night = 8,
137
+
138
+ /**
139
+ * The mode is recommended or suitable for use during day time.
140
+ *
141
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.8
142
+ */
143
+ Day = 9
144
+ }
145
+
146
+ /**
147
+ * A Mode Tag is meant to be interpreted by the client for the purpose the cluster serves.
148
+ *
149
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1
150
+ */
151
+ export const TlvModeTagStruct = TlvObject({
152
+ /**
153
+ * If the MfgCode field exists, the Value field shall be in the manufacturer-specific value range (see Section
154
+ * 1.10.8, “Mode Namespace”).
155
+ *
156
+ * This field shall indicate the manufacturer’s VendorID and it shall determine the meaning of the Value field.
157
+ *
158
+ * The same manufacturer code and mode tag value in separate cluster instances are part of the same namespace
159
+ * and have the same meaning. For example: a manufacturer tag meaning "pinch" can be used both in a cluster
160
+ * whose purpose is to choose the amount of sugar, or in a cluster whose purpose is to choose the amount of
161
+ * salt.
162
+ *
163
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.1
164
+ */
165
+ mfgCode: TlvOptionalField(0, TlvVendorId),
166
+
167
+ /**
168
+ * This field shall indicate the mode tag within a mode tag namespace which is either manufacturer specific or
169
+ * standard.
170
+ *
171
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1.2
172
+ */
173
+ value: TlvField(1, TlvEnum<ModeTag>())
174
+ });
175
+
176
+ /**
177
+ * A Mode Tag is meant to be interpreted by the client for the purpose the cluster serves.
178
+ *
179
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.1
180
+ */
181
+ export interface ModeTagStruct extends TypeFromSchema<typeof TlvModeTagStruct> {}
182
+
183
+ /**
184
+ * The table below lists the changes relative to the Mode Base cluster for the fields of the ModeOptionStruct type.
185
+ * A blank field indicates no change.
186
+ *
187
+ * At least one entry in the SupportedModes attribute shall include the Idle mode tag in the ModeTags field.
188
+ *
189
+ * At least one entry in the SupportedModes attribute (different from the one above) shall include the Cleaning
190
+ * mode tag in the ModeTags field.
191
+ *
192
+ * The Mapping, Cleaning, and Idle mode tags are mutually exclusive and shall NOT be used together in a mode’s
193
+ * ModeTags.
194
+ *
195
+ * @see {@link MatterSpecification.v13.Cluster} § 7.2.5.1
196
+ */
197
+ export const TlvModeOption = TlvObject({
198
+ /**
199
+ * This field shall indicate readable text that describes the mode option, so that a client can provide it to
200
+ * the user to indicate what this option means. This field is meant to be readable and understandable by the
201
+ * user.
202
+ *
203
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.1
204
+ */
205
+ label: TlvField(0, TlvString.bound({ maxLength: 64 })),
206
+
207
+ /**
208
+ * This field is used to identify the mode option.
209
+ *
210
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.2
211
+ */
212
+ mode: TlvField(1, TlvUInt8),
213
+
214
+ /**
215
+ * This field shall contain a list of tags that are associated with the mode option. This may be used by
216
+ * clients to determine the full or the partial semantics of a certain mode, depending on which tags they
217
+ * understand, using standard definitions and/or manufacturer specific namespace definitions.
218
+ *
219
+ * The standard mode tags are defined in this cluster specification. For the derived cluster instances, if the
220
+ * specification of the derived cluster defines a namespace, the set of standard mode tags also includes the
221
+ * mode tag values from that namespace.
222
+ *
223
+ * Mode tags can help clients look for options that meet certain criteria, render the user interface, use
224
+ *
225
+ * the mode in an automation, or to craft help text their voice-driven interfaces. A mode tag shall be either a
226
+ * standard tag or a manufacturer specific tag, as defined in each ModeTagStruct list entry.
227
+ *
228
+ * A mode option may have more than one mode tag. A mode option may be associated with a mixture of standard
229
+ * and manufacturer specific mode tags. A mode option shall be associated with at least one standard mode tag.
230
+ *
231
+ * A few examples are provided below.
232
+ *
233
+ * • A mode named "100%" can have both the High (manufacturer specific) and Max (standard) mode tag. Clients
234
+ * seeking the mode for either High or Max will find the same mode in this case.
235
+ *
236
+ * • A mode that includes a LowEnergy tag can be displayed by the client using a widget icon that shows a
237
+ * green leaf.
238
+ *
239
+ * • A mode that includes a LowNoise tag may be used by the client when the user wishes for a lower level of
240
+ * audible sound, less likely to disturb the household’s activities.
241
+ *
242
+ * • A mode that includes a LowEnergy tag (standard, defined in this cluster specification) and also a
243
+ * Delicate tag (standard, defined in the namespace of a Laundry Mode derived cluster).
244
+ *
245
+ * • A mode that includes both a generic Quick tag (defined here), and Vacuum and Mop tags, (defined in the
246
+ * RVC Clean cluster that is a derivation of this cluster).
247
+ *
248
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.5.2.3
249
+ */
250
+ modeTags: TlvField(2, TlvArray(TlvModeTagStruct, { maxLength: 8 }))
251
+ });
252
+
253
+ /**
254
+ * The table below lists the changes relative to the Mode Base cluster for the fields of the ModeOptionStruct type.
255
+ * A blank field indicates no change.
256
+ *
257
+ * At least one entry in the SupportedModes attribute shall include the Idle mode tag in the ModeTags field.
258
+ *
259
+ * At least one entry in the SupportedModes attribute (different from the one above) shall include the Cleaning
260
+ * mode tag in the ModeTags field.
261
+ *
262
+ * The Mapping, Cleaning, and Idle mode tags are mutually exclusive and shall NOT be used together in a mode’s
263
+ * ModeTags.
264
+ *
265
+ * @see {@link MatterSpecification.v13.Cluster} § 7.2.5.1
266
+ */
267
+ export interface ModeOption extends TypeFromSchema<typeof TlvModeOption> {}
268
+
36
269
  export enum ModeChangeStatus {
37
270
  /**
38
271
  * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.1
@@ -72,43 +305,37 @@ export namespace RvcRunMode {
72
305
  /**
73
306
  * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.1
74
307
  */
75
- BatteryLow = 72
76
- }
308
+ BatteryLow = 72,
77
309
 
78
- export enum ModeTag {
79
310
  /**
80
- * The device is not performing any of the main operations of the other modes. However, auxiliary actions, such
81
- * as seeking the charger or charging, may occur.
82
- *
83
- * For example, the device has completed cleaning, successfully or not, on its own or due to a command, or has
84
- * not been asked to clean after a restart.
311
+ * Switching to the mode indicated by the NewMode field is allowed and possible. The CurrentMode attribute is
312
+ * set to the value of the NewMode field.
85
313
  *
86
- * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.2.1
314
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.2.1.2
87
315
  */
88
- Idle = 16384,
316
+ Success = 0,
89
317
 
90
318
  /**
91
- * The device was asked to clean so it may be actively running, or paused due to an error, due to a pause
92
- * command, or for recharging etc. If currently paused and the device can resume it will continue to clean.
319
+ * The value of the NewMode field doesn’t match any entries in the SupportedMode attribute.
93
320
  *
94
- * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.2.2
321
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.2.1.2
95
322
  */
96
- Cleaning = 16385,
323
+ UnsupportedMode = 1,
97
324
 
98
325
  /**
99
- * The device was asked to create a map of the space it is located in, so it may be actively running, or paused
100
- * due to an error, due to a pause command, or for recharging etc. If currently paused and the device can
101
- * resume, it will continue to map.
326
+ * Generic failure code, indicating that switching to the mode indicated by the NewMode field is not allowed or
327
+ * not possible.
102
328
  *
103
- * NOTE
104
- *
105
- * this mode is intended to be used so the current space can be mapped by the device if the robot has not
106
- * previously done that, or if the layout has substantially changed, for an optimal subsequent cleaning
107
- * experience.
329
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.2.1.2
330
+ */
331
+ GenericFailure = 2,
332
+
333
+ /**
334
+ * The received request cannot be handled due to the current mode of the device
108
335
  *
109
- * @see {@link MatterSpecification.v13.Cluster} § 7.2.7.2.3
336
+ * @see {@link MatterSpecification.v13.Cluster} § 1.10.7.2.1.2
110
337
  */
111
- Mapping = 16386
338
+ InvalidInMode = 3
112
339
  }
113
340
 
114
341
  /**
@@ -137,7 +364,7 @@ export namespace RvcRunMode {
137
364
  */
138
365
  supportedModes: FixedAttribute(
139
366
  0x0,
140
- TlvArray(ModeBase.TlvModeOption, { minLength: 2, maxLength: 255 }),
367
+ TlvArray(TlvModeOption, { minLength: 2, maxLength: 255 }),
141
368
  { default: [] }
142
369
  ),
143
370
 
@@ -338,6 +338,71 @@ export namespace Thermostat {
338
338
  */
339
339
  export interface GetWeeklyScheduleResponse extends TypeFromSchema<typeof TlvGetWeeklyScheduleResponse> {}
340
340
 
341
+ /**
342
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6
343
+ */
344
+ export const HvacSystemType = {
345
+ /**
346
+ * Stage of cooling the HVAC system is using.
347
+ *
348
+ * These bits shall indicate what stage of cooling the HVAC system is using.
349
+ *
350
+ * • 00 = Cool Stage 1
351
+ *
352
+ * • 01 = Cool Stage 2
353
+ *
354
+ * • 10 = Cool Stage 3
355
+ *
356
+ * • 11 = Reserved
357
+ *
358
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6.1
359
+ */
360
+ coolingStage: BitField(0, 2),
361
+
362
+ /**
363
+ * Stage of heating the HVAC system is using.
364
+ *
365
+ * These bits shall indicate what stage of heating the HVAC system is using.
366
+ *
367
+ * • 00 = Heat Stage 1
368
+ *
369
+ * • 01 = Heat Stage 2
370
+ *
371
+ * • 10 = Heat Stage 3
372
+ *
373
+ * • 11 = Reserved
374
+ *
375
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6.2
376
+ */
377
+ heatingStage: BitField(2, 2),
378
+
379
+ /**
380
+ * Is the heating type Heat Pump.
381
+ *
382
+ * This bit shall indicate whether the HVAC system is conventional or a heat pump.
383
+ *
384
+ * • 0 = Conventional
385
+ *
386
+ * • 1 = Heat Pump
387
+ *
388
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6.3
389
+ */
390
+ heatingIsHeatPump: BitFlag(4),
391
+
392
+ /**
393
+ * Does the HVAC system use fuel.
394
+ *
395
+ * This bit shall indicate whether the HVAC system uses fuel.
396
+ *
397
+ * • 0 = Does not use fuel
398
+ *
399
+ * • 1 = Uses fuel
400
+ *
401
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6.4
402
+ */
403
+ heatingUsesFuel: BitFlag(5)
404
+ };
405
+
341
406
  /**
342
407
  * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.9
343
408
  */
@@ -750,71 +815,6 @@ export namespace Thermostat {
750
815
  selfCalibration: BitFlag(2)
751
816
  };
752
817
 
753
- /**
754
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6
755
- */
756
- export const HvacSystemType = {
757
- /**
758
- * Stage of cooling the HVAC system is using.
759
- *
760
- * These bits shall indicate what stage of cooling the HVAC system is using.
761
- *
762
- * • 00 = Cool Stage 1
763
- *
764
- * • 01 = Cool Stage 2
765
- *
766
- * • 10 = Cool Stage 3
767
- *
768
- * • 11 = Reserved
769
- *
770
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6.1
771
- */
772
- coolingStage: BitField(0, 2),
773
-
774
- /**
775
- * Stage of heating the HVAC system is using.
776
- *
777
- * These bits shall indicate what stage of heating the HVAC system is using.
778
- *
779
- * • 00 = Heat Stage 1
780
- *
781
- * • 01 = Heat Stage 2
782
- *
783
- * • 10 = Heat Stage 3
784
- *
785
- * • 11 = Reserved
786
- *
787
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6.2
788
- */
789
- heatingStage: BitField(2, 2),
790
-
791
- /**
792
- * Is the heating type Heat Pump.
793
- *
794
- * This bit shall indicate whether the HVAC system is conventional or a heat pump.
795
- *
796
- * • 0 = Conventional
797
- *
798
- * • 1 = Heat Pump
799
- *
800
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6.3
801
- */
802
- heatingIsHeatPump: BitFlag(4),
803
-
804
- /**
805
- * Does the HVAC system use fuel.
806
- *
807
- * This bit shall indicate whether the HVAC system uses fuel.
808
- *
809
- * • 0 = Does not use fuel
810
- *
811
- * • 1 = Uses fuel
812
- *
813
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6.4
814
- */
815
- heatingUsesFuel: BitFlag(5)
816
- };
817
-
818
818
  /**
819
819
  * A ThermostatCluster supports these elements if it supports feature Occupancy.
820
820
  */
@@ -1398,6 +1398,21 @@ export namespace Thermostat {
1398
1398
  */
1399
1399
  outdoorTemperature: OptionalAttribute(0x1, TlvNullable(TlvInt16), { default: null }),
1400
1400
 
1401
+ /**
1402
+ * Indicates the HVAC system type controlled by the thermostat. If the thermostat uses physical DIP
1403
+ * switches to set these parameters, this information shall be available read-only from the DIP switches.
1404
+ * If these parameters are set via software, there shall be read/write access in order to provide remote
1405
+ * programming capability.
1406
+ *
1407
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.12
1408
+ * @deprecated
1409
+ */
1410
+ hvacSystemTypeConfiguration: OptionalWritableAttribute(
1411
+ 0x9,
1412
+ TlvBitmap(TlvUInt8, HvacSystemType),
1413
+ { persistent: true, writeAcl: AccessLevel.Manage }
1414
+ ),
1415
+
1401
1416
  /**
1402
1417
  * Indicates when the local temperature, outdoor temperature and occupancy are being sensed by remote
1403
1418
  * networked sensors, rather than internal sensors.
@@ -58,5 +58,5 @@ export const WildcardPathFlags = {
58
58
  /**
59
59
  * Skip all clusters with the Diagnostics (K) quality during wildcard expansion.
60
60
  */
61
- wildcardSkipDiagnosticsClusters: BitFlag(8),
61
+ wildcardSkipDiagnosticsClusters: BitFlag(8)
62
62
  };