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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (807) hide show
  1. package/dist/cjs/clusters/access-control.d.ts +3972 -522
  2. package/dist/cjs/clusters/access-control.d.ts.map +1 -1
  3. package/dist/cjs/clusters/access-control.js +640 -116
  4. package/dist/cjs/clusters/access-control.js.map +2 -2
  5. package/dist/cjs/clusters/actions.d.ts +10 -9
  6. package/dist/cjs/clusters/actions.d.ts.map +1 -1
  7. package/dist/cjs/clusters/actions.js +4 -4
  8. package/dist/cjs/clusters/actions.js.map +1 -1
  9. package/dist/cjs/clusters/administrator-commissioning.d.ts +156 -129
  10. package/dist/cjs/clusters/administrator-commissioning.d.ts.map +1 -1
  11. package/dist/cjs/clusters/administrator-commissioning.js +40 -35
  12. package/dist/cjs/clusters/administrator-commissioning.js.map +1 -1
  13. package/dist/cjs/clusters/alarm-base.d.ts +9 -12
  14. package/dist/cjs/clusters/alarm-base.d.ts.map +1 -1
  15. package/dist/cjs/clusters/alarm-base.js +3 -4
  16. package/dist/cjs/clusters/alarm-base.js.map +1 -1
  17. package/dist/cjs/clusters/application-launcher.d.ts +27 -15
  18. package/dist/cjs/clusters/application-launcher.d.ts.map +1 -1
  19. package/dist/cjs/clusters/application-launcher.js +7 -4
  20. package/dist/cjs/clusters/application-launcher.js.map +1 -1
  21. package/dist/cjs/clusters/ballast-configuration.d.ts +7 -7
  22. package/dist/cjs/clusters/ballast-configuration.js +7 -7
  23. package/dist/cjs/clusters/basic-information.d.ts +29 -21
  24. package/dist/cjs/clusters/basic-information.d.ts.map +1 -1
  25. package/dist/cjs/clusters/basic-information.js +29 -21
  26. package/dist/cjs/clusters/basic-information.js.map +1 -1
  27. package/dist/cjs/clusters/bridged-device-basic-information.d.ts +816 -34
  28. package/dist/cjs/clusters/bridged-device-basic-information.d.ts.map +1 -1
  29. package/dist/cjs/clusters/bridged-device-basic-information.js +182 -29
  30. package/dist/cjs/clusters/bridged-device-basic-information.js.map +2 -2
  31. package/dist/cjs/clusters/channel.d.ts +115 -124
  32. package/dist/cjs/clusters/channel.d.ts.map +1 -1
  33. package/dist/cjs/clusters/channel.js +15 -16
  34. package/dist/cjs/clusters/channel.js.map +1 -1
  35. package/dist/cjs/clusters/color-control.d.ts +3076 -1366
  36. package/dist/cjs/clusters/color-control.d.ts.map +1 -1
  37. package/dist/cjs/clusters/color-control.js +423 -357
  38. package/dist/cjs/clusters/color-control.js.map +2 -2
  39. package/dist/cjs/clusters/commissioner-control.d.ts +268 -0
  40. package/dist/cjs/clusters/commissioner-control.d.ts.map +1 -0
  41. package/dist/cjs/clusters/commissioner-control.js +194 -0
  42. package/dist/cjs/clusters/commissioner-control.js.map +6 -0
  43. package/dist/cjs/clusters/content-control.d.ts +497 -221
  44. package/dist/cjs/clusters/content-control.d.ts.map +1 -1
  45. package/dist/cjs/clusters/content-control.js +59 -41
  46. package/dist/cjs/clusters/content-control.js.map +2 -2
  47. package/dist/cjs/clusters/content-launcher.d.ts +248 -215
  48. package/dist/cjs/clusters/content-launcher.d.ts.map +1 -1
  49. package/dist/cjs/clusters/content-launcher.js +16 -15
  50. package/dist/cjs/clusters/content-launcher.js.map +1 -1
  51. package/dist/cjs/clusters/device-energy-management-mode.d.ts +76 -333
  52. package/dist/cjs/clusters/device-energy-management-mode.d.ts.map +1 -1
  53. package/dist/cjs/clusters/device-energy-management-mode.js +26 -73
  54. package/dist/cjs/clusters/device-energy-management-mode.js.map +1 -1
  55. package/dist/cjs/clusters/device-energy-management.d.ts +1299 -930
  56. package/dist/cjs/clusters/device-energy-management.d.ts.map +1 -1
  57. package/dist/cjs/clusters/device-energy-management.js +189 -160
  58. package/dist/cjs/clusters/device-energy-management.js.map +2 -2
  59. package/dist/cjs/clusters/dishwasher-alarm.d.ts +14 -17
  60. package/dist/cjs/clusters/dishwasher-alarm.d.ts.map +1 -1
  61. package/dist/cjs/clusters/dishwasher-alarm.js +3 -4
  62. package/dist/cjs/clusters/dishwasher-alarm.js.map +1 -1
  63. package/dist/cjs/clusters/dishwasher-mode.d.ts +65 -105
  64. package/dist/cjs/clusters/dishwasher-mode.d.ts.map +1 -1
  65. package/dist/cjs/clusters/dishwasher-mode.js +12 -24
  66. package/dist/cjs/clusters/dishwasher-mode.js.map +1 -1
  67. package/dist/cjs/clusters/door-lock.d.ts +2751 -5427
  68. package/dist/cjs/clusters/door-lock.d.ts.map +1 -1
  69. package/dist/cjs/clusters/door-lock.js +480 -802
  70. package/dist/cjs/clusters/door-lock.js.map +2 -2
  71. package/dist/cjs/clusters/ecosystem-information.d.ts +186 -0
  72. package/dist/cjs/clusters/ecosystem-information.d.ts.map +1 -0
  73. package/dist/cjs/clusters/ecosystem-information.js +154 -0
  74. package/dist/cjs/clusters/ecosystem-information.js.map +6 -0
  75. package/dist/cjs/clusters/electrical-energy-measurement.d.ts +363 -368
  76. package/dist/cjs/clusters/electrical-energy-measurement.d.ts.map +1 -1
  77. package/dist/cjs/clusters/electrical-energy-measurement.js +15 -16
  78. package/dist/cjs/clusters/electrical-energy-measurement.js.map +1 -1
  79. package/dist/cjs/clusters/energy-evse-mode.d.ts +92 -330
  80. package/dist/cjs/clusters/energy-evse-mode.d.ts.map +1 -1
  81. package/dist/cjs/clusters/energy-evse-mode.js +25 -72
  82. package/dist/cjs/clusters/energy-evse-mode.js.map +1 -1
  83. package/dist/cjs/clusters/energy-evse.d.ts +557 -273
  84. package/dist/cjs/clusters/energy-evse.d.ts.map +1 -1
  85. package/dist/cjs/clusters/energy-evse.js +107 -55
  86. package/dist/cjs/clusters/energy-evse.js.map +1 -1
  87. package/dist/cjs/clusters/energy-preference.d.ts +76 -76
  88. package/dist/cjs/clusters/energy-preference.d.ts.map +1 -1
  89. package/dist/cjs/clusters/energy-preference.js +15 -18
  90. package/dist/cjs/clusters/energy-preference.js.map +1 -1
  91. package/dist/cjs/clusters/ethernet-network-diagnostics.d.ts +3 -9
  92. package/dist/cjs/clusters/ethernet-network-diagnostics.d.ts.map +1 -1
  93. package/dist/cjs/clusters/ethernet-network-diagnostics.js +1 -3
  94. package/dist/cjs/clusters/ethernet-network-diagnostics.js.map +1 -1
  95. package/dist/cjs/clusters/fan-control.d.ts +12 -12
  96. package/dist/cjs/clusters/fan-control.js +4 -4
  97. package/dist/cjs/clusters/fixed-label.d.ts +7 -2
  98. package/dist/cjs/clusters/fixed-label.d.ts.map +1 -1
  99. package/dist/cjs/clusters/fixed-label.js.map +1 -1
  100. package/dist/cjs/clusters/flow-measurement.d.ts +4 -4
  101. package/dist/cjs/clusters/flow-measurement.d.ts.map +1 -1
  102. package/dist/cjs/clusters/flow-measurement.js +6 -6
  103. package/dist/cjs/clusters/flow-measurement.js.map +1 -1
  104. package/dist/cjs/clusters/general-commissioning.d.ts +1416 -111
  105. package/dist/cjs/clusters/general-commissioning.d.ts.map +1 -1
  106. package/dist/cjs/clusters/general-commissioning.js +272 -54
  107. package/dist/cjs/clusters/general-commissioning.js.map +2 -2
  108. package/dist/cjs/clusters/general-diagnostics.d.ts +115 -122
  109. package/dist/cjs/clusters/general-diagnostics.d.ts.map +1 -1
  110. package/dist/cjs/clusters/general-diagnostics.js +31 -33
  111. package/dist/cjs/clusters/general-diagnostics.js.map +1 -1
  112. package/dist/cjs/clusters/group-key-management.d.ts +72 -82
  113. package/dist/cjs/clusters/group-key-management.d.ts.map +1 -1
  114. package/dist/cjs/clusters/group-key-management.js +19 -22
  115. package/dist/cjs/clusters/group-key-management.js.map +1 -1
  116. package/dist/cjs/clusters/groups.d.ts +9 -6
  117. package/dist/cjs/clusters/groups.d.ts.map +1 -1
  118. package/dist/cjs/clusters/groups.js +3 -2
  119. package/dist/cjs/clusters/groups.js.map +1 -1
  120. package/dist/cjs/clusters/icd-management.d.ts +223 -66
  121. package/dist/cjs/clusters/icd-management.d.ts.map +1 -1
  122. package/dist/cjs/clusters/icd-management.js +61 -23
  123. package/dist/cjs/clusters/icd-management.js.map +2 -2
  124. package/dist/cjs/clusters/identify.d.ts +12 -13
  125. package/dist/cjs/clusters/identify.d.ts.map +1 -1
  126. package/dist/cjs/clusters/identify.js +9 -10
  127. package/dist/cjs/clusters/identify.js.map +1 -1
  128. package/dist/cjs/clusters/illuminance-measurement.d.ts +7 -8
  129. package/dist/cjs/clusters/illuminance-measurement.d.ts.map +1 -1
  130. package/dist/cjs/clusters/illuminance-measurement.js +9 -10
  131. package/dist/cjs/clusters/illuminance-measurement.js.map +1 -1
  132. package/dist/cjs/clusters/index.d.ts +11 -1
  133. package/dist/cjs/clusters/index.d.ts.map +1 -1
  134. package/dist/cjs/clusters/index.js +33 -3
  135. package/dist/cjs/clusters/index.js.map +1 -1
  136. package/dist/cjs/clusters/joint-fabric-datastore-cluster.d.ts +1239 -0
  137. package/dist/cjs/clusters/joint-fabric-datastore-cluster.d.ts.map +1 -0
  138. package/dist/cjs/clusters/joint-fabric-datastore-cluster.js +490 -0
  139. package/dist/cjs/clusters/joint-fabric-datastore-cluster.js.map +6 -0
  140. package/dist/cjs/clusters/joint-fabric-pki.d.ts +174 -0
  141. package/dist/cjs/clusters/joint-fabric-pki.d.ts.map +1 -0
  142. package/dist/cjs/clusters/joint-fabric-pki.js +120 -0
  143. package/dist/cjs/clusters/joint-fabric-pki.js.map +6 -0
  144. package/dist/cjs/clusters/keypad-input.d.ts +2 -2
  145. package/dist/cjs/clusters/laundry-dryer-controls.d.ts +6 -7
  146. package/dist/cjs/clusters/laundry-dryer-controls.d.ts.map +1 -1
  147. package/dist/cjs/clusters/laundry-dryer-controls.js +5 -9
  148. package/dist/cjs/clusters/laundry-dryer-controls.js.map +1 -1
  149. package/dist/cjs/clusters/laundry-washer-controls.d.ts +74 -62
  150. package/dist/cjs/clusters/laundry-washer-controls.d.ts.map +1 -1
  151. package/dist/cjs/clusters/laundry-washer-controls.js +26 -25
  152. package/dist/cjs/clusters/laundry-washer-controls.js.map +1 -1
  153. package/dist/cjs/clusters/laundry-washer-mode.d.ts +69 -109
  154. package/dist/cjs/clusters/laundry-washer-mode.d.ts.map +1 -1
  155. package/dist/cjs/clusters/laundry-washer-mode.js +13 -25
  156. package/dist/cjs/clusters/laundry-washer-mode.js.map +1 -1
  157. package/dist/cjs/clusters/level-control.d.ts +209 -70
  158. package/dist/cjs/clusters/level-control.d.ts.map +1 -1
  159. package/dist/cjs/clusters/level-control.js +45 -12
  160. package/dist/cjs/clusters/level-control.js.map +1 -1
  161. package/dist/cjs/clusters/localization-configuration.d.ts +5 -6
  162. package/dist/cjs/clusters/localization-configuration.d.ts.map +1 -1
  163. package/dist/cjs/clusters/localization-configuration.js +5 -6
  164. package/dist/cjs/clusters/localization-configuration.js.map +1 -1
  165. package/dist/cjs/clusters/media-input.d.ts +9 -6
  166. package/dist/cjs/clusters/media-input.d.ts.map +1 -1
  167. package/dist/cjs/clusters/media-input.js +3 -2
  168. package/dist/cjs/clusters/media-input.js.map +1 -1
  169. package/dist/cjs/clusters/media-playback.d.ts +29 -24
  170. package/dist/cjs/clusters/media-playback.d.ts.map +1 -1
  171. package/dist/cjs/clusters/media-playback.js +5 -4
  172. package/dist/cjs/clusters/media-playback.js.map +1 -1
  173. package/dist/cjs/clusters/microwave-oven-control.d.ts +54 -48
  174. package/dist/cjs/clusters/microwave-oven-control.d.ts.map +1 -1
  175. package/dist/cjs/clusters/microwave-oven-control.js +19 -17
  176. package/dist/cjs/clusters/microwave-oven-control.js.map +1 -1
  177. package/dist/cjs/clusters/microwave-oven-mode.d.ts +63 -69
  178. package/dist/cjs/clusters/microwave-oven-mode.d.ts.map +1 -1
  179. package/dist/cjs/clusters/microwave-oven-mode.js +14 -11
  180. package/dist/cjs/clusters/microwave-oven-mode.js.map +1 -1
  181. package/dist/cjs/clusters/mode-base.d.ts +27 -46
  182. package/dist/cjs/clusters/mode-base.d.ts.map +1 -1
  183. package/dist/cjs/clusters/mode-base.js +9 -10
  184. package/dist/cjs/clusters/mode-base.js.map +1 -1
  185. package/dist/cjs/clusters/mode-select.d.ts +33 -27
  186. package/dist/cjs/clusters/mode-select.d.ts.map +1 -1
  187. package/dist/cjs/clusters/mode-select.js +14 -13
  188. package/dist/cjs/clusters/mode-select.js.map +1 -1
  189. package/dist/cjs/clusters/network-commissioning.d.ts +263 -240
  190. package/dist/cjs/clusters/network-commissioning.d.ts.map +1 -1
  191. package/dist/cjs/clusters/network-commissioning.js +46 -39
  192. package/dist/cjs/clusters/network-commissioning.js.map +1 -1
  193. package/dist/cjs/clusters/occupancy-sensing.d.ts +1002 -63
  194. package/dist/cjs/clusters/occupancy-sensing.d.ts.map +1 -1
  195. package/dist/cjs/clusters/occupancy-sensing.js +278 -63
  196. package/dist/cjs/clusters/occupancy-sensing.js.map +2 -2
  197. package/dist/cjs/clusters/on-off.d.ts +18 -24
  198. package/dist/cjs/clusters/on-off.d.ts.map +1 -1
  199. package/dist/cjs/clusters/on-off.js +3 -4
  200. package/dist/cjs/clusters/on-off.js.map +1 -1
  201. package/dist/cjs/clusters/operational-credentials.d.ts +98 -85
  202. package/dist/cjs/clusters/operational-credentials.d.ts.map +1 -1
  203. package/dist/cjs/clusters/operational-credentials.js +56 -49
  204. package/dist/cjs/clusters/operational-credentials.js.map +1 -1
  205. package/dist/cjs/clusters/operational-state.d.ts +136 -57
  206. package/dist/cjs/clusters/operational-state.d.ts.map +1 -1
  207. package/dist/cjs/clusters/operational-state.js +62 -36
  208. package/dist/cjs/clusters/operational-state.js.map +2 -2
  209. package/dist/cjs/clusters/ota-software-update-provider.d.ts +43 -42
  210. package/dist/cjs/clusters/ota-software-update-provider.d.ts.map +1 -1
  211. package/dist/cjs/clusters/ota-software-update-provider.js +20 -19
  212. package/dist/cjs/clusters/ota-software-update-provider.js.map +1 -1
  213. package/dist/cjs/clusters/ota-software-update-requestor.d.ts +6 -10
  214. package/dist/cjs/clusters/ota-software-update-requestor.d.ts.map +1 -1
  215. package/dist/cjs/clusters/ota-software-update-requestor.js +4 -6
  216. package/dist/cjs/clusters/ota-software-update-requestor.js.map +1 -1
  217. package/dist/cjs/clusters/oven-cavity-operational-state.d.ts +44 -154
  218. package/dist/cjs/clusters/oven-cavity-operational-state.d.ts.map +1 -1
  219. package/dist/cjs/clusters/oven-cavity-operational-state.js +39 -156
  220. package/dist/cjs/clusters/oven-cavity-operational-state.js.map +1 -1
  221. package/dist/cjs/clusters/oven-mode.d.ts +79 -349
  222. package/dist/cjs/clusters/oven-mode.d.ts.map +1 -1
  223. package/dist/cjs/clusters/oven-mode.js +26 -82
  224. package/dist/cjs/clusters/oven-mode.js.map +1 -1
  225. package/dist/cjs/clusters/power-source.d.ts +169 -44
  226. package/dist/cjs/clusters/power-source.d.ts.map +1 -1
  227. package/dist/cjs/clusters/power-source.js +40 -16
  228. package/dist/cjs/clusters/power-source.js.map +1 -1
  229. package/dist/cjs/clusters/pressure-measurement.js +2 -2
  230. package/dist/cjs/clusters/pressure-measurement.js.map +1 -1
  231. package/dist/cjs/clusters/pump-configuration-and-control.d.ts +73 -63
  232. package/dist/cjs/clusters/pump-configuration-and-control.d.ts.map +1 -1
  233. package/dist/cjs/clusters/pump-configuration-and-control.js +19 -20
  234. package/dist/cjs/clusters/pump-configuration-and-control.js.map +1 -1
  235. package/dist/cjs/clusters/refrigerator-alarm.d.ts +2 -1
  236. package/dist/cjs/clusters/refrigerator-alarm.d.ts.map +1 -1
  237. package/dist/cjs/clusters/refrigerator-alarm.js.map +1 -1
  238. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +59 -91
  239. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  240. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +11 -19
  241. package/dist/cjs/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  242. package/dist/cjs/clusters/relative-humidity-measurement.js +1 -1
  243. package/dist/cjs/clusters/relative-humidity-measurement.js.map +1 -1
  244. package/dist/cjs/clusters/rvc-clean-mode.d.ts +59 -103
  245. package/dist/cjs/clusters/rvc-clean-mode.d.ts.map +1 -1
  246. package/dist/cjs/clusters/rvc-clean-mode.js +11 -15
  247. package/dist/cjs/clusters/rvc-clean-mode.js.map +1 -1
  248. package/dist/cjs/clusters/rvc-operational-state.d.ts +81 -25
  249. package/dist/cjs/clusters/rvc-operational-state.d.ts.map +1 -1
  250. package/dist/cjs/clusters/rvc-operational-state.js +49 -20
  251. package/dist/cjs/clusters/rvc-operational-state.js.map +1 -1
  252. package/dist/cjs/clusters/rvc-run-mode.d.ts +85 -129
  253. package/dist/cjs/clusters/rvc-run-mode.d.ts.map +1 -1
  254. package/dist/cjs/clusters/rvc-run-mode.js +16 -15
  255. package/dist/cjs/clusters/rvc-run-mode.js.map +1 -1
  256. package/dist/cjs/clusters/scenes-management.d.ts +328 -181
  257. package/dist/cjs/clusters/scenes-management.d.ts.map +1 -1
  258. package/dist/cjs/clusters/scenes-management.js +37 -22
  259. package/dist/cjs/clusters/scenes-management.js.map +1 -1
  260. package/dist/cjs/clusters/service-area.d.ts +2052 -0
  261. package/dist/cjs/clusters/service-area.d.ts.map +1 -0
  262. package/dist/cjs/clusters/service-area.js +582 -0
  263. package/dist/cjs/clusters/service-area.js.map +6 -0
  264. package/dist/cjs/clusters/smoke-co-alarm.d.ts +10 -18
  265. package/dist/cjs/clusters/smoke-co-alarm.d.ts.map +1 -1
  266. package/dist/cjs/clusters/smoke-co-alarm.js +2 -3
  267. package/dist/cjs/clusters/smoke-co-alarm.js.map +1 -1
  268. package/dist/cjs/clusters/switch.d.ts +478 -191
  269. package/dist/cjs/clusters/switch.d.ts.map +1 -1
  270. package/dist/cjs/clusters/switch.js +145 -57
  271. package/dist/cjs/clusters/switch.js.map +1 -1
  272. package/dist/cjs/clusters/target-navigator.d.ts +1 -1
  273. package/dist/cjs/clusters/target-navigator.js +1 -1
  274. package/dist/cjs/clusters/thermostat.d.ts +3877 -830
  275. package/dist/cjs/clusters/thermostat.d.ts.map +1 -1
  276. package/dist/cjs/clusters/thermostat.js +841 -159
  277. package/dist/cjs/clusters/thermostat.js.map +2 -2
  278. package/dist/cjs/clusters/thread-border-router-management.d.ts +711 -0
  279. package/dist/cjs/clusters/thread-border-router-management.d.ts.map +1 -0
  280. package/dist/cjs/clusters/thread-border-router-management.js +265 -0
  281. package/dist/cjs/clusters/thread-border-router-management.js.map +6 -0
  282. package/dist/cjs/clusters/thread-network-diagnostics.d.ts +81 -55
  283. package/dist/cjs/clusters/thread-network-diagnostics.d.ts.map +1 -1
  284. package/dist/cjs/clusters/thread-network-diagnostics.js +32 -21
  285. package/dist/cjs/clusters/thread-network-diagnostics.js.map +1 -1
  286. package/dist/cjs/clusters/thread-network-directory.d.ts +250 -0
  287. package/dist/cjs/clusters/thread-network-directory.d.ts.map +1 -0
  288. package/dist/cjs/clusters/thread-network-directory.js +187 -0
  289. package/dist/cjs/clusters/thread-network-directory.js.map +6 -0
  290. package/dist/cjs/clusters/time-synchronization.d.ts +101 -76
  291. package/dist/cjs/clusters/time-synchronization.d.ts.map +1 -1
  292. package/dist/cjs/clusters/time-synchronization.js +30 -23
  293. package/dist/cjs/clusters/time-synchronization.js.map +1 -1
  294. package/dist/cjs/clusters/unit-localization.d.ts +3 -4
  295. package/dist/cjs/clusters/unit-localization.d.ts.map +1 -1
  296. package/dist/cjs/clusters/unit-localization.js.map +1 -1
  297. package/dist/cjs/clusters/user-label.d.ts +2 -1
  298. package/dist/cjs/clusters/user-label.d.ts.map +1 -1
  299. package/dist/cjs/clusters/user-label.js.map +1 -1
  300. package/dist/cjs/clusters/water-heater-management.d.ts +1371 -0
  301. package/dist/cjs/clusters/water-heater-management.d.ts.map +1 -0
  302. package/dist/cjs/clusters/water-heater-management.js +336 -0
  303. package/dist/cjs/clusters/water-heater-management.js.map +6 -0
  304. package/dist/cjs/clusters/water-heater-mode.d.ts +491 -0
  305. package/dist/cjs/clusters/water-heater-mode.d.ts.map +1 -0
  306. package/dist/cjs/clusters/water-heater-mode.js +195 -0
  307. package/dist/cjs/clusters/water-heater-mode.js.map +6 -0
  308. package/dist/cjs/clusters/water-tank-level-monitoring.d.ts +162 -0
  309. package/dist/cjs/clusters/water-tank-level-monitoring.d.ts.map +1 -0
  310. package/dist/cjs/clusters/water-tank-level-monitoring.js +47 -0
  311. package/dist/cjs/clusters/water-tank-level-monitoring.js.map +6 -0
  312. package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts +20 -27
  313. package/dist/cjs/clusters/wi-fi-network-diagnostics.d.ts.map +1 -1
  314. package/dist/cjs/clusters/wi-fi-network-diagnostics.js +6 -8
  315. package/dist/cjs/clusters/wi-fi-network-diagnostics.js.map +1 -1
  316. package/dist/cjs/clusters/wi-fi-network-management.d.ts +91 -0
  317. package/dist/cjs/clusters/wi-fi-network-management.d.ts.map +1 -0
  318. package/dist/cjs/clusters/wi-fi-network-management.js +122 -0
  319. package/dist/cjs/clusters/wi-fi-network-management.js.map +6 -0
  320. package/dist/cjs/clusters/window-covering.d.ts +66 -78
  321. package/dist/cjs/clusters/window-covering.d.ts.map +1 -1
  322. package/dist/cjs/clusters/window-covering.js +26 -37
  323. package/dist/cjs/clusters/window-covering.js.map +1 -1
  324. package/dist/cjs/globals/AtomicAttributeStatus.d.ts +34 -0
  325. package/dist/cjs/globals/AtomicAttributeStatus.d.ts.map +1 -0
  326. package/dist/cjs/globals/AtomicAttributeStatus.js +46 -0
  327. package/dist/cjs/globals/AtomicAttributeStatus.js.map +6 -0
  328. package/dist/cjs/globals/AtomicRequestType.d.ts +24 -0
  329. package/dist/cjs/globals/AtomicRequestType.d.ts.map +1 -0
  330. package/dist/cjs/globals/AtomicRequestType.js +35 -0
  331. package/dist/cjs/globals/AtomicRequestType.js.map +6 -0
  332. package/dist/cjs/globals/Locationdesc.d.ts +79 -0
  333. package/dist/cjs/globals/Locationdesc.d.ts.map +1 -0
  334. package/dist/cjs/globals/Locationdesc.js +89 -0
  335. package/dist/cjs/globals/Locationdesc.js.map +6 -0
  336. package/dist/cjs/globals/Priority.d.ts +1 -1
  337. package/dist/cjs/globals/Semtag.d.ts +6 -6
  338. package/dist/cjs/globals/Semtag.js +4 -4
  339. package/dist/cjs/globals/SoftwareVersionCertificationStatus.d.ts +1 -1
  340. package/dist/cjs/globals/Status.d.ts +18 -3
  341. package/dist/cjs/globals/Status.d.ts.map +1 -1
  342. package/dist/cjs/globals/Status.js +3 -1
  343. package/dist/cjs/globals/Status.js.map +1 -1
  344. package/dist/cjs/globals/Tod.d.ts +2 -2
  345. package/dist/cjs/globals/index.d.ts +3 -0
  346. package/dist/cjs/globals/index.d.ts.map +1 -1
  347. package/dist/cjs/globals/index.js +3 -0
  348. package/dist/cjs/globals/index.js.map +1 -1
  349. package/dist/cjs/schema/QrCodeSchema.d.ts.map +1 -1
  350. package/dist/cjs/schema/QrCodeSchema.js +4 -1
  351. package/dist/cjs/schema/QrCodeSchema.js.map +1 -1
  352. package/dist/esm/clusters/access-control.d.ts +3972 -522
  353. package/dist/esm/clusters/access-control.d.ts.map +1 -1
  354. package/dist/esm/clusters/access-control.js +645 -120
  355. package/dist/esm/clusters/access-control.js.map +2 -2
  356. package/dist/esm/clusters/actions.d.ts +10 -9
  357. package/dist/esm/clusters/actions.d.ts.map +1 -1
  358. package/dist/esm/clusters/actions.js +4 -4
  359. package/dist/esm/clusters/actions.js.map +1 -1
  360. package/dist/esm/clusters/administrator-commissioning.d.ts +156 -129
  361. package/dist/esm/clusters/administrator-commissioning.d.ts.map +1 -1
  362. package/dist/esm/clusters/administrator-commissioning.js +40 -35
  363. package/dist/esm/clusters/administrator-commissioning.js.map +1 -1
  364. package/dist/esm/clusters/alarm-base.d.ts +9 -12
  365. package/dist/esm/clusters/alarm-base.d.ts.map +1 -1
  366. package/dist/esm/clusters/alarm-base.js +3 -4
  367. package/dist/esm/clusters/alarm-base.js.map +1 -1
  368. package/dist/esm/clusters/application-launcher.d.ts +27 -15
  369. package/dist/esm/clusters/application-launcher.d.ts.map +1 -1
  370. package/dist/esm/clusters/application-launcher.js +7 -4
  371. package/dist/esm/clusters/application-launcher.js.map +1 -1
  372. package/dist/esm/clusters/ballast-configuration.d.ts +7 -7
  373. package/dist/esm/clusters/ballast-configuration.js +7 -7
  374. package/dist/esm/clusters/basic-information.d.ts +29 -21
  375. package/dist/esm/clusters/basic-information.d.ts.map +1 -1
  376. package/dist/esm/clusters/basic-information.js +29 -21
  377. package/dist/esm/clusters/basic-information.js.map +1 -1
  378. package/dist/esm/clusters/bridged-device-basic-information.d.ts +816 -34
  379. package/dist/esm/clusters/bridged-device-basic-information.d.ts.map +1 -1
  380. package/dist/esm/clusters/bridged-device-basic-information.js +188 -32
  381. package/dist/esm/clusters/bridged-device-basic-information.js.map +2 -2
  382. package/dist/esm/clusters/channel.d.ts +115 -124
  383. package/dist/esm/clusters/channel.d.ts.map +1 -1
  384. package/dist/esm/clusters/channel.js +15 -16
  385. package/dist/esm/clusters/channel.js.map +1 -1
  386. package/dist/esm/clusters/color-control.d.ts +3076 -1366
  387. package/dist/esm/clusters/color-control.d.ts.map +1 -1
  388. package/dist/esm/clusters/color-control.js +424 -358
  389. package/dist/esm/clusters/color-control.js.map +2 -2
  390. package/dist/esm/clusters/commissioner-control.d.ts +268 -0
  391. package/dist/esm/clusters/commissioner-control.d.ts.map +1 -0
  392. package/dist/esm/clusters/commissioner-control.js +174 -0
  393. package/dist/esm/clusters/commissioner-control.js.map +6 -0
  394. package/dist/esm/clusters/content-control.d.ts +497 -221
  395. package/dist/esm/clusters/content-control.d.ts.map +1 -1
  396. package/dist/esm/clusters/content-control.js +60 -42
  397. package/dist/esm/clusters/content-control.js.map +2 -2
  398. package/dist/esm/clusters/content-launcher.d.ts +248 -215
  399. package/dist/esm/clusters/content-launcher.d.ts.map +1 -1
  400. package/dist/esm/clusters/content-launcher.js +16 -15
  401. package/dist/esm/clusters/content-launcher.js.map +1 -1
  402. package/dist/esm/clusters/device-energy-management-mode.d.ts +76 -333
  403. package/dist/esm/clusters/device-energy-management-mode.d.ts.map +1 -1
  404. package/dist/esm/clusters/device-energy-management-mode.js +26 -80
  405. package/dist/esm/clusters/device-energy-management-mode.js.map +1 -1
  406. package/dist/esm/clusters/device-energy-management.d.ts +1299 -930
  407. package/dist/esm/clusters/device-energy-management.d.ts.map +1 -1
  408. package/dist/esm/clusters/device-energy-management.js +189 -160
  409. package/dist/esm/clusters/device-energy-management.js.map +2 -2
  410. package/dist/esm/clusters/dishwasher-alarm.d.ts +14 -17
  411. package/dist/esm/clusters/dishwasher-alarm.d.ts.map +1 -1
  412. package/dist/esm/clusters/dishwasher-alarm.js +3 -4
  413. package/dist/esm/clusters/dishwasher-alarm.js.map +1 -1
  414. package/dist/esm/clusters/dishwasher-mode.d.ts +65 -105
  415. package/dist/esm/clusters/dishwasher-mode.d.ts.map +1 -1
  416. package/dist/esm/clusters/dishwasher-mode.js +13 -25
  417. package/dist/esm/clusters/dishwasher-mode.js.map +1 -1
  418. package/dist/esm/clusters/door-lock.d.ts +2751 -5427
  419. package/dist/esm/clusters/door-lock.d.ts.map +1 -1
  420. package/dist/esm/clusters/door-lock.js +482 -804
  421. package/dist/esm/clusters/door-lock.js.map +2 -2
  422. package/dist/esm/clusters/ecosystem-information.d.ts +186 -0
  423. package/dist/esm/clusters/ecosystem-information.d.ts.map +1 -0
  424. package/dist/esm/clusters/ecosystem-information.js +134 -0
  425. package/dist/esm/clusters/ecosystem-information.js.map +6 -0
  426. package/dist/esm/clusters/electrical-energy-measurement.d.ts +363 -368
  427. package/dist/esm/clusters/electrical-energy-measurement.d.ts.map +1 -1
  428. package/dist/esm/clusters/electrical-energy-measurement.js +15 -16
  429. package/dist/esm/clusters/electrical-energy-measurement.js.map +1 -1
  430. package/dist/esm/clusters/energy-evse-mode.d.ts +92 -330
  431. package/dist/esm/clusters/energy-evse-mode.d.ts.map +1 -1
  432. package/dist/esm/clusters/energy-evse-mode.js +25 -79
  433. package/dist/esm/clusters/energy-evse-mode.js.map +1 -1
  434. package/dist/esm/clusters/energy-evse.d.ts +557 -273
  435. package/dist/esm/clusters/energy-evse.d.ts.map +1 -1
  436. package/dist/esm/clusters/energy-evse.js +107 -55
  437. package/dist/esm/clusters/energy-evse.js.map +1 -1
  438. package/dist/esm/clusters/energy-preference.d.ts +76 -76
  439. package/dist/esm/clusters/energy-preference.d.ts.map +1 -1
  440. package/dist/esm/clusters/energy-preference.js +15 -18
  441. package/dist/esm/clusters/energy-preference.js.map +1 -1
  442. package/dist/esm/clusters/ethernet-network-diagnostics.d.ts +3 -9
  443. package/dist/esm/clusters/ethernet-network-diagnostics.d.ts.map +1 -1
  444. package/dist/esm/clusters/ethernet-network-diagnostics.js +1 -3
  445. package/dist/esm/clusters/ethernet-network-diagnostics.js.map +1 -1
  446. package/dist/esm/clusters/fan-control.d.ts +12 -12
  447. package/dist/esm/clusters/fan-control.js +4 -4
  448. package/dist/esm/clusters/fixed-label.d.ts +7 -2
  449. package/dist/esm/clusters/fixed-label.d.ts.map +1 -1
  450. package/dist/esm/clusters/fixed-label.js.map +1 -1
  451. package/dist/esm/clusters/flow-measurement.d.ts +4 -4
  452. package/dist/esm/clusters/flow-measurement.d.ts.map +1 -1
  453. package/dist/esm/clusters/flow-measurement.js +6 -6
  454. package/dist/esm/clusters/flow-measurement.js.map +1 -1
  455. package/dist/esm/clusters/general-commissioning.d.ts +1416 -111
  456. package/dist/esm/clusters/general-commissioning.d.ts.map +1 -1
  457. package/dist/esm/clusters/general-commissioning.js +274 -56
  458. package/dist/esm/clusters/general-commissioning.js.map +2 -2
  459. package/dist/esm/clusters/general-diagnostics.d.ts +115 -122
  460. package/dist/esm/clusters/general-diagnostics.d.ts.map +1 -1
  461. package/dist/esm/clusters/general-diagnostics.js +31 -33
  462. package/dist/esm/clusters/general-diagnostics.js.map +1 -1
  463. package/dist/esm/clusters/group-key-management.d.ts +72 -82
  464. package/dist/esm/clusters/group-key-management.d.ts.map +1 -1
  465. package/dist/esm/clusters/group-key-management.js +19 -22
  466. package/dist/esm/clusters/group-key-management.js.map +1 -1
  467. package/dist/esm/clusters/groups.d.ts +9 -6
  468. package/dist/esm/clusters/groups.d.ts.map +1 -1
  469. package/dist/esm/clusters/groups.js +3 -2
  470. package/dist/esm/clusters/groups.js.map +1 -1
  471. package/dist/esm/clusters/icd-management.d.ts +223 -66
  472. package/dist/esm/clusters/icd-management.d.ts.map +1 -1
  473. package/dist/esm/clusters/icd-management.js +61 -23
  474. package/dist/esm/clusters/icd-management.js.map +2 -2
  475. package/dist/esm/clusters/identify.d.ts +12 -13
  476. package/dist/esm/clusters/identify.d.ts.map +1 -1
  477. package/dist/esm/clusters/identify.js +9 -10
  478. package/dist/esm/clusters/identify.js.map +1 -1
  479. package/dist/esm/clusters/illuminance-measurement.d.ts +7 -8
  480. package/dist/esm/clusters/illuminance-measurement.d.ts.map +1 -1
  481. package/dist/esm/clusters/illuminance-measurement.js +9 -10
  482. package/dist/esm/clusters/illuminance-measurement.js.map +1 -1
  483. package/dist/esm/clusters/index.d.ts +11 -1
  484. package/dist/esm/clusters/index.d.ts.map +1 -1
  485. package/dist/esm/clusters/index.js +36 -3
  486. package/dist/esm/clusters/index.js.map +1 -1
  487. package/dist/esm/clusters/joint-fabric-datastore-cluster.d.ts +1239 -0
  488. package/dist/esm/clusters/joint-fabric-datastore-cluster.d.ts.map +1 -0
  489. package/dist/esm/clusters/joint-fabric-datastore-cluster.js +470 -0
  490. package/dist/esm/clusters/joint-fabric-datastore-cluster.js.map +6 -0
  491. package/dist/esm/clusters/joint-fabric-pki.d.ts +174 -0
  492. package/dist/esm/clusters/joint-fabric-pki.d.ts.map +1 -0
  493. package/dist/esm/clusters/joint-fabric-pki.js +100 -0
  494. package/dist/esm/clusters/joint-fabric-pki.js.map +6 -0
  495. package/dist/esm/clusters/keypad-input.d.ts +2 -2
  496. package/dist/esm/clusters/laundry-dryer-controls.d.ts +6 -7
  497. package/dist/esm/clusters/laundry-dryer-controls.d.ts.map +1 -1
  498. package/dist/esm/clusters/laundry-dryer-controls.js +6 -10
  499. package/dist/esm/clusters/laundry-dryer-controls.js.map +1 -1
  500. package/dist/esm/clusters/laundry-washer-controls.d.ts +74 -62
  501. package/dist/esm/clusters/laundry-washer-controls.d.ts.map +1 -1
  502. package/dist/esm/clusters/laundry-washer-controls.js +26 -25
  503. package/dist/esm/clusters/laundry-washer-controls.js.map +1 -1
  504. package/dist/esm/clusters/laundry-washer-mode.d.ts +69 -109
  505. package/dist/esm/clusters/laundry-washer-mode.d.ts.map +1 -1
  506. package/dist/esm/clusters/laundry-washer-mode.js +14 -26
  507. package/dist/esm/clusters/laundry-washer-mode.js.map +1 -1
  508. package/dist/esm/clusters/level-control.d.ts +209 -70
  509. package/dist/esm/clusters/level-control.d.ts.map +1 -1
  510. package/dist/esm/clusters/level-control.js +45 -12
  511. package/dist/esm/clusters/level-control.js.map +1 -1
  512. package/dist/esm/clusters/localization-configuration.d.ts +5 -6
  513. package/dist/esm/clusters/localization-configuration.d.ts.map +1 -1
  514. package/dist/esm/clusters/localization-configuration.js +5 -6
  515. package/dist/esm/clusters/localization-configuration.js.map +1 -1
  516. package/dist/esm/clusters/media-input.d.ts +9 -6
  517. package/dist/esm/clusters/media-input.d.ts.map +1 -1
  518. package/dist/esm/clusters/media-input.js +3 -2
  519. package/dist/esm/clusters/media-input.js.map +1 -1
  520. package/dist/esm/clusters/media-playback.d.ts +29 -24
  521. package/dist/esm/clusters/media-playback.d.ts.map +1 -1
  522. package/dist/esm/clusters/media-playback.js +5 -4
  523. package/dist/esm/clusters/media-playback.js.map +1 -1
  524. package/dist/esm/clusters/microwave-oven-control.d.ts +54 -48
  525. package/dist/esm/clusters/microwave-oven-control.d.ts.map +1 -1
  526. package/dist/esm/clusters/microwave-oven-control.js +19 -17
  527. package/dist/esm/clusters/microwave-oven-control.js.map +1 -1
  528. package/dist/esm/clusters/microwave-oven-mode.d.ts +63 -69
  529. package/dist/esm/clusters/microwave-oven-mode.d.ts.map +1 -1
  530. package/dist/esm/clusters/microwave-oven-mode.js +14 -11
  531. package/dist/esm/clusters/microwave-oven-mode.js.map +1 -1
  532. package/dist/esm/clusters/mode-base.d.ts +27 -46
  533. package/dist/esm/clusters/mode-base.d.ts.map +1 -1
  534. package/dist/esm/clusters/mode-base.js +9 -10
  535. package/dist/esm/clusters/mode-base.js.map +1 -1
  536. package/dist/esm/clusters/mode-select.d.ts +33 -27
  537. package/dist/esm/clusters/mode-select.d.ts.map +1 -1
  538. package/dist/esm/clusters/mode-select.js +14 -13
  539. package/dist/esm/clusters/mode-select.js.map +1 -1
  540. package/dist/esm/clusters/network-commissioning.d.ts +263 -240
  541. package/dist/esm/clusters/network-commissioning.d.ts.map +1 -1
  542. package/dist/esm/clusters/network-commissioning.js +46 -39
  543. package/dist/esm/clusters/network-commissioning.js.map +1 -1
  544. package/dist/esm/clusters/occupancy-sensing.d.ts +1002 -63
  545. package/dist/esm/clusters/occupancy-sensing.d.ts.map +1 -1
  546. package/dist/esm/clusters/occupancy-sensing.js +287 -65
  547. package/dist/esm/clusters/occupancy-sensing.js.map +2 -2
  548. package/dist/esm/clusters/on-off.d.ts +18 -24
  549. package/dist/esm/clusters/on-off.d.ts.map +1 -1
  550. package/dist/esm/clusters/on-off.js +3 -4
  551. package/dist/esm/clusters/on-off.js.map +1 -1
  552. package/dist/esm/clusters/operational-credentials.d.ts +98 -85
  553. package/dist/esm/clusters/operational-credentials.d.ts.map +1 -1
  554. package/dist/esm/clusters/operational-credentials.js +56 -49
  555. package/dist/esm/clusters/operational-credentials.js.map +1 -1
  556. package/dist/esm/clusters/operational-state.d.ts +136 -57
  557. package/dist/esm/clusters/operational-state.d.ts.map +1 -1
  558. package/dist/esm/clusters/operational-state.js +63 -37
  559. package/dist/esm/clusters/operational-state.js.map +2 -2
  560. package/dist/esm/clusters/ota-software-update-provider.d.ts +43 -42
  561. package/dist/esm/clusters/ota-software-update-provider.d.ts.map +1 -1
  562. package/dist/esm/clusters/ota-software-update-provider.js +20 -19
  563. package/dist/esm/clusters/ota-software-update-provider.js.map +1 -1
  564. package/dist/esm/clusters/ota-software-update-requestor.d.ts +6 -10
  565. package/dist/esm/clusters/ota-software-update-requestor.d.ts.map +1 -1
  566. package/dist/esm/clusters/ota-software-update-requestor.js +4 -6
  567. package/dist/esm/clusters/ota-software-update-requestor.js.map +1 -1
  568. package/dist/esm/clusters/oven-cavity-operational-state.d.ts +44 -154
  569. package/dist/esm/clusters/oven-cavity-operational-state.d.ts.map +1 -1
  570. package/dist/esm/clusters/oven-cavity-operational-state.js +41 -166
  571. package/dist/esm/clusters/oven-cavity-operational-state.js.map +1 -1
  572. package/dist/esm/clusters/oven-mode.d.ts +79 -349
  573. package/dist/esm/clusters/oven-mode.d.ts.map +1 -1
  574. package/dist/esm/clusters/oven-mode.js +26 -89
  575. package/dist/esm/clusters/oven-mode.js.map +1 -1
  576. package/dist/esm/clusters/power-source.d.ts +169 -44
  577. package/dist/esm/clusters/power-source.d.ts.map +1 -1
  578. package/dist/esm/clusters/power-source.js +40 -16
  579. package/dist/esm/clusters/power-source.js.map +1 -1
  580. package/dist/esm/clusters/pressure-measurement.js +2 -2
  581. package/dist/esm/clusters/pressure-measurement.js.map +1 -1
  582. package/dist/esm/clusters/pump-configuration-and-control.d.ts +73 -63
  583. package/dist/esm/clusters/pump-configuration-and-control.d.ts.map +1 -1
  584. package/dist/esm/clusters/pump-configuration-and-control.js +19 -20
  585. package/dist/esm/clusters/pump-configuration-and-control.js.map +1 -1
  586. package/dist/esm/clusters/refrigerator-alarm.d.ts +2 -1
  587. package/dist/esm/clusters/refrigerator-alarm.d.ts.map +1 -1
  588. package/dist/esm/clusters/refrigerator-alarm.js.map +1 -1
  589. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts +59 -91
  590. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.d.ts.map +1 -1
  591. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js +12 -20
  592. package/dist/esm/clusters/refrigerator-and-temperature-controlled-cabinet-mode.js.map +1 -1
  593. package/dist/esm/clusters/relative-humidity-measurement.js +1 -1
  594. package/dist/esm/clusters/relative-humidity-measurement.js.map +1 -1
  595. package/dist/esm/clusters/rvc-clean-mode.d.ts +59 -103
  596. package/dist/esm/clusters/rvc-clean-mode.d.ts.map +1 -1
  597. package/dist/esm/clusters/rvc-clean-mode.js +11 -15
  598. package/dist/esm/clusters/rvc-clean-mode.js.map +1 -1
  599. package/dist/esm/clusters/rvc-operational-state.d.ts +81 -25
  600. package/dist/esm/clusters/rvc-operational-state.d.ts.map +1 -1
  601. package/dist/esm/clusters/rvc-operational-state.js +49 -20
  602. package/dist/esm/clusters/rvc-operational-state.js.map +1 -1
  603. package/dist/esm/clusters/rvc-run-mode.d.ts +85 -129
  604. package/dist/esm/clusters/rvc-run-mode.d.ts.map +1 -1
  605. package/dist/esm/clusters/rvc-run-mode.js +16 -15
  606. package/dist/esm/clusters/rvc-run-mode.js.map +1 -1
  607. package/dist/esm/clusters/scenes-management.d.ts +328 -181
  608. package/dist/esm/clusters/scenes-management.d.ts.map +1 -1
  609. package/dist/esm/clusters/scenes-management.js +37 -22
  610. package/dist/esm/clusters/scenes-management.js.map +1 -1
  611. package/dist/esm/clusters/service-area.d.ts +2052 -0
  612. package/dist/esm/clusters/service-area.d.ts.map +1 -0
  613. package/dist/esm/clusters/service-area.js +562 -0
  614. package/dist/esm/clusters/service-area.js.map +6 -0
  615. package/dist/esm/clusters/smoke-co-alarm.d.ts +10 -18
  616. package/dist/esm/clusters/smoke-co-alarm.d.ts.map +1 -1
  617. package/dist/esm/clusters/smoke-co-alarm.js +2 -3
  618. package/dist/esm/clusters/smoke-co-alarm.js.map +1 -1
  619. package/dist/esm/clusters/switch.d.ts +478 -191
  620. package/dist/esm/clusters/switch.d.ts.map +1 -1
  621. package/dist/esm/clusters/switch.js +145 -57
  622. package/dist/esm/clusters/switch.js.map +1 -1
  623. package/dist/esm/clusters/target-navigator.d.ts +1 -1
  624. package/dist/esm/clusters/target-navigator.js +1 -1
  625. package/dist/esm/clusters/thermostat.d.ts +3877 -830
  626. package/dist/esm/clusters/thermostat.d.ts.map +1 -1
  627. package/dist/esm/clusters/thermostat.js +842 -160
  628. package/dist/esm/clusters/thermostat.js.map +2 -2
  629. package/dist/esm/clusters/thread-border-router-management.d.ts +711 -0
  630. package/dist/esm/clusters/thread-border-router-management.d.ts.map +1 -0
  631. package/dist/esm/clusters/thread-border-router-management.js +245 -0
  632. package/dist/esm/clusters/thread-border-router-management.js.map +6 -0
  633. package/dist/esm/clusters/thread-network-diagnostics.d.ts +81 -55
  634. package/dist/esm/clusters/thread-network-diagnostics.d.ts.map +1 -1
  635. package/dist/esm/clusters/thread-network-diagnostics.js +32 -21
  636. package/dist/esm/clusters/thread-network-diagnostics.js.map +1 -1
  637. package/dist/esm/clusters/thread-network-directory.d.ts +250 -0
  638. package/dist/esm/clusters/thread-network-directory.d.ts.map +1 -0
  639. package/dist/esm/clusters/thread-network-directory.js +167 -0
  640. package/dist/esm/clusters/thread-network-directory.js.map +6 -0
  641. package/dist/esm/clusters/time-synchronization.d.ts +101 -76
  642. package/dist/esm/clusters/time-synchronization.d.ts.map +1 -1
  643. package/dist/esm/clusters/time-synchronization.js +30 -23
  644. package/dist/esm/clusters/time-synchronization.js.map +1 -1
  645. package/dist/esm/clusters/unit-localization.d.ts +3 -4
  646. package/dist/esm/clusters/unit-localization.d.ts.map +1 -1
  647. package/dist/esm/clusters/unit-localization.js.map +1 -1
  648. package/dist/esm/clusters/user-label.d.ts +2 -1
  649. package/dist/esm/clusters/user-label.d.ts.map +1 -1
  650. package/dist/esm/clusters/user-label.js.map +1 -1
  651. package/dist/esm/clusters/water-heater-management.d.ts +1371 -0
  652. package/dist/esm/clusters/water-heater-management.d.ts.map +1 -0
  653. package/dist/esm/clusters/water-heater-management.js +325 -0
  654. package/dist/esm/clusters/water-heater-management.js.map +6 -0
  655. package/dist/esm/clusters/water-heater-mode.d.ts +491 -0
  656. package/dist/esm/clusters/water-heater-mode.d.ts.map +1 -0
  657. package/dist/esm/clusters/water-heater-mode.js +175 -0
  658. package/dist/esm/clusters/water-heater-mode.js.map +6 -0
  659. package/dist/esm/clusters/water-tank-level-monitoring.d.ts +162 -0
  660. package/dist/esm/clusters/water-tank-level-monitoring.d.ts.map +1 -0
  661. package/dist/esm/clusters/water-tank-level-monitoring.js +27 -0
  662. package/dist/esm/clusters/water-tank-level-monitoring.js.map +6 -0
  663. package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts +20 -27
  664. package/dist/esm/clusters/wi-fi-network-diagnostics.d.ts.map +1 -1
  665. package/dist/esm/clusters/wi-fi-network-diagnostics.js +6 -8
  666. package/dist/esm/clusters/wi-fi-network-diagnostics.js.map +1 -1
  667. package/dist/esm/clusters/wi-fi-network-management.d.ts +91 -0
  668. package/dist/esm/clusters/wi-fi-network-management.d.ts.map +1 -0
  669. package/dist/esm/clusters/wi-fi-network-management.js +102 -0
  670. package/dist/esm/clusters/wi-fi-network-management.js.map +6 -0
  671. package/dist/esm/clusters/window-covering.d.ts +66 -78
  672. package/dist/esm/clusters/window-covering.d.ts.map +1 -1
  673. package/dist/esm/clusters/window-covering.js +26 -37
  674. package/dist/esm/clusters/window-covering.js.map +1 -1
  675. package/dist/esm/globals/AtomicAttributeStatus.d.ts +34 -0
  676. package/dist/esm/globals/AtomicAttributeStatus.d.ts.map +1 -0
  677. package/dist/esm/globals/AtomicAttributeStatus.js +26 -0
  678. package/dist/esm/globals/AtomicAttributeStatus.js.map +6 -0
  679. package/dist/esm/globals/AtomicRequestType.d.ts +24 -0
  680. package/dist/esm/globals/AtomicRequestType.d.ts.map +1 -0
  681. package/dist/esm/globals/AtomicRequestType.js +15 -0
  682. package/dist/esm/globals/AtomicRequestType.js.map +6 -0
  683. package/dist/esm/globals/Locationdesc.d.ts +79 -0
  684. package/dist/esm/globals/Locationdesc.d.ts.map +1 -0
  685. package/dist/esm/globals/Locationdesc.js +69 -0
  686. package/dist/esm/globals/Locationdesc.js.map +6 -0
  687. package/dist/esm/globals/Priority.d.ts +1 -1
  688. package/dist/esm/globals/Semtag.d.ts +6 -6
  689. package/dist/esm/globals/Semtag.js +4 -4
  690. package/dist/esm/globals/SoftwareVersionCertificationStatus.d.ts +1 -1
  691. package/dist/esm/globals/Status.d.ts +18 -3
  692. package/dist/esm/globals/Status.d.ts.map +1 -1
  693. package/dist/esm/globals/Status.js +3 -1
  694. package/dist/esm/globals/Status.js.map +1 -1
  695. package/dist/esm/globals/Tod.d.ts +2 -2
  696. package/dist/esm/globals/index.d.ts +3 -0
  697. package/dist/esm/globals/index.d.ts.map +1 -1
  698. package/dist/esm/globals/index.js +3 -0
  699. package/dist/esm/globals/index.js.map +1 -1
  700. package/dist/esm/schema/QrCodeSchema.d.ts.map +1 -1
  701. package/dist/esm/schema/QrCodeSchema.js +4 -1
  702. package/dist/esm/schema/QrCodeSchema.js.map +1 -1
  703. package/package.json +5 -5
  704. package/src/clusters/access-control.ts +926 -171
  705. package/src/clusters/actions.ts +12 -11
  706. package/src/clusters/administrator-commissioning.ts +54 -35
  707. package/src/clusters/alarm-base.ts +3 -4
  708. package/src/clusters/application-launcher.ts +22 -7
  709. package/src/clusters/ballast-configuration.ts +7 -7
  710. package/src/clusters/basic-information.ts +29 -21
  711. package/src/clusters/bridged-device-basic-information.ts +264 -41
  712. package/src/clusters/channel.ts +20 -17
  713. package/src/clusters/color-control.ts +589 -426
  714. package/src/clusters/commissioner-control.ts +282 -0
  715. package/src/clusters/content-control.ts +48 -54
  716. package/src/clusters/content-launcher.ts +16 -15
  717. package/src/clusters/device-energy-management-mode.ts +63 -161
  718. package/src/clusters/device-energy-management.ts +246 -193
  719. package/src/clusters/dishwasher-alarm.ts +5 -5
  720. package/src/clusters/dishwasher-mode.ts +46 -87
  721. package/src/clusters/door-lock.ts +786 -1235
  722. package/src/clusters/ecosystem-information.ts +200 -0
  723. package/src/clusters/electrical-energy-measurement.ts +15 -16
  724. package/src/clusters/energy-evse-mode.ts +81 -158
  725. package/src/clusters/energy-evse.ts +138 -72
  726. package/src/clusters/energy-preference.ts +34 -28
  727. package/src/clusters/ethernet-network-diagnostics.ts +1 -3
  728. package/src/clusters/fan-control.ts +5 -5
  729. package/src/clusters/fixed-label.ts +7 -2
  730. package/src/clusters/flow-measurement.ts +6 -6
  731. package/src/clusters/general-commissioning.ts +396 -96
  732. package/src/clusters/general-diagnostics.ts +31 -33
  733. package/src/clusters/group-key-management.ts +22 -24
  734. package/src/clusters/groups.ts +3 -2
  735. package/src/clusters/icd-management.ts +88 -31
  736. package/src/clusters/identify.ts +9 -10
  737. package/src/clusters/illuminance-measurement.ts +9 -10
  738. package/src/clusters/index.ts +14 -1
  739. package/src/clusters/joint-fabric-datastore-cluster.ts +657 -0
  740. package/src/clusters/joint-fabric-pki.ts +202 -0
  741. package/src/clusters/keypad-input.ts +2 -2
  742. package/src/clusters/laundry-dryer-controls.ts +6 -10
  743. package/src/clusters/laundry-washer-controls.ts +28 -27
  744. package/src/clusters/laundry-washer-mode.ts +49 -90
  745. package/src/clusters/level-control.ts +45 -12
  746. package/src/clusters/localization-configuration.ts +5 -6
  747. package/src/clusters/media-input.ts +3 -2
  748. package/src/clusters/media-playback.ts +9 -7
  749. package/src/clusters/microwave-oven-control.ts +19 -17
  750. package/src/clusters/microwave-oven-mode.ts +42 -61
  751. package/src/clusters/mode-base.ts +16 -33
  752. package/src/clusters/mode-select.ts +17 -14
  753. package/src/clusters/network-commissioning.ts +47 -40
  754. package/src/clusters/occupancy-sensing.ts +433 -72
  755. package/src/clusters/on-off.ts +6 -8
  756. package/src/clusters/operational-credentials.ts +54 -47
  757. package/src/clusters/operational-state.ts +136 -58
  758. package/src/clusters/ota-software-update-provider.ts +23 -23
  759. package/src/clusters/ota-software-update-requestor.ts +4 -6
  760. package/src/clusters/oven-cavity-operational-state.ts +43 -171
  761. package/src/clusters/oven-mode.ts +76 -178
  762. package/src/clusters/power-source.ts +45 -21
  763. package/src/clusters/pressure-measurement.ts +2 -2
  764. package/src/clusters/pump-configuration-and-control.ts +35 -23
  765. package/src/clusters/refrigerator-alarm.ts +2 -1
  766. package/src/clusters/refrigerator-and-temperature-controlled-cabinet-mode.ts +41 -78
  767. package/src/clusters/relative-humidity-measurement.ts +1 -1
  768. package/src/clusters/rvc-clean-mode.ts +42 -101
  769. package/src/clusters/rvc-operational-state.ts +87 -25
  770. package/src/clusters/rvc-run-mode.ts +62 -126
  771. package/src/clusters/scenes-management.ts +38 -23
  772. package/src/clusters/service-area.ts +904 -0
  773. package/src/clusters/smoke-co-alarm.ts +6 -12
  774. package/src/clusters/switch.ts +177 -78
  775. package/src/clusters/target-navigator.ts +1 -1
  776. package/src/clusters/thermostat.ts +1245 -214
  777. package/src/clusters/thread-border-router-management.ts +355 -0
  778. package/src/clusters/thread-network-diagnostics.ts +34 -21
  779. package/src/clusters/thread-network-directory.ts +256 -0
  780. package/src/clusters/time-synchronization.ts +30 -23
  781. package/src/clusters/unit-localization.ts +3 -4
  782. package/src/clusters/user-label.ts +2 -1
  783. package/src/clusters/water-heater-management.ts +457 -0
  784. package/src/clusters/water-heater-mode.ts +301 -0
  785. package/src/clusters/water-tank-level-monitoring.ts +50 -0
  786. package/src/clusters/wi-fi-network-diagnostics.ts +6 -8
  787. package/src/clusters/wi-fi-network-management.ts +119 -0
  788. package/src/clusters/window-covering.ts +26 -37
  789. package/src/globals/AtomicAttributeStatus.ts +41 -0
  790. package/src/globals/AtomicRequestType.ts +27 -0
  791. package/src/globals/Locationdesc.ts +88 -0
  792. package/src/globals/Priority.ts +1 -1
  793. package/src/globals/Semtag.ts +6 -6
  794. package/src/globals/SoftwareVersionCertificationStatus.ts +1 -1
  795. package/src/globals/Status.ts +20 -3
  796. package/src/globals/Tod.ts +2 -2
  797. package/src/globals/index.ts +3 -0
  798. package/src/schema/QrCodeSchema.ts +7 -2
  799. package/dist/cjs/clusters/pulse-width-modulation.d.ts +0 -2023
  800. package/dist/cjs/clusters/pulse-width-modulation.d.ts.map +0 -1
  801. package/dist/cjs/clusters/pulse-width-modulation.js +0 -51
  802. package/dist/cjs/clusters/pulse-width-modulation.js.map +0 -6
  803. package/dist/esm/clusters/pulse-width-modulation.d.ts +0 -2023
  804. package/dist/esm/clusters/pulse-width-modulation.d.ts.map +0 -1
  805. package/dist/esm/clusters/pulse-width-modulation.js +0 -31
  806. package/dist/esm/clusters/pulse-width-modulation.js.map +0 -6
  807. package/src/clusters/pulse-width-modulation.ts +0 -54
@@ -13,23 +13,23 @@ import {
13
13
  Event,
14
14
  EventPriority,
15
15
  FixedAttribute,
16
- WritableAttribute,
17
16
  Command,
18
17
  TlvNoResponse,
18
+ WritableAttribute,
19
19
  OptionalCommand,
20
20
  OptionalAttribute
21
21
  } from "../cluster/Cluster.js";
22
- import { TlvEnum, TlvUInt32, TlvUInt16, TlvEpochS, TlvUInt8, TlvBitmap } from "../tlv/TlvNumber.js";
22
+ import { TlvEnum, TlvUInt32, TlvUInt16, TlvUInt8, TlvBitmap, TlvEpochS } from "../tlv/TlvNumber.js";
23
23
  import { TlvNullable } from "../tlv/TlvNullable.js";
24
24
  import { AccessLevel } from "#model";
25
25
  import { TlvField, TlvObject, TlvOptionalField } from "../tlv/TlvObject.js";
26
26
  import { TypeFromSchema } from "../tlv/TlvSchema.js";
27
- import { TlvBoolean } from "../tlv/TlvBoolean.js";
28
- import { TlvByteString, TlvString } from "../tlv/TlvString.js";
29
27
  import { BitFlag, BitsFromPartial } from "../schema/BitmapSchema.js";
28
+ import { TlvString, TlvByteString } from "../tlv/TlvString.js";
30
29
  import { TlvArray } from "../tlv/TlvArray.js";
31
30
  import { TlvFabricIndex } from "../datatype/FabricIndex.js";
32
31
  import { Status } from "../globals/Status.js";
32
+ import { TlvBoolean } from "../tlv/TlvBoolean.js";
33
33
  import { TlvNodeId } from "../datatype/NodeId.js";
34
34
  import { TlvNoArguments } from "../tlv/TlvNoArguments.js";
35
35
  import { ClusterType } from "../cluster/ClusterType.js";
@@ -63,9 +63,8 @@ export namespace DoorLock {
63
63
  * User.
64
64
  *
65
65
  * A lock may support multiple credential types so if the User feature is supported the UserType, UserStatus
66
- * and Schedules are all associated with a User index and not directly with a RFID index. A User
67
- *
68
- * Index may have several credentials associated with it.
66
+ * and Schedules are all associated with a User index and not directly with a RFID index. A User Index may have
67
+ * several credentials associated with it.
69
68
  *
70
69
  * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.2
71
70
  */
@@ -87,27 +86,19 @@ export namespace DoorLock {
87
86
  */
88
87
  FingerCredentials = "FingerCredentials",
89
88
 
90
- /**
91
- * Logging (LOG)
92
- *
93
- * If Events are not supported the logging feature shall replace the Event reporting structure. If Events are
94
- * supported the logging feature shall NOT be supported.
95
- *
96
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.4
97
- */
98
- Logging = "Logging",
99
-
100
89
  /**
101
90
  * WeekDayAccessSchedules (WDSCH)
102
91
  *
103
92
  * If the User feature is supported then Week Day Schedules are applied to a User and not a credential.
104
93
  *
105
94
  * Week Day Schedules are used to restrict access to a specified time window on certain days of the week. The
106
- * schedule is repeated each week. When a schedule is cleared this clears the access restrictions and grants
107
- * unrestricted access to the user. The lock may automatically adjust the UserType when a schedule is created
108
- * or cleared.
95
+ * schedule is repeated each week.
109
96
  *
110
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.5
97
+ * The lock may automatically adjust the UserType when a schedule is created or cleared.
98
+ *
99
+ * Support for WeekDayAccessSchedules requires that the lock has the capability of keeping track of local time.
100
+ *
101
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.4
111
102
  */
112
103
  WeekDayAccessSchedules = "WeekDayAccessSchedules",
113
104
 
@@ -117,7 +108,7 @@ export namespace DoorLock {
117
108
  * If this feature is supported this indicates that the lock has the ability to determine the position of the
118
109
  * door which is separate from the state of the lock.
119
110
  *
120
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.6
111
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.5
121
112
  */
122
113
  DoorPositionSensor = "DoorPositionSensor",
123
114
 
@@ -132,7 +123,7 @@ export namespace DoorLock {
132
123
  * A lock may support multiple credential types so if the User feature is supported the UserType, UserStatus
133
124
  * and Schedules are all associated with a User and not directly with a credential.
134
125
  *
135
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.7
126
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.6
136
127
  */
137
128
  FaceCredentials = "FaceCredentials",
138
129
 
@@ -140,10 +131,11 @@ export namespace DoorLock {
140
131
  * CredentialOverTheAirAccess (COTA)
141
132
  *
142
133
  * If this feature is supported then the lock supports the ability to verify a credential provided in a
134
+ *
143
135
  * lock/unlock command. Currently the cluster only supports providing the PIN credential to the lock/unlock
144
136
  * commands. If this feature is supported then the PIN Credential feature shall also be supported.
145
137
  *
146
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.8
138
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.7
147
139
  */
148
140
  CredentialOverTheAirAccess = "CredentialOverTheAirAccess",
149
141
 
@@ -154,30 +146,21 @@ export namespace DoorLock {
154
146
  * used to associate credentials and schedules to single user record within the lock. This also means the
155
147
  * UserType and UserStatus fields are associated with a User and not a credential.
156
148
  *
157
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.9
149
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.8
158
150
  */
159
151
  User = "User",
160
152
 
161
- /**
162
- * Notification (NOT)
163
- *
164
- * This is a feature used before support of events. This feature supports notification commands and masks used
165
- * to filter these notifications.
166
- *
167
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.10
168
- */
169
- Notification = "Notification",
170
-
171
153
  /**
172
154
  * YearDayAccessSchedules (YDSCH)
173
155
  *
174
- * If the User feature is supported then Year Day Schedules are applied to a User and not a credential.
156
+ * If the User feature is supported then Year Day Schedules are applied to a User and not a credential. Year
157
+ * Day Schedules are used to restrict access to a specified date and time window.
175
158
  *
176
- * Year Day Schedules are used to restrict access to a specified date and time window. When a schedule is
177
- * cleared this clears the access restrictions and grants unrestricted access to the user. The lock may
178
- * automatically adjust the UserType when a schedule is created or cleared.
159
+ * The lock may automatically adjust the UserType when a schedule is created or cleared.
179
160
  *
180
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.11
161
+ * Support for YearDayAccessSchedules requires that the lock has the capability of keeping track of local time.
162
+ *
163
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.9
181
164
  */
182
165
  YearDayAccessSchedules = "YearDayAccessSchedules",
183
166
 
@@ -187,7 +170,9 @@ export namespace DoorLock {
187
170
  * This feature is used to setup Holiday Schedule in the lock device. A Holiday Schedule sets a start and stop
188
171
  * end date/time for the lock to use the specified operating mode set by the Holiday Schedule.
189
172
  *
190
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.12
173
+ * Support for HolidaySchedules requires that the lock has the capability of keeping track of local time.
174
+ *
175
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.10
191
176
  */
192
177
  HolidaySchedules = "HolidaySchedules",
193
178
 
@@ -200,15 +185,34 @@ export namespace DoorLock {
200
185
  * Locks without unbolting support don’t differentiate between unbolting and unlocking and perform the same
201
186
  * operation for both commands.
202
187
  *
188
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.11
189
+ */
190
+ Unbolting = "Unbolting",
191
+
192
+ /**
193
+ * AliroProvisioning (ALIRO)
194
+ *
195
+ * Locks that support this feature implement the Aliro specification as defined in [Aliro] and support Matter
196
+ * as a method for provisioning Aliro credentials.
197
+ *
198
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.12
199
+ */
200
+ AliroProvisioning = "AliroProvisioning",
201
+
202
+ /**
203
+ * AliroBleuwb (ALBU)
204
+ *
205
+ * Locks that support this feature implement the Bluetooth LE + UWB Access Control Flow as defined in [Aliro].
206
+ *
203
207
  * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.13
204
208
  */
205
- Unbolting = "Unbolting"
209
+ AliroBleuwb = "AliroBleuwb"
206
210
  }
207
211
 
208
212
  /**
209
213
  * This enumeration shall indicate the current door state.
210
214
  *
211
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.12
215
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.11
212
216
  */
213
217
  export enum DoorState {
214
218
  /**
@@ -263,142 +267,6 @@ export namespace DoorLock {
263
267
  */
264
268
  export interface DoorStateChangeEvent extends TypeFromSchema<typeof TlvDoorStateChangeEvent> {}
265
269
 
266
- /**
267
- * Input to the DoorLock getLogRecord command
268
- *
269
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.4
270
- */
271
- export const TlvGetLogRecordRequest = TlvObject({ logIndex: TlvField(0, TlvUInt16) });
272
-
273
- /**
274
- * Input to the DoorLock getLogRecord command
275
- *
276
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.4
277
- */
278
- export interface GetLogRecordRequest extends TypeFromSchema<typeof TlvGetLogRecordRequest> {}
279
-
280
- /**
281
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.24
282
- */
283
- export enum EventType {
284
- /**
285
- * Event type is operation
286
- */
287
- Operation = 0,
288
-
289
- /**
290
- * Event type is programming
291
- */
292
- Programming = 1,
293
-
294
- /**
295
- * Event type is alarm
296
- */
297
- Alarm = 2
298
- }
299
-
300
- /**
301
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.25
302
- */
303
- export enum EventSource {
304
- /**
305
- * Event source is keypad
306
- */
307
- Keypad = 0,
308
-
309
- /**
310
- * Event source is remote
311
- */
312
- Remote = 1,
313
-
314
- /**
315
- * Event source is manual
316
- */
317
- Manual = 2,
318
-
319
- /**
320
- * Event source is RFID
321
- */
322
- Rfid = 3,
323
-
324
- /**
325
- * Event source is unknown
326
- */
327
- Indeterminate = 255
328
- }
329
-
330
- /**
331
- * Returns the specified log record. If an invalid log entry ID was requested, it is set to 0 and the most recent
332
- * log entry will be returned.
333
- *
334
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5
335
- */
336
- export const TlvGetLogRecordResponse = TlvObject({
337
- /**
338
- * This field shall indicate the index into the log table where this log entry is stored. If the log entry
339
- * requested is 0, the most recent log is returned with the appropriate log entry ID.
340
- *
341
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5.1
342
- */
343
- logEntryId: TlvField(0, TlvUInt16),
344
-
345
- /**
346
- * This field shall indicate the timestamp for all events and alarms on the door lock in Epoch Time in Seconds
347
- * with local time offset based on the local timezone and DST offset on the day of the event.
348
- *
349
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5.2
350
- */
351
- timestamp: TlvField(1, TlvEpochS),
352
-
353
- /**
354
- * This field shall indicate the type of event that took place on the door lock, as defined in EventTypeEnum.
355
- *
356
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5.3
357
- */
358
- eventType: TlvField(2, TlvEnum<EventType>()),
359
-
360
- /**
361
- * This field shall indicate the source value as defined in EventSourceEnum.
362
- *
363
- * If the EventType is 2 (Alarm) then the source SHOULD be, but does not have to be 255 (Indeterminate).
364
- *
365
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5.4
366
- */
367
- source: TlvField(3, TlvEnum<EventSource>()),
368
-
369
- /**
370
- * This field shall indicate the type of event that took place on the door lock depending on the event code
371
- * table provided for a given event type and source. See Operation Event Codes.
372
- *
373
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5.5
374
- */
375
- eventId: TlvField(4, TlvUInt8),
376
-
377
- /**
378
- * This field shall indicate the ID of the user who generated the event on the door lock if one is available.
379
- * Otherwise, the value is 0xFFFF.
380
- *
381
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5.6
382
- */
383
- userId: TlvField(5, TlvUInt16),
384
-
385
- /**
386
- * This field shall indicate the PIN code or RFID code that was used to create the event on the door lock if
387
- * one is available.
388
- *
389
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5.7
390
- */
391
- pin: TlvField(6, TlvByteString)
392
- });
393
-
394
- /**
395
- * Returns the specified log record. If an invalid log entry ID was requested, it is set to 0 and the most recent
396
- * log entry will be returned.
397
- *
398
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5
399
- */
400
- export interface GetLogRecordResponse extends TypeFromSchema<typeof TlvGetLogRecordResponse> {}
401
-
402
270
  /**
403
271
  * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.2
404
272
  */
@@ -422,7 +290,7 @@ export namespace DoorLock {
422
290
  /**
423
291
  * This enumeration shall indicate the data operation performed.
424
292
  *
425
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.11
293
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.10
426
294
  */
427
295
  export enum DataOperationType {
428
296
  /**
@@ -444,7 +312,7 @@ export namespace DoorLock {
444
312
  /**
445
313
  * This enumeration shall indicate what the status is for a specific user ID.
446
314
  *
447
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.18
315
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.17
448
316
  */
449
317
  export enum UserStatus {
450
318
  /**
@@ -466,7 +334,7 @@ export namespace DoorLock {
466
334
  /**
467
335
  * This enumeration shall indicate what the type is for a specific user ID.
468
336
  *
469
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.19
337
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.18
470
338
  */
471
339
  export enum UserType {
472
340
  /**
@@ -474,7 +342,7 @@ export namespace DoorLock {
474
342
  *
475
343
  * This value shall indicate the user has access 24/7 provided proper PIN or RFID is supplied (e.g., owner).
476
344
  *
477
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.19.1
345
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.18.1
478
346
  */
479
347
  UnrestrictedUser = 0,
480
348
 
@@ -483,7 +351,15 @@ export namespace DoorLock {
483
351
  *
484
352
  * This value shall indicate the user has the ability to open lock within a specific time period (e.g., guest).
485
353
  *
486
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.19.2
354
+ * When UserType is set to YearDayScheduleUser, user access shall be restricted as follows:
355
+ *
356
+ * • If no YearDaySchedules are set for the user, then access shall be denied
357
+ *
358
+ * • If one or more YearDaySchedules are set, user access shall be granted if and only if the current time
359
+ * falls within at least one of the YearDaySchedules. If current time is not known, user access shall NOT
360
+ * be granted.
361
+ *
362
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.18.2
487
363
  */
488
364
  YearDayScheduleUser = 1,
489
365
 
@@ -493,7 +369,15 @@ export namespace DoorLock {
493
369
  * This value shall indicate the user has the ability to open lock based on specific time period within a
494
370
  * reoccurring weekly schedule (e.g., cleaning worker).
495
371
  *
496
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.19.3
372
+ * When UserType is set to WeekDayScheduleUser, user access shall be restricted as follows:
373
+ *
374
+ * • If no WeekDaySchedules are set for the user, then access shall be denied
375
+ *
376
+ * • If one or more WeekDaySchedules are set, user access shall be granted if and only if the current time
377
+ * falls within at least one of the WeekDaySchedules. If current time is not known, user access shall NOT
378
+ * be granted.
379
+ *
380
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.18.3
497
381
  */
498
382
  WeekDayScheduleUser = 2,
499
383
 
@@ -504,7 +388,7 @@ export namespace DoorLock {
504
388
  * manage the users and user schedules. In all other respects this user matches the unrestricted (default)
505
389
  * user. ProgrammingUser is the only user that can disable the user interface (keypad, remote, etc…).
506
390
  *
507
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.19.4
391
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.18.4
508
392
  */
509
393
  ProgrammingUser = 3,
510
394
 
@@ -514,7 +398,7 @@ export namespace DoorLock {
514
398
  * This value shall indicate the user is recognized by the lock but does not have the ability to open the lock.
515
399
  * This user will only cause the lock to generate the appropriate event notification to any bound devices.
516
400
  *
517
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.19.5
401
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.18.5
518
402
  */
519
403
  NonAccessUser = 4,
520
404
 
@@ -525,7 +409,7 @@ export namespace DoorLock {
525
409
  * ForcedUser silent alarm will be emitted to allow a notified Node to alert emergency services or contacts on
526
410
  * the user account when used.
527
411
  *
528
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.19.6
412
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.18.6
529
413
  */
530
414
  ForcedUser = 5,
531
415
 
@@ -535,7 +419,7 @@ export namespace DoorLock {
535
419
  * This value shall indicate the user has the ability to open lock once after which the lock shall change the
536
420
  * corresponding user record UserStatus value to OccupiedDisabled automatically.
537
421
  *
538
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.19.7
422
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.18.7
539
423
  */
540
424
  DisposableUser = 6,
541
425
 
@@ -547,16 +431,29 @@ export namespace DoorLock {
547
431
  * minutes the corresponding user record UserStatus value shall be set to OccupiedDisabled automatically by the
548
432
  * lock. The lock shall persist the timeout across reboots such that the ExpiringUserTimeout is honored.
549
433
  *
550
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.19.8
434
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.18.8
551
435
  */
552
436
  ExpiringUser = 7,
553
437
 
554
438
  /**
555
439
  * The user ID type is schedule restricted
556
440
  *
557
- * This value shall indicate the user access is restricted by Week Day and/or Year Day schedule.
441
+ * This value shall indicate the user access is restricted by Week Day and/or Year Day schedule. When UserType
442
+ * is set to ScheduleRestrictedUser, user access shall be restricted as follows:
443
+ *
444
+ * • If no WeekDaySchedules and no YearDaySchedules are set for the user, then access shall be denied
558
445
  *
559
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.19.9
446
+ * If one or more WeekDaySchedules are set, but no YearDaySchedules are set for the user, then user access
447
+ * shall be equivalent to the WeekDayScheduleUser UserType
448
+ *
449
+ * • If one or more YearDaySchedules are set, but no WeekDaySchedules are set for the user, then user access
450
+ * shall be equivalent to the YearDayScheduleUser UserType
451
+ *
452
+ * • If one or WeekDaySchedules are set AND one or more YearDaySchedules are set, then user access shall be
453
+ * granted if and only if the current time falls within at least one of the WeekDaySchedules AND the
454
+ * current time falls within at least one of the YearDaySchedules.
455
+ *
456
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.18.9
560
457
  */
561
458
  ScheduleRestrictedUser = 8,
562
459
 
@@ -568,7 +465,7 @@ export namespace DoorLock {
568
465
  * prevent a PIN code credential created for them from being used at the keypad. The PIN code credential would
569
466
  * only be provided over-the-air for the lock/unlock commands.
570
467
  *
571
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.19.10
468
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.18.10
572
469
  */
573
470
  RemoteOnlyUser = 9
574
471
  }
@@ -576,7 +473,7 @@ export namespace DoorLock {
576
473
  /**
577
474
  * This enumeration shall indicate the credential rule that can be applied to a particular user.
578
475
  *
579
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.9
476
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.8
580
477
  */
581
478
  export enum CredentialRule {
582
479
  /**
@@ -598,20 +495,20 @@ export namespace DoorLock {
598
495
  /**
599
496
  * Input to the DoorLock setUser command
600
497
  *
601
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34
498
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32
602
499
  */
603
500
  export const TlvSetUserRequest = TlvObject({
604
501
  /**
605
502
  * This field shall indicate the type of operation.
606
503
  *
607
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.1
504
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32.1
608
505
  */
609
506
  operationType: TlvField(0, TlvEnum<DataOperationType>()),
610
507
 
611
508
  /**
612
509
  * This field shall indicate the user ID.
613
510
  *
614
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.2
511
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32.2
615
512
  */
616
513
  userIndex: TlvField(1, TlvUInt16.bound({ min: 1 })),
617
514
 
@@ -626,7 +523,7 @@ export namespace DoorLock {
626
523
  *
627
524
  * If UserName is not null, the UserName in the user record shall be set to the provided value.
628
525
  *
629
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.3
526
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32.3
630
527
  */
631
528
  userName: TlvField(2, TlvNullable(TlvString.bound({ maxLength: 10 }))),
632
529
 
@@ -644,7 +541,7 @@ export namespace DoorLock {
644
541
  *
645
542
  * If UserUniqueID is not null, the UserUniqueID in the user record shall be set to the provided value.
646
543
  *
647
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.4
544
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32.4
648
545
  */
649
546
  userUniqueId: TlvField(3, TlvNullable(TlvUInt32)),
650
547
 
@@ -660,7 +557,7 @@ export namespace DoorLock {
660
557
  *
661
558
  * If UserStatus is not null, the UserStatus in the user record shall be set to the provided value.
662
559
  *
663
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.5
560
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32.5
664
561
  */
665
562
  userStatus: TlvField(4, TlvNullable(TlvEnum<UserStatus>())),
666
563
 
@@ -676,7 +573,7 @@ export namespace DoorLock {
676
573
  *
677
574
  * If UserType is not null, the UserType in the user record shall be set to the provided value.
678
575
  *
679
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.6
576
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32.6
680
577
  */
681
578
  userType: TlvField(5, TlvNullable(TlvEnum<UserType>())),
682
579
 
@@ -696,7 +593,7 @@ export namespace DoorLock {
696
593
  *
697
594
  * If CredentialRule is not null, the CredentialRule in the user record shall be set to the provided value.
698
595
  *
699
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.7
596
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32.7
700
597
  */
701
598
  credentialRule: TlvField(6, TlvNullable(TlvEnum<CredentialRule>()))
702
599
  });
@@ -704,28 +601,28 @@ export namespace DoorLock {
704
601
  /**
705
602
  * Input to the DoorLock setUser command
706
603
  *
707
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34
604
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32
708
605
  */
709
606
  export interface SetUserRequest extends TypeFromSchema<typeof TlvSetUserRequest> {}
710
607
 
711
608
  /**
712
609
  * Input to the DoorLock getUser command
713
610
  *
714
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.35
611
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.33
715
612
  */
716
613
  export const TlvGetUserRequest = TlvObject({ userIndex: TlvField(0, TlvUInt16.bound({ min: 1 })) });
717
614
 
718
615
  /**
719
616
  * Input to the DoorLock getUser command
720
617
  *
721
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.35
618
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.33
722
619
  */
723
620
  export interface GetUserRequest extends TypeFromSchema<typeof TlvGetUserRequest> {}
724
621
 
725
622
  /**
726
623
  * This enumeration shall indicate the credential type.
727
624
  *
728
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.10
625
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.9
729
626
  */
730
627
  export enum CredentialType {
731
628
  /**
@@ -756,20 +653,81 @@ export namespace DoorLock {
756
653
  /**
757
654
  * Face identifier credential type
758
655
  */
759
- Face = 5
656
+ Face = 5,
657
+
658
+ /**
659
+ * A Credential Issuer public key as defined in [Aliro]
660
+ *
661
+ * Credentials of this type shall be 65-byte uncompressed elliptic curve public keys as defined in section
662
+ * 2.3.3 of SEC 1.
663
+ *
664
+ * Credentials of this type shall NOT be used to allow operating the lock. They shall be used, as defined in
665
+ * [Aliro], to create new credentials of type AliroEvictableEndpointKey via a step-up transaction.
666
+ *
667
+ * When performing the step-up transaction, the lock shall request the data element with identifier "matter1",
668
+ * and shall attempt to create a new credential of type AliroEvictableEndpointKey if and only if the data
669
+ * element is returned and the Access Credential can be validated using the AliroCredentialIssuerKey.
670
+ *
671
+ * When a new credential of type AliroEvictableEndpointKey is added in this manner, it shall be associated with
672
+ * the same user record as the AliroCredentialIssuerKey credential that allowed the new credential to be added.
673
+ *
674
+ * If there are no available credential slots to add a new AliroEvictableEndpointKey credential (i.e. either
675
+ * the NumberOfCredentialsSupportedPerUser or the NumberOfAliroEndpointKeysSupported limit has been reached)
676
+ * but there exist credentials of type AliroEvictableEndpointKey associated with the user record, the server
677
+ * shall remove one of those credentials using the same procedure it would follow for the ClearCredential
678
+ * command before adding the new credential.
679
+ *
680
+ * If there are no available credential slots to add a new AliroEvictableEndpointKey credential (i.e. either
681
+ * the NumberOfCredentialsSupportedPerUser or the NumberOfAliroEndpointKeysSupported limit has been reached)
682
+ * and there do not exist credentials of type AliroEvictableEndpointKey associated with the user record, a new
683
+ * AliroEvictableEndpointKey credential shall NOT be created.
684
+ *
685
+ * If the step-up process results in addition of new credentials, the corresponding LockUserChange event shall
686
+ * have OperationSource set to Aliro.
687
+ *
688
+ * If the step-up process results in the lock state changing (e.g. locking or unlocking), the credential
689
+ * associated with those changes in the LockOperation events shall be the newly provisioned
690
+ * AliroEvictableEndpointKey credential if one was created. If no new AliroEvictableEndpointKey credential was
691
+ * created, the credential associated with the changes in the LockOperation events shall be the
692
+ * AliroCredentialIssuerKey credential used for the step-up.
693
+ *
694
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.9.1
695
+ */
696
+ AliroCredentialIssuerKey = 6,
697
+
698
+ /**
699
+ * An Endpoint public key as defined in [Aliro] which can be evicted if space is needed for another endpoint key
700
+ *
701
+ * Credentials of this type shall be 65-byte uncompressed elliptic curve public keys as defined in section
702
+ * 2.3.3 of SEC 1.
703
+ *
704
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.9.2
705
+ */
706
+ AliroEvictableEndpointKey = 7,
707
+
708
+ /**
709
+ * An Endpoint public key as defined in [Aliro] which cannot be evicted if space is needed for another endpoint
710
+ * key
711
+ *
712
+ * Credentials of this type shall be 65-byte uncompressed elliptic curve public keys as defined in section
713
+ * 2.3.3 of SEC 1.
714
+ *
715
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.9.3
716
+ */
717
+ AliroNonEvictableEndpointKey = 8
760
718
  }
761
719
 
762
720
  /**
763
721
  * This struct shall indicate the credential types and their corresponding indices (if any) for the event or user
764
722
  * record.
765
723
  *
766
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.26
724
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.24
767
725
  */
768
726
  export const TlvCredential = TlvObject({
769
727
  /**
770
728
  * This field shall indicate the credential field used to authorize the lock operation.
771
729
  *
772
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.26.1
730
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.24.1
773
731
  */
774
732
  credentialType: TlvField(0, TlvEnum<CredentialType>()),
775
733
 
@@ -778,7 +736,7 @@ export namespace DoorLock {
778
736
  * list of credentials identified by CredentialType (e.g. PIN, RFID, etc.). This field shall be set to 0 if
779
737
  * CredentialType is ProgrammingPIN or does not correspond to a list that can be indexed into.
780
738
  *
781
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.26.2
739
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.24.2
782
740
  */
783
741
  credentialIndex: TlvField(1, TlvUInt16)
784
742
  });
@@ -787,7 +745,7 @@ export namespace DoorLock {
787
745
  * This struct shall indicate the credential types and their corresponding indices (if any) for the event or user
788
746
  * record.
789
747
  *
790
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.26
748
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.24
791
749
  */
792
750
  export interface Credential extends TypeFromSchema<typeof TlvCredential> {}
793
751
 
@@ -798,55 +756,55 @@ export namespace DoorLock {
798
756
  * UserUniqueID, UserStatus, UserType, CredentialRule, Credentials, CreatorFabricIndex, and LastModifiedFabricIndex
799
757
  * shall all be null in the response.
800
758
  *
801
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36
759
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34
802
760
  */
803
761
  export const TlvGetUserResponse = TlvObject({
804
762
  /**
805
763
  * This field shall indicate the user ID.
806
764
  *
807
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.1
765
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.1
808
766
  */
809
767
  userIndex: TlvField(0, TlvUInt16.bound({ min: 1 })),
810
768
 
811
769
  /**
812
770
  * This field shall contain a string to use as a human readable identifier for the user.
813
771
  *
814
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.2
772
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.2
815
773
  */
816
774
  userName: TlvField(1, TlvNullable(TlvString.bound({ maxLength: 10 }))),
817
775
 
818
776
  /**
819
777
  * See UserUniqueID field.
820
778
  *
821
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.3
779
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.3
822
780
  */
823
781
  userUniqueId: TlvField(2, TlvNullable(TlvUInt32)),
824
782
 
825
783
  /**
826
784
  * This field shall indicate the UserStatus assigned to the user when created or modified.
827
785
  *
828
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.4
786
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.4
829
787
  */
830
788
  userStatus: TlvField(3, TlvNullable(TlvEnum<UserStatus>())),
831
789
 
832
790
  /**
833
791
  * This field shall indicate the UserType assigned to this user when created or modified.
834
792
  *
835
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.5
793
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.5
836
794
  */
837
795
  userType: TlvField(4, TlvNullable(TlvEnum<UserType>())),
838
796
 
839
797
  /**
840
798
  * This field shall indicate the CredentialRule set for this user.
841
799
  *
842
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.6
800
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.6
843
801
  */
844
802
  credentialRule: TlvField(5, TlvNullable(TlvEnum<CredentialRule>())),
845
803
 
846
804
  /**
847
805
  * This field shall contain a list of credentials for this user.
848
806
  *
849
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.7
807
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.7
850
808
  */
851
809
  credentials: TlvField(6, TlvNullable(TlvArray(TlvCredential, { minLength: 0 }))),
852
810
 
@@ -856,7 +814,7 @@ export namespace DoorLock {
856
814
  * the Interaction Model) and shall NOT be null otherwise. This value shall be set to 0 if the original creator
857
815
  * fabric was deleted.
858
816
  *
859
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.8
817
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.8
860
818
  */
861
819
  creatorFabricIndex: TlvField(7, TlvNullable(TlvFabricIndex)),
862
820
 
@@ -866,7 +824,7 @@ export namespace DoorLock {
866
824
  * modified outside the Interaction Model) and shall NOT be null otherwise. This value shall be set to 0 if the
867
825
  * last modifier fabric was deleted.
868
826
  *
869
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.9
827
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.9
870
828
  */
871
829
  lastModifiedFabricIndex: TlvField(8, TlvNullable(TlvFabricIndex)),
872
830
 
@@ -876,7 +834,7 @@ export namespace DoorLock {
876
834
  * entry after the requested UserIndex in the User database and shall be null if there are no more occupied
877
835
  * entries.
878
836
  *
879
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.10
837
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34.10
880
838
  */
881
839
  nextUserIndex: TlvField(9, TlvNullable(TlvUInt16.bound({ min: 1 })))
882
840
  });
@@ -888,20 +846,20 @@ export namespace DoorLock {
888
846
  * UserUniqueID, UserStatus, UserType, CredentialRule, Credentials, CreatorFabricIndex, and LastModifiedFabricIndex
889
847
  * shall all be null in the response.
890
848
  *
891
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36
849
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34
892
850
  */
893
851
  export interface GetUserResponse extends TypeFromSchema<typeof TlvGetUserResponse> {}
894
852
 
895
853
  /**
896
854
  * Input to the DoorLock clearUser command
897
855
  *
898
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.37
856
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.35
899
857
  */
900
858
  export const TlvClearUserRequest = TlvObject({
901
859
  /**
902
860
  * This field shall specify a valid User index or 0xFFFE to indicate all user slots shall be cleared.
903
861
  *
904
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.37.1
862
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.35.1
905
863
  */
906
864
  userIndex: TlvField(0, TlvUInt16)
907
865
  });
@@ -909,20 +867,20 @@ export namespace DoorLock {
909
867
  /**
910
868
  * Input to the DoorLock clearUser command
911
869
  *
912
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.37
870
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.35
913
871
  */
914
872
  export interface ClearUserRequest extends TypeFromSchema<typeof TlvClearUserRequest> {}
915
873
 
916
874
  /**
917
875
  * Input to the DoorLock setCredential command
918
876
  *
919
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40
877
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36
920
878
  */
921
879
  export const TlvSetCredentialRequest = TlvObject({
922
880
  /**
923
881
  * This field shall indicate the set credential operation type requested.
924
882
  *
925
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40.1
883
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.1
926
884
  */
927
885
  operationType: TlvField(0, TlvEnum<DataOperationType>()),
928
886
 
@@ -930,7 +888,7 @@ export namespace DoorLock {
930
888
  * This field shall contain a credential structure that contains the CredentialTypeEnum and the credential
931
889
  * index (if applicable or 0 if not) to set.
932
890
  *
933
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40.2
891
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.2
934
892
  */
935
893
  credential: TlvField(1, TlvCredential),
936
894
 
@@ -939,7 +897,7 @@ export namespace DoorLock {
939
897
  * of the credential data shall conform to the limits of the CredentialType specified in the Credential
940
898
  * structure otherwise an INVALID_COMMAND status shall be returned in the SetCredentialResponse command.
941
899
  *
942
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40.3
900
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.3
943
901
  */
944
902
  credentialData: TlvField(2, TlvByteString),
945
903
 
@@ -948,7 +906,7 @@ export namespace DoorLock {
948
906
  * or modified. This shall be null if OperationType is add and a new credential and user is being added at the
949
907
  * same time.
950
908
  *
951
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40.4
909
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.4
952
910
  */
953
911
  userIndex: TlvField(3, TlvNullable(TlvUInt16.bound({ min: 1 }))),
954
912
 
@@ -956,7 +914,7 @@ export namespace DoorLock {
956
914
  * This field shall indicate the user status to use in the new user record if a new user is being created. This
957
915
  * shall be null if OperationType is Modify. This may be null when adding a new credential and user.
958
916
  *
959
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40.5
917
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.5
960
918
  */
961
919
  userStatus: TlvField(4, TlvNullable(TlvEnum<UserStatus>())),
962
920
 
@@ -964,7 +922,7 @@ export namespace DoorLock {
964
922
  * This field shall indicate the user type to use in the new user record if a new user is being created. This
965
923
  * shall be null if OperationType is Modify. This may be null when adding a new credential and user.
966
924
  *
967
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40.6
925
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36.6
968
926
  */
969
927
  userType: TlvField(5, TlvNullable(TlvEnum<UserType>()))
970
928
  });
@@ -972,14 +930,14 @@ export namespace DoorLock {
972
930
  /**
973
931
  * Input to the DoorLock setCredential command
974
932
  *
975
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40
933
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36
976
934
  */
977
935
  export interface SetCredentialRequest extends TypeFromSchema<typeof TlvSetCredentialRequest> {}
978
936
 
979
937
  /**
980
938
  * Returns the status for setting the specified credential.
981
939
  *
982
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.41
940
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.37
983
941
  */
984
942
  export const TlvSetCredentialResponse = TlvObject({
985
943
  /**
@@ -997,8 +955,15 @@ export namespace DoorLock {
997
955
  * • DUPLICATE, if CredentialData provided is a duplicate of another credential with the same CredentialType
998
956
  * (e.g. duplicate PIN code).
999
957
  *
1000
- * • RESOURCE_EXHAUSTED, if OperationType is Add and the user referred to by UserIndex already has
1001
- * NumberOfCredentialsSupportedPerUser credentials associated.
958
+ * • RESOURCE_EXHAUSTED, if OperationType is Add and the new credential cannot be added due to resource
959
+ * constraints such as:
960
+ *
961
+ * ◦ The user referred to by UserIndex already has NumberOfCredentialsSupportedPerUser credentials
962
+ * associated.
963
+ *
964
+ * ◦ The credential is of type AliroEvictableEndpointKey or AliroNonEvictableEndpointKey, and adding it
965
+ * would cause the total number of credentials of those two types to exceed
966
+ * NumberOfAliroEndpointKeysSupported.
1002
967
  *
1003
968
  * • INVALID_COMMAND, if one or more fields violate constraints or are invalid.
1004
969
  *
@@ -1007,7 +972,7 @@ export namespace DoorLock {
1007
972
  *
1008
973
  * • INVALID_COMMAND, if OperationType is Modify and UserIndex points to an available slot.
1009
974
  *
1010
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.41.1
975
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.37.1
1011
976
  */
1012
977
  status: TlvField(0, TlvEnum<Status>()),
1013
978
 
@@ -1018,7 +983,7 @@ export namespace DoorLock {
1018
983
  * created. If the OperationType was Add and an existing User was associated with the new credential then this
1019
984
  * shall be null.
1020
985
  *
1021
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.41.2
986
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.37.2
1022
987
  */
1023
988
  userIndex: TlvField(1, TlvNullable(TlvUInt16.bound({ min: 1 }))),
1024
989
 
@@ -1029,7 +994,7 @@ export namespace DoorLock {
1029
994
  * be null if there are no more available entries. The NextCredentialIndex reported shall NOT exceed the
1030
995
  * maximum number of credentials for a particular credential type.
1031
996
  *
1032
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.41.3
997
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.37.3
1033
998
  */
1034
999
  nextCredentialIndex: TlvOptionalField(2, TlvNullable(TlvUInt16))
1035
1000
  });
@@ -1037,21 +1002,21 @@ export namespace DoorLock {
1037
1002
  /**
1038
1003
  * Returns the status for setting the specified credential.
1039
1004
  *
1040
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.41
1005
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.37
1041
1006
  */
1042
1007
  export interface SetCredentialResponse extends TypeFromSchema<typeof TlvSetCredentialResponse> {}
1043
1008
 
1044
1009
  /**
1045
1010
  * Input to the DoorLock getCredentialStatus command
1046
1011
  *
1047
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.42
1012
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.38
1048
1013
  */
1049
1014
  export const TlvGetCredentialStatusRequest = TlvObject({
1050
1015
  /**
1051
1016
  * This field shall contain a credential structure that contains the CredentialTypeEnum and the credential
1052
1017
  * index (if applicable or 0 if not) to retrieve the status for.
1053
1018
  *
1054
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.42.1
1019
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.38.1
1055
1020
  */
1056
1021
  credential: TlvField(0, TlvCredential)
1057
1022
  });
@@ -1059,21 +1024,21 @@ export namespace DoorLock {
1059
1024
  /**
1060
1025
  * Input to the DoorLock getCredentialStatus command
1061
1026
  *
1062
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.42
1027
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.38
1063
1028
  */
1064
1029
  export interface GetCredentialStatusRequest extends TypeFromSchema<typeof TlvGetCredentialStatusRequest> {}
1065
1030
 
1066
1031
  /**
1067
1032
  * Returns the status for the specified credential.
1068
1033
  *
1069
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.43
1034
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.39
1070
1035
  */
1071
1036
  export const TlvGetCredentialStatusResponse = TlvObject({
1072
1037
  /**
1073
1038
  * This field shall indicate if the requested credential type and index exists and is populated for the
1074
1039
  * requested user index.
1075
1040
  *
1076
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.43.1
1041
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.39.1
1077
1042
  */
1078
1043
  credentialExists: TlvField(0, TlvBoolean),
1079
1044
 
@@ -1082,7 +1047,7 @@ export namespace DoorLock {
1082
1047
  * CredentialType requested was ProgrammingPIN then UserIndex shall be null; otherwise, UserIndex shall be null
1083
1048
  * if CredentialExists is set to False and shall NOT be null if CredentialExists is set to True.
1084
1049
  *
1085
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.43.2
1050
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.39.2
1086
1051
  */
1087
1052
  userIndex: TlvField(1, TlvNullable(TlvUInt16.bound({ min: 1 }))),
1088
1053
 
@@ -1092,7 +1057,7 @@ export namespace DoorLock {
1092
1057
  * credential was created outside the Interaction Model) and shall NOT be null otherwise. This value shall be
1093
1058
  * set to 0 if the original creator fabric was deleted.
1094
1059
  *
1095
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.43.3
1060
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.39.3
1096
1061
  */
1097
1062
  creatorFabricIndex: TlvField(2, TlvNullable(TlvFabricIndex)),
1098
1063
 
@@ -1102,33 +1067,54 @@ export namespace DoorLock {
1102
1067
  * credential was modified outside the Interaction Model) and shall NOT be null otherwise. This value shall be
1103
1068
  * set to 0 if the last modifier fabric was deleted.
1104
1069
  *
1105
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.43.4
1070
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.39.4
1106
1071
  */
1107
1072
  lastModifiedFabricIndex: TlvField(3, TlvNullable(TlvFabricIndex)),
1108
1073
 
1109
1074
  /**
1110
1075
  * This field shall indicate the next occupied index in the database for the credential type requested, which
1111
1076
  * is useful for quickly identifying occupied credential slots in the database. This shall NOT be null if there
1112
- * is at least one occupied entry after the requested credential index in the corresponding database and shall
1113
- * be null if there are no more occupied entries. The NextCredentialIndex reported shall NOT exceed the maximum
1114
- * number of credentials for a particular credential type.
1077
+ * is at least one occupied entry after the requested credential index in the corresponding
1078
+ *
1079
+ * database and shall be null if there are no more occupied entries. The NextCredentialIndex reported shall NOT
1080
+ * exceed the maximum number of credentials for a particular credential type.
1081
+ *
1082
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.39.5
1083
+ */
1084
+ nextCredentialIndex: TlvOptionalField(4, TlvNullable(TlvUInt16)),
1085
+
1086
+ /**
1087
+ * This field shall indicate the credential data for the requested user index.
1088
+ *
1089
+ * If the CredentialType in the GetCredentialStatus command was not AliroCredentialIssuerKey,
1090
+ * AliroEvictableEndpointKey, or AliroNonEvictableEndpointKey, this field shall NOT be included.
1091
+ *
1092
+ * Otherwise, if CredentialExists is false this field shall be null.
1115
1093
  *
1116
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.43.5
1094
+ * Otherwise, the value of this field shall be the value of the relevant credential, as a 65-byte uncompressed
1095
+ * elliptic curve public key as defined in section 2.3.3 of SEC 1.
1096
+ *
1097
+ * NOTE
1098
+ *
1099
+ * Since the Aliro credentials are public keys, there is no security risk in allowing them to be read.
1100
+ * Possession of the credential octet string does not allow operating the lock.
1101
+ *
1102
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.39.6
1117
1103
  */
1118
- nextCredentialIndex: TlvOptionalField(4, TlvNullable(TlvUInt16))
1104
+ credentialData: TlvOptionalField(5, TlvNullable(TlvByteString))
1119
1105
  });
1120
1106
 
1121
1107
  /**
1122
1108
  * Returns the status for the specified credential.
1123
1109
  *
1124
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.43
1110
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.39
1125
1111
  */
1126
1112
  export interface GetCredentialStatusResponse extends TypeFromSchema<typeof TlvGetCredentialStatusResponse> {}
1127
1113
 
1128
1114
  /**
1129
1115
  * Input to the DoorLock clearCredential command
1130
1116
  *
1131
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.44
1117
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40
1132
1118
  */
1133
1119
  export const TlvClearCredentialRequest = TlvObject({
1134
1120
  /**
@@ -1136,7 +1122,7 @@ export namespace DoorLock {
1136
1122
  * index (0xFFFE for all credentials or 0 if not applicable) to clear. This shall be null if clearing all
1137
1123
  * credential types otherwise it shall NOT be null.
1138
1124
  *
1139
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.44.1
1125
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40.1
1140
1126
  */
1141
1127
  credential: TlvField(0, TlvNullable(TlvCredential))
1142
1128
  });
@@ -1144,14 +1130,14 @@ export namespace DoorLock {
1144
1130
  /**
1145
1131
  * Input to the DoorLock clearCredential command
1146
1132
  *
1147
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.44
1133
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40
1148
1134
  */
1149
1135
  export interface ClearCredentialRequest extends TypeFromSchema<typeof TlvClearCredentialRequest> {}
1150
1136
 
1151
1137
  /**
1152
1138
  * This enumeration shall indicate the data type that is being or has changed.
1153
1139
  *
1154
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.13
1140
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.12
1155
1141
  */
1156
1142
  export enum LockDataType {
1157
1143
  /**
@@ -1207,13 +1193,28 @@ export namespace DoorLock {
1207
1193
  /**
1208
1194
  * Lock user face information was added, cleared, or modified.
1209
1195
  */
1210
- Face = 10
1196
+ Face = 10,
1197
+
1198
+ /**
1199
+ * An Aliro credential issuer key credential was added, cleared, or modified.
1200
+ */
1201
+ AliroCredentialIssuerKey = 11,
1202
+
1203
+ /**
1204
+ * An Aliro endpoint key credential which can be evicted credential was added, cleared, or modified.
1205
+ */
1206
+ AliroEvictableEndpointKey = 12,
1207
+
1208
+ /**
1209
+ * An Aliro endpoint key credential which cannot be evicted was added, cleared, or modified.
1210
+ */
1211
+ AliroNonEvictableEndpointKey = 13
1211
1212
  }
1212
1213
 
1213
1214
  /**
1214
1215
  * This enumeration shall indicate the source of the Lock/Unlock or user change operation performed.
1215
1216
  *
1216
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.17
1217
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.16
1217
1218
  */
1218
1219
  export enum OperationSource {
1219
1220
  /**
@@ -1264,7 +1265,13 @@ export namespace DoorLock {
1264
1265
  /**
1265
1266
  * Lock/unlock operation came from biometric source (e.g. face, fingerprint/fingervein)
1266
1267
  */
1267
- Biometric = 9
1268
+ Biometric = 9,
1269
+
1270
+ /**
1271
+ * Lock/unlock operation came from an interaction defined in [Aliro], or user change operation was a step-up
1272
+ * credential provisioning as defined in [Aliro]
1273
+ */
1274
+ Aliro = 10
1268
1275
  }
1269
1276
 
1270
1277
  /**
@@ -1384,36 +1391,41 @@ export namespace DoorLock {
1384
1391
  /**
1385
1392
  * Input to the DoorLock setWeekDaySchedule command
1386
1393
  *
1387
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14
1394
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12
1388
1395
  */
1389
1396
  export const TlvSetWeekDayScheduleRequest = TlvObject({
1390
1397
  /**
1391
1398
  * This field shall indicate the index of the Week Day schedule.
1392
1399
  *
1393
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.1
1400
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12.1
1394
1401
  */
1395
1402
  weekDayIndex: TlvField(0, TlvUInt8.bound({ min: 1 })),
1396
1403
 
1397
- userIndexUserId: TlvField(1, TlvUInt16.bound({ min: 1 })),
1404
+ /**
1405
+ * This field shall indicate the user ID.
1406
+ *
1407
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12.2
1408
+ */
1409
+ userIndex: TlvField(1, TlvUInt16.bound({ min: 1 })),
1398
1410
 
1399
1411
  /**
1400
1412
  * This field shall indicate which week days the schedule is active.
1401
1413
  *
1402
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.3
1414
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12.3
1403
1415
  */
1404
1416
  daysMask: TlvField(2, TlvBitmap(TlvUInt8, DaysMask)),
1405
1417
 
1406
1418
  /**
1407
1419
  * This field shall indicate the starting hour for the Week Day schedule.
1408
1420
  *
1409
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.4
1421
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12.4
1410
1422
  */
1411
1423
  startHour: TlvField(3, TlvUInt8.bound({ max: 23 })),
1412
1424
 
1413
1425
  /**
1414
1426
  * This field shall indicate the starting minute for the Week Day schedule.
1415
1427
  *
1416
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.5
1428
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12.5
1417
1429
  */
1418
1430
  startMinute: TlvField(4, TlvUInt8.bound({ max: 59 })),
1419
1431
 
@@ -1421,7 +1433,7 @@ export namespace DoorLock {
1421
1433
  * This field shall indicate the ending hour for the Week Day schedule. EndHour shall be equal to or greater
1422
1434
  * than StartHour.
1423
1435
  *
1424
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.6
1436
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12.6
1425
1437
  */
1426
1438
  endHour: TlvField(5, TlvUInt8.bound({ max: 23 })),
1427
1439
 
@@ -1432,7 +1444,7 @@ export namespace DoorLock {
1432
1444
  * If the EndHour is equal to 23 and the EndMinute is equal to 59 the Lock shall grant access to the user up
1433
1445
  * until 23:59:59.
1434
1446
  *
1435
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.7
1447
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12.7
1436
1448
  */
1437
1449
  endMinute: TlvField(6, TlvUInt8.bound({ max: 59 }))
1438
1450
  });
@@ -1440,43 +1452,46 @@ export namespace DoorLock {
1440
1452
  /**
1441
1453
  * Input to the DoorLock setWeekDaySchedule command
1442
1454
  *
1443
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14
1455
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12
1444
1456
  */
1445
1457
  export interface SetWeekDayScheduleRequest extends TypeFromSchema<typeof TlvSetWeekDayScheduleRequest> {}
1446
1458
 
1447
1459
  /**
1448
1460
  * Input to the DoorLock getWeekDaySchedule command
1449
1461
  *
1450
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.15
1462
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.13
1451
1463
  */
1452
1464
  export const TlvGetWeekDayScheduleRequest = TlvObject({
1453
1465
  weekDayIndex: TlvField(0, TlvUInt8.bound({ min: 1 })),
1454
- userIndexUserId: TlvField(1, TlvUInt16.bound({ min: 1 }))
1466
+ userIndex: TlvField(1, TlvUInt16.bound({ min: 1 }))
1455
1467
  });
1456
1468
 
1457
1469
  /**
1458
1470
  * Input to the DoorLock getWeekDaySchedule command
1459
1471
  *
1460
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.15
1472
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.13
1461
1473
  */
1462
1474
  export interface GetWeekDayScheduleRequest extends TypeFromSchema<typeof TlvGetWeekDayScheduleRequest> {}
1463
1475
 
1464
1476
  /**
1465
1477
  * Returns the weekly repeating schedule data for the specified schedule index.
1466
1478
  *
1467
- * The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead, respectively.
1468
- *
1469
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16
1479
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14
1470
1480
  */
1471
1481
  export const TlvGetWeekDayScheduleResponse = TlvObject({
1472
1482
  /**
1473
1483
  * This field shall indicate the index of the Week Day schedule.
1474
1484
  *
1475
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16.1
1485
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.1
1476
1486
  */
1477
1487
  weekDayIndex: TlvField(0, TlvUInt8.bound({ min: 1 })),
1478
1488
 
1479
- userIndexUserId: TlvField(1, TlvUInt16.bound({ min: 1 })),
1489
+ /**
1490
+ * This field shall indicate the user ID.
1491
+ *
1492
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.2
1493
+ */
1494
+ userIndex: TlvField(1, TlvUInt16.bound({ min: 1 })),
1480
1495
 
1481
1496
  /**
1482
1497
  * Status shall be one of the following values:
@@ -1492,7 +1507,7 @@ export namespace DoorLock {
1492
1507
  * If this field is SUCCESS, the optional fields for this command shall be present. For other (error) status
1493
1508
  * values, only the fields up to the status field shall be present.
1494
1509
  *
1495
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16.3
1510
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.3
1496
1511
  */
1497
1512
  status: TlvField(2, TlvEnum<Status>()),
1498
1513
 
@@ -1501,14 +1516,14 @@ export namespace DoorLock {
1501
1516
  /**
1502
1517
  * This field shall indicate the starting hour for the Week Day schedule.
1503
1518
  *
1504
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16.4
1519
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.4
1505
1520
  */
1506
1521
  startHour: TlvOptionalField(4, TlvUInt8.bound({ max: 23 })),
1507
1522
 
1508
1523
  /**
1509
1524
  * This field shall indicate the starting minute for the Week Day schedule.
1510
1525
  *
1511
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16.5
1526
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.5
1512
1527
  */
1513
1528
  startMinute: TlvOptionalField(5, TlvUInt8.bound({ max: 59 })),
1514
1529
 
@@ -1516,7 +1531,7 @@ export namespace DoorLock {
1516
1531
  * This field shall indicate the ending hour for the Week Day schedule. EndHour shall be equal to or greater
1517
1532
  * than StartHour.
1518
1533
  *
1519
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16.6
1534
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.6
1520
1535
  */
1521
1536
  endHour: TlvOptionalField(6, TlvUInt8.bound({ max: 23 })),
1522
1537
 
@@ -1524,7 +1539,7 @@ export namespace DoorLock {
1524
1539
  * This field shall indicate the ending minute for the Week Day schedule. If EndHour is equal to StartHour then
1525
1540
  * EndMinute shall be greater than StartMinute.
1526
1541
  *
1527
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16.7
1542
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14.7
1528
1543
  */
1529
1544
  endMinute: TlvOptionalField(7, TlvUInt8.bound({ max: 59 }))
1530
1545
  });
@@ -1532,56 +1547,64 @@ export namespace DoorLock {
1532
1547
  /**
1533
1548
  * Returns the weekly repeating schedule data for the specified schedule index.
1534
1549
  *
1535
- * The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead, respectively.
1536
- *
1537
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16
1550
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14
1538
1551
  */
1539
1552
  export interface GetWeekDayScheduleResponse extends TypeFromSchema<typeof TlvGetWeekDayScheduleResponse> {}
1540
1553
 
1541
1554
  /**
1542
1555
  * Input to the DoorLock clearWeekDaySchedule command
1543
1556
  *
1544
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.17
1557
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.15
1545
1558
  */
1546
1559
  export const TlvClearWeekDayScheduleRequest = TlvObject({
1547
1560
  /**
1548
1561
  * This field shall indicate the Week Day schedule index to clear or 0xFE to clear all Week Day schedules for
1549
1562
  * the specified user.
1550
1563
  *
1551
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.17.1
1564
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.15.1
1552
1565
  */
1553
1566
  weekDayIndex: TlvField(0, TlvUInt8),
1554
1567
 
1555
- userIndexUserId: TlvField(1, TlvUInt16.bound({ min: 1 }))
1568
+ /**
1569
+ * This field shall indicate the user ID.
1570
+ *
1571
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.15.2
1572
+ */
1573
+ userIndex: TlvField(1, TlvUInt16.bound({ min: 1 }))
1556
1574
  });
1557
1575
 
1558
1576
  /**
1559
1577
  * Input to the DoorLock clearWeekDaySchedule command
1560
1578
  *
1561
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.17
1579
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.15
1562
1580
  */
1563
1581
  export interface ClearWeekDayScheduleRequest extends TypeFromSchema<typeof TlvClearWeekDayScheduleRequest> {}
1564
1582
 
1565
1583
  /**
1566
1584
  * Input to the DoorLock setYearDaySchedule command
1567
1585
  *
1568
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18
1586
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16
1569
1587
  */
1570
1588
  export const TlvSetYearDayScheduleRequest = TlvObject({
1571
1589
  /**
1572
1590
  * This field shall indicate the index of the Year Day schedule.
1573
1591
  *
1574
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18.1
1592
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16.1
1575
1593
  */
1576
1594
  yearDayIndex: TlvField(0, TlvUInt8.bound({ min: 1 })),
1577
1595
 
1578
- userIndexUserId: TlvField(1, TlvUInt16.bound({ min: 1 })),
1596
+ /**
1597
+ * This field shall indicate the user ID.
1598
+ *
1599
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16.2
1600
+ */
1601
+ userIndex: TlvField(1, TlvUInt16.bound({ min: 1 })),
1579
1602
 
1580
1603
  /**
1581
1604
  * This field shall indicate the starting time for the Year Day schedule in Epoch Time in Seconds with local
1582
1605
  * time offset based on the local timezone and DST offset on the day represented by the value.
1583
1606
  *
1584
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18.3
1607
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16.3
1585
1608
  */
1586
1609
  localStartTime: TlvField(2, TlvEpochS),
1587
1610
 
@@ -1590,7 +1613,7 @@ export namespace DoorLock {
1590
1613
  * offset based on the local timezone and DST offset on the day represented by the value. LocalEndTime shall be
1591
1614
  * greater than LocalStartTime.
1592
1615
  *
1593
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18.4
1616
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16.4
1594
1617
  */
1595
1618
  localEndTime: TlvField(3, TlvEpochS)
1596
1619
  });
@@ -1598,43 +1621,46 @@ export namespace DoorLock {
1598
1621
  /**
1599
1622
  * Input to the DoorLock setYearDaySchedule command
1600
1623
  *
1601
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18
1624
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16
1602
1625
  */
1603
1626
  export interface SetYearDayScheduleRequest extends TypeFromSchema<typeof TlvSetYearDayScheduleRequest> {}
1604
1627
 
1605
1628
  /**
1606
1629
  * Input to the DoorLock getYearDaySchedule command
1607
1630
  *
1608
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.19
1631
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.17
1609
1632
  */
1610
1633
  export const TlvGetYearDayScheduleRequest = TlvObject({
1611
1634
  yearDayIndex: TlvField(0, TlvUInt8.bound({ min: 1 })),
1612
- userIndexUserId: TlvField(1, TlvUInt16.bound({ min: 1 }))
1635
+ userIndex: TlvField(1, TlvUInt16.bound({ min: 1 }))
1613
1636
  });
1614
1637
 
1615
1638
  /**
1616
1639
  * Input to the DoorLock getYearDaySchedule command
1617
1640
  *
1618
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.19
1641
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.17
1619
1642
  */
1620
1643
  export interface GetYearDayScheduleRequest extends TypeFromSchema<typeof TlvGetYearDayScheduleRequest> {}
1621
1644
 
1622
1645
  /**
1623
1646
  * Returns the year day schedule data for the specified schedule and user indexes.
1624
1647
  *
1625
- * The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead, respectively.
1626
- *
1627
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20
1648
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18
1628
1649
  */
1629
1650
  export const TlvGetYearDayScheduleResponse = TlvObject({
1630
1651
  /**
1631
1652
  * This field shall indicate the index of the Year Day schedule.
1632
1653
  *
1633
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20.1
1654
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18.1
1634
1655
  */
1635
1656
  yearDayIndex: TlvField(0, TlvUInt8.bound({ min: 1 })),
1636
1657
 
1637
- userIndexUserId: TlvField(1, TlvUInt16.bound({ min: 1 })),
1658
+ /**
1659
+ * This field shall indicate the user ID.
1660
+ *
1661
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18.2
1662
+ */
1663
+ userIndex: TlvField(1, TlvUInt16.bound({ min: 1 })),
1638
1664
 
1639
1665
  /**
1640
1666
  * Status shall be one of the following values:
@@ -1650,7 +1676,7 @@ export namespace DoorLock {
1650
1676
  * If this field is SUCCESS, the optional fields for this command shall be present. For other (error) status
1651
1677
  * values, only the fields up to the status field shall be present.
1652
1678
  *
1653
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20.3
1679
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18.3
1654
1680
  */
1655
1681
  status: TlvField(2, TlvEnum<Status>()),
1656
1682
 
@@ -1659,7 +1685,7 @@ export namespace DoorLock {
1659
1685
  * time offset based on the local timezone and DST offset on the day represented by the value. This shall be
1660
1686
  * null if the schedule is not set for the YearDayIndex and UserIndex provided.
1661
1687
  *
1662
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20.4
1688
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18.4
1663
1689
  */
1664
1690
  localStartTime: TlvOptionalField(2, TlvEpochS),
1665
1691
 
@@ -1669,7 +1695,7 @@ export namespace DoorLock {
1669
1695
  * greater than LocalStartTime. This shall be null if the schedule is not set for the YearDayIndex and
1670
1696
  * UserIndex provided.
1671
1697
  *
1672
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20.5
1698
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18.5
1673
1699
  */
1674
1700
  localEndTime: TlvOptionalField(3, TlvEpochS)
1675
1701
  });
@@ -1677,33 +1703,36 @@ export namespace DoorLock {
1677
1703
  /**
1678
1704
  * Returns the year day schedule data for the specified schedule and user indexes.
1679
1705
  *
1680
- * The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead, respectively.
1681
- *
1682
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20
1706
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18
1683
1707
  */
1684
1708
  export interface GetYearDayScheduleResponse extends TypeFromSchema<typeof TlvGetYearDayScheduleResponse> {}
1685
1709
 
1686
1710
  /**
1687
1711
  * Input to the DoorLock clearYearDaySchedule command
1688
1712
  *
1689
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.21
1713
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.19
1690
1714
  */
1691
1715
  export const TlvClearYearDayScheduleRequest = TlvObject({
1692
1716
  /**
1693
1717
  * This field shall indicate the Year Day schedule index to clear or 0xFE to clear all Year Day schedules for
1694
1718
  * the specified user.
1695
1719
  *
1696
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.21.1
1720
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.19.1
1697
1721
  */
1698
1722
  yearDayIndex: TlvField(0, TlvUInt8),
1699
1723
 
1700
- userIndexUserId: TlvField(1, TlvUInt16.bound({ min: 1 }))
1724
+ /**
1725
+ * This field shall indicate the user ID.
1726
+ *
1727
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.19.2
1728
+ */
1729
+ userIndex: TlvField(1, TlvUInt16.bound({ min: 1 }))
1701
1730
  });
1702
1731
 
1703
1732
  /**
1704
1733
  * Input to the DoorLock clearYearDaySchedule command
1705
1734
  *
1706
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.21
1735
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.19
1707
1736
  */
1708
1737
  export interface ClearYearDayScheduleRequest extends TypeFromSchema<typeof TlvClearYearDayScheduleRequest> {}
1709
1738
 
@@ -1721,20 +1750,20 @@ export namespace DoorLock {
1721
1750
  * door lock shall NOT disable the radio or otherwise unbind or leave the network. It shall still respond to all
1722
1751
  * other commands and requests.
1723
1752
  *
1724
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.16
1753
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.15
1725
1754
  */
1726
1755
  export enum OperatingMode {
1727
1756
  /**
1728
1757
  * The lock operates normally. All interfaces are enabled.
1729
1758
  *
1730
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.16.1
1759
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.15.1
1731
1760
  */
1732
1761
  Normal = 0,
1733
1762
 
1734
1763
  /**
1735
1764
  * Only remote interaction is enabled. The keypad shall only be operable by the master user.
1736
1765
  *
1737
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.16.2
1766
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.15.2
1738
1767
  */
1739
1768
  Vacation = 1,
1740
1769
 
@@ -1743,7 +1772,7 @@ export namespace DoorLock {
1743
1772
  * mode. All external interaction with the door lock is disabled. This mode is intended to be used so that
1744
1773
  * users, presumably inside the property, will have control over the entrance.
1745
1774
  *
1746
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.16.3
1775
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.15.3
1747
1776
  */
1748
1777
  Privacy = 2,
1749
1778
 
@@ -1752,7 +1781,7 @@ export namespace DoorLock {
1752
1781
  * means of communication. It specifically applies to the Lock, Unlock, Toggle, and Unlock with Timeout
1753
1782
  * Commands.
1754
1783
  *
1755
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.16.4
1784
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.15.4
1756
1785
  */
1757
1786
  NoRemoteLockUnlock = 3,
1758
1787
 
@@ -1760,7 +1789,7 @@ export namespace DoorLock {
1760
1789
  * The lock is open or can be opened or closed at will without the use of a Keypad or other means of user
1761
1790
  * validation (e.g. a lock for a business during work hours).
1762
1791
  *
1763
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.16.5
1792
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.15.5
1764
1793
  */
1765
1794
  Passage = 4
1766
1795
  }
@@ -1768,13 +1797,13 @@ export namespace DoorLock {
1768
1797
  /**
1769
1798
  * Input to the DoorLock setHolidaySchedule command
1770
1799
  *
1771
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22
1800
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20
1772
1801
  */
1773
1802
  export const TlvSetHolidayScheduleRequest = TlvObject({
1774
1803
  /**
1775
1804
  * This field shall indicate the index of the Holiday schedule.
1776
1805
  *
1777
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22.1
1806
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20.1
1778
1807
  */
1779
1808
  holidayIndex: TlvField(0, TlvUInt8.bound({ min: 1 })),
1780
1809
 
@@ -1782,7 +1811,7 @@ export namespace DoorLock {
1782
1811
  * This field shall indicate the starting time for the Holiday Day schedule in Epoch Time in Seconds with local
1783
1812
  * time offset based on the local timezone and DST offset on the day represented by the value.
1784
1813
  *
1785
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22.2
1814
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20.2
1786
1815
  */
1787
1816
  localStartTime: TlvField(1, TlvEpochS),
1788
1817
 
@@ -1791,14 +1820,14 @@ export namespace DoorLock {
1791
1820
  * time offset based on the local timezone and DST offset on the day represented by the value. LocalEndTime
1792
1821
  * shall be greater than LocalStartTime.
1793
1822
  *
1794
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22.3
1823
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20.3
1795
1824
  */
1796
1825
  localEndTime: TlvField(2, TlvEpochS),
1797
1826
 
1798
1827
  /**
1799
1828
  * This field shall indicate the operating mode to use during this Holiday schedule start/end time.
1800
1829
  *
1801
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22.4
1830
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20.4
1802
1831
  */
1803
1832
  operatingMode: TlvField(3, TlvEnum<OperatingMode>())
1804
1833
  });
@@ -1806,36 +1835,34 @@ export namespace DoorLock {
1806
1835
  /**
1807
1836
  * Input to the DoorLock setHolidaySchedule command
1808
1837
  *
1809
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22
1838
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20
1810
1839
  */
1811
1840
  export interface SetHolidayScheduleRequest extends TypeFromSchema<typeof TlvSetHolidayScheduleRequest> {}
1812
1841
 
1813
1842
  /**
1814
1843
  * Input to the DoorLock getHolidaySchedule command
1815
1844
  *
1816
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.23
1845
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.21
1817
1846
  */
1818
1847
  export const TlvGetHolidayScheduleRequest = TlvObject({ holidayIndex: TlvField(0, TlvUInt8.bound({ min: 1 })) });
1819
1848
 
1820
1849
  /**
1821
1850
  * Input to the DoorLock getHolidaySchedule command
1822
1851
  *
1823
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.23
1852
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.21
1824
1853
  */
1825
1854
  export interface GetHolidayScheduleRequest extends TypeFromSchema<typeof TlvGetHolidayScheduleRequest> {}
1826
1855
 
1827
1856
  /**
1828
1857
  * Returns the Holiday Schedule Entry for the specified Holiday ID.
1829
1858
  *
1830
- * The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead.
1831
- *
1832
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.24
1859
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22
1833
1860
  */
1834
1861
  export const TlvGetHolidayScheduleResponse = TlvObject({
1835
1862
  /**
1836
1863
  * This field shall indicate the index of the Holiday schedule.
1837
1864
  *
1838
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.24.1
1865
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22.1
1839
1866
  */
1840
1867
  holidayIndex: TlvField(0, TlvUInt8.bound({ min: 1 })),
1841
1868
 
@@ -1854,7 +1881,7 @@ export namespace DoorLock {
1854
1881
  * If this field is SUCCESS, the optional fields for this command shall be present. For other (error) status
1855
1882
  * values, only the fields up to the status field shall be present.
1856
1883
  *
1857
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.24.2
1884
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22.2
1858
1885
  */
1859
1886
  status: TlvField(1, TlvEnum<Status>()),
1860
1887
 
@@ -1863,7 +1890,7 @@ export namespace DoorLock {
1863
1890
  * time offset based on the local timezone and DST offset on the day represented by the value. This shall be
1864
1891
  * null if the schedule is not set for the HolidayIndex provided.
1865
1892
  *
1866
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.24.3
1893
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22.3
1867
1894
  */
1868
1895
  localStartTime: TlvOptionalField(2, TlvNullable(TlvEpochS)),
1869
1896
 
@@ -1872,7 +1899,7 @@ export namespace DoorLock {
1872
1899
  * offset based on the local timezone and DST offset on the day represented by the value. LocalEndTime shall be
1873
1900
  * greater than LocalStartTime. This shall be null if the schedule is not set for the HolidayIndex provided.
1874
1901
  *
1875
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.24.4
1902
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22.4
1876
1903
  */
1877
1904
  localEndTime: TlvOptionalField(3, TlvNullable(TlvEpochS)),
1878
1905
 
@@ -1880,7 +1907,7 @@ export namespace DoorLock {
1880
1907
  * This field shall indicate the operating mode to use during this Holiday schedule start/end time. This shall
1881
1908
  * be null if the schedule is not set for the HolidayIndex provided.
1882
1909
  *
1883
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.24.5
1910
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22.5
1884
1911
  */
1885
1912
  operatingMode: TlvOptionalField(4, TlvNullable(TlvEnum<OperatingMode>()))
1886
1913
  });
@@ -1888,22 +1915,20 @@ export namespace DoorLock {
1888
1915
  /**
1889
1916
  * Returns the Holiday Schedule Entry for the specified Holiday ID.
1890
1917
  *
1891
- * The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead.
1892
- *
1893
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.24
1918
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22
1894
1919
  */
1895
1920
  export interface GetHolidayScheduleResponse extends TypeFromSchema<typeof TlvGetHolidayScheduleResponse> {}
1896
1921
 
1897
1922
  /**
1898
1923
  * Input to the DoorLock clearHolidaySchedule command
1899
1924
  *
1900
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.25
1925
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.23
1901
1926
  */
1902
1927
  export const TlvClearHolidayScheduleRequest = TlvObject({
1903
1928
  /**
1904
1929
  * This field shall indicate the Holiday schedule index to clear or 0xFE to clear all Holiday schedules.
1905
1930
  *
1906
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.25.1
1931
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.23.1
1907
1932
  */
1908
1933
  holidayIndex: TlvField(0, TlvUInt8)
1909
1934
  });
@@ -1911,21 +1936,21 @@ export namespace DoorLock {
1911
1936
  /**
1912
1937
  * Input to the DoorLock clearHolidaySchedule command
1913
1938
  *
1914
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.25
1939
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.23
1915
1940
  */
1916
1941
  export interface ClearHolidayScheduleRequest extends TypeFromSchema<typeof TlvClearHolidayScheduleRequest> {}
1917
1942
 
1918
1943
  /**
1919
1944
  * Input to the DoorLock setPinCode command
1920
1945
  *
1921
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.6
1946
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.4
1922
1947
  */
1923
1948
  export const TlvSetPinCodeRequest = TlvObject({
1924
1949
  /**
1925
1950
  * This field shall indicate the user ID. The value of the UserID field shall be between 0 and the value of the
1926
1951
  * NumberOfPINUsersSupported attribute.
1927
1952
  *
1928
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.6.1
1953
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.4.1
1929
1954
  */
1930
1955
  userId: TlvField(0, TlvUInt16),
1931
1956
 
@@ -1933,7 +1958,7 @@ export namespace DoorLock {
1933
1958
  * This field shall indicate the user status. Only the values 1 (Occupied/Enabled) and 3 (Occupied/Disabled)
1934
1959
  * are allowed for UserStatus.
1935
1960
  *
1936
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.6.2
1961
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.4.2
1937
1962
  */
1938
1963
  userStatus: TlvField(1, TlvNullable(TlvEnum<UserStatus>())),
1939
1964
 
@@ -1944,21 +1969,21 @@ export namespace DoorLock {
1944
1969
  /**
1945
1970
  * Input to the DoorLock setPinCode command
1946
1971
  *
1947
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.6
1972
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.4
1948
1973
  */
1949
1974
  export interface SetPinCodeRequest extends TypeFromSchema<typeof TlvSetPinCodeRequest> {}
1950
1975
 
1951
1976
  /**
1952
1977
  * Input to the DoorLock getPinCode command
1953
1978
  *
1954
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.7
1979
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5
1955
1980
  */
1956
1981
  export const TlvGetPinCodeRequest = TlvObject({
1957
1982
  /**
1958
1983
  * This field shall indicate the user ID. The value of the UserID field shall be between 0 and the value of the
1959
1984
  * NumberOfPINUsersSupported attribute.
1960
1985
  *
1961
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.7.1
1986
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5.1
1962
1987
  */
1963
1988
  userId: TlvField(0, TlvUInt16)
1964
1989
  });
@@ -1966,7 +1991,7 @@ export namespace DoorLock {
1966
1991
  /**
1967
1992
  * Input to the DoorLock getPinCode command
1968
1993
  *
1969
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.7
1994
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5
1970
1995
  */
1971
1996
  export interface GetPinCodeRequest extends TypeFromSchema<typeof TlvGetPinCodeRequest> {}
1972
1997
 
@@ -1982,427 +2007,107 @@ export namespace DoorLock {
1982
2007
  * to CONSTRAINT_ERROR when User_ID is less than the max number of users supported, and NOT_FOUND if greater than
1983
2008
  * or equal to the max number of users supported.
1984
2009
  *
1985
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.8
2010
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.6
1986
2011
  */
1987
2012
  export const TlvGetPinCodeResponse = TlvObject({
1988
- userId: TlvField(0, TlvUInt16),
1989
- userStatus: TlvField(1, TlvNullable(TlvEnum<UserStatus>())),
1990
- userType: TlvField(2, TlvNullable(TlvEnum<UserType>())),
1991
- pinCode: TlvField(3, TlvNullable(TlvByteString))
1992
- });
1993
-
1994
- /**
1995
- * Returns the PIN for the specified user ID.
1996
- *
1997
- * If the requested UserID is valid and the Code doesn’t exist, Get RFID Code Response shall have the following
1998
- * format:
1999
- *
2000
- * UserID = requested User ID UserStatus = 0 (Available) UserType = Null (Not supported) PINCode = 0 (zero length)
2001
- *
2002
- * If the requested UserID is invalid, send Default Response with an error status. The error status shall be equal
2003
- * to CONSTRAINT_ERROR when User_ID is less than the max number of users supported, and NOT_FOUND if greater than
2004
- * or equal to the max number of users supported.
2005
- *
2006
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.8
2007
- */
2008
- export interface GetPinCodeResponse extends TypeFromSchema<typeof TlvGetPinCodeResponse> {}
2009
-
2010
- /**
2011
- * Input to the DoorLock clearPinCode command
2012
- *
2013
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.9
2014
- */
2015
- export const TlvClearPinCodeRequest = TlvObject({
2016
- /**
2017
- * This field shall specify a valid PIN code slot index or 0xFFFE to indicate all PIN code slots shall be
2018
- * cleared.
2019
- *
2020
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.9.1
2021
- */
2022
- pinSlotIndex: TlvField(0, TlvUInt16)
2023
- });
2024
-
2025
- /**
2026
- * Input to the DoorLock clearPinCode command
2027
- *
2028
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.9
2029
- */
2030
- export interface ClearPinCodeRequest extends TypeFromSchema<typeof TlvClearPinCodeRequest> {}
2031
-
2032
- /**
2033
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.7
2034
- */
2035
- export const EventMask = {
2036
- /**
2037
- * State of bit 0
2038
- */
2039
- bit0: BitFlag(0),
2040
-
2041
- /**
2042
- * State of bit 1
2043
- */
2044
- bit1: BitFlag(1),
2045
-
2046
- /**
2047
- * State of bit 2
2048
- */
2049
- bit2: BitFlag(2),
2050
-
2051
- /**
2052
- * State of bit 3
2053
- */
2054
- bit3: BitFlag(3),
2055
-
2056
- /**
2057
- * State of bit 4
2058
- */
2059
- bit4: BitFlag(4),
2060
-
2061
- /**
2062
- * State of bit 5
2063
- */
2064
- bit5: BitFlag(5),
2065
-
2066
- /**
2067
- * State of bit 6
2068
- */
2069
- bit6: BitFlag(6),
2070
-
2071
- /**
2072
- * State of bit 7
2073
- */
2074
- bit7: BitFlag(7),
2075
-
2076
- /**
2077
- * State of bit 8
2078
- */
2079
- bit8: BitFlag(8),
2080
-
2081
- /**
2082
- * State of bit 9
2083
- */
2084
- bit9: BitFlag(9),
2085
-
2086
- /**
2087
- * State of bit 10
2088
- */
2089
- bit10: BitFlag(10),
2090
-
2091
- /**
2092
- * State of bit 11
2093
- */
2094
- bit11: BitFlag(11),
2095
-
2096
- /**
2097
- * State of bit 12
2098
- */
2099
- bit12: BitFlag(12),
2100
-
2101
- /**
2102
- * State of bit 13
2103
- */
2104
- bit13: BitFlag(13),
2105
-
2106
- /**
2107
- * State of bit 14
2108
- */
2109
- bit14: BitFlag(14),
2110
-
2111
- /**
2112
- * State of bit 15
2113
- */
2114
- bit15: BitFlag(15)
2115
- };
2116
-
2117
- /**
2118
- * The value of the DoorLock keypadProgrammingEventMask attribute
2119
- *
2120
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.45
2121
- */
2122
- export const KeypadProgrammingEventMask = {
2123
- unknown: BitFlag(0),
2124
- pinCodeChanged: BitFlag(1),
2125
- pinAdded: BitFlag(2),
2126
- pinCleared: BitFlag(3),
2127
- pinChanged: BitFlag(4),
2128
-
2129
- /**
2130
- * State of bit 0
2131
- */
2132
- bit0: BitFlag(0),
2133
-
2134
- /**
2135
- * State of bit 1
2136
- */
2137
- bit1: BitFlag(1),
2138
-
2139
- /**
2140
- * State of bit 2
2141
- */
2142
- bit2: BitFlag(2),
2143
-
2144
- /**
2145
- * State of bit 3
2146
- */
2147
- bit3: BitFlag(3),
2148
-
2149
- /**
2150
- * State of bit 4
2151
- */
2152
- bit4: BitFlag(4),
2153
-
2154
- /**
2155
- * State of bit 5
2156
- */
2157
- bit5: BitFlag(5),
2158
-
2159
- /**
2160
- * State of bit 6
2161
- */
2162
- bit6: BitFlag(6),
2163
-
2164
- /**
2165
- * State of bit 7
2166
- */
2167
- bit7: BitFlag(7),
2168
-
2169
- /**
2170
- * State of bit 8
2171
- */
2172
- bit8: BitFlag(8),
2173
-
2174
- /**
2175
- * State of bit 9
2176
- */
2177
- bit9: BitFlag(9),
2178
-
2179
- /**
2180
- * State of bit 10
2181
- */
2182
- bit10: BitFlag(10),
2183
-
2184
- /**
2185
- * State of bit 11
2186
- */
2187
- bit11: BitFlag(11),
2188
-
2189
- /**
2190
- * State of bit 12
2191
- */
2192
- bit12: BitFlag(12),
2193
-
2194
- /**
2195
- * State of bit 13
2196
- */
2197
- bit13: BitFlag(13),
2198
-
2199
- /**
2200
- * State of bit 14
2201
- */
2202
- bit14: BitFlag(14),
2203
-
2204
- /**
2205
- * State of bit 15
2206
- */
2207
- bit15: BitFlag(15)
2208
- };
2209
-
2210
- /**
2211
- * The value of the DoorLock remoteProgrammingEventMask attribute
2212
- *
2213
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.46
2214
- */
2215
- export const RemoteProgrammingEventMask = {
2216
- unknown: BitFlag(0),
2217
- pinAdded: BitFlag(2),
2218
- pinCleared: BitFlag(3),
2219
- pinChanged: BitFlag(4),
2220
- rfidCodeAdded: BitFlag(5),
2221
- rfidCodeCleared: BitFlag(6),
2222
-
2223
- /**
2224
- * State of bit 0
2225
- */
2226
- bit0: BitFlag(0),
2227
-
2228
- /**
2229
- * State of bit 1
2230
- */
2231
- bit1: BitFlag(1),
2232
-
2233
- /**
2234
- * State of bit 2
2235
- */
2236
- bit2: BitFlag(2),
2237
-
2238
- /**
2239
- * State of bit 3
2240
- */
2241
- bit3: BitFlag(3),
2242
-
2243
- /**
2244
- * State of bit 4
2245
- */
2246
- bit4: BitFlag(4),
2247
-
2248
- /**
2249
- * State of bit 5
2250
- */
2251
- bit5: BitFlag(5),
2252
-
2253
- /**
2254
- * State of bit 6
2255
- */
2256
- bit6: BitFlag(6),
2257
-
2258
- /**
2259
- * State of bit 7
2260
- */
2261
- bit7: BitFlag(7),
2262
-
2263
- /**
2264
- * State of bit 8
2265
- */
2266
- bit8: BitFlag(8),
2267
-
2268
- /**
2269
- * State of bit 9
2270
- */
2271
- bit9: BitFlag(9),
2272
-
2273
- /**
2274
- * State of bit 10
2275
- */
2276
- bit10: BitFlag(10),
2277
-
2278
- /**
2279
- * State of bit 11
2280
- */
2281
- bit11: BitFlag(11),
2282
-
2283
- /**
2284
- * State of bit 12
2285
- */
2286
- bit12: BitFlag(12),
2287
-
2288
- /**
2289
- * State of bit 13
2290
- */
2291
- bit13: BitFlag(13),
2292
-
2293
- /**
2294
- * State of bit 14
2295
- */
2296
- bit14: BitFlag(14),
2297
-
2298
- /**
2299
- * State of bit 15
2300
- */
2301
- bit15: BitFlag(15)
2302
- };
2013
+ userId: TlvField(0, TlvUInt16),
2014
+ userStatus: TlvField(1, TlvNullable(TlvEnum<UserStatus>())),
2015
+ userType: TlvField(2, TlvNullable(TlvEnum<UserType>())),
2016
+ pinCode: TlvField(3, TlvNullable(TlvByteString))
2017
+ });
2303
2018
 
2304
2019
  /**
2305
- * The value of the DoorLock rfidProgrammingEventMask attribute
2020
+ * Returns the PIN for the specified user ID.
2021
+ *
2022
+ * If the requested UserID is valid and the Code doesn’t exist, Get RFID Code Response shall have the following
2023
+ * format:
2024
+ *
2025
+ * UserID = requested User ID UserStatus = 0 (Available) UserType = Null (Not supported) PINCode = 0 (zero length)
2026
+ *
2027
+ * If the requested UserID is invalid, send Default Response with an error status. The error status shall be equal
2028
+ * to CONSTRAINT_ERROR when User_ID is less than the max number of users supported, and NOT_FOUND if greater than
2029
+ * or equal to the max number of users supported.
2306
2030
  *
2307
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.47
2031
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.6
2308
2032
  */
2309
- export const RfidProgrammingEventMask = {
2310
- unknown: BitFlag(0),
2311
- idAdded: BitFlag(5),
2312
- idCleared: BitFlag(6),
2313
-
2314
- /**
2315
- * State of bit 0
2316
- */
2317
- bit0: BitFlag(0),
2318
-
2319
- /**
2320
- * State of bit 1
2321
- */
2322
- bit1: BitFlag(1),
2323
-
2324
- /**
2325
- * State of bit 2
2326
- */
2327
- bit2: BitFlag(2),
2328
-
2329
- /**
2330
- * State of bit 3
2331
- */
2332
- bit3: BitFlag(3),
2333
-
2334
- /**
2335
- * State of bit 4
2336
- */
2337
- bit4: BitFlag(4),
2338
-
2339
- /**
2340
- * State of bit 5
2341
- */
2342
- bit5: BitFlag(5),
2343
-
2344
- /**
2345
- * State of bit 6
2346
- */
2347
- bit6: BitFlag(6),
2348
-
2349
- /**
2350
- * State of bit 7
2351
- */
2352
- bit7: BitFlag(7),
2353
-
2354
- /**
2355
- * State of bit 8
2356
- */
2357
- bit8: BitFlag(8),
2033
+ export interface GetPinCodeResponse extends TypeFromSchema<typeof TlvGetPinCodeResponse> {}
2358
2034
 
2035
+ /**
2036
+ * Input to the DoorLock clearPinCode command
2037
+ *
2038
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.7
2039
+ */
2040
+ export const TlvClearPinCodeRequest = TlvObject({
2359
2041
  /**
2360
- * State of bit 9
2042
+ * This field shall specify a valid PIN code slot index or 0xFFFE to indicate all PIN code slots shall be
2043
+ * cleared.
2044
+ *
2045
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.7.1
2361
2046
  */
2362
- bit9: BitFlag(9),
2047
+ pinSlotIndex: TlvField(0, TlvUInt16)
2048
+ });
2363
2049
 
2364
- /**
2365
- * State of bit 10
2366
- */
2367
- bit10: BitFlag(10),
2050
+ /**
2051
+ * Input to the DoorLock clearPinCode command
2052
+ *
2053
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.7
2054
+ */
2055
+ export interface ClearPinCodeRequest extends TypeFromSchema<typeof TlvClearPinCodeRequest> {}
2368
2056
 
2057
+ /**
2058
+ * Input to the DoorLock setAliroReaderConfig command
2059
+ *
2060
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.42
2061
+ */
2062
+ export const TlvSetAliroReaderConfigRequest = TlvObject({
2369
2063
  /**
2370
- * State of bit 11
2064
+ * This field shall indicate the signing key component of the Reader’s key pair.
2065
+ *
2066
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.42.1
2371
2067
  */
2372
- bit11: BitFlag(11),
2068
+ signingKey: TlvField(0, TlvByteString.bound({ length: 32 })),
2373
2069
 
2374
2070
  /**
2375
- * State of bit 12
2071
+ * This field shall indicate the verification key component of the Reader’s key pair. This shall be an
2072
+ * uncompressed elliptic curve public key as defined in section 2.3.3 of SEC 1.
2073
+ *
2074
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.42.2
2376
2075
  */
2377
- bit12: BitFlag(12),
2076
+ verificationKey: TlvField(1, TlvByteString.bound({ length: 65 })),
2378
2077
 
2379
2078
  /**
2380
- * State of bit 13
2079
+ * This field shall indicate the reader group identifier for the lock.
2080
+ *
2081
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.42.3
2381
2082
  */
2382
- bit13: BitFlag(13),
2083
+ groupIdentifier: TlvField(2, TlvByteString.bound({ length: 16 })),
2383
2084
 
2384
2085
  /**
2385
- * State of bit 14
2086
+ * This field shall indicate the group resolving key for the lock.
2087
+ *
2088
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.42.4
2386
2089
  */
2387
- bit14: BitFlag(14),
2090
+ groupResolvingKey: TlvOptionalField(3, TlvByteString.bound({ length: 16 }))
2091
+ });
2388
2092
 
2389
- /**
2390
- * State of bit 15
2391
- */
2392
- bit15: BitFlag(15)
2393
- };
2093
+ /**
2094
+ * Input to the DoorLock setAliroReaderConfig command
2095
+ *
2096
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.42
2097
+ */
2098
+ export interface SetAliroReaderConfigRequest extends TypeFromSchema<typeof TlvSetAliroReaderConfigRequest> {}
2394
2099
 
2395
2100
  /**
2396
2101
  * Input to the DoorLock setUserStatus command
2397
2102
  *
2398
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.11
2103
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.9
2399
2104
  */
2400
2105
  export const TlvSetUserStatusRequest = TlvObject({
2401
2106
  /**
2402
2107
  * This field shall indicate the user ID. The value of the UserID field shall be between 0 and the value of the
2403
2108
  * NumberOfPINUsersSupported attribute.
2404
2109
  *
2405
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.11.1
2110
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.9.1
2406
2111
  */
2407
2112
  userId: TlvField(0, TlvUInt16),
2408
2113
 
@@ -2410,7 +2115,7 @@ export namespace DoorLock {
2410
2115
  * UserStatus value of Available is not allowed. In order to clear a user id, the ClearUser Command shall be
2411
2116
  * used. For user status value please refer to UserStatusEnum.
2412
2117
  *
2413
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.11.2
2118
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.9.2
2414
2119
  */
2415
2120
  userStatus: TlvField(1, TlvEnum<UserStatus>())
2416
2121
  });
@@ -2418,21 +2123,21 @@ export namespace DoorLock {
2418
2123
  /**
2419
2124
  * Input to the DoorLock setUserStatus command
2420
2125
  *
2421
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.11
2126
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.9
2422
2127
  */
2423
2128
  export interface SetUserStatusRequest extends TypeFromSchema<typeof TlvSetUserStatusRequest> {}
2424
2129
 
2425
2130
  /**
2426
2131
  * Input to the DoorLock getUserStatus command
2427
2132
  *
2428
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12
2133
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.10
2429
2134
  */
2430
2135
  export const TlvGetUserStatusRequest = TlvObject({
2431
2136
  /**
2432
2137
  * This field shall indicate the user ID. The value of the UserID field shall be between 0 and the value of the
2433
2138
  * NumberOfPINUsersSupported attribute.
2434
2139
  *
2435
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12.1
2140
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.10.1
2436
2141
  */
2437
2142
  userId: TlvField(0, TlvUInt16)
2438
2143
  });
@@ -2440,27 +2145,27 @@ export namespace DoorLock {
2440
2145
  /**
2441
2146
  * Input to the DoorLock getUserStatus command
2442
2147
  *
2443
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12
2148
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.10
2444
2149
  */
2445
2150
  export interface GetUserStatusRequest extends TypeFromSchema<typeof TlvGetUserStatusRequest> {}
2446
2151
 
2447
2152
  /**
2448
2153
  * Returns the user status for the specified user ID.
2449
2154
  *
2450
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.13
2155
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.11
2451
2156
  */
2452
2157
  export const TlvGetUserStatusResponse = TlvObject({
2453
2158
  /**
2454
2159
  * This field shall indicate the user ID provided in the request.
2455
2160
  *
2456
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.13.1
2161
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.11.1
2457
2162
  */
2458
2163
  userId: TlvField(0, TlvUInt16),
2459
2164
 
2460
2165
  /**
2461
2166
  * This field shall indicate the current status of the requested user ID.
2462
2167
  *
2463
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.13.2
2168
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.11.2
2464
2169
  */
2465
2170
  userStatus: TlvField(1, TlvEnum<UserStatus>())
2466
2171
  });
@@ -2468,33 +2173,27 @@ export namespace DoorLock {
2468
2173
  /**
2469
2174
  * Returns the user status for the specified user ID.
2470
2175
  *
2471
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.13
2176
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.11
2472
2177
  */
2473
2178
  export interface GetUserStatusResponse extends TypeFromSchema<typeof TlvGetUserStatusResponse> {}
2474
2179
 
2475
2180
  /**
2476
2181
  * Input to the DoorLock setUserType command
2477
2182
  *
2478
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.26
2183
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.24
2479
2184
  */
2480
2185
  export const TlvSetUserTypeRequest = TlvObject({
2481
2186
  /**
2482
2187
  * This field shall indicate the user ID.
2483
2188
  *
2484
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.26.1
2189
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.24.1
2485
2190
  */
2486
2191
  userId: TlvField(0, TlvUInt16),
2487
2192
 
2488
2193
  /**
2489
2194
  * This field shall indicate the user type.
2490
2195
  *
2491
- * If UserType is currently YearDayScheduleUser, WeekDayScheduleUser, or ScheduleRestrictedUser and the new
2492
- * UserType is UnrestrictedUser then all existing Year Day and/or Week Day schedules shall be ignored or
2493
- * disabled (if this transition is supported by the door lock). If UserType is ScheduleRestrictedUser and the
2494
- * new UserType is ScheduleRestrictedUser then all existing Year Day and/or Week Day schedules shall be applied
2495
- * or enabled.
2496
- *
2497
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.26.2
2196
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.24.2
2498
2197
  */
2499
2198
  userType: TlvField(1, TlvEnum<UserType>())
2500
2199
  });
@@ -2502,21 +2201,21 @@ export namespace DoorLock {
2502
2201
  /**
2503
2202
  * Input to the DoorLock setUserType command
2504
2203
  *
2505
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.26
2204
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.24
2506
2205
  */
2507
2206
  export interface SetUserTypeRequest extends TypeFromSchema<typeof TlvSetUserTypeRequest> {}
2508
2207
 
2509
2208
  /**
2510
2209
  * Input to the DoorLock getUserType command
2511
2210
  *
2512
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.27
2211
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.25
2513
2212
  */
2514
2213
  export const TlvGetUserTypeRequest = TlvObject({ userId: TlvField(0, TlvUInt16) });
2515
2214
 
2516
2215
  /**
2517
2216
  * Input to the DoorLock getUserType command
2518
2217
  *
2519
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.27
2218
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.25
2520
2219
  */
2521
2220
  export interface GetUserTypeRequest extends TypeFromSchema<typeof TlvGetUserTypeRequest> {}
2522
2221
 
@@ -2524,7 +2223,7 @@ export namespace DoorLock {
2524
2223
  * Returns the user type for the specified user ID. If the requested User ID is invalid, send Default Response with
2525
2224
  * an error status equal to FAILURE.
2526
2225
  *
2527
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.28
2226
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.26
2528
2227
  */
2529
2228
  export const TlvGetUserTypeResponse = TlvObject({
2530
2229
  userId: TlvField(0, TlvUInt16),
@@ -2535,14 +2234,14 @@ export namespace DoorLock {
2535
2234
  * Returns the user type for the specified user ID. If the requested User ID is invalid, send Default Response with
2536
2235
  * an error status equal to FAILURE.
2537
2236
  *
2538
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.28
2237
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.26
2539
2238
  */
2540
2239
  export interface GetUserTypeResponse extends TypeFromSchema<typeof TlvGetUserTypeResponse> {}
2541
2240
 
2542
2241
  /**
2543
2242
  * Input to the DoorLock setRfidCode command
2544
2243
  *
2545
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.29
2244
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.27
2546
2245
  */
2547
2246
  export const TlvSetRfidCodeRequest = TlvObject({
2548
2247
  /**
@@ -2550,7 +2249,7 @@ export namespace DoorLock {
2550
2249
  *
2551
2250
  * The value of the UserID field shall be between 0 and the value of the NumberOfRFIDUsersSupported attribute.
2552
2251
  *
2553
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.29.1
2252
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.27.1
2554
2253
  */
2555
2254
  userId: TlvField(0, TlvUInt16),
2556
2255
 
@@ -2560,14 +2259,14 @@ export namespace DoorLock {
2560
2259
  *
2561
2260
  * Only the values 1 (Occupied/Enabled) and 3 (Occupied/Disabled) are allowed for UserStatus.
2562
2261
  *
2563
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.29.2
2262
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.27.2
2564
2263
  */
2565
2264
  userStatus: TlvField(1, TlvNullable(TlvEnum<UserStatus>())),
2566
2265
 
2567
2266
  /**
2568
2267
  * The values are the same as used for SetPINCode command.
2569
2268
  *
2570
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.29.3
2269
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.27.3
2571
2270
  */
2572
2271
  userType: TlvField(2, TlvNullable(TlvEnum<UserType>())),
2573
2272
 
@@ -2577,14 +2276,14 @@ export namespace DoorLock {
2577
2276
  /**
2578
2277
  * Input to the DoorLock setRfidCode command
2579
2278
  *
2580
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.29
2279
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.27
2581
2280
  */
2582
2281
  export interface SetRfidCodeRequest extends TypeFromSchema<typeof TlvSetRfidCodeRequest> {}
2583
2282
 
2584
2283
  /**
2585
2284
  * Input to the DoorLock getRfidCode command
2586
2285
  *
2587
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.30
2286
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.28
2588
2287
  */
2589
2288
  export const TlvGetRfidCodeRequest = TlvObject({
2590
2289
  /**
@@ -2592,7 +2291,7 @@ export namespace DoorLock {
2592
2291
  *
2593
2292
  * The value of the UserID field shall be between 0 and the value of the NumberOfRFIDUsersSupported attribute.
2594
2293
  *
2595
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.30.1
2294
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.28.1
2596
2295
  */
2597
2296
  userId: TlvField(0, TlvUInt16)
2598
2297
  });
@@ -2600,7 +2299,7 @@ export namespace DoorLock {
2600
2299
  /**
2601
2300
  * Input to the DoorLock getRfidCode command
2602
2301
  *
2603
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.30
2302
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.28
2604
2303
  */
2605
2304
  export interface GetRfidCodeRequest extends TypeFromSchema<typeof TlvGetRfidCodeRequest> {}
2606
2305
 
@@ -2617,7 +2316,7 @@ export namespace DoorLock {
2617
2316
  * CONSTRAINT_ERROR when User_ID is less than the max number of users supported, and NOT_FOUND if greater than or
2618
2317
  * equal to the max number of users supported.
2619
2318
  *
2620
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.31
2319
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.29
2621
2320
  */
2622
2321
  export const TlvGetRfidCodeResponse = TlvObject({
2623
2322
  userId: TlvField(0, TlvUInt16),
@@ -2639,21 +2338,21 @@ export namespace DoorLock {
2639
2338
  * CONSTRAINT_ERROR when User_ID is less than the max number of users supported, and NOT_FOUND if greater than or
2640
2339
  * equal to the max number of users supported.
2641
2340
  *
2642
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.31
2341
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.29
2643
2342
  */
2644
2343
  export interface GetRfidCodeResponse extends TypeFromSchema<typeof TlvGetRfidCodeResponse> {}
2645
2344
 
2646
2345
  /**
2647
2346
  * Input to the DoorLock clearRfidCode command
2648
2347
  *
2649
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32
2348
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.30
2650
2349
  */
2651
2350
  export const TlvClearRfidCodeRequest = TlvObject({
2652
2351
  /**
2653
2352
  * This field shall indicate a valid RFID code slot index or 0xFFFE to indicate all RFID code slots shall be
2654
2353
  * cleared.
2655
2354
  *
2656
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32.1
2355
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.30.1
2657
2356
  */
2658
2357
  rfidSlotIndex: TlvField(0, TlvUInt16)
2659
2358
  });
@@ -2661,20 +2360,20 @@ export namespace DoorLock {
2661
2360
  /**
2662
2361
  * Input to the DoorLock clearRfidCode command
2663
2362
  *
2664
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32
2363
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.30
2665
2364
  */
2666
2365
  export interface ClearRfidCodeRequest extends TypeFromSchema<typeof TlvClearRfidCodeRequest> {}
2667
2366
 
2668
2367
  /**
2669
2368
  * Input to the DoorLock unboltDoor command
2670
2369
  *
2671
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.45
2370
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.41
2672
2371
  */
2673
2372
  export const TlvUnboltDoorRequest = TlvObject({
2674
2373
  /**
2675
2374
  * See PINCode field.
2676
2375
  *
2677
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.45.1
2376
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.41.1
2678
2377
  */
2679
2378
  pinCode: TlvOptionalField(0, TlvByteString)
2680
2379
  });
@@ -2682,12 +2381,12 @@ export namespace DoorLock {
2682
2381
  /**
2683
2382
  * Input to the DoorLock unboltDoor command
2684
2383
  *
2685
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.45
2384
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.41
2686
2385
  */
2687
2386
  export interface UnboltDoorRequest extends TypeFromSchema<typeof TlvUnboltDoorRequest> {}
2688
2387
 
2689
2388
  /**
2690
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.20
2389
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.19
2691
2390
  */
2692
2391
  export enum LockState {
2693
2392
  /**
@@ -2712,7 +2411,7 @@ export namespace DoorLock {
2712
2411
  }
2713
2412
 
2714
2413
  /**
2715
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.21
2414
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.20
2716
2415
  */
2717
2416
  export enum LockType {
2718
2417
  /**
@@ -2777,7 +2476,7 @@ export namespace DoorLock {
2777
2476
  }
2778
2477
 
2779
2478
  /**
2780
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.22
2479
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.21
2781
2480
  */
2782
2481
  export enum LedSetting {
2783
2482
  /**
@@ -2797,7 +2496,7 @@ export namespace DoorLock {
2797
2496
  }
2798
2497
 
2799
2498
  /**
2800
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.23
2499
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.22
2801
2500
  */
2802
2501
  export enum SoundVolume {
2803
2502
  /**
@@ -3005,11 +2704,6 @@ export namespace DoorLock {
3005
2704
  */
3006
2705
  lockFactoryReset: BitFlag(1),
3007
2706
 
3008
- /**
3009
- * Reserved
3010
- */
3011
- na: BitFlag(2),
3012
-
3013
2707
  /**
3014
2708
  * RF Module Power Cycled
3015
2709
  */
@@ -3113,7 +2807,7 @@ export namespace DoorLock {
3113
2807
  /**
3114
2808
  * This enumeration shall indicate the alarm type.
3115
2809
  *
3116
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.8
2810
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.7
3117
2811
  */
3118
2812
  export enum AlarmCode {
3119
2813
  /**
@@ -3181,7 +2875,7 @@ export namespace DoorLock {
3181
2875
  /**
3182
2876
  * This enumeration shall indicate the type of Lock operation performed.
3183
2877
  *
3184
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.14
2878
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.13
3185
2879
  */
3186
2880
  export enum LockOperationType {
3187
2881
  /**
@@ -3276,7 +2970,7 @@ export namespace DoorLock {
3276
2970
  /**
3277
2971
  * This enumeration shall indicate the error cause of the Lock/Unlock operation performed.
3278
2972
  *
3279
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.15
2973
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.14
3280
2974
  */
3281
2975
  export enum OperationError {
3282
2976
  /**
@@ -3375,128 +3069,23 @@ export namespace DoorLock {
3375
3069
  export interface LockOperationErrorEvent extends TypeFromSchema<typeof TlvLockOperationErrorEvent> {}
3376
3070
 
3377
3071
  /**
3378
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.25.1
3379
- */
3380
- export enum OperationEventCode {
3381
- /**
3382
- * Event code is unknown
3383
- */
3384
- UnknownOrMfgSpecific = 0,
3385
-
3386
- /**
3387
- * Event code is lock
3388
- */
3389
- Lock = 1,
3390
-
3391
- /**
3392
- * Event code is unlock
3393
- */
3394
- Unlock = 2,
3395
-
3396
- /**
3397
- * Event code is lock failure due to invalid PIN or RFID
3398
- */
3399
- LockFailureInvalidPiNorRfid = 3,
3400
-
3401
- /**
3402
- * Event code is lock failure due to invalid schedule
3403
- */
3404
- LockFailureInvalidSchedule = 4,
3405
-
3406
- /**
3407
- * Event code is unlock failure due to invalid PIN or RFID
3408
- */
3409
- UnlockFailureInvalidPiNorRfid = 5,
3410
-
3411
- /**
3412
- * Event code is unlock failure due to invalid schedule
3413
- */
3414
- UnlockFailureInvalidSchedule = 6,
3415
-
3416
- /**
3417
- * Event code is one touch lock
3418
- */
3419
- OneTouchLock = 7,
3420
-
3421
- /**
3422
- * Event code is key lock
3423
- */
3424
- KeyLock = 8,
3425
-
3426
- /**
3427
- * Event code is key unlock
3428
- */
3429
- KeyUnlock = 9,
3430
-
3431
- /**
3432
- * Event code is auto lock
3433
- */
3434
- AutoLock = 10,
3435
-
3436
- /**
3437
- * Event code is schedule lock
3438
- */
3439
- ScheduleLock = 11,
3440
-
3441
- /**
3442
- * Event code is schedule unlock
3443
- */
3444
- ScheduleUnlock = 12,
3445
-
3446
- /**
3447
- * Event code is manual lock (Key or Thumbturn)
3448
- */
3449
- ManualLock = 13,
3450
-
3451
- /**
3452
- * Event code is manual unlock (Key or Thumbturn)
3453
- */
3454
- ManualUnlock = 14,
3455
-
3456
- /**
3457
- * Event code is non access user operation
3458
- */
3459
- NonAccessUserOperationEvent = 15
3460
- }
3461
-
3462
- /**
3463
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.25.2
3072
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.6.23
3464
3073
  */
3465
- export enum ProgrammingEventCode {
3466
- /**
3467
- * Event code is unknown
3468
- */
3469
- UnknownOrMfgSpecific = 0,
3470
-
3471
- /**
3472
- * Event code is code changed
3473
- */
3474
- ProgrammingCodeChanged = 1,
3475
-
3476
- /**
3477
- * Event code is PIN added
3478
- */
3479
- PinCodeAdded = 2,
3480
-
3481
- /**
3482
- * Event code is PIN cleared
3483
- */
3484
- PinCodeCleared = 3,
3485
-
3074
+ export enum EventType {
3486
3075
  /**
3487
- * Event code is PIN changed
3076
+ * Event type is operation
3488
3077
  */
3489
- PinCodeChanged = 4,
3078
+ Operation = 0,
3490
3079
 
3491
3080
  /**
3492
- * Event code is RFID added
3081
+ * Event type is programming
3493
3082
  */
3494
- RfidCodeAdded = 5,
3083
+ Programming = 1,
3495
3084
 
3496
3085
  /**
3497
- * Event code is RFID cleared
3086
+ * Event type is alarm
3498
3087
  */
3499
- RfidCodeCleared = 6
3088
+ Alarm = 2
3500
3089
  }
3501
3090
 
3502
3091
  /**
@@ -3524,21 +3113,21 @@ export namespace DoorLock {
3524
3113
  *
3525
3114
  * Null only if an internal error prevents the retrieval of the current door state.
3526
3115
  *
3527
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.5
3116
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.4
3528
3117
  */
3529
3118
  doorState: Attribute(0x3, TlvNullable(TlvEnum<DoorState>())),
3530
3119
 
3531
3120
  /**
3532
3121
  * This attribute shall hold the number of door open events that have occurred since it was last zeroed.
3533
3122
  *
3534
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.6
3123
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.5
3535
3124
  */
3536
3125
  doorOpenEvents: OptionalWritableAttribute(0x4, TlvUInt32, { writeAcl: AccessLevel.Manage }),
3537
3126
 
3538
3127
  /**
3539
3128
  * This attribute shall hold the number of door closed events that have occurred since it was last zeroed.
3540
3129
  *
3541
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.7
3130
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.6
3542
3131
  */
3543
3132
  doorClosedEvents: OptionalWritableAttribute(0x5, TlvUInt32, { writeAcl: AccessLevel.Manage }),
3544
3133
 
@@ -3546,7 +3135,7 @@ export namespace DoorLock {
3546
3135
  * This attribute shall hold the number of minutes the door has been open since the last time it
3547
3136
  * transitioned from closed to open.
3548
3137
  *
3549
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.8
3138
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.7
3550
3139
  */
3551
3140
  openPeriod: OptionalWritableAttribute(0x6, TlvUInt16, { writeAcl: AccessLevel.Manage })
3552
3141
  },
@@ -3561,51 +3150,6 @@ export namespace DoorLock {
3561
3150
  }
3562
3151
  });
3563
3152
 
3564
- /**
3565
- * A DoorLockCluster supports these elements if it supports feature Logging.
3566
- */
3567
- export const LoggingComponent = MutableCluster.Component({
3568
- attributes: {
3569
- /**
3570
- * Indicates the number of available log records.
3571
- *
3572
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.9
3573
- */
3574
- numberOfLogRecordsSupported: FixedAttribute(0x10, TlvUInt16, { default: 0 }),
3575
-
3576
- /**
3577
- * This attribute shall enable/disable event logging.
3578
- *
3579
- * When event logging is enabled, all event messages are stored on the lock for retrieval. Logging events
3580
- * can be, but are not limited to, Tamper Alarm, Lock, Unlock, AutoRelock, User Code Added, User Code
3581
- * Cleared, Schedule Added, and Schedule Cleared. For a full detail of all the possible alarms and events,
3582
- * please refer to the full list in the Alarm and Event Masks Attribute Set.
3583
- *
3584
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.22
3585
- */
3586
- enableLogging: WritableAttribute(0x20, TlvBoolean, { default: true, writeAcl: AccessLevel.Administer })
3587
- },
3588
-
3589
- commands: {
3590
- /**
3591
- * Request a log record. Log number is between 1 – [Number of Log Records Supported attribute]. If log
3592
- * number 0 is requested then the most recent log entry is returned.
3593
- *
3594
- * Log record format: The log record format is defined in the description of the GetLogRecordResponse
3595
- * command.
3596
- *
3597
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.4
3598
- */
3599
- getLogRecord: Command(
3600
- 0x4,
3601
- TlvGetLogRecordRequest,
3602
- 0x4,
3603
- TlvGetLogRecordResponse,
3604
- { invokeAcl: AccessLevel.Manage }
3605
- )
3606
- }
3607
- });
3608
-
3609
3153
  /**
3610
3154
  * A DoorLockCluster supports these elements if it supports feature User.
3611
3155
  */
@@ -3614,7 +3158,7 @@ export namespace DoorLock {
3614
3158
  /**
3615
3159
  * Indicates the number of total users supported by the lock.
3616
3160
  *
3617
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.10
3161
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.8
3618
3162
  */
3619
3163
  numberOfTotalUsersSupported: FixedAttribute(0x11, TlvUInt16, { default: 0 }),
3620
3164
 
@@ -3622,7 +3166,7 @@ export namespace DoorLock {
3622
3166
  * This attribute shall contain a bitmap with the bits set for the values of CredentialRuleEnum supported
3623
3167
  * on this device.
3624
3168
  *
3625
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.20
3169
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.18
3626
3170
  */
3627
3171
  credentialRulesSupport: FixedAttribute(
3628
3172
  0x1b,
@@ -3641,7 +3185,7 @@ export namespace DoorLock {
3641
3185
  * NumberOfRFIDUsersSupported is set to 3, it will not be possible to actually assign 10 credentials for a
3642
3186
  * user because maximum number of credentials in the database is 8.
3643
3187
  *
3644
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.21
3188
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.19
3645
3189
  */
3646
3190
  numberOfCredentialsSupportedPerUser: FixedAttribute(0x1c, TlvUInt8, { default: 0 }),
3647
3191
 
@@ -3650,7 +3194,7 @@ export namespace DoorLock {
3650
3194
  * type ExpiringUser shall remain valid after its first use before expiring. When the credential expires
3651
3195
  * the UserStatus for the corresponding user record shall be set to OccupiedDisabled.
3652
3196
  *
3653
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.39
3197
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.36
3654
3198
  */
3655
3199
  expiringUserTimeout: OptionalWritableAttribute(
3656
3200
  0x35,
@@ -3678,7 +3222,7 @@ export namespace DoorLock {
3678
3222
  * • INVALID_COMMAND, if one or more fields violate constraints or are invalid or if OperationType is
3679
3223
  * Modify and UserIndex points to an available slot.
3680
3224
  *
3681
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.34
3225
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32
3682
3226
  */
3683
3227
  setUser: Command(
3684
3228
  0x1a,
@@ -3696,7 +3240,7 @@ export namespace DoorLock {
3696
3240
  * COMMAND, etc.) as needed otherwise the GetUserResponse Command shall be sent implying a status of
3697
3241
  * SUCCESS.
3698
3242
  *
3699
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.35
3243
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.33
3700
3244
  */
3701
3245
  getUser: Command(0x1b, TlvGetUserRequest, 0x1c, TlvGetUserResponse, { invokeAcl: AccessLevel.Administer }),
3702
3246
 
@@ -3709,7 +3253,7 @@ export namespace DoorLock {
3709
3253
  *
3710
3254
  * A LockUserChange event with the provided UserIndex shall be generated after successfully clearing users.
3711
3255
  *
3712
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.37
3256
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.35
3713
3257
  */
3714
3258
  clearUser: Command(
3715
3259
  0x1d,
@@ -3725,7 +3269,7 @@ export namespace DoorLock {
3725
3269
  *
3726
3270
  * Fields used for different use cases:
3727
3271
  *
3728
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40
3272
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.36
3729
3273
  */
3730
3274
  setCredential: Command(
3731
3275
  0x22,
@@ -3741,7 +3285,7 @@ export namespace DoorLock {
3741
3285
  * An InvokeResponse command shall be sent with an appropriate error (e.g. FAILURE, INVALID_COMMAND, etc.)
3742
3286
  * as needed otherwise the GetCredentialStatusResponse command shall be sent implying a status of SUCCESS.
3743
3287
  *
3744
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.42
3288
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.38
3745
3289
  */
3746
3290
  getCredentialStatus: Command(
3747
3291
  0x24,
@@ -3758,12 +3302,12 @@ export namespace DoorLock {
3758
3302
  *
3759
3303
  * For each credential cleared whose user doesn’t have another valid credential, the corresponding user
3760
3304
  * record shall be reset back to default values and its UserStatus value shall be set to Available and
3761
- * UserType value shall be set to UnrestrictedUser and all schedules shall be cleared. In
3305
+ * UserType value shall be set to UnrestrictedUser and all schedules shall be cleared. In this case a
3306
+ * LockUserChange event shall be generated for the user being cleared.
3762
3307
  *
3763
- * this case a LockUserChange event shall be generated for the user being cleared. Return status shall be
3764
- * one of the following values:
3308
+ * Return status shall be one of the following values:
3765
3309
  *
3766
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.44
3310
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.40
3767
3311
  */
3768
3312
  clearCredential: Command(
3769
3313
  0x26,
@@ -3793,21 +3337,21 @@ export namespace DoorLock {
3793
3337
  /**
3794
3338
  * Indicates the number of PIN users supported.
3795
3339
  *
3796
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.11
3340
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.9
3797
3341
  */
3798
3342
  numberOfPinUsersSupported: FixedAttribute(0x12, TlvUInt16, { default: 0 }),
3799
3343
 
3800
3344
  /**
3801
3345
  * Indicates the maximum length in bytes of a PIN Code on this device.
3802
3346
  *
3803
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.16
3347
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.14
3804
3348
  */
3805
3349
  maxPinCodeLength: FixedAttribute(0x17, TlvUInt8),
3806
3350
 
3807
3351
  /**
3808
3352
  * Indicates the minimum length in bytes of a PIN Code on this device.
3809
3353
  *
3810
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.17
3354
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.15
3811
3355
  */
3812
3356
  minPinCodeLength: FixedAttribute(0x18, TlvUInt8)
3813
3357
  }
@@ -3821,7 +3365,7 @@ export namespace DoorLock {
3821
3365
  /**
3822
3366
  * Indicates the number of RFID users supported.
3823
3367
  *
3824
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.12
3368
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.10
3825
3369
  */
3826
3370
  numberOfRfidUsersSupported: FixedAttribute(0x13, TlvUInt16, { default: 0 }),
3827
3371
 
@@ -3830,7 +3374,7 @@ export namespace DoorLock {
3830
3374
  * range specified by the manufacturer, if media anti-collision identifiers (UID) are used as RFID code, a
3831
3375
  * value of 20 (equals 10 Byte ISO 14443A UID) is recommended.
3832
3376
  *
3833
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.18
3377
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.16
3834
3378
  */
3835
3379
  maxRfidCodeLength: FixedAttribute(0x19, TlvUInt8),
3836
3380
 
@@ -3839,7 +3383,7 @@ export namespace DoorLock {
3839
3383
  * range specified by the manufacturer, if media anti-collision identifiers (UID) are used as RFID code, a
3840
3384
  * value of 8 (equals 4 Byte ISO 14443A UID) is recommended.
3841
3385
  *
3842
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.19
3386
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.17
3843
3387
  */
3844
3388
  minRfidCodeLength: FixedAttribute(0x1a, TlvUInt8)
3845
3389
  }
@@ -3853,24 +3397,25 @@ export namespace DoorLock {
3853
3397
  /**
3854
3398
  * Indicates the number of configurable week day schedule supported per user.
3855
3399
  *
3856
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.13
3400
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.11
3857
3401
  */
3858
- numberOfWeekDaySchedulesSupportedPerUser: FixedAttribute(0x14, TlvUInt8, { default: 0 })
3402
+ numberOfWeekDaySchedulesSupportedPerUser: FixedAttribute(
3403
+ 0x14,
3404
+ TlvUInt8.bound({ max: 253 }),
3405
+ { default: 0 }
3406
+ )
3859
3407
  },
3860
3408
 
3861
3409
  commands: {
3862
3410
  /**
3863
3411
  * Set a weekly repeating schedule for a specified user.
3864
3412
  *
3865
- * † The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead,
3866
- * respectively.
3867
- *
3868
3413
  * The associated UserType may be changed to ScheduleRestrictedUser by the lock when a Week Day schedule is
3869
3414
  * set.
3870
3415
  *
3871
3416
  * Return status shall be one of the following values:
3872
3417
  *
3873
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.14
3418
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12
3874
3419
  */
3875
3420
  setWeekDaySchedule: Command(
3876
3421
  0xb,
@@ -3883,10 +3428,7 @@ export namespace DoorLock {
3883
3428
  /**
3884
3429
  * Retrieve the specific weekly schedule for the specific user.
3885
3430
  *
3886
- * The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead,
3887
- * respectively.
3888
- *
3889
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.15
3431
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.13
3890
3432
  */
3891
3433
  getWeekDaySchedule: Command(
3892
3434
  0xc,
@@ -3899,12 +3441,9 @@ export namespace DoorLock {
3899
3441
  /**
3900
3442
  * Clear the specific weekly schedule or all weekly schedules for the specific user.
3901
3443
  *
3902
- * † The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead,
3903
- * respectively.
3904
- *
3905
3444
  * Return status shall be one of the following values:
3906
3445
  *
3907
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.17
3446
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.15
3908
3447
  */
3909
3448
  clearWeekDaySchedule: Command(
3910
3449
  0xd,
@@ -3924,24 +3463,25 @@ export namespace DoorLock {
3924
3463
  /**
3925
3464
  * Indicates the number of configurable year day schedule supported per user.
3926
3465
  *
3927
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.14
3466
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.12
3928
3467
  */
3929
- numberOfYearDaySchedulesSupportedPerUser: FixedAttribute(0x15, TlvUInt8, { default: 0 })
3468
+ numberOfYearDaySchedulesSupportedPerUser: FixedAttribute(
3469
+ 0x15,
3470
+ TlvUInt8.bound({ max: 253 }),
3471
+ { default: 0 }
3472
+ )
3930
3473
  },
3931
3474
 
3932
3475
  commands: {
3933
3476
  /**
3934
3477
  * Set a time-specific schedule ID for a specified user.
3935
3478
  *
3936
- * † The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead,
3937
- * respectively.
3938
- *
3939
3479
  * The associated UserType may be changed to ScheduleRestrictedUser by the lock when a Year Day schedule is
3940
3480
  * set.
3941
3481
  *
3942
3482
  * Return status shall be one of the following values:
3943
3483
  *
3944
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.18
3484
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.16
3945
3485
  */
3946
3486
  setYearDaySchedule: Command(
3947
3487
  0xe,
@@ -3954,10 +3494,7 @@ export namespace DoorLock {
3954
3494
  /**
3955
3495
  * Retrieve the specific year day schedule for the specific schedule and user indexes.
3956
3496
  *
3957
- * The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead,
3958
- * respectively.
3959
- *
3960
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.19
3497
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.17
3961
3498
  */
3962
3499
  getYearDaySchedule: Command(
3963
3500
  0xf,
@@ -3970,12 +3507,9 @@ export namespace DoorLock {
3970
3507
  /**
3971
3508
  * Clears the specific year day schedule or all year day schedules for the specific user.
3972
3509
  *
3973
- * † The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead,
3974
- * respectively.
3975
- *
3976
3510
  * Return status shall be one of the following values:
3977
3511
  *
3978
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.21
3512
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.19
3979
3513
  */
3980
3514
  clearYearDaySchedule: Command(
3981
3515
  0x10,
@@ -3995,9 +3529,9 @@ export namespace DoorLock {
3995
3529
  /**
3996
3530
  * Indicates the number of holiday schedules supported for the entire door lock device.
3997
3531
  *
3998
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.15
3532
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.13
3999
3533
  */
4000
- numberOfHolidaySchedulesSupported: FixedAttribute(0x16, TlvUInt8, { default: 0 })
3534
+ numberOfHolidaySchedulesSupported: FixedAttribute(0x16, TlvUInt8.bound({ max: 253 }), { default: 0 })
4001
3535
  },
4002
3536
 
4003
3537
  commands: {
@@ -4005,10 +3539,9 @@ export namespace DoorLock {
4005
3539
  * Set the holiday Schedule by specifying local start time and local end time with respect to any Lock
4006
3540
  * Operating Mode.
4007
3541
  *
4008
- * The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead. Return status shall be
4009
- * one of the following values:
3542
+ * Return status shall be one of the following values:
4010
3543
  *
4011
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.22
3544
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.20
4012
3545
  */
4013
3546
  setHolidaySchedule: Command(
4014
3547
  0x11,
@@ -4021,9 +3554,7 @@ export namespace DoorLock {
4021
3554
  /**
4022
3555
  * Get the holiday schedule for the specified index.
4023
3556
  *
4024
- * The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead.
4025
- *
4026
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.23
3557
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.21
4027
3558
  */
4028
3559
  getHolidaySchedule: Command(
4029
3560
  0x12,
@@ -4036,9 +3567,7 @@ export namespace DoorLock {
4036
3567
  /**
4037
3568
  * Clears the holiday schedule or all holiday schedules.
4038
3569
  *
4039
- * The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead.
4040
- *
4041
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.25
3570
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.23
4042
3571
  */
4043
3572
  clearHolidaySchedule: Command(
4044
3573
  0x13,
@@ -4067,7 +3596,7 @@ export namespace DoorLock {
4067
3596
  * logic, environmental events, or other reasons. The lock shall reset the counter if a valid credential is
4068
3597
  * presented.
4069
3598
  *
4070
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.35
3599
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.32
4071
3600
  */
4072
3601
  wrongCodeEntryLimit: WritableAttribute(
4073
3602
  0x30,
@@ -4081,7 +3610,7 @@ export namespace DoorLock {
4081
3610
  * to try and guess a PIN for the device.) If the attribute accepts writes and an attempt to write the
4082
3611
  * attribute to 0 is made, the device shall respond with CONSTRAINT_ERROR.
4083
3612
  *
4084
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.36
3613
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.33
4085
3614
  */
4086
3615
  userCodeTemporaryDisableTime: WritableAttribute(
4087
3616
  0x31,
@@ -4102,12 +3631,13 @@ export namespace DoorLock {
4102
3631
  * door lock server to send PINs over the air. This attribute determines the behavior of the server’s TX
4103
3632
  * operation. If it is false, then it is not ok for the device to send PIN in any messages over the air.
4104
3633
  *
4105
- * The PIN field within any door lock cluster message shall keep the first octet unchanged and masks the
4106
- * actual code by replacing with 0xFF. For example (PIN "1234" ): If the attribute value is True, 0x04 0x31
4107
- * 0x32 0x33 0x34 shall be used in the PIN field in any door lock cluster message payload. If the attribute
4108
- * value is False, 0x04 0xFF 0xFF 0xFF 0xFF shall be used.
3634
+ * The PIN field within any door lock cluster message shall keep the first octet unchanged and
4109
3635
  *
4110
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.37
3636
+ * masks the actual code by replacing with 0xFF. For example (PIN "1234" ): If the attribute value is True,
3637
+ * 0x04 0x31 0x32 0x33 0x34 shall be used in the PIN field in any door lock cluster message payload. If the
3638
+ * attribute value is False, 0x04 0xFF 0xFF 0xFF 0xFF shall be used.
3639
+ *
3640
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.34
4111
3641
  */
4112
3642
  sendPinOverTheAir: OptionalWritableAttribute(
4113
3643
  0x32,
@@ -4123,7 +3653,7 @@ export namespace DoorLock {
4123
3653
  * Return status is a global status code or a cluster-specific status code from the Status Codes table and
4124
3654
  * shall be one of the following values:
4125
3655
  *
4126
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.6
3656
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.4
4127
3657
  */
4128
3658
  setPinCode: Command(
4129
3659
  0x5,
@@ -4136,7 +3666,7 @@ export namespace DoorLock {
4136
3666
  /**
4137
3667
  * Retrieve a PIN Code.
4138
3668
  *
4139
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.7
3669
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.5
4140
3670
  */
4141
3671
  getPinCode: Command(
4142
3672
  0x6,
@@ -4149,13 +3679,11 @@ export namespace DoorLock {
4149
3679
  /**
4150
3680
  * Clear a PIN code or all PIN codes.
4151
3681
  *
4152
- * † The User ID is an obsolete field name, use PINSlotIndex instead.
4153
- *
4154
3682
  * For each PIN Code cleared whose user doesn’t have a RFID Code or other credential type, then
4155
3683
  * corresponding user record’s UserStatus value shall be set to Available, and UserType value shall be set
4156
3684
  * to UnrestrictedUser and all schedules shall be cleared.
4157
3685
  *
4158
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.9
3686
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.7
4159
3687
  */
4160
3688
  clearPinCode: Command(
4161
3689
  0x7,
@@ -4173,7 +3701,7 @@ export namespace DoorLock {
4173
3701
  * On the server, the clear all PIN codes command SHOULD have the same effect as the ClearPINCode command
4174
3702
  * with respect to the setting of user status, user type and schedules.
4175
3703
  *
4176
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.10
3704
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.8
4177
3705
  */
4178
3706
  clearAllPinCodes: Command(
4179
3707
  0x8,
@@ -4195,7 +3723,7 @@ export namespace DoorLock {
4195
3723
  * server requires that an optional PINs be included in the payload of remote lock operation events like
4196
3724
  * Lock, Unlock, Unlock with Timeout and Toggle in order to function.
4197
3725
  *
4198
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.38
3726
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.35
4199
3727
  */
4200
3728
  requirePinForRemoteOperation: WritableAttribute(
4201
3729
  0x33,
@@ -4206,145 +3734,159 @@ export namespace DoorLock {
4206
3734
  });
4207
3735
 
4208
3736
  /**
4209
- * A DoorLockCluster supports these elements if it supports features Notification and PinCredential.
3737
+ * A DoorLockCluster supports these elements if it supports feature AliroProvisioning.
4210
3738
  */
4211
- export const NotificationAndPinCredentialComponent = MutableCluster.Component({
3739
+ export const AliroProvisioningComponent = MutableCluster.Component({
4212
3740
  attributes: {
4213
3741
  /**
4214
- * Event mask used to turn on and off the transmission of keypad operation events. This mask DOES NOT apply
4215
- * to the storing of events in the event log. This mask only applies to the Operation Event Notification
4216
- * Command.
3742
+ * Indicates the verification key component of the Reader’s key pair as defined in [Aliro]. The value, if
3743
+ * not null, shall be an uncompressed elliptic curve public key as defined in section 2.3.3 of SEC 1.
4217
3744
  *
4218
- * This mask DOES NOT apply to the Events mechanism of this cluster.
3745
+ * Null if no Reader key pair has been configured on the lock. See SetAliroReaderConfig.
4219
3746
  *
4220
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.41
3747
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.38
4221
3748
  */
4222
- keypadOperationEventMask: OptionalWritableAttribute(
4223
- 0x41,
4224
- TlvBitmap(TlvUInt16, EventMask),
4225
- {
4226
- default: BitsFromPartial(EventMask, { bit0: true, bit1: true, bit2: true, bit3: true, bit4: true, bit5: true, bit6: true, bit7: true, bit8: true, bit9: true, bit10: true, bit11: true, bit12: true, bit13: true, bit14: true, bit15: true }),
4227
- writeAcl: AccessLevel.Administer
4228
- }
3749
+ aliroReaderVerificationKey: Attribute(
3750
+ 0x80,
3751
+ TlvNullable(TlvByteString.bound({ length: 65 })),
3752
+ { default: null, readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
4229
3753
  ),
4230
3754
 
4231
3755
  /**
4232
- * Event mask used to turn on and off keypad programming events. This mask DOES NOT apply to the storing of
4233
- * events in the event log. This mask only applies to the Programming Event Notification Command.
3756
+ * Indicates the reader_group_identifier as defined in [Aliro].
4234
3757
  *
4235
- * This mask DOES NOT apply to the Events mechanism of this cluster.
3758
+ * Null if no reader_group_identifier has been configured on the lock. See SetAliroReaderConfig.
4236
3759
  *
4237
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.45
3760
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.39
4238
3761
  */
4239
- keypadProgrammingEventMask: OptionalWritableAttribute(
4240
- 0x45,
4241
- TlvBitmap(TlvUInt16, KeypadProgrammingEventMask),
4242
- {
4243
- default: BitsFromPartial(KeypadProgrammingEventMask, { unknown: true, pinCodeChanged: true, pinAdded: true, pinCleared: true, pinChanged: true, bit5: true, bit6: true, bit7: true, bit8: true, bit9: true, bit10: true, bit11: true, bit12: true, bit13: true, bit14: true, bit15: true }),
4244
- writeAcl: AccessLevel.Administer
4245
- }
4246
- )
4247
- }
4248
- });
3762
+ aliroReaderGroupIdentifier: Attribute(
3763
+ 0x81,
3764
+ TlvNullable(TlvByteString.bound({ length: 16 })),
3765
+ { default: null, readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
3766
+ ),
4249
3767
 
4250
- /**
4251
- * A DoorLockCluster supports these elements if it supports feature Notification.
4252
- */
4253
- export const NotificationComponent = MutableCluster.Component({
4254
- attributes: {
4255
3768
  /**
4256
- * Event mask used to turn on and off the transmission of remote operation events. This mask DOES NOT apply
4257
- * to the storing of events in the event log. This mask only applies to the Operation Event Notification
4258
- * Command.
3769
+ * Indicates the reader_group_sub_identifier as defined in [Aliro].
4259
3770
  *
4260
- * This mask DOES NOT apply to the Events mechanism of this cluster.
3771
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.40
3772
+ */
3773
+ aliroReaderGroupSubIdentifier: FixedAttribute(
3774
+ 0x82,
3775
+ TlvByteString.bound({ length: 16 }),
3776
+ { readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
3777
+ ),
3778
+
3779
+ /**
3780
+ * Indicates the list of protocol versions supported for expedited transactions as defined in [Aliro].
4261
3781
  *
4262
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.42
3782
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.41
4263
3783
  */
4264
- remoteOperationEventMask: OptionalWritableAttribute(
4265
- 0x42,
4266
- TlvBitmap(TlvUInt16, EventMask),
4267
- {
4268
- default: BitsFromPartial(EventMask, { bit0: true, bit1: true, bit2: true, bit3: true, bit4: true, bit5: true, bit6: true, bit7: true, bit8: true, bit9: true, bit10: true, bit11: true, bit12: true, bit13: true, bit14: true, bit15: true }),
4269
- writeAcl: AccessLevel.Administer
4270
- }
3784
+ aliroExpeditedTransactionSupportedProtocolVersions: FixedAttribute(
3785
+ 0x83,
3786
+ TlvArray(TlvByteString, { maxLength: 16 }),
3787
+ { default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
4271
3788
  ),
4272
3789
 
4273
3790
  /**
4274
- * Event mask used to turn on and off manual operation events. This mask DOES NOT apply to the storing of
4275
- * events in the event log. This mask only applies to the Operation Event Notification Command.
3791
+ * Indicates the maximum number of AliroCredentialIssuerKey credentials that can be stored on the lock.
4276
3792
  *
4277
- * This mask DOES NOT apply to the Events mechanism of this cluster.
3793
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.45
3794
+ */
3795
+ numberOfAliroCredentialIssuerKeysSupported: FixedAttribute(0x87, TlvUInt16, { default: 0 }),
3796
+
3797
+ /**
3798
+ * Indicates the maximum number of endpoint key credentials that can be stored on the lock. This limit
3799
+ * applies to the sum of the number of AliroEvictableEndpointKey credentials and the number of
3800
+ * AliroNonEvictableEndpointKey credentials.
4278
3801
  *
4279
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.43
3802
+ * NOTE
3803
+ *
3804
+ * The credential indices used for these two credential types are independent of each other, similar to all
3805
+ * other credential types. As long as NumberOfAliroEndpointKeysSupported is at least 2 a client could add a
3806
+ * credential of type AliroEvictableEndpointKey at any index from 1 to NumberOfAliroEndpointKeysSupported
3807
+ * and also add a credential of type AliroNonEvictableEndpointKey at the same index, and both credentials
3808
+ * would exist on the server.
3809
+ *
3810
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.46
4280
3811
  */
4281
- manualOperationEventMask: OptionalWritableAttribute(
4282
- 0x43,
4283
- TlvBitmap(TlvUInt16, EventMask),
4284
- {
4285
- default: BitsFromPartial(EventMask, { bit0: true, bit1: true, bit2: true, bit3: true, bit4: true, bit5: true, bit6: true, bit7: true, bit8: true, bit9: true, bit10: true, bit11: true, bit12: true, bit13: true, bit14: true, bit15: true }),
4286
- writeAcl: AccessLevel.Administer
4287
- }
3812
+ numberOfAliroEndpointKeysSupported: FixedAttribute(0x88, TlvUInt16, { default: 0 })
3813
+ },
3814
+
3815
+ commands: {
3816
+ /**
3817
+ * This command allows communicating an Aliro Reader configuration, as defined in [Aliro], to the lock.
3818
+ *
3819
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.42
3820
+ */
3821
+ setAliroReaderConfig: Command(
3822
+ 0x28,
3823
+ TlvSetAliroReaderConfigRequest,
3824
+ 0x28,
3825
+ TlvNoResponse,
3826
+ { invokeAcl: AccessLevel.Administer, timed: true }
4288
3827
  ),
4289
3828
 
4290
3829
  /**
4291
- * Event mask used to turn on and off remote programming events. This mask DOES NOT apply to the storing of
4292
- * events in the event log. This mask only applies to the Programming Event Notification Command.
3830
+ * This command allows clearing an existing Aliro Reader configuration for the lock. Administrators shall
3831
+ * NOT clear an Aliro Reader configuration without explicit user permission.
4293
3832
  *
4294
- * This mask DOES NOT apply to the Events mechanism of this cluster.
3833
+ * NOTE
4295
3834
  *
4296
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.46
3835
+ * Using this command will revoke the ability of all existing Aliro user devices that have the old
3836
+ * verification key to interact with the lock. This effect is not restricted to a single fabric or
3837
+ * otherwise scoped in any way.
3838
+ *
3839
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.43
4297
3840
  */
4298
- remoteProgrammingEventMask: OptionalWritableAttribute(
4299
- 0x46,
4300
- TlvBitmap(TlvUInt16, RemoteProgrammingEventMask),
4301
- {
4302
- default: BitsFromPartial(RemoteProgrammingEventMask, { unknown: true, bit1: true, pinAdded: true, pinCleared: true, pinChanged: true, rfidCodeAdded: true, rfidCodeCleared: true, bit7: true, bit8: true, bit9: true, bit10: true, bit11: true, bit12: true, bit13: true, bit14: true, bit15: true }),
4303
- writeAcl: AccessLevel.Administer
4304
- }
3841
+ clearAliroReaderConfig: Command(
3842
+ 0x29,
3843
+ TlvNoArguments,
3844
+ 0x29,
3845
+ TlvNoResponse,
3846
+ { invokeAcl: AccessLevel.Administer, timed: true }
4305
3847
  )
4306
3848
  }
4307
3849
  });
4308
3850
 
4309
3851
  /**
4310
- * A DoorLockCluster supports these elements if it supports features Notification and RfidCredential.
3852
+ * A DoorLockCluster supports these elements if it supports feature AliroBleuwb.
4311
3853
  */
4312
- export const NotificationAndRfidCredentialComponent = MutableCluster.Component({
3854
+ export const AliroBleuwbComponent = MutableCluster.Component({
4313
3855
  attributes: {
4314
3856
  /**
4315
- * Event mask used to turn on and off RFID operation events. This mask DOES NOT apply to the storing of
4316
- * events in the event log. This mask only applies to the Operation Event Notification Command.
3857
+ * Indicates the Group Resolving Key as defined in [Aliro].
4317
3858
  *
4318
- * This mask DOES NOT apply to the Events mechanism of this cluster.
3859
+ * Null if no group resolving key has been configured on the lock. See SetAliroReaderConfig.
4319
3860
  *
4320
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.44
3861
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.42
4321
3862
  */
4322
- rfidOperationEventMask: OptionalWritableAttribute(
4323
- 0x44,
4324
- TlvBitmap(TlvUInt16, EventMask),
4325
- {
4326
- default: BitsFromPartial(EventMask, { bit0: true, bit1: true, bit2: true, bit3: true, bit4: true, bit5: true, bit6: true, bit7: true, bit8: true, bit9: true, bit10: true, bit11: true, bit12: true, bit13: true, bit14: true, bit15: true }),
4327
- writeAcl: AccessLevel.Administer
4328
- }
3863
+ aliroGroupResolvingKey: Attribute(
3864
+ 0x84,
3865
+ TlvNullable(TlvByteString.bound({ length: 16 })),
3866
+ { default: null, readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
4329
3867
  ),
4330
3868
 
4331
3869
  /**
4332
- * Event mask used to turn on and off RFID programming events. This mask DOES NOT apply to the storing of
4333
- * events in the event log. This mask only applies to the Programming Event Notification Command.
4334
- *
4335
- * This mask DOES NOT apply to the Events mechanism of this cluster.
3870
+ * Indicates the list of protocol versions supported for the Bluetooth LE + UWB Access Control Flow as
3871
+ * defined in [Aliro].
4336
3872
  *
4337
- * This mask DOES NOT apply to the Events mechanism of this cluster.
3873
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.43
3874
+ */
3875
+ aliroSupportedBleuwbProtocolVersions: FixedAttribute(
3876
+ 0x85,
3877
+ TlvArray(TlvByteString, { maxLength: 16 }),
3878
+ { default: [], readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
3879
+ ),
3880
+
3881
+ /**
3882
+ * Indicates the version of the Bluetooth LE advertisement as defined in [Aliro].
4338
3883
  *
4339
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.47
3884
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.44
4340
3885
  */
4341
- rfidProgrammingEventMask: OptionalWritableAttribute(
4342
- 0x47,
4343
- TlvBitmap(TlvUInt16, RfidProgrammingEventMask),
4344
- {
4345
- default: BitsFromPartial(RfidProgrammingEventMask, { unknown: true, bit1: true, bit2: true, bit3: true, bit4: true, idAdded: true, idCleared: true, bit7: true, bit8: true, bit9: true, bit10: true, bit11: true, bit12: true, bit13: true, bit14: true, bit15: true }),
4346
- writeAcl: AccessLevel.Administer
4347
- }
3886
+ aliroBleAdvertisingVersion: FixedAttribute(
3887
+ 0x86,
3888
+ TlvUInt8,
3889
+ { default: 0, readAcl: AccessLevel.Administer, writeAcl: AccessLevel.Administer }
4348
3890
  )
4349
3891
  }
4350
3892
  });
@@ -4358,7 +3900,7 @@ export namespace DoorLock {
4358
3900
  /**
4359
3901
  * Set the status of a user ID.
4360
3902
  *
4361
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.11
3903
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.9
4362
3904
  */
4363
3905
  setUserStatus: OptionalCommand(
4364
3906
  0x9,
@@ -4371,7 +3913,7 @@ export namespace DoorLock {
4371
3913
  /**
4372
3914
  * Get the status of a user.
4373
3915
  *
4374
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.12
3916
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.10
4375
3917
  */
4376
3918
  getUserStatus: OptionalCommand(
4377
3919
  0xa,
@@ -4388,7 +3930,7 @@ export namespace DoorLock {
4388
3930
  *
4389
3931
  * Return status shall be one of the following values:
4390
3932
  *
4391
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.26
3933
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.24
4392
3934
  */
4393
3935
  setUserType: OptionalCommand(
4394
3936
  0x14,
@@ -4401,7 +3943,7 @@ export namespace DoorLock {
4401
3943
  /**
4402
3944
  * Retrieve the user type for a specific user.
4403
3945
  *
4404
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.27
3946
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.25
4405
3947
  */
4406
3948
  getUserType: OptionalCommand(
4407
3949
  0x15,
@@ -4430,7 +3972,7 @@ export namespace DoorLock {
4430
3972
  * Return status is a global status code or a cluster-specific status code from the Status Codes table and
4431
3973
  * shall be one of the following values:
4432
3974
  *
4433
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.29
3975
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.27
4434
3976
  */
4435
3977
  setRfidCode: Command(
4436
3978
  0x16,
@@ -4443,7 +3985,7 @@ export namespace DoorLock {
4443
3985
  /**
4444
3986
  * Retrieve an RFID code.
4445
3987
  *
4446
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.30
3988
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.28
4447
3989
  */
4448
3990
  getRfidCode: Command(
4449
3991
  0x17,
@@ -4456,13 +3998,11 @@ export namespace DoorLock {
4456
3998
  /**
4457
3999
  * Clear an RFID code or all RFID codes.
4458
4000
  *
4459
- * † The User ID is an obsolete field name, use RFIDSlotIndex instead.
4460
- *
4461
4001
  * For each RFID Code cleared whose user doesn’t have a PIN Code or other credential type, then the
4462
4002
  * corresponding user record’s UserStatus value shall be set to Available, and UserType value shall be set
4463
4003
  * to UnrestrictedUser and all schedules shall be cleared.
4464
4004
  *
4465
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.32
4005
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.30
4466
4006
  */
4467
4007
  clearRfidCode: Command(
4468
4008
  0x18,
@@ -4477,7 +4017,7 @@ export namespace DoorLock {
4477
4017
  * user status has to be set to "0 Available", the user type has to be set to the default value, and all
4478
4018
  * schedules which are supported have to be set to the default values.
4479
4019
  *
4480
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.33
4020
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.31
4481
4021
  */
4482
4022
  clearAllRfidCodes: Command(
4483
4023
  0x19,
@@ -4504,7 +4044,7 @@ export namespace DoorLock {
4504
4044
  * If the attribute AutoRelockTime is supported, the lock will transition to the locked state when the auto
4505
4045
  * relock time has expired.
4506
4046
  *
4507
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.45
4047
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.41
4508
4048
  */
4509
4049
  unboltDoor: Command(0x27, TlvUnboltDoorRequest, 0x27, TlvNoResponse, { timed: true })
4510
4050
  }
@@ -4516,7 +4056,7 @@ export namespace DoorLock {
4516
4056
  export const Base = MutableCluster.Component({
4517
4057
  id: 0x101,
4518
4058
  name: "DoorLock",
4519
- revision: 7,
4059
+ revision: 8,
4520
4060
 
4521
4061
  features: {
4522
4062
  /**
@@ -4541,7 +4081,6 @@ export namespace DoorLock {
4541
4081
  *
4542
4082
  * A lock may support multiple credential types so if the User feature is supported the UserType,
4543
4083
  * UserStatus and Schedules are all associated with a User index and not directly with a RFID index. A User
4544
- *
4545
4084
  * Index may have several credentials associated with it.
4546
4085
  *
4547
4086
  * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.2
@@ -4564,27 +4103,20 @@ export namespace DoorLock {
4564
4103
  */
4565
4104
  fingerCredentials: BitFlag(2),
4566
4105
 
4567
- /**
4568
- * Logging
4569
- *
4570
- * If Events are not supported the logging feature shall replace the Event reporting structure. If Events
4571
- * are supported the logging feature shall NOT be supported.
4572
- *
4573
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.4
4574
- */
4575
- logging: BitFlag(3),
4576
-
4577
4106
  /**
4578
4107
  * WeekDayAccessSchedules
4579
4108
  *
4580
4109
  * If the User feature is supported then Week Day Schedules are applied to a User and not a credential.
4581
4110
  *
4582
4111
  * Week Day Schedules are used to restrict access to a specified time window on certain days of the week.
4583
- * The schedule is repeated each week. When a schedule is cleared this clears the access restrictions and
4584
- * grants unrestricted access to the user. The lock may automatically adjust the UserType when a schedule
4585
- * is created or cleared.
4112
+ * The schedule is repeated each week.
4586
4113
  *
4587
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.5
4114
+ * The lock may automatically adjust the UserType when a schedule is created or cleared.
4115
+ *
4116
+ * Support for WeekDayAccessSchedules requires that the lock has the capability of keeping track of local
4117
+ * time.
4118
+ *
4119
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.4
4588
4120
  */
4589
4121
  weekDayAccessSchedules: BitFlag(4),
4590
4122
 
@@ -4594,7 +4126,7 @@ export namespace DoorLock {
4594
4126
  * If this feature is supported this indicates that the lock has the ability to determine the position of
4595
4127
  * the door which is separate from the state of the lock.
4596
4128
  *
4597
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.6
4129
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.5
4598
4130
  */
4599
4131
  doorPositionSensor: BitFlag(5),
4600
4132
 
@@ -4610,7 +4142,7 @@ export namespace DoorLock {
4610
4142
  * A lock may support multiple credential types so if the User feature is supported the UserType,
4611
4143
  * UserStatus and Schedules are all associated with a User and not directly with a credential.
4612
4144
  *
4613
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.7
4145
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.6
4614
4146
  */
4615
4147
  faceCredentials: BitFlag(6),
4616
4148
 
@@ -4618,10 +4150,11 @@ export namespace DoorLock {
4618
4150
  * CredentialOverTheAirAccess
4619
4151
  *
4620
4152
  * If this feature is supported then the lock supports the ability to verify a credential provided in a
4153
+ *
4621
4154
  * lock/unlock command. Currently the cluster only supports providing the PIN credential to the lock/unlock
4622
4155
  * commands. If this feature is supported then the PIN Credential feature shall also be supported.
4623
4156
  *
4624
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.8
4157
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.7
4625
4158
  */
4626
4159
  credentialOverTheAirAccess: BitFlag(7),
4627
4160
 
@@ -4632,30 +4165,22 @@ export namespace DoorLock {
4632
4165
  * used to associate credentials and schedules to single user record within the lock. This also means the
4633
4166
  * UserType and UserStatus fields are associated with a User and not a credential.
4634
4167
  *
4635
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.9
4168
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.8
4636
4169
  */
4637
4170
  user: BitFlag(8),
4638
4171
 
4639
- /**
4640
- * Notification
4641
- *
4642
- * This is a feature used before support of events. This feature supports notification commands and masks
4643
- * used to filter these notifications.
4644
- *
4645
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.10
4646
- */
4647
- notification: BitFlag(9),
4648
-
4649
4172
  /**
4650
4173
  * YearDayAccessSchedules
4651
4174
  *
4652
4175
  * If the User feature is supported then Year Day Schedules are applied to a User and not a credential.
4176
+ * Year Day Schedules are used to restrict access to a specified date and time window.
4653
4177
  *
4654
- * Year Day Schedules are used to restrict access to a specified date and time window. When a schedule is
4655
- * cleared this clears the access restrictions and grants unrestricted access to the user. The lock may
4656
- * automatically adjust the UserType when a schedule is created or cleared.
4178
+ * The lock may automatically adjust the UserType when a schedule is created or cleared.
4657
4179
  *
4658
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.11
4180
+ * Support for YearDayAccessSchedules requires that the lock has the capability of keeping track of local
4181
+ * time.
4182
+ *
4183
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.9
4659
4184
  */
4660
4185
  yearDayAccessSchedules: BitFlag(10),
4661
4186
 
@@ -4665,7 +4190,9 @@ export namespace DoorLock {
4665
4190
  * This feature is used to setup Holiday Schedule in the lock device. A Holiday Schedule sets a start and
4666
4191
  * stop end date/time for the lock to use the specified operating mode set by the Holiday Schedule.
4667
4192
  *
4668
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.12
4193
+ * Support for HolidaySchedules requires that the lock has the capability of keeping track of local time.
4194
+ *
4195
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.10
4669
4196
  */
4670
4197
  holidaySchedules: BitFlag(11),
4671
4198
 
@@ -4678,9 +4205,29 @@ export namespace DoorLock {
4678
4205
  * Unlatched. Locks without unbolting support don’t differentiate between unbolting and unlocking and
4679
4206
  * perform the same operation for both commands.
4680
4207
  *
4208
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.11
4209
+ */
4210
+ unbolting: BitFlag(12),
4211
+
4212
+ /**
4213
+ * AliroProvisioning
4214
+ *
4215
+ * Locks that support this feature implement the Aliro specification as defined in [Aliro] and support
4216
+ * Matter as a method for provisioning Aliro credentials.
4217
+ *
4218
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.12
4219
+ */
4220
+ aliroProvisioning: BitFlag(13),
4221
+
4222
+ /**
4223
+ * AliroBleuwb
4224
+ *
4225
+ * Locks that support this feature implement the Bluetooth LE + UWB Access Control Flow as defined in
4226
+ * [Aliro].
4227
+ *
4681
4228
  * @see {@link MatterSpecification.v13.Cluster} § 5.2.4.13
4682
4229
  */
4683
- unbolting: BitFlag(12)
4230
+ aliroBleuwb: BitFlag(14)
4684
4231
  },
4685
4232
 
4686
4233
  attributes: {
@@ -4693,14 +4240,14 @@ export namespace DoorLock {
4693
4240
  * Locked and Unlocked so it is only partially secured. For example, a deadbolt could be partially extended
4694
4241
  * and not in a dead latched state.
4695
4242
  *
4696
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.2
4243
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.1
4697
4244
  */
4698
- lockState: Attribute(0x0, TlvNullable(TlvEnum<LockState>()), { scene: true }),
4245
+ lockState: Attribute(0x0, TlvNullable(TlvEnum<LockState>())),
4699
4246
 
4700
4247
  /**
4701
4248
  * Indicates the type of door lock as defined in LockTypeEnum.
4702
4249
  *
4703
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.3
4250
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.2
4704
4251
  */
4705
4252
  lockType: Attribute(0x1, TlvEnum<LockType>()),
4706
4253
 
@@ -4708,7 +4255,7 @@ export namespace DoorLock {
4708
4255
  * Indicates if the lock is currently able to (Enabled) or not able to (Disabled) process remote Lock,
4709
4256
  * Unlock, or Unlock with Timeout commands.
4710
4257
  *
4711
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.4
4258
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.3
4712
4259
  */
4713
4260
  actuatorEnabled: Attribute(0x2, TlvBoolean),
4714
4261
 
@@ -4716,7 +4263,7 @@ export namespace DoorLock {
4716
4263
  * Indicates the language for the on-screen or audible user interface using a 2- byte language code from
4717
4264
  * ISO-639-1.
4718
4265
  *
4719
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.23
4266
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.20
4720
4267
  */
4721
4268
  language: OptionalWritableAttribute(
4722
4269
  0x21,
@@ -4727,7 +4274,7 @@ export namespace DoorLock {
4727
4274
  /**
4728
4275
  * Indicates the settings for the LED support, as defined by LEDSettingEnum.
4729
4276
  *
4730
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.24
4277
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.21
4731
4278
  */
4732
4279
  ledSettings: OptionalWritableAttribute(
4733
4280
  0x22,
@@ -4740,14 +4287,14 @@ export namespace DoorLock {
4740
4287
  * 0=disabled. If set, unlock operations from any source will be timed. For one time unlock with timeout
4741
4288
  * use the specific command.
4742
4289
  *
4743
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.25
4290
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.22
4744
4291
  */
4745
4292
  autoRelockTime: OptionalWritableAttribute(0x23, TlvUInt32, { writeAcl: AccessLevel.Manage }),
4746
4293
 
4747
4294
  /**
4748
4295
  * Indicates the sound volume on a door lock as defined by SoundVolumeEnum.
4749
4296
  *
4750
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.26
4297
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.23
4751
4298
  */
4752
4299
  soundVolume: OptionalWritableAttribute(
4753
4300
  0x24,
@@ -4758,7 +4305,7 @@ export namespace DoorLock {
4758
4305
  /**
4759
4306
  * Indicates the current operating mode of the lock as defined in OperatingModeEnum.
4760
4307
  *
4761
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.27
4308
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.24
4762
4309
  */
4763
4310
  operatingMode: WritableAttribute(
4764
4311
  0x25,
@@ -4771,7 +4318,7 @@ export namespace DoorLock {
4771
4318
  * by the lock. All operating modes NOT supported by a lock shall be set to one. The value of the
4772
4319
  * OperatingMode enumeration defines the related bit to be set.
4773
4320
  *
4774
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.28
4321
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.25
4775
4322
  */
4776
4323
  supportedOperatingModes: FixedAttribute(
4777
4324
  0x26,
@@ -4781,8 +4328,10 @@ export namespace DoorLock {
4781
4328
 
4782
4329
  /**
4783
4330
  * Indicates the default configurations as they are physically set on the device (example: hardware dip
4784
- * switch setting, etc…) and represents the default setting for some of the attributes within this cluster
4785
- * (for example: LED, Auto Lock, Sound Volume, and Operating Mode attributes).
4331
+ * switch setting, etc…) and represents the default setting for some of the
4332
+ *
4333
+ * attributes within this cluster (for example: LED, Auto Lock, Sound Volume, and Operating Mode
4334
+ * attributes).
4786
4335
  *
4787
4336
  * This is a read-only attribute and is intended to allow clients to determine what changes may need to be
4788
4337
  * made without having to query all the included attributes. It may be beneficial for the clients to know
@@ -4796,7 +4345,7 @@ export namespace DoorLock {
4796
4345
  * current Sound Volume is High Volume. Therefore, if the client wants to query/modify the current Sound
4797
4346
  * Volume setting on the server, the client SHOULD read/write to the Sound Volume attribute.
4798
4347
  *
4799
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.29
4348
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.26
4800
4349
  */
4801
4350
  defaultConfigurationRegister: OptionalAttribute(0x27, TlvBitmap(TlvUInt16, ConfigurationRegister)),
4802
4351
 
@@ -4807,7 +4356,7 @@ export namespace DoorLock {
4807
4356
  * lock for those features whose bit is set to 0 in the LocalProgrammingFeatures attribute. Local
4808
4357
  * programming shall be enabled by default.
4809
4358
  *
4810
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.30
4359
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.27
4811
4360
  */
4812
4361
  enableLocalProgramming: OptionalWritableAttribute(
4813
4362
  0x28,
@@ -4819,7 +4368,7 @@ export namespace DoorLock {
4819
4368
  * This attribute shall enable/disable the ability to lock the door lock with a single touch on the door
4820
4369
  * lock.
4821
4370
  *
4822
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.31
4371
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.28
4823
4372
  */
4824
4373
  enableOneTouchLocking: OptionalWritableAttribute(
4825
4374
  0x29,
@@ -4831,7 +4380,7 @@ export namespace DoorLock {
4831
4380
  * This attribute shall enable/disable an inside LED that allows the user to see at a glance if the door is
4832
4381
  * locked.
4833
4382
  *
4834
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.32
4383
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.29
4835
4384
  */
4836
4385
  enableInsideStatusLed: OptionalWritableAttribute(
4837
4386
  0x2a,
@@ -4843,7 +4392,7 @@ export namespace DoorLock {
4843
4392
  * This attribute shall enable/disable a button inside the door that is used to put the lock into privacy
4844
4393
  * mode. When the lock is in privacy mode it cannot be manipulated from the outside.
4845
4394
  *
4846
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.33
4395
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.30
4847
4396
  */
4848
4397
  enablePrivacyModeButton: OptionalWritableAttribute(
4849
4398
  0x2b,
@@ -4860,7 +4409,7 @@ export namespace DoorLock {
4860
4409
  *
4861
4410
  * The features that can be disabled from local programming are defined in LocalProgrammingFeaturesBitmap.
4862
4411
  *
4863
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.34
4412
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.31
4864
4413
  */
4865
4414
  localProgrammingFeatures: OptionalWritableAttribute(
4866
4415
  0x2c,
@@ -4876,13 +4425,13 @@ export namespace DoorLock {
4876
4425
  *
4877
4426
  * This mask DOES NOT apply to the Events mechanism of this cluster.
4878
4427
  *
4879
- * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.40
4428
+ * @see {@link MatterSpecification.v13.Cluster} § 5.2.9.37
4880
4429
  */
4881
4430
  alarmMask: OptionalWritableAttribute(
4882
4431
  0x40,
4883
4432
  TlvBitmap(TlvUInt16, AlarmMask),
4884
4433
  {
4885
- default: BitsFromPartial(AlarmMask, { lockJammed: true, lockFactoryReset: true, na: true, lockRadioPowerCycled: true, wrongCodeEntryLimit: true, frontEscutcheonRemoved: true, doorForcedOpen: true }),
4434
+ default: BitsFromPartial(AlarmMask, { lockJammed: true, lockFactoryReset: true, lockRadioPowerCycled: true, wrongCodeEntryLimit: true, frontEscutcheonRemoved: true, doorForcedOpen: true }),
4886
4435
  writeAcl: AccessLevel.Administer
4887
4436
  }
4888
4437
  )
@@ -4894,8 +4443,6 @@ export namespace DoorLock {
4894
4443
  * lock. The door lock may require a PIN depending on the value of the RequirePINForRemoteOperation
4895
4444
  * attribute.
4896
4445
  *
4897
- * † The PIN/RFID Code is an obsolete field name, use PINCode instead.
4898
- *
4899
4446
  * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.1
4900
4447
  */
4901
4448
  lockDoor: Command(0x0, TlvLockDoorRequest, 0x0, TlvNoResponse, { timed: true }),
@@ -4910,8 +4457,6 @@ export namespace DoorLock {
4910
4457
  * If the attribute AutoRelockTime is supported the lock will transition to the locked state when the auto
4911
4458
  * relock time has expired.
4912
4459
  *
4913
- * † The PIN/RFID Code is an obsolete field name, use PINCode instead.
4914
- *
4915
4460
  * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.2
4916
4461
  */
4917
4462
  unlockDoor: Command(0x1, TlvUnlockDoorRequest, 0x1, TlvNoResponse, { timed: true }),
@@ -4919,12 +4464,9 @@ export namespace DoorLock {
4919
4464
  /**
4920
4465
  * This command causes the lock device to unlock the door with a timeout parameter. After the time in
4921
4466
  * seconds specified in the timeout field, the lock device will relock itself automatically. This timeout
4922
- * parameter is only temporary for this message transition and overrides the default relock time
4923
- *
4924
- * as specified in the AutoRelockTime attribute. If the door lock device is not capable of or does not want
4925
- * to support temporary Relock Timeout, it SHOULD NOT support this optional command.
4926
- *
4927
- * † The PIN/RFID Code is an obsolete field name, use PINCode instead.
4467
+ * parameter is only temporary for this message transition and overrides the default relock time as
4468
+ * specified in the AutoRelockTime attribute. If the door lock device is not capable of or does not want to
4469
+ * support temporary Relock Timeout, it SHOULD NOT support this optional command.
4928
4470
  *
4929
4471
  * @see {@link MatterSpecification.v13.Cluster} § 5.2.10.3
4930
4472
  */
@@ -4964,8 +4506,9 @@ export namespace DoorLock {
4964
4506
  * ◦ shall generate a LockOperation event of LockOperationType Unlatch when it is actuated from the
4965
4507
  * outside.
4966
4508
  *
4967
- * ◦ may generate a LockOperation event of LockOperationType Unlatch when it is actuated from the
4968
- * inside.
4509
+ * ◦ may generate a LockOperation event of LockOperationType Unlatch when it is actuated
4510
+ *
4511
+ * from the inside.
4969
4512
  *
4970
4513
  * @see {@link MatterSpecification.v13.Cluster} § 5.2.11.3
4971
4514
  */
@@ -4985,7 +4528,6 @@ export namespace DoorLock {
4985
4528
  */
4986
4529
  extensions: MutableCluster.Extensions(
4987
4530
  { flags: { doorPositionSensor: true }, component: DoorPositionSensorComponent },
4988
- { flags: { logging: true }, component: LoggingComponent },
4989
4531
  { flags: { user: true }, component: UserComponent },
4990
4532
  { flags: { pinCredential: true }, component: PinCredentialComponent },
4991
4533
  { flags: { rfidCredential: true }, component: RfidCredentialComponent },
@@ -4999,9 +4541,8 @@ export namespace DoorLock {
4999
4541
  flags: { credentialOverTheAirAccess: true, pinCredential: true },
5000
4542
  component: CredentialOverTheAirAccessAndPinCredentialComponent
5001
4543
  },
5002
- { flags: { notification: true, pinCredential: true }, component: NotificationAndPinCredentialComponent },
5003
- { flags: { notification: true }, component: NotificationComponent },
5004
- { flags: { notification: true, rfidCredential: true }, component: NotificationAndRfidCredentialComponent },
4544
+ { flags: { aliroProvisioning: true }, component: AliroProvisioningComponent },
4545
+ { flags: { aliroBleuwb: true }, component: AliroBleuwbComponent },
5005
4546
  {
5006
4547
  flags: { pinCredential: true, rfidCredential: true, fingerCredentials: true, user: false },
5007
4548
  component: PinCredentialAndRfidCredentialAndFingerCredentialsNotUserComponent
@@ -5009,6 +4550,7 @@ export namespace DoorLock {
5009
4550
  { flags: { user: false }, component: NotUserComponent },
5010
4551
  { flags: { rfidCredential: true, user: false }, component: RfidCredentialNotUserComponent },
5011
4552
  { flags: { unbolting: true }, component: UnboltingComponent },
4553
+ { flags: { aliroProvisioning: true, user: false }, component: false },
5012
4554
 
5013
4555
  {
5014
4556
  flags: {
@@ -5020,7 +4562,9 @@ export namespace DoorLock {
5020
4562
  },
5021
4563
 
5022
4564
  component: false
5023
- }
4565
+ },
4566
+
4567
+ { flags: { aliroBleuwb: true, aliroProvisioning: false }, component: false }
5024
4568
  )
5025
4569
  });
5026
4570
 
@@ -5034,6 +4578,8 @@ export namespace DoorLock {
5034
4578
  * the locking functionality is abstracted from the cluster. The cluster has a small list of mandatory attributes
5035
4579
  * and functions and a list of optional features.
5036
4580
  *
4581
+ * Figure 16. Typical Usage of the Door Lock Cluster
4582
+ *
5037
4583
  * DoorLockCluster supports optional features that you can enable with the DoorLockCluster.with() factory method.
5038
4584
  *
5039
4585
  * @see {@link MatterSpecification.v13.Cluster} § 5.2
@@ -5042,7 +4588,6 @@ export namespace DoorLock {
5042
4588
 
5043
4589
  export const Cluster: Cluster = ClusterInstance;
5044
4590
  const DPS = { doorPositionSensor: true };
5045
- const LOG = { logging: true };
5046
4591
  const USR = { user: true };
5047
4592
  const PIN = { pinCredential: true };
5048
4593
  const RID = { rfidCredential: true };
@@ -5051,9 +4596,8 @@ export namespace DoorLock {
5051
4596
  const HDSCH = { holidaySchedules: true };
5052
4597
  const PIN_NOT_USR = { pinCredential: true, user: false };
5053
4598
  const COTA_PIN = { credentialOverTheAirAccess: true, pinCredential: true };
5054
- const NOT_PIN = { notification: true, pinCredential: true };
5055
- const NOT = { notification: true };
5056
- const NOT_RID = { notification: true, rfidCredential: true };
4599
+ const ALIRO = { aliroProvisioning: true };
4600
+ const ALBU = { aliroBleuwb: true };
5057
4601
  const PIN_RID_FGP_NOT_USR = { pinCredential: true, rfidCredential: true, fingerCredentials: true, user: false };
5058
4602
  const RID_NOT_USR = { rfidCredential: true, user: false };
5059
4603
  const UBOLT = { unbolting: true };
@@ -5085,10 +4629,6 @@ export namespace DoorLock {
5085
4629
  DoorPositionSensorComponent.attributes.openPeriod,
5086
4630
  { optionalIf: [DPS] }
5087
4631
  ),
5088
- numberOfLogRecordsSupported: MutableCluster.AsConditional(
5089
- LoggingComponent.attributes.numberOfLogRecordsSupported,
5090
- { mandatoryIf: [LOG] }
5091
- ),
5092
4632
  numberOfTotalUsersSupported: MutableCluster.AsConditional(
5093
4633
  UserComponent.attributes.numberOfTotalUsersSupported,
5094
4634
  { mandatoryIf: [USR] }
@@ -5137,10 +4677,6 @@ export namespace DoorLock {
5137
4677
  UserComponent.attributes.numberOfCredentialsSupportedPerUser,
5138
4678
  { mandatoryIf: [USR] }
5139
4679
  ),
5140
- enableLogging: MutableCluster.AsConditional(
5141
- LoggingComponent.attributes.enableLogging,
5142
- { mandatoryIf: [LOG] }
5143
- ),
5144
4680
  wrongCodeEntryLimit: MutableCluster.AsConditional(
5145
4681
  PinCredentialOrRfidCredentialComponent.attributes.wrongCodeEntryLimit,
5146
4682
  { mandatoryIf: [PIN, RID] }
@@ -5161,39 +4697,46 @@ export namespace DoorLock {
5161
4697
  UserComponent.attributes.expiringUserTimeout,
5162
4698
  { optionalIf: [USR] }
5163
4699
  ),
5164
- keypadOperationEventMask: MutableCluster.AsConditional(
5165
- NotificationAndPinCredentialComponent.attributes.keypadOperationEventMask,
5166
- { optionalIf: [NOT_PIN] }
4700
+ aliroReaderVerificationKey: MutableCluster.AsConditional(
4701
+ AliroProvisioningComponent.attributes.aliroReaderVerificationKey,
4702
+ { mandatoryIf: [ALIRO] }
5167
4703
  ),
5168
- remoteOperationEventMask: MutableCluster.AsConditional(
5169
- NotificationComponent.attributes.remoteOperationEventMask,
5170
- { optionalIf: [NOT] }
4704
+ aliroReaderGroupIdentifier: MutableCluster.AsConditional(
4705
+ AliroProvisioningComponent.attributes.aliroReaderGroupIdentifier,
4706
+ { mandatoryIf: [ALIRO] }
5171
4707
  ),
5172
- manualOperationEventMask: MutableCluster.AsConditional(
5173
- NotificationComponent.attributes.manualOperationEventMask,
5174
- { optionalIf: [NOT] }
4708
+ aliroReaderGroupSubIdentifier: MutableCluster.AsConditional(
4709
+ AliroProvisioningComponent.attributes.aliroReaderGroupSubIdentifier,
4710
+ { mandatoryIf: [ALIRO] }
5175
4711
  ),
5176
- rfidOperationEventMask: MutableCluster.AsConditional(
5177
- NotificationAndRfidCredentialComponent.attributes.rfidOperationEventMask,
5178
- { optionalIf: [NOT_RID] }
4712
+ aliroExpeditedTransactionSupportedProtocolVersions: MutableCluster.AsConditional(
4713
+ AliroProvisioningComponent.attributes.aliroExpeditedTransactionSupportedProtocolVersions,
4714
+ { mandatoryIf: [ALIRO] }
5179
4715
  ),
5180
- keypadProgrammingEventMask: MutableCluster.AsConditional(
5181
- NotificationAndPinCredentialComponent.attributes.keypadProgrammingEventMask,
5182
- { optionalIf: [NOT_PIN] }
4716
+ aliroGroupResolvingKey: MutableCluster.AsConditional(
4717
+ AliroBleuwbComponent.attributes.aliroGroupResolvingKey,
4718
+ { mandatoryIf: [ALBU] }
5183
4719
  ),
5184
- remoteProgrammingEventMask: MutableCluster.AsConditional(
5185
- NotificationComponent.attributes.remoteProgrammingEventMask,
5186
- { optionalIf: [NOT] }
4720
+ aliroSupportedBleuwbProtocolVersions: MutableCluster.AsConditional(
4721
+ AliroBleuwbComponent.attributes.aliroSupportedBleuwbProtocolVersions,
4722
+ { mandatoryIf: [ALBU] }
5187
4723
  ),
5188
- rfidProgrammingEventMask: MutableCluster.AsConditional(
5189
- NotificationAndRfidCredentialComponent.attributes.rfidProgrammingEventMask,
5190
- { optionalIf: [NOT_RID] }
4724
+ aliroBleAdvertisingVersion: MutableCluster.AsConditional(
4725
+ AliroBleuwbComponent.attributes.aliroBleAdvertisingVersion,
4726
+ { mandatoryIf: [ALBU] }
4727
+ ),
4728
+ numberOfAliroCredentialIssuerKeysSupported: MutableCluster.AsConditional(
4729
+ AliroProvisioningComponent.attributes.numberOfAliroCredentialIssuerKeysSupported,
4730
+ { mandatoryIf: [ALIRO] }
4731
+ ),
4732
+ numberOfAliroEndpointKeysSupported: MutableCluster.AsConditional(
4733
+ AliroProvisioningComponent.attributes.numberOfAliroEndpointKeysSupported,
4734
+ { mandatoryIf: [ALIRO] }
5191
4735
  )
5192
4736
  },
5193
4737
 
5194
4738
  commands: {
5195
4739
  ...Cluster.commands,
5196
- getLogRecord: MutableCluster.AsConditional(LoggingComponent.commands.getLogRecord, { mandatoryIf: [LOG] }),
5197
4740
  setPinCode: MutableCluster.AsConditional(
5198
4741
  PinCredentialNotUserComponent.commands.setPinCode,
5199
4742
  { mandatoryIf: [PIN_NOT_USR] }
@@ -5290,7 +4833,15 @@ export namespace DoorLock {
5290
4833
  UserComponent.commands.clearCredential,
5291
4834
  { mandatoryIf: [USR] }
5292
4835
  ),
5293
- unboltDoor: MutableCluster.AsConditional(UnboltingComponent.commands.unboltDoor, { mandatoryIf: [UBOLT] })
4836
+ unboltDoor: MutableCluster.AsConditional(UnboltingComponent.commands.unboltDoor, { mandatoryIf: [UBOLT] }),
4837
+ setAliroReaderConfig: MutableCluster.AsConditional(
4838
+ AliroProvisioningComponent.commands.setAliroReaderConfig,
4839
+ { mandatoryIf: [ALIRO] }
4840
+ ),
4841
+ clearAliroReaderConfig: MutableCluster.AsConditional(
4842
+ AliroProvisioningComponent.commands.clearAliroReaderConfig,
4843
+ { mandatoryIf: [ALIRO] }
4844
+ )
5294
4845
  },
5295
4846
 
5296
4847
  events: {