@matter/types 0.13.0-alpha.0-20250304-d4a7592a4 → 0.13.0-alpha.0-20250311-3eb0af5f2

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 (807) hide show
  1. package/dist/cjs/clusters/access-control.d.ts +3972 -522
  2. package/dist/cjs/clusters/access-control.d.ts.map +1 -1
  3. package/dist/cjs/clusters/access-control.js +640 -116
  4. package/dist/cjs/clusters/access-control.js.map +2 -2
  5. package/dist/cjs/clusters/actions.d.ts +10 -9
  6. package/dist/cjs/clusters/actions.d.ts.map +1 -1
  7. package/dist/cjs/clusters/actions.js +4 -4
  8. package/dist/cjs/clusters/actions.js.map +1 -1
  9. package/dist/cjs/clusters/administrator-commissioning.d.ts +156 -129
  10. package/dist/cjs/clusters/administrator-commissioning.d.ts.map +1 -1
  11. package/dist/cjs/clusters/administrator-commissioning.js +40 -35
  12. package/dist/cjs/clusters/administrator-commissioning.js.map +1 -1
  13. package/dist/cjs/clusters/alarm-base.d.ts +9 -12
  14. package/dist/cjs/clusters/alarm-base.d.ts.map +1 -1
  15. package/dist/cjs/clusters/alarm-base.js +3 -4
  16. package/dist/cjs/clusters/alarm-base.js.map +1 -1
  17. package/dist/cjs/clusters/application-launcher.d.ts +27 -15
  18. package/dist/cjs/clusters/application-launcher.d.ts.map +1 -1
  19. package/dist/cjs/clusters/application-launcher.js +7 -4
  20. package/dist/cjs/clusters/application-launcher.js.map +1 -1
  21. package/dist/cjs/clusters/ballast-configuration.d.ts +7 -7
  22. package/dist/cjs/clusters/ballast-configuration.js +7 -7
  23. package/dist/cjs/clusters/basic-information.d.ts +29 -21
  24. package/dist/cjs/clusters/basic-information.d.ts.map +1 -1
  25. package/dist/cjs/clusters/basic-information.js +29 -21
  26. package/dist/cjs/clusters/basic-information.js.map +1 -1
  27. package/dist/cjs/clusters/bridged-device-basic-information.d.ts +816 -34
  28. package/dist/cjs/clusters/bridged-device-basic-information.d.ts.map +1 -1
  29. package/dist/cjs/clusters/bridged-device-basic-information.js +182 -29
  30. package/dist/cjs/clusters/bridged-device-basic-information.js.map +2 -2
  31. package/dist/cjs/clusters/channel.d.ts +115 -124
  32. package/dist/cjs/clusters/channel.d.ts.map +1 -1
  33. package/dist/cjs/clusters/channel.js +15 -16
  34. package/dist/cjs/clusters/channel.js.map +1 -1
  35. package/dist/cjs/clusters/color-control.d.ts +3076 -1366
  36. package/dist/cjs/clusters/color-control.d.ts.map +1 -1
  37. package/dist/cjs/clusters/color-control.js +423 -357
  38. package/dist/cjs/clusters/color-control.js.map +2 -2
  39. package/dist/cjs/clusters/commissioner-control.d.ts +268 -0
  40. package/dist/cjs/clusters/commissioner-control.d.ts.map +1 -0
  41. package/dist/cjs/clusters/commissioner-control.js +194 -0
  42. package/dist/cjs/clusters/commissioner-control.js.map +6 -0
  43. package/dist/cjs/clusters/content-control.d.ts +497 -221
  44. package/dist/cjs/clusters/content-control.d.ts.map +1 -1
  45. package/dist/cjs/clusters/content-control.js +59 -41
  46. package/dist/cjs/clusters/content-control.js.map +2 -2
  47. package/dist/cjs/clusters/content-launcher.d.ts +248 -215
  48. package/dist/cjs/clusters/content-launcher.d.ts.map +1 -1
  49. package/dist/cjs/clusters/content-launcher.js +16 -15
  50. package/dist/cjs/clusters/content-launcher.js.map +1 -1
  51. package/dist/cjs/clusters/device-energy-management-mode.d.ts +76 -333
  52. package/dist/cjs/clusters/device-energy-management-mode.d.ts.map +1 -1
  53. package/dist/cjs/clusters/device-energy-management-mode.js +26 -73
  54. package/dist/cjs/clusters/device-energy-management-mode.js.map +1 -1
  55. package/dist/cjs/clusters/device-energy-management.d.ts +1299 -930
  56. package/dist/cjs/clusters/device-energy-management.d.ts.map +1 -1
  57. package/dist/cjs/clusters/device-energy-management.js +189 -160
  58. package/dist/cjs/clusters/device-energy-management.js.map +2 -2
  59. package/dist/cjs/clusters/dishwasher-alarm.d.ts +14 -17
  60. package/dist/cjs/clusters/dishwasher-alarm.d.ts.map +1 -1
  61. package/dist/cjs/clusters/dishwasher-alarm.js +3 -4
  62. package/dist/cjs/clusters/dishwasher-alarm.js.map +1 -1
  63. package/dist/cjs/clusters/dishwasher-mode.d.ts +65 -105
  64. package/dist/cjs/clusters/dishwasher-mode.d.ts.map +1 -1
  65. package/dist/cjs/clusters/dishwasher-mode.js +12 -24
  66. package/dist/cjs/clusters/dishwasher-mode.js.map +1 -1
  67. package/dist/cjs/clusters/door-lock.d.ts +2751 -5427
  68. package/dist/cjs/clusters/door-lock.d.ts.map +1 -1
  69. package/dist/cjs/clusters/door-lock.js +480 -802
  70. package/dist/cjs/clusters/door-lock.js.map +2 -2
  71. package/dist/cjs/clusters/ecosystem-information.d.ts +186 -0
  72. package/dist/cjs/clusters/ecosystem-information.d.ts.map +1 -0
  73. package/dist/cjs/clusters/ecosystem-information.js +154 -0
  74. package/dist/cjs/clusters/ecosystem-information.js.map +6 -0
  75. package/dist/cjs/clusters/electrical-energy-measurement.d.ts +363 -368
  76. package/dist/cjs/clusters/electrical-energy-measurement.d.ts.map +1 -1
  77. package/dist/cjs/clusters/electrical-energy-measurement.js +15 -16
  78. package/dist/cjs/clusters/electrical-energy-measurement.js.map +1 -1
  79. package/dist/cjs/clusters/energy-evse-mode.d.ts +92 -330
  80. package/dist/cjs/clusters/energy-evse-mode.d.ts.map +1 -1
  81. package/dist/cjs/clusters/energy-evse-mode.js +25 -72
  82. package/dist/cjs/clusters/energy-evse-mode.js.map +1 -1
  83. package/dist/cjs/clusters/energy-evse.d.ts +557 -273
  84. package/dist/cjs/clusters/energy-evse.d.ts.map +1 -1
  85. package/dist/cjs/clusters/energy-evse.js +107 -55
  86. package/dist/cjs/clusters/energy-evse.js.map +1 -1
  87. package/dist/cjs/clusters/energy-preference.d.ts +76 -76
  88. package/dist/cjs/clusters/energy-preference.d.ts.map +1 -1
  89. package/dist/cjs/clusters/energy-preference.js +15 -18
  90. package/dist/cjs/clusters/energy-preference.js.map +1 -1
  91. package/dist/cjs/clusters/ethernet-network-diagnostics.d.ts +3 -9
  92. package/dist/cjs/clusters/ethernet-network-diagnostics.d.ts.map +1 -1
  93. package/dist/cjs/clusters/ethernet-network-diagnostics.js +1 -3
  94. package/dist/cjs/clusters/ethernet-network-diagnostics.js.map +1 -1
  95. package/dist/cjs/clusters/fan-control.d.ts +12 -12
  96. package/dist/cjs/clusters/fan-control.js +4 -4
  97. package/dist/cjs/clusters/fixed-label.d.ts +7 -2
  98. package/dist/cjs/clusters/fixed-label.d.ts.map +1 -1
  99. package/dist/cjs/clusters/fixed-label.js.map +1 -1
  100. package/dist/cjs/clusters/flow-measurement.d.ts +4 -4
  101. package/dist/cjs/clusters/flow-measurement.d.ts.map +1 -1
  102. package/dist/cjs/clusters/flow-measurement.js +6 -6
  103. package/dist/cjs/clusters/flow-measurement.js.map +1 -1
  104. package/dist/cjs/clusters/general-commissioning.d.ts +1416 -111
  105. package/dist/cjs/clusters/general-commissioning.d.ts.map +1 -1
  106. package/dist/cjs/clusters/general-commissioning.js +272 -54
  107. package/dist/cjs/clusters/general-commissioning.js.map +2 -2
  108. package/dist/cjs/clusters/general-diagnostics.d.ts +115 -122
  109. package/dist/cjs/clusters/general-diagnostics.d.ts.map +1 -1
  110. package/dist/cjs/clusters/general-diagnostics.js +31 -33
  111. package/dist/cjs/clusters/general-diagnostics.js.map +1 -1
  112. package/dist/cjs/clusters/group-key-management.d.ts +72 -82
  113. package/dist/cjs/clusters/group-key-management.d.ts.map +1 -1
  114. package/dist/cjs/clusters/group-key-management.js +19 -22
  115. package/dist/cjs/clusters/group-key-management.js.map +1 -1
  116. package/dist/cjs/clusters/groups.d.ts +9 -6
  117. package/dist/cjs/clusters/groups.d.ts.map +1 -1
  118. package/dist/cjs/clusters/groups.js +3 -2
  119. package/dist/cjs/clusters/groups.js.map +1 -1
  120. package/dist/cjs/clusters/icd-management.d.ts +223 -66
  121. package/dist/cjs/clusters/icd-management.d.ts.map +1 -1
  122. package/dist/cjs/clusters/icd-management.js +61 -23
  123. package/dist/cjs/clusters/icd-management.js.map +2 -2
  124. package/dist/cjs/clusters/identify.d.ts +12 -13
  125. package/dist/cjs/clusters/identify.d.ts.map +1 -1
  126. package/dist/cjs/clusters/identify.js +9 -10
  127. package/dist/cjs/clusters/identify.js.map +1 -1
  128. package/dist/cjs/clusters/illuminance-measurement.d.ts +7 -8
  129. package/dist/cjs/clusters/illuminance-measurement.d.ts.map +1 -1
  130. package/dist/cjs/clusters/illuminance-measurement.js +9 -10
  131. package/dist/cjs/clusters/illuminance-measurement.js.map +1 -1
  132. package/dist/cjs/clusters/index.d.ts +11 -1
  133. package/dist/cjs/clusters/index.d.ts.map +1 -1
  134. package/dist/cjs/clusters/index.js +33 -3
  135. package/dist/cjs/clusters/index.js.map +1 -1
  136. package/dist/cjs/clusters/joint-fabric-datastore-cluster.d.ts +1239 -0
  137. package/dist/cjs/clusters/joint-fabric-datastore-cluster.d.ts.map +1 -0
  138. package/dist/cjs/clusters/joint-fabric-datastore-cluster.js +490 -0
  139. package/dist/cjs/clusters/joint-fabric-datastore-cluster.js.map +6 -0
  140. package/dist/cjs/clusters/joint-fabric-pki.d.ts +174 -0
  141. package/dist/cjs/clusters/joint-fabric-pki.d.ts.map +1 -0
  142. package/dist/cjs/clusters/joint-fabric-pki.js +120 -0
  143. package/dist/cjs/clusters/joint-fabric-pki.js.map +6 -0
  144. package/dist/cjs/clusters/keypad-input.d.ts +2 -2
  145. package/dist/cjs/clusters/laundry-dryer-controls.d.ts +6 -7
  146. package/dist/cjs/clusters/laundry-dryer-controls.d.ts.map +1 -1
  147. package/dist/cjs/clusters/laundry-dryer-controls.js +5 -9
  148. package/dist/cjs/clusters/laundry-dryer-controls.js.map +1 -1
  149. package/dist/cjs/clusters/laundry-washer-controls.d.ts +74 -62
  150. package/dist/cjs/clusters/laundry-washer-controls.d.ts.map +1 -1
  151. package/dist/cjs/clusters/laundry-washer-controls.js +26 -25
  152. package/dist/cjs/clusters/laundry-washer-controls.js.map +1 -1
  153. package/dist/cjs/clusters/laundry-washer-mode.d.ts +69 -109
  154. package/dist/cjs/clusters/laundry-washer-mode.d.ts.map +1 -1
  155. package/dist/cjs/clusters/laundry-washer-mode.js +13 -25
  156. package/dist/cjs/clusters/laundry-washer-mode.js.map +1 -1
  157. package/dist/cjs/clusters/level-control.d.ts +209 -70
  158. package/dist/cjs/clusters/level-control.d.ts.map +1 -1
  159. package/dist/cjs/clusters/level-control.js +45 -12
  160. package/dist/cjs/clusters/level-control.js.map +1 -1
  161. package/dist/cjs/clusters/localization-configuration.d.ts +5 -6
  162. package/dist/cjs/clusters/localization-configuration.d.ts.map +1 -1
  163. package/dist/cjs/clusters/localization-configuration.js +5 -6
  164. package/dist/cjs/clusters/localization-configuration.js.map +1 -1
  165. package/dist/cjs/clusters/media-input.d.ts +9 -6
  166. package/dist/cjs/clusters/media-input.d.ts.map +1 -1
  167. package/dist/cjs/clusters/media-input.js +3 -2
  168. package/dist/cjs/clusters/media-input.js.map +1 -1
  169. package/dist/cjs/clusters/media-playback.d.ts +29 -24
  170. package/dist/cjs/clusters/media-playback.d.ts.map +1 -1
  171. package/dist/cjs/clusters/media-playback.js +5 -4
  172. package/dist/cjs/clusters/media-playback.js.map +1 -1
  173. package/dist/cjs/clusters/microwave-oven-control.d.ts +54 -48
  174. package/dist/cjs/clusters/microwave-oven-control.d.ts.map +1 -1
  175. package/dist/cjs/clusters/microwave-oven-control.js +19 -17
  176. package/dist/cjs/clusters/microwave-oven-control.js.map +1 -1
  177. package/dist/cjs/clusters/microwave-oven-mode.d.ts +63 -69
  178. package/dist/cjs/clusters/microwave-oven-mode.d.ts.map +1 -1
  179. package/dist/cjs/clusters/microwave-oven-mode.js +14 -11
  180. package/dist/cjs/clusters/microwave-oven-mode.js.map +1 -1
  181. package/dist/cjs/clusters/mode-base.d.ts +27 -46
  182. package/dist/cjs/clusters/mode-base.d.ts.map +1 -1
  183. package/dist/cjs/clusters/mode-base.js +9 -10
  184. package/dist/cjs/clusters/mode-base.js.map +1 -1
  185. package/dist/cjs/clusters/mode-select.d.ts +33 -27
  186. package/dist/cjs/clusters/mode-select.d.ts.map +1 -1
  187. package/dist/cjs/clusters/mode-select.js +14 -13
  188. package/dist/cjs/clusters/mode-select.js.map +1 -1
  189. package/dist/cjs/clusters/network-commissioning.d.ts +263 -240
  190. package/dist/cjs/clusters/network-commissioning.d.ts.map +1 -1
  191. package/dist/cjs/clusters/network-commissioning.js +46 -39
  192. package/dist/cjs/clusters/network-commissioning.js.map +1 -1
  193. package/dist/cjs/clusters/occupancy-sensing.d.ts +1002 -63
  194. package/dist/cjs/clusters/occupancy-sensing.d.ts.map +1 -1
  195. package/dist/cjs/clusters/occupancy-sensing.js +278 -63
  196. package/dist/cjs/clusters/occupancy-sensing.js.map +2 -2
  197. package/dist/cjs/clusters/on-off.d.ts +18 -24
  198. package/dist/cjs/clusters/on-off.d.ts.map +1 -1
  199. package/dist/cjs/clusters/on-off.js +3 -4
  200. package/dist/cjs/clusters/on-off.js.map +1 -1
  201. package/dist/cjs/clusters/operational-credentials.d.ts +98 -85
  202. package/dist/cjs/clusters/operational-credentials.d.ts.map +1 -1
  203. package/dist/cjs/clusters/operational-credentials.js +56 -49
  204. package/dist/cjs/clusters/operational-credentials.js.map +1 -1
  205. package/dist/cjs/clusters/operational-state.d.ts +136 -57
  206. package/dist/cjs/clusters/operational-state.d.ts.map +1 -1
  207. package/dist/cjs/clusters/operational-state.js +62 -36
  208. package/dist/cjs/clusters/operational-state.js.map +2 -2
  209. package/dist/cjs/clusters/ota-software-update-provider.d.ts +43 -42
  210. package/dist/cjs/clusters/ota-software-update-provider.d.ts.map +1 -1
  211. package/dist/cjs/clusters/ota-software-update-provider.js +20 -19
  212. package/dist/cjs/clusters/ota-software-update-provider.js.map +1 -1
  213. package/dist/cjs/clusters/ota-software-update-requestor.d.ts +6 -10
  214. package/dist/cjs/clusters/ota-software-update-requestor.d.ts.map +1 -1
  215. package/dist/cjs/clusters/ota-software-update-requestor.js +4 -6
  216. package/dist/cjs/clusters/ota-software-update-requestor.js.map +1 -1
  217. package/dist/cjs/clusters/oven-cavity-operational-state.d.ts +44 -154
  218. package/dist/cjs/clusters/oven-cavity-operational-state.d.ts.map +1 -1
  219. package/dist/cjs/clusters/oven-cavity-operational-state.js +39 -156
  220. package/dist/cjs/clusters/oven-cavity-operational-state.js.map +1 -1
  221. package/dist/cjs/clusters/oven-mode.d.ts +79 -349
  222. package/dist/cjs/clusters/oven-mode.d.ts.map +1 -1
  223. package/dist/cjs/clusters/oven-mode.js +26 -82
  224. package/dist/cjs/clusters/oven-mode.js.map +1 -1
  225. package/dist/cjs/clusters/power-source.d.ts +169 -44
  226. package/dist/cjs/clusters/power-source.d.ts.map +1 -1
  227. package/dist/cjs/clusters/power-source.js +40 -16
  228. package/dist/cjs/clusters/power-source.js.map +1 -1
  229. package/dist/cjs/clusters/pressure-measurement.js +2 -2
  230. package/dist/cjs/clusters/pressure-measurement.js.map +1 -1
  231. package/dist/cjs/clusters/pump-configuration-and-control.d.ts +73 -63
  232. package/dist/cjs/clusters/pump-configuration-and-control.d.ts.map +1 -1
  233. package/dist/cjs/clusters/pump-configuration-and-control.js +19 -20
  234. package/dist/cjs/clusters/pump-configuration-and-control.js.map +1 -1
  235. package/dist/cjs/clusters/refrigerator-alarm.d.ts +2 -1
  236. package/dist/cjs/clusters/refrigerator-alarm.d.ts.map +1 -1
  237. package/dist/cjs/clusters/refrigerator-alarm.js.map +1 -1
  238. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +59 -91
  239. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  240. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +11 -19
  241. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  242. package/dist/cjs/clusters/relative-humidity-measurement.js +1 -1
  243. package/dist/cjs/clusters/relative-humidity-measurement.js.map +1 -1
  244. package/dist/cjs/clusters/rvc-clean-mode.d.ts +59 -103
  245. package/dist/cjs/clusters/rvc-clean-mode.d.ts.map +1 -1
  246. package/dist/cjs/clusters/rvc-clean-mode.js +11 -15
  247. package/dist/cjs/clusters/rvc-clean-mode.js.map +1 -1
  248. package/dist/cjs/clusters/rvc-operational-state.d.ts +81 -25
  249. package/dist/cjs/clusters/rvc-operational-state.d.ts.map +1 -1
  250. package/dist/cjs/clusters/rvc-operational-state.js +49 -20
  251. package/dist/cjs/clusters/rvc-operational-state.js.map +1 -1
  252. package/dist/cjs/clusters/rvc-run-mode.d.ts +85 -129
  253. package/dist/cjs/clusters/rvc-run-mode.d.ts.map +1 -1
  254. package/dist/cjs/clusters/rvc-run-mode.js +16 -15
  255. package/dist/cjs/clusters/rvc-run-mode.js.map +1 -1
  256. package/dist/cjs/clusters/scenes-management.d.ts +328 -181
  257. package/dist/cjs/clusters/scenes-management.d.ts.map +1 -1
  258. package/dist/cjs/clusters/scenes-management.js +37 -22
  259. package/dist/cjs/clusters/scenes-management.js.map +1 -1
  260. package/dist/cjs/clusters/service-area.d.ts +2052 -0
  261. package/dist/cjs/clusters/service-area.d.ts.map +1 -0
  262. package/dist/cjs/clusters/service-area.js +582 -0
  263. package/dist/cjs/clusters/service-area.js.map +6 -0
  264. package/dist/cjs/clusters/smoke-co-alarm.d.ts +10 -18
  265. package/dist/cjs/clusters/smoke-co-alarm.d.ts.map +1 -1
  266. package/dist/cjs/clusters/smoke-co-alarm.js +2 -3
  267. package/dist/cjs/clusters/smoke-co-alarm.js.map +1 -1
  268. package/dist/cjs/clusters/switch.d.ts +478 -191
  269. package/dist/cjs/clusters/switch.d.ts.map +1 -1
  270. package/dist/cjs/clusters/switch.js +145 -57
  271. package/dist/cjs/clusters/switch.js.map +1 -1
  272. package/dist/cjs/clusters/target-navigator.d.ts +1 -1
  273. package/dist/cjs/clusters/target-navigator.js +1 -1
  274. package/dist/cjs/clusters/thermostat.d.ts +3877 -830
  275. package/dist/cjs/clusters/thermostat.d.ts.map +1 -1
  276. package/dist/cjs/clusters/thermostat.js +841 -159
  277. package/dist/cjs/clusters/thermostat.js.map +2 -2
  278. package/dist/cjs/clusters/thread-border-router-management.d.ts +711 -0
  279. package/dist/cjs/clusters/thread-border-router-management.d.ts.map +1 -0
  280. package/dist/cjs/clusters/thread-border-router-management.js +265 -0
  281. package/dist/cjs/clusters/thread-border-router-management.js.map +6 -0
  282. package/dist/cjs/clusters/thread-network-diagnostics.d.ts +81 -55
  283. package/dist/cjs/clusters/thread-network-diagnostics.d.ts.map +1 -1
  284. package/dist/cjs/clusters/thread-network-diagnostics.js +32 -21
  285. package/dist/cjs/clusters/thread-network-diagnostics.js.map +1 -1
  286. package/dist/cjs/clusters/thread-network-directory.d.ts +250 -0
  287. package/dist/cjs/clusters/thread-network-directory.d.ts.map +1 -0
  288. package/dist/cjs/clusters/thread-network-directory.js +187 -0
  289. package/dist/cjs/clusters/thread-network-directory.js.map +6 -0
  290. package/dist/cjs/clusters/time-synchronization.d.ts +101 -76
  291. package/dist/cjs/clusters/time-synchronization.d.ts.map +1 -1
  292. package/dist/cjs/clusters/time-synchronization.js +30 -23
  293. package/dist/cjs/clusters/time-synchronization.js.map +1 -1
  294. package/dist/cjs/clusters/unit-localization.d.ts +3 -4
  295. package/dist/cjs/clusters/unit-localization.d.ts.map +1 -1
  296. package/dist/cjs/clusters/unit-localization.js.map +1 -1
  297. package/dist/cjs/clusters/user-label.d.ts +2 -1
  298. package/dist/cjs/clusters/user-label.d.ts.map +1 -1
  299. package/dist/cjs/clusters/user-label.js.map +1 -1
  300. package/dist/cjs/clusters/water-heater-management.d.ts +1371 -0
  301. package/dist/cjs/clusters/water-heater-management.d.ts.map +1 -0
  302. package/dist/cjs/clusters/water-heater-management.js +336 -0
  303. package/dist/cjs/clusters/water-heater-management.js.map +6 -0
  304. package/dist/cjs/clusters/water-heater-mode.d.ts +491 -0
  305. package/dist/cjs/clusters/water-heater-mode.d.ts.map +1 -0
  306. package/dist/cjs/clusters/water-heater-mode.js +195 -0
  307. package/dist/cjs/clusters/water-heater-mode.js.map +6 -0
  308. package/dist/cjs/clusters/water-tank-level-monitoring.d.ts +162 -0
  309. package/dist/cjs/clusters/water-tank-level-monitoring.d.ts.map +1 -0
  310. package/dist/cjs/clusters/water-tank-level-monitoring.js +47 -0
  311. package/dist/cjs/clusters/water-tank-level-monitoring.js.map +6 -0
  312. package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts +20 -27
  313. package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts.map +1 -1
  314. package/dist/cjs/clusters/wi-fi-network-diagnostics.js +6 -8
  315. package/dist/cjs/clusters/wi-fi-network-diagnostics.js.map +1 -1
  316. package/dist/cjs/clusters/wi-fi-network-management.d.ts +91 -0
  317. package/dist/cjs/clusters/wi-fi-network-management.d.ts.map +1 -0
  318. package/dist/cjs/clusters/wi-fi-network-management.js +122 -0
  319. package/dist/cjs/clusters/wi-fi-network-management.js.map +6 -0
  320. package/dist/cjs/clusters/window-covering.d.ts +66 -78
  321. package/dist/cjs/clusters/window-covering.d.ts.map +1 -1
  322. package/dist/cjs/clusters/window-covering.js +26 -37
  323. package/dist/cjs/clusters/window-covering.js.map +1 -1
  324. package/dist/cjs/globals/AtomicAttributeStatus.d.ts +34 -0
  325. package/dist/cjs/globals/AtomicAttributeStatus.d.ts.map +1 -0
  326. package/dist/cjs/globals/AtomicAttributeStatus.js +46 -0
  327. package/dist/cjs/globals/AtomicAttributeStatus.js.map +6 -0
  328. package/dist/cjs/globals/AtomicRequestType.d.ts +24 -0
  329. package/dist/cjs/globals/AtomicRequestType.d.ts.map +1 -0
  330. package/dist/cjs/globals/AtomicRequestType.js +35 -0
  331. package/dist/cjs/globals/AtomicRequestType.js.map +6 -0
  332. package/dist/cjs/globals/Locationdesc.d.ts +79 -0
  333. package/dist/cjs/globals/Locationdesc.d.ts.map +1 -0
  334. package/dist/cjs/globals/Locationdesc.js +89 -0
  335. package/dist/cjs/globals/Locationdesc.js.map +6 -0
  336. package/dist/cjs/globals/Priority.d.ts +1 -1
  337. package/dist/cjs/globals/Semtag.d.ts +6 -6
  338. package/dist/cjs/globals/Semtag.js +4 -4
  339. package/dist/cjs/globals/SoftwareVersionCertificationStatus.d.ts +1 -1
  340. package/dist/cjs/globals/Status.d.ts +18 -3
  341. package/dist/cjs/globals/Status.d.ts.map +1 -1
  342. package/dist/cjs/globals/Status.js +3 -1
  343. package/dist/cjs/globals/Status.js.map +1 -1
  344. package/dist/cjs/globals/Tod.d.ts +2 -2
  345. package/dist/cjs/globals/index.d.ts +3 -0
  346. package/dist/cjs/globals/index.d.ts.map +1 -1
  347. package/dist/cjs/globals/index.js +3 -0
  348. package/dist/cjs/globals/index.js.map +1 -1
  349. package/dist/cjs/schema/QrCodeSchema.d.ts.map +1 -1
  350. package/dist/cjs/schema/QrCodeSchema.js +4 -1
  351. package/dist/cjs/schema/QrCodeSchema.js.map +1 -1
  352. package/dist/esm/clusters/access-control.d.ts +3972 -522
  353. package/dist/esm/clusters/access-control.d.ts.map +1 -1
  354. package/dist/esm/clusters/access-control.js +645 -120
  355. package/dist/esm/clusters/access-control.js.map +2 -2
  356. package/dist/esm/clusters/actions.d.ts +10 -9
  357. package/dist/esm/clusters/actions.d.ts.map +1 -1
  358. package/dist/esm/clusters/actions.js +4 -4
  359. package/dist/esm/clusters/actions.js.map +1 -1
  360. package/dist/esm/clusters/administrator-commissioning.d.ts +156 -129
  361. package/dist/esm/clusters/administrator-commissioning.d.ts.map +1 -1
  362. package/dist/esm/clusters/administrator-commissioning.js +40 -35
  363. package/dist/esm/clusters/administrator-commissioning.js.map +1 -1
  364. package/dist/esm/clusters/alarm-base.d.ts +9 -12
  365. package/dist/esm/clusters/alarm-base.d.ts.map +1 -1
  366. package/dist/esm/clusters/alarm-base.js +3 -4
  367. package/dist/esm/clusters/alarm-base.js.map +1 -1
  368. package/dist/esm/clusters/application-launcher.d.ts +27 -15
  369. package/dist/esm/clusters/application-launcher.d.ts.map +1 -1
  370. package/dist/esm/clusters/application-launcher.js +7 -4
  371. package/dist/esm/clusters/application-launcher.js.map +1 -1
  372. package/dist/esm/clusters/ballast-configuration.d.ts +7 -7
  373. package/dist/esm/clusters/ballast-configuration.js +7 -7
  374. package/dist/esm/clusters/basic-information.d.ts +29 -21
  375. package/dist/esm/clusters/basic-information.d.ts.map +1 -1
  376. package/dist/esm/clusters/basic-information.js +29 -21
  377. package/dist/esm/clusters/basic-information.js.map +1 -1
  378. package/dist/esm/clusters/bridged-device-basic-information.d.ts +816 -34
  379. package/dist/esm/clusters/bridged-device-basic-information.d.ts.map +1 -1
  380. package/dist/esm/clusters/bridged-device-basic-information.js +188 -32
  381. package/dist/esm/clusters/bridged-device-basic-information.js.map +2 -2
  382. package/dist/esm/clusters/channel.d.ts +115 -124
  383. package/dist/esm/clusters/channel.d.ts.map +1 -1
  384. package/dist/esm/clusters/channel.js +15 -16
  385. package/dist/esm/clusters/channel.js.map +1 -1
  386. package/dist/esm/clusters/color-control.d.ts +3076 -1366
  387. package/dist/esm/clusters/color-control.d.ts.map +1 -1
  388. package/dist/esm/clusters/color-control.js +424 -358
  389. package/dist/esm/clusters/color-control.js.map +2 -2
  390. package/dist/esm/clusters/commissioner-control.d.ts +268 -0
  391. package/dist/esm/clusters/commissioner-control.d.ts.map +1 -0
  392. package/dist/esm/clusters/commissioner-control.js +174 -0
  393. package/dist/esm/clusters/commissioner-control.js.map +6 -0
  394. package/dist/esm/clusters/content-control.d.ts +497 -221
  395. package/dist/esm/clusters/content-control.d.ts.map +1 -1
  396. package/dist/esm/clusters/content-control.js +60 -42
  397. package/dist/esm/clusters/content-control.js.map +2 -2
  398. package/dist/esm/clusters/content-launcher.d.ts +248 -215
  399. package/dist/esm/clusters/content-launcher.d.ts.map +1 -1
  400. package/dist/esm/clusters/content-launcher.js +16 -15
  401. package/dist/esm/clusters/content-launcher.js.map +1 -1
  402. package/dist/esm/clusters/device-energy-management-mode.d.ts +76 -333
  403. package/dist/esm/clusters/device-energy-management-mode.d.ts.map +1 -1
  404. package/dist/esm/clusters/device-energy-management-mode.js +26 -80
  405. package/dist/esm/clusters/device-energy-management-mode.js.map +1 -1
  406. package/dist/esm/clusters/device-energy-management.d.ts +1299 -930
  407. package/dist/esm/clusters/device-energy-management.d.ts.map +1 -1
  408. package/dist/esm/clusters/device-energy-management.js +189 -160
  409. package/dist/esm/clusters/device-energy-management.js.map +2 -2
  410. package/dist/esm/clusters/dishwasher-alarm.d.ts +14 -17
  411. package/dist/esm/clusters/dishwasher-alarm.d.ts.map +1 -1
  412. package/dist/esm/clusters/dishwasher-alarm.js +3 -4
  413. package/dist/esm/clusters/dishwasher-alarm.js.map +1 -1
  414. package/dist/esm/clusters/dishwasher-mode.d.ts +65 -105
  415. package/dist/esm/clusters/dishwasher-mode.d.ts.map +1 -1
  416. package/dist/esm/clusters/dishwasher-mode.js +13 -25
  417. package/dist/esm/clusters/dishwasher-mode.js.map +1 -1
  418. package/dist/esm/clusters/door-lock.d.ts +2751 -5427
  419. package/dist/esm/clusters/door-lock.d.ts.map +1 -1
  420. package/dist/esm/clusters/door-lock.js +482 -804
  421. package/dist/esm/clusters/door-lock.js.map +2 -2
  422. package/dist/esm/clusters/ecosystem-information.d.ts +186 -0
  423. package/dist/esm/clusters/ecosystem-information.d.ts.map +1 -0
  424. package/dist/esm/clusters/ecosystem-information.js +134 -0
  425. package/dist/esm/clusters/ecosystem-information.js.map +6 -0
  426. package/dist/esm/clusters/electrical-energy-measurement.d.ts +363 -368
  427. package/dist/esm/clusters/electrical-energy-measurement.d.ts.map +1 -1
  428. package/dist/esm/clusters/electrical-energy-measurement.js +15 -16
  429. package/dist/esm/clusters/electrical-energy-measurement.js.map +1 -1
  430. package/dist/esm/clusters/energy-evse-mode.d.ts +92 -330
  431. package/dist/esm/clusters/energy-evse-mode.d.ts.map +1 -1
  432. package/dist/esm/clusters/energy-evse-mode.js +25 -79
  433. package/dist/esm/clusters/energy-evse-mode.js.map +1 -1
  434. package/dist/esm/clusters/energy-evse.d.ts +557 -273
  435. package/dist/esm/clusters/energy-evse.d.ts.map +1 -1
  436. package/dist/esm/clusters/energy-evse.js +107 -55
  437. package/dist/esm/clusters/energy-evse.js.map +1 -1
  438. package/dist/esm/clusters/energy-preference.d.ts +76 -76
  439. package/dist/esm/clusters/energy-preference.d.ts.map +1 -1
  440. package/dist/esm/clusters/energy-preference.js +15 -18
  441. package/dist/esm/clusters/energy-preference.js.map +1 -1
  442. package/dist/esm/clusters/ethernet-network-diagnostics.d.ts +3 -9
  443. package/dist/esm/clusters/ethernet-network-diagnostics.d.ts.map +1 -1
  444. package/dist/esm/clusters/ethernet-network-diagnostics.js +1 -3
  445. package/dist/esm/clusters/ethernet-network-diagnostics.js.map +1 -1
  446. package/dist/esm/clusters/fan-control.d.ts +12 -12
  447. package/dist/esm/clusters/fan-control.js +4 -4
  448. package/dist/esm/clusters/fixed-label.d.ts +7 -2
  449. package/dist/esm/clusters/fixed-label.d.ts.map +1 -1
  450. package/dist/esm/clusters/fixed-label.js.map +1 -1
  451. package/dist/esm/clusters/flow-measurement.d.ts +4 -4
  452. package/dist/esm/clusters/flow-measurement.d.ts.map +1 -1
  453. package/dist/esm/clusters/flow-measurement.js +6 -6
  454. package/dist/esm/clusters/flow-measurement.js.map +1 -1
  455. package/dist/esm/clusters/general-commissioning.d.ts +1416 -111
  456. package/dist/esm/clusters/general-commissioning.d.ts.map +1 -1
  457. package/dist/esm/clusters/general-commissioning.js +274 -56
  458. package/dist/esm/clusters/general-commissioning.js.map +2 -2
  459. package/dist/esm/clusters/general-diagnostics.d.ts +115 -122
  460. package/dist/esm/clusters/general-diagnostics.d.ts.map +1 -1
  461. package/dist/esm/clusters/general-diagnostics.js +31 -33
  462. package/dist/esm/clusters/general-diagnostics.js.map +1 -1
  463. package/dist/esm/clusters/group-key-management.d.ts +72 -82
  464. package/dist/esm/clusters/group-key-management.d.ts.map +1 -1
  465. package/dist/esm/clusters/group-key-management.js +19 -22
  466. package/dist/esm/clusters/group-key-management.js.map +1 -1
  467. package/dist/esm/clusters/groups.d.ts +9 -6
  468. package/dist/esm/clusters/groups.d.ts.map +1 -1
  469. package/dist/esm/clusters/groups.js +3 -2
  470. package/dist/esm/clusters/groups.js.map +1 -1
  471. package/dist/esm/clusters/icd-management.d.ts +223 -66
  472. package/dist/esm/clusters/icd-management.d.ts.map +1 -1
  473. package/dist/esm/clusters/icd-management.js +61 -23
  474. package/dist/esm/clusters/icd-management.js.map +2 -2
  475. package/dist/esm/clusters/identify.d.ts +12 -13
  476. package/dist/esm/clusters/identify.d.ts.map +1 -1
  477. package/dist/esm/clusters/identify.js +9 -10
  478. package/dist/esm/clusters/identify.js.map +1 -1
  479. package/dist/esm/clusters/illuminance-measurement.d.ts +7 -8
  480. package/dist/esm/clusters/illuminance-measurement.d.ts.map +1 -1
  481. package/dist/esm/clusters/illuminance-measurement.js +9 -10
  482. package/dist/esm/clusters/illuminance-measurement.js.map +1 -1
  483. package/dist/esm/clusters/index.d.ts +11 -1
  484. package/dist/esm/clusters/index.d.ts.map +1 -1
  485. package/dist/esm/clusters/index.js +36 -3
  486. package/dist/esm/clusters/index.js.map +1 -1
  487. package/dist/esm/clusters/joint-fabric-datastore-cluster.d.ts +1239 -0
  488. package/dist/esm/clusters/joint-fabric-datastore-cluster.d.ts.map +1 -0
  489. package/dist/esm/clusters/joint-fabric-datastore-cluster.js +470 -0
  490. package/dist/esm/clusters/joint-fabric-datastore-cluster.js.map +6 -0
  491. package/dist/esm/clusters/joint-fabric-pki.d.ts +174 -0
  492. package/dist/esm/clusters/joint-fabric-pki.d.ts.map +1 -0
  493. package/dist/esm/clusters/joint-fabric-pki.js +100 -0
  494. package/dist/esm/clusters/joint-fabric-pki.js.map +6 -0
  495. package/dist/esm/clusters/keypad-input.d.ts +2 -2
  496. package/dist/esm/clusters/laundry-dryer-controls.d.ts +6 -7
  497. package/dist/esm/clusters/laundry-dryer-controls.d.ts.map +1 -1
  498. package/dist/esm/clusters/laundry-dryer-controls.js +6 -10
  499. package/dist/esm/clusters/laundry-dryer-controls.js.map +1 -1
  500. package/dist/esm/clusters/laundry-washer-controls.d.ts +74 -62
  501. package/dist/esm/clusters/laundry-washer-controls.d.ts.map +1 -1
  502. package/dist/esm/clusters/laundry-washer-controls.js +26 -25
  503. package/dist/esm/clusters/laundry-washer-controls.js.map +1 -1
  504. package/dist/esm/clusters/laundry-washer-mode.d.ts +69 -109
  505. package/dist/esm/clusters/laundry-washer-mode.d.ts.map +1 -1
  506. package/dist/esm/clusters/laundry-washer-mode.js +14 -26
  507. package/dist/esm/clusters/laundry-washer-mode.js.map +1 -1
  508. package/dist/esm/clusters/level-control.d.ts +209 -70
  509. package/dist/esm/clusters/level-control.d.ts.map +1 -1
  510. package/dist/esm/clusters/level-control.js +45 -12
  511. package/dist/esm/clusters/level-control.js.map +1 -1
  512. package/dist/esm/clusters/localization-configuration.d.ts +5 -6
  513. package/dist/esm/clusters/localization-configuration.d.ts.map +1 -1
  514. package/dist/esm/clusters/localization-configuration.js +5 -6
  515. package/dist/esm/clusters/localization-configuration.js.map +1 -1
  516. package/dist/esm/clusters/media-input.d.ts +9 -6
  517. package/dist/esm/clusters/media-input.d.ts.map +1 -1
  518. package/dist/esm/clusters/media-input.js +3 -2
  519. package/dist/esm/clusters/media-input.js.map +1 -1
  520. package/dist/esm/clusters/media-playback.d.ts +29 -24
  521. package/dist/esm/clusters/media-playback.d.ts.map +1 -1
  522. package/dist/esm/clusters/media-playback.js +5 -4
  523. package/dist/esm/clusters/media-playback.js.map +1 -1
  524. package/dist/esm/clusters/microwave-oven-control.d.ts +54 -48
  525. package/dist/esm/clusters/microwave-oven-control.d.ts.map +1 -1
  526. package/dist/esm/clusters/microwave-oven-control.js +19 -17
  527. package/dist/esm/clusters/microwave-oven-control.js.map +1 -1
  528. package/dist/esm/clusters/microwave-oven-mode.d.ts +63 -69
  529. package/dist/esm/clusters/microwave-oven-mode.d.ts.map +1 -1
  530. package/dist/esm/clusters/microwave-oven-mode.js +14 -11
  531. package/dist/esm/clusters/microwave-oven-mode.js.map +1 -1
  532. package/dist/esm/clusters/mode-base.d.ts +27 -46
  533. package/dist/esm/clusters/mode-base.d.ts.map +1 -1
  534. package/dist/esm/clusters/mode-base.js +9 -10
  535. package/dist/esm/clusters/mode-base.js.map +1 -1
  536. package/dist/esm/clusters/mode-select.d.ts +33 -27
  537. package/dist/esm/clusters/mode-select.d.ts.map +1 -1
  538. package/dist/esm/clusters/mode-select.js +14 -13
  539. package/dist/esm/clusters/mode-select.js.map +1 -1
  540. package/dist/esm/clusters/network-commissioning.d.ts +263 -240
  541. package/dist/esm/clusters/network-commissioning.d.ts.map +1 -1
  542. package/dist/esm/clusters/network-commissioning.js +46 -39
  543. package/dist/esm/clusters/network-commissioning.js.map +1 -1
  544. package/dist/esm/clusters/occupancy-sensing.d.ts +1002 -63
  545. package/dist/esm/clusters/occupancy-sensing.d.ts.map +1 -1
  546. package/dist/esm/clusters/occupancy-sensing.js +287 -65
  547. package/dist/esm/clusters/occupancy-sensing.js.map +2 -2
  548. package/dist/esm/clusters/on-off.d.ts +18 -24
  549. package/dist/esm/clusters/on-off.d.ts.map +1 -1
  550. package/dist/esm/clusters/on-off.js +3 -4
  551. package/dist/esm/clusters/on-off.js.map +1 -1
  552. package/dist/esm/clusters/operational-credentials.d.ts +98 -85
  553. package/dist/esm/clusters/operational-credentials.d.ts.map +1 -1
  554. package/dist/esm/clusters/operational-credentials.js +56 -49
  555. package/dist/esm/clusters/operational-credentials.js.map +1 -1
  556. package/dist/esm/clusters/operational-state.d.ts +136 -57
  557. package/dist/esm/clusters/operational-state.d.ts.map +1 -1
  558. package/dist/esm/clusters/operational-state.js +63 -37
  559. package/dist/esm/clusters/operational-state.js.map +2 -2
  560. package/dist/esm/clusters/ota-software-update-provider.d.ts +43 -42
  561. package/dist/esm/clusters/ota-software-update-provider.d.ts.map +1 -1
  562. package/dist/esm/clusters/ota-software-update-provider.js +20 -19
  563. package/dist/esm/clusters/ota-software-update-provider.js.map +1 -1
  564. package/dist/esm/clusters/ota-software-update-requestor.d.ts +6 -10
  565. package/dist/esm/clusters/ota-software-update-requestor.d.ts.map +1 -1
  566. package/dist/esm/clusters/ota-software-update-requestor.js +4 -6
  567. package/dist/esm/clusters/ota-software-update-requestor.js.map +1 -1
  568. package/dist/esm/clusters/oven-cavity-operational-state.d.ts +44 -154
  569. package/dist/esm/clusters/oven-cavity-operational-state.d.ts.map +1 -1
  570. package/dist/esm/clusters/oven-cavity-operational-state.js +41 -166
  571. package/dist/esm/clusters/oven-cavity-operational-state.js.map +1 -1
  572. package/dist/esm/clusters/oven-mode.d.ts +79 -349
  573. package/dist/esm/clusters/oven-mode.d.ts.map +1 -1
  574. package/dist/esm/clusters/oven-mode.js +26 -89
  575. package/dist/esm/clusters/oven-mode.js.map +1 -1
  576. package/dist/esm/clusters/power-source.d.ts +169 -44
  577. package/dist/esm/clusters/power-source.d.ts.map +1 -1
  578. package/dist/esm/clusters/power-source.js +40 -16
  579. package/dist/esm/clusters/power-source.js.map +1 -1
  580. package/dist/esm/clusters/pressure-measurement.js +2 -2
  581. package/dist/esm/clusters/pressure-measurement.js.map +1 -1
  582. package/dist/esm/clusters/pump-configuration-and-control.d.ts +73 -63
  583. package/dist/esm/clusters/pump-configuration-and-control.d.ts.map +1 -1
  584. package/dist/esm/clusters/pump-configuration-and-control.js +19 -20
  585. package/dist/esm/clusters/pump-configuration-and-control.js.map +1 -1
  586. package/dist/esm/clusters/refrigerator-alarm.d.ts +2 -1
  587. package/dist/esm/clusters/refrigerator-alarm.d.ts.map +1 -1
  588. package/dist/esm/clusters/refrigerator-alarm.js.map +1 -1
  589. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +59 -91
  590. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  591. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +12 -20
  592. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  593. package/dist/esm/clusters/relative-humidity-measurement.js +1 -1
  594. package/dist/esm/clusters/relative-humidity-measurement.js.map +1 -1
  595. package/dist/esm/clusters/rvc-clean-mode.d.ts +59 -103
  596. package/dist/esm/clusters/rvc-clean-mode.d.ts.map +1 -1
  597. package/dist/esm/clusters/rvc-clean-mode.js +11 -15
  598. package/dist/esm/clusters/rvc-clean-mode.js.map +1 -1
  599. package/dist/esm/clusters/rvc-operational-state.d.ts +81 -25
  600. package/dist/esm/clusters/rvc-operational-state.d.ts.map +1 -1
  601. package/dist/esm/clusters/rvc-operational-state.js +49 -20
  602. package/dist/esm/clusters/rvc-operational-state.js.map +1 -1
  603. package/dist/esm/clusters/rvc-run-mode.d.ts +85 -129
  604. package/dist/esm/clusters/rvc-run-mode.d.ts.map +1 -1
  605. package/dist/esm/clusters/rvc-run-mode.js +16 -15
  606. package/dist/esm/clusters/rvc-run-mode.js.map +1 -1
  607. package/dist/esm/clusters/scenes-management.d.ts +328 -181
  608. package/dist/esm/clusters/scenes-management.d.ts.map +1 -1
  609. package/dist/esm/clusters/scenes-management.js +37 -22
  610. package/dist/esm/clusters/scenes-management.js.map +1 -1
  611. package/dist/esm/clusters/service-area.d.ts +2052 -0
  612. package/dist/esm/clusters/service-area.d.ts.map +1 -0
  613. package/dist/esm/clusters/service-area.js +562 -0
  614. package/dist/esm/clusters/service-area.js.map +6 -0
  615. package/dist/esm/clusters/smoke-co-alarm.d.ts +10 -18
  616. package/dist/esm/clusters/smoke-co-alarm.d.ts.map +1 -1
  617. package/dist/esm/clusters/smoke-co-alarm.js +2 -3
  618. package/dist/esm/clusters/smoke-co-alarm.js.map +1 -1
  619. package/dist/esm/clusters/switch.d.ts +478 -191
  620. package/dist/esm/clusters/switch.d.ts.map +1 -1
  621. package/dist/esm/clusters/switch.js +145 -57
  622. package/dist/esm/clusters/switch.js.map +1 -1
  623. package/dist/esm/clusters/target-navigator.d.ts +1 -1
  624. package/dist/esm/clusters/target-navigator.js +1 -1
  625. package/dist/esm/clusters/thermostat.d.ts +3877 -830
  626. package/dist/esm/clusters/thermostat.d.ts.map +1 -1
  627. package/dist/esm/clusters/thermostat.js +842 -160
  628. package/dist/esm/clusters/thermostat.js.map +2 -2
  629. package/dist/esm/clusters/thread-border-router-management.d.ts +711 -0
  630. package/dist/esm/clusters/thread-border-router-management.d.ts.map +1 -0
  631. package/dist/esm/clusters/thread-border-router-management.js +245 -0
  632. package/dist/esm/clusters/thread-border-router-management.js.map +6 -0
  633. package/dist/esm/clusters/thread-network-diagnostics.d.ts +81 -55
  634. package/dist/esm/clusters/thread-network-diagnostics.d.ts.map +1 -1
  635. package/dist/esm/clusters/thread-network-diagnostics.js +32 -21
  636. package/dist/esm/clusters/thread-network-diagnostics.js.map +1 -1
  637. package/dist/esm/clusters/thread-network-directory.d.ts +250 -0
  638. package/dist/esm/clusters/thread-network-directory.d.ts.map +1 -0
  639. package/dist/esm/clusters/thread-network-directory.js +167 -0
  640. package/dist/esm/clusters/thread-network-directory.js.map +6 -0
  641. package/dist/esm/clusters/time-synchronization.d.ts +101 -76
  642. package/dist/esm/clusters/time-synchronization.d.ts.map +1 -1
  643. package/dist/esm/clusters/time-synchronization.js +30 -23
  644. package/dist/esm/clusters/time-synchronization.js.map +1 -1
  645. package/dist/esm/clusters/unit-localization.d.ts +3 -4
  646. package/dist/esm/clusters/unit-localization.d.ts.map +1 -1
  647. package/dist/esm/clusters/unit-localization.js.map +1 -1
  648. package/dist/esm/clusters/user-label.d.ts +2 -1
  649. package/dist/esm/clusters/user-label.d.ts.map +1 -1
  650. package/dist/esm/clusters/user-label.js.map +1 -1
  651. package/dist/esm/clusters/water-heater-management.d.ts +1371 -0
  652. package/dist/esm/clusters/water-heater-management.d.ts.map +1 -0
  653. package/dist/esm/clusters/water-heater-management.js +325 -0
  654. package/dist/esm/clusters/water-heater-management.js.map +6 -0
  655. package/dist/esm/clusters/water-heater-mode.d.ts +491 -0
  656. package/dist/esm/clusters/water-heater-mode.d.ts.map +1 -0
  657. package/dist/esm/clusters/water-heater-mode.js +175 -0
  658. package/dist/esm/clusters/water-heater-mode.js.map +6 -0
  659. package/dist/esm/clusters/water-tank-level-monitoring.d.ts +162 -0
  660. package/dist/esm/clusters/water-tank-level-monitoring.d.ts.map +1 -0
  661. package/dist/esm/clusters/water-tank-level-monitoring.js +27 -0
  662. package/dist/esm/clusters/water-tank-level-monitoring.js.map +6 -0
  663. package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts +20 -27
  664. package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts.map +1 -1
  665. package/dist/esm/clusters/wi-fi-network-diagnostics.js +6 -8
  666. package/dist/esm/clusters/wi-fi-network-diagnostics.js.map +1 -1
  667. package/dist/esm/clusters/wi-fi-network-management.d.ts +91 -0
  668. package/dist/esm/clusters/wi-fi-network-management.d.ts.map +1 -0
  669. package/dist/esm/clusters/wi-fi-network-management.js +102 -0
  670. package/dist/esm/clusters/wi-fi-network-management.js.map +6 -0
  671. package/dist/esm/clusters/window-covering.d.ts +66 -78
  672. package/dist/esm/clusters/window-covering.d.ts.map +1 -1
  673. package/dist/esm/clusters/window-covering.js +26 -37
  674. package/dist/esm/clusters/window-covering.js.map +1 -1
  675. package/dist/esm/globals/AtomicAttributeStatus.d.ts +34 -0
  676. package/dist/esm/globals/AtomicAttributeStatus.d.ts.map +1 -0
  677. package/dist/esm/globals/AtomicAttributeStatus.js +26 -0
  678. package/dist/esm/globals/AtomicAttributeStatus.js.map +6 -0
  679. package/dist/esm/globals/AtomicRequestType.d.ts +24 -0
  680. package/dist/esm/globals/AtomicRequestType.d.ts.map +1 -0
  681. package/dist/esm/globals/AtomicRequestType.js +15 -0
  682. package/dist/esm/globals/AtomicRequestType.js.map +6 -0
  683. package/dist/esm/globals/Locationdesc.d.ts +79 -0
  684. package/dist/esm/globals/Locationdesc.d.ts.map +1 -0
  685. package/dist/esm/globals/Locationdesc.js +69 -0
  686. package/dist/esm/globals/Locationdesc.js.map +6 -0
  687. package/dist/esm/globals/Priority.d.ts +1 -1
  688. package/dist/esm/globals/Semtag.d.ts +6 -6
  689. package/dist/esm/globals/Semtag.js +4 -4
  690. package/dist/esm/globals/SoftwareVersionCertificationStatus.d.ts +1 -1
  691. package/dist/esm/globals/Status.d.ts +18 -3
  692. package/dist/esm/globals/Status.d.ts.map +1 -1
  693. package/dist/esm/globals/Status.js +3 -1
  694. package/dist/esm/globals/Status.js.map +1 -1
  695. package/dist/esm/globals/Tod.d.ts +2 -2
  696. package/dist/esm/globals/index.d.ts +3 -0
  697. package/dist/esm/globals/index.d.ts.map +1 -1
  698. package/dist/esm/globals/index.js +3 -0
  699. package/dist/esm/globals/index.js.map +1 -1
  700. package/dist/esm/schema/QrCodeSchema.d.ts.map +1 -1
  701. package/dist/esm/schema/QrCodeSchema.js +4 -1
  702. package/dist/esm/schema/QrCodeSchema.js.map +1 -1
  703. package/package.json +5 -5
  704. package/src/clusters/access-control.ts +926 -171
  705. package/src/clusters/actions.ts +12 -11
  706. package/src/clusters/administrator-commissioning.ts +54 -35
  707. package/src/clusters/alarm-base.ts +3 -4
  708. package/src/clusters/application-launcher.ts +22 -7
  709. package/src/clusters/ballast-configuration.ts +7 -7
  710. package/src/clusters/basic-information.ts +29 -21
  711. package/src/clusters/bridged-device-basic-information.ts +264 -41
  712. package/src/clusters/channel.ts +20 -17
  713. package/src/clusters/color-control.ts +589 -426
  714. package/src/clusters/commissioner-control.ts +282 -0
  715. package/src/clusters/content-control.ts +48 -54
  716. package/src/clusters/content-launcher.ts +16 -15
  717. package/src/clusters/device-energy-management-mode.ts +63 -161
  718. package/src/clusters/device-energy-management.ts +246 -193
  719. package/src/clusters/dishwasher-alarm.ts +5 -5
  720. package/src/clusters/dishwasher-mode.ts +46 -87
  721. package/src/clusters/door-lock.ts +786 -1235
  722. package/src/clusters/ecosystem-information.ts +200 -0
  723. package/src/clusters/electrical-energy-measurement.ts +15 -16
  724. package/src/clusters/energy-evse-mode.ts +81 -158
  725. package/src/clusters/energy-evse.ts +138 -72
  726. package/src/clusters/energy-preference.ts +34 -28
  727. package/src/clusters/ethernet-network-diagnostics.ts +1 -3
  728. package/src/clusters/fan-control.ts +5 -5
  729. package/src/clusters/fixed-label.ts +7 -2
  730. package/src/clusters/flow-measurement.ts +6 -6
  731. package/src/clusters/general-commissioning.ts +396 -96
  732. package/src/clusters/general-diagnostics.ts +31 -33
  733. package/src/clusters/group-key-management.ts +22 -24
  734. package/src/clusters/groups.ts +3 -2
  735. package/src/clusters/icd-management.ts +88 -31
  736. package/src/clusters/identify.ts +9 -10
  737. package/src/clusters/illuminance-measurement.ts +9 -10
  738. package/src/clusters/index.ts +14 -1
  739. package/src/clusters/joint-fabric-datastore-cluster.ts +657 -0
  740. package/src/clusters/joint-fabric-pki.ts +202 -0
  741. package/src/clusters/keypad-input.ts +2 -2
  742. package/src/clusters/laundry-dryer-controls.ts +6 -10
  743. package/src/clusters/laundry-washer-controls.ts +28 -27
  744. package/src/clusters/laundry-washer-mode.ts +49 -90
  745. package/src/clusters/level-control.ts +45 -12
  746. package/src/clusters/localization-configuration.ts +5 -6
  747. package/src/clusters/media-input.ts +3 -2
  748. package/src/clusters/media-playback.ts +9 -7
  749. package/src/clusters/microwave-oven-control.ts +19 -17
  750. package/src/clusters/microwave-oven-mode.ts +42 -61
  751. package/src/clusters/mode-base.ts +16 -33
  752. package/src/clusters/mode-select.ts +17 -14
  753. package/src/clusters/network-commissioning.ts +47 -40
  754. package/src/clusters/occupancy-sensing.ts +433 -72
  755. package/src/clusters/on-off.ts +6 -8
  756. package/src/clusters/operational-credentials.ts +54 -47
  757. package/src/clusters/operational-state.ts +136 -58
  758. package/src/clusters/ota-software-update-provider.ts +23 -23
  759. package/src/clusters/ota-software-update-requestor.ts +4 -6
  760. package/src/clusters/oven-cavity-operational-state.ts +43 -171
  761. package/src/clusters/oven-mode.ts +76 -178
  762. package/src/clusters/power-source.ts +45 -21
  763. package/src/clusters/pressure-measurement.ts +2 -2
  764. package/src/clusters/pump-configuration-and-control.ts +35 -23
  765. package/src/clusters/refrigerator-alarm.ts +2 -1
  766. package/src/clusters/refrigerator-and-temperature-controlled-cabinet-mode.ts +41 -78
  767. package/src/clusters/relative-humidity-measurement.ts +1 -1
  768. package/src/clusters/rvc-clean-mode.ts +42 -101
  769. package/src/clusters/rvc-operational-state.ts +87 -25
  770. package/src/clusters/rvc-run-mode.ts +62 -126
  771. package/src/clusters/scenes-management.ts +38 -23
  772. package/src/clusters/service-area.ts +904 -0
  773. package/src/clusters/smoke-co-alarm.ts +6 -12
  774. package/src/clusters/switch.ts +177 -78
  775. package/src/clusters/target-navigator.ts +1 -1
  776. package/src/clusters/thermostat.ts +1245 -214
  777. package/src/clusters/thread-border-router-management.ts +355 -0
  778. package/src/clusters/thread-network-diagnostics.ts +34 -21
  779. package/src/clusters/thread-network-directory.ts +256 -0
  780. package/src/clusters/time-synchronization.ts +30 -23
  781. package/src/clusters/unit-localization.ts +3 -4
  782. package/src/clusters/user-label.ts +2 -1
  783. package/src/clusters/water-heater-management.ts +457 -0
  784. package/src/clusters/water-heater-mode.ts +301 -0
  785. package/src/clusters/water-tank-level-monitoring.ts +50 -0
  786. package/src/clusters/wi-fi-network-diagnostics.ts +6 -8
  787. package/src/clusters/wi-fi-network-management.ts +119 -0
  788. package/src/clusters/window-covering.ts +26 -37
  789. package/src/globals/AtomicAttributeStatus.ts +41 -0
  790. package/src/globals/AtomicRequestType.ts +27 -0
  791. package/src/globals/Locationdesc.ts +88 -0
  792. package/src/globals/Priority.ts +1 -1
  793. package/src/globals/Semtag.ts +6 -6
  794. package/src/globals/SoftwareVersionCertificationStatus.ts +1 -1
  795. package/src/globals/Status.ts +20 -3
  796. package/src/globals/Tod.ts +2 -2
  797. package/src/globals/index.ts +3 -0
  798. package/src/schema/QrCodeSchema.ts +7 -2
  799. package/dist/cjs/clusters/pulse-width-modulation.d.ts +0 -2023
  800. package/dist/cjs/clusters/pulse-width-modulation.d.ts.map +0 -1
  801. package/dist/cjs/clusters/pulse-width-modulation.js +0 -51
  802. package/dist/cjs/clusters/pulse-width-modulation.js.map +0 -6
  803. package/dist/esm/clusters/pulse-width-modulation.d.ts +0 -2023
  804. package/dist/esm/clusters/pulse-width-modulation.d.ts.map +0 -1
  805. package/dist/esm/clusters/pulse-width-modulation.js +0 -31
  806. package/dist/esm/clusters/pulse-width-modulation.js.map +0 -6
  807. package/src/clusters/pulse-width-modulation.ts +0 -54
@@ -21,11 +21,13 @@ import { OccupancySensing } from "./occupancy-sensing.js";
21
21
  import { TlvUInt8, TlvBitmap, TlvInt16, TlvInt8, TlvEnum, TlvUInt16, TlvEpochS, TlvUInt32 } from "../tlv/TlvNumber.js";
22
22
  import { BitsFromPartial, BitFlag, BitField } from "../schema/BitmapSchema.js";
23
23
  import { AccessLevel } from "#model";
24
- import { TlvField, TlvObject } from "../tlv/TlvObject.js";
24
+ import { TlvField, TlvObject, TlvOptionalField } from "../tlv/TlvObject.js";
25
25
  import { TlvArray } from "../tlv/TlvArray.js";
26
26
  import { TlvNullable } from "../tlv/TlvNullable.js";
27
27
  import { TypeFromSchema } from "../tlv/TlvSchema.js";
28
28
  import { TlvNoArguments } from "../tlv/TlvNoArguments.js";
29
+ import { TlvByteString, TlvString } from "../tlv/TlvString.js";
30
+ import { TlvBoolean } from "../tlv/TlvBoolean.js";
29
31
  import { Identity } from "#general";
30
32
  import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
31
33
 
@@ -87,11 +89,25 @@ export namespace Thermostat {
87
89
  *
88
90
  * @see {@link MatterSpecification.v13.Cluster} § 4.3.4.1
89
91
  */
90
- LocalTemperatureNotExposed = "LocalTemperatureNotExposed"
92
+ LocalTemperatureNotExposed = "LocalTemperatureNotExposed",
93
+
94
+ /**
95
+ * MatterScheduleConfiguration (MSCH)
96
+ *
97
+ * Supports enhanced schedules
98
+ */
99
+ MatterScheduleConfiguration = "MatterScheduleConfiguration",
100
+
101
+ /**
102
+ * Presets (PRES)
103
+ *
104
+ * Thermostat supports setpoint presets
105
+ */
106
+ Presets = "Presets"
91
107
  }
92
108
 
93
109
  /**
94
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.22
110
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.26
95
111
  */
96
112
  export enum ThermostatRunningMode {
97
113
  /**
@@ -111,7 +127,7 @@ export namespace Thermostat {
111
127
  }
112
128
 
113
129
  /**
114
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.20
130
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.24
115
131
  */
116
132
  export enum StartOfWeek {
117
133
  Sunday = 0,
@@ -124,7 +140,7 @@ export namespace Thermostat {
124
140
  }
125
141
 
126
142
  /**
127
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.10
143
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.13
128
144
  */
129
145
  export const ScheduleDayOfWeek = {
130
146
  /**
@@ -169,7 +185,7 @@ export namespace Thermostat {
169
185
  };
170
186
 
171
187
  /**
172
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.11
188
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.14
173
189
  */
174
190
  export const ScheduleMode = {
175
191
  /**
@@ -186,7 +202,7 @@ export namespace Thermostat {
186
202
  /**
187
203
  * This represents a single transition in a Thermostat schedule
188
204
  *
189
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.24
205
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.30
190
206
  */
191
207
  export const TlvWeeklyScheduleTransition = TlvObject({
192
208
  /**
@@ -195,21 +211,21 @@ export namespace Thermostat {
195
211
  * will be represented by 360 minutes since midnight and 11:30pm will be represented by 1410 minutes since
196
212
  * midnight.
197
213
  *
198
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.24.1
214
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.30.1
199
215
  */
200
216
  transitionTime: TlvField(0, TlvUInt16.bound({ max: 1439 })),
201
217
 
202
218
  /**
203
219
  * This field shall represent the heat setpoint to be applied at this associated transition start time.
204
220
  *
205
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.24.2
221
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.30.2
206
222
  */
207
223
  heatSetpoint: TlvField(1, TlvNullable(TlvInt16)),
208
224
 
209
225
  /**
210
226
  * This field shall represent the cool setpoint to be applied at this associated transition start time.
211
227
  *
212
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.24.3
228
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.30.3
213
229
  */
214
230
  coolSetpoint: TlvField(2, TlvNullable(TlvInt16))
215
231
  });
@@ -217,14 +233,14 @@ export namespace Thermostat {
217
233
  /**
218
234
  * This represents a single transition in a Thermostat schedule
219
235
  *
220
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.24
236
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.30
221
237
  */
222
238
  export interface WeeklyScheduleTransition extends TypeFromSchema<typeof TlvWeeklyScheduleTransition> {}
223
239
 
224
240
  /**
225
241
  * Input to the Thermostat setWeeklySchedule command
226
242
  *
227
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4
243
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.2
228
244
  */
229
245
  export const TlvSetWeeklyScheduleRequest = TlvObject({
230
246
  /**
@@ -232,7 +248,7 @@ export namespace Thermostat {
232
248
  * device supports more than 10 transitions in its schedule they can send this by sending more than 1 “Set
233
249
  * Weekly Schedule” command, each containing the separate information that the device needs to set.
234
250
  *
235
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4.1
251
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.2.1
236
252
  */
237
253
  numberOfTransitionsForSequence: TlvField(0, TlvUInt8),
238
254
 
@@ -245,7 +261,7 @@ export namespace Thermostat {
245
261
  * Each setpoint transition will begin with the day of week for this transition. There can be up to 10
246
262
  * transitions for each command.
247
263
  *
248
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4.2
264
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.2.2
249
265
  */
250
266
  dayOfWeekForSequence: TlvField(1, TlvBitmap(TlvUInt8, ScheduleDayOfWeek)),
251
267
 
@@ -270,14 +286,14 @@ export namespace Thermostat {
270
286
  * Both bits must be respected, even if the HEAT or COOL feature is not supported, to ensure the command is
271
287
  * decoded and handled correctly.
272
288
  *
273
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4.3
289
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.2.3
274
290
  */
275
291
  modeForSequence: TlvField(2, TlvBitmap(TlvUInt8, ScheduleMode)),
276
292
 
277
293
  /**
278
294
  * This field shall contain the list of setpoint transitions used to update the specified daily schedules
279
295
  *
280
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4.4
296
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.2.4
281
297
  */
282
298
  transitions: TlvField(3, TlvArray(TlvWeeklyScheduleTransition, { maxLength: 10 }))
283
299
  });
@@ -285,21 +301,21 @@ export namespace Thermostat {
285
301
  /**
286
302
  * Input to the Thermostat setWeeklySchedule command
287
303
  *
288
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4
304
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.2
289
305
  */
290
306
  export interface SetWeeklyScheduleRequest extends TypeFromSchema<typeof TlvSetWeeklyScheduleRequest> {}
291
307
 
292
308
  /**
293
309
  * Input to the Thermostat getWeeklySchedule command
294
310
  *
295
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.5
311
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.3
296
312
  */
297
313
  export const TlvGetWeeklyScheduleRequest = TlvObject({
298
314
  /**
299
315
  * This field shall indicate the number of days the client would like to return the setpoint values for and
300
316
  * could be any combination of single days or the entire week.
301
317
  *
302
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.5.1
318
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.3.1
303
319
  */
304
320
  daysToReturn: TlvField(0, TlvBitmap(TlvUInt8, ScheduleDayOfWeek)),
305
321
 
@@ -307,7 +323,7 @@ export namespace Thermostat {
307
323
  * This field shall indicate the mode the client would like to return the set point values for and could be any
308
324
  * combination of heat only, cool only or heat & cool.
309
325
  *
310
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.5.2
326
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.3.2
311
327
  */
312
328
  modeToReturn: TlvField(1, TlvBitmap(TlvUInt8, ScheduleMode))
313
329
  });
@@ -315,14 +331,14 @@ export namespace Thermostat {
315
331
  /**
316
332
  * Input to the Thermostat getWeeklySchedule command
317
333
  *
318
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.5
334
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.3
319
335
  */
320
336
  export interface GetWeeklyScheduleRequest extends TypeFromSchema<typeof TlvGetWeeklyScheduleRequest> {}
321
337
 
322
338
  /**
323
339
  * This command has the same payload format as the Set Weekly Schedule.
324
340
  *
325
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.6
341
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4
326
342
  */
327
343
  export const TlvGetWeeklyScheduleResponse = TlvObject({
328
344
  numberOfTransitionsForSequence: TlvField(0, TlvUInt8),
@@ -334,10 +350,611 @@ export namespace Thermostat {
334
350
  /**
335
351
  * This command has the same payload format as the Set Weekly Schedule.
336
352
  *
337
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.6
353
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4
338
354
  */
339
355
  export interface GetWeeklyScheduleResponse extends TypeFromSchema<typeof TlvGetWeeklyScheduleResponse> {}
340
356
 
357
+ /**
358
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.22
359
+ */
360
+ export enum PresetScenario {
361
+ /**
362
+ * The thermostat-controlled area is occupied
363
+ *
364
+ * This value shall indicate the preset for periods when the thermostat’s temperature-controlled area is
365
+ * occupied. It is intended for thermostats that can automatically determine occupancy.
366
+ *
367
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.22.2
368
+ */
369
+ Occupied = 1,
370
+
371
+ /**
372
+ * The thermostat-controlled area is unoccupied
373
+ *
374
+ * This value shall indicate the preset for periods when the thermostat’s temperature-controlled area is
375
+ * unoccupied. It is intended for thermostats that can automatically determine occupancy.
376
+ *
377
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.22.3
378
+ */
379
+ Unoccupied = 2,
380
+
381
+ /**
382
+ * Users are likely to be sleeping
383
+ *
384
+ * This value shall indicate the preset for periods when users are likely to be asleep.
385
+ *
386
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.22.4
387
+ */
388
+ Sleep = 3,
389
+
390
+ /**
391
+ * Users are likely to be waking up
392
+ *
393
+ * This value shall indicate the preset for periods when users are likely to be waking up.
394
+ *
395
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.22.5
396
+ */
397
+ Wake = 4,
398
+
399
+ /**
400
+ * Users are on vacation
401
+ *
402
+ * This value shall indicate the preset for periods when users are on vacation, or otherwise out-of- home for
403
+ * extended periods of time.
404
+ *
405
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.22.6
406
+ */
407
+ Vacation = 5,
408
+
409
+ /**
410
+ * Users are likely to be going to sleep
411
+ *
412
+ * This value shall indicate the preset for periods when users are likely to be going to sleep.
413
+ *
414
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.22.7
415
+ */
416
+ GoingToSleep = 6,
417
+
418
+ /**
419
+ * Custom presets
420
+ *
421
+ * This value shall indicate a free-form preset; when set, the Name field on PresetStruct shall NOT be null.
422
+ *
423
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.22.8
424
+ */
425
+ UserDefined = 254
426
+ }
427
+
428
+ /**
429
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.8
430
+ */
431
+ export const PresetTypeFeatures = {
432
+ /**
433
+ * Preset may be automatically activated by the thermostat
434
+ */
435
+ automatic: BitFlag(0),
436
+
437
+ /**
438
+ * Preset supports user- provided names
439
+ */
440
+ supportsNames: BitFlag(1)
441
+ };
442
+
443
+ /**
444
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.29
445
+ */
446
+ export const TlvPresetType = TlvObject({
447
+ /**
448
+ * This field shall specify a PresetScenarioEnum value supported by this thermostat.
449
+ *
450
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.29.1
451
+ */
452
+ presetScenario: TlvField(0, TlvEnum<PresetScenario>()),
453
+
454
+ /**
455
+ * This field shall specify a limit for the number of presets for this PresetScenarioEnum.
456
+ *
457
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.29.2
458
+ */
459
+ numberOfPresets: TlvField(1, TlvUInt8),
460
+
461
+ /**
462
+ * This field shall specify a bitmap of features for this PresetTypeStruct.
463
+ *
464
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.29.3
465
+ */
466
+ presetTypeFeatures: TlvField(2, TlvBitmap(TlvUInt16, PresetTypeFeatures))
467
+ });
468
+
469
+ /**
470
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.29
471
+ */
472
+ export interface PresetType extends TypeFromSchema<typeof TlvPresetType> {}
473
+
474
+ /**
475
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28
476
+ */
477
+ export const TlvPreset = TlvObject({
478
+ /**
479
+ * This field shall indicate a device generated identifier for this preset. It shall be unique on the device,
480
+ * and shall NOT be reused after the associated preset has been deleted.
481
+ *
482
+ * This field shall only be null when the encompassing PresetStruct is appended to the Presets attribute for
483
+ * the purpose of creating a new Preset. Refer to Presets for the creation of Preset handles.
484
+ *
485
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28.1
486
+ */
487
+ presetHandle: TlvField(0, TlvNullable(TlvByteString.bound({ maxLength: 16 }))),
488
+
489
+ /**
490
+ * This field shall indicate the associated PresetScenarioEnum value for this preset.
491
+ *
492
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28.2
493
+ */
494
+ presetScenario: TlvField(1, TlvEnum<PresetScenario>()),
495
+
496
+ /**
497
+ * This field shall indicate a name provided by a user. The null value shall indicate no name.
498
+ *
499
+ * Within each subset of presets sharing the same PresetScenario field value, there shall NOT be any presets
500
+ * with the same value, including null as a value, in the Name field.
501
+ *
502
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28.3
503
+ */
504
+ name: TlvOptionalField(2, TlvNullable(TlvString.bound({ maxLength: 64 }))),
505
+
506
+ /**
507
+ * This field shall indicate the cooling setpoint for the preset. Refer to Setpoint Limits for value
508
+ * constraints.
509
+ *
510
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28.4
511
+ */
512
+ coolingSetpoint: TlvOptionalField(3, TlvInt16),
513
+
514
+ /**
515
+ * This field shall indicate the heating setpoint for the preset. Refer to Setpoint Limits for value
516
+ * constraints.
517
+ *
518
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28.5
519
+ */
520
+ heatingSetpoint: TlvOptionalField(4, TlvInt16),
521
+
522
+ /**
523
+ * This field shall indicate whether the preset is marked as "built-in", meaning that it can be modified, but
524
+ * it cannot be deleted.
525
+ *
526
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28.6
527
+ */
528
+ builtIn: TlvField(5, TlvNullable(TlvBoolean))
529
+ });
530
+
531
+ /**
532
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28
533
+ */
534
+ export interface Preset extends TypeFromSchema<typeof TlvPreset> {}
535
+
536
+ /**
537
+ * Input to the Thermostat setActivePresetRequest command
538
+ *
539
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.9
540
+ */
541
+ export const TlvSetActivePresetRequest = TlvObject({
542
+ /**
543
+ * This field shall specify the value of the PresetHandle field on the PresetStruct to be made active. If the
544
+ * field is set to null, that indicates there should be no active preset.
545
+ *
546
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.9.1
547
+ */
548
+ presetHandle: TlvField(0, TlvNullable(TlvByteString.bound({ maxLength: 16 })))
549
+ });
550
+
551
+ /**
552
+ * Input to the Thermostat setActivePresetRequest command
553
+ *
554
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.9
555
+ */
556
+ export interface SetActivePresetRequest extends TypeFromSchema<typeof TlvSetActivePresetRequest> {}
557
+
558
+ /**
559
+ * Table 9. Interpretation of Heat, Cool and Auto SystemModeEnum Values
560
+ *
561
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.25
562
+ */
563
+ export enum SystemMode {
564
+ /**
565
+ * The Thermostat does not generate demand for Cooling or Heating
566
+ */
567
+ Off = 0,
568
+
569
+ /**
570
+ * Demand is generated for either Cooling or Heating, as required
571
+ */
572
+ Auto = 1,
573
+
574
+ /**
575
+ * Demand is only generated for Cooling
576
+ */
577
+ Cool = 3,
578
+
579
+ /**
580
+ * Demand is only generated for Heating
581
+ */
582
+ Heat = 4,
583
+
584
+ /**
585
+ * 2nd stage heating is in use to achieve desired temperature
586
+ */
587
+ EmergencyHeat = 5,
588
+
589
+ /**
590
+ * (see Terms)
591
+ */
592
+ Precooling = 6,
593
+
594
+ FanOnly = 7,
595
+ Dry = 8,
596
+ Sleep = 9
597
+ }
598
+
599
+ /**
600
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.12
601
+ */
602
+ export const ScheduleTypeFeatures = {
603
+ /**
604
+ * Supports presets
605
+ *
606
+ * This bit shall indicate that any ScheduleStruct with a SystemMode field whose value matches the SystemMode
607
+ * field on the encompassing ScheduleTypeStruct supports specifying presets on ScheduleTransitionStructs
608
+ * contained in its Transitions field.
609
+ *
610
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.12.1
611
+ */
612
+ supportsPresets: BitFlag(0),
613
+
614
+ /**
615
+ * Supports setpoints
616
+ *
617
+ * This bit shall indicate that any ScheduleStruct with a SystemMode field whose value matches the SystemMode
618
+ * field on the encompassing ScheduleTypeStruct supports specifying setpoints on ScheduleTransitionStructs
619
+ * contained in its Transitions field.
620
+ *
621
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.12.2
622
+ */
623
+ supportsSetpoints: BitFlag(1),
624
+
625
+ /**
626
+ * Supports user-provided names
627
+ *
628
+ * This bit shall indicate that any ScheduleStruct with a SystemMode field whose value matches the SystemMode
629
+ * field on the encompassing ScheduleTypeStruct supports setting the value of the Name field.
630
+ *
631
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.12.3
632
+ */
633
+ supportsNames: BitFlag(2),
634
+
635
+ /**
636
+ * Supports transitioning to SystemModeOff
637
+ *
638
+ * This bit shall indicate that any ScheduleStruct with a SystemMode field whose value matches the SystemMode
639
+ * field on the encompassing ScheduleTypeStruct supports setting its SystemMode field to Off.
640
+ *
641
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.12.4
642
+ */
643
+ supportsOff: BitFlag(3)
644
+ };
645
+
646
+ /**
647
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.33
648
+ */
649
+ export const TlvScheduleType = TlvObject({
650
+ /**
651
+ * This field shall specify a SystemModeEnum supported by this thermostat for Schedules. The only valid values
652
+ * for this field shall be Auto, Heat, and Cool.
653
+ *
654
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.33.1
655
+ */
656
+ systemMode: TlvField(0, TlvEnum<SystemMode>()),
657
+
658
+ /**
659
+ * This field shall specify a limit for the number of Schedules for this SystemMode.
660
+ *
661
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.33.2
662
+ */
663
+ numberOfSchedules: TlvField(1, TlvUInt8),
664
+
665
+ /**
666
+ * This field shall specify a bitmap of features for this schedule entry. At least one of SupportsPresets and
667
+ * SupportsSetpoints shall be set.
668
+ *
669
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.33.3
670
+ */
671
+ scheduleTypeFeatures: TlvField(2, TlvBitmap(TlvUInt16, ScheduleTypeFeatures))
672
+ });
673
+
674
+ /**
675
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.33
676
+ */
677
+ export interface ScheduleType extends TypeFromSchema<typeof TlvScheduleType> {}
678
+
679
+ /**
680
+ * This struct provides a time of day and a set of days of the week for a state transition within a schedule. The
681
+ * thermostat shall use the following order of precedence for determining a new setpoint at the time of transition:
682
+ *
683
+ * 1. If the PresetHandle field is provided, then the setpoint for the PresetStruct in the Presets attribute with
684
+ * that identifier shall be used
685
+ *
686
+ * 2. If either the HeatingSetpoint or CoolingSetpoint is provided, then it shall be used
687
+ *
688
+ * a. If the SystemMode field is provided, the HeatingSetpoint and CoolingSetpoint fields shall be interpreted
689
+ * using the SystemMode field
690
+ *
691
+ * b. If the SystemMode field is not provided, the HeatingSetpoint and CoolingSetpoint fields shall be
692
+ * interpreted using the SystemMode field on the parent ScheduleStruct
693
+ *
694
+ * 3. If neither the PresetHandle field or any Setpoint field is provided, then the PresetHandle field on the
695
+ * parent ScheduleStruct shall be used to determine the active PresetStruct
696
+ *
697
+ * 4. If the PresetHandle is not indicated and no setpoint is provided for the current SystemMode, the server
698
+ * shall use a default value for the current SystemMode.
699
+ *
700
+ * If the setpoint was derived from a preset, then the ActivePresetHandle shall be set to the PresetHandle of that
701
+ * preset.
702
+ *
703
+ * If a CoolingSetpoint was used to determine the cooling setpoint:
704
+ *
705
+ * • If the server supports the OCC feature, and the Occupied bit is not set on the Occupancy attribute, then the
706
+ * UnoccupiedCoolingSetpoint attribute shall be set to the CoolingSetpoint
707
+ *
708
+ * • Otherwise, the OccupiedCoolingSetpoint attribute shall be set to the CoolingSetpoint If a HeatingSetpoint
709
+ * was used to determine the heating setpoint:
710
+ *
711
+ * • If the server supports the OCC feature, and the Occupied bit is not set on the Occupancy attribute, then the
712
+ * UnoccupiedHeatingSetpoint attribute shall be set to the HeatingSetpoint
713
+ *
714
+ * • Otherwise, the OccupiedHeatingSetpoint attribute shall be set to the HeatingSetpoint The
715
+ * ScheduleTransitionStruct shall be invalid if all the following are true:
716
+ *
717
+ * • The HeatingSetpoint field is not provided
718
+ *
719
+ * • The PresetHandle field is not provided
720
+ *
721
+ * • The PresetHandle field on the encompassing ScheduleStruct is not provided
722
+ *
723
+ * • The SystemMode field is provided and has the value Heat or Auto, or the SystemMode field on the parent
724
+ * ScheduleStruct has the value Heat or Auto
725
+ *
726
+ * The ScheduleTransitionStruct shall be invalid if all the following are true:
727
+ *
728
+ * • The CoolingSetpoint field is not provided
729
+ *
730
+ * • The PresetHandle field is not provided
731
+ *
732
+ * • The PresetHandle field on the encompassing ScheduleStruct is not provided
733
+ *
734
+ * • The SystemMode field is provided and has the value Cool or Auto, or the SystemMode field on the parent
735
+ * ScheduleStruct has the value Cool or Auto
736
+ *
737
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32
738
+ */
739
+ export const TlvScheduleTransition = TlvObject({
740
+ /**
741
+ * This field shall specify a bitmask of days of the week that the transition applies to. The Vacation bit
742
+ * shall NOT be set; vacation schedules shall be set via the vacation preset.
743
+ *
744
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32.1
745
+ */
746
+ dayOfWeek: TlvField(0, TlvBitmap(TlvUInt8, ScheduleDayOfWeek)),
747
+
748
+ /**
749
+ * This shall specify the time of day at which the transition becomes active, in terms of minutes within the
750
+ * day representing the wall clock, where 0 is 00:00:00, 1 is 00:01:00 and 1439 is 23:59:00.
751
+ *
752
+ * Handling of transitions during the changeover of Daylight Saving Time is implementation-dependent.
753
+ *
754
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32.2
755
+ */
756
+ transitionTime: TlvField(1, TlvUInt16.bound({ max: 1439 })),
757
+
758
+ /**
759
+ * This field shall specify the preset used at the TransitionTime. If this field is provided, then the
760
+ * SystemMode, CoolingSetpoint and HeatingSetpoint fields shall NOT be provided.
761
+ *
762
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32.3
763
+ */
764
+ presetHandle: TlvOptionalField(2, TlvByteString.bound({ maxLength: 16 })),
765
+
766
+ /**
767
+ * This shall specify the default mode to which the thermostat will switch for this transition, overriding the
768
+ * default for the schedule. The only valid values for this field shall be Auto, Heat, Cool and Off. This field
769
+ * shall only be included when the required system mode differs from the schedule’s default SystemMode.
770
+ *
771
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32.4
772
+ */
773
+ systemMode: TlvOptionalField(3, TlvEnum<SystemMode>()),
774
+
775
+ /**
776
+ * This field shall specify the cooling setpoint for the transition. If PresetHandle is set, this field shall
777
+ * NOT be included. Refer to Setpoint Limits for value constraints.
778
+ *
779
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32.5
780
+ */
781
+ coolingSetpoint: TlvOptionalField(4, TlvInt16),
782
+
783
+ /**
784
+ * This field shall specify the cooling setpoint for the transition. If PresetHandle is set, this field shall
785
+ * NOT be included. Refer to Setpoint Limits for value constraints.
786
+ *
787
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32.6
788
+ */
789
+ heatingSetpoint: TlvOptionalField(5, TlvInt16)
790
+ });
791
+
792
+ /**
793
+ * This struct provides a time of day and a set of days of the week for a state transition within a schedule. The
794
+ * thermostat shall use the following order of precedence for determining a new setpoint at the time of transition:
795
+ *
796
+ * 1. If the PresetHandle field is provided, then the setpoint for the PresetStruct in the Presets attribute with
797
+ * that identifier shall be used
798
+ *
799
+ * 2. If either the HeatingSetpoint or CoolingSetpoint is provided, then it shall be used
800
+ *
801
+ * a. If the SystemMode field is provided, the HeatingSetpoint and CoolingSetpoint fields shall be interpreted
802
+ * using the SystemMode field
803
+ *
804
+ * b. If the SystemMode field is not provided, the HeatingSetpoint and CoolingSetpoint fields shall be
805
+ * interpreted using the SystemMode field on the parent ScheduleStruct
806
+ *
807
+ * 3. If neither the PresetHandle field or any Setpoint field is provided, then the PresetHandle field on the
808
+ * parent ScheduleStruct shall be used to determine the active PresetStruct
809
+ *
810
+ * 4. If the PresetHandle is not indicated and no setpoint is provided for the current SystemMode, the server
811
+ * shall use a default value for the current SystemMode.
812
+ *
813
+ * If the setpoint was derived from a preset, then the ActivePresetHandle shall be set to the PresetHandle of that
814
+ * preset.
815
+ *
816
+ * If a CoolingSetpoint was used to determine the cooling setpoint:
817
+ *
818
+ * • If the server supports the OCC feature, and the Occupied bit is not set on the Occupancy attribute, then the
819
+ * UnoccupiedCoolingSetpoint attribute shall be set to the CoolingSetpoint
820
+ *
821
+ * • Otherwise, the OccupiedCoolingSetpoint attribute shall be set to the CoolingSetpoint If a HeatingSetpoint
822
+ * was used to determine the heating setpoint:
823
+ *
824
+ * • If the server supports the OCC feature, and the Occupied bit is not set on the Occupancy attribute, then the
825
+ * UnoccupiedHeatingSetpoint attribute shall be set to the HeatingSetpoint
826
+ *
827
+ * • Otherwise, the OccupiedHeatingSetpoint attribute shall be set to the HeatingSetpoint The
828
+ * ScheduleTransitionStruct shall be invalid if all the following are true:
829
+ *
830
+ * • The HeatingSetpoint field is not provided
831
+ *
832
+ * • The PresetHandle field is not provided
833
+ *
834
+ * • The PresetHandle field on the encompassing ScheduleStruct is not provided
835
+ *
836
+ * • The SystemMode field is provided and has the value Heat or Auto, or the SystemMode field on the parent
837
+ * ScheduleStruct has the value Heat or Auto
838
+ *
839
+ * The ScheduleTransitionStruct shall be invalid if all the following are true:
840
+ *
841
+ * • The CoolingSetpoint field is not provided
842
+ *
843
+ * • The PresetHandle field is not provided
844
+ *
845
+ * • The PresetHandle field on the encompassing ScheduleStruct is not provided
846
+ *
847
+ * • The SystemMode field is provided and has the value Cool or Auto, or the SystemMode field on the parent
848
+ * ScheduleStruct has the value Cool or Auto
849
+ *
850
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32
851
+ */
852
+ export interface ScheduleTransition extends TypeFromSchema<typeof TlvScheduleTransition> {}
853
+
854
+ /**
855
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31
856
+ */
857
+ export const TlvSchedule = TlvObject({
858
+ /**
859
+ * This field shall indicate a device generated identifier for this schedule. It shall be unique on the device,
860
+ * and shall NOT be reused after the associated schedule has been deleted.
861
+ *
862
+ * This field shall only be null when the encompassing ScheduleStruct is appended to the Schedules attribute
863
+ * for the purpose of creating a new Schedule. Refer to Schedules for the creation of Schedule handles.
864
+ *
865
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31.1
866
+ */
867
+ scheduleHandle: TlvField(0, TlvNullable(TlvByteString.bound({ maxLength: 16 }))),
868
+
869
+ /**
870
+ * This field shall specify the default thermostat system mode for transitions in this schedule. The only valid
871
+ * values for this field shall be Auto, Heat, and Cool.
872
+ *
873
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31.2
874
+ */
875
+ systemMode: TlvField(1, TlvEnum<SystemMode>()),
876
+
877
+ /**
878
+ * This field shall specify a name for the ScheduleStruct.
879
+ *
880
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31.3
881
+ */
882
+ name: TlvOptionalField(2, TlvString.bound({ maxLength: 64 })),
883
+
884
+ /**
885
+ * This field shall indicate the default PresetHandle value for transitions in this schedule.
886
+ *
887
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31.4
888
+ */
889
+ presetHandle: TlvOptionalField(3, TlvByteString.bound({ maxLength: 16 })),
890
+
891
+ /**
892
+ * This field shall specify a list of transitions for the schedule.
893
+ *
894
+ * This field shall NOT contain more than one ScheduleStruct with the same TransitionTime field and overlapping
895
+ * DayOfWeek fields; i.e. there shall be no duplicate transitions.
896
+ *
897
+ * If the NumberOfScheduleTransitionsPerDay attribute is not null, then for each bit in
898
+ * ScheduleDayOfWeekBitmap, the number of transitions with that bit set in DayOfWeek shall NOT be greater than
899
+ * the value of the NumberOfScheduleTransitionsPerDay attribute.
900
+ *
901
+ * For the purposes of determining which ScheduleStruct in this list is currently active, the current time
902
+ * shall be the number of minutes past midnight in the display value of the current time, not the actual number
903
+ * of minutes that have elapsed since midnight. On days which transition into or out of daylight saving time,
904
+ * certain values may repeat or not occur during the transition period.
905
+ *
906
+ * A ScheduleTransitionStruct in this list shall be active if the current day of the week matches its DayOfWeek
907
+ * field and the current time is greater than or equal to the TransitionTime, but less than the TransitionTime
908
+ * on any other ScheduleTransitionStruct in the Transitions field whose DayOfWeek field also matches the
909
+ * current day of the week.
910
+ *
911
+ * If the current time is less than every ScheduleTransitionStruct whose DayOfWeek field also matches the
912
+ * current day of the week, the server shall attempt the same process to identify the active
913
+ * ScheduleTransitionStruct for the day preceding the previously attempted day of the week, repeating until an
914
+ * active ScheduleTransitionStruct is found or the attempted day is the current day of the week again. If no
915
+ * active ScheduleTransitionStruct is found, then the active ScheduleTransitionStruct shall be the
916
+ * ScheduleTransitionStruct with the largest TransitionTime field from the set of ScheduleTransitionStructs
917
+ * whose DayOfWeek field matches the current day of the week.
918
+ *
919
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31.5
920
+ */
921
+ transitions: TlvField(4, TlvArray(TlvScheduleTransition, { minLength: 1 })),
922
+
923
+ /**
924
+ * This field shall indicate whether the schedule is marked as "built-in", meaning that it can be modified, but
925
+ * it cannot be deleted.
926
+ *
927
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31.6
928
+ */
929
+ builtIn: TlvField(5, TlvNullable(TlvBoolean))
930
+ });
931
+
932
+ /**
933
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31
934
+ */
935
+ export interface Schedule extends TypeFromSchema<typeof TlvSchedule> {}
936
+
937
+ /**
938
+ * Input to the Thermostat setActiveScheduleRequest command
939
+ *
940
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.8
941
+ */
942
+ export const TlvSetActiveScheduleRequest = TlvObject({
943
+ /**
944
+ * This field shall specify the value of the ScheduleHandle field on the ScheduleStruct to be made active.
945
+ *
946
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.8.1
947
+ */
948
+ scheduleHandle: TlvField(0, TlvByteString.bound({ maxLength: 16 }))
949
+ });
950
+
951
+ /**
952
+ * Input to the Thermostat setActiveScheduleRequest command
953
+ *
954
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.8
955
+ */
956
+ export interface SetActiveScheduleRequest extends TypeFromSchema<typeof TlvSetActiveScheduleRequest> {}
957
+
341
958
  /**
342
959
  * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6
343
960
  */
@@ -357,7 +974,7 @@ export namespace Thermostat {
357
974
  *
358
975
  * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6.1
359
976
  */
360
- coolingStage: BitField(0, 2),
977
+ coolingStage: BitField(1, 0),
361
978
 
362
979
  /**
363
980
  * Stage of heating the HVAC system is using.
@@ -374,7 +991,7 @@ export namespace Thermostat {
374
991
  *
375
992
  * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6.2
376
993
  */
377
- heatingStage: BitField(2, 2),
994
+ heatingStage: BitField(3, 0),
378
995
 
379
996
  /**
380
997
  * Is the heating type Heat Pump.
@@ -404,7 +1021,7 @@ export namespace Thermostat {
404
1021
  };
405
1022
 
406
1023
  /**
407
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.9
1024
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.11
408
1025
  */
409
1026
  export const RemoteSensing = {
410
1027
  /**
@@ -417,7 +1034,7 @@ export namespace Thermostat {
417
1034
  *
418
1035
  * This bit shall be supported if the OutdoorTemperature attribute is supported.
419
1036
  *
420
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.9.1
1037
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.11.1
421
1038
  */
422
1039
  outdoorTemperature: BitFlag(1),
423
1040
 
@@ -438,7 +1055,7 @@ export namespace Thermostat {
438
1055
  * Systems which support cooling or heating, requiring external intervention to change modes or where the whole
439
1056
  * building must be in the same mode, SHOULD report CoolingOnly or HeatingOnly based on the current capability.
440
1057
  *
441
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.18
1058
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.21
442
1059
  */
443
1060
  export enum ControlSequenceOfOperation {
444
1061
  /**
@@ -473,48 +1090,7 @@ export namespace Thermostat {
473
1090
  }
474
1091
 
475
1092
  /**
476
- * Table 35. Interpretation of Heat, Cool and Auto SystemModeEnum Values
477
- *
478
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.21
479
- */
480
- export enum SystemMode {
481
- /**
482
- * The Thermostat does not generate demand for Cooling or Heating
483
- */
484
- Off = 0,
485
-
486
- /**
487
- * Demand is generated for either Cooling or Heating, as required
488
- */
489
- Auto = 1,
490
-
491
- /**
492
- * Demand is only generated for Cooling
493
- */
494
- Cool = 3,
495
-
496
- /**
497
- * Demand is only generated for Heating
498
- */
499
- Heat = 4,
500
-
501
- /**
502
- * 2nd stage heating is in use to achieve desired temperature
503
- */
504
- EmergencyHeat = 5,
505
-
506
- /**
507
- * (see Terms)
508
- */
509
- Precooling = 6,
510
-
511
- FanOnly = 7,
512
- Dry = 8,
513
- Sleep = 9
514
- }
515
-
516
- /**
517
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.23
1093
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.27
518
1094
  */
519
1095
  export enum TemperatureSetpointHold {
520
1096
  /**
@@ -529,7 +1105,7 @@ export namespace Thermostat {
529
1105
  }
530
1106
 
531
1107
  /**
532
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.7
1108
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.9
533
1109
  */
534
1110
  export const ProgrammingOperationMode = {
535
1111
  /**
@@ -549,36 +1125,36 @@ export namespace Thermostat {
549
1125
  };
550
1126
 
551
1127
  /**
552
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.8
1128
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.10
553
1129
  */
554
1130
  export const RelayState = {
555
1131
  /**
556
- * Heat State On
1132
+ * Heat Stage On
557
1133
  */
558
1134
  heat: BitFlag(0),
559
1135
 
560
1136
  /**
561
- * Cool State On
1137
+ * Cool Stage On
562
1138
  */
563
1139
  cool: BitFlag(1),
564
1140
 
565
1141
  /**
566
- * Fan State On
1142
+ * Fan Stage On
567
1143
  */
568
1144
  fan: BitFlag(2),
569
1145
 
570
1146
  /**
571
- * Heat 2nd State On
1147
+ * Heat 2nd Stage On
572
1148
  */
573
1149
  heatStage2: BitFlag(3),
574
1150
 
575
1151
  /**
576
- * Cool 2nd State On
1152
+ * Cool 2nd Stage On
577
1153
  */
578
1154
  coolStage2: BitFlag(4),
579
1155
 
580
1156
  /**
581
- * Fan 2nd State On
1157
+ * Fan 2nd Stage On
582
1158
  */
583
1159
  fanStage2: BitFlag(5),
584
1160
 
@@ -589,7 +1165,7 @@ export namespace Thermostat {
589
1165
  };
590
1166
 
591
1167
  /**
592
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.19
1168
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.23
593
1169
  */
594
1170
  export enum SetpointChangeSource {
595
1171
  /**
@@ -609,7 +1185,7 @@ export namespace Thermostat {
609
1185
  }
610
1186
 
611
1187
  /**
612
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.16
1188
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.19
613
1189
  */
614
1190
  export enum AcType {
615
1191
  /**
@@ -639,7 +1215,7 @@ export namespace Thermostat {
639
1215
  }
640
1216
 
641
1217
  /**
642
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.15
1218
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.18
643
1219
  */
644
1220
  export enum AcRefrigerantType {
645
1221
  /**
@@ -664,7 +1240,7 @@ export namespace Thermostat {
664
1240
  }
665
1241
 
666
1242
  /**
667
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.13
1243
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.16
668
1244
  */
669
1245
  export enum AcCompressorType {
670
1246
  /**
@@ -719,7 +1295,7 @@ export namespace Thermostat {
719
1295
  };
720
1296
 
721
1297
  /**
722
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.14
1298
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.17
723
1299
  */
724
1300
  export enum AcLouverPosition {
725
1301
  /**
@@ -749,7 +1325,7 @@ export namespace Thermostat {
749
1325
  }
750
1326
 
751
1327
  /**
752
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.12
1328
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.15
753
1329
  */
754
1330
  export enum AcCapacityFormat {
755
1331
  /**
@@ -759,7 +1335,7 @@ export namespace Thermostat {
759
1335
  }
760
1336
 
761
1337
  /**
762
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.17
1338
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.20
763
1339
  */
764
1340
  export enum SetpointRaiseLowerMode {
765
1341
  /**
@@ -784,7 +1360,19 @@ export namespace Thermostat {
784
1360
  * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.1
785
1361
  */
786
1362
  export const TlvSetpointRaiseLowerRequest = TlvObject({
1363
+ /**
1364
+ * The field shall specify which setpoints are to be adjusted.
1365
+ *
1366
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.1.1
1367
+ */
787
1368
  mode: TlvField(0, TlvEnum<SetpointRaiseLowerMode>()),
1369
+
1370
+ /**
1371
+ * This field shall indicate the amount (possibly negative) that should be added to the setpoint(s), in steps
1372
+ * of 0.1°C.
1373
+ *
1374
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.1.2
1375
+ */
788
1376
  amount: TlvField(1, TlvInt8)
789
1377
  });
790
1378
 
@@ -824,7 +1412,7 @@ export namespace Thermostat {
824
1412
  * Indicates whether the heated/cooled space is occupied or not, as measured locally or remotely (over the
825
1413
  * network).
826
1414
  *
827
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.5
1415
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.4
828
1416
  */
829
1417
  occupancy: Attribute(
830
1418
  0x2,
@@ -840,7 +1428,12 @@ export namespace Thermostat {
840
1428
  export const HeatingComponent = MutableCluster.Component({
841
1429
  attributes: {
842
1430
  /**
843
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9
1431
+ * Indicates the absolute minimum level that the heating setpoint may be set to. This is a limitation
1432
+ * imposed by the manufacturer.
1433
+ *
1434
+ * Refer to Setpoint Limits for constraints
1435
+ *
1436
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.5
844
1437
  */
845
1438
  absMinHeatSetpointLimit: OptionalFixedAttribute(0x3, TlvInt16, { default: 700 }),
846
1439
 
@@ -855,26 +1448,31 @@ export namespace Thermostat {
855
1448
  *
856
1449
  * This attribute is reported regularly and may be used to control a heating device.
857
1450
  *
858
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.11
1451
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.10
859
1452
  */
860
1453
  piHeatingDemand: OptionalAttribute(0x8, TlvUInt8.bound({ max: 100 })),
861
1454
 
862
1455
  /**
863
- * Indicates the heating mode setpoint when the room is occupied.
1456
+ * Indicates the heating mode setpoint when the room is occupied. Refer to Setpoint Limits for constraints.
864
1457
  *
865
- * Refer to Setpoint Limits for constraints. If an attempt is made to set this attribute such that these
866
- * constraints are violated, a response with the status code CONSTRAINT_ERROR shall be returned.
1458
+ * If an attempt is made to set this attribute to a value greater than MaxHeatSetpointLimit or less than
1459
+ * MinHeatSetpointLimit, a response with the status code CONSTRAINT_ERROR shall be returned.
1460
+ *
1461
+ * If this attribute is set to a value that is greater than
1462
+ *
1463
+ * Band), the value of OccupiedCoolingSetpoint shall be adjusted to (OccupiedHeatingSetpoint +
1464
+ * MinSetpointDeadBand).
867
1465
  *
868
1466
  * If the occupancy status of the room is unknown, this attribute shall be used as the heating mode
869
1467
  * setpoint.
870
1468
  *
871
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.15
1469
+ * If a client changes the value of this attribute, the server supports the PRES feature, and the server
1470
+ * either does not support the OCC feature or the Occupied bit is set on the Occupancy attribute, the value
1471
+ * of the ActivePresetHandle attribute shall be set to null.
1472
+ *
1473
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.14
872
1474
  */
873
- occupiedHeatingSetpoint: WritableAttribute(
874
- 0x12,
875
- TlvInt16,
876
- { scene: true, persistent: true, default: 2000 }
877
- ),
1475
+ occupiedHeatingSetpoint: WritableAttribute(0x12, TlvInt16, { persistent: true, default: 2000 }),
878
1476
 
879
1477
  /**
880
1478
  * Indicates the minimum level that the heating setpoint may be set to.
@@ -889,7 +1487,7 @@ export namespace Thermostat {
889
1487
  * which is not consistent with the constraints and cannot be resolved by modifying setpoints then a
890
1488
  * response with the status code CONSTRAINT_ERROR shall be returned.
891
1489
  *
892
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.18
1490
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.17
893
1491
  */
894
1492
  minHeatSetpointLimit: OptionalWritableAttribute(
895
1493
  0x15,
@@ -906,7 +1504,7 @@ export namespace Thermostat {
906
1504
  * which is not consistent with the constraints and cannot be resolved by modifying setpoints then a
907
1505
  * response with the status code CONSTRAINT_ERROR shall be returned.
908
1506
  *
909
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.19
1507
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.18
910
1508
  */
911
1509
  maxHeatSetpointLimit: OptionalWritableAttribute(
912
1510
  0x16,
@@ -922,12 +1520,7 @@ export namespace Thermostat {
922
1520
  export const CoolingComponent = MutableCluster.Component({
923
1521
  attributes: {
924
1522
  /**
925
- * Indicates the absolute minimum level that the cooling setpoint may be set to. This is a limitation
926
- * imposed by the manufacturer.
927
- *
928
- * Refer to Setpoint Limits for constraints
929
- *
930
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.8
1523
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9
931
1524
  */
932
1525
  absMinCoolSetpointLimit: OptionalFixedAttribute(0x5, TlvInt16, { default: 1600 }),
933
1526
 
@@ -937,7 +1530,7 @@ export namespace Thermostat {
937
1530
  *
938
1531
  * Refer to Setpoint Limits for constraints
939
1532
  *
940
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.9
1533
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.8
941
1534
  */
942
1535
  absMaxCoolSetpointLimit: OptionalFixedAttribute(0x6, TlvInt16, { default: 3200 }),
943
1536
 
@@ -947,26 +1540,30 @@ export namespace Thermostat {
947
1540
  *
948
1541
  * This attribute is reported regularly and may be used to control a cooling device.
949
1542
  *
950
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.10
1543
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.9
951
1544
  */
952
1545
  piCoolingDemand: OptionalAttribute(0x7, TlvUInt8.bound({ max: 100 })),
953
1546
 
954
1547
  /**
955
- * Indicates the cooling mode setpoint when the room is occupied.
1548
+ * Indicates the cooling mode setpoint when the room is occupied. Refer to Setpoint Limits for constraints.
956
1549
  *
957
- * Refer to Setpoint Limits for constraints. If an attempt is made to set this attribute such that these
958
- * constraints are violated, a response with the status code CONSTRAINT_ERROR shall be returned.
1550
+ * If an attempt is made to set this attribute to a value greater than MaxCoolSetpointLimit or less than
1551
+ * MinCoolSetpointLimit, a response with the status code CONSTRAINT_ERROR shall be returned.
1552
+ *
1553
+ * If this attribute is set to a value that is less than (OccupiedHeatingSetpoint + MinSetpointDeadBand),
1554
+ * the value of OccupiedHeatingSetpoint shall be adjusted to (OccupiedCoolingSetpoint -
1555
+ * MinSetpointDeadBand).
959
1556
  *
960
1557
  * If the occupancy status of the room is unknown, this attribute shall be used as the cooling mode
961
1558
  * setpoint.
962
1559
  *
963
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.14
1560
+ * If a client changes the value of this attribute, the server supports the PRES feature, and the server
1561
+ * either does not support the OCC feature or the Occupied bit is set on the Occupancy attribute, the value
1562
+ * of the ActivePresetHandle attribute shall be set to null.
1563
+ *
1564
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.13
964
1565
  */
965
- occupiedCoolingSetpoint: WritableAttribute(
966
- 0x11,
967
- TlvInt16,
968
- { scene: true, persistent: true, default: 2600 }
969
- ),
1566
+ occupiedCoolingSetpoint: WritableAttribute(0x11, TlvInt16, { persistent: true, default: 2600 }),
970
1567
 
971
1568
  /**
972
1569
  * Indicates the minimum level that the cooling setpoint may be set to.
@@ -977,7 +1574,7 @@ export namespace Thermostat {
977
1574
  * which is not consistent with the constraints and cannot be resolved by modifying setpoints then a
978
1575
  * response with the status code CONSTRAINT_ERROR shall be returned.
979
1576
  *
980
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.20
1577
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.19
981
1578
  */
982
1579
  minCoolSetpointLimit: OptionalWritableAttribute(
983
1580
  0x17,
@@ -994,7 +1591,7 @@ export namespace Thermostat {
994
1591
  * which is not consistent with the constraints and cannot be resolved by modifying setpoints then a
995
1592
  * response with the status code CONSTRAINT_ERROR shall be returned.
996
1593
  *
997
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.21
1594
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.20
998
1595
  */
999
1596
  maxCoolSetpointLimit: OptionalWritableAttribute(
1000
1597
  0x18,
@@ -1021,7 +1618,12 @@ export namespace Thermostat {
1021
1618
  * (e.g., out of the range supported by the Thermostat server), the Thermostat server shall respond with a
1022
1619
  * status of SUCCESS and set the value of LocalTemperatureCalibration to the upper or lower limit reached.
1023
1620
  *
1024
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.13
1621
+ * NOTE
1622
+ *
1623
+ * Prior to revision 8 of this cluster specification the value of this attribute was constrained to a range
1624
+ * of -2.5°C to 2.5°C.
1625
+ *
1626
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.12
1025
1627
  */
1026
1628
  localTemperatureCalibration: OptionalWritableAttribute(
1027
1629
  0x10,
@@ -1037,14 +1639,23 @@ export namespace Thermostat {
1037
1639
  export const CoolingAndOccupancyComponent = MutableCluster.Component({
1038
1640
  attributes: {
1039
1641
  /**
1040
- * Indicates the cooling mode setpoint when the room is unoccupied.
1642
+ * Indicates the cooling mode setpoint when the room is unoccupied. Refer to Setpoint Limits for
1643
+ * constraints.
1644
+ *
1645
+ * If an attempt is made to set this attribute to a value greater than MaxCoolSetpointLimit or less than
1646
+ * MinCoolSetpointLimit, a response with the status code CONSTRAINT_ERROR shall be returned.
1041
1647
  *
1042
- * Refer to Setpoint Limits for constraints. If an attempt is made to set this attribute such that these
1043
- * constraints are violated, a response with the status code CONSTRAINT_ERROR shall be returned.
1648
+ * If this attribute is set to a value that is less than (UnoccupiedHeatingSetpoint + MinSetpointDeadBand),
1649
+ * the value of UnoccupiedHeatingSetpoint shall be adjusted to (UnoccupiedCoolingSetpoint -
1650
+ * MinSetpointDeadBand).
1044
1651
  *
1045
1652
  * If the occupancy status of the room is unknown, this attribute shall NOT be used.
1046
1653
  *
1047
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.16
1654
+ * If a client changes the value of this attribute, the server supports the PRES and OCC features, and the
1655
+ * Occupied bit is not set on the Occupancy attribute, the value of the ActivePresetHandle attribute shall
1656
+ * be set to null.
1657
+ *
1658
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.15
1048
1659
  */
1049
1660
  unoccupiedCoolingSetpoint: WritableAttribute(0x13, TlvInt16, { persistent: true, default: 2600 })
1050
1661
  }
@@ -1056,14 +1667,24 @@ export namespace Thermostat {
1056
1667
  export const HeatingAndOccupancyComponent = MutableCluster.Component({
1057
1668
  attributes: {
1058
1669
  /**
1059
- * Indicates the heating mode setpoint when the room is unoccupied.
1670
+ * Indicates the heating mode setpoint when the room is unoccupied. Refer to Setpoint Limits for
1671
+ * constraints.
1672
+ *
1673
+ * If an attempt is made to set this attribute to a value greater than MaxHeatSetpointLimit or less than
1674
+ * MinHeatSetpointLimit, a response with the status code CONSTRAINT_ERROR shall be returned.
1675
+ *
1676
+ * If this attribute is set to a value that is greater than (UnoccupiedCoolingSetpoint -
1677
+ * MinSetpointDeadBand), the value of UnoccupiedCoolingSetpoint shall be adjusted to
1060
1678
  *
1061
- * Refer to Setpoint Limits for constraints. If an attempt is made to set this attribute such that these
1062
- * constraints are violated, a response with the status code CONSTRAINT_ERROR shall be returned.
1679
+ * + MinSetpointDeadBand).
1063
1680
  *
1064
1681
  * If the occupancy status of the room is unknown, this attribute shall NOT be used.
1065
1682
  *
1066
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.17
1683
+ * If a client changes the value of this attribute, the server supports the PRES and OCC features, and the
1684
+ * Occupied bit is not set on the Occupancy attribute, the value of the ActivePresetHandle attribute shall
1685
+ * be set to null.
1686
+ *
1687
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.16
1067
1688
  */
1068
1689
  unoccupiedHeatingSetpoint: WritableAttribute(0x14, TlvInt16, { persistent: true, default: 2000 })
1069
1690
  }
@@ -1078,22 +1699,32 @@ export namespace Thermostat {
1078
1699
  * On devices which support the AUTO feature, this attribute shall indicate the minimum difference between
1079
1700
  * the Heat Setpoint and the Cool Setpoint.
1080
1701
  *
1081
- * Refer to Setpoint Limits for constraints. If an attempt is made to set this attribute to a value which
1082
- * conflicts with setpoint values then those setpoints shall be adjusted by the minimum amount to permit
1083
- * this attribute to be set to the desired value. If an attempt is made to set this attribute to a value
1084
- * which is not consistent with the constraints and cannot be resolved by modifying setpoints then a
1085
- * response with the status code CONSTRAINT_ERROR shall be returned.
1702
+ * Refer to Setpoint Limits for constraints.
1086
1703
  *
1087
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.22
1704
+ * NOTE
1705
+ *
1706
+ * Prior to revision 8 of this cluster specification the value of this attribute was constrained to a range
1707
+ * of 0°C to 2.5°C.
1708
+ *
1709
+ * NOTE
1710
+ *
1711
+ * For backwards compatibility, this attribute is optionally writeable. However any writes to this
1712
+ * attribute shall be silently ignored.
1713
+ *
1714
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.21
1088
1715
  */
1089
- minSetpointDeadBand: WritableAttribute(0x19, TlvInt8, { persistent: true, writeAcl: AccessLevel.Manage }),
1716
+ minSetpointDeadBand: WritableAttribute(
1717
+ 0x19,
1718
+ TlvInt8.bound({ min: 0 }),
1719
+ { persistent: true, writeAcl: AccessLevel.Manage }
1720
+ ),
1090
1721
 
1091
1722
  /**
1092
1723
  * Indicates the running mode of the thermostat. This attribute uses the same values as SystemModeEnum but
1093
1724
  * can only be Off, Cool or Heat. This attribute is intended to provide additional information when the
1094
1725
  * thermostat’s system mode is in auto mode.
1095
1726
  *
1096
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.27
1727
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.26
1097
1728
  */
1098
1729
  thermostatRunningMode: OptionalAttribute(
1099
1730
  0x1e,
@@ -1115,57 +1746,37 @@ export namespace Thermostat {
1115
1746
  * This attribute may be able to be used as the base to determine if the device supports weekly scheduling
1116
1747
  * by reading the attribute. Successful response means that the weekly scheduling is supported.
1117
1748
  *
1118
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.28
1749
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.27
1119
1750
  */
1120
1751
  startOfWeek: FixedAttribute(0x20, TlvEnum<StartOfWeek>()),
1121
1752
 
1122
1753
  /**
1123
1754
  * Indicates how many weekly schedule transitions the thermostat is capable of handling.
1124
1755
  *
1125
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.29
1756
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.28
1126
1757
  */
1127
1758
  numberOfWeeklyTransitions: FixedAttribute(0x21, TlvUInt8, { default: 0 }),
1128
1759
 
1129
1760
  /**
1130
1761
  * Indicates how many daily schedule transitions the thermostat is capable of handling.
1131
1762
  *
1132
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.30
1763
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.29
1133
1764
  */
1134
1765
  numberOfDailyTransitions: FixedAttribute(0x22, TlvUInt8, { default: 0 })
1135
1766
  },
1136
1767
 
1137
1768
  commands: {
1138
1769
  /**
1139
- * Upon receipt, the weekly schedule for updating setpoints shall be stored in the thermostat and SHOULD
1140
- * begin at the time of receipt. A status code shall be sent in response.
1141
- *
1142
- * When a command is received that requires a total number of transitions greater than the device supports,
1143
- * the status of the response shall be INSUFFICIENT_SPACE.
1144
- *
1145
- * When any of the setpoints sent in the sequence is out of range (AbsMin/MaxSetPointLimit), or when the
1146
- * Mode for Sequence field includes a mode not supported by the device, the status of the response shall be
1147
- * CONSTRAINT_ERROR and no setpoints from the entire sequence SHOULD be used.
1148
- *
1149
- * When an overlapping transition is detected, the status of the response shall be FAILURE.
1150
- *
1151
- * When a device which does not support multiple days in a command receives a command with more than one
1152
- * bit set in the DayOfWeekForSequence field, or when a device which does not support multiple modes in a
1153
- * command receives a command with more than one bit set in the ModeForSequence field, or when the contents
1154
- * of the Transitions field does not agree with NumberOfTransitionsForSequence, DayOfWeekForSequence or
1155
- * ModeForSequence, the status of the response shall be INVALID_COMMAND.
1156
- *
1157
- * When the transitions could be added successfully, the status of the response shall be SUCCESS.
1158
- *
1159
- * The set weekly schedule command is used to update the thermostat weekly setpoint schedule from a
1160
- * management system. If the thermostat already has a weekly setpoint schedule programmed, then it SHOULD
1161
- * replace each daily setpoint set as it receives the updates from the management system. For example, if
1162
- * the thermostat has 4 setpoints for every day of the week and is sent a Set Weekly Schedule command with
1163
- * one setpoint for Saturday then the thermostat SHOULD remove all 4 setpoints for Saturday and replace
1164
- * those with the updated setpoint but leave all other days unchanged. If the schedule is larger than what
1165
- * fits in one frame or contains more than 10 transitions, the schedule shall then be sent using multiple
1166
- * Set Weekly Schedule Commands.
1167
- *
1168
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4
1770
+ * This command is used to update the thermostat weekly setpoint schedule from a management system. If the
1771
+ * thermostat already has a weekly setpoint schedule programmed, then it SHOULD replace each daily setpoint
1772
+ * set as it receives the updates from the management system. For example, if the thermostat has 4
1773
+ * setpoints for every day of the week and is sent a SetWeeklySchedule command with one setpoint for
1774
+ * Saturday then the thermostat SHOULD remove all 4 setpoints for Saturday and replace those with the
1775
+ * updated setpoint but leave all other days unchanged. If the schedule is larger than what fits in one
1776
+ * frame or contains more than 10 transitions, the schedule shall then be sent using multiple
1777
+ * SetWeeklySchedule Commands.
1778
+ *
1779
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.2
1169
1780
  */
1170
1781
  setWeeklySchedule: Command(
1171
1782
  0x1,
@@ -1176,12 +1787,7 @@ export namespace Thermostat {
1176
1787
  ),
1177
1788
 
1178
1789
  /**
1179
- * Upon receipt, the unit SHOULD send in return the Get Weekly Schedule Response command. The Days to
1180
- * Return and Mode to Return fields are defined as bitmask for the flexibility to support multiple days and
1181
- * multiple modes within one command. If thermostat cannot handle incoming command with multiple days
1182
- * and/or multiple modes within one command, it shall send default response of INVALID_COMMAND in return.
1183
- *
1184
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.5
1790
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.3
1185
1791
  */
1186
1792
  getWeeklySchedule: Command(0x2, TlvGetWeeklyScheduleRequest, 0x0, TlvGetWeeklyScheduleResponse),
1187
1793
 
@@ -1191,7 +1797,7 @@ export namespace Thermostat {
1191
1797
  * Upon receipt, all transitions currently stored shall be cleared and a default response of SUCCESS shall
1192
1798
  * be sent in response. There are no error responses to this command.
1193
1799
  *
1194
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.7
1800
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.5
1195
1801
  */
1196
1802
  clearWeeklySchedule: Command(0x3, TlvNoArguments, 0x3, TlvNoResponse, { invokeAcl: AccessLevel.Manage })
1197
1803
  }
@@ -1223,7 +1829,7 @@ export namespace Thermostat {
1223
1829
  * Thermostat server shall set its OccupiedSetback value to OccupiedSetbackMin and shall send a Write
1224
1830
  * Attribute Response command with a Status Code field enumeration of SUCCESS response.
1225
1831
  *
1226
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.38
1832
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.37
1227
1833
  */
1228
1834
  occupiedSetback: WritableAttribute(
1229
1835
  0x34,
@@ -1237,7 +1843,7 @@ export namespace Thermostat {
1237
1843
  *
1238
1844
  * The null value indicates the attribute is unused.
1239
1845
  *
1240
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.39
1846
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.38
1241
1847
  */
1242
1848
  occupiedSetbackMin: FixedAttribute(0x35, TlvNullable(TlvUInt8), { default: null }),
1243
1849
 
@@ -1247,7 +1853,7 @@ export namespace Thermostat {
1247
1853
  *
1248
1854
  * The null value indicates the attribute is unused.
1249
1855
  *
1250
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.40
1856
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.39
1251
1857
  */
1252
1858
  occupiedSetbackMax: FixedAttribute(0x36, TlvNullable(TlvUInt8), { default: null })
1253
1859
  }
@@ -1280,7 +1886,7 @@ export namespace Thermostat {
1280
1886
  * the Thermostat server shall set its UnoccupiedSetback value to UnoccupiedSetbackMin and shall send a
1281
1887
  * Write Attribute Response command with a Status Code field enumeration of SUCCESS response.
1282
1888
  *
1283
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.41
1889
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.40
1284
1890
  */
1285
1891
  unoccupiedSetback: WritableAttribute(
1286
1892
  0x37,
@@ -1294,7 +1900,7 @@ export namespace Thermostat {
1294
1900
  *
1295
1901
  * The null value indicates the attribute is unused.
1296
1902
  *
1297
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.42
1903
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.41
1298
1904
  */
1299
1905
  unoccupiedSetbackMin: FixedAttribute(0x38, TlvNullable(TlvUInt8), { default: null }),
1300
1906
 
@@ -1304,19 +1910,310 @@ export namespace Thermostat {
1304
1910
  *
1305
1911
  * The null value indicates the attribute is unused.
1306
1912
  *
1307
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.43
1913
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.42
1308
1914
  */
1309
1915
  unoccupiedSetbackMax: FixedAttribute(0x39, TlvNullable(TlvUInt8), { default: null })
1310
1916
  }
1311
1917
  });
1312
1918
 
1919
+ /**
1920
+ * A ThermostatCluster supports these elements if it supports feature Presets.
1921
+ */
1922
+ export const PresetsComponent = MutableCluster.Component({
1923
+ attributes: {
1924
+ /**
1925
+ * Indicates the supported PresetScenarioEnum values, limits on how many presets can be created for each
1926
+ * PresetScenarioEnum, and whether or not a thermostat can transition automatically to a given scenario.
1927
+ *
1928
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.52
1929
+ */
1930
+ presetTypes: FixedAttribute(0x48, TlvArray(TlvPresetType), { default: [] }),
1931
+
1932
+ /**
1933
+ * Indicates the maximum number of entries supported by the Presets attribute.
1934
+ *
1935
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.54
1936
+ */
1937
+ numberOfPresets: FixedAttribute(0x4a, TlvUInt8, { default: 0 }),
1938
+
1939
+ /**
1940
+ * Indicates the PresetHandle of the active preset. If this attribute is null, then there is no active
1941
+ * preset.
1942
+ *
1943
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.58
1944
+ */
1945
+ activePresetHandle: Attribute(
1946
+ 0x4e,
1947
+ TlvNullable(TlvByteString.bound({ maxLength: 16 })),
1948
+ { persistent: true, default: null }
1949
+ ),
1950
+
1951
+ /**
1952
+ * This attribute shall contain the current list of configured presets. On receipt of a write request:
1953
+ *
1954
+ * 1. If the PresetHandle field is null, the PresetStruct shall be treated as an added preset, and the
1955
+ * device shall create a new unique value for the PresetHandle field.
1956
+ *
1957
+ * a. If the BuiltIn field is true, a response with the status code CONSTRAINT_ERROR shall be returned.
1958
+ *
1959
+ * 2. If the PresetHandle field is not null, the PresetStruct shall be treated as a modification of an
1960
+ * existing preset.
1961
+ *
1962
+ * a. If the value of the PresetHandle field does not match any of the existing presets, a response
1963
+ * with the status code NOT_FOUND shall be returned.
1964
+ *
1965
+ * b. If the value of the PresetHandle field is duplicated on multiple presets in the updated list, a
1966
+ * response with the status code CONSTRAINT_ERROR shall be returned.
1967
+ *
1968
+ * c. If the BuiltIn field is true, and the PresetStruct in the current value with a matching
1969
+ * PresetHandle field has a BuiltIn field set to false, a response with the status code
1970
+ * CONSTRAINT_ERROR shall be returned.
1971
+ *
1972
+ * d. If the BuiltIn field is false, and the PresetStruct in the current value with a matching
1973
+ * PresetHandle field has a BuiltIn field set to true, a response with the status code
1974
+ * CONSTRAINT_ERROR shall be returned.
1975
+ *
1976
+ * 3. If the specified PresetScenarioEnum value does not exist in PresetTypes, a response with the status
1977
+ * code CONSTRAINT_ERROR shall be returned.
1978
+ *
1979
+ * 4. If the Name is set, but the associated PresetTypeStruct does not have the SupportsNames bit set, a
1980
+ * response with the status code CONSTRAINT_ERROR shall be returned.
1981
+ *
1982
+ * 5. If appending the received PresetStruct to the pending list of Presets would cause the total number
1983
+ * of pending presets to exceed the value of the NumberOfPresets attribute, a response with the status
1984
+ * code RESOURCE_EXHAUSTED shall be returned.
1985
+ *
1986
+ * 6. If appending the received PresetStruct to the pending list of Presets would cause the total number
1987
+ * of pending presets whose PresetScenario field matches the appended preset’s PresetScenario field to
1988
+ * exceed the value of the NumberOfPresets field on the PresetTypeStruct whose PresetScenario matches
1989
+ * the appended preset’s PresetScenario field, a response with the status code RESOURCE_EXHAUSTED
1990
+ * shall be returned.
1991
+ *
1992
+ * 7. Otherwise, the write shall be pended until receipt of a commit request, and the status code SUCCESS
1993
+ * shall be returned.
1994
+ *
1995
+ * a. If the BuiltIn field is null:
1996
+ *
1997
+ * i. If there is a PresetStruct in the current value with a matching PresetHandle field, the BuiltIn
1998
+ * field on the pending PresetStruct shall be set to the value of the BuiltIn on the matching
1999
+ * PresetStruct.
2000
+ *
2001
+ * ii. Otherwise, the BuiltIn field on the pending PresetStruct shall be set to false.
2002
+ *
2003
+ * On an attempt to commit, the status of this attribute shall be determined as follows:
2004
+ *
2005
+ * 1. For all existing presets:
2006
+ *
2007
+ * a. If, after applying all pending changes, the updated value of the Presets attribute would not
2008
+ * contain a PresetStruct with a matching PresetHandle field, indicating the removal of the
2009
+ * PresetStruct, the server shall check for invalid removal of the PresetStruct:
2010
+ *
2011
+ * i. If the BuiltIn field is true on the removed PresetStruct, the attribute status shall be
2012
+ * CONSTRAINT_ERROR.
2013
+ *
2014
+ * ii. If the MSCH feature is supported and the removed PresetHandle would be referenced by any
2015
+ * PresetHandle on any ScheduleTransitionStruct on any ScheduleStruct in the updated value of
2016
+ * the Schedules attribute, the attribute status shall be INVALID_IN_STATE.
2017
+ *
2018
+ * iii. If the removed PresetHandle is equal to the value of the ActivePresetHandle attribute, the
2019
+ * attribute status shall be INVALID_IN_STATE.
2020
+ *
2021
+ * 2. Otherwise, the attribute status shall be SUCCESS.
2022
+ *
2023
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.60
2024
+ */
2025
+ presets: WritableAttribute(
2026
+ 0x50,
2027
+ TlvArray(TlvPreset),
2028
+ { persistent: true, default: [], writeAcl: AccessLevel.Manage }
2029
+ )
2030
+ },
2031
+
2032
+ commands: {
2033
+ /**
2034
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.9
2035
+ */
2036
+ setActivePresetRequest: Command(0x6, TlvSetActivePresetRequest, 0x6, TlvNoResponse)
2037
+ }
2038
+ });
2039
+
2040
+ /**
2041
+ * A ThermostatCluster supports these elements if it supports feature MatterScheduleConfiguration.
2042
+ */
2043
+ export const MatterScheduleConfigurationComponent = MutableCluster.Component({
2044
+ attributes: {
2045
+ /**
2046
+ * Indicates the supported SystemMode values for Schedules, limits on how many schedules can be created for
2047
+ * each SystemMode value, and whether or not a given SystemMode value supports transitions to Presets,
2048
+ * target setpoints, or both.
2049
+ *
2050
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.53
2051
+ */
2052
+ scheduleTypes: FixedAttribute(0x49, TlvArray(TlvScheduleType), { default: [] }),
2053
+
2054
+ /**
2055
+ * Indicates the maximum number of entries supported by the Schedules attribute.
2056
+ *
2057
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.55
2058
+ */
2059
+ numberOfSchedules: FixedAttribute(0x4b, TlvUInt8, { default: 0 }),
2060
+
2061
+ /**
2062
+ * Indicates the maximum number of transitions per Schedules attribute entry.
2063
+ *
2064
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.56
2065
+ */
2066
+ numberOfScheduleTransitions: FixedAttribute(0x4c, TlvUInt8, { default: 0 }),
2067
+
2068
+ /**
2069
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9
2070
+ */
2071
+ numberOfScheduleTransitionPerDay: FixedAttribute(0x4d, TlvNullable(TlvUInt8), { default: null }),
2072
+
2073
+ /**
2074
+ * Indicates the ScheduleHandle of the active schedule. A null value in this attribute indicates that there
2075
+ * is no active schedule.
2076
+ *
2077
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.59
2078
+ */
2079
+ activeScheduleHandle: Attribute(
2080
+ 0x4f,
2081
+ TlvNullable(TlvByteString.bound({ maxLength: 16 })),
2082
+ { persistent: true, default: null }
2083
+ ),
2084
+
2085
+ /**
2086
+ * This attribute shall contain a list of ScheduleStructs. On receipt of a write request:
2087
+ *
2088
+ * 1. For all schedules in the write request:
2089
+ *
2090
+ * a. If the ScheduleHandle field is null, the ScheduleStruct shall be treated as an added schedule,
2091
+ * and the device shall create a new unique value for the ScheduleHandle field.
2092
+ *
2093
+ * i. If the BuiltIn field is true, a response with the status code CONSTRAINT_ERROR shall be
2094
+ * returned.
2095
+ *
2096
+ * b. Otherwise, if the ScheduleHandle field is not null, the ScheduleStruct shall be treated as a
2097
+ * modification of an existing schedule.
2098
+ *
2099
+ * i. If the value of the ScheduleHandle field does not match any of the existing schedules, a
2100
+ * response with the status code NOT_FOUND shall be returned.
2101
+ *
2102
+ * ii. If the BuiltIn field is true, and the ScheduleStruct in the current value with a matching
2103
+ * ScheduleHandle field has a BuiltIn field set to false, a response with the status code
2104
+ * CONSTRAINT_ERROR shall be returned.
2105
+ *
2106
+ * iii. If the BuiltIn field is false, and the ScheduleStruct in the current value with a matching
2107
+ * ScheduleHandle field has a BuiltIn field set to true, a response with the status code
2108
+ * CONSTRAINT_ERROR shall be returned.
2109
+ *
2110
+ * c. If the specified SystemMode does not exist in ScheduleTypes, a response with the status code
2111
+ * CONSTRAINT_ERROR shall be returned.
2112
+ *
2113
+ * d. If the number of transitions exceeds the NumberOfScheduleTransitions value, a response with the
2114
+ * status code RESOURCE_EXHAUSTED shall be returned.
2115
+ *
2116
+ * e. If the value of the NumberOfScheduleTransitionsPerDay attribute is not null, and the number of
2117
+ * transitions on any single day of the week exceeds the NumberOfScheduleTransitionsPerDay value, a
2118
+ * response with the status code RESOURCE_EXHAUSTED shall be returned.
2119
+ *
2120
+ * f. If the PresetHandle field is present, but the associated ScheduleTypeStruct does not have the
2121
+ * SupportsPresets bit set, a response with the status code CONSTRAINT_ERROR shall be returned.
2122
+ *
2123
+ * g. If the PresetHandle field is present, but after applying all pending changes, the Presets
2124
+ * attribute would not contain a PresetStruct whose PresetHandle field matches the value of the
2125
+ * PresetHandle field, a response with the status code CONSTRAINT_ERROR shall be returned.
2126
+ *
2127
+ * h. If the Name is set, but the associated ScheduleTypeStruct does not have the SupportsNames bit
2128
+ * set, a response with the status code CONSTRAINT_ERROR shall be returned.
2129
+ *
2130
+ * i. For all transitions in all schedules in the write request:
2131
+ *
2132
+ * i. If the PresetHandle field is present, but the ScheduleTypeStruct matching the value of the
2133
+ * SystemMode field on the encompassing ScheduleStruct does not have the SupportsPresets bit set,
2134
+ * a response with the status code CONSTRAINT_ERROR shall be returned.
2135
+ *
2136
+ * j. If the PresetHandle field is present, but after applying all pending changes, the Presets
2137
+ * attribute would not contain a PresetStruct whose PresetHandle field matches the value of the
2138
+ * PresetHandle field, a response with the status code CONSTRAINT_ERROR shall be returned.
2139
+ *
2140
+ * i. If the SystemMode field is present, but the ScheduleTypeStruct matching the value of the
2141
+ * SystemMode field on the encompassing ScheduleStruct does not have the SupportsSetpoints bit
2142
+ * set, a response with the status code CONSTRAINT_ERROR shall be returned.
2143
+ *
2144
+ * ii. If the SystemMode field is has a value of SystemModeOff, but the ScheduleTypeStruct matching
2145
+ * the value of the SystemMode field on the encompassing ScheduleStruct does not have the
2146
+ * SupportsOff bit set, a response with the status code CONSTRAINT_ERROR shall be returned.
2147
+ *
2148
+ * k. If the HeatingSetpoint field is present, but the ScheduleTypeStruct matching the value of the
2149
+ * SystemMode field on the encompassing ScheduleStruct does not have the SupportsSetpoints bit set,
2150
+ * a response with the status code CONSTRAINT_ERROR shall be returned.
2151
+ *
2152
+ * l. If the CoolingSetpoint field is present, but the ScheduleTypeStruct matching the value of the
2153
+ * SystemMode field on the encompassing ScheduleStruct does not have the SupportsSetpoints bit set,
2154
+ * a response with the status code CONSTRAINT_ERROR shall be returned.
2155
+ *
2156
+ * 2. If appending the received ScheduleStruct to the pending list of Schedules would cause the total
2157
+ * number of pending schedules to exceed the value of the NumberOfSchedules attribute, a response with
2158
+ * the status code RESOURCE_EXHAUSTED shall be returned.
2159
+ *
2160
+ * 3. If appending the received ScheduleStruct to the pending list of Schedules would cause the total
2161
+ * number of pending schedules whose SystemMode field matches the appended schedule’s SystemMode field
2162
+ * to exceed the value of the NumberOfSchedules field on the ScheduleTypeStruct whose SystemMode field
2163
+ * matches the appended schedule’s SystemMode field, a response with the status code
2164
+ * RESOURCE_EXHAUSTED shall be returned.
2165
+ *
2166
+ * 4. Otherwise, the write shall be pended until receipt of a commit request, and the attribute status
2167
+ * shall be SUCCESS.
2168
+ *
2169
+ * a. If the BuiltIn field is null:
2170
+ *
2171
+ * i. If there is a ScheduleStruct in the current value with a matching ScheduleHandle field, the
2172
+ * BuiltIn field on the pending ScheduleStruct shall be set to the value of the BuiltIn on the
2173
+ * matching ScheduleStruct.
2174
+ *
2175
+ * ii. Otherwise, the BuiltIn field on the pending ScheduleStruct shall be set to false.
2176
+ *
2177
+ * On an attempt to commit, the status of this attribute shall be determined as follows:
2178
+ *
2179
+ * 1. For all existing schedules:
2180
+ *
2181
+ * a. If, after applying all pending changes, the updated value of the Schedules attribute would not
2182
+ * contain a ScheduleStruct with a matching ScheduleHandle field, indicating the removal of the
2183
+ * ScheduleStruct, the server shall check for invalid removal of the ScheduleStruct:
2184
+ *
2185
+ * i. If the BuiltIn field is true on the removed ScheduleStruct, the attribute status shall be
2186
+ * CONSTRAINT_ERROR.
2187
+ *
2188
+ * ii. If the removed ScheduleHandle is equal to the value of the ActiveScheduleHandle attribute, the
2189
+ * attribute status shall be INVALID_IN_STATE.
2190
+ *
2191
+ * 2. Otherwise, the attribute status shall be SUCCESS.
2192
+ *
2193
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.61
2194
+ */
2195
+ schedules: WritableAttribute(
2196
+ 0x51,
2197
+ TlvArray(TlvSchedule),
2198
+ { persistent: true, default: [], writeAcl: AccessLevel.Manage }
2199
+ )
2200
+ },
2201
+
2202
+ commands: {
2203
+ /**
2204
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.8
2205
+ */
2206
+ setActiveScheduleRequest: Command(0x5, TlvSetActiveScheduleRequest, 0x5, TlvNoResponse)
2207
+ }
2208
+ });
2209
+
1313
2210
  /**
1314
2211
  * These elements and properties are present in all Thermostat clusters.
1315
2212
  */
1316
2213
  export const Base = MutableCluster.Component({
1317
2214
  id: 0x201,
1318
2215
  name: "Thermostat",
1319
- revision: 6,
2216
+ revision: 8,
1320
2217
 
1321
2218
  features: {
1322
2219
  /**
@@ -1370,7 +2267,21 @@ export namespace Thermostat {
1370
2267
  *
1371
2268
  * @see {@link MatterSpecification.v13.Cluster} § 4.3.4.1
1372
2269
  */
1373
- localTemperatureNotExposed: BitFlag(6)
2270
+ localTemperatureNotExposed: BitFlag(6),
2271
+
2272
+ /**
2273
+ * MatterScheduleConfiguration
2274
+ *
2275
+ * Supports enhanced schedules
2276
+ */
2277
+ matterScheduleConfiguration: BitFlag(7),
2278
+
2279
+ /**
2280
+ * Presets
2281
+ *
2282
+ * Thermostat supports setpoint presets
2283
+ */
2284
+ presets: BitFlag(8)
1374
2285
  },
1375
2286
 
1376
2287
  attributes: {
@@ -1387,24 +2298,25 @@ export namespace Thermostat {
1387
2298
  * • Otherwise, if the LTNE feature is supported, there is no feedback externally available for the
1388
2299
  * LocalTemperatureCalibration. In that case, the LocalTemperature attribute shall always report null.
1389
2300
  *
1390
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.3
2301
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.2
1391
2302
  */
1392
2303
  localTemperature: Attribute(0x0, TlvNullable(TlvInt16), { default: null }),
1393
2304
 
1394
2305
  /**
1395
2306
  * Indicates the outdoor temperature, as measured locally or remotely (over the network).
1396
2307
  *
1397
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.4
2308
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.3
1398
2309
  */
1399
2310
  outdoorTemperature: OptionalAttribute(0x1, TlvNullable(TlvInt16), { default: null }),
1400
2311
 
1401
2312
  /**
1402
2313
  * 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.
2314
+ * switches to set these parameters, this information shall be available read-only
1406
2315
  *
1407
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.12
2316
+ * from the DIP switches. If these parameters are set via software, there shall be read/write access in
2317
+ * order to provide remote programming capability.
2318
+ *
2319
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.11
1408
2320
  * @deprecated
1409
2321
  */
1410
2322
  hvacSystemTypeConfiguration: OptionalWritableAttribute(
@@ -1423,7 +2335,7 @@ export namespace Thermostat {
1423
2335
  * If the LocalTemperature RemoteSensing bit is written with a value of 1 when the LTNE feature is present,
1424
2336
  * the write shall fail and the server shall report a CONSTRAINT_ERROR.
1425
2337
  *
1426
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.23
2338
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.22
1427
2339
  */
1428
2340
  remoteSensing: OptionalWritableAttribute(
1429
2341
  0x1a,
@@ -1435,7 +2347,11 @@ export namespace Thermostat {
1435
2347
  * Indicates the overall operating environment of the thermostat, and thus the possible system modes that
1436
2348
  * the thermostat can operate in.
1437
2349
  *
1438
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.24
2350
+ * If an attempt is made to write to this attribute, the server shall silently ignore the write and the
2351
+ * value of this attribute shall remain unchanged. This behavior is in place for backwards compatibility
2352
+ * with existing thermostats.
2353
+ *
2354
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.23
1439
2355
  */
1440
2356
  controlSequenceOfOperation: WritableAttribute(
1441
2357
  0x1b,
@@ -1447,12 +2363,12 @@ export namespace Thermostat {
1447
2363
  * Indicates the current operating mode of the thermostat. Its value shall be limited by the
1448
2364
  * ControlSequenceOfOperation attribute.
1449
2365
  *
1450
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.25
2366
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.24
1451
2367
  */
1452
2368
  systemMode: WritableAttribute(
1453
2369
  0x1c,
1454
2370
  TlvEnum<SystemMode>(),
1455
- { scene: true, persistent: true, default: SystemMode.Auto, writeAcl: AccessLevel.Manage }
2371
+ { persistent: true, default: SystemMode.Auto, writeAcl: AccessLevel.Manage }
1456
2372
  ),
1457
2373
 
1458
2374
  /**
@@ -1462,7 +2378,18 @@ export namespace Thermostat {
1462
2378
  * If the thermostat supports setpoint hold for a specific duration, it SHOULD also implement the
1463
2379
  * TemperatureSetpointHoldDuration attribute.
1464
2380
  *
1465
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.31
2381
+ * If the server supports a setpoint hold for a specific duration, it SHOULD also implement the
2382
+ * SetpointHoldExpiryTimestamp attribute.
2383
+ *
2384
+ * If this attribute is updated to SetpointHoldOn and the TemperatureSetpointHoldDuration has a non- null
2385
+ * value and the SetpointHoldExpiryTimestamp is supported, the server shall update the
2386
+ * SetpointHoldExpiryTimestamp with a value of current UTC timestamp, in seconds, plus the value in
2387
+ * TemperatureSetpointHoldDuration multiplied by 60.
2388
+ *
2389
+ * If this attribute is updated to SetpointHoldOff and the SetpointHoldExpiryTimestamp is supported, the
2390
+ * server shall set the SetpointHoldExpiryTimestamp to null.
2391
+ *
2392
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.30
1466
2393
  */
1467
2394
  temperatureSetpointHold: OptionalWritableAttribute(
1468
2395
  0x23,
@@ -1475,7 +2402,15 @@ export namespace Thermostat {
1475
2402
  * specified duration SHOULD implement this attribute. The null value indicates the field is unused. All
1476
2403
  * other values are reserved.
1477
2404
  *
1478
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.32
2405
+ * If this attribute is updated to a non-null value and the TemperatureSetpointHold is set to
2406
+ * SetpointHoldOn and the SetpointHoldExpiryTimestamp is supported, the server shall update
2407
+ * SetpointHoldExpiryTimestamp with a value of current UTC timestamp, in seconds, plus the new value of
2408
+ * this attribute multiplied by 60.
2409
+ *
2410
+ * If this attribute is set to null and the SetpointHoldExpiryTimestamp is supported, the server shall set
2411
+ * the SetpointHoldExpiryTimestamp to null.
2412
+ *
2413
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.31
1479
2414
  */
1480
2415
  temperatureSetpointHoldDuration: OptionalWritableAttribute(
1481
2416
  0x24,
@@ -1501,7 +2436,7 @@ export namespace Thermostat {
1501
2436
  * Modifying the ScheduleActive bit does not clear or delete previous weekly schedule programming
1502
2437
  * configurations.
1503
2438
  *
1504
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.33
2439
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.32
1505
2440
  */
1506
2441
  thermostatProgrammingOperationMode: OptionalWritableAttribute(
1507
2442
  0x25,
@@ -1513,7 +2448,7 @@ export namespace Thermostat {
1513
2448
  * Indicates the current relay state of the heat, cool, and fan relays. Unimplemented outputs shall be
1514
2449
  * treated as if they were Off.
1515
2450
  *
1516
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.34
2451
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.33
1517
2452
  */
1518
2453
  thermostatRunningState: OptionalAttribute(0x29, TlvBitmap(TlvUInt16, RelayState)),
1519
2454
 
@@ -1526,7 +2461,7 @@ export namespace Thermostat {
1526
2461
  * provider). Because automation services may initiate frequent setpoint changes, this attribute clearly
1527
2462
  * differentiates the source of setpoint changes made at the thermostat.
1528
2463
  *
1529
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.35
2464
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.34
1530
2465
  */
1531
2466
  setpointChangeSource: OptionalAttribute(
1532
2467
  0x30,
@@ -1541,14 +2476,14 @@ export namespace Thermostat {
1541
2476
  *
1542
2477
  * The null value indicates that the previous setpoint was unknown.
1543
2478
  *
1544
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.36
2479
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.35
1545
2480
  */
1546
2481
  setpointChangeAmount: OptionalAttribute(0x31, TlvNullable(TlvInt16), { default: null }),
1547
2482
 
1548
2483
  /**
1549
2484
  * Indicates the time in UTC at which the SetpointChangeAmount attribute change was recorded.
1550
2485
  *
1551
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.37
2486
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.36
1552
2487
  */
1553
2488
  setpointChangeSourceTimestamp: OptionalAttribute(0x32, TlvEpochS, { default: 0 }),
1554
2489
 
@@ -1578,7 +2513,7 @@ export namespace Thermostat {
1578
2513
  * when a setpoint is of a specified amount greater than the measured temperature. This allows the heated
1579
2514
  * space to be quickly heated to the desired level set by the user.
1580
2515
  *
1581
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.44
2516
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.43
1582
2517
  */
1583
2518
  emergencyHeatDelta: OptionalWritableAttribute(
1584
2519
  0x3a,
@@ -1590,7 +2525,7 @@ export namespace Thermostat {
1590
2525
  * Indicates the type of Mini Split ACTypeEnum of Mini Split AC is defined depending on how Cooling and
1591
2526
  * Heating condition is achieved by Mini Split AC.
1592
2527
  *
1593
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.45
2528
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.44
1594
2529
  */
1595
2530
  acType: OptionalWritableAttribute(
1596
2531
  0x40,
@@ -1601,7 +2536,7 @@ export namespace Thermostat {
1601
2536
  /**
1602
2537
  * Indicates capacity of Mini Split AC in terms of the format defined by the ACCapacityFormat attribute
1603
2538
  *
1604
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.46
2539
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.45
1605
2540
  */
1606
2541
  acCapacity: OptionalWritableAttribute(
1607
2542
  0x41,
@@ -1612,7 +2547,7 @@ export namespace Thermostat {
1612
2547
  /**
1613
2548
  * Indicates type of refrigerant used within the Mini Split AC.
1614
2549
  *
1615
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.47
2550
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.46
1616
2551
  */
1617
2552
  acRefrigerantType: OptionalWritableAttribute(
1618
2553
  0x42,
@@ -1623,7 +2558,7 @@ export namespace Thermostat {
1623
2558
  /**
1624
2559
  * Indicates the type of compressor used within the Mini Split AC.
1625
2560
  *
1626
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.48
2561
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.47
1627
2562
  */
1628
2563
  acCompressorType: OptionalWritableAttribute(
1629
2564
  0x43,
@@ -1634,7 +2569,7 @@ export namespace Thermostat {
1634
2569
  /**
1635
2570
  * Indicates the type of errors encountered within the Mini Split AC.
1636
2571
  *
1637
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.49
2572
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.48
1638
2573
  */
1639
2574
  acErrorCode: OptionalWritableAttribute(
1640
2575
  0x44,
@@ -1645,7 +2580,7 @@ export namespace Thermostat {
1645
2580
  /**
1646
2581
  * Indicates the position of Louver on the AC.
1647
2582
  *
1648
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.50
2583
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.49
1649
2584
  */
1650
2585
  acLouverPosition: OptionalWritableAttribute(
1651
2586
  0x45,
@@ -1656,29 +2591,41 @@ export namespace Thermostat {
1656
2591
  /**
1657
2592
  * Indicates the temperature of the AC coil, as measured locally or remotely (over the network).
1658
2593
  *
1659
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.51
2594
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.50
1660
2595
  */
1661
2596
  acCoilTemperature: OptionalAttribute(0x46, TlvNullable(TlvInt16), { default: null }),
1662
2597
 
1663
2598
  /**
1664
2599
  * Indicates the format for the ACCapacity attribute.
1665
2600
  *
1666
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.52
2601
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.51
1667
2602
  */
1668
2603
  acCapacityFormat: OptionalWritableAttribute(
1669
2604
  0x47,
1670
2605
  TlvEnum<AcCapacityFormat>(),
1671
2606
  { persistent: true, default: AcCapacityFormat.BtUh, writeAcl: AccessLevel.Manage }
2607
+ ),
2608
+
2609
+ /**
2610
+ * If there is a known time when the TemperatureSetpointHold shall be cleared, this attribute shall contain
2611
+ * the timestamp in UTC indicating when that will happen. If there is no such known time, this attribute
2612
+ * shall be null.
2613
+ *
2614
+ * If the TemperatureSetpointHold is set to SetpointHoldOff or the TemperatureSetpointHoldDuration is set
2615
+ * to null, this attribute shall be set to null indicating there is no hold on the Thermostat either with
2616
+ * or without a duration.
2617
+ *
2618
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.62
2619
+ */
2620
+ setpointHoldExpiryTimestamp: OptionalAttribute(
2621
+ 0x52,
2622
+ TlvNullable(TlvEpochS),
2623
+ { persistent: true, default: null }
1672
2624
  )
1673
2625
  },
1674
2626
 
1675
2627
  commands: {
1676
2628
  /**
1677
- * Upon receipt, the attributes for the indicated setpoint(s) shall have the amount specified in the Amount
1678
- * field added to them. If the resulting value is outside the limits imposed by MinCoolSetpointLimit,
1679
- * MaxCoolSetpointLimit, MinHeatSetpointLimit and MaxHeatSetpointLimit, the value is clamped to those
1680
- * limits. This is not considered an error condition.
1681
- *
1682
2629
  * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.1
1683
2630
  */
1684
2631
  setpointRaiseLower: Command(0x0, TlvSetpointRaiseLowerRequest, 0x0, TlvNoResponse)
@@ -1699,6 +2646,8 @@ export namespace Thermostat {
1699
2646
  { flags: { scheduleConfiguration: true }, component: ScheduleConfigurationComponent },
1700
2647
  { flags: { setback: true }, component: SetbackComponent },
1701
2648
  { flags: { setback: true, occupancy: true }, component: SetbackAndOccupancyComponent },
2649
+ { flags: { presets: true }, component: PresetsComponent },
2650
+ { flags: { matterScheduleConfiguration: true }, component: MatterScheduleConfigurationComponent },
1702
2651
  { flags: { autoMode: true, heating: false }, component: false },
1703
2652
  { flags: { autoMode: true, cooling: false }, component: false },
1704
2653
  { flags: { heating: false, cooling: false }, component: false }
@@ -1713,6 +2662,44 @@ export namespace Thermostat {
1713
2662
  /**
1714
2663
  * This cluster provides an interface to the functionality of a thermostat.
1715
2664
  *
2665
+ * Optional temperature, humidity and occupancy sensors
2666
+ *
2667
+ * Thermostat
2668
+ *
2669
+ * Heating / cooling control panel
2670
+ *
2671
+ * C
2672
+ *
2673
+ * Dehumidification configuration
2674
+ *
2675
+ * Dehumidification notification
2676
+ *
2677
+ * ThermostatS
2678
+ *
2679
+ * Heating / cooling device (e.g. indoor air handler)
2680
+ *
2681
+ * S
2682
+ *
2683
+ * user interface S
2684
+ *
2685
+ * configuration
2686
+ *
2687
+ * C
2688
+ *
2689
+ * Configuration tool
2690
+ *
2691
+ * Thermostat configuration
2692
+ *
2693
+ * C C Fan control S
2694
+ *
2695
+ * ThermostatS notification C
2696
+ *
2697
+ * C = Client S = Server
2698
+ *
2699
+ * Note: Device names are examples for illustration purposes only
2700
+ *
2701
+ * Figure 15. Example Usage of the Thermostat and Related Clusters"
2702
+ *
1716
2703
  * Per the Matter specification you cannot use {@link ThermostatCluster} without enabling certain feature
1717
2704
  * combinations. You must use the {@link with} factory method to obtain a working cluster.
1718
2705
  *
@@ -1730,6 +2717,8 @@ export namespace Thermostat {
1730
2717
  const SCH = { scheduleConfiguration: true };
1731
2718
  const SB = { setback: true };
1732
2719
  const SB_OCC = { setback: true, occupancy: true };
2720
+ const PRES = { presets: true };
2721
+ const MSCH = { matterScheduleConfiguration: true };
1733
2722
 
1734
2723
  /**
1735
2724
  * @see {@link Complete}
@@ -1846,6 +2835,40 @@ export namespace Thermostat {
1846
2835
  unoccupiedSetbackMax: MutableCluster.AsConditional(
1847
2836
  SetbackAndOccupancyComponent.attributes.unoccupiedSetbackMax,
1848
2837
  { mandatoryIf: [SB_OCC] }
2838
+ ),
2839
+ presetTypes: MutableCluster.AsConditional(PresetsComponent.attributes.presetTypes, { mandatoryIf: [PRES] }),
2840
+ scheduleTypes: MutableCluster.AsConditional(
2841
+ MatterScheduleConfigurationComponent.attributes.scheduleTypes,
2842
+ { mandatoryIf: [MSCH] }
2843
+ ),
2844
+ numberOfPresets: MutableCluster.AsConditional(
2845
+ PresetsComponent.attributes.numberOfPresets,
2846
+ { mandatoryIf: [PRES] }
2847
+ ),
2848
+ numberOfSchedules: MutableCluster.AsConditional(
2849
+ MatterScheduleConfigurationComponent.attributes.numberOfSchedules,
2850
+ { mandatoryIf: [MSCH] }
2851
+ ),
2852
+ numberOfScheduleTransitions: MutableCluster.AsConditional(
2853
+ MatterScheduleConfigurationComponent.attributes.numberOfScheduleTransitions,
2854
+ { mandatoryIf: [MSCH] }
2855
+ ),
2856
+ numberOfScheduleTransitionPerDay: MutableCluster.AsConditional(
2857
+ MatterScheduleConfigurationComponent.attributes.numberOfScheduleTransitionPerDay,
2858
+ { mandatoryIf: [MSCH] }
2859
+ ),
2860
+ activePresetHandle: MutableCluster.AsConditional(
2861
+ PresetsComponent.attributes.activePresetHandle,
2862
+ { mandatoryIf: [PRES] }
2863
+ ),
2864
+ activeScheduleHandle: MutableCluster.AsConditional(
2865
+ MatterScheduleConfigurationComponent.attributes.activeScheduleHandle,
2866
+ { mandatoryIf: [MSCH] }
2867
+ ),
2868
+ presets: MutableCluster.AsConditional(PresetsComponent.attributes.presets, { mandatoryIf: [PRES] }),
2869
+ schedules: MutableCluster.AsConditional(
2870
+ MatterScheduleConfigurationComponent.attributes.schedules,
2871
+ { mandatoryIf: [MSCH] }
1849
2872
  )
1850
2873
  },
1851
2874
 
@@ -1862,6 +2885,14 @@ export namespace Thermostat {
1862
2885
  clearWeeklySchedule: MutableCluster.AsConditional(
1863
2886
  ScheduleConfigurationComponent.commands.clearWeeklySchedule,
1864
2887
  { mandatoryIf: [SCH] }
2888
+ ),
2889
+ setActiveScheduleRequest: MutableCluster.AsConditional(
2890
+ MatterScheduleConfigurationComponent.commands.setActiveScheduleRequest,
2891
+ { mandatoryIf: [MSCH] }
2892
+ ),
2893
+ setActivePresetRequest: MutableCluster.AsConditional(
2894
+ PresetsComponent.commands.setActivePresetRequest,
2895
+ { mandatoryIf: [PRES] }
1865
2896
  )
1866
2897
  }
1867
2898
  });