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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1369) hide show
  1. package/dist/cjs/aspects/Conformance.d.ts +5 -3
  2. package/dist/cjs/aspects/Conformance.d.ts.map +1 -1
  3. package/dist/cjs/aspects/Conformance.js +23 -2
  4. package/dist/cjs/aspects/Conformance.js.map +1 -1
  5. package/dist/cjs/aspects/Quality.d.ts +9 -2
  6. package/dist/cjs/aspects/Quality.d.ts.map +1 -1
  7. package/dist/cjs/aspects/Quality.js +3 -1
  8. package/dist/cjs/aspects/Quality.js.map +1 -1
  9. package/dist/cjs/common/Specification.d.ts +3 -3
  10. package/dist/cjs/common/Specification.d.ts.map +1 -1
  11. package/dist/cjs/common/Specification.js +3 -3
  12. package/dist/cjs/logic/cluster-variance/IllegalFeatureCombinations.js +82 -66
  13. package/dist/cjs/logic/cluster-variance/IllegalFeatureCombinations.js.map +1 -1
  14. package/dist/cjs/logic/cluster-variance/InferredComponents.js +24 -1
  15. package/dist/cjs/logic/cluster-variance/InferredComponents.js.map +1 -1
  16. package/dist/cjs/logic/definition-validation/ValueValidator.d.ts.map +1 -1
  17. package/dist/cjs/logic/definition-validation/ValueValidator.js +11 -6
  18. package/dist/cjs/logic/definition-validation/ValueValidator.js.map +1 -1
  19. package/dist/cjs/models/AttributeModel.d.ts.map +1 -1
  20. package/dist/cjs/models/AttributeModel.js +1 -4
  21. package/dist/cjs/models/AttributeModel.js.map +1 -1
  22. package/dist/cjs/models/ClusterModel.d.ts.map +1 -1
  23. package/dist/cjs/models/ClusterModel.js +1 -3
  24. package/dist/cjs/models/ClusterModel.js.map +1 -1
  25. package/dist/cjs/models/CommandModel.d.ts.map +1 -1
  26. package/dist/cjs/models/CommandModel.js +1 -4
  27. package/dist/cjs/models/CommandModel.js.map +1 -1
  28. package/dist/cjs/models/DatatypeModel.d.ts +1 -0
  29. package/dist/cjs/models/DatatypeModel.d.ts.map +1 -1
  30. package/dist/cjs/models/DatatypeModel.js +2 -4
  31. package/dist/cjs/models/DatatypeModel.js.map +1 -1
  32. package/dist/cjs/models/DeviceTypeModel.d.ts +1 -0
  33. package/dist/cjs/models/DeviceTypeModel.d.ts.map +1 -1
  34. package/dist/cjs/models/DeviceTypeModel.js +2 -3
  35. package/dist/cjs/models/DeviceTypeModel.js.map +1 -1
  36. package/dist/cjs/models/EndpointModel.d.ts +1 -0
  37. package/dist/cjs/models/EndpointModel.d.ts.map +1 -1
  38. package/dist/cjs/models/EndpointModel.js +2 -3
  39. package/dist/cjs/models/EndpointModel.js.map +1 -1
  40. package/dist/cjs/models/EventModel.d.ts.map +1 -1
  41. package/dist/cjs/models/EventModel.js +1 -4
  42. package/dist/cjs/models/EventModel.js.map +1 -1
  43. package/dist/cjs/models/FabricModel.d.ts +1 -0
  44. package/dist/cjs/models/FabricModel.d.ts.map +1 -1
  45. package/dist/cjs/models/FabricModel.js +2 -3
  46. package/dist/cjs/models/FabricModel.js.map +1 -1
  47. package/dist/cjs/models/FieldModel.d.ts +1 -0
  48. package/dist/cjs/models/FieldModel.d.ts.map +1 -1
  49. package/dist/cjs/models/FieldModel.js +2 -4
  50. package/dist/cjs/models/FieldModel.js.map +1 -1
  51. package/dist/cjs/models/Globals.d.ts +27 -1
  52. package/dist/cjs/models/Globals.d.ts.map +1 -1
  53. package/dist/cjs/models/MatterModel.d.ts +1 -0
  54. package/dist/cjs/models/MatterModel.d.ts.map +1 -1
  55. package/dist/cjs/models/MatterModel.js +2 -4
  56. package/dist/cjs/models/MatterModel.js.map +1 -1
  57. package/dist/cjs/models/Model.d.ts +26 -2
  58. package/dist/cjs/models/Model.d.ts.map +1 -1
  59. package/dist/cjs/models/Model.js +44 -5
  60. package/dist/cjs/models/Model.js.map +1 -1
  61. package/dist/cjs/models/NodeModel.d.ts +1 -0
  62. package/dist/cjs/models/NodeModel.d.ts.map +1 -1
  63. package/dist/cjs/models/NodeModel.js +2 -3
  64. package/dist/cjs/models/NodeModel.js.map +1 -1
  65. package/dist/cjs/models/RequirementModel.d.ts +1 -0
  66. package/dist/cjs/models/RequirementModel.d.ts.map +1 -1
  67. package/dist/cjs/models/RequirementModel.js +2 -3
  68. package/dist/cjs/models/RequirementModel.js.map +1 -1
  69. package/dist/cjs/models/SemanticNamespaceModel.d.ts +1 -0
  70. package/dist/cjs/models/SemanticNamespaceModel.d.ts.map +1 -1
  71. package/dist/cjs/models/SemanticNamespaceModel.js +2 -3
  72. package/dist/cjs/models/SemanticNamespaceModel.js.map +1 -1
  73. package/dist/cjs/models/SemanticTagModel.d.ts +1 -0
  74. package/dist/cjs/models/SemanticTagModel.d.ts.map +1 -1
  75. package/dist/cjs/models/SemanticTagModel.js +2 -3
  76. package/dist/cjs/models/SemanticTagModel.js.map +1 -1
  77. package/dist/cjs/standard/elements/AcceptedCommandList.d.ts.map +1 -1
  78. package/dist/cjs/standard/elements/AcceptedCommandList.js +1 -1
  79. package/dist/cjs/standard/elements/AcceptedCommandList.js.map +1 -1
  80. package/dist/cjs/standard/elements/AccessControl.d.ts.map +1 -1
  81. package/dist/cjs/standard/elements/AccessControl.js +298 -37
  82. package/dist/cjs/standard/elements/AccessControl.js.map +2 -2
  83. package/dist/cjs/standard/elements/Actions.d.ts.map +1 -1
  84. package/dist/cjs/standard/elements/Actions.js +6 -6
  85. package/dist/cjs/standard/elements/Actions.js.map +1 -1
  86. package/dist/cjs/standard/elements/AdministratorCommissioning.d.ts.map +1 -1
  87. package/dist/cjs/standard/elements/AdministratorCommissioning.js +18 -12
  88. package/dist/cjs/standard/elements/AdministratorCommissioning.js.map +1 -1
  89. package/dist/cjs/standard/elements/AggregatorDT.d.ts.map +1 -1
  90. package/dist/cjs/standard/elements/AggregatorDT.js +18 -3
  91. package/dist/cjs/standard/elements/AggregatorDT.js.map +2 -2
  92. package/dist/cjs/standard/elements/AirPurifierDT.d.ts.map +1 -1
  93. package/dist/cjs/standard/elements/AirPurifierDT.js +8 -1
  94. package/dist/cjs/standard/elements/AirPurifierDT.js.map +1 -1
  95. package/dist/cjs/standard/elements/AlarmBase.d.ts.map +1 -1
  96. package/dist/cjs/standard/elements/AlarmBase.js +1 -1
  97. package/dist/cjs/standard/elements/AlarmBase.js.map +1 -1
  98. package/dist/cjs/standard/elements/ApplicationLauncher.d.ts.map +1 -1
  99. package/dist/cjs/standard/elements/ApplicationLauncher.js +12 -4
  100. package/dist/cjs/standard/elements/ApplicationLauncher.js.map +1 -1
  101. package/dist/cjs/standard/elements/AreaNamespaceNS.d.ts +8 -0
  102. package/dist/cjs/standard/elements/AreaNamespaceNS.d.ts.map +1 -0
  103. package/dist/cjs/standard/elements/AreaNamespaceNS.js +147 -0
  104. package/dist/cjs/standard/elements/AreaNamespaceNS.js.map +6 -0
  105. package/dist/cjs/standard/elements/AtomicAttributeStatusStruct.d.ts +8 -0
  106. package/dist/cjs/standard/elements/AtomicAttributeStatusStruct.d.ts.map +1 -0
  107. package/dist/cjs/standard/elements/AtomicAttributeStatusStruct.js +56 -0
  108. package/dist/cjs/standard/elements/AtomicAttributeStatusStruct.js.map +6 -0
  109. package/dist/cjs/standard/elements/AtomicRequestTypeEnum.d.ts +8 -0
  110. package/dist/cjs/standard/elements/AtomicRequestTypeEnum.d.ts.map +1 -0
  111. package/dist/cjs/standard/elements/AtomicRequestTypeEnum.js +43 -0
  112. package/dist/cjs/standard/elements/AtomicRequestTypeEnum.js.map +6 -0
  113. package/dist/cjs/standard/elements/BallastConfiguration.js +1 -1
  114. package/dist/cjs/standard/elements/BasicInformation.d.ts.map +1 -1
  115. package/dist/cjs/standard/elements/BasicInformation.js +17 -19
  116. package/dist/cjs/standard/elements/BasicInformation.js.map +1 -1
  117. package/dist/cjs/standard/elements/BatteryStorageDT.d.ts +8 -0
  118. package/dist/cjs/standard/elements/BatteryStorageDT.d.ts.map +1 -0
  119. package/dist/cjs/standard/elements/BatteryStorageDT.js +53 -0
  120. package/dist/cjs/standard/elements/BatteryStorageDT.js.map +6 -0
  121. package/dist/cjs/standard/elements/BooleanStateConfiguration.js +2 -2
  122. package/dist/cjs/standard/elements/BridgedDeviceBasicInformation.d.ts.map +1 -1
  123. package/dist/cjs/standard/elements/BridgedDeviceBasicInformation.js +102 -31
  124. package/dist/cjs/standard/elements/BridgedDeviceBasicInformation.js.map +2 -2
  125. package/dist/cjs/standard/elements/BridgedNodeDT.d.ts.map +1 -1
  126. package/dist/cjs/standard/elements/BridgedNodeDT.js +24 -2
  127. package/dist/cjs/standard/elements/BridgedNodeDT.js.map +2 -2
  128. package/dist/cjs/standard/elements/Channel.d.ts.map +1 -1
  129. package/dist/cjs/standard/elements/Channel.js +13 -14
  130. package/dist/cjs/standard/elements/Channel.js.map +1 -1
  131. package/dist/cjs/standard/elements/ColorControl.d.ts.map +1 -1
  132. package/dist/cjs/standard/elements/ColorControl.js +607 -478
  133. package/dist/cjs/standard/elements/ColorControl.js.map +1 -1
  134. package/dist/cjs/standard/elements/{PulseWidthModulation.d.ts → CommissionerControl.d.ts} +2 -2
  135. package/dist/cjs/standard/elements/CommissionerControl.d.ts.map +1 -0
  136. package/dist/cjs/standard/elements/CommissionerControl.js +130 -0
  137. package/dist/cjs/standard/elements/CommissionerControl.js.map +6 -0
  138. package/dist/cjs/standard/elements/ConcentrationMeasurement.js +0 -1
  139. package/dist/cjs/standard/elements/ConcentrationMeasurement.js.map +1 -1
  140. package/dist/cjs/standard/elements/ContentControl.d.ts.map +1 -1
  141. package/dist/cjs/standard/elements/ContentControl.js +34 -39
  142. package/dist/cjs/standard/elements/ContentControl.js.map +1 -1
  143. package/dist/cjs/standard/elements/ContentLauncher.d.ts.map +1 -1
  144. package/dist/cjs/standard/elements/ContentLauncher.js +13 -11
  145. package/dist/cjs/standard/elements/ContentLauncher.js.map +1 -1
  146. package/dist/cjs/standard/elements/DeviceEnergyManagement.d.ts.map +1 -1
  147. package/dist/cjs/standard/elements/DeviceEnergyManagement.js +154 -118
  148. package/dist/cjs/standard/elements/DeviceEnergyManagement.js.map +1 -1
  149. package/dist/cjs/standard/elements/DeviceEnergyManagementDT.d.ts.map +1 -1
  150. package/dist/cjs/standard/elements/DeviceEnergyManagementDT.js +26 -11
  151. package/dist/cjs/standard/elements/DeviceEnergyManagementDT.js.map +2 -2
  152. package/dist/cjs/standard/elements/DeviceEnergyManagementMode.d.ts.map +1 -1
  153. package/dist/cjs/standard/elements/DeviceEnergyManagementMode.js +38 -9
  154. package/dist/cjs/standard/elements/DeviceEnergyManagementMode.js.map +2 -2
  155. package/dist/cjs/standard/elements/DishwasherAlarm.d.ts.map +1 -1
  156. package/dist/cjs/standard/elements/DishwasherAlarm.js +1 -1
  157. package/dist/cjs/standard/elements/DishwasherAlarm.js.map +1 -1
  158. package/dist/cjs/standard/elements/DishwasherMode.d.ts.map +1 -1
  159. package/dist/cjs/standard/elements/DishwasherMode.js +35 -15
  160. package/dist/cjs/standard/elements/DishwasherMode.js.map +2 -2
  161. package/dist/cjs/standard/elements/DoorLock.d.ts.map +1 -1
  162. package/dist/cjs/standard/elements/DoorLock.js +505 -629
  163. package/dist/cjs/standard/elements/DoorLock.js.map +1 -1
  164. package/dist/cjs/standard/elements/DoorLockControllerDT.js +1 -1
  165. package/dist/cjs/standard/elements/DoorLockControllerDT.js.map +1 -1
  166. package/dist/cjs/standard/elements/DoorLockDT.js +2 -2
  167. package/dist/cjs/standard/elements/DoorLockDT.js.map +1 -1
  168. package/dist/{esm/standard/elements/PulseWidthModulation.d.ts → cjs/standard/elements/EcosystemInformation.d.ts} +2 -2
  169. package/dist/cjs/standard/elements/EcosystemInformation.d.ts.map +1 -0
  170. package/dist/cjs/standard/elements/EcosystemInformation.js +147 -0
  171. package/dist/cjs/standard/elements/EcosystemInformation.js.map +6 -0
  172. package/dist/cjs/standard/elements/ElectricalEnergyMeasurement.d.ts.map +1 -1
  173. package/dist/cjs/standard/elements/ElectricalEnergyMeasurement.js +9 -18
  174. package/dist/cjs/standard/elements/ElectricalEnergyMeasurement.js.map +1 -1
  175. package/dist/cjs/standard/elements/ElectricalMeasurementNS.js +1 -1
  176. package/dist/cjs/standard/elements/ElectricalPowerMeasurement.js +5 -5
  177. package/dist/cjs/standard/elements/ElectricalPowerMeasurement.js.map +1 -1
  178. package/dist/cjs/standard/elements/EnergyEvse.d.ts.map +1 -1
  179. package/dist/cjs/standard/elements/EnergyEvse.js +98 -51
  180. package/dist/cjs/standard/elements/EnergyEvse.js.map +1 -1
  181. package/dist/cjs/standard/elements/EnergyEvseDT.d.ts +8 -0
  182. package/dist/cjs/standard/elements/EnergyEvseDT.d.ts.map +1 -0
  183. package/dist/cjs/standard/elements/EnergyEvseDT.js +74 -0
  184. package/dist/cjs/standard/elements/EnergyEvseDT.js.map +6 -0
  185. package/dist/cjs/standard/elements/EnergyEvseMode.d.ts.map +1 -1
  186. package/dist/cjs/standard/elements/EnergyEvseMode.js +49 -8
  187. package/dist/cjs/standard/elements/EnergyEvseMode.js.map +2 -2
  188. package/dist/cjs/standard/elements/EnergyPreference.d.ts.map +1 -1
  189. package/dist/cjs/standard/elements/EnergyPreference.js +22 -19
  190. package/dist/cjs/standard/elements/EnergyPreference.js.map +1 -1
  191. package/dist/cjs/standard/elements/EthernetNetworkDiagnostics.d.ts.map +1 -1
  192. package/dist/cjs/standard/elements/EthernetNetworkDiagnostics.js +1 -1
  193. package/dist/cjs/standard/elements/EthernetNetworkDiagnostics.js.map +1 -1
  194. package/dist/cjs/standard/elements/EventList.d.ts.map +1 -1
  195. package/dist/cjs/standard/elements/EventList.js +1 -12
  196. package/dist/cjs/standard/elements/EventList.js.map +2 -2
  197. package/dist/cjs/standard/elements/FabricIndex.js +1 -1
  198. package/dist/cjs/standard/elements/FanControl.js +8 -10
  199. package/dist/cjs/standard/elements/FanControl.js.map +1 -1
  200. package/dist/cjs/standard/elements/FanDT.d.ts.map +1 -1
  201. package/dist/cjs/standard/elements/FanDT.js +8 -1
  202. package/dist/cjs/standard/elements/FanDT.js.map +1 -1
  203. package/dist/cjs/standard/elements/FeatureMap.d.ts.map +1 -1
  204. package/dist/cjs/standard/elements/FeatureMap.js +1 -1
  205. package/dist/cjs/standard/elements/FeatureMap.js.map +1 -1
  206. package/dist/cjs/standard/elements/FixedLabel.d.ts.map +1 -1
  207. package/dist/cjs/standard/elements/FixedLabel.js +1 -1
  208. package/dist/cjs/standard/elements/FixedLabel.js.map +1 -1
  209. package/dist/cjs/standard/elements/FlowMeasurement.d.ts.map +1 -1
  210. package/dist/cjs/standard/elements/FlowMeasurement.js +6 -6
  211. package/dist/cjs/standard/elements/FlowMeasurement.js.map +1 -1
  212. package/dist/cjs/standard/elements/GeneralCommissioning.d.ts.map +1 -1
  213. package/dist/cjs/standard/elements/GeneralCommissioning.js +162 -38
  214. package/dist/cjs/standard/elements/GeneralCommissioning.js.map +2 -2
  215. package/dist/cjs/standard/elements/GeneralDiagnostics.d.ts.map +1 -1
  216. package/dist/cjs/standard/elements/GeneralDiagnostics.js +12 -13
  217. package/dist/cjs/standard/elements/GeneralDiagnostics.js.map +1 -1
  218. package/dist/cjs/standard/elements/GeneratedCommandList.d.ts.map +1 -1
  219. package/dist/cjs/standard/elements/GeneratedCommandList.js +1 -1
  220. package/dist/cjs/standard/elements/GeneratedCommandList.js.map +1 -1
  221. package/dist/cjs/standard/elements/GroupKeyManagement.d.ts.map +1 -1
  222. package/dist/cjs/standard/elements/GroupKeyManagement.js +13 -12
  223. package/dist/cjs/standard/elements/GroupKeyManagement.js.map +1 -1
  224. package/dist/cjs/standard/elements/Groups.d.ts.map +1 -1
  225. package/dist/cjs/standard/elements/Groups.js +1 -1
  226. package/dist/cjs/standard/elements/Groups.js.map +1 -1
  227. package/dist/cjs/standard/elements/HeatPumpDT.d.ts +8 -0
  228. package/dist/cjs/standard/elements/HeatPumpDT.d.ts.map +1 -0
  229. package/dist/cjs/standard/elements/HeatPumpDT.js +60 -0
  230. package/dist/cjs/standard/elements/HeatPumpDT.js.map +6 -0
  231. package/dist/cjs/standard/elements/IcdManagement.d.ts.map +1 -1
  232. package/dist/cjs/standard/elements/IcdManagement.js +74 -20
  233. package/dist/cjs/standard/elements/IcdManagement.js.map +1 -1
  234. package/dist/cjs/standard/elements/Identify.js +5 -5
  235. package/dist/cjs/standard/elements/IlluminanceMeasurement.d.ts.map +1 -1
  236. package/dist/cjs/standard/elements/IlluminanceMeasurement.js +7 -7
  237. package/dist/cjs/standard/elements/IlluminanceMeasurement.js.map +1 -1
  238. package/dist/cjs/standard/elements/JointFabricAdministratorDT.d.ts +8 -0
  239. package/dist/cjs/standard/elements/JointFabricAdministratorDT.d.ts.map +1 -0
  240. package/dist/cjs/standard/elements/JointFabricAdministratorDT.js +60 -0
  241. package/dist/cjs/standard/elements/JointFabricAdministratorDT.js.map +6 -0
  242. package/dist/cjs/standard/elements/JointFabricDatastoreCluster.d.ts +8 -0
  243. package/dist/cjs/standard/elements/JointFabricDatastoreCluster.d.ts.map +1 -0
  244. package/dist/cjs/standard/elements/JointFabricDatastoreCluster.js +687 -0
  245. package/dist/cjs/standard/elements/JointFabricDatastoreCluster.js.map +6 -0
  246. package/dist/cjs/standard/elements/JointFabricPki.d.ts +8 -0
  247. package/dist/cjs/standard/elements/JointFabricPki.d.ts.map +1 -0
  248. package/dist/cjs/standard/elements/JointFabricPki.js +167 -0
  249. package/dist/cjs/standard/elements/JointFabricPki.js.map +6 -0
  250. package/dist/cjs/standard/elements/KeypadInput.d.ts.map +1 -1
  251. package/dist/cjs/standard/elements/KeypadInput.js +1 -1
  252. package/dist/cjs/standard/elements/KeypadInput.js.map +1 -1
  253. package/dist/cjs/standard/elements/LandmarkNamespaceNS.d.ts +8 -0
  254. package/dist/cjs/standard/elements/LandmarkNamespaceNS.d.ts.map +1 -0
  255. package/dist/cjs/standard/elements/LandmarkNamespaceNS.js +91 -0
  256. package/dist/cjs/standard/elements/LandmarkNamespaceNS.js.map +6 -0
  257. package/dist/cjs/standard/elements/LaundryDryerControls.js +2 -1
  258. package/dist/cjs/standard/elements/LaundryDryerControls.js.map +1 -1
  259. package/dist/cjs/standard/elements/LaundryNS.js +1 -1
  260. package/dist/cjs/standard/elements/LaundryWasherControls.d.ts.map +1 -1
  261. package/dist/cjs/standard/elements/LaundryWasherControls.js +8 -8
  262. package/dist/cjs/standard/elements/LaundryWasherControls.js.map +1 -1
  263. package/dist/cjs/standard/elements/LaundryWasherMode.d.ts.map +1 -1
  264. package/dist/cjs/standard/elements/LaundryWasherMode.js +36 -16
  265. package/dist/cjs/standard/elements/LaundryWasherMode.js.map +2 -2
  266. package/dist/cjs/standard/elements/LevelControl.d.ts.map +1 -1
  267. package/dist/cjs/standard/elements/LevelControl.js +14 -13
  268. package/dist/cjs/standard/elements/LevelControl.js.map +1 -1
  269. package/dist/cjs/standard/elements/LocalizationConfiguration.d.ts.map +1 -1
  270. package/dist/cjs/standard/elements/LocalizationConfiguration.js +11 -13
  271. package/dist/cjs/standard/elements/LocalizationConfiguration.js.map +1 -1
  272. package/dist/cjs/standard/elements/MediaInput.d.ts.map +1 -1
  273. package/dist/cjs/standard/elements/MediaInput.js +1 -1
  274. package/dist/cjs/standard/elements/MediaInput.js.map +1 -1
  275. package/dist/cjs/standard/elements/MediaPlayback.d.ts.map +1 -1
  276. package/dist/cjs/standard/elements/MediaPlayback.js +3 -2
  277. package/dist/cjs/standard/elements/MediaPlayback.js.map +1 -1
  278. package/dist/cjs/standard/elements/MicrowaveOvenControl.d.ts.map +1 -1
  279. package/dist/cjs/standard/elements/MicrowaveOvenControl.js +12 -12
  280. package/dist/cjs/standard/elements/MicrowaveOvenControl.js.map +1 -1
  281. package/dist/cjs/standard/elements/MicrowaveOvenMode.d.ts.map +1 -1
  282. package/dist/cjs/standard/elements/MicrowaveOvenMode.js +37 -12
  283. package/dist/cjs/standard/elements/MicrowaveOvenMode.js.map +2 -2
  284. package/dist/cjs/standard/elements/ModeBase.d.ts.map +1 -1
  285. package/dist/cjs/standard/elements/ModeBase.js +18 -69
  286. package/dist/cjs/standard/elements/ModeBase.js.map +1 -1
  287. package/dist/cjs/standard/elements/ModeSelect.js +10 -10
  288. package/dist/cjs/standard/elements/ModeSelect.js.map +1 -1
  289. package/dist/cjs/standard/elements/MountedDimmableLoadControlDT.d.ts +8 -0
  290. package/dist/cjs/standard/elements/MountedDimmableLoadControlDT.d.ts.map +1 -0
  291. package/dist/cjs/standard/elements/MountedDimmableLoadControlDT.js +104 -0
  292. package/dist/cjs/standard/elements/MountedDimmableLoadControlDT.js.map +6 -0
  293. package/dist/cjs/standard/elements/MountedOnOffControlDT.d.ts +8 -0
  294. package/dist/cjs/standard/elements/MountedOnOffControlDT.d.ts.map +1 -0
  295. package/dist/cjs/standard/elements/MountedOnOffControlDT.js +104 -0
  296. package/dist/cjs/standard/elements/MountedOnOffControlDT.js.map +6 -0
  297. package/dist/cjs/standard/elements/NetworkCommissioning.d.ts.map +1 -1
  298. package/dist/cjs/standard/elements/NetworkCommissioning.js +50 -37
  299. package/dist/cjs/standard/elements/NetworkCommissioning.js.map +1 -1
  300. package/dist/cjs/standard/elements/NetworkInfrastructureManagerDT.d.ts +8 -0
  301. package/dist/cjs/standard/elements/NetworkInfrastructureManagerDT.d.ts.map +1 -0
  302. package/dist/cjs/standard/elements/NetworkInfrastructureManagerDT.js +67 -0
  303. package/dist/cjs/standard/elements/NetworkInfrastructureManagerDT.js.map +6 -0
  304. package/dist/cjs/standard/elements/OccupancySensing.d.ts.map +1 -1
  305. package/dist/cjs/standard/elements/OccupancySensing.js +194 -41
  306. package/dist/cjs/standard/elements/OccupancySensing.js.map +2 -2
  307. package/dist/cjs/standard/elements/OccupancySensorDT.d.ts.map +1 -1
  308. package/dist/cjs/standard/elements/OccupancySensorDT.js +8 -1
  309. package/dist/cjs/standard/elements/OccupancySensorDT.js.map +1 -1
  310. package/dist/cjs/standard/elements/OnOff.d.ts.map +1 -1
  311. package/dist/cjs/standard/elements/OnOff.js +1 -1
  312. package/dist/cjs/standard/elements/OnOff.js.map +1 -1
  313. package/dist/cjs/standard/elements/OperationalCredentials.d.ts.map +1 -1
  314. package/dist/cjs/standard/elements/OperationalCredentials.js +7 -7
  315. package/dist/cjs/standard/elements/OperationalCredentials.js.map +1 -1
  316. package/dist/cjs/standard/elements/OperationalState.d.ts.map +1 -1
  317. package/dist/cjs/standard/elements/OperationalState.js +22 -22
  318. package/dist/cjs/standard/elements/OperationalState.js.map +1 -1
  319. package/dist/cjs/standard/elements/OtaSoftwareUpdateProvider.d.ts.map +1 -1
  320. package/dist/cjs/standard/elements/OtaSoftwareUpdateProvider.js +11 -12
  321. package/dist/cjs/standard/elements/OtaSoftwareUpdateProvider.js.map +1 -1
  322. package/dist/cjs/standard/elements/OtaSoftwareUpdateRequestor.d.ts.map +1 -1
  323. package/dist/cjs/standard/elements/OtaSoftwareUpdateRequestor.js +2 -1
  324. package/dist/cjs/standard/elements/OtaSoftwareUpdateRequestor.js.map +1 -1
  325. package/dist/cjs/standard/elements/OvenCavityOperationalState.d.ts.map +1 -1
  326. package/dist/cjs/standard/elements/OvenCavityOperationalState.js +7 -2
  327. package/dist/cjs/standard/elements/OvenCavityOperationalState.js.map +2 -2
  328. package/dist/cjs/standard/elements/OvenDT.js +1 -1
  329. package/dist/cjs/standard/elements/OvenMode.d.ts.map +1 -1
  330. package/dist/cjs/standard/elements/OvenMode.js +47 -12
  331. package/dist/cjs/standard/elements/OvenMode.js.map +2 -2
  332. package/dist/cjs/standard/elements/PowerSource.d.ts.map +1 -1
  333. package/dist/cjs/standard/elements/PowerSource.js +12 -12
  334. package/dist/cjs/standard/elements/PowerSource.js.map +1 -1
  335. package/dist/cjs/standard/elements/PowerSourceNS.js +5 -5
  336. package/dist/cjs/standard/elements/PressureMeasurement.js +7 -7
  337. package/dist/cjs/standard/elements/PressureMeasurement.js.map +1 -1
  338. package/dist/cjs/standard/elements/PumpConfigurationAndControl.d.ts.map +1 -1
  339. package/dist/cjs/standard/elements/PumpConfigurationAndControl.js +9 -19
  340. package/dist/cjs/standard/elements/PumpConfigurationAndControl.js.map +1 -1
  341. package/dist/cjs/standard/elements/PumpControllerDT.d.ts.map +1 -1
  342. package/dist/cjs/standard/elements/PumpControllerDT.js +1 -8
  343. package/dist/cjs/standard/elements/PumpControllerDT.js.map +1 -1
  344. package/dist/cjs/standard/elements/PumpDT.js +14 -14
  345. package/dist/cjs/standard/elements/RefrigeratorAlarm.d.ts.map +1 -1
  346. package/dist/cjs/standard/elements/RefrigeratorAlarm.js +1 -1
  347. package/dist/cjs/standard/elements/RefrigeratorAlarm.js.map +1 -1
  348. package/dist/cjs/standard/elements/RefrigeratorAndTemperatureControlledCabinetMode.d.ts.map +1 -1
  349. package/dist/cjs/standard/elements/RefrigeratorAndTemperatureControlledCabinetMode.js +36 -10
  350. package/dist/cjs/standard/elements/RefrigeratorAndTemperatureControlledCabinetMode.js.map +2 -2
  351. package/dist/cjs/standard/elements/RefrigeratorDT.js +1 -1
  352. package/dist/cjs/standard/elements/RefrigeratorNS.js +1 -1
  353. package/dist/cjs/standard/elements/RelativeHumidityMeasurement.d.ts.map +1 -1
  354. package/dist/cjs/standard/elements/RelativeHumidityMeasurement.js +3 -3
  355. package/dist/cjs/standard/elements/RelativeHumidityMeasurement.js.map +1 -1
  356. package/dist/cjs/standard/elements/RelativePositionNS.d.ts +8 -0
  357. package/dist/cjs/standard/elements/RelativePositionNS.d.ts.map +1 -0
  358. package/dist/cjs/standard/elements/RelativePositionNS.js +47 -0
  359. package/dist/cjs/standard/elements/RelativePositionNS.js.map +6 -0
  360. package/dist/cjs/standard/elements/ResourceMonitoring.d.ts.map +1 -1
  361. package/dist/cjs/standard/elements/ResourceMonitoring.js +1 -1
  362. package/dist/cjs/standard/elements/ResourceMonitoring.js.map +1 -1
  363. package/dist/cjs/standard/elements/RoboticVacuumCleanerDT.d.ts.map +1 -1
  364. package/dist/cjs/standard/elements/RoboticVacuumCleanerDT.js +8 -1
  365. package/dist/cjs/standard/elements/RoboticVacuumCleanerDT.js.map +1 -1
  366. package/dist/cjs/standard/elements/RoomAirConditionerNS.js +1 -1
  367. package/dist/cjs/standard/elements/RootNodeDT.d.ts.map +1 -1
  368. package/dist/cjs/standard/elements/RootNodeDT.js +20 -15
  369. package/dist/cjs/standard/elements/RootNodeDT.js.map +1 -1
  370. package/dist/cjs/standard/elements/RvcCleanMode.d.ts.map +1 -1
  371. package/dist/cjs/standard/elements/RvcCleanMode.js +30 -5
  372. package/dist/cjs/standard/elements/RvcCleanMode.js.map +2 -2
  373. package/dist/cjs/standard/elements/RvcOperationalState.d.ts.map +1 -1
  374. package/dist/cjs/standard/elements/RvcOperationalState.js +28 -5
  375. package/dist/cjs/standard/elements/RvcOperationalState.js.map +1 -1
  376. package/dist/cjs/standard/elements/RvcRunMode.d.ts.map +1 -1
  377. package/dist/cjs/standard/elements/RvcRunMode.js +30 -5
  378. package/dist/cjs/standard/elements/RvcRunMode.js.map +2 -2
  379. package/dist/cjs/standard/elements/ScenesManagement.d.ts.map +1 -1
  380. package/dist/cjs/standard/elements/ScenesManagement.js +4 -4
  381. package/dist/cjs/standard/elements/ScenesManagement.js.map +1 -1
  382. package/dist/cjs/standard/elements/SecondaryNetworkInterfaceDT.d.ts +8 -0
  383. package/dist/cjs/standard/elements/SecondaryNetworkInterfaceDT.d.ts.map +1 -0
  384. package/dist/cjs/standard/elements/SecondaryNetworkInterfaceDT.js +74 -0
  385. package/dist/cjs/standard/elements/SecondaryNetworkInterfaceDT.js.map +6 -0
  386. package/dist/cjs/standard/elements/ServiceArea.d.ts +8 -0
  387. package/dist/cjs/standard/elements/ServiceArea.d.ts.map +1 -0
  388. package/dist/cjs/standard/elements/ServiceArea.js +455 -0
  389. package/dist/cjs/standard/elements/ServiceArea.js.map +6 -0
  390. package/dist/cjs/standard/elements/SmokeCoAlarm.d.ts.map +1 -1
  391. package/dist/cjs/standard/elements/SmokeCoAlarm.js +13 -17
  392. package/dist/cjs/standard/elements/SmokeCoAlarm.js.map +1 -1
  393. package/dist/cjs/standard/elements/SoftwareVersionCertificationStatusEnum.js +1 -1
  394. package/dist/cjs/standard/elements/SolarPowerDT.d.ts +8 -0
  395. package/dist/cjs/standard/elements/SolarPowerDT.d.ts.map +1 -0
  396. package/dist/cjs/standard/elements/SolarPowerDT.js +53 -0
  397. package/dist/cjs/standard/elements/SolarPowerDT.js.map +6 -0
  398. package/dist/cjs/standard/elements/Switch.d.ts.map +1 -1
  399. package/dist/cjs/standard/elements/Switch.js +39 -25
  400. package/dist/cjs/standard/elements/Switch.js.map +1 -1
  401. package/dist/cjs/standard/elements/SwitchesNS.js +2 -2
  402. package/dist/cjs/standard/elements/TargetNavigator.js +2 -1
  403. package/dist/cjs/standard/elements/TargetNavigator.js.map +1 -1
  404. package/dist/cjs/standard/elements/TemperatureControl.js +3 -3
  405. package/dist/cjs/standard/elements/TemperatureControl.js.map +1 -1
  406. package/dist/cjs/standard/elements/TemperatureControlledCabinetDT.js +1 -1
  407. package/dist/cjs/standard/elements/TemperatureMeasurement.js +3 -3
  408. package/dist/cjs/standard/elements/TemperatureMeasurement.js.map +1 -1
  409. package/dist/cjs/standard/elements/Thermostat.d.ts.map +1 -1
  410. package/dist/cjs/standard/elements/Thermostat.js +673 -124
  411. package/dist/cjs/standard/elements/Thermostat.js.map +1 -1
  412. package/dist/cjs/standard/elements/ThermostatDT.d.ts.map +1 -1
  413. package/dist/cjs/standard/elements/ThermostatDT.js +20 -35
  414. package/dist/cjs/standard/elements/ThermostatDT.js.map +1 -1
  415. package/dist/cjs/standard/elements/ThermostatUserInterfaceConfiguration.js +0 -3
  416. package/dist/cjs/standard/elements/ThermostatUserInterfaceConfiguration.js.map +1 -1
  417. package/dist/cjs/standard/elements/ThreadBorderRouterManagement.d.ts +8 -0
  418. package/dist/cjs/standard/elements/ThreadBorderRouterManagement.d.ts.map +1 -0
  419. package/dist/cjs/standard/elements/ThreadBorderRouterManagement.js +198 -0
  420. package/dist/cjs/standard/elements/ThreadBorderRouterManagement.js.map +6 -0
  421. package/dist/cjs/standard/elements/ThreadNetworkDiagnostics.d.ts.map +1 -1
  422. package/dist/cjs/standard/elements/ThreadNetworkDiagnostics.js +26 -8
  423. package/dist/cjs/standard/elements/ThreadNetworkDiagnostics.js.map +1 -1
  424. package/dist/cjs/standard/elements/ThreadNetworkDirectory.d.ts +8 -0
  425. package/dist/cjs/standard/elements/ThreadNetworkDirectory.d.ts.map +1 -0
  426. package/dist/cjs/standard/elements/ThreadNetworkDirectory.js +181 -0
  427. package/dist/cjs/standard/elements/ThreadNetworkDirectory.js.map +6 -0
  428. package/dist/cjs/standard/elements/TimeFormatLocalization.js +1 -1
  429. package/dist/cjs/standard/elements/TimeSynchronization.d.ts.map +1 -1
  430. package/dist/cjs/standard/elements/TimeSynchronization.js +23 -11
  431. package/dist/cjs/standard/elements/TimeSynchronization.js.map +1 -1
  432. package/dist/cjs/standard/elements/UnitLocalization.d.ts.map +1 -1
  433. package/dist/cjs/standard/elements/UnitLocalization.js +1 -1
  434. package/dist/cjs/standard/elements/UnitLocalization.js.map +1 -1
  435. package/dist/cjs/standard/elements/UserLabel.d.ts.map +1 -1
  436. package/dist/cjs/standard/elements/UserLabel.js +1 -1
  437. package/dist/cjs/standard/elements/UserLabel.js.map +1 -1
  438. package/dist/cjs/standard/elements/ValidProxies.js +0 -1
  439. package/dist/cjs/standard/elements/ValidProxies.js.map +1 -1
  440. package/dist/cjs/standard/elements/ValveConfigurationAndControl.js +1 -0
  441. package/dist/cjs/standard/elements/ValveConfigurationAndControl.js.map +1 -1
  442. package/dist/cjs/standard/elements/WaterHeaterDT.d.ts +8 -0
  443. package/dist/cjs/standard/elements/WaterHeaterDT.d.ts.map +1 -0
  444. package/dist/cjs/standard/elements/WaterHeaterDT.js +77 -0
  445. package/dist/cjs/standard/elements/WaterHeaterDT.js.map +6 -0
  446. package/dist/cjs/standard/elements/WaterHeaterManagement.d.ts +8 -0
  447. package/dist/cjs/standard/elements/WaterHeaterManagement.d.ts.map +1 -0
  448. package/dist/cjs/standard/elements/WaterHeaterManagement.js +239 -0
  449. package/dist/cjs/standard/elements/WaterHeaterManagement.js.map +6 -0
  450. package/dist/cjs/standard/elements/WaterHeaterMode.d.ts +8 -0
  451. package/dist/cjs/standard/elements/WaterHeaterMode.d.ts.map +1 -0
  452. package/dist/cjs/standard/elements/WaterHeaterMode.js +100 -0
  453. package/dist/cjs/standard/elements/WaterHeaterMode.js.map +6 -0
  454. package/dist/cjs/standard/elements/WaterTankLevelMonitoring.d.ts +8 -0
  455. package/dist/cjs/standard/elements/WaterTankLevelMonitoring.d.ts.map +1 -0
  456. package/dist/cjs/standard/elements/{PulseWidthModulation.js → WaterTankLevelMonitoring.js} +9 -7
  457. package/dist/cjs/standard/elements/WaterTankLevelMonitoring.js.map +6 -0
  458. package/dist/cjs/standard/elements/WaterValveDT.js +5 -5
  459. package/dist/cjs/standard/elements/WiFiNetworkDiagnostics.d.ts.map +1 -1
  460. package/dist/cjs/standard/elements/WiFiNetworkDiagnostics.js +2 -2
  461. package/dist/cjs/standard/elements/WiFiNetworkDiagnostics.js.map +1 -1
  462. package/dist/cjs/standard/elements/WiFiNetworkManagement.d.ts +8 -0
  463. package/dist/cjs/standard/elements/WiFiNetworkManagement.d.ts.map +1 -0
  464. package/dist/cjs/standard/elements/WiFiNetworkManagement.js +84 -0
  465. package/dist/cjs/standard/elements/WiFiNetworkManagement.js.map +6 -0
  466. package/dist/cjs/standard/elements/WindowCovering.js +35 -36
  467. package/dist/cjs/standard/elements/WindowCovering.js.map +1 -1
  468. package/dist/cjs/standard/elements/WindowCoveringControllerDT.d.ts.map +1 -1
  469. package/dist/cjs/standard/elements/WindowCoveringControllerDT.js +0 -7
  470. package/dist/cjs/standard/elements/WindowCoveringControllerDT.js.map +1 -1
  471. package/dist/cjs/standard/elements/WindowCoveringDT.d.ts.map +1 -1
  472. package/dist/cjs/standard/elements/WindowCoveringDT.js +4 -15
  473. package/dist/cjs/standard/elements/WindowCoveringDT.js.map +1 -1
  474. package/dist/cjs/standard/elements/action-id.js +1 -1
  475. package/dist/cjs/standard/elements/amperage-mA.js +1 -1
  476. package/dist/cjs/standard/elements/attrib-id.js +1 -1
  477. package/dist/cjs/standard/elements/bool.js +1 -1
  478. package/dist/cjs/standard/elements/cluster-id.js +1 -1
  479. package/dist/cjs/standard/elements/command-id.js +1 -1
  480. package/dist/cjs/standard/elements/data-ver.js +2 -2
  481. package/dist/cjs/standard/elements/date.js +5 -5
  482. package/dist/cjs/standard/elements/definitions.d.ts +27 -1
  483. package/dist/cjs/standard/elements/definitions.d.ts.map +1 -1
  484. package/dist/cjs/standard/elements/definitions.js +27 -1
  485. package/dist/cjs/standard/elements/definitions.js.map +1 -1
  486. package/dist/cjs/standard/elements/devtype-id.js +1 -1
  487. package/dist/cjs/standard/elements/double.js +1 -1
  488. package/dist/cjs/standard/elements/elapsed-s.js +1 -1
  489. package/dist/cjs/standard/elements/endpoint-no.d.ts.map +1 -1
  490. package/dist/cjs/standard/elements/endpoint-no.js +2 -2
  491. package/dist/cjs/standard/elements/endpoint-no.js.map +1 -1
  492. package/dist/cjs/standard/elements/energy-mWh.js +1 -1
  493. package/dist/cjs/standard/elements/entry-idx.js +1 -1
  494. package/dist/cjs/standard/elements/enum16.js +1 -1
  495. package/dist/cjs/standard/elements/enum8.js +1 -1
  496. package/dist/cjs/standard/elements/epoch-s.js +1 -1
  497. package/dist/cjs/standard/elements/epoch-us.js +1 -1
  498. package/dist/cjs/standard/elements/event-id.js +1 -1
  499. package/dist/cjs/standard/elements/event-no.js +1 -1
  500. package/dist/cjs/standard/elements/fabric-id.js +1 -1
  501. package/dist/cjs/standard/elements/fabric-idx.js +1 -1
  502. package/dist/cjs/standard/elements/field-id.js +1 -1
  503. package/dist/cjs/standard/elements/group-id.js +1 -1
  504. package/dist/cjs/standard/elements/hwadr.js +1 -1
  505. package/dist/cjs/standard/elements/int16.js +1 -1
  506. package/dist/cjs/standard/elements/int24.js +1 -1
  507. package/dist/cjs/standard/elements/int32.js +1 -1
  508. package/dist/cjs/standard/elements/int40.js +1 -1
  509. package/dist/cjs/standard/elements/int48.js +1 -1
  510. package/dist/cjs/standard/elements/int56.js +1 -1
  511. package/dist/cjs/standard/elements/int64.js +1 -1
  512. package/dist/cjs/standard/elements/int8.js +1 -1
  513. package/dist/cjs/standard/elements/ipadr.d.ts.map +1 -1
  514. package/dist/cjs/standard/elements/ipadr.js +1 -2
  515. package/dist/cjs/standard/elements/ipadr.js.map +1 -1
  516. package/dist/cjs/standard/elements/ipv4adr.js +1 -1
  517. package/dist/cjs/standard/elements/ipv6adr.js +1 -1
  518. package/dist/cjs/standard/elements/ipv6pre.js +1 -1
  519. package/dist/cjs/standard/elements/list.d.ts.map +1 -1
  520. package/dist/cjs/standard/elements/list.js +8 -10
  521. package/dist/cjs/standard/elements/list.js.map +1 -1
  522. package/dist/cjs/standard/elements/locationdesc.d.ts +8 -0
  523. package/dist/cjs/standard/elements/locationdesc.d.ts.map +1 -0
  524. package/dist/cjs/standard/elements/locationdesc.js +69 -0
  525. package/dist/cjs/standard/elements/locationdesc.js.map +6 -0
  526. package/dist/cjs/standard/elements/map16.js +1 -1
  527. package/dist/cjs/standard/elements/map32.js +1 -1
  528. package/dist/cjs/standard/elements/map64.js +1 -1
  529. package/dist/cjs/standard/elements/map8.js +1 -1
  530. package/dist/cjs/standard/elements/models.d.ts +27 -1
  531. package/dist/cjs/standard/elements/models.d.ts.map +1 -1
  532. package/dist/cjs/standard/elements/models.js +54 -2
  533. package/dist/cjs/standard/elements/models.js.map +1 -1
  534. package/dist/cjs/standard/elements/namespace.js +1 -1
  535. package/dist/cjs/standard/elements/node-id.js +1 -1
  536. package/dist/cjs/standard/elements/octstr.js +1 -1
  537. package/dist/cjs/standard/elements/percent.js +1 -1
  538. package/dist/cjs/standard/elements/percent100ths.js +1 -1
  539. package/dist/cjs/standard/elements/posix-ms.js +1 -1
  540. package/dist/cjs/standard/elements/power-mW.js +1 -1
  541. package/dist/cjs/standard/elements/priority.js +1 -1
  542. package/dist/cjs/standard/elements/semtag.js +5 -5
  543. package/dist/cjs/standard/elements/single.js +1 -1
  544. package/dist/cjs/standard/elements/status.d.ts.map +1 -1
  545. package/dist/cjs/standard/elements/status.js +19 -1
  546. package/dist/cjs/standard/elements/status.js.map +1 -1
  547. package/dist/cjs/standard/elements/string.js +1 -1
  548. package/dist/cjs/standard/elements/struct.js +1 -1
  549. package/dist/cjs/standard/elements/systime-ms.js +1 -1
  550. package/dist/cjs/standard/elements/systime-us.js +1 -1
  551. package/dist/cjs/standard/elements/tag.js +1 -1
  552. package/dist/cjs/standard/elements/temperature.js +1 -1
  553. package/dist/cjs/standard/elements/tod.js +1 -1
  554. package/dist/cjs/standard/elements/trans-id.js +1 -1
  555. package/dist/cjs/standard/elements/uint16.js +1 -1
  556. package/dist/cjs/standard/elements/uint24.js +1 -1
  557. package/dist/cjs/standard/elements/uint32.js +1 -1
  558. package/dist/cjs/standard/elements/uint40.js +1 -1
  559. package/dist/cjs/standard/elements/uint48.js +1 -1
  560. package/dist/cjs/standard/elements/uint56.js +1 -1
  561. package/dist/cjs/standard/elements/uint64.js +1 -1
  562. package/dist/cjs/standard/elements/uint8.js +1 -1
  563. package/dist/cjs/standard/elements/vendor-id.js +1 -1
  564. package/dist/cjs/standard/elements/voltage-mV.js +1 -1
  565. package/dist/esm/aspects/Conformance.d.ts +5 -3
  566. package/dist/esm/aspects/Conformance.d.ts.map +1 -1
  567. package/dist/esm/aspects/Conformance.js +24 -3
  568. package/dist/esm/aspects/Conformance.js.map +1 -1
  569. package/dist/esm/aspects/Quality.d.ts +9 -2
  570. package/dist/esm/aspects/Quality.d.ts.map +1 -1
  571. package/dist/esm/aspects/Quality.js +3 -1
  572. package/dist/esm/aspects/Quality.js.map +1 -1
  573. package/dist/esm/common/Specification.d.ts +3 -3
  574. package/dist/esm/common/Specification.d.ts.map +1 -1
  575. package/dist/esm/common/Specification.js +3 -3
  576. package/dist/esm/logic/cluster-variance/IllegalFeatureCombinations.js +82 -66
  577. package/dist/esm/logic/cluster-variance/IllegalFeatureCombinations.js.map +1 -1
  578. package/dist/esm/logic/cluster-variance/InferredComponents.js +24 -1
  579. package/dist/esm/logic/cluster-variance/InferredComponents.js.map +1 -1
  580. package/dist/esm/logic/definition-validation/ValueValidator.d.ts.map +1 -1
  581. package/dist/esm/logic/definition-validation/ValueValidator.js +11 -6
  582. package/dist/esm/logic/definition-validation/ValueValidator.js.map +1 -1
  583. package/dist/esm/models/AttributeModel.d.ts.map +1 -1
  584. package/dist/esm/models/AttributeModel.js +1 -4
  585. package/dist/esm/models/AttributeModel.js.map +1 -1
  586. package/dist/esm/models/ClusterModel.d.ts.map +1 -1
  587. package/dist/esm/models/ClusterModel.js +1 -3
  588. package/dist/esm/models/ClusterModel.js.map +1 -1
  589. package/dist/esm/models/CommandModel.d.ts.map +1 -1
  590. package/dist/esm/models/CommandModel.js +1 -4
  591. package/dist/esm/models/CommandModel.js.map +1 -1
  592. package/dist/esm/models/DatatypeModel.d.ts +1 -0
  593. package/dist/esm/models/DatatypeModel.d.ts.map +1 -1
  594. package/dist/esm/models/DatatypeModel.js +2 -4
  595. package/dist/esm/models/DatatypeModel.js.map +1 -1
  596. package/dist/esm/models/DeviceTypeModel.d.ts +1 -0
  597. package/dist/esm/models/DeviceTypeModel.d.ts.map +1 -1
  598. package/dist/esm/models/DeviceTypeModel.js +2 -3
  599. package/dist/esm/models/DeviceTypeModel.js.map +1 -1
  600. package/dist/esm/models/EndpointModel.d.ts +1 -0
  601. package/dist/esm/models/EndpointModel.d.ts.map +1 -1
  602. package/dist/esm/models/EndpointModel.js +2 -3
  603. package/dist/esm/models/EndpointModel.js.map +1 -1
  604. package/dist/esm/models/EventModel.d.ts.map +1 -1
  605. package/dist/esm/models/EventModel.js +1 -4
  606. package/dist/esm/models/EventModel.js.map +1 -1
  607. package/dist/esm/models/FabricModel.d.ts +1 -0
  608. package/dist/esm/models/FabricModel.d.ts.map +1 -1
  609. package/dist/esm/models/FabricModel.js +2 -3
  610. package/dist/esm/models/FabricModel.js.map +1 -1
  611. package/dist/esm/models/FieldModel.d.ts +1 -0
  612. package/dist/esm/models/FieldModel.d.ts.map +1 -1
  613. package/dist/esm/models/FieldModel.js +2 -4
  614. package/dist/esm/models/FieldModel.js.map +1 -1
  615. package/dist/esm/models/Globals.d.ts +27 -1
  616. package/dist/esm/models/Globals.d.ts.map +1 -1
  617. package/dist/esm/models/MatterModel.d.ts +1 -0
  618. package/dist/esm/models/MatterModel.d.ts.map +1 -1
  619. package/dist/esm/models/MatterModel.js +2 -4
  620. package/dist/esm/models/MatterModel.js.map +1 -1
  621. package/dist/esm/models/Model.d.ts +26 -2
  622. package/dist/esm/models/Model.d.ts.map +1 -1
  623. package/dist/esm/models/Model.js +45 -6
  624. package/dist/esm/models/Model.js.map +1 -1
  625. package/dist/esm/models/NodeModel.d.ts +1 -0
  626. package/dist/esm/models/NodeModel.d.ts.map +1 -1
  627. package/dist/esm/models/NodeModel.js +2 -3
  628. package/dist/esm/models/NodeModel.js.map +1 -1
  629. package/dist/esm/models/RequirementModel.d.ts +1 -0
  630. package/dist/esm/models/RequirementModel.d.ts.map +1 -1
  631. package/dist/esm/models/RequirementModel.js +2 -3
  632. package/dist/esm/models/RequirementModel.js.map +1 -1
  633. package/dist/esm/models/SemanticNamespaceModel.d.ts +1 -0
  634. package/dist/esm/models/SemanticNamespaceModel.d.ts.map +1 -1
  635. package/dist/esm/models/SemanticNamespaceModel.js +2 -3
  636. package/dist/esm/models/SemanticNamespaceModel.js.map +1 -1
  637. package/dist/esm/models/SemanticTagModel.d.ts +1 -0
  638. package/dist/esm/models/SemanticTagModel.d.ts.map +1 -1
  639. package/dist/esm/models/SemanticTagModel.js +2 -3
  640. package/dist/esm/models/SemanticTagModel.js.map +1 -1
  641. package/dist/esm/standard/elements/AcceptedCommandList.d.ts.map +1 -1
  642. package/dist/esm/standard/elements/AcceptedCommandList.js +1 -1
  643. package/dist/esm/standard/elements/AcceptedCommandList.js.map +1 -1
  644. package/dist/esm/standard/elements/AccessControl.d.ts.map +1 -1
  645. package/dist/esm/standard/elements/AccessControl.js +299 -37
  646. package/dist/esm/standard/elements/AccessControl.js.map +1 -1
  647. package/dist/esm/standard/elements/Actions.d.ts.map +1 -1
  648. package/dist/esm/standard/elements/Actions.js +6 -6
  649. package/dist/esm/standard/elements/Actions.js.map +1 -1
  650. package/dist/esm/standard/elements/AdministratorCommissioning.d.ts.map +1 -1
  651. package/dist/esm/standard/elements/AdministratorCommissioning.js +18 -12
  652. package/dist/esm/standard/elements/AdministratorCommissioning.js.map +1 -1
  653. package/dist/esm/standard/elements/AggregatorDT.d.ts.map +1 -1
  654. package/dist/esm/standard/elements/AggregatorDT.js +23 -4
  655. package/dist/esm/standard/elements/AggregatorDT.js.map +1 -1
  656. package/dist/esm/standard/elements/AirPurifierDT.d.ts.map +1 -1
  657. package/dist/esm/standard/elements/AirPurifierDT.js +8 -1
  658. package/dist/esm/standard/elements/AirPurifierDT.js.map +1 -1
  659. package/dist/esm/standard/elements/AlarmBase.d.ts.map +1 -1
  660. package/dist/esm/standard/elements/AlarmBase.js +1 -1
  661. package/dist/esm/standard/elements/AlarmBase.js.map +1 -1
  662. package/dist/esm/standard/elements/ApplicationLauncher.d.ts.map +1 -1
  663. package/dist/esm/standard/elements/ApplicationLauncher.js +12 -4
  664. package/dist/esm/standard/elements/ApplicationLauncher.js.map +1 -1
  665. package/dist/esm/standard/elements/AreaNamespaceNS.d.ts +8 -0
  666. package/dist/esm/standard/elements/AreaNamespaceNS.d.ts.map +1 -0
  667. package/dist/esm/standard/elements/AreaNamespaceNS.js +130 -0
  668. package/dist/esm/standard/elements/AreaNamespaceNS.js.map +6 -0
  669. package/dist/esm/standard/elements/AtomicAttributeStatusStruct.d.ts +8 -0
  670. package/dist/esm/standard/elements/AtomicAttributeStatusStruct.d.ts.map +1 -0
  671. package/dist/esm/standard/elements/AtomicAttributeStatusStruct.js +36 -0
  672. package/dist/esm/standard/elements/AtomicAttributeStatusStruct.js.map +6 -0
  673. package/dist/esm/standard/elements/AtomicRequestTypeEnum.d.ts +8 -0
  674. package/dist/esm/standard/elements/AtomicRequestTypeEnum.d.ts.map +1 -0
  675. package/dist/esm/standard/elements/AtomicRequestTypeEnum.js +23 -0
  676. package/dist/esm/standard/elements/AtomicRequestTypeEnum.js.map +6 -0
  677. package/dist/esm/standard/elements/BallastConfiguration.js +1 -1
  678. package/dist/esm/standard/elements/BasicInformation.d.ts.map +1 -1
  679. package/dist/esm/standard/elements/BasicInformation.js +17 -19
  680. package/dist/esm/standard/elements/BasicInformation.js.map +1 -1
  681. package/dist/esm/standard/elements/BatteryStorageDT.d.ts +8 -0
  682. package/dist/esm/standard/elements/BatteryStorageDT.d.ts.map +1 -0
  683. package/dist/esm/standard/elements/BatteryStorageDT.js +33 -0
  684. package/dist/esm/standard/elements/BatteryStorageDT.js.map +6 -0
  685. package/dist/esm/standard/elements/BooleanStateConfiguration.js +2 -2
  686. package/dist/esm/standard/elements/BridgedDeviceBasicInformation.d.ts.map +1 -1
  687. package/dist/esm/standard/elements/BridgedDeviceBasicInformation.js +104 -32
  688. package/dist/esm/standard/elements/BridgedDeviceBasicInformation.js.map +1 -1
  689. package/dist/esm/standard/elements/BridgedNodeDT.d.ts.map +1 -1
  690. package/dist/esm/standard/elements/BridgedNodeDT.js +29 -3
  691. package/dist/esm/standard/elements/BridgedNodeDT.js.map +1 -1
  692. package/dist/esm/standard/elements/Channel.d.ts.map +1 -1
  693. package/dist/esm/standard/elements/Channel.js +13 -14
  694. package/dist/esm/standard/elements/Channel.js.map +1 -1
  695. package/dist/esm/standard/elements/ColorControl.d.ts.map +1 -1
  696. package/dist/esm/standard/elements/ColorControl.js +607 -478
  697. package/dist/esm/standard/elements/ColorControl.js.map +1 -1
  698. package/dist/esm/standard/elements/CommissionerControl.d.ts +8 -0
  699. package/dist/esm/standard/elements/CommissionerControl.d.ts.map +1 -0
  700. package/dist/esm/standard/elements/CommissionerControl.js +117 -0
  701. package/dist/esm/standard/elements/CommissionerControl.js.map +6 -0
  702. package/dist/esm/standard/elements/ConcentrationMeasurement.js +0 -1
  703. package/dist/esm/standard/elements/ConcentrationMeasurement.js.map +1 -1
  704. package/dist/esm/standard/elements/ContentControl.d.ts.map +1 -1
  705. package/dist/esm/standard/elements/ContentControl.js +34 -39
  706. package/dist/esm/standard/elements/ContentControl.js.map +1 -1
  707. package/dist/esm/standard/elements/ContentLauncher.d.ts.map +1 -1
  708. package/dist/esm/standard/elements/ContentLauncher.js +13 -11
  709. package/dist/esm/standard/elements/ContentLauncher.js.map +1 -1
  710. package/dist/esm/standard/elements/DeviceEnergyManagement.d.ts.map +1 -1
  711. package/dist/esm/standard/elements/DeviceEnergyManagement.js +154 -118
  712. package/dist/esm/standard/elements/DeviceEnergyManagement.js.map +1 -1
  713. package/dist/esm/standard/elements/DeviceEnergyManagementDT.d.ts.map +1 -1
  714. package/dist/esm/standard/elements/DeviceEnergyManagementDT.js +31 -12
  715. package/dist/esm/standard/elements/DeviceEnergyManagementDT.js.map +1 -1
  716. package/dist/esm/standard/elements/DeviceEnergyManagementMode.d.ts.map +1 -1
  717. package/dist/esm/standard/elements/DeviceEnergyManagementMode.js +40 -11
  718. package/dist/esm/standard/elements/DeviceEnergyManagementMode.js.map +1 -1
  719. package/dist/esm/standard/elements/DishwasherAlarm.d.ts.map +1 -1
  720. package/dist/esm/standard/elements/DishwasherAlarm.js +1 -1
  721. package/dist/esm/standard/elements/DishwasherAlarm.js.map +1 -1
  722. package/dist/esm/standard/elements/DishwasherMode.d.ts.map +1 -1
  723. package/dist/esm/standard/elements/DishwasherMode.js +37 -17
  724. package/dist/esm/standard/elements/DishwasherMode.js.map +1 -1
  725. package/dist/esm/standard/elements/DoorLock.d.ts.map +1 -1
  726. package/dist/esm/standard/elements/DoorLock.js +505 -629
  727. package/dist/esm/standard/elements/DoorLock.js.map +1 -1
  728. package/dist/esm/standard/elements/DoorLockControllerDT.js +1 -1
  729. package/dist/esm/standard/elements/DoorLockControllerDT.js.map +1 -1
  730. package/dist/esm/standard/elements/DoorLockDT.js +2 -2
  731. package/dist/esm/standard/elements/DoorLockDT.js.map +1 -1
  732. package/dist/esm/standard/elements/EcosystemInformation.d.ts +8 -0
  733. package/dist/esm/standard/elements/EcosystemInformation.d.ts.map +1 -0
  734. package/dist/esm/standard/elements/EcosystemInformation.js +132 -0
  735. package/dist/esm/standard/elements/EcosystemInformation.js.map +6 -0
  736. package/dist/esm/standard/elements/ElectricalEnergyMeasurement.d.ts.map +1 -1
  737. package/dist/esm/standard/elements/ElectricalEnergyMeasurement.js +9 -18
  738. package/dist/esm/standard/elements/ElectricalEnergyMeasurement.js.map +1 -1
  739. package/dist/esm/standard/elements/ElectricalMeasurementNS.js +1 -1
  740. package/dist/esm/standard/elements/ElectricalPowerMeasurement.js +5 -5
  741. package/dist/esm/standard/elements/ElectricalPowerMeasurement.js.map +1 -1
  742. package/dist/esm/standard/elements/EnergyEvse.d.ts.map +1 -1
  743. package/dist/esm/standard/elements/EnergyEvse.js +98 -51
  744. package/dist/esm/standard/elements/EnergyEvse.js.map +1 -1
  745. package/dist/esm/standard/elements/EnergyEvseDT.d.ts +8 -0
  746. package/dist/esm/standard/elements/EnergyEvseDT.d.ts.map +1 -0
  747. package/dist/esm/standard/elements/EnergyEvseDT.js +54 -0
  748. package/dist/esm/standard/elements/EnergyEvseDT.js.map +6 -0
  749. package/dist/esm/standard/elements/EnergyEvseMode.d.ts.map +1 -1
  750. package/dist/esm/standard/elements/EnergyEvseMode.js +51 -10
  751. package/dist/esm/standard/elements/EnergyEvseMode.js.map +1 -1
  752. package/dist/esm/standard/elements/EnergyPreference.d.ts.map +1 -1
  753. package/dist/esm/standard/elements/EnergyPreference.js +22 -19
  754. package/dist/esm/standard/elements/EnergyPreference.js.map +1 -1
  755. package/dist/esm/standard/elements/EthernetNetworkDiagnostics.d.ts.map +1 -1
  756. package/dist/esm/standard/elements/EthernetNetworkDiagnostics.js +1 -1
  757. package/dist/esm/standard/elements/EthernetNetworkDiagnostics.js.map +1 -1
  758. package/dist/esm/standard/elements/EventList.d.ts.map +1 -1
  759. package/dist/esm/standard/elements/EventList.js +2 -13
  760. package/dist/esm/standard/elements/EventList.js.map +1 -1
  761. package/dist/esm/standard/elements/FabricIndex.js +1 -1
  762. package/dist/esm/standard/elements/FanControl.js +8 -10
  763. package/dist/esm/standard/elements/FanControl.js.map +1 -1
  764. package/dist/esm/standard/elements/FanDT.d.ts.map +1 -1
  765. package/dist/esm/standard/elements/FanDT.js +8 -1
  766. package/dist/esm/standard/elements/FanDT.js.map +1 -1
  767. package/dist/esm/standard/elements/FeatureMap.d.ts.map +1 -1
  768. package/dist/esm/standard/elements/FeatureMap.js +1 -1
  769. package/dist/esm/standard/elements/FeatureMap.js.map +1 -1
  770. package/dist/esm/standard/elements/FixedLabel.d.ts.map +1 -1
  771. package/dist/esm/standard/elements/FixedLabel.js +1 -1
  772. package/dist/esm/standard/elements/FixedLabel.js.map +1 -1
  773. package/dist/esm/standard/elements/FlowMeasurement.d.ts.map +1 -1
  774. package/dist/esm/standard/elements/FlowMeasurement.js +6 -6
  775. package/dist/esm/standard/elements/FlowMeasurement.js.map +1 -1
  776. package/dist/esm/standard/elements/GeneralCommissioning.d.ts.map +1 -1
  777. package/dist/esm/standard/elements/GeneralCommissioning.js +163 -39
  778. package/dist/esm/standard/elements/GeneralCommissioning.js.map +1 -1
  779. package/dist/esm/standard/elements/GeneralDiagnostics.d.ts.map +1 -1
  780. package/dist/esm/standard/elements/GeneralDiagnostics.js +12 -13
  781. package/dist/esm/standard/elements/GeneralDiagnostics.js.map +1 -1
  782. package/dist/esm/standard/elements/GeneratedCommandList.d.ts.map +1 -1
  783. package/dist/esm/standard/elements/GeneratedCommandList.js +1 -1
  784. package/dist/esm/standard/elements/GeneratedCommandList.js.map +1 -1
  785. package/dist/esm/standard/elements/GroupKeyManagement.d.ts.map +1 -1
  786. package/dist/esm/standard/elements/GroupKeyManagement.js +13 -12
  787. package/dist/esm/standard/elements/GroupKeyManagement.js.map +1 -1
  788. package/dist/esm/standard/elements/Groups.d.ts.map +1 -1
  789. package/dist/esm/standard/elements/Groups.js +1 -1
  790. package/dist/esm/standard/elements/Groups.js.map +1 -1
  791. package/dist/esm/standard/elements/HeatPumpDT.d.ts +8 -0
  792. package/dist/esm/standard/elements/HeatPumpDT.d.ts.map +1 -0
  793. package/dist/esm/standard/elements/HeatPumpDT.js +40 -0
  794. package/dist/esm/standard/elements/HeatPumpDT.js.map +6 -0
  795. package/dist/esm/standard/elements/IcdManagement.d.ts.map +1 -1
  796. package/dist/esm/standard/elements/IcdManagement.js +74 -20
  797. package/dist/esm/standard/elements/IcdManagement.js.map +1 -1
  798. package/dist/esm/standard/elements/Identify.js +5 -5
  799. package/dist/esm/standard/elements/IlluminanceMeasurement.d.ts.map +1 -1
  800. package/dist/esm/standard/elements/IlluminanceMeasurement.js +7 -7
  801. package/dist/esm/standard/elements/IlluminanceMeasurement.js.map +1 -1
  802. package/dist/esm/standard/elements/JointFabricAdministratorDT.d.ts +8 -0
  803. package/dist/esm/standard/elements/JointFabricAdministratorDT.d.ts.map +1 -0
  804. package/dist/esm/standard/elements/JointFabricAdministratorDT.js +40 -0
  805. package/dist/esm/standard/elements/JointFabricAdministratorDT.js.map +6 -0
  806. package/dist/esm/standard/elements/JointFabricDatastoreCluster.d.ts +8 -0
  807. package/dist/esm/standard/elements/JointFabricDatastoreCluster.d.ts.map +1 -0
  808. package/dist/esm/standard/elements/JointFabricDatastoreCluster.js +673 -0
  809. package/dist/esm/standard/elements/JointFabricDatastoreCluster.js.map +6 -0
  810. package/dist/esm/standard/elements/JointFabricPki.d.ts +8 -0
  811. package/dist/esm/standard/elements/JointFabricPki.d.ts.map +1 -0
  812. package/dist/esm/standard/elements/JointFabricPki.js +153 -0
  813. package/dist/esm/standard/elements/JointFabricPki.js.map +6 -0
  814. package/dist/esm/standard/elements/KeypadInput.d.ts.map +1 -1
  815. package/dist/esm/standard/elements/KeypadInput.js +1 -1
  816. package/dist/esm/standard/elements/KeypadInput.js.map +1 -1
  817. package/dist/esm/standard/elements/LandmarkNamespaceNS.d.ts +8 -0
  818. package/dist/esm/standard/elements/LandmarkNamespaceNS.d.ts.map +1 -0
  819. package/dist/esm/standard/elements/LandmarkNamespaceNS.js +74 -0
  820. package/dist/esm/standard/elements/LandmarkNamespaceNS.js.map +6 -0
  821. package/dist/esm/standard/elements/LaundryDryerControls.js +2 -1
  822. package/dist/esm/standard/elements/LaundryDryerControls.js.map +1 -1
  823. package/dist/esm/standard/elements/LaundryNS.js +1 -1
  824. package/dist/esm/standard/elements/LaundryWasherControls.d.ts.map +1 -1
  825. package/dist/esm/standard/elements/LaundryWasherControls.js +8 -8
  826. package/dist/esm/standard/elements/LaundryWasherControls.js.map +1 -1
  827. package/dist/esm/standard/elements/LaundryWasherMode.d.ts.map +1 -1
  828. package/dist/esm/standard/elements/LaundryWasherMode.js +38 -18
  829. package/dist/esm/standard/elements/LaundryWasherMode.js.map +1 -1
  830. package/dist/esm/standard/elements/LevelControl.d.ts.map +1 -1
  831. package/dist/esm/standard/elements/LevelControl.js +14 -13
  832. package/dist/esm/standard/elements/LevelControl.js.map +1 -1
  833. package/dist/esm/standard/elements/LocalizationConfiguration.d.ts.map +1 -1
  834. package/dist/esm/standard/elements/LocalizationConfiguration.js +11 -13
  835. package/dist/esm/standard/elements/LocalizationConfiguration.js.map +1 -1
  836. package/dist/esm/standard/elements/MediaInput.d.ts.map +1 -1
  837. package/dist/esm/standard/elements/MediaInput.js +1 -1
  838. package/dist/esm/standard/elements/MediaInput.js.map +1 -1
  839. package/dist/esm/standard/elements/MediaPlayback.d.ts.map +1 -1
  840. package/dist/esm/standard/elements/MediaPlayback.js +3 -2
  841. package/dist/esm/standard/elements/MediaPlayback.js.map +1 -1
  842. package/dist/esm/standard/elements/MicrowaveOvenControl.d.ts.map +1 -1
  843. package/dist/esm/standard/elements/MicrowaveOvenControl.js +12 -12
  844. package/dist/esm/standard/elements/MicrowaveOvenControl.js.map +1 -1
  845. package/dist/esm/standard/elements/MicrowaveOvenMode.d.ts.map +1 -1
  846. package/dist/esm/standard/elements/MicrowaveOvenMode.js +39 -14
  847. package/dist/esm/standard/elements/MicrowaveOvenMode.js.map +1 -1
  848. package/dist/esm/standard/elements/ModeBase.d.ts.map +1 -1
  849. package/dist/esm/standard/elements/ModeBase.js +18 -69
  850. package/dist/esm/standard/elements/ModeBase.js.map +1 -1
  851. package/dist/esm/standard/elements/ModeSelect.js +10 -10
  852. package/dist/esm/standard/elements/ModeSelect.js.map +1 -1
  853. package/dist/esm/standard/elements/MountedDimmableLoadControlDT.d.ts +8 -0
  854. package/dist/esm/standard/elements/MountedDimmableLoadControlDT.d.ts.map +1 -0
  855. package/dist/esm/standard/elements/MountedDimmableLoadControlDT.js +84 -0
  856. package/dist/esm/standard/elements/MountedDimmableLoadControlDT.js.map +6 -0
  857. package/dist/esm/standard/elements/MountedOnOffControlDT.d.ts +8 -0
  858. package/dist/esm/standard/elements/MountedOnOffControlDT.d.ts.map +1 -0
  859. package/dist/esm/standard/elements/MountedOnOffControlDT.js +84 -0
  860. package/dist/esm/standard/elements/MountedOnOffControlDT.js.map +6 -0
  861. package/dist/esm/standard/elements/NetworkCommissioning.d.ts.map +1 -1
  862. package/dist/esm/standard/elements/NetworkCommissioning.js +50 -37
  863. package/dist/esm/standard/elements/NetworkCommissioning.js.map +1 -1
  864. package/dist/esm/standard/elements/NetworkInfrastructureManagerDT.d.ts +8 -0
  865. package/dist/esm/standard/elements/NetworkInfrastructureManagerDT.d.ts.map +1 -0
  866. package/dist/esm/standard/elements/NetworkInfrastructureManagerDT.js +47 -0
  867. package/dist/esm/standard/elements/NetworkInfrastructureManagerDT.js.map +6 -0
  868. package/dist/esm/standard/elements/OccupancySensing.d.ts.map +1 -1
  869. package/dist/esm/standard/elements/OccupancySensing.js +197 -43
  870. package/dist/esm/standard/elements/OccupancySensing.js.map +1 -1
  871. package/dist/esm/standard/elements/OccupancySensorDT.d.ts.map +1 -1
  872. package/dist/esm/standard/elements/OccupancySensorDT.js +8 -1
  873. package/dist/esm/standard/elements/OccupancySensorDT.js.map +1 -1
  874. package/dist/esm/standard/elements/OnOff.d.ts.map +1 -1
  875. package/dist/esm/standard/elements/OnOff.js +1 -1
  876. package/dist/esm/standard/elements/OnOff.js.map +1 -1
  877. package/dist/esm/standard/elements/OperationalCredentials.d.ts.map +1 -1
  878. package/dist/esm/standard/elements/OperationalCredentials.js +7 -7
  879. package/dist/esm/standard/elements/OperationalCredentials.js.map +1 -1
  880. package/dist/esm/standard/elements/OperationalState.d.ts.map +1 -1
  881. package/dist/esm/standard/elements/OperationalState.js +22 -22
  882. package/dist/esm/standard/elements/OperationalState.js.map +1 -1
  883. package/dist/esm/standard/elements/OtaSoftwareUpdateProvider.d.ts.map +1 -1
  884. package/dist/esm/standard/elements/OtaSoftwareUpdateProvider.js +11 -12
  885. package/dist/esm/standard/elements/OtaSoftwareUpdateProvider.js.map +1 -1
  886. package/dist/esm/standard/elements/OtaSoftwareUpdateRequestor.d.ts.map +1 -1
  887. package/dist/esm/standard/elements/OtaSoftwareUpdateRequestor.js +2 -1
  888. package/dist/esm/standard/elements/OtaSoftwareUpdateRequestor.js.map +1 -1
  889. package/dist/esm/standard/elements/OvenCavityOperationalState.d.ts.map +1 -1
  890. package/dist/esm/standard/elements/OvenCavityOperationalState.js +12 -3
  891. package/dist/esm/standard/elements/OvenCavityOperationalState.js.map +1 -1
  892. package/dist/esm/standard/elements/OvenDT.js +1 -1
  893. package/dist/esm/standard/elements/OvenMode.d.ts.map +1 -1
  894. package/dist/esm/standard/elements/OvenMode.js +49 -14
  895. package/dist/esm/standard/elements/OvenMode.js.map +1 -1
  896. package/dist/esm/standard/elements/PowerSource.d.ts.map +1 -1
  897. package/dist/esm/standard/elements/PowerSource.js +12 -12
  898. package/dist/esm/standard/elements/PowerSource.js.map +1 -1
  899. package/dist/esm/standard/elements/PowerSourceNS.js +5 -5
  900. package/dist/esm/standard/elements/PressureMeasurement.js +7 -7
  901. package/dist/esm/standard/elements/PressureMeasurement.js.map +1 -1
  902. package/dist/esm/standard/elements/PumpConfigurationAndControl.d.ts.map +1 -1
  903. package/dist/esm/standard/elements/PumpConfigurationAndControl.js +9 -19
  904. package/dist/esm/standard/elements/PumpConfigurationAndControl.js.map +1 -1
  905. package/dist/esm/standard/elements/PumpControllerDT.d.ts.map +1 -1
  906. package/dist/esm/standard/elements/PumpControllerDT.js +1 -8
  907. package/dist/esm/standard/elements/PumpControllerDT.js.map +1 -1
  908. package/dist/esm/standard/elements/PumpDT.js +14 -14
  909. package/dist/esm/standard/elements/RefrigeratorAlarm.d.ts.map +1 -1
  910. package/dist/esm/standard/elements/RefrigeratorAlarm.js +1 -1
  911. package/dist/esm/standard/elements/RefrigeratorAlarm.js.map +1 -1
  912. package/dist/esm/standard/elements/RefrigeratorAndTemperatureControlledCabinetMode.d.ts.map +1 -1
  913. package/dist/esm/standard/elements/RefrigeratorAndTemperatureControlledCabinetMode.js +38 -12
  914. package/dist/esm/standard/elements/RefrigeratorAndTemperatureControlledCabinetMode.js.map +1 -1
  915. package/dist/esm/standard/elements/RefrigeratorDT.js +1 -1
  916. package/dist/esm/standard/elements/RefrigeratorNS.js +1 -1
  917. package/dist/esm/standard/elements/RelativeHumidityMeasurement.d.ts.map +1 -1
  918. package/dist/esm/standard/elements/RelativeHumidityMeasurement.js +3 -3
  919. package/dist/esm/standard/elements/RelativeHumidityMeasurement.js.map +1 -1
  920. package/dist/esm/standard/elements/RelativePositionNS.d.ts +8 -0
  921. package/dist/esm/standard/elements/RelativePositionNS.d.ts.map +1 -0
  922. package/dist/esm/standard/elements/RelativePositionNS.js +30 -0
  923. package/dist/esm/standard/elements/RelativePositionNS.js.map +6 -0
  924. package/dist/esm/standard/elements/ResourceMonitoring.d.ts.map +1 -1
  925. package/dist/esm/standard/elements/ResourceMonitoring.js +1 -1
  926. package/dist/esm/standard/elements/ResourceMonitoring.js.map +1 -1
  927. package/dist/esm/standard/elements/RoboticVacuumCleanerDT.d.ts.map +1 -1
  928. package/dist/esm/standard/elements/RoboticVacuumCleanerDT.js +8 -1
  929. package/dist/esm/standard/elements/RoboticVacuumCleanerDT.js.map +1 -1
  930. package/dist/esm/standard/elements/RoomAirConditionerNS.js +1 -1
  931. package/dist/esm/standard/elements/RootNodeDT.d.ts.map +1 -1
  932. package/dist/esm/standard/elements/RootNodeDT.js +20 -15
  933. package/dist/esm/standard/elements/RootNodeDT.js.map +1 -1
  934. package/dist/esm/standard/elements/RvcCleanMode.d.ts.map +1 -1
  935. package/dist/esm/standard/elements/RvcCleanMode.js +32 -7
  936. package/dist/esm/standard/elements/RvcCleanMode.js.map +1 -1
  937. package/dist/esm/standard/elements/RvcOperationalState.d.ts.map +1 -1
  938. package/dist/esm/standard/elements/RvcOperationalState.js +28 -5
  939. package/dist/esm/standard/elements/RvcOperationalState.js.map +1 -1
  940. package/dist/esm/standard/elements/RvcRunMode.d.ts.map +1 -1
  941. package/dist/esm/standard/elements/RvcRunMode.js +32 -7
  942. package/dist/esm/standard/elements/RvcRunMode.js.map +1 -1
  943. package/dist/esm/standard/elements/ScenesManagement.d.ts.map +1 -1
  944. package/dist/esm/standard/elements/ScenesManagement.js +4 -4
  945. package/dist/esm/standard/elements/ScenesManagement.js.map +1 -1
  946. package/dist/esm/standard/elements/SecondaryNetworkInterfaceDT.d.ts +8 -0
  947. package/dist/esm/standard/elements/SecondaryNetworkInterfaceDT.d.ts.map +1 -0
  948. package/dist/esm/standard/elements/SecondaryNetworkInterfaceDT.js +54 -0
  949. package/dist/esm/standard/elements/SecondaryNetworkInterfaceDT.js.map +6 -0
  950. package/dist/esm/standard/elements/ServiceArea.d.ts +8 -0
  951. package/dist/esm/standard/elements/ServiceArea.d.ts.map +1 -0
  952. package/dist/esm/standard/elements/ServiceArea.js +441 -0
  953. package/dist/esm/standard/elements/ServiceArea.js.map +6 -0
  954. package/dist/esm/standard/elements/SmokeCoAlarm.d.ts.map +1 -1
  955. package/dist/esm/standard/elements/SmokeCoAlarm.js +13 -17
  956. package/dist/esm/standard/elements/SmokeCoAlarm.js.map +1 -1
  957. package/dist/esm/standard/elements/SoftwareVersionCertificationStatusEnum.js +1 -1
  958. package/dist/esm/standard/elements/SolarPowerDT.d.ts +8 -0
  959. package/dist/esm/standard/elements/SolarPowerDT.d.ts.map +1 -0
  960. package/dist/esm/standard/elements/SolarPowerDT.js +33 -0
  961. package/dist/esm/standard/elements/SolarPowerDT.js.map +6 -0
  962. package/dist/esm/standard/elements/Switch.d.ts.map +1 -1
  963. package/dist/esm/standard/elements/Switch.js +39 -25
  964. package/dist/esm/standard/elements/Switch.js.map +1 -1
  965. package/dist/esm/standard/elements/SwitchesNS.js +2 -2
  966. package/dist/esm/standard/elements/TargetNavigator.js +2 -1
  967. package/dist/esm/standard/elements/TargetNavigator.js.map +1 -1
  968. package/dist/esm/standard/elements/TemperatureControl.js +3 -3
  969. package/dist/esm/standard/elements/TemperatureControl.js.map +1 -1
  970. package/dist/esm/standard/elements/TemperatureControlledCabinetDT.js +1 -1
  971. package/dist/esm/standard/elements/TemperatureMeasurement.js +3 -3
  972. package/dist/esm/standard/elements/TemperatureMeasurement.js.map +1 -1
  973. package/dist/esm/standard/elements/Thermostat.d.ts.map +1 -1
  974. package/dist/esm/standard/elements/Thermostat.js +673 -124
  975. package/dist/esm/standard/elements/Thermostat.js.map +1 -1
  976. package/dist/esm/standard/elements/ThermostatDT.d.ts.map +1 -1
  977. package/dist/esm/standard/elements/ThermostatDT.js +20 -35
  978. package/dist/esm/standard/elements/ThermostatDT.js.map +1 -1
  979. package/dist/esm/standard/elements/ThermostatUserInterfaceConfiguration.js +0 -3
  980. package/dist/esm/standard/elements/ThermostatUserInterfaceConfiguration.js.map +1 -1
  981. package/dist/esm/standard/elements/ThreadBorderRouterManagement.d.ts +8 -0
  982. package/dist/esm/standard/elements/ThreadBorderRouterManagement.d.ts.map +1 -0
  983. package/dist/esm/standard/elements/ThreadBorderRouterManagement.js +183 -0
  984. package/dist/esm/standard/elements/ThreadBorderRouterManagement.js.map +6 -0
  985. package/dist/esm/standard/elements/ThreadNetworkDiagnostics.d.ts.map +1 -1
  986. package/dist/esm/standard/elements/ThreadNetworkDiagnostics.js +26 -8
  987. package/dist/esm/standard/elements/ThreadNetworkDiagnostics.js.map +1 -1
  988. package/dist/esm/standard/elements/ThreadNetworkDirectory.d.ts +8 -0
  989. package/dist/esm/standard/elements/ThreadNetworkDirectory.d.ts.map +1 -0
  990. package/dist/esm/standard/elements/ThreadNetworkDirectory.js +167 -0
  991. package/dist/esm/standard/elements/ThreadNetworkDirectory.js.map +6 -0
  992. package/dist/esm/standard/elements/TimeFormatLocalization.js +1 -1
  993. package/dist/esm/standard/elements/TimeSynchronization.d.ts.map +1 -1
  994. package/dist/esm/standard/elements/TimeSynchronization.js +23 -11
  995. package/dist/esm/standard/elements/TimeSynchronization.js.map +1 -1
  996. package/dist/esm/standard/elements/UnitLocalization.d.ts.map +1 -1
  997. package/dist/esm/standard/elements/UnitLocalization.js +1 -1
  998. package/dist/esm/standard/elements/UnitLocalization.js.map +1 -1
  999. package/dist/esm/standard/elements/UserLabel.d.ts.map +1 -1
  1000. package/dist/esm/standard/elements/UserLabel.js +1 -1
  1001. package/dist/esm/standard/elements/UserLabel.js.map +1 -1
  1002. package/dist/esm/standard/elements/ValidProxies.js +0 -1
  1003. package/dist/esm/standard/elements/ValidProxies.js.map +1 -1
  1004. package/dist/esm/standard/elements/ValveConfigurationAndControl.js +1 -0
  1005. package/dist/esm/standard/elements/ValveConfigurationAndControl.js.map +1 -1
  1006. package/dist/esm/standard/elements/WaterHeaterDT.d.ts +8 -0
  1007. package/dist/esm/standard/elements/WaterHeaterDT.d.ts.map +1 -0
  1008. package/dist/esm/standard/elements/WaterHeaterDT.js +57 -0
  1009. package/dist/esm/standard/elements/WaterHeaterDT.js.map +6 -0
  1010. package/dist/esm/standard/elements/WaterHeaterManagement.d.ts +8 -0
  1011. package/dist/esm/standard/elements/WaterHeaterManagement.d.ts.map +1 -0
  1012. package/dist/esm/standard/elements/WaterHeaterManagement.js +226 -0
  1013. package/dist/esm/standard/elements/WaterHeaterManagement.js.map +6 -0
  1014. package/dist/esm/standard/elements/WaterHeaterMode.d.ts +8 -0
  1015. package/dist/esm/standard/elements/WaterHeaterMode.d.ts.map +1 -0
  1016. package/dist/esm/standard/elements/WaterHeaterMode.js +85 -0
  1017. package/dist/esm/standard/elements/WaterHeaterMode.js.map +6 -0
  1018. package/dist/esm/standard/elements/WaterTankLevelMonitoring.d.ts +8 -0
  1019. package/dist/esm/standard/elements/WaterTankLevelMonitoring.d.ts.map +1 -0
  1020. package/dist/esm/standard/elements/WaterTankLevelMonitoring.js +15 -0
  1021. package/dist/esm/standard/elements/WaterTankLevelMonitoring.js.map +6 -0
  1022. package/dist/esm/standard/elements/WaterValveDT.js +5 -5
  1023. package/dist/esm/standard/elements/WiFiNetworkDiagnostics.d.ts.map +1 -1
  1024. package/dist/esm/standard/elements/WiFiNetworkDiagnostics.js +2 -2
  1025. package/dist/esm/standard/elements/WiFiNetworkDiagnostics.js.map +1 -1
  1026. package/dist/esm/standard/elements/WiFiNetworkManagement.d.ts +8 -0
  1027. package/dist/esm/standard/elements/WiFiNetworkManagement.d.ts.map +1 -0
  1028. package/dist/esm/standard/elements/WiFiNetworkManagement.js +68 -0
  1029. package/dist/esm/standard/elements/WiFiNetworkManagement.js.map +6 -0
  1030. package/dist/esm/standard/elements/WindowCovering.js +35 -36
  1031. package/dist/esm/standard/elements/WindowCovering.js.map +1 -1
  1032. package/dist/esm/standard/elements/WindowCoveringControllerDT.d.ts.map +1 -1
  1033. package/dist/esm/standard/elements/WindowCoveringControllerDT.js +0 -7
  1034. package/dist/esm/standard/elements/WindowCoveringControllerDT.js.map +1 -1
  1035. package/dist/esm/standard/elements/WindowCoveringDT.d.ts.map +1 -1
  1036. package/dist/esm/standard/elements/WindowCoveringDT.js +4 -15
  1037. package/dist/esm/standard/elements/WindowCoveringDT.js.map +1 -1
  1038. package/dist/esm/standard/elements/action-id.js +1 -1
  1039. package/dist/esm/standard/elements/amperage-mA.js +1 -1
  1040. package/dist/esm/standard/elements/attrib-id.js +1 -1
  1041. package/dist/esm/standard/elements/bool.js +1 -1
  1042. package/dist/esm/standard/elements/cluster-id.js +1 -1
  1043. package/dist/esm/standard/elements/command-id.js +1 -1
  1044. package/dist/esm/standard/elements/data-ver.js +2 -2
  1045. package/dist/esm/standard/elements/date.js +5 -5
  1046. package/dist/esm/standard/elements/definitions.d.ts +27 -1
  1047. package/dist/esm/standard/elements/definitions.d.ts.map +1 -1
  1048. package/dist/esm/standard/elements/definitions.js +27 -1
  1049. package/dist/esm/standard/elements/definitions.js.map +1 -1
  1050. package/dist/esm/standard/elements/devtype-id.js +1 -1
  1051. package/dist/esm/standard/elements/double.js +1 -1
  1052. package/dist/esm/standard/elements/elapsed-s.js +1 -1
  1053. package/dist/esm/standard/elements/endpoint-no.d.ts.map +1 -1
  1054. package/dist/esm/standard/elements/endpoint-no.js +2 -2
  1055. package/dist/esm/standard/elements/endpoint-no.js.map +1 -1
  1056. package/dist/esm/standard/elements/energy-mWh.js +1 -1
  1057. package/dist/esm/standard/elements/entry-idx.js +1 -1
  1058. package/dist/esm/standard/elements/enum16.js +1 -1
  1059. package/dist/esm/standard/elements/enum8.js +1 -1
  1060. package/dist/esm/standard/elements/epoch-s.js +1 -1
  1061. package/dist/esm/standard/elements/epoch-us.js +1 -1
  1062. package/dist/esm/standard/elements/event-id.js +1 -1
  1063. package/dist/esm/standard/elements/event-no.js +1 -1
  1064. package/dist/esm/standard/elements/fabric-id.js +1 -1
  1065. package/dist/esm/standard/elements/fabric-idx.js +1 -1
  1066. package/dist/esm/standard/elements/field-id.js +1 -1
  1067. package/dist/esm/standard/elements/group-id.js +1 -1
  1068. package/dist/esm/standard/elements/hwadr.js +1 -1
  1069. package/dist/esm/standard/elements/int16.js +1 -1
  1070. package/dist/esm/standard/elements/int24.js +1 -1
  1071. package/dist/esm/standard/elements/int32.js +1 -1
  1072. package/dist/esm/standard/elements/int40.js +1 -1
  1073. package/dist/esm/standard/elements/int48.js +1 -1
  1074. package/dist/esm/standard/elements/int56.js +1 -1
  1075. package/dist/esm/standard/elements/int64.js +1 -1
  1076. package/dist/esm/standard/elements/int8.js +1 -1
  1077. package/dist/esm/standard/elements/ipadr.d.ts.map +1 -1
  1078. package/dist/esm/standard/elements/ipadr.js +1 -2
  1079. package/dist/esm/standard/elements/ipadr.js.map +1 -1
  1080. package/dist/esm/standard/elements/ipv4adr.js +1 -1
  1081. package/dist/esm/standard/elements/ipv6adr.js +1 -1
  1082. package/dist/esm/standard/elements/ipv6pre.js +1 -1
  1083. package/dist/esm/standard/elements/list.d.ts.map +1 -1
  1084. package/dist/esm/standard/elements/list.js +8 -10
  1085. package/dist/esm/standard/elements/list.js.map +1 -1
  1086. package/dist/esm/standard/elements/locationdesc.d.ts +8 -0
  1087. package/dist/esm/standard/elements/locationdesc.d.ts.map +1 -0
  1088. package/dist/esm/standard/elements/locationdesc.js +49 -0
  1089. package/dist/esm/standard/elements/locationdesc.js.map +6 -0
  1090. package/dist/esm/standard/elements/map16.js +1 -1
  1091. package/dist/esm/standard/elements/map32.js +1 -1
  1092. package/dist/esm/standard/elements/map64.js +1 -1
  1093. package/dist/esm/standard/elements/map8.js +1 -1
  1094. package/dist/esm/standard/elements/models.d.ts +27 -1
  1095. package/dist/esm/standard/elements/models.d.ts.map +1 -1
  1096. package/dist/esm/standard/elements/models.js +54 -2
  1097. package/dist/esm/standard/elements/models.js.map +1 -1
  1098. package/dist/esm/standard/elements/namespace.js +1 -1
  1099. package/dist/esm/standard/elements/node-id.js +1 -1
  1100. package/dist/esm/standard/elements/octstr.js +1 -1
  1101. package/dist/esm/standard/elements/percent.js +1 -1
  1102. package/dist/esm/standard/elements/percent100ths.js +1 -1
  1103. package/dist/esm/standard/elements/posix-ms.js +1 -1
  1104. package/dist/esm/standard/elements/power-mW.js +1 -1
  1105. package/dist/esm/standard/elements/priority.js +1 -1
  1106. package/dist/esm/standard/elements/semtag.js +5 -5
  1107. package/dist/esm/standard/elements/single.js +1 -1
  1108. package/dist/esm/standard/elements/status.d.ts.map +1 -1
  1109. package/dist/esm/standard/elements/status.js +19 -1
  1110. package/dist/esm/standard/elements/status.js.map +1 -1
  1111. package/dist/esm/standard/elements/string.js +1 -1
  1112. package/dist/esm/standard/elements/struct.js +1 -1
  1113. package/dist/esm/standard/elements/systime-ms.js +1 -1
  1114. package/dist/esm/standard/elements/systime-us.js +1 -1
  1115. package/dist/esm/standard/elements/tag.js +1 -1
  1116. package/dist/esm/standard/elements/temperature.js +1 -1
  1117. package/dist/esm/standard/elements/tod.js +1 -1
  1118. package/dist/esm/standard/elements/trans-id.js +1 -1
  1119. package/dist/esm/standard/elements/uint16.js +1 -1
  1120. package/dist/esm/standard/elements/uint24.js +1 -1
  1121. package/dist/esm/standard/elements/uint32.js +1 -1
  1122. package/dist/esm/standard/elements/uint40.js +1 -1
  1123. package/dist/esm/standard/elements/uint48.js +1 -1
  1124. package/dist/esm/standard/elements/uint56.js +1 -1
  1125. package/dist/esm/standard/elements/uint64.js +1 -1
  1126. package/dist/esm/standard/elements/uint8.js +1 -1
  1127. package/dist/esm/standard/elements/vendor-id.js +1 -1
  1128. package/dist/esm/standard/elements/voltage-mV.js +1 -1
  1129. package/package.json +4 -4
  1130. package/src/aspects/Conformance.ts +34 -6
  1131. package/src/aspects/Quality.ts +9 -1
  1132. package/src/common/Specification.ts +3 -3
  1133. package/src/logic/cluster-variance/IllegalFeatureCombinations.ts +104 -81
  1134. package/src/logic/cluster-variance/InferredComponents.ts +27 -1
  1135. package/src/logic/definition-validation/ValueValidator.ts +16 -6
  1136. package/src/models/AttributeModel.ts +2 -4
  1137. package/src/models/ClusterModel.ts +2 -4
  1138. package/src/models/CommandModel.ts +2 -5
  1139. package/src/models/DatatypeModel.ts +3 -4
  1140. package/src/models/DeviceTypeModel.ts +3 -3
  1141. package/src/models/EndpointModel.ts +3 -3
  1142. package/src/models/EventModel.ts +2 -5
  1143. package/src/models/FabricModel.ts +3 -3
  1144. package/src/models/FieldModel.ts +3 -4
  1145. package/src/models/MatterModel.ts +3 -3
  1146. package/src/models/Model.ts +61 -6
  1147. package/src/models/NodeModel.ts +3 -3
  1148. package/src/models/RequirementModel.ts +4 -4
  1149. package/src/models/SemanticNamespaceModel.ts +3 -3
  1150. package/src/models/SemanticTagModel.ts +3 -3
  1151. package/src/standard/elements/AcceptedCommandList.ts +6 -2
  1152. package/src/standard/elements/AccessControl.ts +578 -39
  1153. package/src/standard/elements/Actions.ts +16 -13
  1154. package/src/standard/elements/AdministratorCommissioning.ts +60 -44
  1155. package/src/standard/elements/AggregatorDT.ts +21 -4
  1156. package/src/standard/elements/AirPurifierDT.ts +5 -1
  1157. package/src/standard/elements/AlarmBase.ts +1 -2
  1158. package/src/standard/elements/ApplicationLauncher.ts +12 -6
  1159. package/src/standard/elements/AreaNamespaceNS.ts +129 -0
  1160. package/src/standard/elements/AtomicAttributeStatusStruct.ts +30 -0
  1161. package/src/standard/elements/AtomicRequestTypeEnum.ts +22 -0
  1162. package/src/standard/elements/BallastConfiguration.ts +3 -3
  1163. package/src/standard/elements/BasicInformation.ts +33 -25
  1164. package/src/standard/elements/BatteryStorageDT.ts +36 -0
  1165. package/src/standard/elements/BooleanStateConfiguration.ts +2 -2
  1166. package/src/standard/elements/BridgedDeviceBasicInformation.ts +170 -35
  1167. package/src/standard/elements/BridgedNodeDT.ts +25 -3
  1168. package/src/standard/elements/Channel.ts +28 -30
  1169. package/src/standard/elements/ColorControl.ts +757 -651
  1170. package/src/standard/elements/CommissionerControl.ts +194 -0
  1171. package/src/standard/elements/ConcentrationMeasurement.ts +2 -2
  1172. package/src/standard/elements/ContentControl.ts +41 -49
  1173. package/src/standard/elements/ContentLauncher.ts +21 -20
  1174. package/src/standard/elements/DeviceEnergyManagement.ts +254 -193
  1175. package/src/standard/elements/DeviceEnergyManagementDT.ts +31 -8
  1176. package/src/standard/elements/DeviceEnergyManagementMode.ts +52 -15
  1177. package/src/standard/elements/DishwasherAlarm.ts +2 -1
  1178. package/src/standard/elements/DishwasherMode.ts +34 -20
  1179. package/src/standard/elements/DoorLock.ts +574 -668
  1180. package/src/standard/elements/DoorLockControllerDT.ts +1 -1
  1181. package/src/standard/elements/DoorLockDT.ts +2 -2
  1182. package/src/standard/elements/EcosystemInformation.ts +191 -0
  1183. package/src/standard/elements/ElectricalEnergyMeasurement.ts +33 -34
  1184. package/src/standard/elements/ElectricalMeasurementNS.ts +1 -1
  1185. package/src/standard/elements/ElectricalPowerMeasurement.ts +5 -5
  1186. package/src/standard/elements/EnergyEvse.ts +156 -86
  1187. package/src/standard/elements/EnergyEvseDT.ts +43 -0
  1188. package/src/standard/elements/EnergyEvseMode.ts +79 -14
  1189. package/src/standard/elements/EnergyPreference.ts +28 -31
  1190. package/src/standard/elements/EthernetNetworkDiagnostics.ts +1 -2
  1191. package/src/standard/elements/EventList.ts +2 -11
  1192. package/src/standard/elements/FabricIndex.ts +1 -1
  1193. package/src/standard/elements/FanControl.ts +12 -12
  1194. package/src/standard/elements/FanDT.ts +5 -1
  1195. package/src/standard/elements/FeatureMap.ts +5 -3
  1196. package/src/standard/elements/FixedLabel.ts +7 -3
  1197. package/src/standard/elements/FlowMeasurement.ts +10 -9
  1198. package/src/standard/elements/GeneralCommissioning.ts +214 -48
  1199. package/src/standard/elements/GeneralDiagnostics.ts +26 -31
  1200. package/src/standard/elements/GeneratedCommandList.ts +4 -1
  1201. package/src/standard/elements/GroupKeyManagement.ts +26 -27
  1202. package/src/standard/elements/Groups.ts +2 -1
  1203. package/src/standard/elements/HeatPumpDT.ts +41 -0
  1204. package/src/standard/elements/IcdManagement.ts +71 -35
  1205. package/src/standard/elements/Identify.ts +12 -12
  1206. package/src/standard/elements/IlluminanceMeasurement.ts +10 -12
  1207. package/src/standard/elements/JointFabricAdministratorDT.ts +40 -0
  1208. package/src/standard/elements/JointFabricDatastoreCluster.ts +520 -0
  1209. package/src/standard/elements/JointFabricPki.ts +131 -0
  1210. package/src/standard/elements/KeypadInput.ts +3 -1
  1211. package/src/standard/elements/LandmarkNamespaceNS.ts +76 -0
  1212. package/src/standard/elements/LaundryDryerControls.ts +6 -6
  1213. package/src/standard/elements/LaundryNS.ts +1 -1
  1214. package/src/standard/elements/LaundryWasherControls.ts +23 -21
  1215. package/src/standard/elements/LaundryWasherMode.ts +35 -21
  1216. package/src/standard/elements/LevelControl.ts +61 -20
  1217. package/src/standard/elements/LocalizationConfiguration.ts +13 -16
  1218. package/src/standard/elements/MediaInput.ts +2 -1
  1219. package/src/standard/elements/MediaPlayback.ts +7 -4
  1220. package/src/standard/elements/MicrowaveOvenControl.ts +26 -22
  1221. package/src/standard/elements/MicrowaveOvenMode.ts +45 -15
  1222. package/src/standard/elements/ModeBase.ts +25 -58
  1223. package/src/standard/elements/ModeSelect.ts +13 -13
  1224. package/src/standard/elements/MountedDimmableLoadControlDT.ts +75 -0
  1225. package/src/standard/elements/MountedOnOffControlDT.ts +73 -0
  1226. package/src/standard/elements/NetworkCommissioning.ts +88 -80
  1227. package/src/standard/elements/NetworkInfrastructureManagerDT.ts +54 -0
  1228. package/src/standard/elements/OccupancySensing.ts +200 -55
  1229. package/src/standard/elements/OccupancySensorDT.ts +5 -1
  1230. package/src/standard/elements/OnOff.ts +1 -2
  1231. package/src/standard/elements/OperationalCredentials.ts +59 -55
  1232. package/src/standard/elements/OperationalState.ts +100 -69
  1233. package/src/standard/elements/OtaSoftwareUpdateProvider.ts +22 -24
  1234. package/src/standard/elements/OtaSoftwareUpdateRequestor.ts +2 -3
  1235. package/src/standard/elements/OvenCavityOperationalState.ts +13 -3
  1236. package/src/standard/elements/OvenDT.ts +1 -1
  1237. package/src/standard/elements/OvenMode.ts +50 -14
  1238. package/src/standard/elements/PowerSource.ts +44 -12
  1239. package/src/standard/elements/PowerSourceNS.ts +5 -5
  1240. package/src/standard/elements/PressureMeasurement.ts +8 -8
  1241. package/src/standard/elements/PumpConfigurationAndControl.ts +32 -22
  1242. package/src/standard/elements/PumpControllerDT.ts +1 -5
  1243. package/src/standard/elements/PumpDT.ts +14 -14
  1244. package/src/standard/elements/RefrigeratorAlarm.ts +2 -1
  1245. package/src/standard/elements/RefrigeratorAndTemperatureControlledCabinetMode.ts +37 -15
  1246. package/src/standard/elements/RefrigeratorDT.ts +1 -1
  1247. package/src/standard/elements/RefrigeratorNS.ts +1 -1
  1248. package/src/standard/elements/RelativeHumidityMeasurement.ts +3 -4
  1249. package/src/standard/elements/RelativePositionNS.ts +35 -0
  1250. package/src/standard/elements/ResourceMonitoring.ts +2 -1
  1251. package/src/standard/elements/RoboticVacuumCleanerDT.ts +5 -1
  1252. package/src/standard/elements/RoomAirConditionerNS.ts +1 -1
  1253. package/src/standard/elements/RootNodeDT.ts +18 -11
  1254. package/src/standard/elements/RvcCleanMode.ts +33 -11
  1255. package/src/standard/elements/RvcOperationalState.ts +24 -6
  1256. package/src/standard/elements/RvcRunMode.ts +37 -15
  1257. package/src/standard/elements/ScenesManagement.ts +42 -23
  1258. package/src/standard/elements/SecondaryNetworkInterfaceDT.ts +49 -0
  1259. package/src/standard/elements/ServiceArea.ts +708 -0
  1260. package/src/standard/elements/SmokeCoAlarm.ts +13 -15
  1261. package/src/standard/elements/SoftwareVersionCertificationStatusEnum.ts +1 -1
  1262. package/src/standard/elements/SolarPowerDT.ts +31 -0
  1263. package/src/standard/elements/Switch.ts +121 -38
  1264. package/src/standard/elements/SwitchesNS.ts +2 -2
  1265. package/src/standard/elements/TargetNavigator.ts +2 -2
  1266. package/src/standard/elements/TemperatureControl.ts +3 -3
  1267. package/src/standard/elements/TemperatureControlledCabinetDT.ts +1 -1
  1268. package/src/standard/elements/TemperatureMeasurement.ts +4 -4
  1269. package/src/standard/elements/Thermostat.ts +997 -182
  1270. package/src/standard/elements/ThermostatDT.ts +17 -21
  1271. package/src/standard/elements/ThermostatUserInterfaceConfiguration.ts +3 -3
  1272. package/src/standard/elements/ThreadBorderRouterManagement.ts +207 -0
  1273. package/src/standard/elements/ThreadNetworkDiagnostics.ts +28 -14
  1274. package/src/standard/elements/ThreadNetworkDirectory.ts +175 -0
  1275. package/src/standard/elements/TimeFormatLocalization.ts +1 -1
  1276. package/src/standard/elements/TimeSynchronization.ts +36 -34
  1277. package/src/standard/elements/UnitLocalization.ts +1 -2
  1278. package/src/standard/elements/UserLabel.ts +2 -1
  1279. package/src/standard/elements/ValidProxies.ts +2 -2
  1280. package/src/standard/elements/ValveConfigurationAndControl.ts +1 -1
  1281. package/src/standard/elements/WaterHeaterDT.ts +47 -0
  1282. package/src/standard/elements/WaterHeaterManagement.ts +283 -0
  1283. package/src/standard/elements/WaterHeaterMode.ts +95 -0
  1284. package/src/standard/elements/{PulseWidthModulation.ts → WaterTankLevelMonitoring.ts} +4 -2
  1285. package/src/standard/elements/WaterValveDT.ts +5 -5
  1286. package/src/standard/elements/WiFiNetworkDiagnostics.ts +5 -7
  1287. package/src/standard/elements/WiFiNetworkManagement.ts +98 -0
  1288. package/src/standard/elements/WindowCovering.ts +35 -35
  1289. package/src/standard/elements/WindowCoveringControllerDT.ts +0 -4
  1290. package/src/standard/elements/WindowCoveringDT.ts +2 -11
  1291. package/src/standard/elements/action-id.ts +1 -1
  1292. package/src/standard/elements/amperage-mA.ts +1 -1
  1293. package/src/standard/elements/attrib-id.ts +1 -1
  1294. package/src/standard/elements/bool.ts +1 -1
  1295. package/src/standard/elements/cluster-id.ts +1 -1
  1296. package/src/standard/elements/command-id.ts +1 -1
  1297. package/src/standard/elements/data-ver.ts +2 -2
  1298. package/src/standard/elements/date.ts +5 -5
  1299. package/src/standard/elements/definitions.ts +27 -1
  1300. package/src/standard/elements/devtype-id.ts +1 -1
  1301. package/src/standard/elements/double.ts +1 -1
  1302. package/src/standard/elements/elapsed-s.ts +1 -1
  1303. package/src/standard/elements/endpoint-no.ts +4 -2
  1304. package/src/standard/elements/energy-mWh.ts +1 -1
  1305. package/src/standard/elements/entry-idx.ts +1 -1
  1306. package/src/standard/elements/enum16.ts +1 -1
  1307. package/src/standard/elements/enum8.ts +1 -1
  1308. package/src/standard/elements/epoch-s.ts +1 -1
  1309. package/src/standard/elements/epoch-us.ts +1 -1
  1310. package/src/standard/elements/event-id.ts +1 -1
  1311. package/src/standard/elements/event-no.ts +1 -1
  1312. package/src/standard/elements/fabric-id.ts +1 -1
  1313. package/src/standard/elements/fabric-idx.ts +1 -1
  1314. package/src/standard/elements/field-id.ts +1 -1
  1315. package/src/standard/elements/group-id.ts +1 -1
  1316. package/src/standard/elements/hwadr.ts +1 -1
  1317. package/src/standard/elements/int16.ts +1 -1
  1318. package/src/standard/elements/int24.ts +1 -1
  1319. package/src/standard/elements/int32.ts +1 -1
  1320. package/src/standard/elements/int40.ts +1 -1
  1321. package/src/standard/elements/int48.ts +1 -1
  1322. package/src/standard/elements/int56.ts +1 -1
  1323. package/src/standard/elements/int64.ts +1 -1
  1324. package/src/standard/elements/int8.ts +1 -1
  1325. package/src/standard/elements/ipadr.ts +1 -2
  1326. package/src/standard/elements/ipv4adr.ts +1 -1
  1327. package/src/standard/elements/ipv6adr.ts +1 -1
  1328. package/src/standard/elements/ipv6pre.ts +1 -1
  1329. package/src/standard/elements/list.ts +77 -91
  1330. package/src/standard/elements/locationdesc.ts +80 -0
  1331. package/src/standard/elements/map16.ts +1 -1
  1332. package/src/standard/elements/map32.ts +1 -1
  1333. package/src/standard/elements/map64.ts +1 -1
  1334. package/src/standard/elements/map8.ts +1 -1
  1335. package/src/standard/elements/models.ts +27 -1
  1336. package/src/standard/elements/namespace.ts +1 -1
  1337. package/src/standard/elements/node-id.ts +1 -1
  1338. package/src/standard/elements/octstr.ts +1 -1
  1339. package/src/standard/elements/percent.ts +1 -1
  1340. package/src/standard/elements/percent100ths.ts +1 -1
  1341. package/src/standard/elements/posix-ms.ts +1 -1
  1342. package/src/standard/elements/power-mW.ts +1 -1
  1343. package/src/standard/elements/priority.ts +1 -1
  1344. package/src/standard/elements/semtag.ts +5 -5
  1345. package/src/standard/elements/single.ts +1 -1
  1346. package/src/standard/elements/status.ts +16 -1
  1347. package/src/standard/elements/string.ts +1 -1
  1348. package/src/standard/elements/struct.ts +1 -1
  1349. package/src/standard/elements/systime-ms.ts +1 -1
  1350. package/src/standard/elements/systime-us.ts +1 -1
  1351. package/src/standard/elements/tag.ts +1 -1
  1352. package/src/standard/elements/temperature.ts +1 -1
  1353. package/src/standard/elements/tod.ts +1 -1
  1354. package/src/standard/elements/trans-id.ts +1 -1
  1355. package/src/standard/elements/uint16.ts +1 -1
  1356. package/src/standard/elements/uint24.ts +1 -1
  1357. package/src/standard/elements/uint32.ts +1 -1
  1358. package/src/standard/elements/uint40.ts +1 -1
  1359. package/src/standard/elements/uint48.ts +1 -1
  1360. package/src/standard/elements/uint56.ts +1 -1
  1361. package/src/standard/elements/uint64.ts +1 -1
  1362. package/src/standard/elements/uint8.ts +1 -1
  1363. package/src/standard/elements/vendor-id.ts +1 -1
  1364. package/src/standard/elements/voltage-mV.ts +1 -1
  1365. package/dist/cjs/standard/elements/PulseWidthModulation.d.ts.map +0 -1
  1366. package/dist/cjs/standard/elements/PulseWidthModulation.js.map +0 -6
  1367. package/dist/esm/standard/elements/PulseWidthModulation.d.ts.map +0 -1
  1368. package/dist/esm/standard/elements/PulseWidthModulation.js +0 -13
  1369. package/dist/esm/standard/elements/PulseWidthModulation.js.map +0 -6
@@ -18,10 +18,10 @@ const DoorLock = Cluster(
18
18
  id: 257,
19
19
  classification: "application",
20
20
  pics: "DRLK",
21
- details: "The door lock cluster provides an interface to a generic way to secure a door. The physical object that provides the locking functionality is abstracted from the cluster. The cluster has a small list of mandatory attributes and functions and a list of optional features.",
21
+ details: "The door lock cluster provides an interface to a generic way to secure a door. The physical object that provides the locking functionality is abstracted from the cluster. The cluster has a small list of mandatory attributes and functions and a list of optional features.\nFigure 16. Typical Usage of the Door Lock Cluster",
22
22
  xref: { document: "cluster", section: "5.2" }
23
23
  },
24
- Attribute({ name: "ClusterRevision", id: 65533, type: "ClusterRevision", default: 7 }),
24
+ Attribute({ name: "ClusterRevision", id: 65533, type: "ClusterRevision", default: 8 }),
25
25
  Attribute(
26
26
  { name: "FeatureMap", id: 65532, type: "FeatureMap", xref: { document: "cluster", section: "5.2.4" } },
27
27
  Field({
@@ -37,7 +37,7 @@ const DoorLock = Cluster(
37
37
  conformance: "O",
38
38
  constraint: "1",
39
39
  description: "RfidCredential",
40
- details: "If the User Feature is also supported then any RFID credential stored in the lock shall be associated with a User.\nA lock may support multiple credential types so if the User feature is supported the UserType, UserStatus and Schedules are all associated with a User index and not directly with a RFID index. A User\nIndex may have several credentials associated with it.",
40
+ details: "If the User Feature is also supported then any RFID credential stored in the lock shall be associated with a User.\nA lock may support multiple credential types so if the User feature is supported the UserType, UserStatus and Schedules are all associated with a User index and not directly with a RFID index. A User Index may have several credentials associated with it.",
41
41
  xref: { document: "cluster", section: "5.2.4.2" }
42
42
  }),
43
43
  Field({
@@ -48,21 +48,13 @@ const DoorLock = Cluster(
48
48
  details: "Currently the cluster only defines the metadata format for notifications when a fingerprint/ finger vein credential is used to access the lock and doesn\u2019t describe how to create fingerprint/finger vein credentials. If the Users feature is also supported then the User that a fingerprint/finger vein is associated with can also have its UserType, UserStatus and Schedule modified.\nA lock may support multiple credential types so if the User feature is supported the UserType, UserStatus and Schedules are all associated with a User index and not directly with a Finger index. A User Index may have several credentials associated with it.",
49
49
  xref: { document: "cluster", section: "5.2.4.3" }
50
50
  }),
51
- Field({
52
- name: "LOG",
53
- conformance: "O",
54
- constraint: "3",
55
- description: "Logging",
56
- details: "If Events are not supported the logging feature shall replace the Event reporting structure. If Events are supported the logging feature shall NOT be supported.",
57
- xref: { document: "cluster", section: "5.2.4.4" }
58
- }),
59
51
  Field({
60
52
  name: "WDSCH",
61
53
  conformance: "O",
62
54
  constraint: "4",
63
55
  description: "WeekDayAccessSchedules",
64
- details: "If the User feature is supported then Week Day Schedules are applied to a User and not a credential.\nWeek Day Schedules are used to restrict access to a specified time window on certain days of the week. The schedule is repeated each week. When a schedule is cleared this clears the access restrictions and grants unrestricted access to the user. The lock may automatically adjust the UserType when a schedule is created or cleared.",
65
- xref: { document: "cluster", section: "5.2.4.5" }
56
+ details: "If the User feature is supported then Week Day Schedules are applied to a User and not a credential.\nWeek Day Schedules are used to restrict access to a specified time window on certain days of the week. The schedule is repeated each week.\nThe lock may automatically adjust the UserType when a schedule is created or cleared.\nSupport for WeekDayAccessSchedules requires that the lock has the capability of keeping track of local time.",
57
+ xref: { document: "cluster", section: "5.2.4.4" }
66
58
  }),
67
59
  Field({
68
60
  name: "DPS",
@@ -70,7 +62,7 @@ const DoorLock = Cluster(
70
62
  constraint: "5",
71
63
  description: "DoorPositionSensor",
72
64
  details: "If this feature is supported this indicates that the lock has the ability to determine the position of the door which is separate from the state of the lock.",
73
- xref: { document: "cluster", section: "5.2.4.6" }
65
+ xref: { document: "cluster", section: "5.2.4.5" }
74
66
  }),
75
67
  Field({
76
68
  name: "FACE",
@@ -78,47 +70,39 @@ const DoorLock = Cluster(
78
70
  constraint: "6",
79
71
  description: "FaceCredentials",
80
72
  details: "Currently the cluster only defines the metadata format for notifications when a face recognition, iris, or retina credential is used to access the lock and doesn\u2019t describe how to create face recognition, iris, or retina credentials. If the Users feature is also supported then the User that a face recognition, iris, or retina credential is associated with can also have its UserType, UserStatus and Schedule modified.\nA lock may support multiple credential types so if the User feature is supported the UserType, UserStatus and Schedules are all associated with a User and not directly with a credential.",
81
- xref: { document: "cluster", section: "5.2.4.7" }
73
+ xref: { document: "cluster", section: "5.2.4.6" }
82
74
  }),
83
75
  Field({
84
76
  name: "COTA",
85
77
  conformance: "O",
86
78
  constraint: "7",
87
79
  description: "CredentialOverTheAirAccess",
88
- details: "If this feature is supported then the lock supports the ability to verify a credential provided in a lock/unlock command. Currently the cluster only supports providing the PIN credential to the lock/unlock commands. If this feature is supported then the PIN Credential feature shall also be supported.",
89
- xref: { document: "cluster", section: "5.2.4.8" }
80
+ details: "If this feature is supported then the lock supports the ability to verify a credential provided in a\nlock/unlock command. Currently the cluster only supports providing the PIN credential to the lock/unlock commands. If this feature is supported then the PIN Credential feature shall also be supported.",
81
+ xref: { document: "cluster", section: "5.2.4.7" }
90
82
  }),
91
83
  Field({
92
84
  name: "USR",
93
- conformance: "[PIN | RID | FGP | FACE]",
85
+ conformance: "ALIRO, [PIN | RID | FGP | FACE]",
94
86
  constraint: "8",
95
87
  description: "User",
96
88
  details: "If the User Feature is supported then a lock employs a User database. A User within the User database is used to associate credentials and schedules to single user record within the lock. This also means the UserType and UserStatus fields are associated with a User and not a credential.",
97
- xref: { document: "cluster", section: "5.2.4.9" }
98
- }),
99
- Field({
100
- name: "NOT",
101
- conformance: "O",
102
- constraint: "9",
103
- description: "Notification",
104
- details: "This is a feature used before support of events. This feature supports notification commands and masks used to filter these notifications.",
105
- xref: { document: "cluster", section: "5.2.4.10" }
89
+ xref: { document: "cluster", section: "5.2.4.8" }
106
90
  }),
107
91
  Field({
108
92
  name: "YDSCH",
109
93
  conformance: "O",
110
94
  constraint: "10",
111
95
  description: "YearDayAccessSchedules",
112
- details: "If the User feature is supported then Year Day Schedules are applied to a User and not a credential.\nYear Day Schedules are used to restrict access to a specified date and time window. When a schedule is cleared this clears the access restrictions and grants unrestricted access to the user. The lock may automatically adjust the UserType when a schedule is created or cleared.",
113
- xref: { document: "cluster", section: "5.2.4.11" }
96
+ details: "If the User feature is supported then Year Day Schedules are applied to a User and not a credential. Year Day Schedules are used to restrict access to a specified date and time window.\nThe lock may automatically adjust the UserType when a schedule is created or cleared.\nSupport for YearDayAccessSchedules requires that the lock has the capability of keeping track of local time.",
97
+ xref: { document: "cluster", section: "5.2.4.9" }
114
98
  }),
115
99
  Field({
116
100
  name: "HDSCH",
117
101
  conformance: "O",
118
102
  constraint: "11",
119
103
  description: "HolidaySchedules",
120
- details: "This feature is used to setup Holiday Schedule in the lock device. A Holiday Schedule sets a start and stop end date/time for the lock to use the specified operating mode set by the Holiday Schedule.",
121
- xref: { document: "cluster", section: "5.2.4.12" }
104
+ details: "This feature is used to setup Holiday Schedule in the lock device. A Holiday Schedule sets a start and stop end date/time for the lock to use the specified operating mode set by the Holiday Schedule.\nSupport for HolidaySchedules requires that the lock has the capability of keeping track of local time.",
105
+ xref: { document: "cluster", section: "5.2.4.10" }
122
106
  }),
123
107
  Field({
124
108
  name: "UBOLT",
@@ -126,6 +110,22 @@ const DoorLock = Cluster(
126
110
  constraint: "12",
127
111
  description: "Unbolting",
128
112
  details: "Locks that support this feature differentiate between unbolting and unlocking. The Unbolt Door command retracts the bolt without pulling the latch. The Unlock Door command fully unlocks the door by retracting the bolt and briefly pulling the latch. While the latch is pulled, the lock state changes to Unlatched. Locks without unbolting support don\u2019t differentiate between unbolting and unlocking and perform the same operation for both commands.",
113
+ xref: { document: "cluster", section: "5.2.4.11" }
114
+ }),
115
+ Field({
116
+ name: "ALIRO",
117
+ conformance: "O",
118
+ constraint: "13",
119
+ description: "AliroProvisioning",
120
+ details: "Locks that support this feature implement the Aliro specification as defined in [Aliro] and support Matter as a method for provisioning Aliro credentials.",
121
+ xref: { document: "cluster", section: "5.2.4.12" }
122
+ }),
123
+ Field({
124
+ name: "ALBU",
125
+ conformance: "[ALIRO]",
126
+ constraint: "14",
127
+ description: "AliroBleuwb",
128
+ details: "Locks that support this feature implement the Bluetooth LE + UWB Access Control Flow as defined in [Aliro].",
129
129
  xref: { document: "cluster", section: "5.2.4.13" }
130
130
  })
131
131
  ),
@@ -136,9 +136,9 @@ const DoorLock = Cluster(
136
136
  access: "R V",
137
137
  conformance: "M",
138
138
  constraint: "desc",
139
- quality: "X S P",
139
+ quality: "X P",
140
140
  details: "This attribute may be NULL if the lock hardware does not currently know the status of the locking mechanism. For example, a lock may not know the LockState status after a power cycle until the first lock actuation is completed.\nThe Not Fully Locked value is used by a lock to indicate that the state of the lock is somewhere between Locked and Unlocked so it is only partially secured. For example, a deadbolt could be partially extended and not in a dead latched state.",
141
- xref: { document: "cluster", section: "5.2.9.2" }
141
+ xref: { document: "cluster", section: "5.2.9.1" }
142
142
  }),
143
143
  Attribute({
144
144
  name: "LockType",
@@ -148,7 +148,7 @@ const DoorLock = Cluster(
148
148
  conformance: "M",
149
149
  constraint: "desc",
150
150
  details: "Indicates the type of door lock as defined in LockTypeEnum.",
151
- xref: { document: "cluster", section: "5.2.9.3" }
151
+ xref: { document: "cluster", section: "5.2.9.2" }
152
152
  }),
153
153
  Attribute({
154
154
  name: "ActuatorEnabled",
@@ -157,7 +157,7 @@ const DoorLock = Cluster(
157
157
  access: "R V",
158
158
  conformance: "M",
159
159
  details: "Indicates if the lock is currently able to (Enabled) or not able to (Disabled) process remote Lock, Unlock, or Unlock with Timeout commands.",
160
- xref: { document: "cluster", section: "5.2.9.4" }
160
+ xref: { document: "cluster", section: "5.2.9.3" }
161
161
  }),
162
162
  Attribute({
163
163
  name: "DoorState",
@@ -168,7 +168,7 @@ const DoorLock = Cluster(
168
168
  constraint: "desc",
169
169
  quality: "X P",
170
170
  details: "Indicates the current door state as defined in DoorStateEnum.\nNull only if an internal error prevents the retrieval of the current door state.",
171
- xref: { document: "cluster", section: "5.2.9.5" }
171
+ xref: { document: "cluster", section: "5.2.9.4" }
172
172
  }),
173
173
  Attribute({
174
174
  name: "DoorOpenEvents",
@@ -177,7 +177,7 @@ const DoorLock = Cluster(
177
177
  access: "RW VM",
178
178
  conformance: "[DPS]",
179
179
  details: "This attribute shall hold the number of door open events that have occurred since it was last zeroed.",
180
- xref: { document: "cluster", section: "5.2.9.6" }
180
+ xref: { document: "cluster", section: "5.2.9.5" }
181
181
  }),
182
182
  Attribute({
183
183
  name: "DoorClosedEvents",
@@ -186,7 +186,7 @@ const DoorLock = Cluster(
186
186
  access: "RW VM",
187
187
  conformance: "[DPS]",
188
188
  details: "This attribute shall hold the number of door closed events that have occurred since it was last zeroed.",
189
- xref: { document: "cluster", section: "5.2.9.7" }
189
+ xref: { document: "cluster", section: "5.2.9.6" }
190
190
  }),
191
191
  Attribute({
192
192
  name: "OpenPeriod",
@@ -195,18 +195,7 @@ const DoorLock = Cluster(
195
195
  access: "RW VM",
196
196
  conformance: "[DPS]",
197
197
  details: "This attribute shall hold the number of minutes the door has been open since the last time it transitioned from closed to open.",
198
- xref: { document: "cluster", section: "5.2.9.8" }
199
- }),
200
- Attribute({
201
- name: "NumberOfLogRecordsSupported",
202
- id: 16,
203
- type: "uint16",
204
- access: "R V",
205
- conformance: "LOG",
206
- default: 0,
207
- quality: "F",
208
- details: "Indicates the number of available log records.",
209
- xref: { document: "cluster", section: "5.2.9.9" }
198
+ xref: { document: "cluster", section: "5.2.9.7" }
210
199
  }),
211
200
  Attribute({
212
201
  name: "NumberOfTotalUsersSupported",
@@ -217,7 +206,7 @@ const DoorLock = Cluster(
217
206
  default: 0,
218
207
  quality: "F",
219
208
  details: "Indicates the number of total users supported by the lock.",
220
- xref: { document: "cluster", section: "5.2.9.10" }
209
+ xref: { document: "cluster", section: "5.2.9.8" }
221
210
  }),
222
211
  Attribute({
223
212
  name: "NumberOfPinUsersSupported",
@@ -228,7 +217,7 @@ const DoorLock = Cluster(
228
217
  default: 0,
229
218
  quality: "F",
230
219
  details: "Indicates the number of PIN users supported.",
231
- xref: { document: "cluster", section: "5.2.9.11" }
220
+ xref: { document: "cluster", section: "5.2.9.9" }
232
221
  }),
233
222
  Attribute({
234
223
  name: "NumberOfRfidUsersSupported",
@@ -239,7 +228,7 @@ const DoorLock = Cluster(
239
228
  default: 0,
240
229
  quality: "F",
241
230
  details: "Indicates the number of RFID users supported.",
242
- xref: { document: "cluster", section: "5.2.9.12" }
231
+ xref: { document: "cluster", section: "5.2.9.10" }
243
232
  }),
244
233
  Attribute({
245
234
  name: "NumberOfWeekDaySchedulesSupportedPerUser",
@@ -247,10 +236,11 @@ const DoorLock = Cluster(
247
236
  type: "uint8",
248
237
  access: "R V",
249
238
  conformance: "WDSCH",
239
+ constraint: "max 253",
250
240
  default: 0,
251
241
  quality: "F",
252
242
  details: "Indicates the number of configurable week day schedule supported per user.",
253
- xref: { document: "cluster", section: "5.2.9.13" }
243
+ xref: { document: "cluster", section: "5.2.9.11" }
254
244
  }),
255
245
  Attribute({
256
246
  name: "NumberOfYearDaySchedulesSupportedPerUser",
@@ -258,10 +248,11 @@ const DoorLock = Cluster(
258
248
  type: "uint8",
259
249
  access: "R V",
260
250
  conformance: "YDSCH",
251
+ constraint: "max 253",
261
252
  default: 0,
262
253
  quality: "F",
263
254
  details: "Indicates the number of configurable year day schedule supported per user.",
264
- xref: { document: "cluster", section: "5.2.9.14" }
255
+ xref: { document: "cluster", section: "5.2.9.12" }
265
256
  }),
266
257
  Attribute({
267
258
  name: "NumberOfHolidaySchedulesSupported",
@@ -269,10 +260,11 @@ const DoorLock = Cluster(
269
260
  type: "uint8",
270
261
  access: "R V",
271
262
  conformance: "HDSCH",
263
+ constraint: "max 253",
272
264
  default: 0,
273
265
  quality: "F",
274
266
  details: "Indicates the number of holiday schedules supported for the entire door lock device.",
275
- xref: { document: "cluster", section: "5.2.9.15" }
267
+ xref: { document: "cluster", section: "5.2.9.13" }
276
268
  }),
277
269
  Attribute({
278
270
  name: "MaxPinCodeLength",
@@ -282,7 +274,7 @@ const DoorLock = Cluster(
282
274
  conformance: "PIN",
283
275
  quality: "F",
284
276
  details: "Indicates the maximum length in bytes of a PIN Code on this device.",
285
- xref: { document: "cluster", section: "5.2.9.16" }
277
+ xref: { document: "cluster", section: "5.2.9.14" }
286
278
  }),
287
279
  Attribute({
288
280
  name: "MinPinCodeLength",
@@ -292,7 +284,7 @@ const DoorLock = Cluster(
292
284
  conformance: "PIN",
293
285
  quality: "F",
294
286
  details: "Indicates the minimum length in bytes of a PIN Code on this device.",
295
- xref: { document: "cluster", section: "5.2.9.17" }
287
+ xref: { document: "cluster", section: "5.2.9.15" }
296
288
  }),
297
289
  Attribute({
298
290
  name: "MaxRfidCodeLength",
@@ -302,7 +294,7 @@ const DoorLock = Cluster(
302
294
  conformance: "RID",
303
295
  quality: "F",
304
296
  details: "Indicates the maximum length in bytes of a RFID Code on this device. The value depends on the RFID code range specified by the manufacturer, if media anti-collision identifiers (UID) are used as RFID code, a value of 20 (equals 10 Byte ISO 14443A UID) is recommended.",
305
- xref: { document: "cluster", section: "5.2.9.18" }
297
+ xref: { document: "cluster", section: "5.2.9.16" }
306
298
  }),
307
299
  Attribute({
308
300
  name: "MinRfidCodeLength",
@@ -312,7 +304,7 @@ const DoorLock = Cluster(
312
304
  conformance: "RID",
313
305
  quality: "F",
314
306
  details: "Indicates the minimum length in bytes of a RFID Code on this device. The value depends on the RFID code range specified by the manufacturer, if media anti-collision identifiers (UID) are used as RFID code, a value of 8 (equals 4 Byte ISO 14443A UID) is recommended.",
315
- xref: { document: "cluster", section: "5.2.9.19" }
307
+ xref: { document: "cluster", section: "5.2.9.17" }
316
308
  }),
317
309
  Attribute({
318
310
  name: "CredentialRulesSupport",
@@ -323,7 +315,7 @@ const DoorLock = Cluster(
323
315
  default: 1,
324
316
  quality: "F",
325
317
  details: "This attribute shall contain a bitmap with the bits set for the values of CredentialRuleEnum supported on this device.",
326
- xref: { document: "cluster", section: "5.2.9.20" }
318
+ xref: { document: "cluster", section: "5.2.9.18" }
327
319
  }),
328
320
  Attribute({
329
321
  name: "NumberOfCredentialsSupportedPerUser",
@@ -334,18 +326,7 @@ const DoorLock = Cluster(
334
326
  default: 0,
335
327
  quality: "F",
336
328
  details: "Indicates the number of credentials that could be assigned for each user.\nDepending on the value of NumberOfRFIDUsersSupported and NumberOfPINUsersSupported it may not be possible to assign that number of credentials for a user.\nFor example, if the device supports only PIN and RFID credential types, NumberOfCredentialsSupportedPerUser is set to 10, NumberOfPINUsersSupported is set to 5 and NumberOfRFIDUsersSupported is set to 3, it will not be possible to actually assign 10 credentials for a user because maximum number of credentials in the database is 8.",
337
- xref: { document: "cluster", section: "5.2.9.21" }
338
- }),
339
- Attribute({
340
- name: "EnableLogging",
341
- id: 32,
342
- type: "bool",
343
- access: "R[W] VA",
344
- conformance: "LOG",
345
- default: true,
346
- quality: "P",
347
- details: "This attribute shall enable/disable event logging.\nWhen event logging is enabled, all event messages are stored on the lock for retrieval. Logging events can be, but are not limited to, Tamper Alarm, Lock, Unlock, AutoRelock, User Code Added, User Code Cleared, Schedule Added, and Schedule Cleared. For a full detail of all the possible alarms and events, please refer to the full list in the Alarm and Event Masks Attribute Set.",
348
- xref: { document: "cluster", section: "5.2.9.22" }
329
+ xref: { document: "cluster", section: "5.2.9.19" }
349
330
  }),
350
331
  Attribute({
351
332
  name: "Language",
@@ -356,7 +337,7 @@ const DoorLock = Cluster(
356
337
  constraint: "max 3",
357
338
  quality: "P",
358
339
  details: "Indicates the language for the on-screen or audible user interface using a 2- byte language code from ISO-639-1.",
359
- xref: { document: "cluster", section: "5.2.9.23" }
340
+ xref: { document: "cluster", section: "5.2.9.20" }
360
341
  }),
361
342
  Attribute({
362
343
  name: "LedSettings",
@@ -367,7 +348,7 @@ const DoorLock = Cluster(
367
348
  default: 0,
368
349
  quality: "P",
369
350
  details: "Indicates the settings for the LED support, as defined by LEDSettingEnum.",
370
- xref: { document: "cluster", section: "5.2.9.24" }
351
+ xref: { document: "cluster", section: "5.2.9.21" }
371
352
  }),
372
353
  Attribute({
373
354
  name: "AutoRelockTime",
@@ -377,7 +358,7 @@ const DoorLock = Cluster(
377
358
  conformance: "O",
378
359
  quality: "P",
379
360
  details: "Indicates the number of seconds to wait after unlocking a lock before it automatically locks again. 0=disabled. If set, unlock operations from any source will be timed. For one time unlock with timeout use the specific command.",
380
- xref: { document: "cluster", section: "5.2.9.25" }
361
+ xref: { document: "cluster", section: "5.2.9.22" }
381
362
  }),
382
363
  Attribute({
383
364
  name: "SoundVolume",
@@ -388,7 +369,7 @@ const DoorLock = Cluster(
388
369
  default: 0,
389
370
  quality: "P",
390
371
  details: "Indicates the sound volume on a door lock as defined by SoundVolumeEnum.",
391
- xref: { document: "cluster", section: "5.2.9.26" }
372
+ xref: { document: "cluster", section: "5.2.9.23" }
392
373
  }),
393
374
  Attribute({
394
375
  name: "OperatingMode",
@@ -400,7 +381,7 @@ const DoorLock = Cluster(
400
381
  default: 0,
401
382
  quality: "P",
402
383
  details: "Indicates the current operating mode of the lock as defined in OperatingModeEnum.",
403
- xref: { document: "cluster", section: "5.2.9.27" }
384
+ xref: { document: "cluster", section: "5.2.9.24" }
404
385
  }),
405
386
  Attribute({
406
387
  name: "SupportedOperatingModes",
@@ -411,7 +392,7 @@ const DoorLock = Cluster(
411
392
  default: 65526,
412
393
  quality: "F",
413
394
  details: "This attribute shall contain a bitmap with all operating bits of the OperatingMode attribute supported by the lock. All operating modes NOT supported by a lock shall be set to one. The value of the OperatingMode enumeration defines the related bit to be set.",
414
- xref: { document: "cluster", section: "5.2.9.28" }
395
+ xref: { document: "cluster", section: "5.2.9.25" }
415
396
  }),
416
397
  Attribute({
417
398
  name: "DefaultConfigurationRegister",
@@ -421,8 +402,8 @@ const DoorLock = Cluster(
421
402
  conformance: "O",
422
403
  default: 0,
423
404
  quality: "P",
424
- details: "Indicates the default configurations as they are physically set on the device (example: hardware dip switch setting, etc\u2026) and represents the default setting for some of the attributes within this cluster (for example: LED, Auto Lock, Sound Volume, and Operating Mode attributes).\nThis is a read-only attribute and is intended to allow clients to determine what changes may need to be made without having to query all the included attributes. It may be beneficial for the clients to know what the device\u2019s original settings were in the event that the device needs to be restored to factory default settings.\nIf the Client device would like to query and modify the door lock server\u2019s operating settings, it SHOULD send read and write attribute requests to the specific attributes.\nFor example, the Sound Volume attribute default value is Silent Mode. However, it is possible that the current Sound Volume is High Volume. Therefore, if the client wants to query/modify the current Sound Volume setting on the server, the client SHOULD read/write to the Sound Volume attribute.",
425
- xref: { document: "cluster", section: "5.2.9.29" }
405
+ details: "Indicates the default configurations as they are physically set on the device (example: hardware dip switch setting, etc\u2026) and represents the default setting for some of the\nattributes within this cluster (for example: LED, Auto Lock, Sound Volume, and Operating Mode attributes).\nThis is a read-only attribute and is intended to allow clients to determine what changes may need to be made without having to query all the included attributes. It may be beneficial for the clients to know what the device\u2019s original settings were in the event that the device needs to be restored to factory default settings.\nIf the Client device would like to query and modify the door lock server\u2019s operating settings, it SHOULD send read and write attribute requests to the specific attributes.\nFor example, the Sound Volume attribute default value is Silent Mode. However, it is possible that the current Sound Volume is High Volume. Therefore, if the client wants to query/modify the current Sound Volume setting on the server, the client SHOULD read/write to the Sound Volume attribute.",
406
+ xref: { document: "cluster", section: "5.2.9.26" }
426
407
  }),
427
408
  Attribute({
428
409
  name: "EnableLocalProgramming",
@@ -433,7 +414,7 @@ const DoorLock = Cluster(
433
414
  default: true,
434
415
  quality: "P",
435
416
  details: "This attribute shall enable/disable local programming on the door lock of certain features (see LocalProgrammingFeatures attribute). If this value is set to TRUE then local programming is enabled on the door lock for all features. If it is set to FALSE then local programming is disabled on the door lock for those features whose bit is set to 0 in the LocalProgrammingFeatures attribute. Local programming shall be enabled by default.",
436
- xref: { document: "cluster", section: "5.2.9.30" }
417
+ xref: { document: "cluster", section: "5.2.9.27" }
437
418
  }),
438
419
  Attribute({
439
420
  name: "EnableOneTouchLocking",
@@ -444,7 +425,7 @@ const DoorLock = Cluster(
444
425
  default: true,
445
426
  quality: "P",
446
427
  details: "This attribute shall enable/disable the ability to lock the door lock with a single touch on the door lock.",
447
- xref: { document: "cluster", section: "5.2.9.31" }
428
+ xref: { document: "cluster", section: "5.2.9.28" }
448
429
  }),
449
430
  Attribute({
450
431
  name: "EnableInsideStatusLed",
@@ -455,7 +436,7 @@ const DoorLock = Cluster(
455
436
  default: true,
456
437
  quality: "P",
457
438
  details: "This attribute shall enable/disable an inside LED that allows the user to see at a glance if the door is locked.",
458
- xref: { document: "cluster", section: "5.2.9.32" }
439
+ xref: { document: "cluster", section: "5.2.9.29" }
459
440
  }),
460
441
  Attribute({
461
442
  name: "EnablePrivacyModeButton",
@@ -466,7 +447,7 @@ const DoorLock = Cluster(
466
447
  default: true,
467
448
  quality: "P",
468
449
  details: "This attribute shall enable/disable a button inside the door that is used to put the lock into privacy mode. When the lock is in privacy mode it cannot be manipulated from the outside.",
469
- xref: { document: "cluster", section: "5.2.9.33" }
450
+ xref: { document: "cluster", section: "5.2.9.30" }
470
451
  }),
471
452
  Attribute({
472
453
  name: "LocalProgrammingFeatures",
@@ -477,7 +458,7 @@ const DoorLock = Cluster(
477
458
  default: 0,
478
459
  quality: "P",
479
460
  details: "Indicates the local programming features that will be disabled when EnableLocalProgramming attribute is set to False. If a door lock doesn\u2019t support disabling one aspect of local programming it shall return CONSTRAINT_ERROR during a write operation of this attribute. If the EnableLocalProgramming attribute is set to True then all local programming features shall be enabled regardless of the bits set to 0 in this attribute.\nThe features that can be disabled from local programming are defined in LocalProgrammingFeaturesBitmap.",
480
- xref: { document: "cluster", section: "5.2.9.34" }
461
+ xref: { document: "cluster", section: "5.2.9.31" }
481
462
  }),
482
463
  Attribute({
483
464
  name: "WrongCodeEntryLimit",
@@ -488,7 +469,7 @@ const DoorLock = Cluster(
488
469
  constraint: "1 to 255",
489
470
  quality: "P",
490
471
  details: "Indicates the number of incorrect Pin codes or RFID presentment attempts a user is allowed to enter before the lock will enter a lockout state. The value of this attribute is compared to all failing forms of credential presentation, including Pin codes used in an Unlock Command when RequirePINforRemoteOperation is set to true. Valid range is 1-255 incorrect attempts. The lockout state will be for the duration of UserCodeTemporaryDisableTime. If the attribute accepts writes and an attempt to write the value 0 is made, the device shall respond with CONSTRAINT_ERROR.\nThe lock may reset the counter used to track incorrect credential presentations as required by internal logic, environmental events, or other reasons. The lock shall reset the counter if a valid credential is presented.",
491
- xref: { document: "cluster", section: "5.2.9.35" }
472
+ xref: { document: "cluster", section: "5.2.9.32" }
492
473
  }),
493
474
  Attribute({
494
475
  name: "UserCodeTemporaryDisableTime",
@@ -499,7 +480,7 @@ const DoorLock = Cluster(
499
480
  constraint: "1 to 255",
500
481
  quality: "P",
501
482
  details: "Indicates the number of seconds that the lock shuts down following wrong code entry. Valid range is 1-255 seconds. Device can shut down to lock user out for specified amount of time. (Makes it difficult to try and guess a PIN for the device.) If the attribute accepts writes and an attempt to write the attribute to 0 is made, the device shall respond with CONSTRAINT_ERROR.",
502
- xref: { document: "cluster", section: "5.2.9.36" }
483
+ xref: { document: "cluster", section: "5.2.9.33" }
503
484
  }),
504
485
  Attribute({
505
486
  name: "SendPinOverTheAir",
@@ -509,8 +490,8 @@ const DoorLock = Cluster(
509
490
  conformance: "[!USR & PIN]",
510
491
  default: true,
511
492
  quality: "P",
512
- details: 'Indicates the door locks ability to send PINs over the air. If the attribute is True it is ok for the door lock server to send PINs over the air. This attribute determines the behavior of the server\u2019s TX operation. If it is false, then it is not ok for the device to send PIN in any messages over the air.\nThe PIN field within any door lock cluster message shall keep the first octet unchanged and masks the actual code by replacing with 0xFF. For example (PIN "1234" ): If the attribute value is True, 0x04 0x31 0x32 0x33 0x34 shall be used in the PIN field in any door lock cluster message payload. If the attribute value is False, 0x04 0xFF 0xFF 0xFF 0xFF shall be used.',
513
- xref: { document: "cluster", section: "5.2.9.37" }
493
+ details: 'Indicates the door locks ability to send PINs over the air. If the attribute is True it is ok for the door lock server to send PINs over the air. This attribute determines the behavior of the server\u2019s TX operation. If it is false, then it is not ok for the device to send PIN in any messages over the air.\nThe PIN field within any door lock cluster message shall keep the first octet unchanged and\nmasks the actual code by replacing with 0xFF. For example (PIN "1234" ): If the attribute value is True, 0x04 0x31 0x32 0x33 0x34 shall be used in the PIN field in any door lock cluster message payload. If the attribute value is False, 0x04 0xFF 0xFF 0xFF 0xFF shall be used.',
494
+ xref: { document: "cluster", section: "5.2.9.34" }
514
495
  }),
515
496
  Attribute({
516
497
  name: "RequirePinForRemoteOperation",
@@ -521,11 +502,12 @@ const DoorLock = Cluster(
521
502
  default: true,
522
503
  quality: "P",
523
504
  details: "Indicates if the door lock requires an optional PIN. If this attribute is set to True, the door lock server requires that an optional PINs be included in the payload of remote lock operation events like Lock, Unlock, Unlock with Timeout and Toggle in order to function.",
524
- xref: { document: "cluster", section: "5.2.9.38" }
505
+ xref: { document: "cluster", section: "5.2.9.35" }
525
506
  }),
526
507
  Attribute({
527
508
  name: "SecurityLevel",
528
509
  id: 52,
510
+ access: "R V",
529
511
  conformance: "D",
530
512
  default: "0",
531
513
  xref: { document: "cluster", section: "5.2.9" }
@@ -539,7 +521,7 @@ const DoorLock = Cluster(
539
521
  constraint: "1 to 2880",
540
522
  quality: "P",
541
523
  details: "Indicates the number of minutes a PIN, RFID, Fingerprint, or other credential associated with a user of type ExpiringUser shall remain valid after its first use before expiring. When the credential expires the UserStatus for the corresponding user record shall be set to OccupiedDisabled.",
542
- xref: { document: "cluster", section: "5.2.9.39" }
524
+ xref: { document: "cluster", section: "5.2.9.36" }
543
525
  }),
544
526
  Attribute({
545
527
  name: "AlarmMask",
@@ -550,105 +532,118 @@ const DoorLock = Cluster(
550
532
  default: 65535,
551
533
  quality: "P",
552
534
  details: "This attribute is only supported if the Alarms cluster is on the same endpoint. The alarm mask is used to turn on/off alarms for particular functions. Alarms for an alarm group are enabled if the associated alarm mask bit is set. Each bit represents a group of alarms. Entire alarm groups can be turned on or off by setting or clearing the associated bit in the alarm mask.\nThis mask DOES NOT apply to the Events mechanism of this cluster.",
553
- xref: { document: "cluster", section: "5.2.9.40" }
554
- }),
555
- Attribute({
556
- name: "KeypadOperationEventMask",
557
- id: 65,
558
- type: "EventMaskBitmap",
559
- access: "RW VA",
560
- conformance: "[NOT & PIN]",
561
- default: 65535,
562
- quality: "P",
563
- details: "Event mask used to turn on and off the transmission of keypad operation events. This mask DOES NOT apply to the storing of events in the event log. This mask only applies to the Operation Event Notification Command.\nThis mask DOES NOT apply to the Events mechanism of this cluster.",
564
- xref: { document: "cluster", section: "5.2.9.41" }
535
+ xref: { document: "cluster", section: "5.2.9.37" }
565
536
  }),
566
537
  Attribute({
567
- name: "RemoteOperationEventMask",
568
- id: 66,
569
- type: "EventMaskBitmap",
570
- access: "RW VA",
571
- conformance: "[NOT]",
572
- default: 65535,
573
- quality: "P",
574
- details: "Event mask used to turn on and off the transmission of remote operation events. This mask DOES NOT apply to the storing of events in the event log. This mask only applies to the Operation Event Notification Command.\nThis mask DOES NOT apply to the Events mechanism of this cluster.",
575
- xref: { document: "cluster", section: "5.2.9.42" }
538
+ name: "AliroReaderVerificationKey",
539
+ id: 128,
540
+ type: "octstr",
541
+ access: "R A",
542
+ conformance: "ALIRO",
543
+ constraint: "65",
544
+ default: null,
545
+ quality: "X",
546
+ details: "Indicates the verification key component of the Reader\u2019s key pair as defined in [Aliro]. The value, if not null, shall be an uncompressed elliptic curve public key as defined in section 2.3.3 of SEC 1.\nNull if no Reader key pair has been configured on the lock. See SetAliroReaderConfig.",
547
+ xref: { document: "cluster", section: "5.2.9.38" }
576
548
  }),
577
549
  Attribute({
578
- name: "ManualOperationEventMask",
579
- id: 67,
580
- type: "EventMaskBitmap",
581
- access: "RW VA",
582
- conformance: "[NOT]",
583
- default: 65535,
584
- quality: "P",
585
- details: "Event mask used to turn on and off manual operation events. This mask DOES NOT apply to the storing of events in the event log. This mask only applies to the Operation Event Notification Command.\nThis mask DOES NOT apply to the Events mechanism of this cluster.",
586
- xref: { document: "cluster", section: "5.2.9.43" }
550
+ name: "AliroReaderGroupIdentifier",
551
+ id: 129,
552
+ type: "octstr",
553
+ access: "R A",
554
+ conformance: "ALIRO",
555
+ constraint: "16",
556
+ default: null,
557
+ quality: "X",
558
+ details: "Indicates the reader_group_identifier as defined in [Aliro].\nNull if no reader_group_identifier has been configured on the lock. See SetAliroReaderConfig.",
559
+ xref: { document: "cluster", section: "5.2.9.39" }
587
560
  }),
588
561
  Attribute({
589
- name: "RfidOperationEventMask",
590
- id: 68,
591
- type: "EventMaskBitmap",
592
- access: "RW VA",
593
- conformance: "[NOT & RID]",
594
- default: 65535,
595
- quality: "P",
596
- details: "Event mask used to turn on and off RFID operation events. This mask DOES NOT apply to the storing of events in the event log. This mask only applies to the Operation Event Notification Command.\nThis mask DOES NOT apply to the Events mechanism of this cluster.",
597
- xref: { document: "cluster", section: "5.2.9.44" }
562
+ name: "AliroReaderGroupSubIdentifier",
563
+ id: 130,
564
+ type: "octstr",
565
+ access: "R A",
566
+ conformance: "ALIRO",
567
+ constraint: "16",
568
+ quality: "F",
569
+ details: "Indicates the reader_group_sub_identifier as defined in [Aliro].",
570
+ xref: { document: "cluster", section: "5.2.9.40" }
598
571
  }),
599
572
  Attribute(
600
573
  {
601
- name: "KeypadProgrammingEventMask",
602
- id: 69,
603
- type: "EventMaskBitmap",
604
- access: "RW VA",
605
- conformance: "[NOT & PIN]",
606
- default: 65535,
607
- quality: "P",
608
- details: "Event mask used to turn on and off keypad programming events. This mask DOES NOT apply to the storing of events in the event log. This mask only applies to the Programming Event Notification Command.\nThis mask DOES NOT apply to the Events mechanism of this cluster.",
609
- xref: { document: "cluster", section: "5.2.9.45" }
610
- },
611
- Field({ name: "Unknown", constraint: "0" }),
612
- Field({ name: "PinCodeChanged", constraint: "1" }),
613
- Field({ name: "PinAdded", constraint: "2" }),
614
- Field({ name: "PinCleared", constraint: "3" }),
615
- Field({ name: "PinChanged", constraint: "4" })
616
- ),
617
- Attribute(
618
- {
619
- name: "RemoteProgrammingEventMask",
620
- id: 70,
621
- type: "EventMaskBitmap",
622
- access: "RW VA",
623
- conformance: "[NOT]",
624
- default: 65535,
625
- quality: "P",
626
- details: "Event mask used to turn on and off remote programming events. This mask DOES NOT apply to the storing of events in the event log. This mask only applies to the Programming Event Notification Command.\nThis mask DOES NOT apply to the Events mechanism of this cluster.",
627
- xref: { document: "cluster", section: "5.2.9.46" }
574
+ name: "AliroExpeditedTransactionSupportedProtocolVersions",
575
+ id: 131,
576
+ type: "list",
577
+ access: "R A",
578
+ conformance: "ALIRO",
579
+ constraint: "max 16[2]",
580
+ default: [],
581
+ quality: "F",
582
+ details: "Indicates the list of protocol versions supported for expedited transactions as defined in [Aliro].",
583
+ xref: { document: "cluster", section: "5.2.9.41" }
628
584
  },
629
- Field({ name: "Unknown", constraint: "0" }),
630
- Field({ name: "PinAdded", constraint: "2" }),
631
- Field({ name: "PinCleared", constraint: "3" }),
632
- Field({ name: "PinChanged", constraint: "4" }),
633
- Field({ name: "RfidCodeAdded", constraint: "5" }),
634
- Field({ name: "RfidCodeCleared", constraint: "6" })
585
+ Field({ name: "entry", type: "octstr" })
635
586
  ),
587
+ Attribute({
588
+ name: "AliroGroupResolvingKey",
589
+ id: 132,
590
+ type: "octstr",
591
+ access: "R A",
592
+ conformance: "ALBU",
593
+ constraint: "16",
594
+ default: null,
595
+ quality: "X",
596
+ details: "Indicates the Group Resolving Key as defined in [Aliro].\nNull if no group resolving key has been configured on the lock. See SetAliroReaderConfig.",
597
+ xref: { document: "cluster", section: "5.2.9.42" }
598
+ }),
636
599
  Attribute(
637
600
  {
638
- name: "RfidProgrammingEventMask",
639
- id: 71,
640
- type: "EventMaskBitmap",
641
- access: "RW VA",
642
- conformance: "[NOT & RID]",
643
- default: 65535,
644
- quality: "P",
645
- details: "Event mask used to turn on and off RFID programming events. This mask DOES NOT apply to the storing of events in the event log. This mask only applies to the Programming Event Notification Command.\nThis mask DOES NOT apply to the Events mechanism of this cluster.\nThis mask DOES NOT apply to the Events mechanism of this cluster.",
646
- xref: { document: "cluster", section: "5.2.9.47" }
601
+ name: "AliroSupportedBleuwbProtocolVersions",
602
+ id: 133,
603
+ type: "list",
604
+ access: "R A",
605
+ conformance: "ALBU",
606
+ constraint: "max 16[2]",
607
+ default: [],
608
+ quality: "F",
609
+ details: "Indicates the list of protocol versions supported for the Bluetooth LE + UWB Access Control Flow as defined in [Aliro].",
610
+ xref: { document: "cluster", section: "5.2.9.43" }
647
611
  },
648
- Field({ name: "Unknown", constraint: "0" }),
649
- Field({ name: "IdAdded", constraint: "5" }),
650
- Field({ name: "IdCleared", constraint: "6" })
612
+ Field({ name: "entry", type: "octstr" })
651
613
  ),
614
+ Attribute({
615
+ name: "AliroBleAdvertisingVersion",
616
+ id: 134,
617
+ type: "uint8",
618
+ access: "R A",
619
+ conformance: "ALBU",
620
+ default: 0,
621
+ quality: "F",
622
+ details: "Indicates the version of the Bluetooth LE advertisement as defined in [Aliro].",
623
+ xref: { document: "cluster", section: "5.2.9.44" }
624
+ }),
625
+ Attribute({
626
+ name: "NumberOfAliroCredentialIssuerKeysSupported",
627
+ id: 135,
628
+ type: "uint16",
629
+ access: "R V",
630
+ conformance: "ALIRO",
631
+ default: 0,
632
+ quality: "F",
633
+ details: "Indicates the maximum number of AliroCredentialIssuerKey credentials that can be stored on the lock.",
634
+ xref: { document: "cluster", section: "5.2.9.45" }
635
+ }),
636
+ Attribute({
637
+ name: "NumberOfAliroEndpointKeysSupported",
638
+ id: 136,
639
+ type: "uint16",
640
+ access: "R V",
641
+ conformance: "ALIRO",
642
+ default: 0,
643
+ quality: "F",
644
+ details: "Indicates the maximum number of endpoint key credentials that can be stored on the lock. This limit applies to the sum of the number of AliroEvictableEndpointKey credentials and the number of AliroNonEvictableEndpointKey credentials.\nNOTE\nThe credential indices used for these two credential types are independent of each other, similar to all other credential types. As long as NumberOfAliroEndpointKeysSupported is at least 2 a client could add a credential of type AliroEvictableEndpointKey at any index from 1 to NumberOfAliroEndpointKeysSupported and also add a credential of type AliroNonEvictableEndpointKey at the same index, and both credentials would exist on the server.",
645
+ xref: { document: "cluster", section: "5.2.9.46" }
646
+ }),
652
647
  Event(
653
648
  {
654
649
  name: "DoorLockAlarm",
@@ -694,7 +689,7 @@ const DoorLock = Cluster(
694
689
  access: "V",
695
690
  conformance: "M",
696
691
  priority: "critical",
697
- details: "The door lock server sends out a LockOperation event when the event is triggered by the various lock operation sources.\n \u2022 If the door lock server supports the Unbolt Door command, it shall generate a LockOperation event with LockOperationType set to Unlock after an Unbolt Door command succeeds.\n \u2022 If the door lock server supports the Unbolting feature and an Unlock Door command is performed, it shall generate a LockOperation event with LockOperationType set to Unlatch when the unlatched state is reached and a LockOperation event with LockOperationType set to Unlock when the lock successfully completes the unlock \u2192 hold latch \u2192 release latch and return to unlock state operation.\n \u2022 If the command fails during holding or releasing the latch but after passing the unlocked state, the door lock server shall generate a LockOperationError event with LockOperationType set to Unlatch and a LockOperation event with LockOperationType set to Unlock.\n \u25E6 If it fails before reaching the unlocked state, the door lock server shall generate only a LockOperationError event with LockOperationType set to Unlock.\n \u2022 Upon manual actuation, a door lock server that supports the Unbolting feature:\n \u25E6 shall generate a LockOperation event of LockOperationType Unlatch when it is actuated from the outside.\n \u25E6 may generate a LockOperation event of LockOperationType Unlatch when it is actuated from the inside.",
692
+ details: "The door lock server sends out a LockOperation event when the event is triggered by the various lock operation sources.\n \u2022 If the door lock server supports the Unbolt Door command, it shall generate a LockOperation event with LockOperationType set to Unlock after an Unbolt Door command succeeds.\n \u2022 If the door lock server supports the Unbolting feature and an Unlock Door command is performed, it shall generate a LockOperation event with LockOperationType set to Unlatch when the unlatched state is reached and a LockOperation event with LockOperationType set to Unlock when the lock successfully completes the unlock \u2192 hold latch \u2192 release latch and return to unlock state operation.\n \u2022 If the command fails during holding or releasing the latch but after passing the unlocked state, the door lock server shall generate a LockOperationError event with LockOperationType set to Unlatch and a LockOperation event with LockOperationType set to Unlock.\n \u25E6 If it fails before reaching the unlocked state, the door lock server shall generate only a LockOperationError event with LockOperationType set to Unlock.\n \u2022 Upon manual actuation, a door lock server that supports the Unbolting feature:\n \u25E6 shall generate a LockOperation event of LockOperationType Unlatch when it is actuated from the outside.\n \u25E6 may generate a LockOperation event of LockOperationType Unlatch when it is actuated\nfrom the inside.",
698
693
  xref: { document: "cluster", section: "5.2.11.3" }
699
694
  },
700
695
  Field({
@@ -860,7 +855,7 @@ const DoorLock = Cluster(
860
855
  id: 2,
861
856
  type: "OperationSourceEnum",
862
857
  conformance: "M",
863
- constraint: "unspecified, keypad, remote",
858
+ constraint: "aliro, unspecified, keypad, remote",
864
859
  details: "This field shall indicate the source of the user data change.",
865
860
  xref: { document: "cluster", section: "5.2.11.5.3" }
866
861
  }),
@@ -909,7 +904,7 @@ const DoorLock = Cluster(
909
904
  conformance: "M",
910
905
  direction: "request",
911
906
  response: "status",
912
- details: "This command causes the lock device to lock the door. This command includes an optional code for the lock. The door lock may require a PIN depending on the value of the RequirePINForRemoteOperation attribute.\n\u2020 The PIN/RFID Code is an obsolete field name, use PINCode instead.",
907
+ details: "This command causes the lock device to lock the door. This command includes an optional code for the lock. The door lock may require a PIN depending on the value of the RequirePINForRemoteOperation attribute.",
913
908
  xref: { document: "cluster", section: "5.2.10.1" }
914
909
  },
915
910
  Field({
@@ -929,7 +924,7 @@ const DoorLock = Cluster(
929
924
  conformance: "M",
930
925
  direction: "request",
931
926
  response: "status",
932
- details: "This command causes the lock device to unlock the door. This command includes an optional code for the lock. The door lock may require a code depending on the value of the RequirePINForRemoteOperation attribute.\nNOTE\nIf the attribute AutoRelockTime is supported the lock will transition to the locked state when the auto relock time has expired.\n\u2020 The PIN/RFID Code is an obsolete field name, use PINCode instead.",
927
+ details: "This command causes the lock device to unlock the door. This command includes an optional code for the lock. The door lock may require a code depending on the value of the RequirePINForRemoteOperation attribute.\nNOTE\nIf the attribute AutoRelockTime is supported the lock will transition to the locked state when the auto relock time has expired.",
933
928
  xref: { document: "cluster", section: "5.2.10.2" }
934
929
  },
935
930
  Field({
@@ -958,7 +953,7 @@ const DoorLock = Cluster(
958
953
  conformance: "O",
959
954
  direction: "request",
960
955
  response: "status",
961
- details: "This command causes the lock device to unlock the door with a timeout parameter. After the time in seconds specified in the timeout field, the lock device will relock itself automatically. This timeout parameter is only temporary for this message transition and overrides the default relock time\nas specified in the AutoRelockTime attribute. If the door lock device is not capable of or does not want to support temporary Relock Timeout, it SHOULD NOT support this optional command.\n\u2020 The PIN/RFID Code is an obsolete field name, use PINCode instead.",
956
+ details: "This command causes the lock device to unlock the door with a timeout parameter. After the time in seconds specified in the timeout field, the lock device will relock itself automatically. This timeout parameter is only temporary for this message transition and overrides the default relock time as specified in the AutoRelockTime attribute. If the door lock device is not capable of or does not want to support temporary Relock Timeout, it SHOULD NOT support this optional command.",
962
957
  xref: { document: "cluster", section: "5.2.10.3" }
963
958
  },
964
959
  Field({
@@ -978,88 +973,6 @@ const DoorLock = Cluster(
978
973
  xref: { document: "cluster", section: "5.2.10.3.2" }
979
974
  })
980
975
  ),
981
- Command(
982
- {
983
- name: "GetLogRecord",
984
- id: 4,
985
- access: "M",
986
- conformance: "LOG",
987
- direction: "request",
988
- response: "GetLogRecordResponse",
989
- details: "Request a log record. Log number is between 1 \u2013 [Number of Log Records Supported attribute]. If log number 0 is requested then the most recent log entry is returned.\nLog record format: The log record format is defined in the description of the GetLogRecordResponse command.",
990
- xref: { document: "cluster", section: "5.2.10.4" }
991
- },
992
- Field({ name: "LogIndex", id: 0, type: "uint16", conformance: "M", constraint: "desc" })
993
- ),
994
- Command(
995
- {
996
- name: "GetLogRecordResponse",
997
- id: 4,
998
- conformance: "LOG",
999
- direction: "response",
1000
- details: "Returns the specified log record. If an invalid log entry ID was requested, it is set to 0 and the most recent log entry will be returned.",
1001
- xref: { document: "cluster", section: "5.2.10.5" }
1002
- },
1003
- Field({
1004
- name: "LogEntryId",
1005
- id: 0,
1006
- type: "uint16",
1007
- conformance: "M",
1008
- constraint: "desc",
1009
- details: "This field shall indicate the index into the log table where this log entry is stored. If the log entry requested is 0, the most recent log is returned with the appropriate log entry ID.",
1010
- xref: { document: "cluster", section: "5.2.10.5.1" }
1011
- }),
1012
- Field({
1013
- name: "Timestamp",
1014
- id: 1,
1015
- type: "epoch-s",
1016
- conformance: "M",
1017
- details: "This field shall indicate the timestamp for all events and alarms on the door lock in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day of the event.",
1018
- xref: { document: "cluster", section: "5.2.10.5.2" }
1019
- }),
1020
- Field({
1021
- name: "EventType",
1022
- id: 2,
1023
- type: "EventTypeEnum",
1024
- conformance: "M",
1025
- details: "This field shall indicate the type of event that took place on the door lock, as defined in EventTypeEnum.",
1026
- xref: { document: "cluster", section: "5.2.10.5.3" }
1027
- }),
1028
- Field({
1029
- name: "Source",
1030
- id: 3,
1031
- type: "EventSourceEnum",
1032
- conformance: "M",
1033
- details: "This field shall indicate the source value as defined in EventSourceEnum.\nIf the EventType is 2 (Alarm) then the source SHOULD be, but does not have to be 255 (Indeterminate).",
1034
- xref: { document: "cluster", section: "5.2.10.5.4" }
1035
- }),
1036
- Field({
1037
- name: "EventId",
1038
- id: 4,
1039
- type: "uint8",
1040
- conformance: "M",
1041
- constraint: "desc",
1042
- details: "This field shall indicate the type of event that took place on the door lock depending on the event code table provided for a given event type and source. See Operation Event Codes.",
1043
- xref: { document: "cluster", section: "5.2.10.5.5" }
1044
- }),
1045
- Field({
1046
- name: "UserId",
1047
- id: 5,
1048
- type: "uint16",
1049
- conformance: "M",
1050
- constraint: "desc",
1051
- details: "This field shall indicate the ID of the user who generated the event on the door lock if one is available. Otherwise, the value is 0xFFFF.",
1052
- xref: { document: "cluster", section: "5.2.10.5.6" }
1053
- }),
1054
- Field({
1055
- name: "Pin",
1056
- id: 6,
1057
- type: "octstr",
1058
- conformance: "M",
1059
- details: "This field shall indicate the PIN code or RFID code that was used to create the event on the door lock if one is available.",
1060
- xref: { document: "cluster", section: "5.2.10.5.7" }
1061
- })
1062
- ),
1063
976
  Command(
1064
977
  {
1065
978
  name: "SetPinCode",
@@ -1069,7 +982,7 @@ const DoorLock = Cluster(
1069
982
  direction: "request",
1070
983
  response: "status",
1071
984
  details: "Set a PIN Code into the lock.\nReturn status is a global status code or a cluster-specific status code from the Status Codes table and shall be one of the following values:",
1072
- xref: { document: "cluster", section: "5.2.10.6" }
985
+ xref: { document: "cluster", section: "5.2.10.4" }
1073
986
  },
1074
987
  Field({
1075
988
  name: "UserId",
@@ -1078,7 +991,7 @@ const DoorLock = Cluster(
1078
991
  conformance: "M",
1079
992
  constraint: "desc",
1080
993
  details: "This field shall indicate the user ID. The value of the UserID field shall be between 0 and the value of the NumberOfPINUsersSupported attribute.",
1081
- xref: { document: "cluster", section: "5.2.10.6.1" }
994
+ xref: { document: "cluster", section: "5.2.10.4.1" }
1082
995
  }),
1083
996
  Field({
1084
997
  name: "UserStatus",
@@ -1089,7 +1002,7 @@ const DoorLock = Cluster(
1089
1002
  default: 1,
1090
1003
  quality: "X",
1091
1004
  details: "This field shall indicate the user status. Only the values 1 (Occupied/Enabled) and 3 (Occupied/Disabled) are allowed for UserStatus.",
1092
- xref: { document: "cluster", section: "5.2.10.6.2" }
1005
+ xref: { document: "cluster", section: "5.2.10.4.2" }
1093
1006
  }),
1094
1007
  Field({ name: "UserType", id: 2, type: "UserTypeEnum", conformance: "M", default: 0, quality: "X" }),
1095
1008
  Field({ name: "Pin", id: 3, type: "octstr", conformance: "M" })
@@ -1103,7 +1016,7 @@ const DoorLock = Cluster(
1103
1016
  direction: "request",
1104
1017
  response: "GetPinCodeResponse",
1105
1018
  details: "Retrieve a PIN Code.",
1106
- xref: { document: "cluster", section: "5.2.10.7" }
1019
+ xref: { document: "cluster", section: "5.2.10.5" }
1107
1020
  },
1108
1021
  Field({
1109
1022
  name: "UserId",
@@ -1112,7 +1025,7 @@ const DoorLock = Cluster(
1112
1025
  conformance: "M",
1113
1026
  constraint: "desc",
1114
1027
  details: "This field shall indicate the user ID. The value of the UserID field shall be between 0 and the value of the NumberOfPINUsersSupported attribute.",
1115
- xref: { document: "cluster", section: "5.2.10.7.1" }
1028
+ xref: { document: "cluster", section: "5.2.10.5.1" }
1116
1029
  })
1117
1030
  ),
1118
1031
  Command(
@@ -1122,7 +1035,7 @@ const DoorLock = Cluster(
1122
1035
  conformance: "!USR & PIN",
1123
1036
  direction: "response",
1124
1037
  details: "Returns the PIN for the specified user ID.\nIf the requested UserID is valid and the Code doesn\u2019t exist, Get RFID Code Response shall have the following format:\nUserID = requested User ID UserStatus = 0 (Available) UserType = Null (Not supported) PINCode = 0 (zero length)\nIf the requested UserID is invalid, send Default Response with an error status. The error status shall be equal to CONSTRAINT_ERROR when User_ID is less than the max number of users supported, and NOT_FOUND if greater than or equal to the max number of users supported.",
1125
- xref: { document: "cluster", section: "5.2.10.8" }
1038
+ xref: { document: "cluster", section: "5.2.10.6" }
1126
1039
  },
1127
1040
  Field({ name: "UserId", id: 0, type: "uint16", conformance: "M", constraint: "desc" }),
1128
1041
  Field({
@@ -1145,8 +1058,8 @@ const DoorLock = Cluster(
1145
1058
  conformance: "!USR & PIN",
1146
1059
  direction: "request",
1147
1060
  response: "status",
1148
- details: "Clear a PIN code or all PIN codes.\n\u2020 The User ID is an obsolete field name, use PINSlotIndex instead.\nFor each PIN Code cleared whose user doesn\u2019t have a RFID Code or other credential type, then corresponding user record\u2019s UserStatus value shall be set to Available, and UserType value shall be set to UnrestrictedUser and all schedules shall be cleared.",
1149
- xref: { document: "cluster", section: "5.2.10.9" }
1061
+ details: "Clear a PIN code or all PIN codes.\nFor each PIN Code cleared whose user doesn\u2019t have a RFID Code or other credential type, then corresponding user record\u2019s UserStatus value shall be set to Available, and UserType value shall be set to UnrestrictedUser and all schedules shall be cleared.",
1062
+ xref: { document: "cluster", section: "5.2.10.7" }
1150
1063
  },
1151
1064
  Field({
1152
1065
  name: "PinSlotIndex",
@@ -1155,7 +1068,7 @@ const DoorLock = Cluster(
1155
1068
  conformance: "M",
1156
1069
  constraint: "1 to numberOfPinUsersSupported, 65534",
1157
1070
  details: "This field shall specify a valid PIN code slot index or 0xFFFE to indicate all PIN code slots shall be cleared.",
1158
- xref: { document: "cluster", section: "5.2.10.9.1" }
1071
+ xref: { document: "cluster", section: "5.2.10.7.1" }
1159
1072
  })
1160
1073
  ),
1161
1074
  Command({
@@ -1166,7 +1079,7 @@ const DoorLock = Cluster(
1166
1079
  direction: "request",
1167
1080
  response: "status",
1168
1081
  details: "Clear out all PINs on the lock.\nNOTE\nOn the server, the clear all PIN codes command SHOULD have the same effect as the ClearPINCode command with respect to the setting of user status, user type and schedules.",
1169
- xref: { document: "cluster", section: "5.2.10.10" }
1082
+ xref: { document: "cluster", section: "5.2.10.8" }
1170
1083
  }),
1171
1084
  Command(
1172
1085
  {
@@ -1177,7 +1090,7 @@ const DoorLock = Cluster(
1177
1090
  direction: "request",
1178
1091
  response: "status",
1179
1092
  details: "Set the status of a user ID.",
1180
- xref: { document: "cluster", section: "5.2.10.11" }
1093
+ xref: { document: "cluster", section: "5.2.10.9" }
1181
1094
  },
1182
1095
  Field({
1183
1096
  name: "UserId",
@@ -1186,7 +1099,7 @@ const DoorLock = Cluster(
1186
1099
  conformance: "M",
1187
1100
  constraint: "desc",
1188
1101
  details: "This field shall indicate the user ID. The value of the UserID field shall be between 0 and the value of the NumberOfPINUsersSupported attribute.",
1189
- xref: { document: "cluster", section: "5.2.10.11.1" }
1102
+ xref: { document: "cluster", section: "5.2.10.9.1" }
1190
1103
  }),
1191
1104
  Field({
1192
1105
  name: "UserStatus",
@@ -1195,7 +1108,7 @@ const DoorLock = Cluster(
1195
1108
  conformance: "M",
1196
1109
  constraint: "desc",
1197
1110
  details: "UserStatus value of Available is not allowed. In order to clear a user id, the ClearUser Command shall be used. For user status value please refer to UserStatusEnum.",
1198
- xref: { document: "cluster", section: "5.2.10.11.2" }
1111
+ xref: { document: "cluster", section: "5.2.10.9.2" }
1199
1112
  })
1200
1113
  ),
1201
1114
  Command(
@@ -1207,7 +1120,7 @@ const DoorLock = Cluster(
1207
1120
  direction: "request",
1208
1121
  response: "GetUserStatusResponse",
1209
1122
  details: "Get the status of a user.",
1210
- xref: { document: "cluster", section: "5.2.10.12" }
1123
+ xref: { document: "cluster", section: "5.2.10.10" }
1211
1124
  },
1212
1125
  Field({
1213
1126
  name: "UserId",
@@ -1216,7 +1129,7 @@ const DoorLock = Cluster(
1216
1129
  conformance: "M",
1217
1130
  constraint: "desc",
1218
1131
  details: "This field shall indicate the user ID. The value of the UserID field shall be between 0 and the value of the NumberOfPINUsersSupported attribute.",
1219
- xref: { document: "cluster", section: "5.2.10.12.1" }
1132
+ xref: { document: "cluster", section: "5.2.10.10.1" }
1220
1133
  })
1221
1134
  ),
1222
1135
  Command(
@@ -1226,7 +1139,7 @@ const DoorLock = Cluster(
1226
1139
  conformance: "!USR",
1227
1140
  direction: "response",
1228
1141
  details: "Returns the user status for the specified user ID.",
1229
- xref: { document: "cluster", section: "5.2.10.13" }
1142
+ xref: { document: "cluster", section: "5.2.10.11" }
1230
1143
  },
1231
1144
  Field({
1232
1145
  name: "UserId",
@@ -1235,7 +1148,7 @@ const DoorLock = Cluster(
1235
1148
  conformance: "M",
1236
1149
  constraint: "desc",
1237
1150
  details: "This field shall indicate the user ID provided in the request.",
1238
- xref: { document: "cluster", section: "5.2.10.13.1" }
1151
+ xref: { document: "cluster", section: "5.2.10.11.1" }
1239
1152
  }),
1240
1153
  Field({
1241
1154
  name: "UserStatus",
@@ -1243,7 +1156,7 @@ const DoorLock = Cluster(
1243
1156
  type: "UserStatusEnum",
1244
1157
  conformance: "M",
1245
1158
  details: "This field shall indicate the current status of the requested user ID.",
1246
- xref: { document: "cluster", section: "5.2.10.13.2" }
1159
+ xref: { document: "cluster", section: "5.2.10.11.2" }
1247
1160
  })
1248
1161
  ),
1249
1162
  Command(
@@ -1254,8 +1167,8 @@ const DoorLock = Cluster(
1254
1167
  conformance: "WDSCH",
1255
1168
  direction: "request",
1256
1169
  response: "status",
1257
- details: "Set a weekly repeating schedule for a specified user.\n\u2020 The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead, respectively.\nThe associated UserType may be changed to ScheduleRestrictedUser by the lock when a Week Day schedule is set.\nReturn status shall be one of the following values:",
1258
- xref: { document: "cluster", section: "5.2.10.14" }
1170
+ details: "Set a weekly repeating schedule for a specified user.\nThe associated UserType may be changed to ScheduleRestrictedUser by the lock when a Week Day schedule is set.\nReturn status shall be one of the following values:",
1171
+ xref: { document: "cluster", section: "5.2.10.12" }
1259
1172
  },
1260
1173
  Field({
1261
1174
  name: "WeekDayIndex",
@@ -1264,14 +1177,16 @@ const DoorLock = Cluster(
1264
1177
  conformance: "M",
1265
1178
  constraint: "1 to numberOfWeekDaySchedulesSupportedPerUser",
1266
1179
  details: "This field shall indicate the index of the Week Day schedule.",
1267
- xref: { document: "cluster", section: "5.2.10.14.1" }
1180
+ xref: { document: "cluster", section: "5.2.10.12.1" }
1268
1181
  }),
1269
1182
  Field({
1270
- name: "UserIndexUserId",
1183
+ name: "UserIndex",
1271
1184
  id: 1,
1272
1185
  type: "uint16",
1273
1186
  conformance: "M",
1274
- constraint: "1 to numberOfTotalUsersSupported"
1187
+ constraint: "1 to numberOfTotalUsersSupported",
1188
+ details: "This field shall indicate the user ID.",
1189
+ xref: { document: "cluster", section: "5.2.10.12.2" }
1275
1190
  }),
1276
1191
  Field({
1277
1192
  name: "DaysMask",
@@ -1279,43 +1194,43 @@ const DoorLock = Cluster(
1279
1194
  type: "DaysMaskBitmap",
1280
1195
  conformance: "M",
1281
1196
  details: "This field shall indicate which week days the schedule is active.",
1282
- xref: { document: "cluster", section: "5.2.10.14.3" }
1197
+ xref: { document: "cluster", section: "5.2.10.12.3" }
1283
1198
  }),
1284
1199
  Field({
1285
1200
  name: "StartHour",
1286
1201
  id: 3,
1287
1202
  type: "uint8",
1288
1203
  conformance: "M",
1289
- constraint: "0 to 23",
1204
+ constraint: "max 23",
1290
1205
  details: "This field shall indicate the starting hour for the Week Day schedule.",
1291
- xref: { document: "cluster", section: "5.2.10.14.4" }
1206
+ xref: { document: "cluster", section: "5.2.10.12.4" }
1292
1207
  }),
1293
1208
  Field({
1294
1209
  name: "StartMinute",
1295
1210
  id: 4,
1296
1211
  type: "uint8",
1297
1212
  conformance: "M",
1298
- constraint: "0 to 59",
1213
+ constraint: "max 59",
1299
1214
  details: "This field shall indicate the starting minute for the Week Day schedule.",
1300
- xref: { document: "cluster", section: "5.2.10.14.5" }
1215
+ xref: { document: "cluster", section: "5.2.10.12.5" }
1301
1216
  }),
1302
1217
  Field({
1303
1218
  name: "EndHour",
1304
1219
  id: 5,
1305
1220
  type: "uint8",
1306
1221
  conformance: "M",
1307
- constraint: "0 to 23",
1222
+ constraint: "max 23",
1308
1223
  details: "This field shall indicate the ending hour for the Week Day schedule. EndHour shall be equal to or greater than StartHour.",
1309
- xref: { document: "cluster", section: "5.2.10.14.6" }
1224
+ xref: { document: "cluster", section: "5.2.10.12.6" }
1310
1225
  }),
1311
1226
  Field({
1312
1227
  name: "EndMinute",
1313
1228
  id: 6,
1314
1229
  type: "uint8",
1315
1230
  conformance: "M",
1316
- constraint: "0 to 59",
1231
+ constraint: "max 59",
1317
1232
  details: "This field shall indicate the ending minute for the Week Day schedule. If EndHour is equal to StartHour then EndMinute shall be greater than StartMinute.\nIf the EndHour is equal to 23 and the EndMinute is equal to 59 the Lock shall grant access to the user up until 23:59:59.",
1318
- xref: { document: "cluster", section: "5.2.10.14.7" }
1233
+ xref: { document: "cluster", section: "5.2.10.12.7" }
1319
1234
  })
1320
1235
  ),
1321
1236
  Command(
@@ -1326,8 +1241,8 @@ const DoorLock = Cluster(
1326
1241
  conformance: "WDSCH",
1327
1242
  direction: "request",
1328
1243
  response: "GetWeekDayScheduleResponse",
1329
- details: "Retrieve the specific weekly schedule for the specific user.\n\u2020 The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead, respectively.",
1330
- xref: { document: "cluster", section: "5.2.10.15" }
1244
+ details: "Retrieve the specific weekly schedule for the specific user.",
1245
+ xref: { document: "cluster", section: "5.2.10.13" }
1331
1246
  },
1332
1247
  Field({
1333
1248
  name: "WeekDayIndex",
@@ -1337,7 +1252,7 @@ const DoorLock = Cluster(
1337
1252
  constraint: "1 to numberOfWeekDaySchedulesSupportedPerUser"
1338
1253
  }),
1339
1254
  Field({
1340
- name: "UserIndexUserId",
1255
+ name: "UserIndex",
1341
1256
  id: 1,
1342
1257
  type: "uint16",
1343
1258
  conformance: "M",
@@ -1350,8 +1265,8 @@ const DoorLock = Cluster(
1350
1265
  id: 12,
1351
1266
  conformance: "WDSCH",
1352
1267
  direction: "response",
1353
- details: "Returns the weekly repeating schedule data for the specified schedule index.\n\u2020 The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead, respectively.",
1354
- xref: { document: "cluster", section: "5.2.10.16" }
1268
+ details: "Returns the weekly repeating schedule data for the specified schedule index.",
1269
+ xref: { document: "cluster", section: "5.2.10.14" }
1355
1270
  },
1356
1271
  Field({
1357
1272
  name: "WeekDayIndex",
@@ -1360,14 +1275,16 @@ const DoorLock = Cluster(
1360
1275
  conformance: "M",
1361
1276
  constraint: "1 to numberOfWeekDaySchedulesSupportedPerUser",
1362
1277
  details: "This field shall indicate the index of the Week Day schedule.",
1363
- xref: { document: "cluster", section: "5.2.10.16.1" }
1278
+ xref: { document: "cluster", section: "5.2.10.14.1" }
1364
1279
  }),
1365
1280
  Field({
1366
- name: "UserIndexUserId",
1281
+ name: "UserIndex",
1367
1282
  id: 1,
1368
1283
  type: "uint16",
1369
1284
  conformance: "M",
1370
- constraint: "1 to numberOfTotalUsersSupported"
1285
+ constraint: "1 to numberOfTotalUsersSupported",
1286
+ details: "This field shall indicate the user ID.",
1287
+ xref: { document: "cluster", section: "5.2.10.14.2" }
1371
1288
  }),
1372
1289
  Field({
1373
1290
  name: "Status",
@@ -1377,7 +1294,7 @@ const DoorLock = Cluster(
1377
1294
  constraint: "desc",
1378
1295
  default: 0,
1379
1296
  details: "Status shall be one of the following values:\n \u2022 SUCCESS if both WeekDayIndex and UserIndex are valid and there is a corresponding schedule entry.\n \u2022 INVALID_COMMAND if either WeekDayIndex and/or UserIndex values are not within valid range\n \u2022 NOT_FOUND if no corresponding schedule entry found for WeekDayIndex.\n \u2022 NOT_FOUND if no corresponding user entry found for UserIndex.\nIf this field is SUCCESS, the optional fields for this command shall be present. For other (error) status values, only the fields up to the status field shall be present.",
1380
- xref: { document: "cluster", section: "5.2.10.16.3" }
1297
+ xref: { document: "cluster", section: "5.2.10.14.3" }
1381
1298
  }),
1382
1299
  Field({ name: "DaysMask", id: 3, type: "DaysMaskBitmap", conformance: "O" }),
1383
1300
  Field({
@@ -1385,36 +1302,36 @@ const DoorLock = Cluster(
1385
1302
  id: 4,
1386
1303
  type: "uint8",
1387
1304
  conformance: "O",
1388
- constraint: "0 to 23",
1305
+ constraint: "max 23",
1389
1306
  details: "This field shall indicate the starting hour for the Week Day schedule.",
1390
- xref: { document: "cluster", section: "5.2.10.16.4" }
1307
+ xref: { document: "cluster", section: "5.2.10.14.4" }
1391
1308
  }),
1392
1309
  Field({
1393
1310
  name: "StartMinute",
1394
1311
  id: 5,
1395
1312
  type: "uint8",
1396
1313
  conformance: "O",
1397
- constraint: "0 to 59",
1314
+ constraint: "max 59",
1398
1315
  details: "This field shall indicate the starting minute for the Week Day schedule.",
1399
- xref: { document: "cluster", section: "5.2.10.16.5" }
1316
+ xref: { document: "cluster", section: "5.2.10.14.5" }
1400
1317
  }),
1401
1318
  Field({
1402
1319
  name: "EndHour",
1403
1320
  id: 6,
1404
1321
  type: "uint8",
1405
1322
  conformance: "O",
1406
- constraint: "0 to 23",
1323
+ constraint: "max 23",
1407
1324
  details: "This field shall indicate the ending hour for the Week Day schedule. EndHour shall be equal to or greater than StartHour.",
1408
- xref: { document: "cluster", section: "5.2.10.16.6" }
1325
+ xref: { document: "cluster", section: "5.2.10.14.6" }
1409
1326
  }),
1410
1327
  Field({
1411
1328
  name: "EndMinute",
1412
1329
  id: 7,
1413
1330
  type: "uint8",
1414
1331
  conformance: "O",
1415
- constraint: "0 to 59",
1332
+ constraint: "max 59",
1416
1333
  details: "This field shall indicate the ending minute for the Week Day schedule. If EndHour is equal to StartHour then EndMinute shall be greater than StartMinute.",
1417
- xref: { document: "cluster", section: "5.2.10.16.7" }
1334
+ xref: { document: "cluster", section: "5.2.10.14.7" }
1418
1335
  })
1419
1336
  ),
1420
1337
  Command(
@@ -1425,8 +1342,8 @@ const DoorLock = Cluster(
1425
1342
  conformance: "WDSCH",
1426
1343
  direction: "request",
1427
1344
  response: "status",
1428
- details: "Clear the specific weekly schedule or all weekly schedules for the specific user.\n\u2020 The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead, respectively.\nReturn status shall be one of the following values:",
1429
- xref: { document: "cluster", section: "5.2.10.17" }
1345
+ details: "Clear the specific weekly schedule or all weekly schedules for the specific user.\nReturn status shall be one of the following values:",
1346
+ xref: { document: "cluster", section: "5.2.10.15" }
1430
1347
  },
1431
1348
  Field({
1432
1349
  name: "WeekDayIndex",
@@ -1435,14 +1352,16 @@ const DoorLock = Cluster(
1435
1352
  conformance: "M",
1436
1353
  constraint: "1 to numberOfWeekDaySchedulesSupportedPerUser, 254",
1437
1354
  details: "This field shall indicate the Week Day schedule index to clear or 0xFE to clear all Week Day schedules for the specified user.",
1438
- xref: { document: "cluster", section: "5.2.10.17.1" }
1355
+ xref: { document: "cluster", section: "5.2.10.15.1" }
1439
1356
  }),
1440
1357
  Field({
1441
- name: "UserIndexUserId",
1358
+ name: "UserIndex",
1442
1359
  id: 1,
1443
1360
  type: "uint16",
1444
1361
  conformance: "M",
1445
- constraint: "1 to numberOfTotalUsersSupported"
1362
+ constraint: "1 to numberOfTotalUsersSupported",
1363
+ details: "This field shall indicate the user ID.",
1364
+ xref: { document: "cluster", section: "5.2.10.15.2" }
1446
1365
  })
1447
1366
  ),
1448
1367
  Command(
@@ -1453,8 +1372,8 @@ const DoorLock = Cluster(
1453
1372
  conformance: "YDSCH",
1454
1373
  direction: "request",
1455
1374
  response: "status",
1456
- details: "Set a time-specific schedule ID for a specified user.\n\u2020 The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead, respectively.\nThe associated UserType may be changed to ScheduleRestrictedUser by the lock when a Year Day schedule is set.\nReturn status shall be one of the following values:",
1457
- xref: { document: "cluster", section: "5.2.10.18" }
1375
+ details: "Set a time-specific schedule ID for a specified user.\nThe associated UserType may be changed to ScheduleRestrictedUser by the lock when a Year Day schedule is set.\nReturn status shall be one of the following values:",
1376
+ xref: { document: "cluster", section: "5.2.10.16" }
1458
1377
  },
1459
1378
  Field({
1460
1379
  name: "YearDayIndex",
@@ -1463,14 +1382,16 @@ const DoorLock = Cluster(
1463
1382
  conformance: "M",
1464
1383
  constraint: "1 to numberOfYearDaySchedulesSupportedPerUser",
1465
1384
  details: "This field shall indicate the index of the Year Day schedule.",
1466
- xref: { document: "cluster", section: "5.2.10.18.1" }
1385
+ xref: { document: "cluster", section: "5.2.10.16.1" }
1467
1386
  }),
1468
1387
  Field({
1469
- name: "UserIndexUserId",
1388
+ name: "UserIndex",
1470
1389
  id: 1,
1471
1390
  type: "uint16",
1472
1391
  conformance: "M",
1473
- constraint: "1 to numberOfTotalUsersSupported"
1392
+ constraint: "1 to numberOfTotalUsersSupported",
1393
+ details: "This field shall indicate the user ID.",
1394
+ xref: { document: "cluster", section: "5.2.10.16.2" }
1474
1395
  }),
1475
1396
  Field({
1476
1397
  name: "LocalStartTime",
@@ -1478,7 +1399,7 @@ const DoorLock = Cluster(
1478
1399
  type: "epoch-s",
1479
1400
  conformance: "M",
1480
1401
  details: "This field shall indicate the starting time for the Year Day schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value.",
1481
- xref: { document: "cluster", section: "5.2.10.18.3" }
1402
+ xref: { document: "cluster", section: "5.2.10.16.3" }
1482
1403
  }),
1483
1404
  Field({
1484
1405
  name: "LocalEndTime",
@@ -1486,7 +1407,7 @@ const DoorLock = Cluster(
1486
1407
  type: "epoch-s",
1487
1408
  conformance: "M",
1488
1409
  details: "This field shall indicate the ending time for the Year Day schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value. LocalEndTime shall be greater than LocalStartTime.",
1489
- xref: { document: "cluster", section: "5.2.10.18.4" }
1410
+ xref: { document: "cluster", section: "5.2.10.16.4" }
1490
1411
  })
1491
1412
  ),
1492
1413
  Command(
@@ -1497,8 +1418,8 @@ const DoorLock = Cluster(
1497
1418
  conformance: "YDSCH",
1498
1419
  direction: "request",
1499
1420
  response: "GetYearDayScheduleResponse",
1500
- details: "Retrieve the specific year day schedule for the specific schedule and user indexes.\n\u2020 The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead, respectively.",
1501
- xref: { document: "cluster", section: "5.2.10.19" }
1421
+ details: "Retrieve the specific year day schedule for the specific schedule and user indexes.",
1422
+ xref: { document: "cluster", section: "5.2.10.17" }
1502
1423
  },
1503
1424
  Field({
1504
1425
  name: "YearDayIndex",
@@ -1508,7 +1429,7 @@ const DoorLock = Cluster(
1508
1429
  constraint: "1 to numberOfYearDaySchedulesSupportedPerUser"
1509
1430
  }),
1510
1431
  Field({
1511
- name: "UserIndexUserId",
1432
+ name: "UserIndex",
1512
1433
  id: 1,
1513
1434
  type: "uint16",
1514
1435
  conformance: "M",
@@ -1521,8 +1442,8 @@ const DoorLock = Cluster(
1521
1442
  id: 15,
1522
1443
  conformance: "YDSCH",
1523
1444
  direction: "response",
1524
- details: "Returns the year day schedule data for the specified schedule and user indexes.\n\u2020 The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead, respectively.",
1525
- xref: { document: "cluster", section: "5.2.10.20" }
1445
+ details: "Returns the year day schedule data for the specified schedule and user indexes.",
1446
+ xref: { document: "cluster", section: "5.2.10.18" }
1526
1447
  },
1527
1448
  Field({
1528
1449
  name: "YearDayIndex",
@@ -1531,14 +1452,16 @@ const DoorLock = Cluster(
1531
1452
  conformance: "M",
1532
1453
  constraint: "1 to numberOfYearDaySchedulesSupportedPerUser",
1533
1454
  details: "This field shall indicate the index of the Year Day schedule.",
1534
- xref: { document: "cluster", section: "5.2.10.20.1" }
1455
+ xref: { document: "cluster", section: "5.2.10.18.1" }
1535
1456
  }),
1536
1457
  Field({
1537
- name: "UserIndexUserId",
1458
+ name: "UserIndex",
1538
1459
  id: 1,
1539
1460
  type: "uint16",
1540
1461
  conformance: "M",
1541
- constraint: "1 to numberOfTotalUsersSupported"
1462
+ constraint: "1 to numberOfTotalUsersSupported",
1463
+ details: "This field shall indicate the user ID.",
1464
+ xref: { document: "cluster", section: "5.2.10.18.2" }
1542
1465
  }),
1543
1466
  Field({
1544
1467
  name: "Status",
@@ -1548,7 +1471,7 @@ const DoorLock = Cluster(
1548
1471
  constraint: "desc",
1549
1472
  default: 0,
1550
1473
  details: "Status shall be one of the following values:\n \u2022 SUCCESS if both YearDayIndex and UserIndex are valid and there is a corresponding schedule entry.\n \u2022 INVALID_COMMAND if either YearDayIndex and/or UserIndex values are not within valid range\n \u2022 NOT_FOUND if no corresponding schedule entry found for YearDayIndex.\n \u2022 NOT_FOUND if no corresponding user entry found for UserIndex.\nIf this field is SUCCESS, the optional fields for this command shall be present. For other (error) status values, only the fields up to the status field shall be present.",
1551
- xref: { document: "cluster", section: "5.2.10.20.3" }
1474
+ xref: { document: "cluster", section: "5.2.10.18.3" }
1552
1475
  }),
1553
1476
  Field({
1554
1477
  name: "LocalStartTime",
@@ -1556,7 +1479,7 @@ const DoorLock = Cluster(
1556
1479
  type: "epoch-s",
1557
1480
  conformance: "O",
1558
1481
  details: "This field shall indicate the starting time for the Year Day schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value. This shall be null if the schedule is not set for the YearDayIndex and UserIndex provided.",
1559
- xref: { document: "cluster", section: "5.2.10.20.4" }
1482
+ xref: { document: "cluster", section: "5.2.10.18.4" }
1560
1483
  }),
1561
1484
  Field({
1562
1485
  name: "LocalEndTime",
@@ -1564,7 +1487,7 @@ const DoorLock = Cluster(
1564
1487
  type: "epoch-s",
1565
1488
  conformance: "O",
1566
1489
  details: "This field shall indicate the ending time for the Year Day schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value. LocalEndTime shall be greater than LocalStartTime. This shall be null if the schedule is not set for the YearDayIndex and UserIndex provided.",
1567
- xref: { document: "cluster", section: "5.2.10.20.5" }
1490
+ xref: { document: "cluster", section: "5.2.10.18.5" }
1568
1491
  })
1569
1492
  ),
1570
1493
  Command(
@@ -1575,8 +1498,8 @@ const DoorLock = Cluster(
1575
1498
  conformance: "YDSCH",
1576
1499
  direction: "request",
1577
1500
  response: "status",
1578
- details: "Clears the specific year day schedule or all year day schedules for the specific user.\n\u2020 The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead, respectively.\nReturn status shall be one of the following values:",
1579
- xref: { document: "cluster", section: "5.2.10.21" }
1501
+ details: "Clears the specific year day schedule or all year day schedules for the specific user.\nReturn status shall be one of the following values:",
1502
+ xref: { document: "cluster", section: "5.2.10.19" }
1580
1503
  },
1581
1504
  Field({
1582
1505
  name: "YearDayIndex",
@@ -1585,14 +1508,16 @@ const DoorLock = Cluster(
1585
1508
  conformance: "M",
1586
1509
  constraint: "1 to numberOfYearDaySchedulesSupportedPerUser, 254",
1587
1510
  details: "This field shall indicate the Year Day schedule index to clear or 0xFE to clear all Year Day schedules for the specified user.",
1588
- xref: { document: "cluster", section: "5.2.10.21.1" }
1511
+ xref: { document: "cluster", section: "5.2.10.19.1" }
1589
1512
  }),
1590
1513
  Field({
1591
- name: "UserIndexUserId",
1514
+ name: "UserIndex",
1592
1515
  id: 1,
1593
1516
  type: "uint16",
1594
1517
  conformance: "M",
1595
- constraint: "1 to numberOfTotalUsersSupported"
1518
+ constraint: "1 to numberOfTotalUsersSupported",
1519
+ details: "This field shall indicate the user ID.",
1520
+ xref: { document: "cluster", section: "5.2.10.19.2" }
1596
1521
  })
1597
1522
  ),
1598
1523
  Command(
@@ -1603,8 +1528,8 @@ const DoorLock = Cluster(
1603
1528
  conformance: "HDSCH",
1604
1529
  direction: "request",
1605
1530
  response: "status",
1606
- details: "Set the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode.\n\u2020 The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead. Return status shall be one of the following values:",
1607
- xref: { document: "cluster", section: "5.2.10.22" }
1531
+ details: "Set the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode.\nReturn status shall be one of the following values:",
1532
+ xref: { document: "cluster", section: "5.2.10.20" }
1608
1533
  },
1609
1534
  Field({
1610
1535
  name: "HolidayIndex",
@@ -1613,7 +1538,7 @@ const DoorLock = Cluster(
1613
1538
  conformance: "M",
1614
1539
  constraint: "1 to numberOfHolidaySchedulesSupported",
1615
1540
  details: "This field shall indicate the index of the Holiday schedule.",
1616
- xref: { document: "cluster", section: "5.2.10.22.1" }
1541
+ xref: { document: "cluster", section: "5.2.10.20.1" }
1617
1542
  }),
1618
1543
  Field({
1619
1544
  name: "LocalStartTime",
@@ -1621,7 +1546,7 @@ const DoorLock = Cluster(
1621
1546
  type: "epoch-s",
1622
1547
  conformance: "M",
1623
1548
  details: "This field shall indicate the starting time for the Holiday Day schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value.",
1624
- xref: { document: "cluster", section: "5.2.10.22.2" }
1549
+ xref: { document: "cluster", section: "5.2.10.20.2" }
1625
1550
  }),
1626
1551
  Field({
1627
1552
  name: "LocalEndTime",
@@ -1629,7 +1554,7 @@ const DoorLock = Cluster(
1629
1554
  type: "epoch-s",
1630
1555
  conformance: "M",
1631
1556
  details: "This field shall indicate the ending time for the Holiday Day schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value. LocalEndTime shall be greater than LocalStartTime.",
1632
- xref: { document: "cluster", section: "5.2.10.22.3" }
1557
+ xref: { document: "cluster", section: "5.2.10.20.3" }
1633
1558
  }),
1634
1559
  Field({
1635
1560
  name: "OperatingMode",
@@ -1637,7 +1562,7 @@ const DoorLock = Cluster(
1637
1562
  type: "OperatingModeEnum",
1638
1563
  conformance: "M",
1639
1564
  details: "This field shall indicate the operating mode to use during this Holiday schedule start/end time.",
1640
- xref: { document: "cluster", section: "5.2.10.22.4" }
1565
+ xref: { document: "cluster", section: "5.2.10.20.4" }
1641
1566
  })
1642
1567
  ),
1643
1568
  Command(
@@ -1648,8 +1573,8 @@ const DoorLock = Cluster(
1648
1573
  conformance: "HDSCH",
1649
1574
  direction: "request",
1650
1575
  response: "GetHolidayScheduleResponse",
1651
- details: "Get the holiday schedule for the specified index.\n\u2020 The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead.",
1652
- xref: { document: "cluster", section: "5.2.10.23" }
1576
+ details: "Get the holiday schedule for the specified index.",
1577
+ xref: { document: "cluster", section: "5.2.10.21" }
1653
1578
  },
1654
1579
  Field({
1655
1580
  name: "HolidayIndex",
@@ -1665,8 +1590,8 @@ const DoorLock = Cluster(
1665
1590
  id: 18,
1666
1591
  conformance: "HDSCH",
1667
1592
  direction: "response",
1668
- details: "Returns the Holiday Schedule Entry for the specified Holiday ID.\n\u2020 The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead.",
1669
- xref: { document: "cluster", section: "5.2.10.24" }
1593
+ details: "Returns the Holiday Schedule Entry for the specified Holiday ID.",
1594
+ xref: { document: "cluster", section: "5.2.10.22" }
1670
1595
  },
1671
1596
  Field({
1672
1597
  name: "HolidayIndex",
@@ -1675,7 +1600,7 @@ const DoorLock = Cluster(
1675
1600
  conformance: "M",
1676
1601
  constraint: "1 to numberOfHolidaySchedulesSupported",
1677
1602
  details: "This field shall indicate the index of the Holiday schedule.",
1678
- xref: { document: "cluster", section: "5.2.10.24.1" }
1603
+ xref: { document: "cluster", section: "5.2.10.22.1" }
1679
1604
  }),
1680
1605
  Field({
1681
1606
  name: "Status",
@@ -1685,7 +1610,7 @@ const DoorLock = Cluster(
1685
1610
  constraint: "desc",
1686
1611
  default: 0,
1687
1612
  details: "Status shall be one of the following values:\n \u2022 FAILURE if the attribute NumberOfHolidaySchedulesSupported is zero.\n \u2022 SUCCESS if the HolidayIndex is valid and there is a corresponding schedule entry.\n \u2022 INVALID_COMMAND if the HolidayIndex is not within valid range\n \u2022 NOT_FOUND if the HolidayIndex is within the valid range, however, there is not corresponding schedule entry found.\nIf this field is SUCCESS, the optional fields for this command shall be present. For other (error) status values, only the fields up to the status field shall be present.",
1688
- xref: { document: "cluster", section: "5.2.10.24.2" }
1613
+ xref: { document: "cluster", section: "5.2.10.22.2" }
1689
1614
  }),
1690
1615
  Field({
1691
1616
  name: "LocalStartTime",
@@ -1694,7 +1619,7 @@ const DoorLock = Cluster(
1694
1619
  conformance: "O",
1695
1620
  quality: "X",
1696
1621
  details: "This field shall indicate the starting time for the Holiday schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value. This shall be null if the schedule is not set for the HolidayIndex provided.",
1697
- xref: { document: "cluster", section: "5.2.10.24.3" }
1622
+ xref: { document: "cluster", section: "5.2.10.22.3" }
1698
1623
  }),
1699
1624
  Field({
1700
1625
  name: "LocalEndTime",
@@ -1703,7 +1628,7 @@ const DoorLock = Cluster(
1703
1628
  conformance: "O",
1704
1629
  quality: "X",
1705
1630
  details: "This field shall indicate the ending time for the Holiday schedule in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value. LocalEndTime shall be greater than LocalStartTime. This shall be null if the schedule is not set for the HolidayIndex provided.",
1706
- xref: { document: "cluster", section: "5.2.10.24.4" }
1631
+ xref: { document: "cluster", section: "5.2.10.22.4" }
1707
1632
  }),
1708
1633
  Field({
1709
1634
  name: "OperatingMode",
@@ -1712,7 +1637,7 @@ const DoorLock = Cluster(
1712
1637
  conformance: "O",
1713
1638
  quality: "X",
1714
1639
  details: "This field shall indicate the operating mode to use during this Holiday schedule start/end time. This shall be null if the schedule is not set for the HolidayIndex provided.",
1715
- xref: { document: "cluster", section: "5.2.10.24.5" }
1640
+ xref: { document: "cluster", section: "5.2.10.22.5" }
1716
1641
  })
1717
1642
  ),
1718
1643
  Command(
@@ -1723,8 +1648,8 @@ const DoorLock = Cluster(
1723
1648
  conformance: "HDSCH",
1724
1649
  direction: "request",
1725
1650
  response: "status",
1726
- details: "Clears the holiday schedule or all holiday schedules.\n\u2020 The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead.",
1727
- xref: { document: "cluster", section: "5.2.10.25" }
1651
+ details: "Clears the holiday schedule or all holiday schedules.",
1652
+ xref: { document: "cluster", section: "5.2.10.23" }
1728
1653
  },
1729
1654
  Field({
1730
1655
  name: "HolidayIndex",
@@ -1733,7 +1658,7 @@ const DoorLock = Cluster(
1733
1658
  conformance: "M",
1734
1659
  constraint: "1 to numberOfHolidaySchedulesSupported, 254",
1735
1660
  details: "This field shall indicate the Holiday schedule index to clear or 0xFE to clear all Holiday schedules.",
1736
- xref: { document: "cluster", section: "5.2.10.25.1" }
1661
+ xref: { document: "cluster", section: "5.2.10.23.1" }
1737
1662
  })
1738
1663
  ),
1739
1664
  Command(
@@ -1745,7 +1670,7 @@ const DoorLock = Cluster(
1745
1670
  direction: "request",
1746
1671
  response: "status",
1747
1672
  details: "Set the user type for a specified user.\nFor user type value please refer to User Type Value.\nReturn status shall be one of the following values:",
1748
- xref: { document: "cluster", section: "5.2.10.26" }
1673
+ xref: { document: "cluster", section: "5.2.10.24" }
1749
1674
  },
1750
1675
  Field({
1751
1676
  name: "UserId",
@@ -1754,15 +1679,15 @@ const DoorLock = Cluster(
1754
1679
  conformance: "M",
1755
1680
  constraint: "desc",
1756
1681
  details: "This field shall indicate the user ID.",
1757
- xref: { document: "cluster", section: "5.2.10.26.1" }
1682
+ xref: { document: "cluster", section: "5.2.10.24.1" }
1758
1683
  }),
1759
1684
  Field({
1760
1685
  name: "UserType",
1761
1686
  id: 1,
1762
1687
  type: "UserTypeEnum",
1763
1688
  conformance: "M",
1764
- details: "This field shall indicate the user type.\nIf UserType is currently YearDayScheduleUser, WeekDayScheduleUser, or ScheduleRestrictedUser and the new UserType is UnrestrictedUser then all existing Year Day and/or Week Day schedules shall be ignored or disabled (if this transition is supported by the door lock). If UserType is ScheduleRestrictedUser and the new UserType is ScheduleRestrictedUser then all existing Year Day and/or Week Day schedules shall be applied or enabled.",
1765
- xref: { document: "cluster", section: "5.2.10.26.2" }
1689
+ details: "This field shall indicate the user type.",
1690
+ xref: { document: "cluster", section: "5.2.10.24.2" }
1766
1691
  })
1767
1692
  ),
1768
1693
  Command(
@@ -1774,7 +1699,7 @@ const DoorLock = Cluster(
1774
1699
  direction: "request",
1775
1700
  response: "GetUserTypeResponse",
1776
1701
  details: "Retrieve the user type for a specific user.",
1777
- xref: { document: "cluster", section: "5.2.10.27" }
1702
+ xref: { document: "cluster", section: "5.2.10.25" }
1778
1703
  },
1779
1704
  Field({ name: "UserId", id: 0, type: "uint16", conformance: "M", constraint: "desc" })
1780
1705
  ),
@@ -1785,7 +1710,7 @@ const DoorLock = Cluster(
1785
1710
  conformance: "!USR",
1786
1711
  direction: "response",
1787
1712
  details: "Returns the user type for the specified user ID. If the requested User ID is invalid, send Default Response with an error status equal to FAILURE.",
1788
- xref: { document: "cluster", section: "5.2.10.28" }
1713
+ xref: { document: "cluster", section: "5.2.10.26" }
1789
1714
  },
1790
1715
  Field({ name: "UserId", id: 0, type: "uint16", conformance: "M", constraint: "desc" }),
1791
1716
  Field({ name: "UserType", id: 1, type: "UserTypeEnum", conformance: "M" })
@@ -1799,7 +1724,7 @@ const DoorLock = Cluster(
1799
1724
  direction: "request",
1800
1725
  response: "status",
1801
1726
  details: "Set an ID for RFID access into the lock.\nReturn status is a global status code or a cluster-specific status code from the Status Codes table and shall be one of the following values:",
1802
- xref: { document: "cluster", section: "5.2.10.29" }
1727
+ xref: { document: "cluster", section: "5.2.10.27" }
1803
1728
  },
1804
1729
  Field({
1805
1730
  name: "UserId",
@@ -1808,7 +1733,7 @@ const DoorLock = Cluster(
1808
1733
  conformance: "M",
1809
1734
  constraint: "desc",
1810
1735
  details: "This field shall indicate the user ID.\nThe value of the UserID field shall be between 0 and the value of the NumberOfRFIDUsersSupported attribute.",
1811
- xref: { document: "cluster", section: "5.2.10.29.1" }
1736
+ xref: { document: "cluster", section: "5.2.10.27.1" }
1812
1737
  }),
1813
1738
  Field({
1814
1739
  name: "UserStatus",
@@ -1819,7 +1744,7 @@ const DoorLock = Cluster(
1819
1744
  default: 1,
1820
1745
  quality: "X",
1821
1746
  details: "This field shall indicate what the status is for a specific user ID. The values are according to \u201CSet PIN\u201D while not all are supported.\nOnly the values 1 (Occupied/Enabled) and 3 (Occupied/Disabled) are allowed for UserStatus.",
1822
- xref: { document: "cluster", section: "5.2.10.29.2" }
1747
+ xref: { document: "cluster", section: "5.2.10.27.2" }
1823
1748
  }),
1824
1749
  Field({
1825
1750
  name: "UserType",
@@ -1830,7 +1755,7 @@ const DoorLock = Cluster(
1830
1755
  default: 0,
1831
1756
  quality: "X",
1832
1757
  details: "The values are the same as used for SetPINCode command.",
1833
- xref: { document: "cluster", section: "5.2.10.29.3" }
1758
+ xref: { document: "cluster", section: "5.2.10.27.3" }
1834
1759
  }),
1835
1760
  Field({ name: "RfidCode", id: 3, type: "octstr", conformance: "M" })
1836
1761
  ),
@@ -1843,7 +1768,7 @@ const DoorLock = Cluster(
1843
1768
  direction: "request",
1844
1769
  response: "GetRfidCodeResponse",
1845
1770
  details: "Retrieve an RFID code.",
1846
- xref: { document: "cluster", section: "5.2.10.30" }
1771
+ xref: { document: "cluster", section: "5.2.10.28" }
1847
1772
  },
1848
1773
  Field({
1849
1774
  name: "UserId",
@@ -1852,7 +1777,7 @@ const DoorLock = Cluster(
1852
1777
  conformance: "M",
1853
1778
  constraint: "desc",
1854
1779
  details: "This field shall indicate the user ID.\nThe value of the UserID field shall be between 0 and the value of the NumberOfRFIDUsersSupported attribute.",
1855
- xref: { document: "cluster", section: "5.2.10.30.1" }
1780
+ xref: { document: "cluster", section: "5.2.10.28.1" }
1856
1781
  })
1857
1782
  ),
1858
1783
  Command(
@@ -1862,7 +1787,7 @@ const DoorLock = Cluster(
1862
1787
  conformance: "!USR & RID",
1863
1788
  direction: "response",
1864
1789
  details: "Returns the RFID code for the specified user ID.\nIf the requested User ID is valid and the Code doesn\u2019t exist, Get RFID Code Response shall have the following format:\nUser ID = requested User ID UserStatus = 0 (available) UserType = 0xFF (not supported) RFID Code = 0 (zero length)\nIf requested User ID is invalid, send Default Response with an error status. The error status shall be equal to CONSTRAINT_ERROR when User_ID is less than the max number of users supported, and NOT_FOUND if greater than or equal to the max number of users supported.",
1865
- xref: { document: "cluster", section: "5.2.10.31" }
1790
+ xref: { document: "cluster", section: "5.2.10.29" }
1866
1791
  },
1867
1792
  Field({ name: "UserId", id: 0, type: "uint16", conformance: "M", constraint: "desc" }),
1868
1793
  Field({
@@ -1885,8 +1810,8 @@ const DoorLock = Cluster(
1885
1810
  conformance: "!USR & RID",
1886
1811
  direction: "request",
1887
1812
  response: "status",
1888
- details: "Clear an RFID code or all RFID codes.\n\u2020 The User ID is an obsolete field name, use RFIDSlotIndex instead.\nFor each RFID Code cleared whose user doesn\u2019t have a PIN Code or other credential type, then the corresponding user record\u2019s UserStatus value shall be set to Available, and UserType value shall be set to UnrestrictedUser and all schedules shall be cleared.",
1889
- xref: { document: "cluster", section: "5.2.10.32" }
1813
+ details: "Clear an RFID code or all RFID codes.\nFor each RFID Code cleared whose user doesn\u2019t have a PIN Code or other credential type, then the corresponding user record\u2019s UserStatus value shall be set to Available, and UserType value shall be set to UnrestrictedUser and all schedules shall be cleared.",
1814
+ xref: { document: "cluster", section: "5.2.10.30" }
1890
1815
  },
1891
1816
  Field({
1892
1817
  name: "RfidSlotIndex",
@@ -1895,7 +1820,7 @@ const DoorLock = Cluster(
1895
1820
  conformance: "M",
1896
1821
  constraint: "1 to numberOfRfidUsersSupported, 65534",
1897
1822
  details: "This field shall indicate a valid RFID code slot index or 0xFFFE to indicate all RFID code slots shall be cleared.",
1898
- xref: { document: "cluster", section: "5.2.10.32.1" }
1823
+ xref: { document: "cluster", section: "5.2.10.30.1" }
1899
1824
  })
1900
1825
  ),
1901
1826
  Command({
@@ -1906,7 +1831,7 @@ const DoorLock = Cluster(
1906
1831
  direction: "request",
1907
1832
  response: "status",
1908
1833
  details: 'Clear out all RFIDs on the lock. If you clear all RFID codes and this user didn\u2019t have a PIN code, the user status has to be set to "0 Available", the user type has to be set to the default value, and all schedules which are supported have to be set to the default values.',
1909
- xref: { document: "cluster", section: "5.2.10.33" }
1834
+ xref: { document: "cluster", section: "5.2.10.31" }
1910
1835
  }),
1911
1836
  Command(
1912
1837
  {
@@ -1917,7 +1842,7 @@ const DoorLock = Cluster(
1917
1842
  direction: "request",
1918
1843
  response: "status",
1919
1844
  details: "Set user into the lock.\nFields used for different use cases:\nReturn status is a global status code or a cluster-specific status code from the Status Codes table and\nshall be one of the following values:\n \u2022 SUCCESS, if setting User was successful.\n \u2022 FAILURE, if some unexpected internal error occurred setting User.\n \u2022 OCCUPIED, if OperationType is Add and UserIndex points to an occupied slot.\n \u2022 INVALID_COMMAND, if one or more fields violate constraints or are invalid or if OperationType is Modify and UserIndex points to an available slot.",
1920
- xref: { document: "cluster", section: "5.2.10.34" }
1845
+ xref: { document: "cluster", section: "5.2.10.32" }
1921
1846
  },
1922
1847
  Field({
1923
1848
  name: "OperationType",
@@ -1926,7 +1851,7 @@ const DoorLock = Cluster(
1926
1851
  conformance: "M",
1927
1852
  constraint: "add, modify",
1928
1853
  details: "This field shall indicate the type of operation.",
1929
- xref: { document: "cluster", section: "5.2.10.34.1" }
1854
+ xref: { document: "cluster", section: "5.2.10.32.1" }
1930
1855
  }),
1931
1856
  Field({
1932
1857
  name: "UserIndex",
@@ -1935,7 +1860,7 @@ const DoorLock = Cluster(
1935
1860
  conformance: "M",
1936
1861
  constraint: "1 to numberOfTotalUsersSupported",
1937
1862
  details: "This field shall indicate the user ID.",
1938
- xref: { document: "cluster", section: "5.2.10.34.2" }
1863
+ xref: { document: "cluster", section: "5.2.10.32.2" }
1939
1864
  }),
1940
1865
  Field({
1941
1866
  name: "UserName",
@@ -1945,7 +1870,7 @@ const DoorLock = Cluster(
1945
1870
  constraint: "max 10",
1946
1871
  quality: "X",
1947
1872
  details: "This field shall contain a string to use as a human readable identifier for the user. If UserName is null then:\n \u2022 If the OperationType is Add, the UserName in the resulting user record shall be set to an empty string.\n \u2022 If the OperationType is Modify, the UserName in the user record shall NOT be changed from the current value.\nIf UserName is not null, the UserName in the user record shall be set to the provided value.",
1948
- xref: { document: "cluster", section: "5.2.10.34.3" }
1873
+ xref: { document: "cluster", section: "5.2.10.32.3" }
1949
1874
  }),
1950
1875
  Field({
1951
1876
  name: "UserUniqueId",
@@ -1955,7 +1880,7 @@ const DoorLock = Cluster(
1955
1880
  default: 4294967295,
1956
1881
  quality: "X",
1957
1882
  details: "This field shall indicate the fabric assigned number to use for connecting this user to other users on other devices from the fabric\u2019s perspective.\nIf UserUniqueID is null then:\n \u2022 If the OperationType is Add, the UserUniqueID in the resulting user record shall be set to default value specified above.\n \u2022 If the OperationType is Modify, the UserUniqueID in the user record shall NOT be changed from the current value.\nIf UserUniqueID is not null, the UserUniqueID in the user record shall be set to the provided value.",
1958
- xref: { document: "cluster", section: "5.2.10.34.4" }
1883
+ xref: { document: "cluster", section: "5.2.10.32.4" }
1959
1884
  }),
1960
1885
  Field({
1961
1886
  name: "UserStatus",
@@ -1966,7 +1891,7 @@ const DoorLock = Cluster(
1966
1891
  default: 1,
1967
1892
  quality: "X",
1968
1893
  details: "This field shall indicate the UserStatus to assign to this user when created or modified. If UserStatus is null then:\n \u2022 If the OperationType is Add, the UserStatus in the resulting user record shall be set to default value specified above.\n \u2022 If the OperationType is Modify, the UserStatus in the user record shall NOT be changed from the current value.\nIf UserStatus is not null, the UserStatus in the user record shall be set to the provided value.",
1969
- xref: { document: "cluster", section: "5.2.10.34.5" }
1894
+ xref: { document: "cluster", section: "5.2.10.32.5" }
1970
1895
  }),
1971
1896
  Field({
1972
1897
  name: "UserType",
@@ -1977,7 +1902,7 @@ const DoorLock = Cluster(
1977
1902
  default: 0,
1978
1903
  quality: "X",
1979
1904
  details: "This field shall indicate the UserType to assign to this user when created or modified. If UserType is null then:\n \u2022 If the OperationType is Add, the UserType in the resulting user record shall be set to default value specified above.\n \u2022 If the OperationType is Modify, the UserType in the user record shall NOT be changed from the current value.\nIf UserType is not null, the UserType in the user record shall be set to the provided value.",
1980
- xref: { document: "cluster", section: "5.2.10.34.6" }
1905
+ xref: { document: "cluster", section: "5.2.10.32.6" }
1981
1906
  }),
1982
1907
  Field({
1983
1908
  name: "CredentialRule",
@@ -1987,7 +1912,7 @@ const DoorLock = Cluster(
1987
1912
  default: 0,
1988
1913
  quality: "X",
1989
1914
  details: "This field shall indicate the CredentialRule to use for this user.\nThe valid CredentialRule enumeration values depends on the bits in the CredentialRulesBitmap map. Each bit in the map identifies a valid CredentialRule that can be used.\nIf CredentialRule is null then:\n \u2022 If the OperationType is Add, the CredentialRule in the resulting user record shall be set to default value specified above.\n \u2022 If the OperationType is Modify, the CredentialRule in the user record shall NOT be changed from the current value.\nIf CredentialRule is not null, the CredentialRule in the user record shall be set to the provided value.",
1990
- xref: { document: "cluster", section: "5.2.10.34.7" }
1915
+ xref: { document: "cluster", section: "5.2.10.32.7" }
1991
1916
  })
1992
1917
  ),
1993
1918
  Command(
@@ -1999,7 +1924,7 @@ const DoorLock = Cluster(
1999
1924
  direction: "request",
2000
1925
  response: "GetUserResponse",
2001
1926
  details: "Retrieve user.\nAn InvokeResponse command shall be sent with an appropriate error\nCOMMAND, etc.) as needed otherwise the GetUserResponse Command shall be sent implying a status of SUCCESS.",
2002
- xref: { document: "cluster", section: "5.2.10.35" }
1927
+ xref: { document: "cluster", section: "5.2.10.33" }
2003
1928
  },
2004
1929
  Field({
2005
1930
  name: "UserIndex",
@@ -2016,7 +1941,7 @@ const DoorLock = Cluster(
2016
1941
  conformance: "USR",
2017
1942
  direction: "response",
2018
1943
  details: "Returns the user for the specified UserIndex.\nIf the requested UserIndex is valid and the UserStatus is Available for the requested UserIndex then UserName, UserUniqueID, UserStatus, UserType, CredentialRule, Credentials, CreatorFabricIndex, and LastModifiedFabricIndex shall all be null in the response.",
2019
- xref: { document: "cluster", section: "5.2.10.36" }
1944
+ xref: { document: "cluster", section: "5.2.10.34" }
2020
1945
  },
2021
1946
  Field({
2022
1947
  name: "UserIndex",
@@ -2025,7 +1950,7 @@ const DoorLock = Cluster(
2025
1950
  conformance: "M",
2026
1951
  constraint: "1 to numberOfTotalUsersSupported",
2027
1952
  details: "This field shall indicate the user ID.",
2028
- xref: { document: "cluster", section: "5.2.10.36.1" }
1953
+ xref: { document: "cluster", section: "5.2.10.34.1" }
2029
1954
  }),
2030
1955
  Field({
2031
1956
  name: "UserName",
@@ -2035,7 +1960,7 @@ const DoorLock = Cluster(
2035
1960
  constraint: "max 10",
2036
1961
  quality: "X",
2037
1962
  details: "This field shall contain a string to use as a human readable identifier for the user.",
2038
- xref: { document: "cluster", section: "5.2.10.36.2" }
1963
+ xref: { document: "cluster", section: "5.2.10.34.2" }
2039
1964
  }),
2040
1965
  Field({
2041
1966
  name: "UserUniqueId",
@@ -2045,7 +1970,7 @@ const DoorLock = Cluster(
2045
1970
  default: 0,
2046
1971
  quality: "X",
2047
1972
  details: "See UserUniqueID field.",
2048
- xref: { document: "cluster", section: "5.2.10.36.3" }
1973
+ xref: { document: "cluster", section: "5.2.10.34.3" }
2049
1974
  }),
2050
1975
  Field({
2051
1976
  name: "UserStatus",
@@ -2055,7 +1980,7 @@ const DoorLock = Cluster(
2055
1980
  default: 0,
2056
1981
  quality: "X",
2057
1982
  details: "This field shall indicate the UserStatus assigned to the user when created or modified.",
2058
- xref: { document: "cluster", section: "5.2.10.36.4" }
1983
+ xref: { document: "cluster", section: "5.2.10.34.4" }
2059
1984
  }),
2060
1985
  Field({
2061
1986
  name: "UserType",
@@ -2065,7 +1990,7 @@ const DoorLock = Cluster(
2065
1990
  default: 0,
2066
1991
  quality: "X",
2067
1992
  details: "This field shall indicate the UserType assigned to this user when created or modified.",
2068
- xref: { document: "cluster", section: "5.2.10.36.5" }
1993
+ xref: { document: "cluster", section: "5.2.10.34.5" }
2069
1994
  }),
2070
1995
  Field({
2071
1996
  name: "CredentialRule",
@@ -2076,7 +2001,7 @@ const DoorLock = Cluster(
2076
2001
  default: 0,
2077
2002
  quality: "X",
2078
2003
  details: "This field shall indicate the CredentialRule set for this user.",
2079
- xref: { document: "cluster", section: "5.2.10.36.6" }
2004
+ xref: { document: "cluster", section: "5.2.10.34.6" }
2080
2005
  }),
2081
2006
  Field(
2082
2007
  {
@@ -2087,7 +2012,7 @@ const DoorLock = Cluster(
2087
2012
  constraint: "0 to numberOfCredentialsSupportedPerUser",
2088
2013
  quality: "X",
2089
2014
  details: "This field shall contain a list of credentials for this user.",
2090
- xref: { document: "cluster", section: "5.2.10.36.7" }
2015
+ xref: { document: "cluster", section: "5.2.10.34.7" }
2091
2016
  },
2092
2017
  Field({ name: "entry", type: "CredentialStruct" })
2093
2018
  ),
@@ -2098,7 +2023,7 @@ const DoorLock = Cluster(
2098
2023
  conformance: "M",
2099
2024
  quality: "X",
2100
2025
  details: "This field shall indicate the user\u2019s creator fabric index. CreatorFabricIndex shall be null if UserStatus is set to Available or when the creator fabric cannot be determined (for example, when user was created outside the Interaction Model) and shall NOT be null otherwise. This value shall be set to 0 if the original creator fabric was deleted.",
2101
- xref: { document: "cluster", section: "5.2.10.36.8" }
2026
+ xref: { document: "cluster", section: "5.2.10.34.8" }
2102
2027
  }),
2103
2028
  Field({
2104
2029
  name: "LastModifiedFabricIndex",
@@ -2107,7 +2032,7 @@ const DoorLock = Cluster(
2107
2032
  conformance: "M",
2108
2033
  quality: "X",
2109
2034
  details: "This field shall indicate the user\u2019s last modifier fabric index. LastModifiedFabricIndex shall be null if UserStatus is set to Available or when the modifier fabric cannot be determined (for example, when user was modified outside the Interaction Model) and shall NOT be null otherwise. This value shall be set to 0 if the last modifier fabric was deleted.",
2110
- xref: { document: "cluster", section: "5.2.10.36.9" }
2035
+ xref: { document: "cluster", section: "5.2.10.34.9" }
2111
2036
  }),
2112
2037
  Field({
2113
2038
  name: "NextUserIndex",
@@ -2117,7 +2042,7 @@ const DoorLock = Cluster(
2117
2042
  constraint: "1 to numberOfTotalUsersSupported",
2118
2043
  quality: "X",
2119
2044
  details: "This field shall indicate the next occupied UserIndex in the database which is useful for quickly identifying occupied user slots in the database. This shall NOT be null if there is at least one occupied entry after the requested UserIndex in the User database and shall be null if there are no more occupied entries.",
2120
- xref: { document: "cluster", section: "5.2.10.36.10" }
2045
+ xref: { document: "cluster", section: "5.2.10.34.10" }
2121
2046
  })
2122
2047
  ),
2123
2048
  Command(
@@ -2129,7 +2054,7 @@ const DoorLock = Cluster(
2129
2054
  direction: "request",
2130
2055
  response: "status",
2131
2056
  details: "Clears a user or all Users.\nFor each user to clear, all associated credentials (e.g. PIN, RFID, fingerprint, etc.) shall be cleared and the user entry values shall be reset to their default values (e.g. UserStatus shall be Available, UserType shall be UnrestrictedUser) and all associated schedules shall be cleared.\nA LockUserChange event with the provided UserIndex shall be generated after successfully clearing users.",
2132
- xref: { document: "cluster", section: "5.2.10.37" }
2057
+ xref: { document: "cluster", section: "5.2.10.35" }
2133
2058
  },
2134
2059
  Field({
2135
2060
  name: "UserIndex",
@@ -2138,85 +2063,7 @@ const DoorLock = Cluster(
2138
2063
  conformance: "M",
2139
2064
  constraint: "1 to numberOfTotalUsersSupported, 65534",
2140
2065
  details: "This field shall specify a valid User index or 0xFFFE to indicate all user slots shall be cleared.",
2141
- xref: { document: "cluster", section: "5.2.10.37.1" }
2142
- })
2143
- ),
2144
- Command({
2145
- name: "OperatingEventNotification",
2146
- id: 32,
2147
- conformance: "[NOT]",
2148
- direction: "response",
2149
- xref: { document: "cluster", section: "5.2.10" }
2150
- }),
2151
- Command(
2152
- {
2153
- name: "ProgrammingEventNotification",
2154
- id: 33,
2155
- conformance: "[NOT]",
2156
- direction: "response",
2157
- details: "The door lock server sends out a programming event notification whenever a programming event takes place on the door lock.\nAs with operational events, all programming events can be turned on and off by flipping bits in the associated event mask.\nThe programming event notification command includes an optional string of data that can be used by the manufacturer to pass some manufacturer-specific information if that is required.",
2158
- xref: { document: "cluster", section: "5.2.10.39" }
2159
- },
2160
- Field({
2161
- name: "ProgramEventSource",
2162
- id: 0,
2163
- type: "EventSourceEnum",
2164
- conformance: "M",
2165
- constraint: "desc",
2166
- details: "This field shall indicate where the event was triggered from.",
2167
- xref: { document: "cluster", section: "5.2.10.39.1" }
2168
- }),
2169
- Field({ name: "ProgramEventCode", id: 1, type: "ProgrammingEventCodeEnum", conformance: "M", constraint: "desc" }),
2170
- Field({
2171
- name: "UserId",
2172
- id: 2,
2173
- type: "uint16",
2174
- conformance: "M",
2175
- constraint: "desc",
2176
- details: "This field shall indicate the UserID who performed the event",
2177
- xref: { document: "cluster", section: "5.2.10.39.6" }
2178
- }),
2179
- Field({
2180
- name: "Pin",
2181
- id: 3,
2182
- type: "octstr",
2183
- conformance: "M",
2184
- details: "This field shall indicate the PIN that is associated with the UserID who performed the event",
2185
- xref: { document: "cluster", section: "5.2.10.39.7" }
2186
- }),
2187
- Field({
2188
- name: "UserType",
2189
- id: 4,
2190
- type: "UserTypeEnum",
2191
- conformance: "M",
2192
- constraint: "desc",
2193
- details: "This field shall indicate the UserType that is associated with the UserID who performed the event",
2194
- xref: { document: "cluster", section: "5.2.10.39.8" }
2195
- }),
2196
- Field({
2197
- name: "UserStatus",
2198
- id: 5,
2199
- type: "UserStatusEnum",
2200
- conformance: "M",
2201
- constraint: "desc",
2202
- details: "This field shall indicate the UserStatus that is associated with the UserID who performed the event",
2203
- xref: { document: "cluster", section: "5.2.10.39.9" }
2204
- }),
2205
- Field({
2206
- name: "LocalTime",
2207
- id: 6,
2208
- type: "epoch-s",
2209
- conformance: "M",
2210
- details: "This field shall indicate the time when the event was triggered in Epoch Time in Seconds with local time offset based on the local timezone and DST offset on the day represented by the value. If time is not supported, the field shall be populated with default not used value 0xFFFFFFFF.",
2211
- xref: { document: "cluster", section: "5.2.10.39.10" }
2212
- }),
2213
- Field({
2214
- name: "Data",
2215
- id: 7,
2216
- type: "string",
2217
- conformance: "O",
2218
- details: "This field may contain a variable string, which can be used to pass data associated with a particular event. Generally this field will be left empty. However, manufacturer can choose to use this field to store/display manufacturer-specific information.",
2219
- xref: { document: "cluster", section: "5.2.10.39.11" }
2066
+ xref: { document: "cluster", section: "5.2.10.35.1" }
2220
2067
  })
2221
2068
  ),
2222
2069
  Command(
@@ -2228,7 +2075,7 @@ const DoorLock = Cluster(
2228
2075
  direction: "request",
2229
2076
  response: "SetCredentialResponse",
2230
2077
  details: "Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser.\nFields used for different use cases:",
2231
- xref: { document: "cluster", section: "5.2.10.40" }
2078
+ xref: { document: "cluster", section: "5.2.10.36" }
2232
2079
  },
2233
2080
  Field({
2234
2081
  name: "OperationType",
@@ -2237,7 +2084,7 @@ const DoorLock = Cluster(
2237
2084
  conformance: "M",
2238
2085
  constraint: "add, modify",
2239
2086
  details: "This field shall indicate the set credential operation type requested.",
2240
- xref: { document: "cluster", section: "5.2.10.40.1" }
2087
+ xref: { document: "cluster", section: "5.2.10.36.1" }
2241
2088
  }),
2242
2089
  Field({
2243
2090
  name: "Credential",
@@ -2245,7 +2092,7 @@ const DoorLock = Cluster(
2245
2092
  type: "CredentialStruct",
2246
2093
  conformance: "M",
2247
2094
  details: "This field shall contain a credential structure that contains the CredentialTypeEnum and the credential index (if applicable or 0 if not) to set.",
2248
- xref: { document: "cluster", section: "5.2.10.40.2" }
2095
+ xref: { document: "cluster", section: "5.2.10.36.2" }
2249
2096
  }),
2250
2097
  Field({
2251
2098
  name: "CredentialData",
@@ -2254,7 +2101,7 @@ const DoorLock = Cluster(
2254
2101
  conformance: "M",
2255
2102
  constraint: "desc",
2256
2103
  details: "This field shall indicate the credential data to set for the credential being added or modified. The length of the credential data shall conform to the limits of the CredentialType specified in the Credential structure otherwise an INVALID_COMMAND status shall be returned in the SetCredentialResponse command.",
2257
- xref: { document: "cluster", section: "5.2.10.40.3" }
2104
+ xref: { document: "cluster", section: "5.2.10.36.3" }
2258
2105
  }),
2259
2106
  Field({
2260
2107
  name: "UserIndex",
@@ -2264,7 +2111,7 @@ const DoorLock = Cluster(
2264
2111
  constraint: "1 to numberOfTotalUsersSupported",
2265
2112
  quality: "X",
2266
2113
  details: "This field shall indicate the user index to the user record that corresponds to the credential being added or modified. This shall be null if OperationType is add and a new credential and user is being added at the same time.",
2267
- xref: { document: "cluster", section: "5.2.10.40.4" }
2114
+ xref: { document: "cluster", section: "5.2.10.36.4" }
2268
2115
  }),
2269
2116
  Field({
2270
2117
  name: "UserStatus",
@@ -2275,7 +2122,7 @@ const DoorLock = Cluster(
2275
2122
  default: 1,
2276
2123
  quality: "X",
2277
2124
  details: "This field shall indicate the user status to use in the new user record if a new user is being created. This shall be null if OperationType is Modify. This may be null when adding a new credential and user.",
2278
- xref: { document: "cluster", section: "5.2.10.40.5" }
2125
+ xref: { document: "cluster", section: "5.2.10.36.5" }
2279
2126
  }),
2280
2127
  Field({
2281
2128
  name: "UserType",
@@ -2286,7 +2133,7 @@ const DoorLock = Cluster(
2286
2133
  default: 0,
2287
2134
  quality: "X",
2288
2135
  details: "This field shall indicate the user type to use in the new user record if a new user is being created. This shall be null if OperationType is Modify. This may be null when adding a new credential and user.",
2289
- xref: { document: "cluster", section: "5.2.10.40.6" }
2136
+ xref: { document: "cluster", section: "5.2.10.36.6" }
2290
2137
  })
2291
2138
  ),
2292
2139
  Command(
@@ -2296,7 +2143,7 @@ const DoorLock = Cluster(
2296
2143
  conformance: "USR",
2297
2144
  direction: "response",
2298
2145
  details: "Returns the status for setting the specified credential.",
2299
- xref: { document: "cluster", section: "5.2.10.41" }
2146
+ xref: { document: "cluster", section: "5.2.10.37" }
2300
2147
  },
2301
2148
  Field({
2302
2149
  name: "Status",
@@ -2304,8 +2151,8 @@ const DoorLock = Cluster(
2304
2151
  type: "status",
2305
2152
  conformance: "M",
2306
2153
  constraint: "desc",
2307
- details: "Status comes from the Status Codes table and shall be one of the following values:\n \u2022 SUCCESS, if setting user credential was successful.\n \u2022 FAILURE, if some unexpected internal error occurred setting user credential.\n \u2022 OCCUPIED, if OperationType is Add and CredentialIndex in Credential structure points to an occupied slot.\n \u2022 OCCUPIED, if OperationType is Modify and CredentialIndex in Credential structure does not match the CredentialIndex that is already associated with the provided UserIndex.\n \u2022 DUPLICATE, if CredentialData provided is a duplicate of another credential with the same CredentialType (e.g. duplicate PIN code).\n \u2022 RESOURCE_EXHAUSTED, if OperationType is Add and the user referred to by UserIndex already has NumberOfCredentialsSupportedPerUser credentials associated.\n \u2022 INVALID_COMMAND, if one or more fields violate constraints or are invalid.\n \u2022 INVALID_COMMAND, if the CredentialIndex in the Credential provided exceeds the number of credentials of the provided CredentialType supported by the lock.\n \u2022 INVALID_COMMAND, if OperationType is Modify and UserIndex points to an available slot.",
2308
- xref: { document: "cluster", section: "5.2.10.41.1" }
2154
+ details: "Status comes from the Status Codes table and shall be one of the following values:\n \u2022 SUCCESS, if setting user credential was successful.\n \u2022 FAILURE, if some unexpected internal error occurred setting user credential.\n \u2022 OCCUPIED, if OperationType is Add and CredentialIndex in Credential structure points to an occupied slot.\n \u2022 OCCUPIED, if OperationType is Modify and CredentialIndex in Credential structure does not match the CredentialIndex that is already associated with the provided UserIndex.\n \u2022 DUPLICATE, if CredentialData provided is a duplicate of another credential with the same CredentialType (e.g. duplicate PIN code).\n \u2022 RESOURCE_EXHAUSTED, if OperationType is Add and the new credential cannot be added due to resource constraints such as:\n \u25E6 The user referred to by UserIndex already has NumberOfCredentialsSupportedPerUser credentials associated.\n \u25E6 The credential is of type AliroEvictableEndpointKey or AliroNonEvictableEndpointKey, and adding it would cause the total number of credentials of those two types to exceed NumberOfAliroEndpointKeysSupported.\n \u2022 INVALID_COMMAND, if one or more fields violate constraints or are invalid.\n \u2022 INVALID_COMMAND, if the CredentialIndex in the Credential provided exceeds the number of credentials of the provided CredentialType supported by the lock.\n \u2022 INVALID_COMMAND, if OperationType is Modify and UserIndex points to an available slot.",
2155
+ xref: { document: "cluster", section: "5.2.10.37.1" }
2309
2156
  }),
2310
2157
  Field({
2311
2158
  name: "UserIndex",
@@ -2316,7 +2163,7 @@ const DoorLock = Cluster(
2316
2163
  default: 0,
2317
2164
  quality: "X",
2318
2165
  details: "This field shall indicate the user index that was created with the new credential. If the status being returned is not success then this shall be null. This shall be null if OperationType was Modify; if the OperationType was Add and a new User was created this shall NOT be null and shall provide the UserIndex created. If the OperationType was Add and an existing User was associated with the new credential then this shall be null.",
2319
- xref: { document: "cluster", section: "5.2.10.41.2" }
2166
+ xref: { document: "cluster", section: "5.2.10.37.2" }
2320
2167
  }),
2321
2168
  Field({
2322
2169
  name: "NextCredentialIndex",
@@ -2326,7 +2173,7 @@ const DoorLock = Cluster(
2326
2173
  constraint: "desc",
2327
2174
  quality: "X",
2328
2175
  details: "This field shall indicate the next available index in the database for the credential type set, which is useful for quickly identifying available credential slots in the database. This shall NOT be null if there is at least one available entry after the requested credential index in the corresponding database and shall be null if there are no more available entries. The NextCredentialIndex reported shall NOT exceed the maximum number of credentials for a particular credential type.",
2329
- xref: { document: "cluster", section: "5.2.10.41.3" }
2176
+ xref: { document: "cluster", section: "5.2.10.37.3" }
2330
2177
  })
2331
2178
  ),
2332
2179
  Command(
@@ -2338,7 +2185,7 @@ const DoorLock = Cluster(
2338
2185
  direction: "request",
2339
2186
  response: "GetCredentialStatusResponse",
2340
2187
  details: "Retrieve the status of a particular credential (e.g. PIN, RFID, Fingerprint, etc.) by index.\nAn InvokeResponse command shall be sent with an appropriate error (e.g. FAILURE, INVALID_COMMAND, etc.) as needed otherwise the GetCredentialStatusResponse command shall be sent implying a status of SUCCESS.",
2341
- xref: { document: "cluster", section: "5.2.10.42" }
2188
+ xref: { document: "cluster", section: "5.2.10.38" }
2342
2189
  },
2343
2190
  Field({
2344
2191
  name: "Credential",
@@ -2346,7 +2193,7 @@ const DoorLock = Cluster(
2346
2193
  type: "CredentialStruct",
2347
2194
  conformance: "M",
2348
2195
  details: "This field shall contain a credential structure that contains the CredentialTypeEnum and the credential index (if applicable or 0 if not) to retrieve the status for.",
2349
- xref: { document: "cluster", section: "5.2.10.42.1" }
2196
+ xref: { document: "cluster", section: "5.2.10.38.1" }
2350
2197
  })
2351
2198
  ),
2352
2199
  Command(
@@ -2356,7 +2203,7 @@ const DoorLock = Cluster(
2356
2203
  conformance: "USR",
2357
2204
  direction: "response",
2358
2205
  details: "Returns the status for the specified credential.",
2359
- xref: { document: "cluster", section: "5.2.10.43" }
2206
+ xref: { document: "cluster", section: "5.2.10.39" }
2360
2207
  },
2361
2208
  Field({
2362
2209
  name: "CredentialExists",
@@ -2364,7 +2211,7 @@ const DoorLock = Cluster(
2364
2211
  type: "bool",
2365
2212
  conformance: "M",
2366
2213
  details: "This field shall indicate if the requested credential type and index exists and is populated for the requested user index.",
2367
- xref: { document: "cluster", section: "5.2.10.43.1" }
2214
+ xref: { document: "cluster", section: "5.2.10.39.1" }
2368
2215
  }),
2369
2216
  Field({
2370
2217
  name: "UserIndex",
@@ -2374,7 +2221,7 @@ const DoorLock = Cluster(
2374
2221
  constraint: "1 to numberOfTotalUsersSupported",
2375
2222
  quality: "X",
2376
2223
  details: "This field shall indicate the credential\u2019s corresponding user index value if the credential exists. If CredentialType requested was ProgrammingPIN then UserIndex shall be null; otherwise, UserIndex shall be null if CredentialExists is set to False and shall NOT be null if CredentialExists is set to True.",
2377
- xref: { document: "cluster", section: "5.2.10.43.2" }
2224
+ xref: { document: "cluster", section: "5.2.10.39.2" }
2378
2225
  }),
2379
2226
  Field({
2380
2227
  name: "CreatorFabricIndex",
@@ -2383,7 +2230,7 @@ const DoorLock = Cluster(
2383
2230
  conformance: "M",
2384
2231
  quality: "X",
2385
2232
  details: "This field shall indicate the credential\u2019s creator fabric index. CreatorFabricIndex shall be null if CredentialExists is set to False or when the creator fabric cannot be determined (for example, when credential was created outside the Interaction Model) and shall NOT be null otherwise. This value shall be set to 0 if the original creator fabric was deleted.",
2386
- xref: { document: "cluster", section: "5.2.10.43.3" }
2233
+ xref: { document: "cluster", section: "5.2.10.39.3" }
2387
2234
  }),
2388
2235
  Field({
2389
2236
  name: "LastModifiedFabricIndex",
@@ -2392,7 +2239,7 @@ const DoorLock = Cluster(
2392
2239
  conformance: "M",
2393
2240
  quality: "X",
2394
2241
  details: "This field shall indicate the credential\u2019s last modifier fabric index. LastModifiedFabricIndex shall be null if CredentialExists is set to False or when the modifier fabric cannot be determined (for example, when credential was modified outside the Interaction Model) and shall NOT be null otherwise. This value shall be set to 0 if the last modifier fabric was deleted.",
2395
- xref: { document: "cluster", section: "5.2.10.43.4" }
2242
+ xref: { document: "cluster", section: "5.2.10.39.4" }
2396
2243
  }),
2397
2244
  Field({
2398
2245
  name: "NextCredentialIndex",
@@ -2401,8 +2248,18 @@ const DoorLock = Cluster(
2401
2248
  conformance: "O",
2402
2249
  constraint: "desc",
2403
2250
  quality: "X",
2404
- details: "This field shall indicate the next occupied index in the database for the credential type requested, which is useful for quickly identifying occupied credential slots in the database. This shall NOT be null if there is at least one occupied entry after the requested credential index in the corresponding database and shall be null if there are no more occupied entries. The NextCredentialIndex reported shall NOT exceed the maximum number of credentials for a particular credential type.",
2405
- xref: { document: "cluster", section: "5.2.10.43.5" }
2251
+ details: "This field shall indicate the next occupied index in the database for the credential type requested, which is useful for quickly identifying occupied credential slots in the database. This shall NOT be null if there is at least one occupied entry after the requested credential index in the corresponding\ndatabase and shall be null if there are no more occupied entries. The NextCredentialIndex reported shall NOT exceed the maximum number of credentials for a particular credential type.",
2252
+ xref: { document: "cluster", section: "5.2.10.39.5" }
2253
+ }),
2254
+ Field({
2255
+ name: "CredentialData",
2256
+ id: 5,
2257
+ type: "octstr",
2258
+ conformance: "[ALIRO]",
2259
+ constraint: "desc",
2260
+ quality: "X",
2261
+ details: "This field shall indicate the credential data for the requested user index.\nIf the CredentialType in the GetCredentialStatus command was not AliroCredentialIssuerKey, AliroEvictableEndpointKey, or AliroNonEvictableEndpointKey, this field shall NOT be included.\nOtherwise, if CredentialExists is false this field shall be null.\nOtherwise, the value of this field shall be the value of the relevant credential, as a 65-byte uncompressed elliptic curve public key as defined in section 2.3.3 of SEC 1.\nNOTE\nSince the Aliro credentials are public keys, there is no security risk in allowing them to be read. Possession of the credential octet string does not allow operating the lock.",
2262
+ xref: { document: "cluster", section: "5.2.10.39.6" }
2406
2263
  })
2407
2264
  ),
2408
2265
  Command(
@@ -2413,8 +2270,8 @@ const DoorLock = Cluster(
2413
2270
  conformance: "USR",
2414
2271
  direction: "request",
2415
2272
  response: "status",
2416
- details: "Clear one, one type, or all credentials except ProgrammingPIN credential.\nFields used for different use cases:\nFor each credential cleared whose user doesn\u2019t have another valid credential, the corresponding user record shall be reset back to default values and its UserStatus value shall be set to Available and UserType value shall be set to UnrestrictedUser and all schedules shall be cleared. In\nthis case a LockUserChange event shall be generated for the user being cleared. Return status shall be one of the following values:",
2417
- xref: { document: "cluster", section: "5.2.10.44" }
2273
+ details: "Clear one, one type, or all credentials except ProgrammingPIN credential.\nFields used for different use cases:\nFor each credential cleared whose user doesn\u2019t have another valid credential, the corresponding user record shall be reset back to default values and its UserStatus value shall be set to Available and UserType value shall be set to UnrestrictedUser and all schedules shall be cleared. In this case a LockUserChange event shall be generated for the user being cleared.\nReturn status shall be one of the following values:",
2274
+ xref: { document: "cluster", section: "5.2.10.40" }
2418
2275
  },
2419
2276
  Field({
2420
2277
  name: "Credential",
@@ -2424,7 +2281,7 @@ const DoorLock = Cluster(
2424
2281
  constraint: "desc",
2425
2282
  quality: "X",
2426
2283
  details: "This field shall contain a credential structure that contains the CredentialTypeEnum and the credential index (0xFFFE for all credentials or 0 if not applicable) to clear. This shall be null if clearing all credential types otherwise it shall NOT be null.",
2427
- xref: { document: "cluster", section: "5.2.10.44.1" }
2284
+ xref: { document: "cluster", section: "5.2.10.40.1" }
2428
2285
  })
2429
2286
  ),
2430
2287
  Command(
@@ -2436,7 +2293,7 @@ const DoorLock = Cluster(
2436
2293
  direction: "request",
2437
2294
  response: "status",
2438
2295
  details: "This command causes the lock device to unlock the door without pulling the latch. This command includes an optional code for the lock. The door lock may require a code depending on the value of the RequirePINForRemoteOperation attribute.\nNOTE\nIf the attribute AutoRelockTime is supported, the lock will transition to the locked state when the auto relock time has expired.",
2439
- xref: { document: "cluster", section: "5.2.10.45" }
2296
+ xref: { document: "cluster", section: "5.2.10.41" }
2440
2297
  },
2441
2298
  Field({
2442
2299
  name: "PinCode",
@@ -2444,9 +2301,67 @@ const DoorLock = Cluster(
2444
2301
  type: "octstr",
2445
2302
  conformance: "[COTA & PIN]",
2446
2303
  details: "See PINCode field.",
2447
- xref: { document: "cluster", section: "5.2.10.45.1" }
2304
+ xref: { document: "cluster", section: "5.2.10.41.1" }
2305
+ })
2306
+ ),
2307
+ Command(
2308
+ {
2309
+ name: "SetAliroReaderConfig",
2310
+ id: 40,
2311
+ access: "A T",
2312
+ conformance: "ALIRO",
2313
+ direction: "request",
2314
+ response: "status",
2315
+ details: "This command allows communicating an Aliro Reader configuration, as defined in [Aliro], to the lock.",
2316
+ xref: { document: "cluster", section: "5.2.10.42" }
2317
+ },
2318
+ Field({
2319
+ name: "SigningKey",
2320
+ id: 0,
2321
+ type: "octstr",
2322
+ conformance: "M",
2323
+ constraint: "32",
2324
+ details: "This field shall indicate the signing key component of the Reader\u2019s key pair.",
2325
+ xref: { document: "cluster", section: "5.2.10.42.1" }
2326
+ }),
2327
+ Field({
2328
+ name: "VerificationKey",
2329
+ id: 1,
2330
+ type: "octstr",
2331
+ conformance: "M",
2332
+ constraint: "65",
2333
+ details: "This field shall indicate the verification key component of the Reader\u2019s key pair. This shall be an uncompressed elliptic curve public key as defined in section 2.3.3 of SEC 1.",
2334
+ xref: { document: "cluster", section: "5.2.10.42.2" }
2335
+ }),
2336
+ Field({
2337
+ name: "GroupIdentifier",
2338
+ id: 2,
2339
+ type: "octstr",
2340
+ conformance: "M",
2341
+ constraint: "16",
2342
+ details: "This field shall indicate the reader group identifier for the lock.",
2343
+ xref: { document: "cluster", section: "5.2.10.42.3" }
2344
+ }),
2345
+ Field({
2346
+ name: "GroupResolvingKey",
2347
+ id: 3,
2348
+ type: "octstr",
2349
+ conformance: "ALBU",
2350
+ constraint: "16",
2351
+ details: "This field shall indicate the group resolving key for the lock.",
2352
+ xref: { document: "cluster", section: "5.2.10.42.4" }
2448
2353
  })
2449
2354
  ),
2355
+ Command({
2356
+ name: "ClearAliroReaderConfig",
2357
+ id: 41,
2358
+ access: "A T",
2359
+ conformance: "ALIRO",
2360
+ direction: "request",
2361
+ response: "status",
2362
+ details: "This command allows clearing an existing Aliro Reader configuration for the lock. Administrators shall NOT clear an Aliro Reader configuration without explicit user permission.\nNOTE\nUsing this command will revoke the ability of all existing Aliro user devices that have the old verification key to interact with the lock. This effect is not restricted to a single fabric or otherwise scoped in any way.",
2363
+ xref: { document: "cluster", section: "5.2.10.43" }
2364
+ }),
2450
2365
  Datatype(
2451
2366
  {
2452
2367
  name: "DaysMaskBitmap",
@@ -2576,7 +2491,6 @@ const DoorLock = Cluster(
2576
2491
  { name: "AlarmMaskBitmap", type: "map16", xref: { document: "cluster", section: "5.2.6.6" } },
2577
2492
  Field({ name: "LockJammed", constraint: "0", description: "Locking Mechanism Jammed" }),
2578
2493
  Field({ name: "LockFactoryReset", constraint: "1", description: "Lock Reset to Factory Defaults" }),
2579
- Field({ name: "NA", constraint: "2", description: "Reserved" }),
2580
2494
  Field({ name: "LockRadioPowerCycled", constraint: "3", description: "RF Module Power Cycled" }),
2581
2495
  Field({ name: "WrongCodeEntryLimit", constraint: "4", description: "Tamper Alarm - wrong code entry limit" }),
2582
2496
  Field({
@@ -2586,31 +2500,12 @@ const DoorLock = Cluster(
2586
2500
  }),
2587
2501
  Field({ name: "DoorForcedOpen", constraint: "6", description: "Forced Door Open under Door Locked Condition" })
2588
2502
  ),
2589
- Datatype(
2590
- { name: "EventMaskBitmap", type: "map16", xref: { document: "cluster", section: "5.2.6.7" } },
2591
- Field({ name: "Bit0", constraint: "0", description: "State of bit 0" }),
2592
- Field({ name: "Bit1", constraint: "1", description: "State of bit 1" }),
2593
- Field({ name: "Bit2", constraint: "2", description: "State of bit 2" }),
2594
- Field({ name: "Bit3", constraint: "3", description: "State of bit 3" }),
2595
- Field({ name: "Bit4", constraint: "4", description: "State of bit 4" }),
2596
- Field({ name: "Bit5", constraint: "5", description: "State of bit 5" }),
2597
- Field({ name: "Bit6", constraint: "6", description: "State of bit 6" }),
2598
- Field({ name: "Bit7", constraint: "7", description: "State of bit 7" }),
2599
- Field({ name: "Bit8", constraint: "8", description: "State of bit 8" }),
2600
- Field({ name: "Bit9", constraint: "9", description: "State of bit 9" }),
2601
- Field({ name: "Bit10", constraint: "10", description: "State of bit 10" }),
2602
- Field({ name: "Bit11", constraint: "11", description: "State of bit 11" }),
2603
- Field({ name: "Bit12", constraint: "12", description: "State of bit 12" }),
2604
- Field({ name: "Bit13", constraint: "13", description: "State of bit 13" }),
2605
- Field({ name: "Bit14", constraint: "14", description: "State of bit 14" }),
2606
- Field({ name: "Bit15", constraint: "15", description: "State of bit 15" })
2607
- ),
2608
2503
  Datatype(
2609
2504
  {
2610
2505
  name: "AlarmCodeEnum",
2611
2506
  type: "enum8",
2612
2507
  details: "This enumeration shall indicate the alarm type.",
2613
- xref: { document: "cluster", section: "5.2.6.8" }
2508
+ xref: { document: "cluster", section: "5.2.6.7" }
2614
2509
  },
2615
2510
  Field({ name: "LockJammed", id: 0, conformance: "M", description: "Locking Mechanism Jammed" }),
2616
2511
  Field({ name: "LockFactoryReset", id: 1, conformance: "O", description: "Lock Reset to Factory Defaults" }),
@@ -2641,7 +2536,7 @@ const DoorLock = Cluster(
2641
2536
  name: "CredentialRuleEnum",
2642
2537
  type: "enum8",
2643
2538
  details: "This enumeration shall indicate the credential rule that can be applied to a particular user.",
2644
- xref: { document: "cluster", section: "5.2.6.9" }
2539
+ xref: { document: "cluster", section: "5.2.6.8" }
2645
2540
  },
2646
2541
  Field({
2647
2542
  name: "Single",
@@ -2667,21 +2562,45 @@ const DoorLock = Cluster(
2667
2562
  name: "CredentialTypeEnum",
2668
2563
  type: "enum8",
2669
2564
  details: "This enumeration shall indicate the credential type.",
2670
- xref: { document: "cluster", section: "5.2.6.10" }
2565
+ xref: { document: "cluster", section: "5.2.6.9" }
2671
2566
  },
2672
2567
  Field({ name: "ProgrammingPin", id: 0, conformance: "O", description: "Programming PIN code credential type" }),
2673
2568
  Field({ name: "Pin", id: 1, conformance: "PIN", description: "PIN code credential type" }),
2674
2569
  Field({ name: "Rfid", id: 2, conformance: "RID", description: "RFID identifier credential type" }),
2675
2570
  Field({ name: "Fingerprint", id: 3, conformance: "FGP", description: "Fingerprint identifier credential type" }),
2676
2571
  Field({ name: "FingerVein", id: 4, conformance: "FGP", description: "Finger vein identifier credential type" }),
2677
- Field({ name: "Face", id: 5, conformance: "FACE", description: "Face identifier credential type" })
2572
+ Field({ name: "Face", id: 5, conformance: "FACE", description: "Face identifier credential type" }),
2573
+ Field({
2574
+ name: "AliroCredentialIssuerKey",
2575
+ id: 6,
2576
+ conformance: "ALIRO",
2577
+ description: "A Credential Issuer public key as defined in [Aliro]",
2578
+ details: 'Credentials of this type shall be 65-byte uncompressed elliptic curve public keys as defined in section 2.3.3 of SEC 1.\nCredentials of this type shall NOT be used to allow operating the lock. They shall be used, as defined in [Aliro], to create new credentials of type AliroEvictableEndpointKey via a step-up transaction.\nWhen performing the step-up transaction, the lock shall request the data element with identifier "matter1", and shall attempt to create a new credential of type AliroEvictableEndpointKey if and only if the data element is returned and the Access Credential can be validated using the AliroCredentialIssuerKey.\nWhen a new credential of type AliroEvictableEndpointKey is added in this manner, it shall be associated with the same user record as the AliroCredentialIssuerKey credential that allowed the new credential to be added.\nIf there are no available credential slots to add a new AliroEvictableEndpointKey credential (i.e. either the NumberOfCredentialsSupportedPerUser or the NumberOfAliroEndpointKeysSupported limit has been reached) but there exist credentials of type AliroEvictableEndpointKey associated with the user record, the server shall remove one of those credentials using the same procedure it would follow for the ClearCredential command before adding the new credential.\nIf there are no available credential slots to add a new AliroEvictableEndpointKey credential (i.e. either the NumberOfCredentialsSupportedPerUser or the NumberOfAliroEndpointKeysSupported limit has been reached) and there do not exist credentials of type AliroEvictableEndpointKey associated with the user record, a new AliroEvictableEndpointKey credential shall NOT be created.\nIf the step-up process results in addition of new credentials, the corresponding LockUserChange event shall have OperationSource set to Aliro.\nIf the step-up process results in the lock state changing (e.g. locking or unlocking), the credential associated with those changes in the LockOperation events shall be the newly provisioned AliroEvictableEndpointKey credential if one was created. If no new AliroEvictableEndpointKey credential was created, the credential associated with the changes in the LockOperation events shall be the AliroCredentialIssuerKey credential used for the step-up.',
2579
+ xref: { document: "cluster", section: "5.2.6.9.1" }
2580
+ }),
2581
+ Field({
2582
+ name: "AliroEvictableEndpointKey",
2583
+ id: 7,
2584
+ conformance: "ALIRO",
2585
+ description: "An Endpoint public key as defined in [Aliro] which can be evicted if space is needed for another endpoint key",
2586
+ details: "Credentials of this type shall be 65-byte uncompressed elliptic curve public keys as defined in section 2.3.3 of SEC 1.",
2587
+ xref: { document: "cluster", section: "5.2.6.9.2" }
2588
+ }),
2589
+ Field({
2590
+ name: "AliroNonEvictableEndpointKey",
2591
+ id: 8,
2592
+ conformance: "ALIRO",
2593
+ description: "An Endpoint public key as defined in [Aliro] which cannot be evicted if space is needed for another endpoint key",
2594
+ details: "Credentials of this type shall be 65-byte uncompressed elliptic curve public keys as defined in section 2.3.3 of SEC 1.",
2595
+ xref: { document: "cluster", section: "5.2.6.9.3" }
2596
+ })
2678
2597
  ),
2679
2598
  Datatype(
2680
2599
  {
2681
2600
  name: "DataOperationTypeEnum",
2682
2601
  type: "enum8",
2683
2602
  details: "This enumeration shall indicate the data operation performed.",
2684
- xref: { document: "cluster", section: "5.2.6.11" }
2603
+ xref: { document: "cluster", section: "5.2.6.10" }
2685
2604
  },
2686
2605
  Field({ name: "Add", id: 0, conformance: "M", description: "Data is being added or was added" }),
2687
2606
  Field({ name: "Clear", id: 1, conformance: "M", description: "Data is being cleared or was cleared" }),
@@ -2692,7 +2611,7 @@ const DoorLock = Cluster(
2692
2611
  name: "DoorStateEnum",
2693
2612
  type: "enum8",
2694
2613
  details: "This enumeration shall indicate the current door state.",
2695
- xref: { document: "cluster", section: "5.2.6.12" }
2614
+ xref: { document: "cluster", section: "5.2.6.11" }
2696
2615
  },
2697
2616
  Field({ name: "DoorOpen", id: 0, conformance: "DPS", description: "Door state is open" }),
2698
2617
  Field({ name: "DoorClosed", id: 1, conformance: "DPS", description: "Door state is closed" }),
@@ -2711,7 +2630,7 @@ const DoorLock = Cluster(
2711
2630
  name: "LockDataTypeEnum",
2712
2631
  type: "enum8",
2713
2632
  details: "This enumeration shall indicate the data type that is being or has changed.",
2714
- xref: { document: "cluster", section: "5.2.6.13" }
2633
+ xref: { document: "cluster", section: "5.2.6.12" }
2715
2634
  },
2716
2635
  Field({
2717
2636
  name: "Unspecified",
@@ -2778,6 +2697,24 @@ const DoorLock = Cluster(
2778
2697
  id: 10,
2779
2698
  conformance: "FACE",
2780
2699
  description: "Lock user face information was added, cleared, or modified."
2700
+ }),
2701
+ Field({
2702
+ name: "AliroCredentialIssuerKey",
2703
+ id: 11,
2704
+ conformance: "ALIRO",
2705
+ description: "An Aliro credential issuer key credential was added, cleared, or modified."
2706
+ }),
2707
+ Field({
2708
+ name: "AliroEvictableEndpointKey",
2709
+ id: 12,
2710
+ conformance: "ALIRO",
2711
+ description: "An Aliro endpoint key credential which can be evicted credential was added, cleared, or modified."
2712
+ }),
2713
+ Field({
2714
+ name: "AliroNonEvictableEndpointKey",
2715
+ id: 13,
2716
+ conformance: "ALIRO",
2717
+ description: "An Aliro endpoint key credential which cannot be evicted was added, cleared, or modified."
2781
2718
  })
2782
2719
  ),
2783
2720
  Datatype(
@@ -2785,7 +2722,7 @@ const DoorLock = Cluster(
2785
2722
  name: "LockOperationTypeEnum",
2786
2723
  type: "enum8",
2787
2724
  details: "This enumeration shall indicate the type of Lock operation performed.",
2788
- xref: { document: "cluster", section: "5.2.6.14" }
2725
+ xref: { document: "cluster", section: "5.2.6.13" }
2789
2726
  },
2790
2727
  Field({ name: "Lock", id: 0, conformance: "M", description: "Lock operation" }),
2791
2728
  Field({ name: "Unlock", id: 1, conformance: "M", description: "Unlock operation" }),
@@ -2808,7 +2745,7 @@ const DoorLock = Cluster(
2808
2745
  name: "OperationErrorEnum",
2809
2746
  type: "enum8",
2810
2747
  details: "This enumeration shall indicate the error cause of the Lock/Unlock operation performed.",
2811
- xref: { document: "cluster", section: "5.2.6.15" }
2748
+ xref: { document: "cluster", section: "5.2.6.14" }
2812
2749
  },
2813
2750
  Field({
2814
2751
  name: "Unspecified",
@@ -2846,42 +2783,42 @@ const DoorLock = Cluster(
2846
2783
  name: "OperatingModeEnum",
2847
2784
  type: "enum8",
2848
2785
  details: "This enumeration shall indicate the lock operating mode.\nThe table below shows the operating mode and which interfaces are enabled, if supported, for each mode.\n* Interface Operational: Yes, No or N/A\nNOTE\nFor modes that disable the remote interface, the door lock shall respond to Lock, Unlock, Toggle, and Unlock with Timeout commands with a response status Failure and not take the action requested by those commands. The door lock shall NOT disable the radio or otherwise unbind or leave the network. It shall still respond to all other commands and requests.",
2849
- xref: { document: "cluster", section: "5.2.6.16" }
2786
+ xref: { document: "cluster", section: "5.2.6.15" }
2850
2787
  },
2851
2788
  Field({
2852
2789
  name: "Normal",
2853
2790
  id: 0,
2854
2791
  conformance: "M",
2855
2792
  details: "The lock operates normally. All interfaces are enabled.",
2856
- xref: { document: "cluster", section: "5.2.6.16.1" }
2793
+ xref: { document: "cluster", section: "5.2.6.15.1" }
2857
2794
  }),
2858
2795
  Field({
2859
2796
  name: "Vacation",
2860
2797
  id: 1,
2861
2798
  conformance: "O",
2862
2799
  details: "Only remote interaction is enabled. The keypad shall only be operable by the master user.",
2863
- xref: { document: "cluster", section: "5.2.6.16.2" }
2800
+ xref: { document: "cluster", section: "5.2.6.15.2" }
2864
2801
  }),
2865
2802
  Field({
2866
2803
  name: "Privacy",
2867
2804
  id: 2,
2868
2805
  conformance: "O",
2869
2806
  details: "This mode is only possible if the door is locked. Manual unlocking changes the mode to Normal operating mode. All external interaction with the door lock is disabled. This mode is intended to be used so that users, presumably inside the property, will have control over the entrance.",
2870
- xref: { document: "cluster", section: "5.2.6.16.3" }
2807
+ xref: { document: "cluster", section: "5.2.6.15.3" }
2871
2808
  }),
2872
2809
  Field({
2873
2810
  name: "NoRemoteLockUnlock",
2874
2811
  id: 3,
2875
2812
  conformance: "M",
2876
2813
  details: "This mode only disables remote interaction with the lock. This does not apply to any remote proprietary means of communication. It specifically applies to the Lock, Unlock, Toggle, and Unlock with Timeout Commands.",
2877
- xref: { document: "cluster", section: "5.2.6.16.4" }
2814
+ xref: { document: "cluster", section: "5.2.6.15.4" }
2878
2815
  }),
2879
2816
  Field({
2880
2817
  name: "Passage",
2881
2818
  id: 4,
2882
2819
  conformance: "O",
2883
2820
  details: "The lock is open or can be opened or closed at will without the use of a Keypad or other means of user validation (e.g. a lock for a business during work hours).",
2884
- xref: { document: "cluster", section: "5.2.6.16.5" }
2821
+ xref: { document: "cluster", section: "5.2.6.15.5" }
2885
2822
  })
2886
2823
  ),
2887
2824
  Datatype(
@@ -2889,7 +2826,7 @@ const DoorLock = Cluster(
2889
2826
  name: "OperationSourceEnum",
2890
2827
  type: "enum8",
2891
2828
  details: "This enumeration shall indicate the source of the Lock/Unlock or user change operation performed.",
2892
- xref: { document: "cluster", section: "5.2.6.17" }
2829
+ xref: { document: "cluster", section: "5.2.6.16" }
2893
2830
  },
2894
2831
  Field({
2895
2832
  name: "Unspecified",
@@ -2935,6 +2872,12 @@ const DoorLock = Cluster(
2935
2872
  id: 9,
2936
2873
  conformance: "[USR]",
2937
2874
  description: "Lock/unlock operation came from biometric source (e.g. face, fingerprint/fingervein)"
2875
+ }),
2876
+ Field({
2877
+ name: "Aliro",
2878
+ id: 10,
2879
+ conformance: "ALIRO",
2880
+ description: "Lock/unlock operation came from an interaction defined in [Aliro], or user change operation was a step-up credential provisioning as defined in [Aliro]"
2938
2881
  })
2939
2882
  ),
2940
2883
  Datatype(
@@ -2942,7 +2885,7 @@ const DoorLock = Cluster(
2942
2885
  name: "UserStatusEnum",
2943
2886
  type: "enum8",
2944
2887
  details: "This enumeration shall indicate what the status is for a specific user ID.",
2945
- xref: { document: "cluster", section: "5.2.6.18" }
2888
+ xref: { document: "cluster", section: "5.2.6.17" }
2946
2889
  },
2947
2890
  Field({ name: "Available", id: 0, conformance: "M", description: "The user ID is available" }),
2948
2891
  Field({ name: "OccupiedEnabled", id: 1, conformance: "M", description: "The user ID is occupied and enabled" }),
@@ -2953,7 +2896,7 @@ const DoorLock = Cluster(
2953
2896
  name: "UserTypeEnum",
2954
2897
  type: "enum8",
2955
2898
  details: "This enumeration shall indicate what the type is for a specific user ID.",
2956
- xref: { document: "cluster", section: "5.2.6.19" }
2899
+ xref: { document: "cluster", section: "5.2.6.18" }
2957
2900
  },
2958
2901
  Field({
2959
2902
  name: "UnrestrictedUser",
@@ -2961,23 +2904,23 @@ const DoorLock = Cluster(
2961
2904
  conformance: "M",
2962
2905
  description: "The user ID type is unrestricted",
2963
2906
  details: "This value shall indicate the user has access 24/7 provided proper PIN or RFID is supplied (e.g., owner).",
2964
- xref: { document: "cluster", section: "5.2.6.19.1" }
2907
+ xref: { document: "cluster", section: "5.2.6.18.1" }
2965
2908
  }),
2966
2909
  Field({
2967
2910
  name: "YearDayScheduleUser",
2968
2911
  id: 1,
2969
2912
  conformance: "O",
2970
2913
  description: "The user ID type is schedule",
2971
- details: "This value shall indicate the user has the ability to open lock within a specific time period (e.g., guest).",
2972
- xref: { document: "cluster", section: "5.2.6.19.2" }
2914
+ details: "This value shall indicate the user has the ability to open lock within a specific time period (e.g., guest).\nWhen UserType is set to YearDayScheduleUser, user access shall be restricted as follows:\n \u2022 If no YearDaySchedules are set for the user, then access shall be denied\n \u2022 If one or more YearDaySchedules are set, user access shall be granted if and only if the current time falls within at least one of the YearDaySchedules. If current time is not known, user access shall NOT be granted.",
2915
+ xref: { document: "cluster", section: "5.2.6.18.2" }
2973
2916
  }),
2974
2917
  Field({
2975
2918
  name: "WeekDayScheduleUser",
2976
2919
  id: 2,
2977
2920
  conformance: "O",
2978
2921
  description: "The user ID type is schedule",
2979
- details: "This value shall indicate the user has the ability to open lock based on specific time period within a reoccurring weekly schedule (e.g., cleaning worker).",
2980
- xref: { document: "cluster", section: "5.2.6.19.3" }
2922
+ details: "This value shall indicate the user has the ability to open lock based on specific time period within a reoccurring weekly schedule (e.g., cleaning worker).\nWhen UserType is set to WeekDayScheduleUser, user access shall be restricted as follows:\n \u2022 If no WeekDaySchedules are set for the user, then access shall be denied\n \u2022 If one or more WeekDaySchedules are set, user access shall be granted if and only if the current time falls within at least one of the WeekDaySchedules. If current time is not known, user access shall NOT be granted.",
2923
+ xref: { document: "cluster", section: "5.2.6.18.3" }
2981
2924
  }),
2982
2925
  Field({
2983
2926
  name: "ProgrammingUser",
@@ -2985,7 +2928,7 @@ const DoorLock = Cluster(
2985
2928
  conformance: "O",
2986
2929
  description: "The user ID type is programming",
2987
2930
  details: "This value shall indicate the user has the ability to both program and operate the door lock. This user can manage the users and user schedules. In all other respects this user matches the unrestricted (default) user. ProgrammingUser is the only user that can disable the user interface (keypad, remote, etc\u2026).",
2988
- xref: { document: "cluster", section: "5.2.6.19.4" }
2931
+ xref: { document: "cluster", section: "5.2.6.18.4" }
2989
2932
  }),
2990
2933
  Field({
2991
2934
  name: "NonAccessUser",
@@ -2993,7 +2936,7 @@ const DoorLock = Cluster(
2993
2936
  conformance: "O",
2994
2937
  description: "The user ID type is non access",
2995
2938
  details: "This value shall indicate the user is recognized by the lock but does not have the ability to open the lock. This user will only cause the lock to generate the appropriate event notification to any bound devices.",
2996
- xref: { document: "cluster", section: "5.2.6.19.5" }
2939
+ xref: { document: "cluster", section: "5.2.6.18.5" }
2997
2940
  }),
2998
2941
  Field({
2999
2942
  name: "ForcedUser",
@@ -3001,7 +2944,7 @@ const DoorLock = Cluster(
3001
2944
  conformance: "[USR]",
3002
2945
  description: "The user ID type is forced",
3003
2946
  details: "This value shall indicate the user has the ability to open lock but a ForcedUser LockOperationType and ForcedUser silent alarm will be emitted to allow a notified Node to alert emergency services or contacts on the user account when used.",
3004
- xref: { document: "cluster", section: "5.2.6.19.6" }
2947
+ xref: { document: "cluster", section: "5.2.6.18.6" }
3005
2948
  }),
3006
2949
  Field({
3007
2950
  name: "DisposableUser",
@@ -3009,7 +2952,7 @@ const DoorLock = Cluster(
3009
2952
  conformance: "[USR]",
3010
2953
  description: "The user ID type is disposable",
3011
2954
  details: "This value shall indicate the user has the ability to open lock once after which the lock shall change the corresponding user record UserStatus value to OccupiedDisabled automatically.",
3012
- xref: { document: "cluster", section: "5.2.6.19.7" }
2955
+ xref: { document: "cluster", section: "5.2.6.18.7" }
3013
2956
  }),
3014
2957
  Field({
3015
2958
  name: "ExpiringUser",
@@ -3017,15 +2960,15 @@ const DoorLock = Cluster(
3017
2960
  conformance: "[USR]",
3018
2961
  description: "The user ID type is expiring",
3019
2962
  details: "This value shall indicate the user has the ability to open lock for ExpiringUserTimeout attribute minutes after the first use of the PIN code, RFID code, Fingerprint, or other credential. After ExpiringUserTimeout minutes the corresponding user record UserStatus value shall be set to OccupiedDisabled automatically by the lock. The lock shall persist the timeout across reboots such that the ExpiringUserTimeout is honored.",
3020
- xref: { document: "cluster", section: "5.2.6.19.8" }
2963
+ xref: { document: "cluster", section: "5.2.6.18.8" }
3021
2964
  }),
3022
2965
  Field({
3023
2966
  name: "ScheduleRestrictedUser",
3024
2967
  id: 8,
3025
2968
  conformance: "WDSCH | YDSCH",
3026
2969
  description: "The user ID type is schedule restricted",
3027
- details: "This value shall indicate the user access is restricted by Week Day and/or Year Day schedule.",
3028
- xref: { document: "cluster", section: "5.2.6.19.9" }
2970
+ details: "This value shall indicate the user access is restricted by Week Day and/or Year Day schedule. When UserType is set to ScheduleRestrictedUser, user access shall be restricted as follows:\n \u2022 If no WeekDaySchedules and no YearDaySchedules are set for the user, then access shall be denied\n \u2022 If one or more WeekDaySchedules are set, but no YearDaySchedules are set for the user, then user access shall be equivalent to the WeekDayScheduleUser UserType\n \u2022 If one or more YearDaySchedules are set, but no WeekDaySchedules are set for the user, then user access shall be equivalent to the YearDayScheduleUser UserType\n \u2022 If one or WeekDaySchedules are set AND one or more YearDaySchedules are set, then user access shall be granted if and only if the current time falls within at least one of the WeekDaySchedules AND the current time falls within at least one of the YearDaySchedules.",
2971
+ xref: { document: "cluster", section: "5.2.6.18.9" }
3029
2972
  }),
3030
2973
  Field({
3031
2974
  name: "RemoteOnlyUser",
@@ -3033,11 +2976,11 @@ const DoorLock = Cluster(
3033
2976
  conformance: "USR & COTA & PIN",
3034
2977
  description: "The user ID type is remote only",
3035
2978
  details: "This value shall indicate the user access and PIN code is restricted to remote lock/unlock commands only. This type of user might be useful for regular delivery services or voice assistant unlocking operations to prevent a PIN code credential created for them from being used at the keypad. The PIN code credential would only be provided over-the-air for the lock/unlock commands.",
3036
- xref: { document: "cluster", section: "5.2.6.19.10" }
2979
+ xref: { document: "cluster", section: "5.2.6.18.10" }
3037
2980
  })
3038
2981
  ),
3039
2982
  Datatype(
3040
- { name: "LockStateEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.20" } },
2983
+ { name: "LockStateEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.19" } },
3041
2984
  Field({ name: "NotFullyLocked", id: 0, conformance: "M", description: "Lock state is not fully locked" }),
3042
2985
  Field({ name: "Locked", id: 1, conformance: "M", description: "Lock state is fully locked" }),
3043
2986
  Field({ name: "Unlocked", id: 2, conformance: "M", description: "Lock state is fully unlocked" }),
@@ -3049,7 +2992,7 @@ const DoorLock = Cluster(
3049
2992
  })
3050
2993
  ),
3051
2994
  Datatype(
3052
- { name: "LockTypeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.21" } },
2995
+ { name: "LockTypeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.20" } },
3053
2996
  Field({ name: "DeadBolt", id: 0, conformance: "M", description: "Physical lock type is dead bolt" }),
3054
2997
  Field({ name: "Magnetic", id: 1, conformance: "M", description: "Physical lock type is magnetic" }),
3055
2998
  Field({ name: "Other", id: 2, conformance: "M", description: "Physical lock type is other" }),
@@ -3069,7 +3012,7 @@ const DoorLock = Cluster(
3069
3012
  Field({ name: "Eurocylinder", id: 11, conformance: "M", description: "Physical lock type is euro cylinder" })
3070
3013
  ),
3071
3014
  Datatype(
3072
- { name: "LEDSettingEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.22" } },
3015
+ { name: "LEDSettingEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.21" } },
3073
3016
  Field({ name: "NoLedSignal", id: 0, conformance: "M", description: "Never use LED for signalization" }),
3074
3017
  Field({
3075
3018
  name: "NoLedSignalAccessAllowed",
@@ -3080,91 +3023,24 @@ const DoorLock = Cluster(
3080
3023
  Field({ name: "LedSignalAll", id: 2, conformance: "M", description: "Use LED signalization for all events" })
3081
3024
  ),
3082
3025
  Datatype(
3083
- { name: "SoundVolumeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.23" } },
3026
+ { name: "SoundVolumeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.22" } },
3084
3027
  Field({ name: "Silent", id: 0, conformance: "M", description: "Silent Mode" }),
3085
3028
  Field({ name: "Low", id: 1, conformance: "M", description: "Low Volume" }),
3086
3029
  Field({ name: "High", id: 2, conformance: "M", description: "High Volume" }),
3087
3030
  Field({ name: "Medium", id: 3, conformance: "M", description: "Medium Volume" })
3088
3031
  ),
3089
3032
  Datatype(
3090
- { name: "EventTypeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.24" } },
3033
+ { name: "EventTypeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.23" } },
3091
3034
  Field({ name: "Operation", id: 0, conformance: "M", description: "Event type is operation" }),
3092
3035
  Field({ name: "Programming", id: 1, conformance: "M", description: "Event type is programming" }),
3093
3036
  Field({ name: "Alarm", id: 2, conformance: "M", description: "Event type is alarm" })
3094
3037
  ),
3095
- Datatype(
3096
- { name: "EventSourceEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.25" } },
3097
- Field({ name: "Keypad", id: 0, conformance: "M", description: "Event source is keypad" }),
3098
- Field({ name: "Remote", id: 1, conformance: "M", description: "Event source is remote" }),
3099
- Field({ name: "Manual", id: 2, conformance: "M", description: "Event source is manual" }),
3100
- Field({ name: "Rfid", id: 3, conformance: "M", description: "Event source is RFID" }),
3101
- Field({ name: "Indeterminate", id: 255, conformance: "M", description: "Event source is unknown" })
3102
- ),
3103
- Datatype(
3104
- { name: "OperationEventCodeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.25.1" } },
3105
- Field({ name: "UnknownOrMfgSpecific", id: 0, conformance: "O", description: "Event code is unknown" }),
3106
- Field({ name: "Lock", id: 1, conformance: "O", description: "Event code is lock" }),
3107
- Field({ name: "Unlock", id: 2, conformance: "O", description: "Event code is unlock" }),
3108
- Field({
3109
- name: "LockFailureInvalidPiNorRfid",
3110
- id: 3,
3111
- conformance: "O",
3112
- description: "Event code is lock failure due to invalid PIN or RFID"
3113
- }),
3114
- Field({
3115
- name: "LockFailureInvalidSchedule",
3116
- id: 4,
3117
- conformance: "O",
3118
- description: "Event code is lock failure due to invalid schedule"
3119
- }),
3120
- Field({
3121
- name: "UnlockFailureInvalidPiNorRfid",
3122
- id: 5,
3123
- conformance: "O",
3124
- description: "Event code is unlock failure due to invalid PIN or RFID"
3125
- }),
3126
- Field({
3127
- name: "UnlockFailureInvalidSchedule",
3128
- id: 6,
3129
- conformance: "O",
3130
- description: "Event code is unlock failure due to invalid schedule"
3131
- }),
3132
- Field({ name: "OneTouchLock", id: 7, conformance: "O", description: "Event code is one touch lock" }),
3133
- Field({ name: "KeyLock", id: 8, conformance: "O", description: "Event code is key lock" }),
3134
- Field({ name: "KeyUnlock", id: 9, conformance: "O", description: "Event code is key unlock" }),
3135
- Field({ name: "AutoLock", id: 10, conformance: "O", description: "Event code is auto lock" }),
3136
- Field({ name: "ScheduleLock", id: 11, conformance: "WDSCH | YDSCH", description: "Event code is schedule lock" }),
3137
- Field({ name: "ScheduleUnlock", id: 12, conformance: "WDSCH | YDSCH", description: "Event code is schedule unlock" }),
3138
- Field({ name: "ManualLock", id: 13, conformance: "O", description: "Event code is manual lock (Key or Thumbturn)" }),
3139
- Field({
3140
- name: "ManualUnlock",
3141
- id: 14,
3142
- conformance: "O",
3143
- description: "Event code is manual unlock (Key or Thumbturn)"
3144
- }),
3145
- Field({
3146
- name: "NonAccessUserOperationEvent",
3147
- id: 15,
3148
- conformance: "O",
3149
- description: "Event code is non access user operation"
3150
- })
3151
- ),
3152
- Datatype(
3153
- { name: "ProgrammingEventCodeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.25.2" } },
3154
- Field({ name: "UnknownOrMfgSpecific", id: 0, conformance: "O", description: "Event code is unknown" }),
3155
- Field({ name: "ProgrammingCodeChanged", id: 1, conformance: "O", description: "Event code is code changed" }),
3156
- Field({ name: "PinCodeAdded", id: 2, conformance: "O", description: "Event code is PIN added" }),
3157
- Field({ name: "PinCodeCleared", id: 3, conformance: "O", description: "Event code is PIN cleared" }),
3158
- Field({ name: "PinCodeChanged", id: 4, conformance: "O", description: "Event code is PIN changed" }),
3159
- Field({ name: "RfidCodeAdded", id: 5, conformance: "O", description: "Event code is RFID added" }),
3160
- Field({ name: "RfidCodeCleared", id: 6, conformance: "O", description: "Event code is RFID cleared" })
3161
- ),
3162
3038
  Datatype(
3163
3039
  {
3164
3040
  name: "CredentialStruct",
3165
3041
  type: "struct",
3166
3042
  details: "This struct shall indicate the credential types and their corresponding indices (if any) for the event or user record.",
3167
- xref: { document: "cluster", section: "5.2.6.26" }
3043
+ xref: { document: "cluster", section: "5.2.6.24" }
3168
3044
  },
3169
3045
  Field({
3170
3046
  name: "CredentialType",
@@ -3172,7 +3048,7 @@ const DoorLock = Cluster(
3172
3048
  type: "CredentialTypeEnum",
3173
3049
  conformance: "M",
3174
3050
  details: "This field shall indicate the credential field used to authorize the lock operation.",
3175
- xref: { document: "cluster", section: "5.2.6.26.1" }
3051
+ xref: { document: "cluster", section: "5.2.6.24.1" }
3176
3052
  }),
3177
3053
  Field({
3178
3054
  name: "CredentialIndex",
@@ -3181,13 +3057,13 @@ const DoorLock = Cluster(
3181
3057
  conformance: "M",
3182
3058
  default: 0,
3183
3059
  details: "This field shall indicate the index of the specific credential used to authorize the lock operation in the list of credentials identified by CredentialType (e.g. PIN, RFID, etc.). This field shall be set to 0 if CredentialType is ProgrammingPIN or does not correspond to a list that can be indexed into.",
3184
- xref: { document: "cluster", section: "5.2.6.26.2" }
3060
+ xref: { document: "cluster", section: "5.2.6.24.2" }
3185
3061
  })
3186
3062
  ),
3187
3063
  Datatype(
3188
3064
  { name: "StatusCodeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.7.1" } },
3189
- Field({ name: "Duplicate", id: 2, description: "Entry would cause a duplicate credential/ID." }),
3190
- Field({ name: "Occupied", id: 3, description: "Entry would replace an occupied slot." })
3065
+ Field({ name: "Duplicate", id: 2, conformance: "M", description: "Entry would cause a duplicate credential/ID." }),
3066
+ Field({ name: "Occupied", id: 3, conformance: "M", description: "Entry would replace an occupied slot." })
3191
3067
  )
3192
3068
  );
3193
3069
  MatterDefinition.children.push(DoorLock);