@matter/types 0.12.6-alpha.0-20250304-03716637c → 0.13.0-alpha.0-20250307-ebf84a05a

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 (857) hide show
  1. package/dist/cjs/cluster/Cluster.d.ts.map +1 -1
  2. package/dist/cjs/cluster/ClusterHelper.d.ts.map +1 -1
  3. package/dist/cjs/clusters/access-control.d.ts +3972 -522
  4. package/dist/cjs/clusters/access-control.d.ts.map +1 -1
  5. package/dist/cjs/clusters/access-control.js +640 -116
  6. package/dist/cjs/clusters/access-control.js.map +2 -2
  7. package/dist/cjs/clusters/actions.d.ts +10 -9
  8. package/dist/cjs/clusters/actions.d.ts.map +1 -1
  9. package/dist/cjs/clusters/actions.js +4 -4
  10. package/dist/cjs/clusters/actions.js.map +1 -1
  11. package/dist/cjs/clusters/administrator-commissioning.d.ts +156 -129
  12. package/dist/cjs/clusters/administrator-commissioning.d.ts.map +1 -1
  13. package/dist/cjs/clusters/administrator-commissioning.js +40 -35
  14. package/dist/cjs/clusters/administrator-commissioning.js.map +1 -1
  15. package/dist/cjs/clusters/alarm-base.d.ts +9 -12
  16. package/dist/cjs/clusters/alarm-base.d.ts.map +1 -1
  17. package/dist/cjs/clusters/alarm-base.js +3 -4
  18. package/dist/cjs/clusters/alarm-base.js.map +1 -1
  19. package/dist/cjs/clusters/application-launcher.d.ts +27 -15
  20. package/dist/cjs/clusters/application-launcher.d.ts.map +1 -1
  21. package/dist/cjs/clusters/application-launcher.js +7 -4
  22. package/dist/cjs/clusters/application-launcher.js.map +1 -1
  23. package/dist/cjs/clusters/ballast-configuration.d.ts +7 -7
  24. package/dist/cjs/clusters/ballast-configuration.js +7 -7
  25. package/dist/cjs/clusters/basic-information.d.ts +29 -21
  26. package/dist/cjs/clusters/basic-information.d.ts.map +1 -1
  27. package/dist/cjs/clusters/basic-information.js +29 -21
  28. package/dist/cjs/clusters/basic-information.js.map +1 -1
  29. package/dist/cjs/clusters/bridged-device-basic-information.d.ts +816 -34
  30. package/dist/cjs/clusters/bridged-device-basic-information.d.ts.map +1 -1
  31. package/dist/cjs/clusters/bridged-device-basic-information.js +182 -29
  32. package/dist/cjs/clusters/bridged-device-basic-information.js.map +2 -2
  33. package/dist/cjs/clusters/channel.d.ts +115 -124
  34. package/dist/cjs/clusters/channel.d.ts.map +1 -1
  35. package/dist/cjs/clusters/channel.js +15 -16
  36. package/dist/cjs/clusters/channel.js.map +1 -1
  37. package/dist/cjs/clusters/color-control.d.ts +3076 -1366
  38. package/dist/cjs/clusters/color-control.d.ts.map +1 -1
  39. package/dist/cjs/clusters/color-control.js +423 -357
  40. package/dist/cjs/clusters/color-control.js.map +2 -2
  41. package/dist/cjs/clusters/commissioner-control.d.ts +268 -0
  42. package/dist/cjs/clusters/commissioner-control.d.ts.map +1 -0
  43. package/dist/cjs/clusters/commissioner-control.js +194 -0
  44. package/dist/cjs/clusters/commissioner-control.js.map +6 -0
  45. package/dist/cjs/clusters/content-control.d.ts +497 -221
  46. package/dist/cjs/clusters/content-control.d.ts.map +1 -1
  47. package/dist/cjs/clusters/content-control.js +59 -41
  48. package/dist/cjs/clusters/content-control.js.map +2 -2
  49. package/dist/cjs/clusters/content-launcher.d.ts +248 -215
  50. package/dist/cjs/clusters/content-launcher.d.ts.map +1 -1
  51. package/dist/cjs/clusters/content-launcher.js +16 -15
  52. package/dist/cjs/clusters/content-launcher.js.map +1 -1
  53. package/dist/cjs/clusters/device-energy-management-mode.d.ts +76 -333
  54. package/dist/cjs/clusters/device-energy-management-mode.d.ts.map +1 -1
  55. package/dist/cjs/clusters/device-energy-management-mode.js +26 -73
  56. package/dist/cjs/clusters/device-energy-management-mode.js.map +1 -1
  57. package/dist/cjs/clusters/device-energy-management.d.ts +1299 -930
  58. package/dist/cjs/clusters/device-energy-management.d.ts.map +1 -1
  59. package/dist/cjs/clusters/device-energy-management.js +189 -160
  60. package/dist/cjs/clusters/device-energy-management.js.map +2 -2
  61. package/dist/cjs/clusters/dishwasher-alarm.d.ts +14 -17
  62. package/dist/cjs/clusters/dishwasher-alarm.d.ts.map +1 -1
  63. package/dist/cjs/clusters/dishwasher-alarm.js +3 -4
  64. package/dist/cjs/clusters/dishwasher-alarm.js.map +1 -1
  65. package/dist/cjs/clusters/dishwasher-mode.d.ts +65 -105
  66. package/dist/cjs/clusters/dishwasher-mode.d.ts.map +1 -1
  67. package/dist/cjs/clusters/dishwasher-mode.js +12 -24
  68. package/dist/cjs/clusters/dishwasher-mode.js.map +1 -1
  69. package/dist/cjs/clusters/door-lock.d.ts +2751 -5427
  70. package/dist/cjs/clusters/door-lock.d.ts.map +1 -1
  71. package/dist/cjs/clusters/door-lock.js +480 -802
  72. package/dist/cjs/clusters/door-lock.js.map +2 -2
  73. package/dist/cjs/clusters/ecosystem-information.d.ts +186 -0
  74. package/dist/cjs/clusters/ecosystem-information.d.ts.map +1 -0
  75. package/dist/cjs/clusters/ecosystem-information.js +154 -0
  76. package/dist/cjs/clusters/ecosystem-information.js.map +6 -0
  77. package/dist/cjs/clusters/electrical-energy-measurement.d.ts +363 -368
  78. package/dist/cjs/clusters/electrical-energy-measurement.d.ts.map +1 -1
  79. package/dist/cjs/clusters/electrical-energy-measurement.js +15 -16
  80. package/dist/cjs/clusters/electrical-energy-measurement.js.map +1 -1
  81. package/dist/cjs/clusters/energy-evse-mode.d.ts +92 -330
  82. package/dist/cjs/clusters/energy-evse-mode.d.ts.map +1 -1
  83. package/dist/cjs/clusters/energy-evse-mode.js +25 -72
  84. package/dist/cjs/clusters/energy-evse-mode.js.map +1 -1
  85. package/dist/cjs/clusters/energy-evse.d.ts +557 -273
  86. package/dist/cjs/clusters/energy-evse.d.ts.map +1 -1
  87. package/dist/cjs/clusters/energy-evse.js +107 -55
  88. package/dist/cjs/clusters/energy-evse.js.map +1 -1
  89. package/dist/cjs/clusters/energy-preference.d.ts +76 -76
  90. package/dist/cjs/clusters/energy-preference.d.ts.map +1 -1
  91. package/dist/cjs/clusters/energy-preference.js +15 -18
  92. package/dist/cjs/clusters/energy-preference.js.map +1 -1
  93. package/dist/cjs/clusters/ethernet-network-diagnostics.d.ts +3 -9
  94. package/dist/cjs/clusters/ethernet-network-diagnostics.d.ts.map +1 -1
  95. package/dist/cjs/clusters/ethernet-network-diagnostics.js +1 -3
  96. package/dist/cjs/clusters/ethernet-network-diagnostics.js.map +1 -1
  97. package/dist/cjs/clusters/fan-control.d.ts +12 -12
  98. package/dist/cjs/clusters/fan-control.js +4 -4
  99. package/dist/cjs/clusters/fixed-label.d.ts +7 -2
  100. package/dist/cjs/clusters/fixed-label.d.ts.map +1 -1
  101. package/dist/cjs/clusters/fixed-label.js.map +1 -1
  102. package/dist/cjs/clusters/flow-measurement.d.ts +4 -4
  103. package/dist/cjs/clusters/flow-measurement.d.ts.map +1 -1
  104. package/dist/cjs/clusters/flow-measurement.js +6 -6
  105. package/dist/cjs/clusters/flow-measurement.js.map +1 -1
  106. package/dist/cjs/clusters/general-commissioning.d.ts +1416 -111
  107. package/dist/cjs/clusters/general-commissioning.d.ts.map +1 -1
  108. package/dist/cjs/clusters/general-commissioning.js +272 -54
  109. package/dist/cjs/clusters/general-commissioning.js.map +2 -2
  110. package/dist/cjs/clusters/general-diagnostics.d.ts +115 -122
  111. package/dist/cjs/clusters/general-diagnostics.d.ts.map +1 -1
  112. package/dist/cjs/clusters/general-diagnostics.js +31 -33
  113. package/dist/cjs/clusters/general-diagnostics.js.map +1 -1
  114. package/dist/cjs/clusters/group-key-management.d.ts +72 -82
  115. package/dist/cjs/clusters/group-key-management.d.ts.map +1 -1
  116. package/dist/cjs/clusters/group-key-management.js +19 -22
  117. package/dist/cjs/clusters/group-key-management.js.map +1 -1
  118. package/dist/cjs/clusters/groups.d.ts +9 -6
  119. package/dist/cjs/clusters/groups.d.ts.map +1 -1
  120. package/dist/cjs/clusters/groups.js +3 -2
  121. package/dist/cjs/clusters/groups.js.map +1 -1
  122. package/dist/cjs/clusters/icd-management.d.ts +223 -66
  123. package/dist/cjs/clusters/icd-management.d.ts.map +1 -1
  124. package/dist/cjs/clusters/icd-management.js +61 -23
  125. package/dist/cjs/clusters/icd-management.js.map +2 -2
  126. package/dist/cjs/clusters/identify.d.ts +12 -13
  127. package/dist/cjs/clusters/identify.d.ts.map +1 -1
  128. package/dist/cjs/clusters/identify.js +9 -10
  129. package/dist/cjs/clusters/identify.js.map +1 -1
  130. package/dist/cjs/clusters/illuminance-measurement.d.ts +7 -8
  131. package/dist/cjs/clusters/illuminance-measurement.d.ts.map +1 -1
  132. package/dist/cjs/clusters/illuminance-measurement.js +9 -10
  133. package/dist/cjs/clusters/illuminance-measurement.js.map +1 -1
  134. package/dist/cjs/clusters/index.d.ts +11 -1
  135. package/dist/cjs/clusters/index.d.ts.map +1 -1
  136. package/dist/cjs/clusters/index.js +33 -3
  137. package/dist/cjs/clusters/index.js.map +1 -1
  138. package/dist/cjs/clusters/joint-fabric-datastore-cluster.d.ts +1239 -0
  139. package/dist/cjs/clusters/joint-fabric-datastore-cluster.d.ts.map +1 -0
  140. package/dist/cjs/clusters/joint-fabric-datastore-cluster.js +490 -0
  141. package/dist/cjs/clusters/joint-fabric-datastore-cluster.js.map +6 -0
  142. package/dist/cjs/clusters/joint-fabric-pki.d.ts +174 -0
  143. package/dist/cjs/clusters/joint-fabric-pki.d.ts.map +1 -0
  144. package/dist/cjs/clusters/joint-fabric-pki.js +120 -0
  145. package/dist/cjs/clusters/joint-fabric-pki.js.map +6 -0
  146. package/dist/cjs/clusters/keypad-input.d.ts +2 -2
  147. package/dist/cjs/clusters/laundry-dryer-controls.d.ts +6 -7
  148. package/dist/cjs/clusters/laundry-dryer-controls.d.ts.map +1 -1
  149. package/dist/cjs/clusters/laundry-dryer-controls.js +5 -9
  150. package/dist/cjs/clusters/laundry-dryer-controls.js.map +1 -1
  151. package/dist/cjs/clusters/laundry-washer-controls.d.ts +74 -62
  152. package/dist/cjs/clusters/laundry-washer-controls.d.ts.map +1 -1
  153. package/dist/cjs/clusters/laundry-washer-controls.js +26 -25
  154. package/dist/cjs/clusters/laundry-washer-controls.js.map +1 -1
  155. package/dist/cjs/clusters/laundry-washer-mode.d.ts +69 -109
  156. package/dist/cjs/clusters/laundry-washer-mode.d.ts.map +1 -1
  157. package/dist/cjs/clusters/laundry-washer-mode.js +13 -25
  158. package/dist/cjs/clusters/laundry-washer-mode.js.map +1 -1
  159. package/dist/cjs/clusters/level-control.d.ts +209 -70
  160. package/dist/cjs/clusters/level-control.d.ts.map +1 -1
  161. package/dist/cjs/clusters/level-control.js +45 -12
  162. package/dist/cjs/clusters/level-control.js.map +1 -1
  163. package/dist/cjs/clusters/localization-configuration.d.ts +5 -6
  164. package/dist/cjs/clusters/localization-configuration.d.ts.map +1 -1
  165. package/dist/cjs/clusters/localization-configuration.js +5 -6
  166. package/dist/cjs/clusters/localization-configuration.js.map +1 -1
  167. package/dist/cjs/clusters/media-input.d.ts +9 -6
  168. package/dist/cjs/clusters/media-input.d.ts.map +1 -1
  169. package/dist/cjs/clusters/media-input.js +3 -2
  170. package/dist/cjs/clusters/media-input.js.map +1 -1
  171. package/dist/cjs/clusters/media-playback.d.ts +29 -24
  172. package/dist/cjs/clusters/media-playback.d.ts.map +1 -1
  173. package/dist/cjs/clusters/media-playback.js +5 -4
  174. package/dist/cjs/clusters/media-playback.js.map +1 -1
  175. package/dist/cjs/clusters/microwave-oven-control.d.ts +54 -48
  176. package/dist/cjs/clusters/microwave-oven-control.d.ts.map +1 -1
  177. package/dist/cjs/clusters/microwave-oven-control.js +19 -17
  178. package/dist/cjs/clusters/microwave-oven-control.js.map +1 -1
  179. package/dist/cjs/clusters/microwave-oven-mode.d.ts +63 -69
  180. package/dist/cjs/clusters/microwave-oven-mode.d.ts.map +1 -1
  181. package/dist/cjs/clusters/microwave-oven-mode.js +14 -11
  182. package/dist/cjs/clusters/microwave-oven-mode.js.map +1 -1
  183. package/dist/cjs/clusters/mode-base.d.ts +27 -46
  184. package/dist/cjs/clusters/mode-base.d.ts.map +1 -1
  185. package/dist/cjs/clusters/mode-base.js +9 -10
  186. package/dist/cjs/clusters/mode-base.js.map +1 -1
  187. package/dist/cjs/clusters/mode-select.d.ts +33 -27
  188. package/dist/cjs/clusters/mode-select.d.ts.map +1 -1
  189. package/dist/cjs/clusters/mode-select.js +14 -13
  190. package/dist/cjs/clusters/mode-select.js.map +1 -1
  191. package/dist/cjs/clusters/network-commissioning.d.ts +263 -240
  192. package/dist/cjs/clusters/network-commissioning.d.ts.map +1 -1
  193. package/dist/cjs/clusters/network-commissioning.js +46 -39
  194. package/dist/cjs/clusters/network-commissioning.js.map +1 -1
  195. package/dist/cjs/clusters/occupancy-sensing.d.ts +1002 -63
  196. package/dist/cjs/clusters/occupancy-sensing.d.ts.map +1 -1
  197. package/dist/cjs/clusters/occupancy-sensing.js +278 -63
  198. package/dist/cjs/clusters/occupancy-sensing.js.map +2 -2
  199. package/dist/cjs/clusters/on-off.d.ts +18 -24
  200. package/dist/cjs/clusters/on-off.d.ts.map +1 -1
  201. package/dist/cjs/clusters/on-off.js +3 -4
  202. package/dist/cjs/clusters/on-off.js.map +1 -1
  203. package/dist/cjs/clusters/operational-credentials.d.ts +98 -85
  204. package/dist/cjs/clusters/operational-credentials.d.ts.map +1 -1
  205. package/dist/cjs/clusters/operational-credentials.js +56 -49
  206. package/dist/cjs/clusters/operational-credentials.js.map +1 -1
  207. package/dist/cjs/clusters/operational-state.d.ts +136 -57
  208. package/dist/cjs/clusters/operational-state.d.ts.map +1 -1
  209. package/dist/cjs/clusters/operational-state.js +62 -36
  210. package/dist/cjs/clusters/operational-state.js.map +2 -2
  211. package/dist/cjs/clusters/ota-software-update-provider.d.ts +43 -42
  212. package/dist/cjs/clusters/ota-software-update-provider.d.ts.map +1 -1
  213. package/dist/cjs/clusters/ota-software-update-provider.js +20 -19
  214. package/dist/cjs/clusters/ota-software-update-provider.js.map +1 -1
  215. package/dist/cjs/clusters/ota-software-update-requestor.d.ts +6 -10
  216. package/dist/cjs/clusters/ota-software-update-requestor.d.ts.map +1 -1
  217. package/dist/cjs/clusters/ota-software-update-requestor.js +4 -6
  218. package/dist/cjs/clusters/ota-software-update-requestor.js.map +1 -1
  219. package/dist/cjs/clusters/oven-cavity-operational-state.d.ts +44 -154
  220. package/dist/cjs/clusters/oven-cavity-operational-state.d.ts.map +1 -1
  221. package/dist/cjs/clusters/oven-cavity-operational-state.js +39 -156
  222. package/dist/cjs/clusters/oven-cavity-operational-state.js.map +1 -1
  223. package/dist/cjs/clusters/oven-mode.d.ts +79 -349
  224. package/dist/cjs/clusters/oven-mode.d.ts.map +1 -1
  225. package/dist/cjs/clusters/oven-mode.js +26 -82
  226. package/dist/cjs/clusters/oven-mode.js.map +1 -1
  227. package/dist/cjs/clusters/power-source.d.ts +169 -44
  228. package/dist/cjs/clusters/power-source.d.ts.map +1 -1
  229. package/dist/cjs/clusters/power-source.js +40 -16
  230. package/dist/cjs/clusters/power-source.js.map +1 -1
  231. package/dist/cjs/clusters/pressure-measurement.js +2 -2
  232. package/dist/cjs/clusters/pressure-measurement.js.map +1 -1
  233. package/dist/cjs/clusters/pump-configuration-and-control.d.ts +73 -63
  234. package/dist/cjs/clusters/pump-configuration-and-control.d.ts.map +1 -1
  235. package/dist/cjs/clusters/pump-configuration-and-control.js +19 -20
  236. package/dist/cjs/clusters/pump-configuration-and-control.js.map +1 -1
  237. package/dist/cjs/clusters/refrigerator-alarm.d.ts +2 -1
  238. package/dist/cjs/clusters/refrigerator-alarm.d.ts.map +1 -1
  239. package/dist/cjs/clusters/refrigerator-alarm.js.map +1 -1
  240. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +59 -91
  241. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  242. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +11 -19
  243. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  244. package/dist/cjs/clusters/relative-humidity-measurement.js +1 -1
  245. package/dist/cjs/clusters/relative-humidity-measurement.js.map +1 -1
  246. package/dist/cjs/clusters/rvc-clean-mode.d.ts +59 -103
  247. package/dist/cjs/clusters/rvc-clean-mode.d.ts.map +1 -1
  248. package/dist/cjs/clusters/rvc-clean-mode.js +11 -15
  249. package/dist/cjs/clusters/rvc-clean-mode.js.map +1 -1
  250. package/dist/cjs/clusters/rvc-operational-state.d.ts +81 -25
  251. package/dist/cjs/clusters/rvc-operational-state.d.ts.map +1 -1
  252. package/dist/cjs/clusters/rvc-operational-state.js +49 -20
  253. package/dist/cjs/clusters/rvc-operational-state.js.map +1 -1
  254. package/dist/cjs/clusters/rvc-run-mode.d.ts +85 -129
  255. package/dist/cjs/clusters/rvc-run-mode.d.ts.map +1 -1
  256. package/dist/cjs/clusters/rvc-run-mode.js +16 -15
  257. package/dist/cjs/clusters/rvc-run-mode.js.map +1 -1
  258. package/dist/cjs/clusters/scenes-management.d.ts +328 -181
  259. package/dist/cjs/clusters/scenes-management.d.ts.map +1 -1
  260. package/dist/cjs/clusters/scenes-management.js +37 -22
  261. package/dist/cjs/clusters/scenes-management.js.map +1 -1
  262. package/dist/cjs/clusters/service-area.d.ts +2052 -0
  263. package/dist/cjs/clusters/service-area.d.ts.map +1 -0
  264. package/dist/cjs/clusters/service-area.js +582 -0
  265. package/dist/cjs/clusters/service-area.js.map +6 -0
  266. package/dist/cjs/clusters/smoke-co-alarm.d.ts +10 -18
  267. package/dist/cjs/clusters/smoke-co-alarm.d.ts.map +1 -1
  268. package/dist/cjs/clusters/smoke-co-alarm.js +2 -3
  269. package/dist/cjs/clusters/smoke-co-alarm.js.map +1 -1
  270. package/dist/cjs/clusters/switch.d.ts +478 -191
  271. package/dist/cjs/clusters/switch.d.ts.map +1 -1
  272. package/dist/cjs/clusters/switch.js +145 -57
  273. package/dist/cjs/clusters/switch.js.map +1 -1
  274. package/dist/cjs/clusters/target-navigator.d.ts +1 -1
  275. package/dist/cjs/clusters/target-navigator.js +1 -1
  276. package/dist/cjs/clusters/thermostat.d.ts +3877 -830
  277. package/dist/cjs/clusters/thermostat.d.ts.map +1 -1
  278. package/dist/cjs/clusters/thermostat.js +841 -159
  279. package/dist/cjs/clusters/thermostat.js.map +2 -2
  280. package/dist/cjs/clusters/thread-border-router-management.d.ts +711 -0
  281. package/dist/cjs/clusters/thread-border-router-management.d.ts.map +1 -0
  282. package/dist/cjs/clusters/thread-border-router-management.js +265 -0
  283. package/dist/cjs/clusters/thread-border-router-management.js.map +6 -0
  284. package/dist/cjs/clusters/thread-network-diagnostics.d.ts +81 -55
  285. package/dist/cjs/clusters/thread-network-diagnostics.d.ts.map +1 -1
  286. package/dist/cjs/clusters/thread-network-diagnostics.js +32 -21
  287. package/dist/cjs/clusters/thread-network-diagnostics.js.map +1 -1
  288. package/dist/cjs/clusters/thread-network-directory.d.ts +250 -0
  289. package/dist/cjs/clusters/thread-network-directory.d.ts.map +1 -0
  290. package/dist/cjs/clusters/thread-network-directory.js +187 -0
  291. package/dist/cjs/clusters/thread-network-directory.js.map +6 -0
  292. package/dist/cjs/clusters/time-synchronization.d.ts +101 -76
  293. package/dist/cjs/clusters/time-synchronization.d.ts.map +1 -1
  294. package/dist/cjs/clusters/time-synchronization.js +30 -23
  295. package/dist/cjs/clusters/time-synchronization.js.map +1 -1
  296. package/dist/cjs/clusters/unit-localization.d.ts +3 -4
  297. package/dist/cjs/clusters/unit-localization.d.ts.map +1 -1
  298. package/dist/cjs/clusters/unit-localization.js.map +1 -1
  299. package/dist/cjs/clusters/user-label.d.ts +2 -1
  300. package/dist/cjs/clusters/user-label.d.ts.map +1 -1
  301. package/dist/cjs/clusters/user-label.js.map +1 -1
  302. package/dist/cjs/clusters/water-heater-management.d.ts +1371 -0
  303. package/dist/cjs/clusters/water-heater-management.d.ts.map +1 -0
  304. package/dist/cjs/clusters/water-heater-management.js +336 -0
  305. package/dist/cjs/clusters/water-heater-management.js.map +6 -0
  306. package/dist/cjs/clusters/water-heater-mode.d.ts +491 -0
  307. package/dist/cjs/clusters/water-heater-mode.d.ts.map +1 -0
  308. package/dist/cjs/clusters/water-heater-mode.js +195 -0
  309. package/dist/cjs/clusters/water-heater-mode.js.map +6 -0
  310. package/dist/cjs/clusters/water-tank-level-monitoring.d.ts +162 -0
  311. package/dist/cjs/clusters/water-tank-level-monitoring.d.ts.map +1 -0
  312. package/dist/cjs/clusters/water-tank-level-monitoring.js +47 -0
  313. package/dist/cjs/clusters/water-tank-level-monitoring.js.map +6 -0
  314. package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts +20 -27
  315. package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts.map +1 -1
  316. package/dist/cjs/clusters/wi-fi-network-diagnostics.js +6 -8
  317. package/dist/cjs/clusters/wi-fi-network-diagnostics.js.map +1 -1
  318. package/dist/cjs/clusters/wi-fi-network-management.d.ts +91 -0
  319. package/dist/cjs/clusters/wi-fi-network-management.d.ts.map +1 -0
  320. package/dist/cjs/clusters/wi-fi-network-management.js +122 -0
  321. package/dist/cjs/clusters/wi-fi-network-management.js.map +6 -0
  322. package/dist/cjs/clusters/window-covering.d.ts +66 -78
  323. package/dist/cjs/clusters/window-covering.d.ts.map +1 -1
  324. package/dist/cjs/clusters/window-covering.js +26 -37
  325. package/dist/cjs/clusters/window-covering.js.map +1 -1
  326. package/dist/cjs/common/ValidationError.d.ts.map +1 -1
  327. package/dist/cjs/datatype/AttributeId.d.ts.map +1 -1
  328. package/dist/cjs/datatype/CaseAuthenticatedTag.d.ts.map +1 -1
  329. package/dist/cjs/datatype/ClusterId.d.ts.map +1 -1
  330. package/dist/cjs/datatype/CommandId.d.ts +1 -0
  331. package/dist/cjs/datatype/CommandId.d.ts.map +1 -1
  332. package/dist/cjs/datatype/CommandId.js +3 -0
  333. package/dist/cjs/datatype/CommandId.js.map +1 -1
  334. package/dist/cjs/datatype/FieldId.d.ts.map +1 -1
  335. package/dist/cjs/datatype/ManufacturerExtensibleIdentifier.d.ts.map +1 -1
  336. package/dist/cjs/datatype/NodeId.d.ts.map +1 -1
  337. package/dist/cjs/datatype/VendorId.d.ts.map +1 -1
  338. package/dist/cjs/globals/AtomicAttributeStatus.d.ts +34 -0
  339. package/dist/cjs/globals/AtomicAttributeStatus.d.ts.map +1 -0
  340. package/dist/cjs/globals/AtomicAttributeStatus.js +46 -0
  341. package/dist/cjs/globals/AtomicAttributeStatus.js.map +6 -0
  342. package/dist/cjs/globals/AtomicRequestType.d.ts +24 -0
  343. package/dist/cjs/globals/AtomicRequestType.d.ts.map +1 -0
  344. package/dist/cjs/globals/AtomicRequestType.js +35 -0
  345. package/dist/cjs/globals/AtomicRequestType.js.map +6 -0
  346. package/dist/cjs/globals/Locationdesc.d.ts +79 -0
  347. package/dist/cjs/globals/Locationdesc.d.ts.map +1 -0
  348. package/dist/cjs/globals/Locationdesc.js +89 -0
  349. package/dist/cjs/globals/Locationdesc.js.map +6 -0
  350. package/dist/cjs/globals/Priority.d.ts +1 -1
  351. package/dist/cjs/globals/Semtag.d.ts +6 -6
  352. package/dist/cjs/globals/Semtag.js +4 -4
  353. package/dist/cjs/globals/SoftwareVersionCertificationStatus.d.ts +1 -1
  354. package/dist/cjs/globals/Status.d.ts +18 -3
  355. package/dist/cjs/globals/Status.d.ts.map +1 -1
  356. package/dist/cjs/globals/Status.js +3 -1
  357. package/dist/cjs/globals/Status.js.map +1 -1
  358. package/dist/cjs/globals/Tod.d.ts +2 -2
  359. package/dist/cjs/globals/index.d.ts +3 -0
  360. package/dist/cjs/globals/index.d.ts.map +1 -1
  361. package/dist/cjs/globals/index.js +3 -0
  362. package/dist/cjs/globals/index.js.map +1 -1
  363. package/dist/cjs/schema/BitmapSchema.d.ts.map +1 -1
  364. package/dist/cjs/schema/PairingCodeSchema.d.ts +32 -4
  365. package/dist/cjs/schema/PairingCodeSchema.d.ts.map +1 -1
  366. package/dist/cjs/schema/PairingCodeSchema.js +17 -3
  367. package/dist/cjs/schema/PairingCodeSchema.js.map +1 -1
  368. package/dist/cjs/schema/QrCodeSchema.d.ts.map +1 -1
  369. package/dist/cjs/schema/QrCodeSchema.js +4 -1
  370. package/dist/cjs/schema/QrCodeSchema.js.map +1 -1
  371. package/dist/cjs/schema/SpecificationVersionSchema.d.ts.map +1 -1
  372. package/dist/cjs/tlv/TlvArray.d.ts.map +1 -1
  373. package/dist/cjs/tlv/TlvNullable.d.ts.map +1 -1
  374. package/dist/cjs/tlv/TlvNumber.d.ts.map +1 -1
  375. package/dist/cjs/tlv/TlvObject.d.ts.map +1 -1
  376. package/dist/esm/cluster/Cluster.d.ts.map +1 -1
  377. package/dist/esm/cluster/ClusterHelper.d.ts.map +1 -1
  378. package/dist/esm/clusters/access-control.d.ts +3972 -522
  379. package/dist/esm/clusters/access-control.d.ts.map +1 -1
  380. package/dist/esm/clusters/access-control.js +645 -120
  381. package/dist/esm/clusters/access-control.js.map +2 -2
  382. package/dist/esm/clusters/actions.d.ts +10 -9
  383. package/dist/esm/clusters/actions.d.ts.map +1 -1
  384. package/dist/esm/clusters/actions.js +4 -4
  385. package/dist/esm/clusters/actions.js.map +1 -1
  386. package/dist/esm/clusters/administrator-commissioning.d.ts +156 -129
  387. package/dist/esm/clusters/administrator-commissioning.d.ts.map +1 -1
  388. package/dist/esm/clusters/administrator-commissioning.js +40 -35
  389. package/dist/esm/clusters/administrator-commissioning.js.map +1 -1
  390. package/dist/esm/clusters/alarm-base.d.ts +9 -12
  391. package/dist/esm/clusters/alarm-base.d.ts.map +1 -1
  392. package/dist/esm/clusters/alarm-base.js +3 -4
  393. package/dist/esm/clusters/alarm-base.js.map +1 -1
  394. package/dist/esm/clusters/application-launcher.d.ts +27 -15
  395. package/dist/esm/clusters/application-launcher.d.ts.map +1 -1
  396. package/dist/esm/clusters/application-launcher.js +7 -4
  397. package/dist/esm/clusters/application-launcher.js.map +1 -1
  398. package/dist/esm/clusters/ballast-configuration.d.ts +7 -7
  399. package/dist/esm/clusters/ballast-configuration.js +7 -7
  400. package/dist/esm/clusters/basic-information.d.ts +29 -21
  401. package/dist/esm/clusters/basic-information.d.ts.map +1 -1
  402. package/dist/esm/clusters/basic-information.js +29 -21
  403. package/dist/esm/clusters/basic-information.js.map +1 -1
  404. package/dist/esm/clusters/bridged-device-basic-information.d.ts +816 -34
  405. package/dist/esm/clusters/bridged-device-basic-information.d.ts.map +1 -1
  406. package/dist/esm/clusters/bridged-device-basic-information.js +188 -32
  407. package/dist/esm/clusters/bridged-device-basic-information.js.map +2 -2
  408. package/dist/esm/clusters/channel.d.ts +115 -124
  409. package/dist/esm/clusters/channel.d.ts.map +1 -1
  410. package/dist/esm/clusters/channel.js +15 -16
  411. package/dist/esm/clusters/channel.js.map +1 -1
  412. package/dist/esm/clusters/color-control.d.ts +3076 -1366
  413. package/dist/esm/clusters/color-control.d.ts.map +1 -1
  414. package/dist/esm/clusters/color-control.js +424 -358
  415. package/dist/esm/clusters/color-control.js.map +2 -2
  416. package/dist/esm/clusters/commissioner-control.d.ts +268 -0
  417. package/dist/esm/clusters/commissioner-control.d.ts.map +1 -0
  418. package/dist/esm/clusters/commissioner-control.js +174 -0
  419. package/dist/esm/clusters/commissioner-control.js.map +6 -0
  420. package/dist/esm/clusters/content-control.d.ts +497 -221
  421. package/dist/esm/clusters/content-control.d.ts.map +1 -1
  422. package/dist/esm/clusters/content-control.js +60 -42
  423. package/dist/esm/clusters/content-control.js.map +2 -2
  424. package/dist/esm/clusters/content-launcher.d.ts +248 -215
  425. package/dist/esm/clusters/content-launcher.d.ts.map +1 -1
  426. package/dist/esm/clusters/content-launcher.js +16 -15
  427. package/dist/esm/clusters/content-launcher.js.map +1 -1
  428. package/dist/esm/clusters/device-energy-management-mode.d.ts +76 -333
  429. package/dist/esm/clusters/device-energy-management-mode.d.ts.map +1 -1
  430. package/dist/esm/clusters/device-energy-management-mode.js +26 -80
  431. package/dist/esm/clusters/device-energy-management-mode.js.map +1 -1
  432. package/dist/esm/clusters/device-energy-management.d.ts +1299 -930
  433. package/dist/esm/clusters/device-energy-management.d.ts.map +1 -1
  434. package/dist/esm/clusters/device-energy-management.js +189 -160
  435. package/dist/esm/clusters/device-energy-management.js.map +2 -2
  436. package/dist/esm/clusters/dishwasher-alarm.d.ts +14 -17
  437. package/dist/esm/clusters/dishwasher-alarm.d.ts.map +1 -1
  438. package/dist/esm/clusters/dishwasher-alarm.js +3 -4
  439. package/dist/esm/clusters/dishwasher-alarm.js.map +1 -1
  440. package/dist/esm/clusters/dishwasher-mode.d.ts +65 -105
  441. package/dist/esm/clusters/dishwasher-mode.d.ts.map +1 -1
  442. package/dist/esm/clusters/dishwasher-mode.js +13 -25
  443. package/dist/esm/clusters/dishwasher-mode.js.map +1 -1
  444. package/dist/esm/clusters/door-lock.d.ts +2751 -5427
  445. package/dist/esm/clusters/door-lock.d.ts.map +1 -1
  446. package/dist/esm/clusters/door-lock.js +482 -804
  447. package/dist/esm/clusters/door-lock.js.map +2 -2
  448. package/dist/esm/clusters/ecosystem-information.d.ts +186 -0
  449. package/dist/esm/clusters/ecosystem-information.d.ts.map +1 -0
  450. package/dist/esm/clusters/ecosystem-information.js +134 -0
  451. package/dist/esm/clusters/ecosystem-information.js.map +6 -0
  452. package/dist/esm/clusters/electrical-energy-measurement.d.ts +363 -368
  453. package/dist/esm/clusters/electrical-energy-measurement.d.ts.map +1 -1
  454. package/dist/esm/clusters/electrical-energy-measurement.js +15 -16
  455. package/dist/esm/clusters/electrical-energy-measurement.js.map +1 -1
  456. package/dist/esm/clusters/energy-evse-mode.d.ts +92 -330
  457. package/dist/esm/clusters/energy-evse-mode.d.ts.map +1 -1
  458. package/dist/esm/clusters/energy-evse-mode.js +25 -79
  459. package/dist/esm/clusters/energy-evse-mode.js.map +1 -1
  460. package/dist/esm/clusters/energy-evse.d.ts +557 -273
  461. package/dist/esm/clusters/energy-evse.d.ts.map +1 -1
  462. package/dist/esm/clusters/energy-evse.js +107 -55
  463. package/dist/esm/clusters/energy-evse.js.map +1 -1
  464. package/dist/esm/clusters/energy-preference.d.ts +76 -76
  465. package/dist/esm/clusters/energy-preference.d.ts.map +1 -1
  466. package/dist/esm/clusters/energy-preference.js +15 -18
  467. package/dist/esm/clusters/energy-preference.js.map +1 -1
  468. package/dist/esm/clusters/ethernet-network-diagnostics.d.ts +3 -9
  469. package/dist/esm/clusters/ethernet-network-diagnostics.d.ts.map +1 -1
  470. package/dist/esm/clusters/ethernet-network-diagnostics.js +1 -3
  471. package/dist/esm/clusters/ethernet-network-diagnostics.js.map +1 -1
  472. package/dist/esm/clusters/fan-control.d.ts +12 -12
  473. package/dist/esm/clusters/fan-control.js +4 -4
  474. package/dist/esm/clusters/fixed-label.d.ts +7 -2
  475. package/dist/esm/clusters/fixed-label.d.ts.map +1 -1
  476. package/dist/esm/clusters/fixed-label.js.map +1 -1
  477. package/dist/esm/clusters/flow-measurement.d.ts +4 -4
  478. package/dist/esm/clusters/flow-measurement.d.ts.map +1 -1
  479. package/dist/esm/clusters/flow-measurement.js +6 -6
  480. package/dist/esm/clusters/flow-measurement.js.map +1 -1
  481. package/dist/esm/clusters/general-commissioning.d.ts +1416 -111
  482. package/dist/esm/clusters/general-commissioning.d.ts.map +1 -1
  483. package/dist/esm/clusters/general-commissioning.js +274 -56
  484. package/dist/esm/clusters/general-commissioning.js.map +2 -2
  485. package/dist/esm/clusters/general-diagnostics.d.ts +115 -122
  486. package/dist/esm/clusters/general-diagnostics.d.ts.map +1 -1
  487. package/dist/esm/clusters/general-diagnostics.js +31 -33
  488. package/dist/esm/clusters/general-diagnostics.js.map +1 -1
  489. package/dist/esm/clusters/group-key-management.d.ts +72 -82
  490. package/dist/esm/clusters/group-key-management.d.ts.map +1 -1
  491. package/dist/esm/clusters/group-key-management.js +19 -22
  492. package/dist/esm/clusters/group-key-management.js.map +1 -1
  493. package/dist/esm/clusters/groups.d.ts +9 -6
  494. package/dist/esm/clusters/groups.d.ts.map +1 -1
  495. package/dist/esm/clusters/groups.js +3 -2
  496. package/dist/esm/clusters/groups.js.map +1 -1
  497. package/dist/esm/clusters/icd-management.d.ts +223 -66
  498. package/dist/esm/clusters/icd-management.d.ts.map +1 -1
  499. package/dist/esm/clusters/icd-management.js +61 -23
  500. package/dist/esm/clusters/icd-management.js.map +2 -2
  501. package/dist/esm/clusters/identify.d.ts +12 -13
  502. package/dist/esm/clusters/identify.d.ts.map +1 -1
  503. package/dist/esm/clusters/identify.js +9 -10
  504. package/dist/esm/clusters/identify.js.map +1 -1
  505. package/dist/esm/clusters/illuminance-measurement.d.ts +7 -8
  506. package/dist/esm/clusters/illuminance-measurement.d.ts.map +1 -1
  507. package/dist/esm/clusters/illuminance-measurement.js +9 -10
  508. package/dist/esm/clusters/illuminance-measurement.js.map +1 -1
  509. package/dist/esm/clusters/index.d.ts +11 -1
  510. package/dist/esm/clusters/index.d.ts.map +1 -1
  511. package/dist/esm/clusters/index.js +36 -3
  512. package/dist/esm/clusters/index.js.map +1 -1
  513. package/dist/esm/clusters/joint-fabric-datastore-cluster.d.ts +1239 -0
  514. package/dist/esm/clusters/joint-fabric-datastore-cluster.d.ts.map +1 -0
  515. package/dist/esm/clusters/joint-fabric-datastore-cluster.js +470 -0
  516. package/dist/esm/clusters/joint-fabric-datastore-cluster.js.map +6 -0
  517. package/dist/esm/clusters/joint-fabric-pki.d.ts +174 -0
  518. package/dist/esm/clusters/joint-fabric-pki.d.ts.map +1 -0
  519. package/dist/esm/clusters/joint-fabric-pki.js +100 -0
  520. package/dist/esm/clusters/joint-fabric-pki.js.map +6 -0
  521. package/dist/esm/clusters/keypad-input.d.ts +2 -2
  522. package/dist/esm/clusters/laundry-dryer-controls.d.ts +6 -7
  523. package/dist/esm/clusters/laundry-dryer-controls.d.ts.map +1 -1
  524. package/dist/esm/clusters/laundry-dryer-controls.js +6 -10
  525. package/dist/esm/clusters/laundry-dryer-controls.js.map +1 -1
  526. package/dist/esm/clusters/laundry-washer-controls.d.ts +74 -62
  527. package/dist/esm/clusters/laundry-washer-controls.d.ts.map +1 -1
  528. package/dist/esm/clusters/laundry-washer-controls.js +26 -25
  529. package/dist/esm/clusters/laundry-washer-controls.js.map +1 -1
  530. package/dist/esm/clusters/laundry-washer-mode.d.ts +69 -109
  531. package/dist/esm/clusters/laundry-washer-mode.d.ts.map +1 -1
  532. package/dist/esm/clusters/laundry-washer-mode.js +14 -26
  533. package/dist/esm/clusters/laundry-washer-mode.js.map +1 -1
  534. package/dist/esm/clusters/level-control.d.ts +209 -70
  535. package/dist/esm/clusters/level-control.d.ts.map +1 -1
  536. package/dist/esm/clusters/level-control.js +45 -12
  537. package/dist/esm/clusters/level-control.js.map +1 -1
  538. package/dist/esm/clusters/localization-configuration.d.ts +5 -6
  539. package/dist/esm/clusters/localization-configuration.d.ts.map +1 -1
  540. package/dist/esm/clusters/localization-configuration.js +5 -6
  541. package/dist/esm/clusters/localization-configuration.js.map +1 -1
  542. package/dist/esm/clusters/media-input.d.ts +9 -6
  543. package/dist/esm/clusters/media-input.d.ts.map +1 -1
  544. package/dist/esm/clusters/media-input.js +3 -2
  545. package/dist/esm/clusters/media-input.js.map +1 -1
  546. package/dist/esm/clusters/media-playback.d.ts +29 -24
  547. package/dist/esm/clusters/media-playback.d.ts.map +1 -1
  548. package/dist/esm/clusters/media-playback.js +5 -4
  549. package/dist/esm/clusters/media-playback.js.map +1 -1
  550. package/dist/esm/clusters/microwave-oven-control.d.ts +54 -48
  551. package/dist/esm/clusters/microwave-oven-control.d.ts.map +1 -1
  552. package/dist/esm/clusters/microwave-oven-control.js +19 -17
  553. package/dist/esm/clusters/microwave-oven-control.js.map +1 -1
  554. package/dist/esm/clusters/microwave-oven-mode.d.ts +63 -69
  555. package/dist/esm/clusters/microwave-oven-mode.d.ts.map +1 -1
  556. package/dist/esm/clusters/microwave-oven-mode.js +14 -11
  557. package/dist/esm/clusters/microwave-oven-mode.js.map +1 -1
  558. package/dist/esm/clusters/mode-base.d.ts +27 -46
  559. package/dist/esm/clusters/mode-base.d.ts.map +1 -1
  560. package/dist/esm/clusters/mode-base.js +9 -10
  561. package/dist/esm/clusters/mode-base.js.map +1 -1
  562. package/dist/esm/clusters/mode-select.d.ts +33 -27
  563. package/dist/esm/clusters/mode-select.d.ts.map +1 -1
  564. package/dist/esm/clusters/mode-select.js +14 -13
  565. package/dist/esm/clusters/mode-select.js.map +1 -1
  566. package/dist/esm/clusters/network-commissioning.d.ts +263 -240
  567. package/dist/esm/clusters/network-commissioning.d.ts.map +1 -1
  568. package/dist/esm/clusters/network-commissioning.js +46 -39
  569. package/dist/esm/clusters/network-commissioning.js.map +1 -1
  570. package/dist/esm/clusters/occupancy-sensing.d.ts +1002 -63
  571. package/dist/esm/clusters/occupancy-sensing.d.ts.map +1 -1
  572. package/dist/esm/clusters/occupancy-sensing.js +287 -65
  573. package/dist/esm/clusters/occupancy-sensing.js.map +2 -2
  574. package/dist/esm/clusters/on-off.d.ts +18 -24
  575. package/dist/esm/clusters/on-off.d.ts.map +1 -1
  576. package/dist/esm/clusters/on-off.js +3 -4
  577. package/dist/esm/clusters/on-off.js.map +1 -1
  578. package/dist/esm/clusters/operational-credentials.d.ts +98 -85
  579. package/dist/esm/clusters/operational-credentials.d.ts.map +1 -1
  580. package/dist/esm/clusters/operational-credentials.js +56 -49
  581. package/dist/esm/clusters/operational-credentials.js.map +1 -1
  582. package/dist/esm/clusters/operational-state.d.ts +136 -57
  583. package/dist/esm/clusters/operational-state.d.ts.map +1 -1
  584. package/dist/esm/clusters/operational-state.js +63 -37
  585. package/dist/esm/clusters/operational-state.js.map +2 -2
  586. package/dist/esm/clusters/ota-software-update-provider.d.ts +43 -42
  587. package/dist/esm/clusters/ota-software-update-provider.d.ts.map +1 -1
  588. package/dist/esm/clusters/ota-software-update-provider.js +20 -19
  589. package/dist/esm/clusters/ota-software-update-provider.js.map +1 -1
  590. package/dist/esm/clusters/ota-software-update-requestor.d.ts +6 -10
  591. package/dist/esm/clusters/ota-software-update-requestor.d.ts.map +1 -1
  592. package/dist/esm/clusters/ota-software-update-requestor.js +4 -6
  593. package/dist/esm/clusters/ota-software-update-requestor.js.map +1 -1
  594. package/dist/esm/clusters/oven-cavity-operational-state.d.ts +44 -154
  595. package/dist/esm/clusters/oven-cavity-operational-state.d.ts.map +1 -1
  596. package/dist/esm/clusters/oven-cavity-operational-state.js +41 -166
  597. package/dist/esm/clusters/oven-cavity-operational-state.js.map +1 -1
  598. package/dist/esm/clusters/oven-mode.d.ts +79 -349
  599. package/dist/esm/clusters/oven-mode.d.ts.map +1 -1
  600. package/dist/esm/clusters/oven-mode.js +26 -89
  601. package/dist/esm/clusters/oven-mode.js.map +1 -1
  602. package/dist/esm/clusters/power-source.d.ts +169 -44
  603. package/dist/esm/clusters/power-source.d.ts.map +1 -1
  604. package/dist/esm/clusters/power-source.js +40 -16
  605. package/dist/esm/clusters/power-source.js.map +1 -1
  606. package/dist/esm/clusters/pressure-measurement.js +2 -2
  607. package/dist/esm/clusters/pressure-measurement.js.map +1 -1
  608. package/dist/esm/clusters/pump-configuration-and-control.d.ts +73 -63
  609. package/dist/esm/clusters/pump-configuration-and-control.d.ts.map +1 -1
  610. package/dist/esm/clusters/pump-configuration-and-control.js +19 -20
  611. package/dist/esm/clusters/pump-configuration-and-control.js.map +1 -1
  612. package/dist/esm/clusters/refrigerator-alarm.d.ts +2 -1
  613. package/dist/esm/clusters/refrigerator-alarm.d.ts.map +1 -1
  614. package/dist/esm/clusters/refrigerator-alarm.js.map +1 -1
  615. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +59 -91
  616. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  617. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +12 -20
  618. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  619. package/dist/esm/clusters/relative-humidity-measurement.js +1 -1
  620. package/dist/esm/clusters/relative-humidity-measurement.js.map +1 -1
  621. package/dist/esm/clusters/rvc-clean-mode.d.ts +59 -103
  622. package/dist/esm/clusters/rvc-clean-mode.d.ts.map +1 -1
  623. package/dist/esm/clusters/rvc-clean-mode.js +11 -15
  624. package/dist/esm/clusters/rvc-clean-mode.js.map +1 -1
  625. package/dist/esm/clusters/rvc-operational-state.d.ts +81 -25
  626. package/dist/esm/clusters/rvc-operational-state.d.ts.map +1 -1
  627. package/dist/esm/clusters/rvc-operational-state.js +49 -20
  628. package/dist/esm/clusters/rvc-operational-state.js.map +1 -1
  629. package/dist/esm/clusters/rvc-run-mode.d.ts +85 -129
  630. package/dist/esm/clusters/rvc-run-mode.d.ts.map +1 -1
  631. package/dist/esm/clusters/rvc-run-mode.js +16 -15
  632. package/dist/esm/clusters/rvc-run-mode.js.map +1 -1
  633. package/dist/esm/clusters/scenes-management.d.ts +328 -181
  634. package/dist/esm/clusters/scenes-management.d.ts.map +1 -1
  635. package/dist/esm/clusters/scenes-management.js +37 -22
  636. package/dist/esm/clusters/scenes-management.js.map +1 -1
  637. package/dist/esm/clusters/service-area.d.ts +2052 -0
  638. package/dist/esm/clusters/service-area.d.ts.map +1 -0
  639. package/dist/esm/clusters/service-area.js +562 -0
  640. package/dist/esm/clusters/service-area.js.map +6 -0
  641. package/dist/esm/clusters/smoke-co-alarm.d.ts +10 -18
  642. package/dist/esm/clusters/smoke-co-alarm.d.ts.map +1 -1
  643. package/dist/esm/clusters/smoke-co-alarm.js +2 -3
  644. package/dist/esm/clusters/smoke-co-alarm.js.map +1 -1
  645. package/dist/esm/clusters/switch.d.ts +478 -191
  646. package/dist/esm/clusters/switch.d.ts.map +1 -1
  647. package/dist/esm/clusters/switch.js +145 -57
  648. package/dist/esm/clusters/switch.js.map +1 -1
  649. package/dist/esm/clusters/target-navigator.d.ts +1 -1
  650. package/dist/esm/clusters/target-navigator.js +1 -1
  651. package/dist/esm/clusters/thermostat.d.ts +3877 -830
  652. package/dist/esm/clusters/thermostat.d.ts.map +1 -1
  653. package/dist/esm/clusters/thermostat.js +842 -160
  654. package/dist/esm/clusters/thermostat.js.map +2 -2
  655. package/dist/esm/clusters/thread-border-router-management.d.ts +711 -0
  656. package/dist/esm/clusters/thread-border-router-management.d.ts.map +1 -0
  657. package/dist/esm/clusters/thread-border-router-management.js +245 -0
  658. package/dist/esm/clusters/thread-border-router-management.js.map +6 -0
  659. package/dist/esm/clusters/thread-network-diagnostics.d.ts +81 -55
  660. package/dist/esm/clusters/thread-network-diagnostics.d.ts.map +1 -1
  661. package/dist/esm/clusters/thread-network-diagnostics.js +32 -21
  662. package/dist/esm/clusters/thread-network-diagnostics.js.map +1 -1
  663. package/dist/esm/clusters/thread-network-directory.d.ts +250 -0
  664. package/dist/esm/clusters/thread-network-directory.d.ts.map +1 -0
  665. package/dist/esm/clusters/thread-network-directory.js +167 -0
  666. package/dist/esm/clusters/thread-network-directory.js.map +6 -0
  667. package/dist/esm/clusters/time-synchronization.d.ts +101 -76
  668. package/dist/esm/clusters/time-synchronization.d.ts.map +1 -1
  669. package/dist/esm/clusters/time-synchronization.js +30 -23
  670. package/dist/esm/clusters/time-synchronization.js.map +1 -1
  671. package/dist/esm/clusters/unit-localization.d.ts +3 -4
  672. package/dist/esm/clusters/unit-localization.d.ts.map +1 -1
  673. package/dist/esm/clusters/unit-localization.js.map +1 -1
  674. package/dist/esm/clusters/user-label.d.ts +2 -1
  675. package/dist/esm/clusters/user-label.d.ts.map +1 -1
  676. package/dist/esm/clusters/user-label.js.map +1 -1
  677. package/dist/esm/clusters/water-heater-management.d.ts +1371 -0
  678. package/dist/esm/clusters/water-heater-management.d.ts.map +1 -0
  679. package/dist/esm/clusters/water-heater-management.js +325 -0
  680. package/dist/esm/clusters/water-heater-management.js.map +6 -0
  681. package/dist/esm/clusters/water-heater-mode.d.ts +491 -0
  682. package/dist/esm/clusters/water-heater-mode.d.ts.map +1 -0
  683. package/dist/esm/clusters/water-heater-mode.js +175 -0
  684. package/dist/esm/clusters/water-heater-mode.js.map +6 -0
  685. package/dist/esm/clusters/water-tank-level-monitoring.d.ts +162 -0
  686. package/dist/esm/clusters/water-tank-level-monitoring.d.ts.map +1 -0
  687. package/dist/esm/clusters/water-tank-level-monitoring.js +27 -0
  688. package/dist/esm/clusters/water-tank-level-monitoring.js.map +6 -0
  689. package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts +20 -27
  690. package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts.map +1 -1
  691. package/dist/esm/clusters/wi-fi-network-diagnostics.js +6 -8
  692. package/dist/esm/clusters/wi-fi-network-diagnostics.js.map +1 -1
  693. package/dist/esm/clusters/wi-fi-network-management.d.ts +91 -0
  694. package/dist/esm/clusters/wi-fi-network-management.d.ts.map +1 -0
  695. package/dist/esm/clusters/wi-fi-network-management.js +102 -0
  696. package/dist/esm/clusters/wi-fi-network-management.js.map +6 -0
  697. package/dist/esm/clusters/window-covering.d.ts +66 -78
  698. package/dist/esm/clusters/window-covering.d.ts.map +1 -1
  699. package/dist/esm/clusters/window-covering.js +26 -37
  700. package/dist/esm/clusters/window-covering.js.map +1 -1
  701. package/dist/esm/common/ValidationError.d.ts.map +1 -1
  702. package/dist/esm/datatype/AttributeId.d.ts.map +1 -1
  703. package/dist/esm/datatype/CaseAuthenticatedTag.d.ts.map +1 -1
  704. package/dist/esm/datatype/ClusterId.d.ts.map +1 -1
  705. package/dist/esm/datatype/CommandId.d.ts +1 -0
  706. package/dist/esm/datatype/CommandId.d.ts.map +1 -1
  707. package/dist/esm/datatype/CommandId.js +3 -0
  708. package/dist/esm/datatype/CommandId.js.map +1 -1
  709. package/dist/esm/datatype/FieldId.d.ts.map +1 -1
  710. package/dist/esm/datatype/ManufacturerExtensibleIdentifier.d.ts.map +1 -1
  711. package/dist/esm/datatype/NodeId.d.ts.map +1 -1
  712. package/dist/esm/datatype/VendorId.d.ts.map +1 -1
  713. package/dist/esm/globals/AtomicAttributeStatus.d.ts +34 -0
  714. package/dist/esm/globals/AtomicAttributeStatus.d.ts.map +1 -0
  715. package/dist/esm/globals/AtomicAttributeStatus.js +26 -0
  716. package/dist/esm/globals/AtomicAttributeStatus.js.map +6 -0
  717. package/dist/esm/globals/AtomicRequestType.d.ts +24 -0
  718. package/dist/esm/globals/AtomicRequestType.d.ts.map +1 -0
  719. package/dist/esm/globals/AtomicRequestType.js +15 -0
  720. package/dist/esm/globals/AtomicRequestType.js.map +6 -0
  721. package/dist/esm/globals/Locationdesc.d.ts +79 -0
  722. package/dist/esm/globals/Locationdesc.d.ts.map +1 -0
  723. package/dist/esm/globals/Locationdesc.js +69 -0
  724. package/dist/esm/globals/Locationdesc.js.map +6 -0
  725. package/dist/esm/globals/Priority.d.ts +1 -1
  726. package/dist/esm/globals/Semtag.d.ts +6 -6
  727. package/dist/esm/globals/Semtag.js +4 -4
  728. package/dist/esm/globals/SoftwareVersionCertificationStatus.d.ts +1 -1
  729. package/dist/esm/globals/Status.d.ts +18 -3
  730. package/dist/esm/globals/Status.d.ts.map +1 -1
  731. package/dist/esm/globals/Status.js +3 -1
  732. package/dist/esm/globals/Status.js.map +1 -1
  733. package/dist/esm/globals/Tod.d.ts +2 -2
  734. package/dist/esm/globals/index.d.ts +3 -0
  735. package/dist/esm/globals/index.d.ts.map +1 -1
  736. package/dist/esm/globals/index.js +3 -0
  737. package/dist/esm/globals/index.js.map +1 -1
  738. package/dist/esm/schema/BitmapSchema.d.ts.map +1 -1
  739. package/dist/esm/schema/PairingCodeSchema.d.ts +32 -4
  740. package/dist/esm/schema/PairingCodeSchema.d.ts.map +1 -1
  741. package/dist/esm/schema/PairingCodeSchema.js +17 -3
  742. package/dist/esm/schema/PairingCodeSchema.js.map +1 -1
  743. package/dist/esm/schema/QrCodeSchema.d.ts.map +1 -1
  744. package/dist/esm/schema/QrCodeSchema.js +4 -1
  745. package/dist/esm/schema/QrCodeSchema.js.map +1 -1
  746. package/dist/esm/schema/SpecificationVersionSchema.d.ts.map +1 -1
  747. package/dist/esm/tlv/TlvArray.d.ts.map +1 -1
  748. package/dist/esm/tlv/TlvNullable.d.ts.map +1 -1
  749. package/dist/esm/tlv/TlvNumber.d.ts.map +1 -1
  750. package/dist/esm/tlv/TlvObject.d.ts.map +1 -1
  751. package/package.json +5 -5
  752. package/src/clusters/access-control.ts +926 -171
  753. package/src/clusters/actions.ts +12 -11
  754. package/src/clusters/administrator-commissioning.ts +54 -35
  755. package/src/clusters/alarm-base.ts +3 -4
  756. package/src/clusters/application-launcher.ts +22 -7
  757. package/src/clusters/ballast-configuration.ts +7 -7
  758. package/src/clusters/basic-information.ts +29 -21
  759. package/src/clusters/bridged-device-basic-information.ts +264 -41
  760. package/src/clusters/channel.ts +20 -17
  761. package/src/clusters/color-control.ts +589 -426
  762. package/src/clusters/commissioner-control.ts +282 -0
  763. package/src/clusters/content-control.ts +48 -54
  764. package/src/clusters/content-launcher.ts +16 -15
  765. package/src/clusters/device-energy-management-mode.ts +63 -161
  766. package/src/clusters/device-energy-management.ts +246 -193
  767. package/src/clusters/dishwasher-alarm.ts +5 -5
  768. package/src/clusters/dishwasher-mode.ts +46 -87
  769. package/src/clusters/door-lock.ts +786 -1235
  770. package/src/clusters/ecosystem-information.ts +200 -0
  771. package/src/clusters/electrical-energy-measurement.ts +15 -16
  772. package/src/clusters/energy-evse-mode.ts +81 -158
  773. package/src/clusters/energy-evse.ts +138 -72
  774. package/src/clusters/energy-preference.ts +34 -28
  775. package/src/clusters/ethernet-network-diagnostics.ts +1 -3
  776. package/src/clusters/fan-control.ts +5 -5
  777. package/src/clusters/fixed-label.ts +7 -2
  778. package/src/clusters/flow-measurement.ts +6 -6
  779. package/src/clusters/general-commissioning.ts +396 -96
  780. package/src/clusters/general-diagnostics.ts +31 -33
  781. package/src/clusters/group-key-management.ts +22 -24
  782. package/src/clusters/groups.ts +3 -2
  783. package/src/clusters/icd-management.ts +88 -31
  784. package/src/clusters/identify.ts +9 -10
  785. package/src/clusters/illuminance-measurement.ts +9 -10
  786. package/src/clusters/index.ts +14 -1
  787. package/src/clusters/joint-fabric-datastore-cluster.ts +657 -0
  788. package/src/clusters/joint-fabric-pki.ts +202 -0
  789. package/src/clusters/keypad-input.ts +2 -2
  790. package/src/clusters/laundry-dryer-controls.ts +6 -10
  791. package/src/clusters/laundry-washer-controls.ts +28 -27
  792. package/src/clusters/laundry-washer-mode.ts +49 -90
  793. package/src/clusters/level-control.ts +45 -12
  794. package/src/clusters/localization-configuration.ts +5 -6
  795. package/src/clusters/media-input.ts +3 -2
  796. package/src/clusters/media-playback.ts +9 -7
  797. package/src/clusters/microwave-oven-control.ts +19 -17
  798. package/src/clusters/microwave-oven-mode.ts +42 -61
  799. package/src/clusters/mode-base.ts +16 -33
  800. package/src/clusters/mode-select.ts +17 -14
  801. package/src/clusters/network-commissioning.ts +47 -40
  802. package/src/clusters/occupancy-sensing.ts +433 -72
  803. package/src/clusters/on-off.ts +6 -8
  804. package/src/clusters/operational-credentials.ts +54 -47
  805. package/src/clusters/operational-state.ts +136 -58
  806. package/src/clusters/ota-software-update-provider.ts +23 -23
  807. package/src/clusters/ota-software-update-requestor.ts +4 -6
  808. package/src/clusters/oven-cavity-operational-state.ts +43 -171
  809. package/src/clusters/oven-mode.ts +76 -178
  810. package/src/clusters/power-source.ts +45 -21
  811. package/src/clusters/pressure-measurement.ts +2 -2
  812. package/src/clusters/pump-configuration-and-control.ts +35 -23
  813. package/src/clusters/refrigerator-alarm.ts +2 -1
  814. package/src/clusters/refrigerator-and-temperature-controlled-cabinet-mode.ts +41 -78
  815. package/src/clusters/relative-humidity-measurement.ts +1 -1
  816. package/src/clusters/rvc-clean-mode.ts +42 -101
  817. package/src/clusters/rvc-operational-state.ts +87 -25
  818. package/src/clusters/rvc-run-mode.ts +62 -126
  819. package/src/clusters/scenes-management.ts +38 -23
  820. package/src/clusters/service-area.ts +904 -0
  821. package/src/clusters/smoke-co-alarm.ts +6 -12
  822. package/src/clusters/switch.ts +177 -78
  823. package/src/clusters/target-navigator.ts +1 -1
  824. package/src/clusters/thermostat.ts +1245 -214
  825. package/src/clusters/thread-border-router-management.ts +355 -0
  826. package/src/clusters/thread-network-diagnostics.ts +34 -21
  827. package/src/clusters/thread-network-directory.ts +256 -0
  828. package/src/clusters/time-synchronization.ts +30 -23
  829. package/src/clusters/unit-localization.ts +3 -4
  830. package/src/clusters/user-label.ts +2 -1
  831. package/src/clusters/water-heater-management.ts +457 -0
  832. package/src/clusters/water-heater-mode.ts +301 -0
  833. package/src/clusters/water-tank-level-monitoring.ts +50 -0
  834. package/src/clusters/wi-fi-network-diagnostics.ts +6 -8
  835. package/src/clusters/wi-fi-network-management.ts +119 -0
  836. package/src/clusters/window-covering.ts +26 -37
  837. package/src/datatype/CommandId.ts +4 -0
  838. package/src/globals/AtomicAttributeStatus.ts +41 -0
  839. package/src/globals/AtomicRequestType.ts +27 -0
  840. package/src/globals/Locationdesc.ts +88 -0
  841. package/src/globals/Priority.ts +1 -1
  842. package/src/globals/Semtag.ts +6 -6
  843. package/src/globals/SoftwareVersionCertificationStatus.ts +1 -1
  844. package/src/globals/Status.ts +20 -3
  845. package/src/globals/Tod.ts +2 -2
  846. package/src/globals/index.ts +3 -0
  847. package/src/schema/PairingCodeSchema.ts +17 -2
  848. package/src/schema/QrCodeSchema.ts +7 -2
  849. package/dist/cjs/clusters/pulse-width-modulation.d.ts +0 -2023
  850. package/dist/cjs/clusters/pulse-width-modulation.d.ts.map +0 -1
  851. package/dist/cjs/clusters/pulse-width-modulation.js +0 -51
  852. package/dist/cjs/clusters/pulse-width-modulation.js.map +0 -6
  853. package/dist/esm/clusters/pulse-width-modulation.d.ts +0 -2023
  854. package/dist/esm/clusters/pulse-width-modulation.d.ts.map +0 -1
  855. package/dist/esm/clusters/pulse-width-modulation.js +0 -31
  856. package/dist/esm/clusters/pulse-width-modulation.js.map +0 -6
  857. package/src/clusters/pulse-width-modulation.ts +0 -54
@@ -18,10 +18,12 @@ import { OccupancySensing } from "./occupancy-sensing.js";
18
18
  import { TlvUInt8, TlvBitmap, TlvInt16, TlvInt8, TlvEnum, TlvUInt16, TlvEpochS, TlvUInt32 } from "../tlv/TlvNumber.js";
19
19
  import { BitsFromPartial, BitFlag, BitField } from "../schema/BitmapSchema.js";
20
20
  import { AccessLevel } from "#model";
21
- import { TlvField, TlvObject } from "../tlv/TlvObject.js";
21
+ import { TlvField, TlvObject, TlvOptionalField } from "../tlv/TlvObject.js";
22
22
  import { TlvArray } from "../tlv/TlvArray.js";
23
23
  import { TlvNullable } from "../tlv/TlvNullable.js";
24
24
  import { TlvNoArguments } from "../tlv/TlvNoArguments.js";
25
+ import { TlvByteString, TlvString } from "../tlv/TlvString.js";
26
+ import { TlvBoolean } from "../tlv/TlvBoolean.js";
25
27
  import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
26
28
  var Thermostat;
27
29
  ((Thermostat2) => {
@@ -34,6 +36,8 @@ var Thermostat;
34
36
  Feature2["Setback"] = "Setback";
35
37
  Feature2["AutoMode"] = "AutoMode";
36
38
  Feature2["LocalTemperatureNotExposed"] = "LocalTemperatureNotExposed";
39
+ Feature2["MatterScheduleConfiguration"] = "MatterScheduleConfiguration";
40
+ Feature2["Presets"] = "Presets";
37
41
  })(Feature = Thermostat2.Feature || (Thermostat2.Feature = {}));
38
42
  let ThermostatRunningMode;
39
43
  ((ThermostatRunningMode2) => {
@@ -102,19 +106,19 @@ var Thermostat;
102
106
  * will be represented by 360 minutes since midnight and 11:30pm will be represented by 1410 minutes since
103
107
  * midnight.
104
108
  *
105
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.24.1
109
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.30.1
106
110
  */
107
111
  transitionTime: TlvField(0, TlvUInt16.bound({ max: 1439 })),
108
112
  /**
109
113
  * This field shall represent the heat setpoint to be applied at this associated transition start time.
110
114
  *
111
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.24.2
115
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.30.2
112
116
  */
113
117
  heatSetpoint: TlvField(1, TlvNullable(TlvInt16)),
114
118
  /**
115
119
  * This field shall represent the cool setpoint to be applied at this associated transition start time.
116
120
  *
117
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.24.3
121
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.30.3
118
122
  */
119
123
  coolSetpoint: TlvField(2, TlvNullable(TlvInt16))
120
124
  });
@@ -124,7 +128,7 @@ var Thermostat;
124
128
  * device supports more than 10 transitions in its schedule they can send this by sending more than 1 “Set
125
129
  * Weekly Schedule” command, each containing the separate information that the device needs to set.
126
130
  *
127
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4.1
131
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.2.1
128
132
  */
129
133
  numberOfTransitionsForSequence: TlvField(0, TlvUInt8),
130
134
  /**
@@ -136,7 +140,7 @@ var Thermostat;
136
140
  * Each setpoint transition will begin with the day of week for this transition. There can be up to 10
137
141
  * transitions for each command.
138
142
  *
139
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4.2
143
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.2.2
140
144
  */
141
145
  dayOfWeekForSequence: TlvField(1, TlvBitmap(TlvUInt8, Thermostat2.ScheduleDayOfWeek)),
142
146
  /**
@@ -160,13 +164,13 @@ var Thermostat;
160
164
  * Both bits must be respected, even if the HEAT or COOL feature is not supported, to ensure the command is
161
165
  * decoded and handled correctly.
162
166
  *
163
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4.3
167
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.2.3
164
168
  */
165
169
  modeForSequence: TlvField(2, TlvBitmap(TlvUInt8, Thermostat2.ScheduleMode)),
166
170
  /**
167
171
  * This field shall contain the list of setpoint transitions used to update the specified daily schedules
168
172
  *
169
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4.4
173
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.2.4
170
174
  */
171
175
  transitions: TlvField(3, TlvArray(Thermostat2.TlvWeeklyScheduleTransition, { maxLength: 10 }))
172
176
  });
@@ -175,14 +179,14 @@ var Thermostat;
175
179
  * This field shall indicate the number of days the client would like to return the setpoint values for and
176
180
  * could be any combination of single days or the entire week.
177
181
  *
178
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.5.1
182
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.3.1
179
183
  */
180
184
  daysToReturn: TlvField(0, TlvBitmap(TlvUInt8, Thermostat2.ScheduleDayOfWeek)),
181
185
  /**
182
186
  * This field shall indicate the mode the client would like to return the set point values for and could be any
183
187
  * combination of heat only, cool only or heat & cool.
184
188
  *
185
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.5.2
189
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.3.2
186
190
  */
187
191
  modeToReturn: TlvField(1, TlvBitmap(TlvUInt8, Thermostat2.ScheduleMode))
188
192
  });
@@ -192,6 +196,301 @@ var Thermostat;
192
196
  modeForSequence: TlvField(2, TlvBitmap(TlvUInt8, Thermostat2.ScheduleMode)),
193
197
  transitions: TlvField(3, TlvArray(Thermostat2.TlvWeeklyScheduleTransition, { maxLength: 10 }))
194
198
  });
199
+ let PresetScenario;
200
+ ((PresetScenario2) => {
201
+ PresetScenario2[PresetScenario2["Occupied"] = 1] = "Occupied";
202
+ PresetScenario2[PresetScenario2["Unoccupied"] = 2] = "Unoccupied";
203
+ PresetScenario2[PresetScenario2["Sleep"] = 3] = "Sleep";
204
+ PresetScenario2[PresetScenario2["Wake"] = 4] = "Wake";
205
+ PresetScenario2[PresetScenario2["Vacation"] = 5] = "Vacation";
206
+ PresetScenario2[PresetScenario2["GoingToSleep"] = 6] = "GoingToSleep";
207
+ PresetScenario2[PresetScenario2["UserDefined"] = 254] = "UserDefined";
208
+ })(PresetScenario = Thermostat2.PresetScenario || (Thermostat2.PresetScenario = {}));
209
+ Thermostat2.PresetTypeFeatures = {
210
+ /**
211
+ * Preset may be automatically activated by the thermostat
212
+ */
213
+ automatic: BitFlag(0),
214
+ /**
215
+ * Preset supports user- provided names
216
+ */
217
+ supportsNames: BitFlag(1)
218
+ };
219
+ Thermostat2.TlvPresetType = TlvObject({
220
+ /**
221
+ * This field shall specify a PresetScenarioEnum value supported by this thermostat.
222
+ *
223
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.29.1
224
+ */
225
+ presetScenario: TlvField(0, TlvEnum()),
226
+ /**
227
+ * This field shall specify a limit for the number of presets for this PresetScenarioEnum.
228
+ *
229
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.29.2
230
+ */
231
+ numberOfPresets: TlvField(1, TlvUInt8),
232
+ /**
233
+ * This field shall specify a bitmap of features for this PresetTypeStruct.
234
+ *
235
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.29.3
236
+ */
237
+ presetTypeFeatures: TlvField(2, TlvBitmap(TlvUInt16, Thermostat2.PresetTypeFeatures))
238
+ });
239
+ Thermostat2.TlvPreset = TlvObject({
240
+ /**
241
+ * This field shall indicate a device generated identifier for this preset. It shall be unique on the device,
242
+ * and shall NOT be reused after the associated preset has been deleted.
243
+ *
244
+ * This field shall only be null when the encompassing PresetStruct is appended to the Presets attribute for
245
+ * the purpose of creating a new Preset. Refer to Presets for the creation of Preset handles.
246
+ *
247
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28.1
248
+ */
249
+ presetHandle: TlvField(0, TlvNullable(TlvByteString.bound({ maxLength: 16 }))),
250
+ /**
251
+ * This field shall indicate the associated PresetScenarioEnum value for this preset.
252
+ *
253
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28.2
254
+ */
255
+ presetScenario: TlvField(1, TlvEnum()),
256
+ /**
257
+ * This field shall indicate a name provided by a user. The null value shall indicate no name.
258
+ *
259
+ * Within each subset of presets sharing the same PresetScenario field value, there shall NOT be any presets
260
+ * with the same value, including null as a value, in the Name field.
261
+ *
262
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28.3
263
+ */
264
+ name: TlvOptionalField(2, TlvNullable(TlvString.bound({ maxLength: 64 }))),
265
+ /**
266
+ * This field shall indicate the cooling setpoint for the preset. Refer to Setpoint Limits for value
267
+ * constraints.
268
+ *
269
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28.4
270
+ */
271
+ coolingSetpoint: TlvOptionalField(3, TlvInt16),
272
+ /**
273
+ * This field shall indicate the heating setpoint for the preset. Refer to Setpoint Limits for value
274
+ * constraints.
275
+ *
276
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28.5
277
+ */
278
+ heatingSetpoint: TlvOptionalField(4, TlvInt16),
279
+ /**
280
+ * This field shall indicate whether the preset is marked as "built-in", meaning that it can be modified, but
281
+ * it cannot be deleted.
282
+ *
283
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.28.6
284
+ */
285
+ builtIn: TlvField(5, TlvNullable(TlvBoolean))
286
+ });
287
+ Thermostat2.TlvSetActivePresetRequest = TlvObject({
288
+ /**
289
+ * This field shall specify the value of the PresetHandle field on the PresetStruct to be made active. If the
290
+ * field is set to null, that indicates there should be no active preset.
291
+ *
292
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.9.1
293
+ */
294
+ presetHandle: TlvField(0, TlvNullable(TlvByteString.bound({ maxLength: 16 })))
295
+ });
296
+ let SystemMode;
297
+ ((SystemMode2) => {
298
+ SystemMode2[SystemMode2["Off"] = 0] = "Off";
299
+ SystemMode2[SystemMode2["Auto"] = 1] = "Auto";
300
+ SystemMode2[SystemMode2["Cool"] = 3] = "Cool";
301
+ SystemMode2[SystemMode2["Heat"] = 4] = "Heat";
302
+ SystemMode2[SystemMode2["EmergencyHeat"] = 5] = "EmergencyHeat";
303
+ SystemMode2[SystemMode2["Precooling"] = 6] = "Precooling";
304
+ SystemMode2[SystemMode2["FanOnly"] = 7] = "FanOnly";
305
+ SystemMode2[SystemMode2["Dry"] = 8] = "Dry";
306
+ SystemMode2[SystemMode2["Sleep"] = 9] = "Sleep";
307
+ })(SystemMode = Thermostat2.SystemMode || (Thermostat2.SystemMode = {}));
308
+ Thermostat2.ScheduleTypeFeatures = {
309
+ /**
310
+ * Supports presets
311
+ *
312
+ * This bit shall indicate that any ScheduleStruct with a SystemMode field whose value matches the SystemMode
313
+ * field on the encompassing ScheduleTypeStruct supports specifying presets on ScheduleTransitionStructs
314
+ * contained in its Transitions field.
315
+ *
316
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.12.1
317
+ */
318
+ supportsPresets: BitFlag(0),
319
+ /**
320
+ * Supports setpoints
321
+ *
322
+ * This bit shall indicate that any ScheduleStruct with a SystemMode field whose value matches the SystemMode
323
+ * field on the encompassing ScheduleTypeStruct supports specifying setpoints on ScheduleTransitionStructs
324
+ * contained in its Transitions field.
325
+ *
326
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.12.2
327
+ */
328
+ supportsSetpoints: BitFlag(1),
329
+ /**
330
+ * Supports user-provided names
331
+ *
332
+ * This bit shall indicate that any ScheduleStruct with a SystemMode field whose value matches the SystemMode
333
+ * field on the encompassing ScheduleTypeStruct supports setting the value of the Name field.
334
+ *
335
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.12.3
336
+ */
337
+ supportsNames: BitFlag(2),
338
+ /**
339
+ * Supports transitioning to SystemModeOff
340
+ *
341
+ * This bit shall indicate that any ScheduleStruct with a SystemMode field whose value matches the SystemMode
342
+ * field on the encompassing ScheduleTypeStruct supports setting its SystemMode field to Off.
343
+ *
344
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.12.4
345
+ */
346
+ supportsOff: BitFlag(3)
347
+ };
348
+ Thermostat2.TlvScheduleType = TlvObject({
349
+ /**
350
+ * This field shall specify a SystemModeEnum supported by this thermostat for Schedules. The only valid values
351
+ * for this field shall be Auto, Heat, and Cool.
352
+ *
353
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.33.1
354
+ */
355
+ systemMode: TlvField(0, TlvEnum()),
356
+ /**
357
+ * This field shall specify a limit for the number of Schedules for this SystemMode.
358
+ *
359
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.33.2
360
+ */
361
+ numberOfSchedules: TlvField(1, TlvUInt8),
362
+ /**
363
+ * This field shall specify a bitmap of features for this schedule entry. At least one of SupportsPresets and
364
+ * SupportsSetpoints shall be set.
365
+ *
366
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.33.3
367
+ */
368
+ scheduleTypeFeatures: TlvField(2, TlvBitmap(TlvUInt16, Thermostat2.ScheduleTypeFeatures))
369
+ });
370
+ Thermostat2.TlvScheduleTransition = TlvObject({
371
+ /**
372
+ * This field shall specify a bitmask of days of the week that the transition applies to. The Vacation bit
373
+ * shall NOT be set; vacation schedules shall be set via the vacation preset.
374
+ *
375
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32.1
376
+ */
377
+ dayOfWeek: TlvField(0, TlvBitmap(TlvUInt8, Thermostat2.ScheduleDayOfWeek)),
378
+ /**
379
+ * This shall specify the time of day at which the transition becomes active, in terms of minutes within the
380
+ * day representing the wall clock, where 0 is 00:00:00, 1 is 00:01:00 and 1439 is 23:59:00.
381
+ *
382
+ * Handling of transitions during the changeover of Daylight Saving Time is implementation-dependent.
383
+ *
384
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32.2
385
+ */
386
+ transitionTime: TlvField(1, TlvUInt16.bound({ max: 1439 })),
387
+ /**
388
+ * This field shall specify the preset used at the TransitionTime. If this field is provided, then the
389
+ * SystemMode, CoolingSetpoint and HeatingSetpoint fields shall NOT be provided.
390
+ *
391
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32.3
392
+ */
393
+ presetHandle: TlvOptionalField(2, TlvByteString.bound({ maxLength: 16 })),
394
+ /**
395
+ * This shall specify the default mode to which the thermostat will switch for this transition, overriding the
396
+ * default for the schedule. The only valid values for this field shall be Auto, Heat, Cool and Off. This field
397
+ * shall only be included when the required system mode differs from the schedule’s default SystemMode.
398
+ *
399
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32.4
400
+ */
401
+ systemMode: TlvOptionalField(3, TlvEnum()),
402
+ /**
403
+ * This field shall specify the cooling setpoint for the transition. If PresetHandle is set, this field shall
404
+ * NOT be included. Refer to Setpoint Limits for value constraints.
405
+ *
406
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32.5
407
+ */
408
+ coolingSetpoint: TlvOptionalField(4, TlvInt16),
409
+ /**
410
+ * This field shall specify the cooling setpoint for the transition. If PresetHandle is set, this field shall
411
+ * NOT be included. Refer to Setpoint Limits for value constraints.
412
+ *
413
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.32.6
414
+ */
415
+ heatingSetpoint: TlvOptionalField(5, TlvInt16)
416
+ });
417
+ Thermostat2.TlvSchedule = TlvObject({
418
+ /**
419
+ * This field shall indicate a device generated identifier for this schedule. It shall be unique on the device,
420
+ * and shall NOT be reused after the associated schedule has been deleted.
421
+ *
422
+ * This field shall only be null when the encompassing ScheduleStruct is appended to the Schedules attribute
423
+ * for the purpose of creating a new Schedule. Refer to Schedules for the creation of Schedule handles.
424
+ *
425
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31.1
426
+ */
427
+ scheduleHandle: TlvField(0, TlvNullable(TlvByteString.bound({ maxLength: 16 }))),
428
+ /**
429
+ * This field shall specify the default thermostat system mode for transitions in this schedule. The only valid
430
+ * values for this field shall be Auto, Heat, and Cool.
431
+ *
432
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31.2
433
+ */
434
+ systemMode: TlvField(1, TlvEnum()),
435
+ /**
436
+ * This field shall specify a name for the ScheduleStruct.
437
+ *
438
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31.3
439
+ */
440
+ name: TlvOptionalField(2, TlvString.bound({ maxLength: 64 })),
441
+ /**
442
+ * This field shall indicate the default PresetHandle value for transitions in this schedule.
443
+ *
444
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31.4
445
+ */
446
+ presetHandle: TlvOptionalField(3, TlvByteString.bound({ maxLength: 16 })),
447
+ /**
448
+ * This field shall specify a list of transitions for the schedule.
449
+ *
450
+ * This field shall NOT contain more than one ScheduleStruct with the same TransitionTime field and overlapping
451
+ * DayOfWeek fields; i.e. there shall be no duplicate transitions.
452
+ *
453
+ * If the NumberOfScheduleTransitionsPerDay attribute is not null, then for each bit in
454
+ * ScheduleDayOfWeekBitmap, the number of transitions with that bit set in DayOfWeek shall NOT be greater than
455
+ * the value of the NumberOfScheduleTransitionsPerDay attribute.
456
+ *
457
+ * For the purposes of determining which ScheduleStruct in this list is currently active, the current time
458
+ * shall be the number of minutes past midnight in the display value of the current time, not the actual number
459
+ * of minutes that have elapsed since midnight. On days which transition into or out of daylight saving time,
460
+ * certain values may repeat or not occur during the transition period.
461
+ *
462
+ * A ScheduleTransitionStruct in this list shall be active if the current day of the week matches its DayOfWeek
463
+ * field and the current time is greater than or equal to the TransitionTime, but less than the TransitionTime
464
+ * on any other ScheduleTransitionStruct in the Transitions field whose DayOfWeek field also matches the
465
+ * current day of the week.
466
+ *
467
+ * If the current time is less than every ScheduleTransitionStruct whose DayOfWeek field also matches the
468
+ * current day of the week, the server shall attempt the same process to identify the active
469
+ * ScheduleTransitionStruct for the day preceding the previously attempted day of the week, repeating until an
470
+ * active ScheduleTransitionStruct is found or the attempted day is the current day of the week again. If no
471
+ * active ScheduleTransitionStruct is found, then the active ScheduleTransitionStruct shall be the
472
+ * ScheduleTransitionStruct with the largest TransitionTime field from the set of ScheduleTransitionStructs
473
+ * whose DayOfWeek field matches the current day of the week.
474
+ *
475
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31.5
476
+ */
477
+ transitions: TlvField(4, TlvArray(Thermostat2.TlvScheduleTransition, { minLength: 1 })),
478
+ /**
479
+ * This field shall indicate whether the schedule is marked as "built-in", meaning that it can be modified, but
480
+ * it cannot be deleted.
481
+ *
482
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.31.6
483
+ */
484
+ builtIn: TlvField(5, TlvNullable(TlvBoolean))
485
+ });
486
+ Thermostat2.TlvSetActiveScheduleRequest = TlvObject({
487
+ /**
488
+ * This field shall specify the value of the ScheduleHandle field on the ScheduleStruct to be made active.
489
+ *
490
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.8.1
491
+ */
492
+ scheduleHandle: TlvField(0, TlvByteString.bound({ maxLength: 16 }))
493
+ });
195
494
  Thermostat2.HvacSystemType = {
196
495
  /**
197
496
  * Stage of cooling the HVAC system is using.
@@ -208,7 +507,7 @@ var Thermostat;
208
507
  *
209
508
  * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6.1
210
509
  */
211
- coolingStage: BitField(0, 2),
510
+ coolingStage: BitField(1, 0),
212
511
  /**
213
512
  * Stage of heating the HVAC system is using.
214
513
  *
@@ -224,7 +523,7 @@ var Thermostat;
224
523
  *
225
524
  * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.6.2
226
525
  */
227
- heatingStage: BitField(2, 2),
526
+ heatingStage: BitField(3, 0),
228
527
  /**
229
528
  * Is the heating type Heat Pump.
230
529
  *
@@ -260,7 +559,7 @@ var Thermostat;
260
559
  *
261
560
  * This bit shall be supported if the OutdoorTemperature attribute is supported.
262
561
  *
263
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.9.1
562
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.8.11.1
264
563
  */
265
564
  outdoorTemperature: BitFlag(1),
266
565
  /**
@@ -277,18 +576,6 @@ var Thermostat;
277
576
  ControlSequenceOfOperation2[ControlSequenceOfOperation2["CoolingAndHeating"] = 4] = "CoolingAndHeating";
278
577
  ControlSequenceOfOperation2[ControlSequenceOfOperation2["CoolingAndHeatingWithReheat"] = 5] = "CoolingAndHeatingWithReheat";
279
578
  })(ControlSequenceOfOperation = Thermostat2.ControlSequenceOfOperation || (Thermostat2.ControlSequenceOfOperation = {}));
280
- let SystemMode;
281
- ((SystemMode2) => {
282
- SystemMode2[SystemMode2["Off"] = 0] = "Off";
283
- SystemMode2[SystemMode2["Auto"] = 1] = "Auto";
284
- SystemMode2[SystemMode2["Cool"] = 3] = "Cool";
285
- SystemMode2[SystemMode2["Heat"] = 4] = "Heat";
286
- SystemMode2[SystemMode2["EmergencyHeat"] = 5] = "EmergencyHeat";
287
- SystemMode2[SystemMode2["Precooling"] = 6] = "Precooling";
288
- SystemMode2[SystemMode2["FanOnly"] = 7] = "FanOnly";
289
- SystemMode2[SystemMode2["Dry"] = 8] = "Dry";
290
- SystemMode2[SystemMode2["Sleep"] = 9] = "Sleep";
291
- })(SystemMode = Thermostat2.SystemMode || (Thermostat2.SystemMode = {}));
292
579
  let TemperatureSetpointHold;
293
580
  ((TemperatureSetpointHold2) => {
294
581
  TemperatureSetpointHold2[TemperatureSetpointHold2["SetpointHoldOff"] = 0] = "SetpointHoldOff";
@@ -310,27 +597,27 @@ var Thermostat;
310
597
  };
311
598
  Thermostat2.RelayState = {
312
599
  /**
313
- * Heat State On
600
+ * Heat Stage On
314
601
  */
315
602
  heat: BitFlag(0),
316
603
  /**
317
- * Cool State On
604
+ * Cool Stage On
318
605
  */
319
606
  cool: BitFlag(1),
320
607
  /**
321
- * Fan State On
608
+ * Fan Stage On
322
609
  */
323
610
  fan: BitFlag(2),
324
611
  /**
325
- * Heat 2nd State On
612
+ * Heat 2nd Stage On
326
613
  */
327
614
  heatStage2: BitFlag(3),
328
615
  /**
329
- * Cool 2nd State On
616
+ * Cool 2nd Stage On
330
617
  */
331
618
  coolStage2: BitFlag(4),
332
619
  /**
333
- * Fan 2nd State On
620
+ * Fan 2nd Stage On
334
621
  */
335
622
  fanStage2: BitFlag(5),
336
623
  /**
@@ -407,7 +694,18 @@ var Thermostat;
407
694
  SetpointRaiseLowerMode2[SetpointRaiseLowerMode2["Both"] = 2] = "Both";
408
695
  })(SetpointRaiseLowerMode = Thermostat2.SetpointRaiseLowerMode || (Thermostat2.SetpointRaiseLowerMode = {}));
409
696
  Thermostat2.TlvSetpointRaiseLowerRequest = TlvObject({
697
+ /**
698
+ * The field shall specify which setpoints are to be adjusted.
699
+ *
700
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.1.1
701
+ */
410
702
  mode: TlvField(0, TlvEnum()),
703
+ /**
704
+ * This field shall indicate the amount (possibly negative) that should be added to the setpoint(s), in steps
705
+ * of 0.1°C.
706
+ *
707
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.1.2
708
+ */
411
709
  amount: TlvField(1, TlvInt8)
412
710
  });
413
711
  Thermostat2.AlarmCode = {
@@ -430,7 +728,7 @@ var Thermostat;
430
728
  * Indicates whether the heated/cooled space is occupied or not, as measured locally or remotely (over the
431
729
  * network).
432
730
  *
433
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.5
731
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.4
434
732
  */
435
733
  occupancy: Attribute(
436
734
  2,
@@ -442,7 +740,12 @@ var Thermostat;
442
740
  Thermostat2.HeatingComponent = MutableCluster.Component({
443
741
  attributes: {
444
742
  /**
445
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9
743
+ * Indicates the absolute minimum level that the heating setpoint may be set to. This is a limitation
744
+ * imposed by the manufacturer.
745
+ *
746
+ * Refer to Setpoint Limits for constraints
747
+ *
748
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.5
446
749
  */
447
750
  absMinHeatSetpointLimit: OptionalFixedAttribute(3, TlvInt16, { default: 700 }),
448
751
  /**
@@ -455,25 +758,30 @@ var Thermostat;
455
758
  *
456
759
  * This attribute is reported regularly and may be used to control a heating device.
457
760
  *
458
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.11
761
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.10
459
762
  */
460
763
  piHeatingDemand: OptionalAttribute(8, TlvUInt8.bound({ max: 100 })),
461
764
  /**
462
- * Indicates the heating mode setpoint when the room is occupied.
765
+ * Indicates the heating mode setpoint when the room is occupied. Refer to Setpoint Limits for constraints.
766
+ *
767
+ * If an attempt is made to set this attribute to a value greater than MaxHeatSetpointLimit or less than
768
+ * MinHeatSetpointLimit, a response with the status code CONSTRAINT_ERROR shall be returned.
769
+ *
770
+ * If this attribute is set to a value that is greater than
463
771
  *
464
- * Refer to Setpoint Limits for constraints. If an attempt is made to set this attribute such that these
465
- * constraints are violated, a response with the status code CONSTRAINT_ERROR shall be returned.
772
+ * Band), the value of OccupiedCoolingSetpoint shall be adjusted to (OccupiedHeatingSetpoint +
773
+ * MinSetpointDeadBand).
466
774
  *
467
775
  * If the occupancy status of the room is unknown, this attribute shall be used as the heating mode
468
776
  * setpoint.
469
777
  *
470
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.15
778
+ * If a client changes the value of this attribute, the server supports the PRES feature, and the server
779
+ * either does not support the OCC feature or the Occupied bit is set on the Occupancy attribute, the value
780
+ * of the ActivePresetHandle attribute shall be set to null.
781
+ *
782
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.14
471
783
  */
472
- occupiedHeatingSetpoint: WritableAttribute(
473
- 18,
474
- TlvInt16,
475
- { scene: true, persistent: true, default: 2e3 }
476
- ),
784
+ occupiedHeatingSetpoint: WritableAttribute(18, TlvInt16, { persistent: true, default: 2e3 }),
477
785
  /**
478
786
  * Indicates the minimum level that the heating setpoint may be set to.
479
787
  *
@@ -487,7 +795,7 @@ var Thermostat;
487
795
  * which is not consistent with the constraints and cannot be resolved by modifying setpoints then a
488
796
  * response with the status code CONSTRAINT_ERROR shall be returned.
489
797
  *
490
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.18
798
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.17
491
799
  */
492
800
  minHeatSetpointLimit: OptionalWritableAttribute(
493
801
  21,
@@ -503,7 +811,7 @@ var Thermostat;
503
811
  * which is not consistent with the constraints and cannot be resolved by modifying setpoints then a
504
812
  * response with the status code CONSTRAINT_ERROR shall be returned.
505
813
  *
506
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.19
814
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.18
507
815
  */
508
816
  maxHeatSetpointLimit: OptionalWritableAttribute(
509
817
  22,
@@ -515,12 +823,7 @@ var Thermostat;
515
823
  Thermostat2.CoolingComponent = MutableCluster.Component({
516
824
  attributes: {
517
825
  /**
518
- * Indicates the absolute minimum level that the cooling setpoint may be set to. This is a limitation
519
- * imposed by the manufacturer.
520
- *
521
- * Refer to Setpoint Limits for constraints
522
- *
523
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.8
826
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9
524
827
  */
525
828
  absMinCoolSetpointLimit: OptionalFixedAttribute(5, TlvInt16, { default: 1600 }),
526
829
  /**
@@ -529,7 +832,7 @@ var Thermostat;
529
832
  *
530
833
  * Refer to Setpoint Limits for constraints
531
834
  *
532
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.9
835
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.8
533
836
  */
534
837
  absMaxCoolSetpointLimit: OptionalFixedAttribute(6, TlvInt16, { default: 3200 }),
535
838
  /**
@@ -538,25 +841,29 @@ var Thermostat;
538
841
  *
539
842
  * This attribute is reported regularly and may be used to control a cooling device.
540
843
  *
541
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.10
844
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.9
542
845
  */
543
846
  piCoolingDemand: OptionalAttribute(7, TlvUInt8.bound({ max: 100 })),
544
847
  /**
545
- * Indicates the cooling mode setpoint when the room is occupied.
848
+ * Indicates the cooling mode setpoint when the room is occupied. Refer to Setpoint Limits for constraints.
849
+ *
850
+ * If an attempt is made to set this attribute to a value greater than MaxCoolSetpointLimit or less than
851
+ * MinCoolSetpointLimit, a response with the status code CONSTRAINT_ERROR shall be returned.
546
852
  *
547
- * Refer to Setpoint Limits for constraints. If an attempt is made to set this attribute such that these
548
- * constraints are violated, a response with the status code CONSTRAINT_ERROR shall be returned.
853
+ * If this attribute is set to a value that is less than (OccupiedHeatingSetpoint + MinSetpointDeadBand),
854
+ * the value of OccupiedHeatingSetpoint shall be adjusted to (OccupiedCoolingSetpoint -
855
+ * MinSetpointDeadBand).
549
856
  *
550
857
  * If the occupancy status of the room is unknown, this attribute shall be used as the cooling mode
551
858
  * setpoint.
552
859
  *
553
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.14
860
+ * If a client changes the value of this attribute, the server supports the PRES feature, and the server
861
+ * either does not support the OCC feature or the Occupied bit is set on the Occupancy attribute, the value
862
+ * of the ActivePresetHandle attribute shall be set to null.
863
+ *
864
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.13
554
865
  */
555
- occupiedCoolingSetpoint: WritableAttribute(
556
- 17,
557
- TlvInt16,
558
- { scene: true, persistent: true, default: 2600 }
559
- ),
866
+ occupiedCoolingSetpoint: WritableAttribute(17, TlvInt16, { persistent: true, default: 2600 }),
560
867
  /**
561
868
  * Indicates the minimum level that the cooling setpoint may be set to.
562
869
  *
@@ -566,7 +873,7 @@ var Thermostat;
566
873
  * which is not consistent with the constraints and cannot be resolved by modifying setpoints then a
567
874
  * response with the status code CONSTRAINT_ERROR shall be returned.
568
875
  *
569
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.20
876
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.19
570
877
  */
571
878
  minCoolSetpointLimit: OptionalWritableAttribute(
572
879
  23,
@@ -582,7 +889,7 @@ var Thermostat;
582
889
  * which is not consistent with the constraints and cannot be resolved by modifying setpoints then a
583
890
  * response with the status code CONSTRAINT_ERROR shall be returned.
584
891
  *
585
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.21
892
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.20
586
893
  */
587
894
  maxCoolSetpointLimit: OptionalWritableAttribute(
588
895
  24,
@@ -605,7 +912,12 @@ var Thermostat;
605
912
  * (e.g., out of the range supported by the Thermostat server), the Thermostat server shall respond with a
606
913
  * status of SUCCESS and set the value of LocalTemperatureCalibration to the upper or lower limit reached.
607
914
  *
608
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.13
915
+ * NOTE
916
+ *
917
+ * Prior to revision 8 of this cluster specification the value of this attribute was constrained to a range
918
+ * of -2.5°C to 2.5°C.
919
+ *
920
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.12
609
921
  */
610
922
  localTemperatureCalibration: OptionalWritableAttribute(
611
923
  16,
@@ -617,14 +929,23 @@ var Thermostat;
617
929
  Thermostat2.CoolingAndOccupancyComponent = MutableCluster.Component({
618
930
  attributes: {
619
931
  /**
620
- * Indicates the cooling mode setpoint when the room is unoccupied.
932
+ * Indicates the cooling mode setpoint when the room is unoccupied. Refer to Setpoint Limits for
933
+ * constraints.
934
+ *
935
+ * If an attempt is made to set this attribute to a value greater than MaxCoolSetpointLimit or less than
936
+ * MinCoolSetpointLimit, a response with the status code CONSTRAINT_ERROR shall be returned.
621
937
  *
622
- * Refer to Setpoint Limits for constraints. If an attempt is made to set this attribute such that these
623
- * constraints are violated, a response with the status code CONSTRAINT_ERROR shall be returned.
938
+ * If this attribute is set to a value that is less than (UnoccupiedHeatingSetpoint + MinSetpointDeadBand),
939
+ * the value of UnoccupiedHeatingSetpoint shall be adjusted to (UnoccupiedCoolingSetpoint -
940
+ * MinSetpointDeadBand).
624
941
  *
625
942
  * If the occupancy status of the room is unknown, this attribute shall NOT be used.
626
943
  *
627
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.16
944
+ * If a client changes the value of this attribute, the server supports the PRES and OCC features, and the
945
+ * Occupied bit is not set on the Occupancy attribute, the value of the ActivePresetHandle attribute shall
946
+ * be set to null.
947
+ *
948
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.15
628
949
  */
629
950
  unoccupiedCoolingSetpoint: WritableAttribute(19, TlvInt16, { persistent: true, default: 2600 })
630
951
  }
@@ -632,14 +953,24 @@ var Thermostat;
632
953
  Thermostat2.HeatingAndOccupancyComponent = MutableCluster.Component({
633
954
  attributes: {
634
955
  /**
635
- * Indicates the heating mode setpoint when the room is unoccupied.
956
+ * Indicates the heating mode setpoint when the room is unoccupied. Refer to Setpoint Limits for
957
+ * constraints.
958
+ *
959
+ * If an attempt is made to set this attribute to a value greater than MaxHeatSetpointLimit or less than
960
+ * MinHeatSetpointLimit, a response with the status code CONSTRAINT_ERROR shall be returned.
636
961
  *
637
- * Refer to Setpoint Limits for constraints. If an attempt is made to set this attribute such that these
638
- * constraints are violated, a response with the status code CONSTRAINT_ERROR shall be returned.
962
+ * If this attribute is set to a value that is greater than (UnoccupiedCoolingSetpoint -
963
+ * MinSetpointDeadBand), the value of UnoccupiedCoolingSetpoint shall be adjusted to
964
+ *
965
+ * + MinSetpointDeadBand).
639
966
  *
640
967
  * If the occupancy status of the room is unknown, this attribute shall NOT be used.
641
968
  *
642
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.17
969
+ * If a client changes the value of this attribute, the server supports the PRES and OCC features, and the
970
+ * Occupied bit is not set on the Occupancy attribute, the value of the ActivePresetHandle attribute shall
971
+ * be set to null.
972
+ *
973
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.16
643
974
  */
644
975
  unoccupiedHeatingSetpoint: WritableAttribute(20, TlvInt16, { persistent: true, default: 2e3 })
645
976
  }
@@ -650,21 +981,31 @@ var Thermostat;
650
981
  * On devices which support the AUTO feature, this attribute shall indicate the minimum difference between
651
982
  * the Heat Setpoint and the Cool Setpoint.
652
983
  *
653
- * Refer to Setpoint Limits for constraints. If an attempt is made to set this attribute to a value which
654
- * conflicts with setpoint values then those setpoints shall be adjusted by the minimum amount to permit
655
- * this attribute to be set to the desired value. If an attempt is made to set this attribute to a value
656
- * which is not consistent with the constraints and cannot be resolved by modifying setpoints then a
657
- * response with the status code CONSTRAINT_ERROR shall be returned.
984
+ * Refer to Setpoint Limits for constraints.
658
985
  *
659
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.22
986
+ * NOTE
987
+ *
988
+ * Prior to revision 8 of this cluster specification the value of this attribute was constrained to a range
989
+ * of 0°C to 2.5°C.
990
+ *
991
+ * NOTE
992
+ *
993
+ * For backwards compatibility, this attribute is optionally writeable. However any writes to this
994
+ * attribute shall be silently ignored.
995
+ *
996
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.21
660
997
  */
661
- minSetpointDeadBand: WritableAttribute(25, TlvInt8, { persistent: true, writeAcl: AccessLevel.Manage }),
998
+ minSetpointDeadBand: WritableAttribute(
999
+ 25,
1000
+ TlvInt8.bound({ min: 0 }),
1001
+ { persistent: true, writeAcl: AccessLevel.Manage }
1002
+ ),
662
1003
  /**
663
1004
  * Indicates the running mode of the thermostat. This attribute uses the same values as SystemModeEnum but
664
1005
  * can only be Off, Cool or Heat. This attribute is intended to provide additional information when the
665
1006
  * thermostat’s system mode is in auto mode.
666
1007
  *
667
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.27
1008
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.26
668
1009
  */
669
1010
  thermostatRunningMode: OptionalAttribute(
670
1011
  30,
@@ -682,54 +1023,34 @@ var Thermostat;
682
1023
  * This attribute may be able to be used as the base to determine if the device supports weekly scheduling
683
1024
  * by reading the attribute. Successful response means that the weekly scheduling is supported.
684
1025
  *
685
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.28
1026
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.27
686
1027
  */
687
1028
  startOfWeek: FixedAttribute(32, TlvEnum()),
688
1029
  /**
689
1030
  * Indicates how many weekly schedule transitions the thermostat is capable of handling.
690
1031
  *
691
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.29
1032
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.28
692
1033
  */
693
1034
  numberOfWeeklyTransitions: FixedAttribute(33, TlvUInt8, { default: 0 }),
694
1035
  /**
695
1036
  * Indicates how many daily schedule transitions the thermostat is capable of handling.
696
1037
  *
697
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.30
1038
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.29
698
1039
  */
699
1040
  numberOfDailyTransitions: FixedAttribute(34, TlvUInt8, { default: 0 })
700
1041
  },
701
1042
  commands: {
702
1043
  /**
703
- * Upon receipt, the weekly schedule for updating setpoints shall be stored in the thermostat and SHOULD
704
- * begin at the time of receipt. A status code shall be sent in response.
705
- *
706
- * When a command is received that requires a total number of transitions greater than the device supports,
707
- * the status of the response shall be INSUFFICIENT_SPACE.
708
- *
709
- * When any of the setpoints sent in the sequence is out of range (AbsMin/MaxSetPointLimit), or when the
710
- * Mode for Sequence field includes a mode not supported by the device, the status of the response shall be
711
- * CONSTRAINT_ERROR and no setpoints from the entire sequence SHOULD be used.
712
- *
713
- * When an overlapping transition is detected, the status of the response shall be FAILURE.
714
- *
715
- * When a device which does not support multiple days in a command receives a command with more than one
716
- * bit set in the DayOfWeekForSequence field, or when a device which does not support multiple modes in a
717
- * command receives a command with more than one bit set in the ModeForSequence field, or when the contents
718
- * of the Transitions field does not agree with NumberOfTransitionsForSequence, DayOfWeekForSequence or
719
- * ModeForSequence, the status of the response shall be INVALID_COMMAND.
720
- *
721
- * When the transitions could be added successfully, the status of the response shall be SUCCESS.
722
- *
723
- * The set weekly schedule command is used to update the thermostat weekly setpoint schedule from a
724
- * management system. If the thermostat already has a weekly setpoint schedule programmed, then it SHOULD
725
- * replace each daily setpoint set as it receives the updates from the management system. For example, if
726
- * the thermostat has 4 setpoints for every day of the week and is sent a Set Weekly Schedule command with
727
- * one setpoint for Saturday then the thermostat SHOULD remove all 4 setpoints for Saturday and replace
728
- * those with the updated setpoint but leave all other days unchanged. If the schedule is larger than what
729
- * fits in one frame or contains more than 10 transitions, the schedule shall then be sent using multiple
730
- * Set Weekly Schedule Commands.
731
- *
732
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.4
1044
+ * This command is used to update the thermostat weekly setpoint schedule from a management system. If the
1045
+ * thermostat already has a weekly setpoint schedule programmed, then it SHOULD replace each daily setpoint
1046
+ * set as it receives the updates from the management system. For example, if the thermostat has 4
1047
+ * setpoints for every day of the week and is sent a SetWeeklySchedule command with one setpoint for
1048
+ * Saturday then the thermostat SHOULD remove all 4 setpoints for Saturday and replace those with the
1049
+ * updated setpoint but leave all other days unchanged. If the schedule is larger than what fits in one
1050
+ * frame or contains more than 10 transitions, the schedule shall then be sent using multiple
1051
+ * SetWeeklySchedule Commands.
1052
+ *
1053
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.2
733
1054
  */
734
1055
  setWeeklySchedule: Command(
735
1056
  1,
@@ -739,12 +1060,7 @@ var Thermostat;
739
1060
  { invokeAcl: AccessLevel.Manage }
740
1061
  ),
741
1062
  /**
742
- * Upon receipt, the unit SHOULD send in return the Get Weekly Schedule Response command. The Days to
743
- * Return and Mode to Return fields are defined as bitmask for the flexibility to support multiple days and
744
- * multiple modes within one command. If thermostat cannot handle incoming command with multiple days
745
- * and/or multiple modes within one command, it shall send default response of INVALID_COMMAND in return.
746
- *
747
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.5
1063
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.3
748
1064
  */
749
1065
  getWeeklySchedule: Command(2, Thermostat2.TlvGetWeeklyScheduleRequest, 0, Thermostat2.TlvGetWeeklyScheduleResponse),
750
1066
  /**
@@ -753,7 +1069,7 @@ var Thermostat;
753
1069
  * Upon receipt, all transitions currently stored shall be cleared and a default response of SUCCESS shall
754
1070
  * be sent in response. There are no error responses to this command.
755
1071
  *
756
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.7
1072
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.5
757
1073
  */
758
1074
  clearWeeklySchedule: Command(3, TlvNoArguments, 3, TlvNoResponse, { invokeAcl: AccessLevel.Manage })
759
1075
  }
@@ -781,7 +1097,7 @@ var Thermostat;
781
1097
  * Thermostat server shall set its OccupiedSetback value to OccupiedSetbackMin and shall send a Write
782
1098
  * Attribute Response command with a Status Code field enumeration of SUCCESS response.
783
1099
  *
784
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.38
1100
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.37
785
1101
  */
786
1102
  occupiedSetback: WritableAttribute(
787
1103
  52,
@@ -794,7 +1110,7 @@ var Thermostat;
794
1110
  *
795
1111
  * The null value indicates the attribute is unused.
796
1112
  *
797
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.39
1113
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.38
798
1114
  */
799
1115
  occupiedSetbackMin: FixedAttribute(53, TlvNullable(TlvUInt8), { default: null }),
800
1116
  /**
@@ -803,7 +1119,7 @@ var Thermostat;
803
1119
  *
804
1120
  * The null value indicates the attribute is unused.
805
1121
  *
806
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.40
1122
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.39
807
1123
  */
808
1124
  occupiedSetbackMax: FixedAttribute(54, TlvNullable(TlvUInt8), { default: null })
809
1125
  }
@@ -832,7 +1148,7 @@ var Thermostat;
832
1148
  * the Thermostat server shall set its UnoccupiedSetback value to UnoccupiedSetbackMin and shall send a
833
1149
  * Write Attribute Response command with a Status Code field enumeration of SUCCESS response.
834
1150
  *
835
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.41
1151
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.40
836
1152
  */
837
1153
  unoccupiedSetback: WritableAttribute(
838
1154
  55,
@@ -845,7 +1161,7 @@ var Thermostat;
845
1161
  *
846
1162
  * The null value indicates the attribute is unused.
847
1163
  *
848
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.42
1164
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.41
849
1165
  */
850
1166
  unoccupiedSetbackMin: FixedAttribute(56, TlvNullable(TlvUInt8), { default: null }),
851
1167
  /**
@@ -854,15 +1170,288 @@ var Thermostat;
854
1170
  *
855
1171
  * The null value indicates the attribute is unused.
856
1172
  *
857
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.43
1173
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.42
858
1174
  */
859
1175
  unoccupiedSetbackMax: FixedAttribute(57, TlvNullable(TlvUInt8), { default: null })
860
1176
  }
861
1177
  });
1178
+ Thermostat2.PresetsComponent = MutableCluster.Component({
1179
+ attributes: {
1180
+ /**
1181
+ * Indicates the supported PresetScenarioEnum values, limits on how many presets can be created for each
1182
+ * PresetScenarioEnum, and whether or not a thermostat can transition automatically to a given scenario.
1183
+ *
1184
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.52
1185
+ */
1186
+ presetTypes: FixedAttribute(72, TlvArray(Thermostat2.TlvPresetType), { default: [] }),
1187
+ /**
1188
+ * Indicates the maximum number of entries supported by the Presets attribute.
1189
+ *
1190
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.54
1191
+ */
1192
+ numberOfPresets: FixedAttribute(74, TlvUInt8, { default: 0 }),
1193
+ /**
1194
+ * Indicates the PresetHandle of the active preset. If this attribute is null, then there is no active
1195
+ * preset.
1196
+ *
1197
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.58
1198
+ */
1199
+ activePresetHandle: Attribute(
1200
+ 78,
1201
+ TlvNullable(TlvByteString.bound({ maxLength: 16 })),
1202
+ { persistent: true, default: null }
1203
+ ),
1204
+ /**
1205
+ * This attribute shall contain the current list of configured presets. On receipt of a write request:
1206
+ *
1207
+ * 1. If the PresetHandle field is null, the PresetStruct shall be treated as an added preset, and the
1208
+ * device shall create a new unique value for the PresetHandle field.
1209
+ *
1210
+ * a. If the BuiltIn field is true, a response with the status code CONSTRAINT_ERROR shall be returned.
1211
+ *
1212
+ * 2. If the PresetHandle field is not null, the PresetStruct shall be treated as a modification of an
1213
+ * existing preset.
1214
+ *
1215
+ * a. If the value of the PresetHandle field does not match any of the existing presets, a response
1216
+ * with the status code NOT_FOUND shall be returned.
1217
+ *
1218
+ * b. If the value of the PresetHandle field is duplicated on multiple presets in the updated list, a
1219
+ * response with the status code CONSTRAINT_ERROR shall be returned.
1220
+ *
1221
+ * c. If the BuiltIn field is true, and the PresetStruct in the current value with a matching
1222
+ * PresetHandle field has a BuiltIn field set to false, a response with the status code
1223
+ * CONSTRAINT_ERROR shall be returned.
1224
+ *
1225
+ * d. If the BuiltIn field is false, and the PresetStruct in the current value with a matching
1226
+ * PresetHandle field has a BuiltIn field set to true, a response with the status code
1227
+ * CONSTRAINT_ERROR shall be returned.
1228
+ *
1229
+ * 3. If the specified PresetScenarioEnum value does not exist in PresetTypes, a response with the status
1230
+ * code CONSTRAINT_ERROR shall be returned.
1231
+ *
1232
+ * 4. If the Name is set, but the associated PresetTypeStruct does not have the SupportsNames bit set, a
1233
+ * response with the status code CONSTRAINT_ERROR shall be returned.
1234
+ *
1235
+ * 5. If appending the received PresetStruct to the pending list of Presets would cause the total number
1236
+ * of pending presets to exceed the value of the NumberOfPresets attribute, a response with the status
1237
+ * code RESOURCE_EXHAUSTED shall be returned.
1238
+ *
1239
+ * 6. If appending the received PresetStruct to the pending list of Presets would cause the total number
1240
+ * of pending presets whose PresetScenario field matches the appended preset’s PresetScenario field to
1241
+ * exceed the value of the NumberOfPresets field on the PresetTypeStruct whose PresetScenario matches
1242
+ * the appended preset’s PresetScenario field, a response with the status code RESOURCE_EXHAUSTED
1243
+ * shall be returned.
1244
+ *
1245
+ * 7. Otherwise, the write shall be pended until receipt of a commit request, and the status code SUCCESS
1246
+ * shall be returned.
1247
+ *
1248
+ * a. If the BuiltIn field is null:
1249
+ *
1250
+ * i. If there is a PresetStruct in the current value with a matching PresetHandle field, the BuiltIn
1251
+ * field on the pending PresetStruct shall be set to the value of the BuiltIn on the matching
1252
+ * PresetStruct.
1253
+ *
1254
+ * ii. Otherwise, the BuiltIn field on the pending PresetStruct shall be set to false.
1255
+ *
1256
+ * On an attempt to commit, the status of this attribute shall be determined as follows:
1257
+ *
1258
+ * 1. For all existing presets:
1259
+ *
1260
+ * a. If, after applying all pending changes, the updated value of the Presets attribute would not
1261
+ * contain a PresetStruct with a matching PresetHandle field, indicating the removal of the
1262
+ * PresetStruct, the server shall check for invalid removal of the PresetStruct:
1263
+ *
1264
+ * i. If the BuiltIn field is true on the removed PresetStruct, the attribute status shall be
1265
+ * CONSTRAINT_ERROR.
1266
+ *
1267
+ * ii. If the MSCH feature is supported and the removed PresetHandle would be referenced by any
1268
+ * PresetHandle on any ScheduleTransitionStruct on any ScheduleStruct in the updated value of
1269
+ * the Schedules attribute, the attribute status shall be INVALID_IN_STATE.
1270
+ *
1271
+ * iii. If the removed PresetHandle is equal to the value of the ActivePresetHandle attribute, the
1272
+ * attribute status shall be INVALID_IN_STATE.
1273
+ *
1274
+ * 2. Otherwise, the attribute status shall be SUCCESS.
1275
+ *
1276
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.60
1277
+ */
1278
+ presets: WritableAttribute(
1279
+ 80,
1280
+ TlvArray(Thermostat2.TlvPreset),
1281
+ { persistent: true, default: [], writeAcl: AccessLevel.Manage }
1282
+ )
1283
+ },
1284
+ commands: {
1285
+ /**
1286
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.9
1287
+ */
1288
+ setActivePresetRequest: Command(6, Thermostat2.TlvSetActivePresetRequest, 6, TlvNoResponse)
1289
+ }
1290
+ });
1291
+ Thermostat2.MatterScheduleConfigurationComponent = MutableCluster.Component({
1292
+ attributes: {
1293
+ /**
1294
+ * Indicates the supported SystemMode values for Schedules, limits on how many schedules can be created for
1295
+ * each SystemMode value, and whether or not a given SystemMode value supports transitions to Presets,
1296
+ * target setpoints, or both.
1297
+ *
1298
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.53
1299
+ */
1300
+ scheduleTypes: FixedAttribute(73, TlvArray(Thermostat2.TlvScheduleType), { default: [] }),
1301
+ /**
1302
+ * Indicates the maximum number of entries supported by the Schedules attribute.
1303
+ *
1304
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.55
1305
+ */
1306
+ numberOfSchedules: FixedAttribute(75, TlvUInt8, { default: 0 }),
1307
+ /**
1308
+ * Indicates the maximum number of transitions per Schedules attribute entry.
1309
+ *
1310
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.56
1311
+ */
1312
+ numberOfScheduleTransitions: FixedAttribute(76, TlvUInt8, { default: 0 }),
1313
+ /**
1314
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9
1315
+ */
1316
+ numberOfScheduleTransitionPerDay: FixedAttribute(77, TlvNullable(TlvUInt8), { default: null }),
1317
+ /**
1318
+ * Indicates the ScheduleHandle of the active schedule. A null value in this attribute indicates that there
1319
+ * is no active schedule.
1320
+ *
1321
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.59
1322
+ */
1323
+ activeScheduleHandle: Attribute(
1324
+ 79,
1325
+ TlvNullable(TlvByteString.bound({ maxLength: 16 })),
1326
+ { persistent: true, default: null }
1327
+ ),
1328
+ /**
1329
+ * This attribute shall contain a list of ScheduleStructs. On receipt of a write request:
1330
+ *
1331
+ * 1. For all schedules in the write request:
1332
+ *
1333
+ * a. If the ScheduleHandle field is null, the ScheduleStruct shall be treated as an added schedule,
1334
+ * and the device shall create a new unique value for the ScheduleHandle field.
1335
+ *
1336
+ * i. If the BuiltIn field is true, a response with the status code CONSTRAINT_ERROR shall be
1337
+ * returned.
1338
+ *
1339
+ * b. Otherwise, if the ScheduleHandle field is not null, the ScheduleStruct shall be treated as a
1340
+ * modification of an existing schedule.
1341
+ *
1342
+ * i. If the value of the ScheduleHandle field does not match any of the existing schedules, a
1343
+ * response with the status code NOT_FOUND shall be returned.
1344
+ *
1345
+ * ii. If the BuiltIn field is true, and the ScheduleStruct in the current value with a matching
1346
+ * ScheduleHandle field has a BuiltIn field set to false, a response with the status code
1347
+ * CONSTRAINT_ERROR shall be returned.
1348
+ *
1349
+ * iii. If the BuiltIn field is false, and the ScheduleStruct in the current value with a matching
1350
+ * ScheduleHandle field has a BuiltIn field set to true, a response with the status code
1351
+ * CONSTRAINT_ERROR shall be returned.
1352
+ *
1353
+ * c. If the specified SystemMode does not exist in ScheduleTypes, a response with the status code
1354
+ * CONSTRAINT_ERROR shall be returned.
1355
+ *
1356
+ * d. If the number of transitions exceeds the NumberOfScheduleTransitions value, a response with the
1357
+ * status code RESOURCE_EXHAUSTED shall be returned.
1358
+ *
1359
+ * e. If the value of the NumberOfScheduleTransitionsPerDay attribute is not null, and the number of
1360
+ * transitions on any single day of the week exceeds the NumberOfScheduleTransitionsPerDay value, a
1361
+ * response with the status code RESOURCE_EXHAUSTED shall be returned.
1362
+ *
1363
+ * f. If the PresetHandle field is present, but the associated ScheduleTypeStruct does not have the
1364
+ * SupportsPresets bit set, a response with the status code CONSTRAINT_ERROR shall be returned.
1365
+ *
1366
+ * g. If the PresetHandle field is present, but after applying all pending changes, the Presets
1367
+ * attribute would not contain a PresetStruct whose PresetHandle field matches the value of the
1368
+ * PresetHandle field, a response with the status code CONSTRAINT_ERROR shall be returned.
1369
+ *
1370
+ * h. If the Name is set, but the associated ScheduleTypeStruct does not have the SupportsNames bit
1371
+ * set, a response with the status code CONSTRAINT_ERROR shall be returned.
1372
+ *
1373
+ * i. For all transitions in all schedules in the write request:
1374
+ *
1375
+ * i. If the PresetHandle field is present, but the ScheduleTypeStruct matching the value of the
1376
+ * SystemMode field on the encompassing ScheduleStruct does not have the SupportsPresets bit set,
1377
+ * a response with the status code CONSTRAINT_ERROR shall be returned.
1378
+ *
1379
+ * j. If the PresetHandle field is present, but after applying all pending changes, the Presets
1380
+ * attribute would not contain a PresetStruct whose PresetHandle field matches the value of the
1381
+ * PresetHandle field, a response with the status code CONSTRAINT_ERROR shall be returned.
1382
+ *
1383
+ * i. If the SystemMode field is present, but the ScheduleTypeStruct matching the value of the
1384
+ * SystemMode field on the encompassing ScheduleStruct does not have the SupportsSetpoints bit
1385
+ * set, a response with the status code CONSTRAINT_ERROR shall be returned.
1386
+ *
1387
+ * ii. If the SystemMode field is has a value of SystemModeOff, but the ScheduleTypeStruct matching
1388
+ * the value of the SystemMode field on the encompassing ScheduleStruct does not have the
1389
+ * SupportsOff bit set, a response with the status code CONSTRAINT_ERROR shall be returned.
1390
+ *
1391
+ * k. If the HeatingSetpoint field is present, but the ScheduleTypeStruct matching the value of the
1392
+ * SystemMode field on the encompassing ScheduleStruct does not have the SupportsSetpoints bit set,
1393
+ * a response with the status code CONSTRAINT_ERROR shall be returned.
1394
+ *
1395
+ * l. If the CoolingSetpoint field is present, but the ScheduleTypeStruct matching the value of the
1396
+ * SystemMode field on the encompassing ScheduleStruct does not have the SupportsSetpoints bit set,
1397
+ * a response with the status code CONSTRAINT_ERROR shall be returned.
1398
+ *
1399
+ * 2. If appending the received ScheduleStruct to the pending list of Schedules would cause the total
1400
+ * number of pending schedules to exceed the value of the NumberOfSchedules attribute, a response with
1401
+ * the status code RESOURCE_EXHAUSTED shall be returned.
1402
+ *
1403
+ * 3. If appending the received ScheduleStruct to the pending list of Schedules would cause the total
1404
+ * number of pending schedules whose SystemMode field matches the appended schedule’s SystemMode field
1405
+ * to exceed the value of the NumberOfSchedules field on the ScheduleTypeStruct whose SystemMode field
1406
+ * matches the appended schedule’s SystemMode field, a response with the status code
1407
+ * RESOURCE_EXHAUSTED shall be returned.
1408
+ *
1409
+ * 4. Otherwise, the write shall be pended until receipt of a commit request, and the attribute status
1410
+ * shall be SUCCESS.
1411
+ *
1412
+ * a. If the BuiltIn field is null:
1413
+ *
1414
+ * i. If there is a ScheduleStruct in the current value with a matching ScheduleHandle field, the
1415
+ * BuiltIn field on the pending ScheduleStruct shall be set to the value of the BuiltIn on the
1416
+ * matching ScheduleStruct.
1417
+ *
1418
+ * ii. Otherwise, the BuiltIn field on the pending ScheduleStruct shall be set to false.
1419
+ *
1420
+ * On an attempt to commit, the status of this attribute shall be determined as follows:
1421
+ *
1422
+ * 1. For all existing schedules:
1423
+ *
1424
+ * a. If, after applying all pending changes, the updated value of the Schedules attribute would not
1425
+ * contain a ScheduleStruct with a matching ScheduleHandle field, indicating the removal of the
1426
+ * ScheduleStruct, the server shall check for invalid removal of the ScheduleStruct:
1427
+ *
1428
+ * i. If the BuiltIn field is true on the removed ScheduleStruct, the attribute status shall be
1429
+ * CONSTRAINT_ERROR.
1430
+ *
1431
+ * ii. If the removed ScheduleHandle is equal to the value of the ActiveScheduleHandle attribute, the
1432
+ * attribute status shall be INVALID_IN_STATE.
1433
+ *
1434
+ * 2. Otherwise, the attribute status shall be SUCCESS.
1435
+ *
1436
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.61
1437
+ */
1438
+ schedules: WritableAttribute(
1439
+ 81,
1440
+ TlvArray(Thermostat2.TlvSchedule),
1441
+ { persistent: true, default: [], writeAcl: AccessLevel.Manage }
1442
+ )
1443
+ },
1444
+ commands: {
1445
+ /**
1446
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.8
1447
+ */
1448
+ setActiveScheduleRequest: Command(5, Thermostat2.TlvSetActiveScheduleRequest, 5, TlvNoResponse)
1449
+ }
1450
+ });
862
1451
  Thermostat2.Base = MutableCluster.Component({
863
1452
  id: 513,
864
1453
  name: "Thermostat",
865
- revision: 6,
1454
+ revision: 8,
866
1455
  features: {
867
1456
  /**
868
1457
  * Heating
@@ -909,7 +1498,19 @@ var Thermostat;
909
1498
  *
910
1499
  * @see {@link MatterSpecification.v13.Cluster} § 4.3.4.1
911
1500
  */
912
- localTemperatureNotExposed: BitFlag(6)
1501
+ localTemperatureNotExposed: BitFlag(6),
1502
+ /**
1503
+ * MatterScheduleConfiguration
1504
+ *
1505
+ * Supports enhanced schedules
1506
+ */
1507
+ matterScheduleConfiguration: BitFlag(7),
1508
+ /**
1509
+ * Presets
1510
+ *
1511
+ * Thermostat supports setpoint presets
1512
+ */
1513
+ presets: BitFlag(8)
913
1514
  },
914
1515
  attributes: {
915
1516
  /**
@@ -925,22 +1526,23 @@ var Thermostat;
925
1526
  * • Otherwise, if the LTNE feature is supported, there is no feedback externally available for the
926
1527
  * LocalTemperatureCalibration. In that case, the LocalTemperature attribute shall always report null.
927
1528
  *
928
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.3
1529
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.2
929
1530
  */
930
1531
  localTemperature: Attribute(0, TlvNullable(TlvInt16), { default: null }),
931
1532
  /**
932
1533
  * Indicates the outdoor temperature, as measured locally or remotely (over the network).
933
1534
  *
934
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.4
1535
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.3
935
1536
  */
936
1537
  outdoorTemperature: OptionalAttribute(1, TlvNullable(TlvInt16), { default: null }),
937
1538
  /**
938
1539
  * Indicates the HVAC system type controlled by the thermostat. If the thermostat uses physical DIP
939
- * switches to set these parameters, this information shall be available read-only from the DIP switches.
940
- * If these parameters are set via software, there shall be read/write access in order to provide remote
941
- * programming capability.
1540
+ * switches to set these parameters, this information shall be available read-only
942
1541
  *
943
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.12
1542
+ * from the DIP switches. If these parameters are set via software, there shall be read/write access in
1543
+ * order to provide remote programming capability.
1544
+ *
1545
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.11
944
1546
  * @deprecated
945
1547
  */
946
1548
  hvacSystemTypeConfiguration: OptionalWritableAttribute(
@@ -958,7 +1560,7 @@ var Thermostat;
958
1560
  * If the LocalTemperature RemoteSensing bit is written with a value of 1 when the LTNE feature is present,
959
1561
  * the write shall fail and the server shall report a CONSTRAINT_ERROR.
960
1562
  *
961
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.23
1563
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.22
962
1564
  */
963
1565
  remoteSensing: OptionalWritableAttribute(
964
1566
  26,
@@ -969,7 +1571,11 @@ var Thermostat;
969
1571
  * Indicates the overall operating environment of the thermostat, and thus the possible system modes that
970
1572
  * the thermostat can operate in.
971
1573
  *
972
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.24
1574
+ * If an attempt is made to write to this attribute, the server shall silently ignore the write and the
1575
+ * value of this attribute shall remain unchanged. This behavior is in place for backwards compatibility
1576
+ * with existing thermostats.
1577
+ *
1578
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.23
973
1579
  */
974
1580
  controlSequenceOfOperation: WritableAttribute(
975
1581
  27,
@@ -980,12 +1586,12 @@ var Thermostat;
980
1586
  * Indicates the current operating mode of the thermostat. Its value shall be limited by the
981
1587
  * ControlSequenceOfOperation attribute.
982
1588
  *
983
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.25
1589
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.24
984
1590
  */
985
1591
  systemMode: WritableAttribute(
986
1592
  28,
987
1593
  TlvEnum(),
988
- { scene: true, persistent: true, default: 1 /* Auto */, writeAcl: AccessLevel.Manage }
1594
+ { persistent: true, default: 1 /* Auto */, writeAcl: AccessLevel.Manage }
989
1595
  ),
990
1596
  /**
991
1597
  * Indicates the temperature hold status on the thermostat. If hold status is on, the thermostat SHOULD
@@ -994,7 +1600,18 @@ var Thermostat;
994
1600
  * If the thermostat supports setpoint hold for a specific duration, it SHOULD also implement the
995
1601
  * TemperatureSetpointHoldDuration attribute.
996
1602
  *
997
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.31
1603
+ * If the server supports a setpoint hold for a specific duration, it SHOULD also implement the
1604
+ * SetpointHoldExpiryTimestamp attribute.
1605
+ *
1606
+ * If this attribute is updated to SetpointHoldOn and the TemperatureSetpointHoldDuration has a non- null
1607
+ * value and the SetpointHoldExpiryTimestamp is supported, the server shall update the
1608
+ * SetpointHoldExpiryTimestamp with a value of current UTC timestamp, in seconds, plus the value in
1609
+ * TemperatureSetpointHoldDuration multiplied by 60.
1610
+ *
1611
+ * If this attribute is updated to SetpointHoldOff and the SetpointHoldExpiryTimestamp is supported, the
1612
+ * server shall set the SetpointHoldExpiryTimestamp to null.
1613
+ *
1614
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.30
998
1615
  */
999
1616
  temperatureSetpointHold: OptionalWritableAttribute(
1000
1617
  35,
@@ -1006,7 +1623,15 @@ var Thermostat;
1006
1623
  * specified duration SHOULD implement this attribute. The null value indicates the field is unused. All
1007
1624
  * other values are reserved.
1008
1625
  *
1009
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.32
1626
+ * If this attribute is updated to a non-null value and the TemperatureSetpointHold is set to
1627
+ * SetpointHoldOn and the SetpointHoldExpiryTimestamp is supported, the server shall update
1628
+ * SetpointHoldExpiryTimestamp with a value of current UTC timestamp, in seconds, plus the new value of
1629
+ * this attribute multiplied by 60.
1630
+ *
1631
+ * If this attribute is set to null and the SetpointHoldExpiryTimestamp is supported, the server shall set
1632
+ * the SetpointHoldExpiryTimestamp to null.
1633
+ *
1634
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.31
1010
1635
  */
1011
1636
  temperatureSetpointHoldDuration: OptionalWritableAttribute(
1012
1637
  36,
@@ -1031,7 +1656,7 @@ var Thermostat;
1031
1656
  * Modifying the ScheduleActive bit does not clear or delete previous weekly schedule programming
1032
1657
  * configurations.
1033
1658
  *
1034
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.33
1659
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.32
1035
1660
  */
1036
1661
  thermostatProgrammingOperationMode: OptionalWritableAttribute(
1037
1662
  37,
@@ -1042,7 +1667,7 @@ var Thermostat;
1042
1667
  * Indicates the current relay state of the heat, cool, and fan relays. Unimplemented outputs shall be
1043
1668
  * treated as if they were Off.
1044
1669
  *
1045
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.34
1670
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.33
1046
1671
  */
1047
1672
  thermostatRunningState: OptionalAttribute(41, TlvBitmap(TlvUInt16, Thermostat2.RelayState)),
1048
1673
  /**
@@ -1054,7 +1679,7 @@ var Thermostat;
1054
1679
  * provider). Because automation services may initiate frequent setpoint changes, this attribute clearly
1055
1680
  * differentiates the source of setpoint changes made at the thermostat.
1056
1681
  *
1057
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.35
1682
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.34
1058
1683
  */
1059
1684
  setpointChangeSource: OptionalAttribute(
1060
1685
  48,
@@ -1068,13 +1693,13 @@ var Thermostat;
1068
1693
  *
1069
1694
  * The null value indicates that the previous setpoint was unknown.
1070
1695
  *
1071
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.36
1696
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.35
1072
1697
  */
1073
1698
  setpointChangeAmount: OptionalAttribute(49, TlvNullable(TlvInt16), { default: null }),
1074
1699
  /**
1075
1700
  * Indicates the time in UTC at which the SetpointChangeAmount attribute change was recorded.
1076
1701
  *
1077
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.37
1702
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.36
1078
1703
  */
1079
1704
  setpointChangeSourceTimestamp: OptionalAttribute(50, TlvEpochS, { default: 0 }),
1080
1705
  /**
@@ -1103,7 +1728,7 @@ var Thermostat;
1103
1728
  * when a setpoint is of a specified amount greater than the measured temperature. This allows the heated
1104
1729
  * space to be quickly heated to the desired level set by the user.
1105
1730
  *
1106
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.44
1731
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.43
1107
1732
  */
1108
1733
  emergencyHeatDelta: OptionalWritableAttribute(
1109
1734
  58,
@@ -1114,7 +1739,7 @@ var Thermostat;
1114
1739
  * Indicates the type of Mini Split ACTypeEnum of Mini Split AC is defined depending on how Cooling and
1115
1740
  * Heating condition is achieved by Mini Split AC.
1116
1741
  *
1117
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.45
1742
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.44
1118
1743
  */
1119
1744
  acType: OptionalWritableAttribute(
1120
1745
  64,
@@ -1124,7 +1749,7 @@ var Thermostat;
1124
1749
  /**
1125
1750
  * Indicates capacity of Mini Split AC in terms of the format defined by the ACCapacityFormat attribute
1126
1751
  *
1127
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.46
1752
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.45
1128
1753
  */
1129
1754
  acCapacity: OptionalWritableAttribute(
1130
1755
  65,
@@ -1134,7 +1759,7 @@ var Thermostat;
1134
1759
  /**
1135
1760
  * Indicates type of refrigerant used within the Mini Split AC.
1136
1761
  *
1137
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.47
1762
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.46
1138
1763
  */
1139
1764
  acRefrigerantType: OptionalWritableAttribute(
1140
1765
  66,
@@ -1144,7 +1769,7 @@ var Thermostat;
1144
1769
  /**
1145
1770
  * Indicates the type of compressor used within the Mini Split AC.
1146
1771
  *
1147
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.48
1772
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.47
1148
1773
  */
1149
1774
  acCompressorType: OptionalWritableAttribute(
1150
1775
  67,
@@ -1154,7 +1779,7 @@ var Thermostat;
1154
1779
  /**
1155
1780
  * Indicates the type of errors encountered within the Mini Split AC.
1156
1781
  *
1157
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.49
1782
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.48
1158
1783
  */
1159
1784
  acErrorCode: OptionalWritableAttribute(
1160
1785
  68,
@@ -1164,7 +1789,7 @@ var Thermostat;
1164
1789
  /**
1165
1790
  * Indicates the position of Louver on the AC.
1166
1791
  *
1167
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.50
1792
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.49
1168
1793
  */
1169
1794
  acLouverPosition: OptionalWritableAttribute(
1170
1795
  69,
@@ -1174,27 +1799,38 @@ var Thermostat;
1174
1799
  /**
1175
1800
  * Indicates the temperature of the AC coil, as measured locally or remotely (over the network).
1176
1801
  *
1177
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.51
1802
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.50
1178
1803
  */
1179
1804
  acCoilTemperature: OptionalAttribute(70, TlvNullable(TlvInt16), { default: null }),
1180
1805
  /**
1181
1806
  * Indicates the format for the ACCapacity attribute.
1182
1807
  *
1183
- * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.52
1808
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.51
1184
1809
  */
1185
1810
  acCapacityFormat: OptionalWritableAttribute(
1186
1811
  71,
1187
1812
  TlvEnum(),
1188
1813
  { persistent: true, default: 0 /* BtUh */, writeAcl: AccessLevel.Manage }
1814
+ ),
1815
+ /**
1816
+ * If there is a known time when the TemperatureSetpointHold shall be cleared, this attribute shall contain
1817
+ * the timestamp in UTC indicating when that will happen. If there is no such known time, this attribute
1818
+ * shall be null.
1819
+ *
1820
+ * If the TemperatureSetpointHold is set to SetpointHoldOff or the TemperatureSetpointHoldDuration is set
1821
+ * to null, this attribute shall be set to null indicating there is no hold on the Thermostat either with
1822
+ * or without a duration.
1823
+ *
1824
+ * @see {@link MatterSpecification.v13.Cluster} § 4.3.9.62
1825
+ */
1826
+ setpointHoldExpiryTimestamp: OptionalAttribute(
1827
+ 82,
1828
+ TlvNullable(TlvEpochS),
1829
+ { persistent: true, default: null }
1189
1830
  )
1190
1831
  },
1191
1832
  commands: {
1192
1833
  /**
1193
- * Upon receipt, the attributes for the indicated setpoint(s) shall have the amount specified in the Amount
1194
- * field added to them. If the resulting value is outside the limits imposed by MinCoolSetpointLimit,
1195
- * MaxCoolSetpointLimit, MinHeatSetpointLimit and MaxHeatSetpointLimit, the value is clamped to those
1196
- * limits. This is not considered an error condition.
1197
- *
1198
1834
  * @see {@link MatterSpecification.v13.Cluster} § 4.3.10.1
1199
1835
  */
1200
1836
  setpointRaiseLower: Command(0, Thermostat2.TlvSetpointRaiseLowerRequest, 0, TlvNoResponse)
@@ -1214,6 +1850,8 @@ var Thermostat;
1214
1850
  { flags: { scheduleConfiguration: true }, component: Thermostat2.ScheduleConfigurationComponent },
1215
1851
  { flags: { setback: true }, component: Thermostat2.SetbackComponent },
1216
1852
  { flags: { setback: true, occupancy: true }, component: Thermostat2.SetbackAndOccupancyComponent },
1853
+ { flags: { presets: true }, component: Thermostat2.PresetsComponent },
1854
+ { flags: { matterScheduleConfiguration: true }, component: Thermostat2.MatterScheduleConfigurationComponent },
1217
1855
  { flags: { autoMode: true, heating: false }, component: false },
1218
1856
  { flags: { autoMode: true, cooling: false }, component: false },
1219
1857
  { flags: { heating: false, cooling: false }, component: false }
@@ -1230,6 +1868,8 @@ var Thermostat;
1230
1868
  const SCH = { scheduleConfiguration: true };
1231
1869
  const SB = { setback: true };
1232
1870
  const SB_OCC = { setback: true, occupancy: true };
1871
+ const PRES = { presets: true };
1872
+ const MSCH = { matterScheduleConfiguration: true };
1233
1873
  Thermostat2.CompleteInstance = MutableCluster({
1234
1874
  id: Thermostat2.Base.id,
1235
1875
  name: Thermostat2.Base.name,
@@ -1341,6 +1981,40 @@ var Thermostat;
1341
1981
  unoccupiedSetbackMax: MutableCluster.AsConditional(
1342
1982
  Thermostat2.SetbackAndOccupancyComponent.attributes.unoccupiedSetbackMax,
1343
1983
  { mandatoryIf: [SB_OCC] }
1984
+ ),
1985
+ presetTypes: MutableCluster.AsConditional(Thermostat2.PresetsComponent.attributes.presetTypes, { mandatoryIf: [PRES] }),
1986
+ scheduleTypes: MutableCluster.AsConditional(
1987
+ Thermostat2.MatterScheduleConfigurationComponent.attributes.scheduleTypes,
1988
+ { mandatoryIf: [MSCH] }
1989
+ ),
1990
+ numberOfPresets: MutableCluster.AsConditional(
1991
+ Thermostat2.PresetsComponent.attributes.numberOfPresets,
1992
+ { mandatoryIf: [PRES] }
1993
+ ),
1994
+ numberOfSchedules: MutableCluster.AsConditional(
1995
+ Thermostat2.MatterScheduleConfigurationComponent.attributes.numberOfSchedules,
1996
+ { mandatoryIf: [MSCH] }
1997
+ ),
1998
+ numberOfScheduleTransitions: MutableCluster.AsConditional(
1999
+ Thermostat2.MatterScheduleConfigurationComponent.attributes.numberOfScheduleTransitions,
2000
+ { mandatoryIf: [MSCH] }
2001
+ ),
2002
+ numberOfScheduleTransitionPerDay: MutableCluster.AsConditional(
2003
+ Thermostat2.MatterScheduleConfigurationComponent.attributes.numberOfScheduleTransitionPerDay,
2004
+ { mandatoryIf: [MSCH] }
2005
+ ),
2006
+ activePresetHandle: MutableCluster.AsConditional(
2007
+ Thermostat2.PresetsComponent.attributes.activePresetHandle,
2008
+ { mandatoryIf: [PRES] }
2009
+ ),
2010
+ activeScheduleHandle: MutableCluster.AsConditional(
2011
+ Thermostat2.MatterScheduleConfigurationComponent.attributes.activeScheduleHandle,
2012
+ { mandatoryIf: [MSCH] }
2013
+ ),
2014
+ presets: MutableCluster.AsConditional(Thermostat2.PresetsComponent.attributes.presets, { mandatoryIf: [PRES] }),
2015
+ schedules: MutableCluster.AsConditional(
2016
+ Thermostat2.MatterScheduleConfigurationComponent.attributes.schedules,
2017
+ { mandatoryIf: [MSCH] }
1344
2018
  )
1345
2019
  },
1346
2020
  commands: {
@@ -1356,6 +2030,14 @@ var Thermostat;
1356
2030
  clearWeeklySchedule: MutableCluster.AsConditional(
1357
2031
  Thermostat2.ScheduleConfigurationComponent.commands.clearWeeklySchedule,
1358
2032
  { mandatoryIf: [SCH] }
2033
+ ),
2034
+ setActiveScheduleRequest: MutableCluster.AsConditional(
2035
+ Thermostat2.MatterScheduleConfigurationComponent.commands.setActiveScheduleRequest,
2036
+ { mandatoryIf: [MSCH] }
2037
+ ),
2038
+ setActivePresetRequest: MutableCluster.AsConditional(
2039
+ Thermostat2.PresetsComponent.commands.setActivePresetRequest,
2040
+ { mandatoryIf: [PRES] }
1359
2041
  )
1360
2042
  }
1361
2043
  });