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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -21,11 +21,13 @@ export const DoorLock = Cluster(
21
21
  name: "DoorLock", id: 0x101, classification: "application", pics: "DRLK",
22
22
  details: "The door lock cluster provides an interface to a generic way to secure a door. The physical object " +
23
23
  "that provides the locking functionality is abstracted from the cluster. The cluster has a small " +
24
- "list of mandatory attributes and functions and a list of optional features.",
24
+ "list of mandatory attributes and functions and a list of optional features." +
25
+ "\n" +
26
+ "Figure 16. Typical Usage of the Door Lock Cluster",
25
27
  xref: { document: "cluster", section: "5.2" }
26
28
  },
27
29
 
28
- Attribute({ name: "ClusterRevision", id: 0xfffd, type: "ClusterRevision", default: 7 }),
30
+ Attribute({ name: "ClusterRevision", id: 0xfffd, type: "ClusterRevision", default: 8 }),
29
31
 
30
32
  Attribute(
31
33
  { name: "FeatureMap", id: 0xfffc, type: "FeatureMap", xref: { document: "cluster", section: "5.2.4" } },
@@ -51,9 +53,7 @@ export const DoorLock = Cluster(
51
53
  "\n" +
52
54
  "A lock may support multiple credential types so if the User feature is supported the UserType, " +
53
55
  "UserStatus and Schedules are all associated with a User index and not directly with a RFID index. A " +
54
- "User" +
55
- "\n" +
56
- "Index may have several credentials associated with it.",
56
+ "User Index may have several credentials associated with it.",
57
57
 
58
58
  xref: { document: "cluster", section: "5.2.4.2" }
59
59
  }),
@@ -73,31 +73,27 @@ export const DoorLock = Cluster(
73
73
  xref: { document: "cluster", section: "5.2.4.3" }
74
74
  }),
75
75
 
76
- Field({
77
- name: "LOG", conformance: "O", constraint: "3", description: "Logging",
78
- details: "If Events are not supported the logging feature shall replace the Event reporting structure. If " +
79
- "Events are supported the logging feature shall NOT be supported.",
80
- xref: { document: "cluster", section: "5.2.4.4" }
81
- }),
82
-
83
76
  Field({
84
77
  name: "WDSCH", conformance: "O", constraint: "4", description: "WeekDayAccessSchedules",
85
78
 
86
79
  details: "If the User feature is supported then Week Day Schedules are applied to a User and not a credential." +
87
80
  "\n" +
88
81
  "Week Day Schedules are used to restrict access to a specified time window on certain days of the " +
89
- "week. The schedule is repeated each week. When a schedule is cleared this clears the access " +
90
- "restrictions and grants unrestricted access to the user. The lock may automatically adjust the " +
91
- "UserType when a schedule is created or cleared.",
82
+ "week. The schedule is repeated each week." +
83
+ "\n" +
84
+ "The lock may automatically adjust the UserType when a schedule is created or cleared." +
85
+ "\n" +
86
+ "Support for WeekDayAccessSchedules requires that the lock has the capability of keeping track of " +
87
+ "local time.",
92
88
 
93
- xref: { document: "cluster", section: "5.2.4.5" }
89
+ xref: { document: "cluster", section: "5.2.4.4" }
94
90
  }),
95
91
 
96
92
  Field({
97
93
  name: "DPS", conformance: "O", constraint: "5", description: "DoorPositionSensor",
98
94
  details: "If this feature is supported this indicates that the lock has the ability to determine the position " +
99
95
  "of the door which is separate from the state of the lock.",
100
- xref: { document: "cluster", section: "5.2.4.6" }
96
+ xref: { document: "cluster", section: "5.2.4.5" }
101
97
  }),
102
98
 
103
99
  Field({
@@ -112,48 +108,49 @@ export const DoorLock = Cluster(
112
108
  "A lock may support multiple credential types so if the User feature is supported the UserType, " +
113
109
  "UserStatus and Schedules are all associated with a User and not directly with a credential.",
114
110
 
115
- xref: { document: "cluster", section: "5.2.4.7" }
111
+ xref: { document: "cluster", section: "5.2.4.6" }
116
112
  }),
117
113
 
118
114
  Field({
119
115
  name: "COTA", conformance: "O", constraint: "7", description: "CredentialOverTheAirAccess",
120
- details: "If this feature is supported then the lock supports the ability to verify a credential provided in " +
121
- "a lock/unlock command. Currently the cluster only supports providing the PIN credential to the " +
116
+ details: "If this feature is supported then the lock supports the ability to verify a credential provided in a" +
117
+ "\n" +
118
+ "lock/unlock command. Currently the cluster only supports providing the PIN credential to the " +
122
119
  "lock/unlock commands. If this feature is supported then the PIN Credential feature shall also be " +
123
120
  "supported.",
124
- xref: { document: "cluster", section: "5.2.4.8" }
121
+ xref: { document: "cluster", section: "5.2.4.7" }
125
122
  }),
126
123
 
127
124
  Field({
128
- name: "USR", conformance: "[PIN | RID | FGP | FACE]", constraint: "8", description: "User",
125
+ name: "USR", conformance: "ALIRO, [PIN | RID | FGP | FACE]", constraint: "8", description: "User",
129
126
  details: "If the User Feature is supported then a lock employs a User database. A User within the User " +
130
127
  "database is used to associate credentials and schedules to single user record within the lock. This " +
131
128
  "also means the UserType and UserStatus fields are associated with a User and not a credential.",
132
- xref: { document: "cluster", section: "5.2.4.9" }
133
- }),
134
-
135
- Field({
136
- name: "NOT", conformance: "O", constraint: "9", description: "Notification",
137
- details: "This is a feature used before support of events. This feature supports notification commands and " +
138
- "masks used to filter these notifications.",
139
- xref: { document: "cluster", section: "5.2.4.10" }
129
+ xref: { document: "cluster", section: "5.2.4.8" }
140
130
  }),
141
131
 
142
132
  Field({
143
133
  name: "YDSCH", conformance: "O", constraint: "10", description: "YearDayAccessSchedules",
144
- details: "If the User feature is supported then Year Day Schedules are applied to a User and not a credential." +
134
+
135
+ details: "If the User feature is supported then Year Day Schedules are applied to a User and not a " +
136
+ "credential. Year Day Schedules are used to restrict access to a specified date and time window." +
145
137
  "\n" +
146
- "Year Day Schedules are used to restrict access to a specified date and time window. When a schedule " +
147
- "is cleared this clears the access restrictions and grants unrestricted access to the user. The lock " +
148
- "may automatically adjust the UserType when a schedule is created or cleared.",
149
- xref: { document: "cluster", section: "5.2.4.11" }
138
+ "The lock may automatically adjust the UserType when a schedule is created or cleared." +
139
+ "\n" +
140
+ "Support for YearDayAccessSchedules requires that the lock has the capability of keeping track of " +
141
+ "local time.",
142
+
143
+ xref: { document: "cluster", section: "5.2.4.9" }
150
144
  }),
151
145
 
152
146
  Field({
153
147
  name: "HDSCH", conformance: "O", constraint: "11", description: "HolidaySchedules",
154
148
  details: "This feature is used to setup Holiday Schedule in the lock device. A Holiday Schedule sets a start " +
155
- "and stop end date/time for the lock to use the specified operating mode set by the Holiday Schedule.",
156
- xref: { document: "cluster", section: "5.2.4.12" }
149
+ "and stop end date/time for the lock to use the specified operating mode set by the Holiday Schedule." +
150
+ "\n" +
151
+ "Support for HolidaySchedules requires that the lock has the capability of keeping track of local " +
152
+ "time.",
153
+ xref: { document: "cluster", section: "5.2.4.10" }
157
154
  }),
158
155
 
159
156
  Field({
@@ -163,13 +160,27 @@ export const DoorLock = Cluster(
163
160
  "by retracting the bolt and briefly pulling the latch. While the latch is pulled, the lock state " +
164
161
  "changes to Unlatched. Locks without unbolting support don’t differentiate between unbolting and " +
165
162
  "unlocking and perform the same operation for both commands.",
163
+ xref: { document: "cluster", section: "5.2.4.11" }
164
+ }),
165
+
166
+ Field({
167
+ name: "ALIRO", conformance: "O", constraint: "13", description: "AliroProvisioning",
168
+ details: "Locks that support this feature implement the Aliro specification as defined in [Aliro] and support " +
169
+ "Matter as a method for provisioning Aliro credentials.",
170
+ xref: { document: "cluster", section: "5.2.4.12" }
171
+ }),
172
+
173
+ Field({
174
+ name: "ALBU", conformance: "[ALIRO]", constraint: "14", description: "AliroBleuwb",
175
+ details: "Locks that support this feature implement the Bluetooth LE + UWB Access Control Flow as defined in " +
176
+ "[Aliro].",
166
177
  xref: { document: "cluster", section: "5.2.4.13" }
167
178
  })
168
179
  ),
169
180
 
170
181
  Attribute({
171
182
  name: "LockState", id: 0x0, type: "LockStateEnum", access: "R V", conformance: "M",
172
- constraint: "desc", quality: "X S P",
183
+ constraint: "desc", quality: "X P",
173
184
 
174
185
  details: "This attribute may be NULL if the lock hardware does not currently know the status of the locking " +
175
186
  "mechanism. For example, a lock may not know the LockState status after a power cycle until the " +
@@ -179,21 +190,21 @@ export const DoorLock = Cluster(
179
190
  "between Locked and Unlocked so it is only partially secured. For example, a deadbolt could be " +
180
191
  "partially extended and not in a dead latched state.",
181
192
 
182
- xref: { document: "cluster", section: "5.2.9.2" }
193
+ xref: { document: "cluster", section: "5.2.9.1" }
183
194
  }),
184
195
 
185
196
  Attribute({
186
197
  name: "LockType", id: 0x1, type: "LockTypeEnum", access: "R V", conformance: "M",
187
198
  constraint: "desc",
188
199
  details: "Indicates the type of door lock as defined in LockTypeEnum.",
189
- xref: { document: "cluster", section: "5.2.9.3" }
200
+ xref: { document: "cluster", section: "5.2.9.2" }
190
201
  }),
191
202
 
192
203
  Attribute({
193
204
  name: "ActuatorEnabled", id: 0x2, type: "bool", access: "R V", conformance: "M",
194
205
  details: "Indicates if the lock is currently able to (Enabled) or not able to (Disabled) process remote Lock, " +
195
206
  "Unlock, or Unlock with Timeout commands.",
196
- xref: { document: "cluster", section: "5.2.9.4" }
207
+ xref: { document: "cluster", section: "5.2.9.3" }
197
208
  }),
198
209
 
199
210
  Attribute({
@@ -202,88 +213,81 @@ export const DoorLock = Cluster(
202
213
  details: "Indicates the current door state as defined in DoorStateEnum." +
203
214
  "\n" +
204
215
  "Null only if an internal error prevents the retrieval of the current door state.",
205
- xref: { document: "cluster", section: "5.2.9.5" }
216
+ xref: { document: "cluster", section: "5.2.9.4" }
206
217
  }),
207
218
 
208
219
  Attribute({
209
220
  name: "DoorOpenEvents", id: 0x4, type: "uint32", access: "RW VM", conformance: "[DPS]",
210
221
  details: "This attribute shall hold the number of door open events that have occurred since it was last " +
211
222
  "zeroed.",
212
- xref: { document: "cluster", section: "5.2.9.6" }
223
+ xref: { document: "cluster", section: "5.2.9.5" }
213
224
  }),
214
225
 
215
226
  Attribute({
216
227
  name: "DoorClosedEvents", id: 0x5, type: "uint32", access: "RW VM", conformance: "[DPS]",
217
228
  details: "This attribute shall hold the number of door closed events that have occurred since it was last " +
218
229
  "zeroed.",
219
- xref: { document: "cluster", section: "5.2.9.7" }
230
+ xref: { document: "cluster", section: "5.2.9.6" }
220
231
  }),
221
232
 
222
233
  Attribute({
223
234
  name: "OpenPeriod", id: 0x6, type: "uint16", access: "RW VM", conformance: "[DPS]",
224
235
  details: "This attribute shall hold the number of minutes the door has been open since the last time it " +
225
236
  "transitioned from closed to open.",
226
- xref: { document: "cluster", section: "5.2.9.8" }
227
- }),
228
-
229
- Attribute({
230
- name: "NumberOfLogRecordsSupported", id: 0x10, type: "uint16", access: "R V", conformance: "LOG",
231
- default: 0, quality: "F",
232
- details: "Indicates the number of available log records.",
233
- xref: { document: "cluster", section: "5.2.9.9" }
237
+ xref: { document: "cluster", section: "5.2.9.7" }
234
238
  }),
235
239
 
236
240
  Attribute({
237
241
  name: "NumberOfTotalUsersSupported", id: 0x11, type: "uint16", access: "R V", conformance: "USR",
238
242
  default: 0, quality: "F",
239
243
  details: "Indicates the number of total users supported by the lock.",
240
- xref: { document: "cluster", section: "5.2.9.10" }
244
+ xref: { document: "cluster", section: "5.2.9.8" }
241
245
  }),
242
246
 
243
247
  Attribute({
244
248
  name: "NumberOfPinUsersSupported", id: 0x12, type: "uint16", access: "R V", conformance: "PIN",
245
249
  default: 0, quality: "F",
246
250
  details: "Indicates the number of PIN users supported.",
247
- xref: { document: "cluster", section: "5.2.9.11" }
251
+ xref: { document: "cluster", section: "5.2.9.9" }
248
252
  }),
249
253
 
250
254
  Attribute({
251
255
  name: "NumberOfRfidUsersSupported", id: 0x13, type: "uint16", access: "R V", conformance: "RID",
252
256
  default: 0, quality: "F",
253
257
  details: "Indicates the number of RFID users supported.",
254
- xref: { document: "cluster", section: "5.2.9.12" }
258
+ xref: { document: "cluster", section: "5.2.9.10" }
255
259
  }),
256
260
 
257
261
  Attribute({
258
262
  name: "NumberOfWeekDaySchedulesSupportedPerUser", id: 0x14, type: "uint8", access: "R V",
259
- conformance: "WDSCH", default: 0, quality: "F",
263
+ conformance: "WDSCH", constraint: "max 253", default: 0, quality: "F",
260
264
  details: "Indicates the number of configurable week day schedule supported per user.",
261
- xref: { document: "cluster", section: "5.2.9.13" }
265
+ xref: { document: "cluster", section: "5.2.9.11" }
262
266
  }),
263
267
 
264
268
  Attribute({
265
269
  name: "NumberOfYearDaySchedulesSupportedPerUser", id: 0x15, type: "uint8", access: "R V",
266
- conformance: "YDSCH", default: 0, quality: "F",
270
+ conformance: "YDSCH", constraint: "max 253", default: 0, quality: "F",
267
271
  details: "Indicates the number of configurable year day schedule supported per user.",
268
- xref: { document: "cluster", section: "5.2.9.14" }
272
+ xref: { document: "cluster", section: "5.2.9.12" }
269
273
  }),
270
274
 
271
275
  Attribute({
272
276
  name: "NumberOfHolidaySchedulesSupported", id: 0x16, type: "uint8", access: "R V",
273
- conformance: "HDSCH", default: 0, quality: "F",
277
+ conformance: "HDSCH", constraint: "max 253", default: 0, quality: "F",
274
278
  details: "Indicates the number of holiday schedules supported for the entire door lock device.",
275
- xref: { document: "cluster", section: "5.2.9.15" }
279
+ xref: { document: "cluster", section: "5.2.9.13" }
276
280
  }),
277
281
 
278
282
  Attribute({
279
283
  name: "MaxPinCodeLength", id: 0x17, type: "uint8", access: "R V", conformance: "PIN", quality: "F",
280
284
  details: "Indicates the maximum length in bytes of a PIN Code on this device.",
281
- xref: { document: "cluster", section: "5.2.9.16" }
285
+ xref: { document: "cluster", section: "5.2.9.14" }
282
286
  }),
283
287
  Attribute({
284
288
  name: "MinPinCodeLength", id: 0x18, type: "uint8", access: "R V", conformance: "PIN", quality: "F",
285
289
  details: "Indicates the minimum length in bytes of a PIN Code on this device.",
286
- xref: { document: "cluster", section: "5.2.9.17" }
290
+ xref: { document: "cluster", section: "5.2.9.15" }
287
291
  }),
288
292
 
289
293
  Attribute({
@@ -291,7 +295,7 @@ export const DoorLock = Cluster(
291
295
  details: "Indicates the maximum length in bytes of a RFID Code on this device. The value depends on the RFID " +
292
296
  "code range specified by the manufacturer, if media anti-collision identifiers (UID) are used as " +
293
297
  "RFID code, a value of 20 (equals 10 Byte ISO 14443A UID) is recommended.",
294
- xref: { document: "cluster", section: "5.2.9.18" }
298
+ xref: { document: "cluster", section: "5.2.9.16" }
295
299
  }),
296
300
 
297
301
  Attribute({
@@ -299,7 +303,7 @@ export const DoorLock = Cluster(
299
303
  details: "Indicates the minimum length in bytes of a RFID Code on this device. The value depends on the RFID " +
300
304
  "code range specified by the manufacturer, if media anti-collision identifiers (UID) are used as " +
301
305
  "RFID code, a value of 8 (equals 4 Byte ISO 14443A UID) is recommended.",
302
- xref: { document: "cluster", section: "5.2.9.19" }
306
+ xref: { document: "cluster", section: "5.2.9.17" }
303
307
  }),
304
308
 
305
309
  Attribute({
@@ -307,7 +311,7 @@ export const DoorLock = Cluster(
307
311
  conformance: "USR", default: 1, quality: "F",
308
312
  details: "This attribute shall contain a bitmap with the bits set for the values of CredentialRuleEnum " +
309
313
  "supported on this device.",
310
- xref: { document: "cluster", section: "5.2.9.20" }
314
+ xref: { document: "cluster", section: "5.2.9.18" }
311
315
  }),
312
316
 
313
317
  Attribute({
@@ -324,21 +328,7 @@ export const DoorLock = Cluster(
324
328
  "NumberOfRFIDUsersSupported is set to 3, it will not be possible to actually assign 10 credentials " +
325
329
  "for a user because maximum number of credentials in the database is 8.",
326
330
 
327
- xref: { document: "cluster", section: "5.2.9.21" }
328
- }),
329
-
330
- Attribute({
331
- name: "EnableLogging", id: 0x20, type: "bool", access: "R[W] VA", conformance: "LOG", default: true,
332
- quality: "P",
333
-
334
- details: "This attribute shall enable/disable event logging." +
335
- "\n" +
336
- "When event logging is enabled, all event messages are stored on the lock for retrieval. Logging " +
337
- "events can be, but are not limited to, Tamper Alarm, Lock, Unlock, AutoRelock, User Code Added, " +
338
- "User Code Cleared, Schedule Added, and Schedule Cleared. For a full detail of all the possible " +
339
- "alarms and events, please refer to the full list in the Alarm and Event Masks Attribute Set.",
340
-
341
- xref: { document: "cluster", section: "5.2.9.22" }
331
+ xref: { document: "cluster", section: "5.2.9.19" }
342
332
  }),
343
333
 
344
334
  Attribute({
@@ -346,14 +336,14 @@ export const DoorLock = Cluster(
346
336
  constraint: "max 3", quality: "P",
347
337
  details: "Indicates the language for the on-screen or audible user interface using a 2- byte language code " +
348
338
  "from ISO-639-1.",
349
- xref: { document: "cluster", section: "5.2.9.23" }
339
+ xref: { document: "cluster", section: "5.2.9.20" }
350
340
  }),
351
341
 
352
342
  Attribute({
353
343
  name: "LedSettings", id: 0x22, type: "LEDSettingEnum", access: "R[W] VM", conformance: "O",
354
344
  default: 0, quality: "P",
355
345
  details: "Indicates the settings for the LED support, as defined by LEDSettingEnum.",
356
- xref: { document: "cluster", section: "5.2.9.24" }
346
+ xref: { document: "cluster", section: "5.2.9.21" }
357
347
  }),
358
348
 
359
349
  Attribute({
@@ -361,21 +351,21 @@ export const DoorLock = Cluster(
361
351
  details: "Indicates the number of seconds to wait after unlocking a lock before it automatically locks again. " +
362
352
  "0=disabled. If set, unlock operations from any source will be timed. For one time unlock with " +
363
353
  "timeout use the specific command.",
364
- xref: { document: "cluster", section: "5.2.9.25" }
354
+ xref: { document: "cluster", section: "5.2.9.22" }
365
355
  }),
366
356
 
367
357
  Attribute({
368
358
  name: "SoundVolume", id: 0x24, type: "SoundVolumeEnum", access: "R[W] VM", conformance: "O",
369
359
  default: 0, quality: "P",
370
360
  details: "Indicates the sound volume on a door lock as defined by SoundVolumeEnum.",
371
- xref: { document: "cluster", section: "5.2.9.26" }
361
+ xref: { document: "cluster", section: "5.2.9.23" }
372
362
  }),
373
363
 
374
364
  Attribute({
375
365
  name: "OperatingMode", id: 0x25, type: "OperatingModeEnum", access: "R[W] VM", conformance: "M",
376
366
  constraint: "desc", default: 0, quality: "P",
377
367
  details: "Indicates the current operating mode of the lock as defined in OperatingModeEnum.",
378
- xref: { document: "cluster", section: "5.2.9.27" }
368
+ xref: { document: "cluster", section: "5.2.9.24" }
379
369
  }),
380
370
 
381
371
  Attribute({
@@ -384,7 +374,7 @@ export const DoorLock = Cluster(
384
374
  details: "This attribute shall contain a bitmap with all operating bits of the OperatingMode attribute " +
385
375
  "supported by the lock. All operating modes NOT supported by a lock shall be set to one. The value " +
386
376
  "of the OperatingMode enumeration defines the related bit to be set.",
387
- xref: { document: "cluster", section: "5.2.9.28" }
377
+ xref: { document: "cluster", section: "5.2.9.25" }
388
378
  }),
389
379
 
390
380
  Attribute({
@@ -392,8 +382,10 @@ export const DoorLock = Cluster(
392
382
  conformance: "O", default: 0, quality: "P",
393
383
 
394
384
  details: "Indicates the default configurations as they are physically set on the device (example: hardware " +
395
- "dip switch setting, etc…) and represents the default setting for some of the attributes within this " +
396
- "cluster (for example: LED, Auto Lock, Sound Volume, and Operating Mode attributes)." +
385
+ "dip switch setting, etc…) and represents the default setting for some of the" +
386
+ "\n" +
387
+ "attributes within this cluster (for example: LED, Auto Lock, Sound Volume, and Operating Mode " +
388
+ "attributes)." +
397
389
  "\n" +
398
390
  "This is a read-only attribute and is intended to allow clients to determine what changes may need " +
399
391
  "to be made without having to query all the included attributes. It may be beneficial for the " +
@@ -407,7 +399,7 @@ export const DoorLock = Cluster(
407
399
  "the current Sound Volume is High Volume. Therefore, if the client wants to query/modify the current " +
408
400
  "Sound Volume setting on the server, the client SHOULD read/write to the Sound Volume attribute.",
409
401
 
410
- xref: { document: "cluster", section: "5.2.9.29" }
402
+ xref: { document: "cluster", section: "5.2.9.26" }
411
403
  }),
412
404
 
413
405
  Attribute({
@@ -418,7 +410,7 @@ export const DoorLock = Cluster(
418
410
  "on the door lock for all features. If it is set to FALSE then local programming is disabled on the " +
419
411
  "door lock for those features whose bit is set to 0 in the LocalProgrammingFeatures attribute. Local " +
420
412
  "programming shall be enabled by default.",
421
- xref: { document: "cluster", section: "5.2.9.30" }
413
+ xref: { document: "cluster", section: "5.2.9.27" }
422
414
  }),
423
415
 
424
416
  Attribute({
@@ -426,7 +418,7 @@ export const DoorLock = Cluster(
426
418
  default: true, quality: "P",
427
419
  details: "This attribute shall enable/disable the ability to lock the door lock with a single touch on the " +
428
420
  "door lock.",
429
- xref: { document: "cluster", section: "5.2.9.31" }
421
+ xref: { document: "cluster", section: "5.2.9.28" }
430
422
  }),
431
423
 
432
424
  Attribute({
@@ -434,7 +426,7 @@ export const DoorLock = Cluster(
434
426
  default: true, quality: "P",
435
427
  details: "This attribute shall enable/disable an inside LED that allows the user to see at a glance if the " +
436
428
  "door is locked.",
437
- xref: { document: "cluster", section: "5.2.9.32" }
429
+ xref: { document: "cluster", section: "5.2.9.29" }
438
430
  }),
439
431
 
440
432
  Attribute({
@@ -442,7 +434,7 @@ export const DoorLock = Cluster(
442
434
  default: true, quality: "P",
443
435
  details: "This attribute shall enable/disable a button inside the door that is used to put the lock into " +
444
436
  "privacy mode. When the lock is in privacy mode it cannot be manipulated from the outside.",
445
- xref: { document: "cluster", section: "5.2.9.33" }
437
+ xref: { document: "cluster", section: "5.2.9.30" }
446
438
  }),
447
439
 
448
440
  Attribute({
@@ -458,7 +450,7 @@ export const DoorLock = Cluster(
458
450
  "The features that can be disabled from local programming are defined in " +
459
451
  "LocalProgrammingFeaturesBitmap.",
460
452
 
461
- xref: { document: "cluster", section: "5.2.9.34" }
453
+ xref: { document: "cluster", section: "5.2.9.31" }
462
454
  }),
463
455
 
464
456
  Attribute({
@@ -476,7 +468,7 @@ export const DoorLock = Cluster(
476
468
  "internal logic, environmental events, or other reasons. The lock shall reset the counter if a valid " +
477
469
  "credential is presented.",
478
470
 
479
- xref: { document: "cluster", section: "5.2.9.35" }
471
+ xref: { document: "cluster", section: "5.2.9.32" }
480
472
  }),
481
473
 
482
474
  Attribute({
@@ -486,7 +478,7 @@ export const DoorLock = Cluster(
486
478
  "1-255 seconds. Device can shut down to lock user out for specified amount of time. (Makes it " +
487
479
  "difficult to try and guess a PIN for the device.) If the attribute accepts writes and an attempt to " +
488
480
  "write the attribute to 0 is made, the device shall respond with CONSTRAINT_ERROR.",
489
- xref: { document: "cluster", section: "5.2.9.36" }
481
+ xref: { document: "cluster", section: "5.2.9.33" }
490
482
  }),
491
483
 
492
484
  Attribute({
@@ -498,12 +490,13 @@ export const DoorLock = Cluster(
498
490
  "server’s TX operation. If it is false, then it is not ok for the device to send PIN in any messages " +
499
491
  "over the air." +
500
492
  "\n" +
501
- "The PIN field within any door lock cluster message shall keep the first octet unchanged and masks " +
502
- "the actual code by replacing with 0xFF. For example (PIN \"1234\" ): If the attribute value is True, " +
503
- "0x04 0x31 0x32 0x33 0x34 shall be used in the PIN field in any door lock cluster message payload. " +
504
- "If the attribute value is False, 0x04 0xFF 0xFF 0xFF 0xFF shall be used.",
493
+ "The PIN field within any door lock cluster message shall keep the first octet unchanged and" +
494
+ "\n" +
495
+ "masks the actual code by replacing with 0xFF. For example (PIN \"1234\" ): If the attribute value is " +
496
+ "True, 0x04 0x31 0x32 0x33 0x34 shall be used in the PIN field in any door lock cluster message " +
497
+ "payload. If the attribute value is False, 0x04 0xFF 0xFF 0xFF 0xFF shall be used.",
505
498
 
506
- xref: { document: "cluster", section: "5.2.9.37" }
499
+ xref: { document: "cluster", section: "5.2.9.34" }
507
500
  }),
508
501
 
509
502
  Attribute({
@@ -512,11 +505,11 @@ export const DoorLock = Cluster(
512
505
  details: "Indicates if the door lock requires an optional PIN. If this attribute is set to True, the door " +
513
506
  "lock server requires that an optional PINs be included in the payload of remote lock operation " +
514
507
  "events like Lock, Unlock, Unlock with Timeout and Toggle in order to function.",
515
- xref: { document: "cluster", section: "5.2.9.38" }
508
+ xref: { document: "cluster", section: "5.2.9.35" }
516
509
  }),
517
510
 
518
511
  Attribute({
519
- name: "SecurityLevel", id: 0x34, conformance: "D", default: "0",
512
+ name: "SecurityLevel", id: 0x34, access: "R V", conformance: "D", default: "0",
520
513
  xref: { document: "cluster", section: "5.2.9" }
521
514
  }),
522
515
 
@@ -527,7 +520,7 @@ export const DoorLock = Cluster(
527
520
  "user of type ExpiringUser shall remain valid after its first use before expiring. When the " +
528
521
  "credential expires the UserStatus for the corresponding user record shall be set to " +
529
522
  "OccupiedDisabled.",
530
- xref: { document: "cluster", section: "5.2.9.39" }
523
+ xref: { document: "cluster", section: "5.2.9.36" }
531
524
  }),
532
525
 
533
526
  Attribute({
@@ -541,109 +534,100 @@ export const DoorLock = Cluster(
541
534
  "\n" +
542
535
  "This mask DOES NOT apply to the Events mechanism of this cluster.",
543
536
 
544
- xref: { document: "cluster", section: "5.2.9.40" }
545
- }),
546
-
547
- Attribute({
548
- name: "KeypadOperationEventMask", id: 0x41, type: "EventMaskBitmap", access: "RW VA",
549
- conformance: "[NOT & PIN]", default: 65535, quality: "P",
550
- details: "Event mask used to turn on and off the transmission of keypad operation events. This mask DOES NOT " +
551
- "apply to the storing of events in the event log. This mask only applies to the Operation Event " +
552
- "Notification Command." +
553
- "\n" +
554
- "This mask DOES NOT apply to the Events mechanism of this cluster.",
555
- xref: { document: "cluster", section: "5.2.9.41" }
537
+ xref: { document: "cluster", section: "5.2.9.37" }
556
538
  }),
557
539
 
558
540
  Attribute({
559
- name: "RemoteOperationEventMask", id: 0x42, type: "EventMaskBitmap", access: "RW VA",
560
- conformance: "[NOT]", default: 65535, quality: "P",
561
- details: "Event mask used to turn on and off the transmission of remote operation events. This mask DOES NOT " +
562
- "apply to the storing of events in the event log. This mask only applies to the Operation Event " +
563
- "Notification Command." +
541
+ name: "AliroReaderVerificationKey", id: 0x80, type: "octstr", access: "R A", conformance: "ALIRO",
542
+ constraint: "65", default: null, quality: "X",
543
+ details: "Indicates the verification key component of the Reader’s key pair as defined in [Aliro]. The value, " +
544
+ "if not null, shall be an uncompressed elliptic curve public key as defined in section 2.3.3 of SEC " +
545
+ "1." +
564
546
  "\n" +
565
- "This mask DOES NOT apply to the Events mechanism of this cluster.",
566
- xref: { document: "cluster", section: "5.2.9.42" }
547
+ "Null if no Reader key pair has been configured on the lock. See SetAliroReaderConfig.",
548
+ xref: { document: "cluster", section: "5.2.9.38" }
567
549
  }),
568
550
 
569
551
  Attribute({
570
- name: "ManualOperationEventMask", id: 0x43, type: "EventMaskBitmap", access: "RW VA",
571
- conformance: "[NOT]", default: 65535, quality: "P",
572
- details: "Event mask used to turn on and off manual operation events. This mask DOES NOT apply to the storing " +
573
- "of events in the event log. This mask only applies to the Operation Event Notification Command." +
552
+ name: "AliroReaderGroupIdentifier", id: 0x81, type: "octstr", access: "R A", conformance: "ALIRO",
553
+ constraint: "16", default: null, quality: "X",
554
+ details: "Indicates the reader_group_identifier as defined in [Aliro]." +
574
555
  "\n" +
575
- "This mask DOES NOT apply to the Events mechanism of this cluster.",
576
- xref: { document: "cluster", section: "5.2.9.43" }
556
+ "Null if no reader_group_identifier has been configured on the lock. See SetAliroReaderConfig.",
557
+ xref: { document: "cluster", section: "5.2.9.39" }
577
558
  }),
578
559
 
579
560
  Attribute({
580
- name: "RfidOperationEventMask", id: 0x44, type: "EventMaskBitmap", access: "RW VA",
581
- conformance: "[NOT & RID]", default: 65535, quality: "P",
582
- details: "Event mask used to turn on and off RFID operation events. This mask DOES NOT apply to the storing " +
583
- "of events in the event log. This mask only applies to the Operation Event Notification Command." +
584
- "\n" +
585
- "This mask DOES NOT apply to the Events mechanism of this cluster.",
586
- xref: { document: "cluster", section: "5.2.9.44" }
561
+ name: "AliroReaderGroupSubIdentifier", id: 0x82, type: "octstr", access: "R A",
562
+ conformance: "ALIRO", constraint: "16", quality: "F",
563
+ details: "Indicates the reader_group_sub_identifier as defined in [Aliro].",
564
+ xref: { document: "cluster", section: "5.2.9.40" }
587
565
  }),
588
566
 
589
567
  Attribute(
590
568
  {
591
- name: "KeypadProgrammingEventMask", id: 0x45, type: "EventMaskBitmap", access: "RW VA",
592
- conformance: "[NOT & PIN]", default: 65535, quality: "P",
593
- details: "Event mask used to turn on and off keypad programming events. This mask DOES NOT apply to the " +
594
- "storing of events in the event log. This mask only applies to the Programming Event Notification " +
595
- "Command." +
596
- "\n" +
597
- "This mask DOES NOT apply to the Events mechanism of this cluster.",
598
- xref: { document: "cluster", section: "5.2.9.45" }
569
+ name: "AliroExpeditedTransactionSupportedProtocolVersions", id: 0x83, type: "list", access: "R A",
570
+ conformance: "ALIRO", constraint: "max 16[2]", default: [], quality: "F",
571
+ details: "Indicates the list of protocol versions supported for expedited transactions as defined in [Aliro].",
572
+ xref: { document: "cluster", section: "5.2.9.41" }
599
573
  },
600
574
 
601
- Field({ name: "Unknown", constraint: "0" }),
602
- Field({ name: "PinCodeChanged", constraint: "1" }),
603
- Field({ name: "PinAdded", constraint: "2" }),
604
- Field({ name: "PinCleared", constraint: "3" }),
605
- Field({ name: "PinChanged", constraint: "4" })
575
+ Field({ name: "entry", type: "octstr" })
606
576
  ),
607
577
 
578
+ Attribute({
579
+ name: "AliroGroupResolvingKey", id: 0x84, type: "octstr", access: "R A", conformance: "ALBU",
580
+ constraint: "16", default: null, quality: "X",
581
+ details: "Indicates the Group Resolving Key as defined in [Aliro]." +
582
+ "\n" +
583
+ "Null if no group resolving key has been configured on the lock. See SetAliroReaderConfig.",
584
+ xref: { document: "cluster", section: "5.2.9.42" }
585
+ }),
586
+
608
587
  Attribute(
609
588
  {
610
- name: "RemoteProgrammingEventMask", id: 0x46, type: "EventMaskBitmap", access: "RW VA",
611
- conformance: "[NOT]", default: 65535, quality: "P",
612
- details: "Event mask used to turn on and off remote programming events. This mask DOES NOT apply to the " +
613
- "storing of events in the event log. This mask only applies to the Programming Event Notification " +
614
- "Command." +
615
- "\n" +
616
- "This mask DOES NOT apply to the Events mechanism of this cluster.",
617
- xref: { document: "cluster", section: "5.2.9.46" }
589
+ name: "AliroSupportedBleuwbProtocolVersions", id: 0x85, type: "list", access: "R A",
590
+ conformance: "ALBU", constraint: "max 16[2]", default: [], quality: "F",
591
+ details: "Indicates the list of protocol versions supported for the Bluetooth LE + UWB Access Control Flow as " +
592
+ "defined in [Aliro].",
593
+ xref: { document: "cluster", section: "5.2.9.43" }
618
594
  },
619
595
 
620
- Field({ name: "Unknown", constraint: "0" }),
621
- Field({ name: "PinAdded", constraint: "2" }),
622
- Field({ name: "PinCleared", constraint: "3" }),
623
- Field({ name: "PinChanged", constraint: "4" }),
624
- Field({ name: "RfidCodeAdded", constraint: "5" }),
625
- Field({ name: "RfidCodeCleared", constraint: "6" })
596
+ Field({ name: "entry", type: "octstr" })
626
597
  ),
627
598
 
628
- Attribute(
629
- {
630
- name: "RfidProgrammingEventMask", id: 0x47, type: "EventMaskBitmap", access: "RW VA",
631
- conformance: "[NOT & RID]", default: 65535, quality: "P",
599
+ Attribute({
600
+ name: "AliroBleAdvertisingVersion", id: 0x86, type: "uint8", access: "R A", conformance: "ALBU",
601
+ default: 0, quality: "F",
602
+ details: "Indicates the version of the Bluetooth LE advertisement as defined in [Aliro].",
603
+ xref: { document: "cluster", section: "5.2.9.44" }
604
+ }),
632
605
 
633
- details: "Event mask used to turn on and off RFID programming events. This mask DOES NOT apply to the storing " +
634
- "of events in the event log. This mask only applies to the Programming Event Notification Command." +
635
- "\n" +
636
- "This mask DOES NOT apply to the Events mechanism of this cluster." +
637
- "\n" +
638
- "This mask DOES NOT apply to the Events mechanism of this cluster.",
606
+ Attribute({
607
+ name: "NumberOfAliroCredentialIssuerKeysSupported", id: 0x87, type: "uint16", access: "R V",
608
+ conformance: "ALIRO", default: 0, quality: "F",
609
+ details: "Indicates the maximum number of AliroCredentialIssuerKey credentials that can be stored on the lock.",
610
+ xref: { document: "cluster", section: "5.2.9.45" }
611
+ }),
639
612
 
640
- xref: { document: "cluster", section: "5.2.9.47" }
641
- },
613
+ Attribute({
614
+ name: "NumberOfAliroEndpointKeysSupported", id: 0x88, type: "uint16", access: "R V",
615
+ conformance: "ALIRO", default: 0, quality: "F",
642
616
 
643
- Field({ name: "Unknown", constraint: "0" }),
644
- Field({ name: "IdAdded", constraint: "5" }),
645
- Field({ name: "IdCleared", constraint: "6" })
646
- ),
617
+ details: "Indicates the maximum number of endpoint key credentials that can be stored on the lock. This limit " +
618
+ "applies to the sum of the number of AliroEvictableEndpointKey credentials and the number of " +
619
+ "AliroNonEvictableEndpointKey credentials." +
620
+ "\n" +
621
+ "NOTE" +
622
+ "\n" +
623
+ "The credential indices used for these two credential types are independent of each other, similar " +
624
+ "to all other credential types. As long as NumberOfAliroEndpointKeysSupported is at least 2 a client " +
625
+ "could add a credential of type AliroEvictableEndpointKey at any index from 1 to " +
626
+ "NumberOfAliroEndpointKeysSupported and also add a credential of type AliroNonEvictableEndpointKey " +
627
+ "at the same index, and both credentials would exist on the server.",
628
+
629
+ xref: { document: "cluster", section: "5.2.9.46" }
630
+ }),
647
631
 
648
632
  Event(
649
633
  {
@@ -701,8 +685,9 @@ export const DoorLock = Cluster(
701
685
  " ◦ shall generate a LockOperation event of LockOperationType Unlatch when it is actuated from " +
702
686
  " the outside." +
703
687
  "\n" +
704
- " ◦ may generate a LockOperation event of LockOperationType Unlatch when it is actuated from the " +
705
- " inside.",
688
+ " ◦ may generate a LockOperation event of LockOperationType Unlatch when it is actuated" +
689
+ "\n" +
690
+ "from the inside.",
706
691
 
707
692
  xref: { document: "cluster", section: "5.2.11.3" }
708
693
  },
@@ -837,7 +822,7 @@ export const DoorLock = Cluster(
837
822
 
838
823
  Field({
839
824
  name: "OperationSource", id: 0x2, type: "OperationSourceEnum", conformance: "M",
840
- constraint: "unspecified, keypad, remote",
825
+ constraint: "aliro, unspecified, keypad, remote",
841
826
  details: "This field shall indicate the source of the user data change.",
842
827
  xref: { document: "cluster", section: "5.2.11.5.3" }
843
828
  }),
@@ -883,9 +868,7 @@ export const DoorLock = Cluster(
883
868
  response: "status",
884
869
  details: "This command causes the lock device to lock the door. This command includes an optional code for " +
885
870
  "the lock. The door lock may require a PIN depending on the value of the " +
886
- "RequirePINForRemoteOperation attribute." +
887
- "\n" +
888
- "† The PIN/RFID Code is an obsolete field name, use PINCode instead.",
871
+ "RequirePINForRemoteOperation attribute.",
889
872
  xref: { document: "cluster", section: "5.2.10.1" }
890
873
  },
891
874
 
@@ -918,9 +901,7 @@ export const DoorLock = Cluster(
918
901
  "NOTE" +
919
902
  "\n" +
920
903
  "If the attribute AutoRelockTime is supported the lock will transition to the locked state when the " +
921
- "auto relock time has expired." +
922
- "\n" +
923
- "† The PIN/RFID Code is an obsolete field name, use PINCode instead.",
904
+ "auto relock time has expired.",
924
905
 
925
906
  xref: { document: "cluster", section: "5.2.10.2" }
926
907
  },
@@ -941,17 +922,11 @@ export const DoorLock = Cluster(
941
922
  {
942
923
  name: "UnlockWithTimeout", id: 0x3, access: "O T", conformance: "O", direction: "request",
943
924
  response: "status",
944
-
945
925
  details: "This command causes the lock device to unlock the door with a timeout parameter. After the time in " +
946
926
  "seconds specified in the timeout field, the lock device will relock itself automatically. This " +
947
927
  "timeout parameter is only temporary for this message transition and overrides the default relock " +
948
- "time" +
949
- "\n" +
950
- "as specified in the AutoRelockTime attribute. If the door lock device is not capable of or does not " +
951
- "want to support temporary Relock Timeout, it SHOULD NOT support this optional command." +
952
- "\n" +
953
- "† The PIN/RFID Code is an obsolete field name, use PINCode instead.",
954
-
928
+ "time as specified in the AutoRelockTime attribute. If the door lock device is not capable of or " +
929
+ "does not want to support temporary Relock Timeout, it SHOULD NOT support this optional command.",
955
930
  xref: { document: "cluster", section: "5.2.10.3" }
956
931
  },
957
932
 
@@ -969,81 +944,6 @@ export const DoorLock = Cluster(
969
944
  })
970
945
  ),
971
946
 
972
- Command(
973
- {
974
- name: "GetLogRecord", id: 0x4, access: "M", conformance: "LOG", direction: "request",
975
- response: "GetLogRecordResponse",
976
- details: "Request a log record. Log number is between 1 – [Number of Log Records Supported attribute]. If log " +
977
- "number 0 is requested then the most recent log entry is returned." +
978
- "\n" +
979
- "Log record format: The log record format is defined in the description of the GetLogRecordResponse " +
980
- "command.",
981
- xref: { document: "cluster", section: "5.2.10.4" }
982
- },
983
-
984
- Field({ name: "LogIndex", id: 0x0, type: "uint16", conformance: "M", constraint: "desc" })
985
- ),
986
-
987
- Command(
988
- {
989
- name: "GetLogRecordResponse", id: 0x4, conformance: "LOG", direction: "response",
990
- details: "Returns the specified log record. If an invalid log entry ID was requested, it is set to 0 and the " +
991
- "most recent log entry will be returned.",
992
- xref: { document: "cluster", section: "5.2.10.5" }
993
- },
994
-
995
- Field({
996
- name: "LogEntryId", id: 0x0, type: "uint16", conformance: "M", constraint: "desc",
997
- details: "This field shall indicate the index into the log table where this log entry is stored. If the log " +
998
- "entry requested is 0, the most recent log is returned with the appropriate log entry ID.",
999
- xref: { document: "cluster", section: "5.2.10.5.1" }
1000
- }),
1001
-
1002
- Field({
1003
- name: "Timestamp", id: 0x1, type: "epoch-s", conformance: "M",
1004
- details: "This field shall indicate the timestamp for all events and alarms on the door lock in Epoch Time in " +
1005
- "Seconds with local time offset based on the local timezone and DST offset on the day of the event.",
1006
- xref: { document: "cluster", section: "5.2.10.5.2" }
1007
- }),
1008
-
1009
- Field({
1010
- name: "EventType", id: 0x2, type: "EventTypeEnum", conformance: "M",
1011
- details: "This field shall indicate the type of event that took place on the door lock, as defined in " +
1012
- "EventTypeEnum.",
1013
- xref: { document: "cluster", section: "5.2.10.5.3" }
1014
- }),
1015
-
1016
- Field({
1017
- name: "Source", id: 0x3, type: "EventSourceEnum", conformance: "M",
1018
- details: "This field shall indicate the source value as defined in EventSourceEnum." +
1019
- "\n" +
1020
- "If the EventType is 2 (Alarm) then the source SHOULD be, but does not have to be 255 " +
1021
- "(Indeterminate).",
1022
- xref: { document: "cluster", section: "5.2.10.5.4" }
1023
- }),
1024
-
1025
- Field({
1026
- name: "EventId", id: 0x4, type: "uint8", conformance: "M", constraint: "desc",
1027
- details: "This field shall indicate the type of event that took place on the door lock depending on the event " +
1028
- "code table provided for a given event type and source. See Operation Event Codes.",
1029
- xref: { document: "cluster", section: "5.2.10.5.5" }
1030
- }),
1031
-
1032
- Field({
1033
- name: "UserId", id: 0x5, type: "uint16", conformance: "M", constraint: "desc",
1034
- details: "This field shall indicate the ID of the user who generated the event on the door lock if one is " +
1035
- "available. Otherwise, the value is 0xFFFF.",
1036
- xref: { document: "cluster", section: "5.2.10.5.6" }
1037
- }),
1038
-
1039
- Field({
1040
- name: "Pin", id: 0x6, type: "octstr", conformance: "M",
1041
- details: "This field shall indicate the PIN code or RFID code that was used to create the event on the door " +
1042
- "lock if one is available.",
1043
- xref: { document: "cluster", section: "5.2.10.5.7" }
1044
- })
1045
- ),
1046
-
1047
947
  Command(
1048
948
  {
1049
949
  name: "SetPinCode", id: 0x5, access: "A T", conformance: "!USR & PIN", direction: "request",
@@ -1052,14 +952,14 @@ export const DoorLock = Cluster(
1052
952
  "\n" +
1053
953
  "Return status is a global status code or a cluster-specific status code from the Status Codes table " +
1054
954
  "and shall be one of the following values:",
1055
- xref: { document: "cluster", section: "5.2.10.6" }
955
+ xref: { document: "cluster", section: "5.2.10.4" }
1056
956
  },
1057
957
 
1058
958
  Field({
1059
959
  name: "UserId", id: 0x0, type: "uint16", conformance: "M", constraint: "desc",
1060
960
  details: "This field shall indicate the user ID. The value of the UserID field shall be between 0 and the " +
1061
961
  "value of the NumberOfPINUsersSupported attribute.",
1062
- xref: { document: "cluster", section: "5.2.10.6.1" }
962
+ xref: { document: "cluster", section: "5.2.10.4.1" }
1063
963
  }),
1064
964
 
1065
965
  Field({
@@ -1067,7 +967,7 @@ export const DoorLock = Cluster(
1067
967
  default: 1, quality: "X",
1068
968
  details: "This field shall indicate the user status. Only the values 1 (Occupied/Enabled) and 3 " +
1069
969
  "(Occupied/Disabled) are allowed for UserStatus.",
1070
- xref: { document: "cluster", section: "5.2.10.6.2" }
970
+ xref: { document: "cluster", section: "5.2.10.4.2" }
1071
971
  }),
1072
972
 
1073
973
  Field({ name: "UserType", id: 0x2, type: "UserTypeEnum", conformance: "M", default: 0, quality: "X" }),
@@ -1079,14 +979,14 @@ export const DoorLock = Cluster(
1079
979
  name: "GetPinCode", id: 0x6, access: "A", conformance: "!USR & PIN", direction: "request",
1080
980
  response: "GetPinCodeResponse",
1081
981
  details: "Retrieve a PIN Code.",
1082
- xref: { document: "cluster", section: "5.2.10.7" }
982
+ xref: { document: "cluster", section: "5.2.10.5" }
1083
983
  },
1084
984
 
1085
985
  Field({
1086
986
  name: "UserId", id: 0x0, type: "uint16", conformance: "M", constraint: "desc",
1087
987
  details: "This field shall indicate the user ID. The value of the UserID field shall be between 0 and the " +
1088
988
  "value of the NumberOfPINUsersSupported attribute.",
1089
- xref: { document: "cluster", section: "5.2.10.7.1" }
989
+ xref: { document: "cluster", section: "5.2.10.5.1" }
1090
990
  })
1091
991
  ),
1092
992
 
@@ -1106,7 +1006,7 @@ export const DoorLock = Cluster(
1106
1006
  "shall be equal to CONSTRAINT_ERROR when User_ID is less than the max number of users supported, and " +
1107
1007
  "NOT_FOUND if greater than or equal to the max number of users supported.",
1108
1008
 
1109
- xref: { document: "cluster", section: "5.2.10.8" }
1009
+ xref: { document: "cluster", section: "5.2.10.6" }
1110
1010
  },
1111
1011
 
1112
1012
  Field({ name: "UserId", id: 0x0, type: "uint16", conformance: "M", constraint: "desc" }),
@@ -1122,16 +1022,12 @@ export const DoorLock = Cluster(
1122
1022
  {
1123
1023
  name: "ClearPinCode", id: 0x7, access: "A T", conformance: "!USR & PIN", direction: "request",
1124
1024
  response: "status",
1125
-
1126
1025
  details: "Clear a PIN code or all PIN codes." +
1127
- "\n" +
1128
- "† The User ID is an obsolete field name, use PINSlotIndex instead." +
1129
1026
  "\n" +
1130
1027
  "For each PIN Code cleared whose user doesn’t have a RFID Code or other credential type, then " +
1131
1028
  "corresponding user record’s UserStatus value shall be set to Available, and UserType value shall be " +
1132
1029
  "set to UnrestrictedUser and all schedules shall be cleared.",
1133
-
1134
- xref: { document: "cluster", section: "5.2.10.9" }
1030
+ xref: { document: "cluster", section: "5.2.10.7" }
1135
1031
  },
1136
1032
 
1137
1033
  Field({
@@ -1139,7 +1035,7 @@ export const DoorLock = Cluster(
1139
1035
  constraint: "1 to numberOfPinUsersSupported, 65534",
1140
1036
  details: "This field shall specify a valid PIN code slot index or 0xFFFE to indicate all PIN code slots shall " +
1141
1037
  "be cleared.",
1142
- xref: { document: "cluster", section: "5.2.10.9.1" }
1038
+ xref: { document: "cluster", section: "5.2.10.7.1" }
1143
1039
  })
1144
1040
  ),
1145
1041
 
@@ -1154,7 +1050,7 @@ export const DoorLock = Cluster(
1154
1050
  "On the server, the clear all PIN codes command SHOULD have the same effect as the ClearPINCode " +
1155
1051
  "command with respect to the setting of user status, user type and schedules.",
1156
1052
 
1157
- xref: { document: "cluster", section: "5.2.10.10" }
1053
+ xref: { document: "cluster", section: "5.2.10.8" }
1158
1054
  }),
1159
1055
 
1160
1056
  Command(
@@ -1162,21 +1058,21 @@ export const DoorLock = Cluster(
1162
1058
  name: "SetUserStatus", id: 0x9, access: "A", conformance: "!USR & (PIN | RID | FGP)",
1163
1059
  direction: "request", response: "status",
1164
1060
  details: "Set the status of a user ID.",
1165
- xref: { document: "cluster", section: "5.2.10.11" }
1061
+ xref: { document: "cluster", section: "5.2.10.9" }
1166
1062
  },
1167
1063
 
1168
1064
  Field({
1169
1065
  name: "UserId", id: 0x0, type: "uint16", conformance: "M", constraint: "desc",
1170
1066
  details: "This field shall indicate the user ID. The value of the UserID field shall be between 0 and the " +
1171
1067
  "value of the NumberOfPINUsersSupported attribute.",
1172
- xref: { document: "cluster", section: "5.2.10.11.1" }
1068
+ xref: { document: "cluster", section: "5.2.10.9.1" }
1173
1069
  }),
1174
1070
 
1175
1071
  Field({
1176
1072
  name: "UserStatus", id: 0x1, type: "UserStatusEnum", conformance: "M", constraint: "desc",
1177
1073
  details: "UserStatus value of Available is not allowed. In order to clear a user id, the ClearUser Command " +
1178
1074
  "shall be used. For user status value please refer to UserStatusEnum.",
1179
- xref: { document: "cluster", section: "5.2.10.11.2" }
1075
+ xref: { document: "cluster", section: "5.2.10.9.2" }
1180
1076
  })
1181
1077
  ),
1182
1078
 
@@ -1185,14 +1081,14 @@ export const DoorLock = Cluster(
1185
1081
  name: "GetUserStatus", id: 0xa, access: "A", conformance: "!USR & (PIN | RID | FGP)",
1186
1082
  direction: "request", response: "GetUserStatusResponse",
1187
1083
  details: "Get the status of a user.",
1188
- xref: { document: "cluster", section: "5.2.10.12" }
1084
+ xref: { document: "cluster", section: "5.2.10.10" }
1189
1085
  },
1190
1086
 
1191
1087
  Field({
1192
1088
  name: "UserId", id: 0x0, type: "uint16", conformance: "M", constraint: "desc",
1193
1089
  details: "This field shall indicate the user ID. The value of the UserID field shall be between 0 and the " +
1194
1090
  "value of the NumberOfPINUsersSupported attribute.",
1195
- xref: { document: "cluster", section: "5.2.10.12.1" }
1091
+ xref: { document: "cluster", section: "5.2.10.10.1" }
1196
1092
  })
1197
1093
  ),
1198
1094
 
@@ -1200,17 +1096,17 @@ export const DoorLock = Cluster(
1200
1096
  {
1201
1097
  name: "GetUserStatusResponse", id: 0xa, conformance: "!USR", direction: "response",
1202
1098
  details: "Returns the user status for the specified user ID.",
1203
- xref: { document: "cluster", section: "5.2.10.13" }
1099
+ xref: { document: "cluster", section: "5.2.10.11" }
1204
1100
  },
1205
1101
  Field({
1206
1102
  name: "UserId", id: 0x0, type: "uint16", conformance: "M", constraint: "desc",
1207
1103
  details: "This field shall indicate the user ID provided in the request.",
1208
- xref: { document: "cluster", section: "5.2.10.13.1" }
1104
+ xref: { document: "cluster", section: "5.2.10.11.1" }
1209
1105
  }),
1210
1106
  Field({
1211
1107
  name: "UserStatus", id: 0x1, type: "UserStatusEnum", conformance: "M",
1212
1108
  details: "This field shall indicate the current status of the requested user ID.",
1213
- xref: { document: "cluster", section: "5.2.10.13.2" }
1109
+ xref: { document: "cluster", section: "5.2.10.11.2" }
1214
1110
  })
1215
1111
  ),
1216
1112
 
@@ -1220,60 +1116,60 @@ export const DoorLock = Cluster(
1220
1116
  response: "status",
1221
1117
 
1222
1118
  details: "Set a weekly repeating schedule for a specified user." +
1223
- "\n" +
1224
- "† The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead, " +
1225
- "respectively." +
1226
1119
  "\n" +
1227
1120
  "The associated UserType may be changed to ScheduleRestrictedUser by the lock when a Week Day " +
1228
1121
  "schedule is set." +
1229
1122
  "\n" +
1230
1123
  "Return status shall be one of the following values:",
1231
1124
 
1232
- xref: { document: "cluster", section: "5.2.10.14" }
1125
+ xref: { document: "cluster", section: "5.2.10.12" }
1233
1126
  },
1234
1127
 
1235
1128
  Field({
1236
1129
  name: "WeekDayIndex", id: 0x0, type: "uint8", conformance: "M",
1237
1130
  constraint: "1 to numberOfWeekDaySchedulesSupportedPerUser",
1238
1131
  details: "This field shall indicate the index of the Week Day schedule.",
1239
- xref: { document: "cluster", section: "5.2.10.14.1" }
1132
+ xref: { document: "cluster", section: "5.2.10.12.1" }
1240
1133
  }),
1241
1134
 
1242
1135
  Field({
1243
- name: "UserIndexUserId", id: 0x1, type: "uint16", conformance: "M",
1244
- constraint: "1 to numberOfTotalUsersSupported"
1136
+ name: "UserIndex", id: 0x1, type: "uint16", conformance: "M",
1137
+ constraint: "1 to numberOfTotalUsersSupported",
1138
+ details: "This field shall indicate the user ID.",
1139
+ xref: { document: "cluster", section: "5.2.10.12.2" }
1245
1140
  }),
1141
+
1246
1142
  Field({
1247
1143
  name: "DaysMask", id: 0x2, type: "DaysMaskBitmap", conformance: "M",
1248
1144
  details: "This field shall indicate which week days the schedule is active.",
1249
- xref: { document: "cluster", section: "5.2.10.14.3" }
1145
+ xref: { document: "cluster", section: "5.2.10.12.3" }
1250
1146
  }),
1251
1147
  Field({
1252
- name: "StartHour", id: 0x3, type: "uint8", conformance: "M", constraint: "0 to 23",
1148
+ name: "StartHour", id: 0x3, type: "uint8", conformance: "M", constraint: "max 23",
1253
1149
  details: "This field shall indicate the starting hour for the Week Day schedule.",
1254
- xref: { document: "cluster", section: "5.2.10.14.4" }
1150
+ xref: { document: "cluster", section: "5.2.10.12.4" }
1255
1151
  }),
1256
1152
  Field({
1257
- name: "StartMinute", id: 0x4, type: "uint8", conformance: "M", constraint: "0 to 59",
1153
+ name: "StartMinute", id: 0x4, type: "uint8", conformance: "M", constraint: "max 59",
1258
1154
  details: "This field shall indicate the starting minute for the Week Day schedule.",
1259
- xref: { document: "cluster", section: "5.2.10.14.5" }
1155
+ xref: { document: "cluster", section: "5.2.10.12.5" }
1260
1156
  }),
1261
1157
 
1262
1158
  Field({
1263
- name: "EndHour", id: 0x5, type: "uint8", conformance: "M", constraint: "0 to 23",
1159
+ name: "EndHour", id: 0x5, type: "uint8", conformance: "M", constraint: "max 23",
1264
1160
  details: "This field shall indicate the ending hour for the Week Day schedule. EndHour shall be equal to or " +
1265
1161
  "greater than StartHour.",
1266
- xref: { document: "cluster", section: "5.2.10.14.6" }
1162
+ xref: { document: "cluster", section: "5.2.10.12.6" }
1267
1163
  }),
1268
1164
 
1269
1165
  Field({
1270
- name: "EndMinute", id: 0x6, type: "uint8", conformance: "M", constraint: "0 to 59",
1166
+ name: "EndMinute", id: 0x6, type: "uint8", conformance: "M", constraint: "max 59",
1271
1167
  details: "This field shall indicate the ending minute for the Week Day schedule. If EndHour is equal to " +
1272
1168
  "StartHour then EndMinute shall be greater than StartMinute." +
1273
1169
  "\n" +
1274
1170
  "If the EndHour is equal to 23 and the EndMinute is equal to 59 the Lock shall grant access to the " +
1275
1171
  "user up until 23:59:59.",
1276
- xref: { document: "cluster", section: "5.2.10.14.7" }
1172
+ xref: { document: "cluster", section: "5.2.10.12.7" }
1277
1173
  })
1278
1174
  ),
1279
1175
 
@@ -1281,11 +1177,8 @@ export const DoorLock = Cluster(
1281
1177
  {
1282
1178
  name: "GetWeekDaySchedule", id: 0xc, access: "A", conformance: "WDSCH", direction: "request",
1283
1179
  response: "GetWeekDayScheduleResponse",
1284
- details: "Retrieve the specific weekly schedule for the specific user." +
1285
- "\n" +
1286
- "† The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead, " +
1287
- "respectively.",
1288
- xref: { document: "cluster", section: "5.2.10.15" }
1180
+ details: "Retrieve the specific weekly schedule for the specific user.",
1181
+ xref: { document: "cluster", section: "5.2.10.13" }
1289
1182
  },
1290
1183
 
1291
1184
  Field({
@@ -1293,7 +1186,7 @@ export const DoorLock = Cluster(
1293
1186
  constraint: "1 to numberOfWeekDaySchedulesSupportedPerUser"
1294
1187
  }),
1295
1188
  Field({
1296
- name: "UserIndexUserId", id: 0x1, type: "uint16", conformance: "M",
1189
+ name: "UserIndex", id: 0x1, type: "uint16", conformance: "M",
1297
1190
  constraint: "1 to numberOfTotalUsersSupported"
1298
1191
  })
1299
1192
  ),
@@ -1301,23 +1194,22 @@ export const DoorLock = Cluster(
1301
1194
  Command(
1302
1195
  {
1303
1196
  name: "GetWeekDayScheduleResponse", id: 0xc, conformance: "WDSCH", direction: "response",
1304
- details: "Returns the weekly repeating schedule data for the specified schedule index." +
1305
- "\n" +
1306
- "† The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead, " +
1307
- "respectively.",
1308
- xref: { document: "cluster", section: "5.2.10.16" }
1197
+ details: "Returns the weekly repeating schedule data for the specified schedule index.",
1198
+ xref: { document: "cluster", section: "5.2.10.14" }
1309
1199
  },
1310
1200
 
1311
1201
  Field({
1312
1202
  name: "WeekDayIndex", id: 0x0, type: "uint8", conformance: "M",
1313
1203
  constraint: "1 to numberOfWeekDaySchedulesSupportedPerUser",
1314
1204
  details: "This field shall indicate the index of the Week Day schedule.",
1315
- xref: { document: "cluster", section: "5.2.10.16.1" }
1205
+ xref: { document: "cluster", section: "5.2.10.14.1" }
1316
1206
  }),
1317
1207
 
1318
1208
  Field({
1319
- name: "UserIndexUserId", id: 0x1, type: "uint16", conformance: "M",
1320
- constraint: "1 to numberOfTotalUsersSupported"
1209
+ name: "UserIndex", id: 0x1, type: "uint16", conformance: "M",
1210
+ constraint: "1 to numberOfTotalUsersSupported",
1211
+ details: "This field shall indicate the user ID.",
1212
+ xref: { document: "cluster", section: "5.2.10.14.2" }
1321
1213
  }),
1322
1214
 
1323
1215
  Field({
@@ -1337,33 +1229,33 @@ export const DoorLock = Cluster(
1337
1229
  "If this field is SUCCESS, the optional fields for this command shall be present. For other (error) " +
1338
1230
  "status values, only the fields up to the status field shall be present.",
1339
1231
 
1340
- xref: { document: "cluster", section: "5.2.10.16.3" }
1232
+ xref: { document: "cluster", section: "5.2.10.14.3" }
1341
1233
  }),
1342
1234
 
1343
1235
  Field({ name: "DaysMask", id: 0x3, type: "DaysMaskBitmap", conformance: "O" }),
1344
1236
  Field({
1345
- name: "StartHour", id: 0x4, type: "uint8", conformance: "O", constraint: "0 to 23",
1237
+ name: "StartHour", id: 0x4, type: "uint8", conformance: "O", constraint: "max 23",
1346
1238
  details: "This field shall indicate the starting hour for the Week Day schedule.",
1347
- xref: { document: "cluster", section: "5.2.10.16.4" }
1239
+ xref: { document: "cluster", section: "5.2.10.14.4" }
1348
1240
  }),
1349
1241
  Field({
1350
- name: "StartMinute", id: 0x5, type: "uint8", conformance: "O", constraint: "0 to 59",
1242
+ name: "StartMinute", id: 0x5, type: "uint8", conformance: "O", constraint: "max 59",
1351
1243
  details: "This field shall indicate the starting minute for the Week Day schedule.",
1352
- xref: { document: "cluster", section: "5.2.10.16.5" }
1244
+ xref: { document: "cluster", section: "5.2.10.14.5" }
1353
1245
  }),
1354
1246
 
1355
1247
  Field({
1356
- name: "EndHour", id: 0x6, type: "uint8", conformance: "O", constraint: "0 to 23",
1248
+ name: "EndHour", id: 0x6, type: "uint8", conformance: "O", constraint: "max 23",
1357
1249
  details: "This field shall indicate the ending hour for the Week Day schedule. EndHour shall be equal to or " +
1358
1250
  "greater than StartHour.",
1359
- xref: { document: "cluster", section: "5.2.10.16.6" }
1251
+ xref: { document: "cluster", section: "5.2.10.14.6" }
1360
1252
  }),
1361
1253
 
1362
1254
  Field({
1363
- name: "EndMinute", id: 0x7, type: "uint8", conformance: "O", constraint: "0 to 59",
1255
+ name: "EndMinute", id: 0x7, type: "uint8", conformance: "O", constraint: "max 59",
1364
1256
  details: "This field shall indicate the ending minute for the Week Day schedule. If EndHour is equal to " +
1365
1257
  "StartHour then EndMinute shall be greater than StartMinute.",
1366
- xref: { document: "cluster", section: "5.2.10.16.7" }
1258
+ xref: { document: "cluster", section: "5.2.10.14.7" }
1367
1259
  })
1368
1260
  ),
1369
1261
 
@@ -1371,15 +1263,10 @@ export const DoorLock = Cluster(
1371
1263
  {
1372
1264
  name: "ClearWeekDaySchedule", id: 0xd, access: "A", conformance: "WDSCH", direction: "request",
1373
1265
  response: "status",
1374
-
1375
1266
  details: "Clear the specific weekly schedule or all weekly schedules for the specific user." +
1376
- "\n" +
1377
- "† The Schedule ID and User ID are obsolete field names, use WeekDayIndex and UserIndex instead, " +
1378
- "respectively." +
1379
1267
  "\n" +
1380
1268
  "Return status shall be one of the following values:",
1381
-
1382
- xref: { document: "cluster", section: "5.2.10.17" }
1269
+ xref: { document: "cluster", section: "5.2.10.15" }
1383
1270
  },
1384
1271
 
1385
1272
  Field({
@@ -1387,12 +1274,14 @@ export const DoorLock = Cluster(
1387
1274
  constraint: "1 to numberOfWeekDaySchedulesSupportedPerUser, 254",
1388
1275
  details: "This field shall indicate the Week Day schedule index to clear or 0xFE to clear all Week Day " +
1389
1276
  "schedules for the specified user.",
1390
- xref: { document: "cluster", section: "5.2.10.17.1" }
1277
+ xref: { document: "cluster", section: "5.2.10.15.1" }
1391
1278
  }),
1392
1279
 
1393
1280
  Field({
1394
- name: "UserIndexUserId", id: 0x1, type: "uint16", conformance: "M",
1395
- constraint: "1 to numberOfTotalUsersSupported"
1281
+ name: "UserIndex", id: 0x1, type: "uint16", conformance: "M",
1282
+ constraint: "1 to numberOfTotalUsersSupported",
1283
+ details: "This field shall indicate the user ID.",
1284
+ xref: { document: "cluster", section: "5.2.10.15.2" }
1396
1285
  })
1397
1286
  ),
1398
1287
 
@@ -1402,35 +1291,34 @@ export const DoorLock = Cluster(
1402
1291
  response: "status",
1403
1292
 
1404
1293
  details: "Set a time-specific schedule ID for a specified user." +
1405
- "\n" +
1406
- "† The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead, " +
1407
- "respectively." +
1408
1294
  "\n" +
1409
1295
  "The associated UserType may be changed to ScheduleRestrictedUser by the lock when a Year Day " +
1410
1296
  "schedule is set." +
1411
1297
  "\n" +
1412
1298
  "Return status shall be one of the following values:",
1413
1299
 
1414
- xref: { document: "cluster", section: "5.2.10.18" }
1300
+ xref: { document: "cluster", section: "5.2.10.16" }
1415
1301
  },
1416
1302
 
1417
1303
  Field({
1418
1304
  name: "YearDayIndex", id: 0x0, type: "uint8", conformance: "M",
1419
1305
  constraint: "1 to numberOfYearDaySchedulesSupportedPerUser",
1420
1306
  details: "This field shall indicate the index of the Year Day schedule.",
1421
- xref: { document: "cluster", section: "5.2.10.18.1" }
1307
+ xref: { document: "cluster", section: "5.2.10.16.1" }
1422
1308
  }),
1423
1309
 
1424
1310
  Field({
1425
- name: "UserIndexUserId", id: 0x1, type: "uint16", conformance: "M",
1426
- constraint: "1 to numberOfTotalUsersSupported"
1311
+ name: "UserIndex", id: 0x1, type: "uint16", conformance: "M",
1312
+ constraint: "1 to numberOfTotalUsersSupported",
1313
+ details: "This field shall indicate the user ID.",
1314
+ xref: { document: "cluster", section: "5.2.10.16.2" }
1427
1315
  }),
1428
1316
 
1429
1317
  Field({
1430
1318
  name: "LocalStartTime", id: 0x2, type: "epoch-s", conformance: "M",
1431
1319
  details: "This field shall indicate the starting time for the Year Day schedule in Epoch Time in Seconds with " +
1432
1320
  "local time offset based on the local timezone and DST offset on the day represented by the value.",
1433
- xref: { document: "cluster", section: "5.2.10.18.3" }
1321
+ xref: { document: "cluster", section: "5.2.10.16.3" }
1434
1322
  }),
1435
1323
 
1436
1324
  Field({
@@ -1438,7 +1326,7 @@ export const DoorLock = Cluster(
1438
1326
  details: "This field shall indicate the ending time for the Year Day schedule in Epoch Time in Seconds with " +
1439
1327
  "local time offset based on the local timezone and DST offset on the day represented by the value. " +
1440
1328
  "LocalEndTime shall be greater than LocalStartTime.",
1441
- xref: { document: "cluster", section: "5.2.10.18.4" }
1329
+ xref: { document: "cluster", section: "5.2.10.16.4" }
1442
1330
  })
1443
1331
  ),
1444
1332
 
@@ -1446,11 +1334,8 @@ export const DoorLock = Cluster(
1446
1334
  {
1447
1335
  name: "GetYearDaySchedule", id: 0xf, access: "A", conformance: "YDSCH", direction: "request",
1448
1336
  response: "GetYearDayScheduleResponse",
1449
- details: "Retrieve the specific year day schedule for the specific schedule and user indexes." +
1450
- "\n" +
1451
- "† The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead, " +
1452
- "respectively.",
1453
- xref: { document: "cluster", section: "5.2.10.19" }
1337
+ details: "Retrieve the specific year day schedule for the specific schedule and user indexes.",
1338
+ xref: { document: "cluster", section: "5.2.10.17" }
1454
1339
  },
1455
1340
 
1456
1341
  Field({
@@ -1458,7 +1343,7 @@ export const DoorLock = Cluster(
1458
1343
  constraint: "1 to numberOfYearDaySchedulesSupportedPerUser"
1459
1344
  }),
1460
1345
  Field({
1461
- name: "UserIndexUserId", id: 0x1, type: "uint16", conformance: "M",
1346
+ name: "UserIndex", id: 0x1, type: "uint16", conformance: "M",
1462
1347
  constraint: "1 to numberOfTotalUsersSupported"
1463
1348
  })
1464
1349
  ),
@@ -1466,23 +1351,22 @@ export const DoorLock = Cluster(
1466
1351
  Command(
1467
1352
  {
1468
1353
  name: "GetYearDayScheduleResponse", id: 0xf, conformance: "YDSCH", direction: "response",
1469
- details: "Returns the year day schedule data for the specified schedule and user indexes." +
1470
- "\n" +
1471
- "† The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead, " +
1472
- "respectively.",
1473
- xref: { document: "cluster", section: "5.2.10.20" }
1354
+ details: "Returns the year day schedule data for the specified schedule and user indexes.",
1355
+ xref: { document: "cluster", section: "5.2.10.18" }
1474
1356
  },
1475
1357
 
1476
1358
  Field({
1477
1359
  name: "YearDayIndex", id: 0x0, type: "uint8", conformance: "M",
1478
1360
  constraint: "1 to numberOfYearDaySchedulesSupportedPerUser",
1479
1361
  details: "This field shall indicate the index of the Year Day schedule.",
1480
- xref: { document: "cluster", section: "5.2.10.20.1" }
1362
+ xref: { document: "cluster", section: "5.2.10.18.1" }
1481
1363
  }),
1482
1364
 
1483
1365
  Field({
1484
- name: "UserIndexUserId", id: 0x1, type: "uint16", conformance: "M",
1485
- constraint: "1 to numberOfTotalUsersSupported"
1366
+ name: "UserIndex", id: 0x1, type: "uint16", conformance: "M",
1367
+ constraint: "1 to numberOfTotalUsersSupported",
1368
+ details: "This field shall indicate the user ID.",
1369
+ xref: { document: "cluster", section: "5.2.10.18.2" }
1486
1370
  }),
1487
1371
 
1488
1372
  Field({
@@ -1502,7 +1386,7 @@ export const DoorLock = Cluster(
1502
1386
  "If this field is SUCCESS, the optional fields for this command shall be present. For other (error) " +
1503
1387
  "status values, only the fields up to the status field shall be present.",
1504
1388
 
1505
- xref: { document: "cluster", section: "5.2.10.20.3" }
1389
+ xref: { document: "cluster", section: "5.2.10.18.3" }
1506
1390
  }),
1507
1391
 
1508
1392
  Field({
@@ -1510,7 +1394,7 @@ export const DoorLock = Cluster(
1510
1394
  details: "This field shall indicate the starting time for the Year Day schedule in Epoch Time in Seconds with " +
1511
1395
  "local time offset based on the local timezone and DST offset on the day represented by the value. " +
1512
1396
  "This shall be null if the schedule is not set for the YearDayIndex and UserIndex provided.",
1513
- xref: { document: "cluster", section: "5.2.10.20.4" }
1397
+ xref: { document: "cluster", section: "5.2.10.18.4" }
1514
1398
  }),
1515
1399
 
1516
1400
  Field({
@@ -1519,7 +1403,7 @@ export const DoorLock = Cluster(
1519
1403
  "local time offset based on the local timezone and DST offset on the day represented by the value. " +
1520
1404
  "LocalEndTime shall be greater than LocalStartTime. This shall be null if the schedule is not set " +
1521
1405
  "for the YearDayIndex and UserIndex provided.",
1522
- xref: { document: "cluster", section: "5.2.10.20.5" }
1406
+ xref: { document: "cluster", section: "5.2.10.18.5" }
1523
1407
  })
1524
1408
  ),
1525
1409
 
@@ -1527,15 +1411,10 @@ export const DoorLock = Cluster(
1527
1411
  {
1528
1412
  name: "ClearYearDaySchedule", id: 0x10, access: "A", conformance: "YDSCH", direction: "request",
1529
1413
  response: "status",
1530
-
1531
1414
  details: "Clears the specific year day schedule or all year day schedules for the specific user." +
1532
- "\n" +
1533
- "† The Schedule ID and User ID are obsolete field names, use YearDayIndex and UserIndex instead, " +
1534
- "respectively." +
1535
1415
  "\n" +
1536
1416
  "Return status shall be one of the following values:",
1537
-
1538
- xref: { document: "cluster", section: "5.2.10.21" }
1417
+ xref: { document: "cluster", section: "5.2.10.19" }
1539
1418
  },
1540
1419
 
1541
1420
  Field({
@@ -1543,12 +1422,14 @@ export const DoorLock = Cluster(
1543
1422
  constraint: "1 to numberOfYearDaySchedulesSupportedPerUser, 254",
1544
1423
  details: "This field shall indicate the Year Day schedule index to clear or 0xFE to clear all Year Day " +
1545
1424
  "schedules for the specified user.",
1546
- xref: { document: "cluster", section: "5.2.10.21.1" }
1425
+ xref: { document: "cluster", section: "5.2.10.19.1" }
1547
1426
  }),
1548
1427
 
1549
1428
  Field({
1550
- name: "UserIndexUserId", id: 0x1, type: "uint16", conformance: "M",
1551
- constraint: "1 to numberOfTotalUsersSupported"
1429
+ name: "UserIndex", id: 0x1, type: "uint16", conformance: "M",
1430
+ constraint: "1 to numberOfTotalUsersSupported",
1431
+ details: "This field shall indicate the user ID.",
1432
+ xref: { document: "cluster", section: "5.2.10.19.2" }
1552
1433
  })
1553
1434
  ),
1554
1435
 
@@ -1559,16 +1440,15 @@ export const DoorLock = Cluster(
1559
1440
  details: "Set the holiday Schedule by specifying local start time and local end time with respect to any Lock " +
1560
1441
  "Operating Mode." +
1561
1442
  "\n" +
1562
- " The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead. Return status shall " +
1563
- "be one of the following values:",
1564
- xref: { document: "cluster", section: "5.2.10.22" }
1443
+ "Return status shall be one of the following values:",
1444
+ xref: { document: "cluster", section: "5.2.10.20" }
1565
1445
  },
1566
1446
 
1567
1447
  Field({
1568
1448
  name: "HolidayIndex", id: 0x0, type: "uint8", conformance: "M",
1569
1449
  constraint: "1 to numberOfHolidaySchedulesSupported",
1570
1450
  details: "This field shall indicate the index of the Holiday schedule.",
1571
- xref: { document: "cluster", section: "5.2.10.22.1" }
1451
+ xref: { document: "cluster", section: "5.2.10.20.1" }
1572
1452
  }),
1573
1453
 
1574
1454
  Field({
@@ -1576,7 +1456,7 @@ export const DoorLock = Cluster(
1576
1456
  details: "This field shall indicate the starting time for the Holiday Day schedule in Epoch Time in Seconds " +
1577
1457
  "with local time offset based on the local timezone and DST offset on the day represented by the " +
1578
1458
  "value.",
1579
- xref: { document: "cluster", section: "5.2.10.22.2" }
1459
+ xref: { document: "cluster", section: "5.2.10.20.2" }
1580
1460
  }),
1581
1461
 
1582
1462
  Field({
@@ -1584,13 +1464,13 @@ export const DoorLock = Cluster(
1584
1464
  details: "This field shall indicate the ending time for the Holiday Day schedule in Epoch Time in Seconds " +
1585
1465
  "with local time offset based on the local timezone and DST offset on the day represented by the " +
1586
1466
  "value. LocalEndTime shall be greater than LocalStartTime.",
1587
- xref: { document: "cluster", section: "5.2.10.22.3" }
1467
+ xref: { document: "cluster", section: "5.2.10.20.3" }
1588
1468
  }),
1589
1469
 
1590
1470
  Field({
1591
1471
  name: "OperatingMode", id: 0x3, type: "OperatingModeEnum", conformance: "M",
1592
1472
  details: "This field shall indicate the operating mode to use during this Holiday schedule start/end time.",
1593
- xref: { document: "cluster", section: "5.2.10.22.4" }
1473
+ xref: { document: "cluster", section: "5.2.10.20.4" }
1594
1474
  })
1595
1475
  ),
1596
1476
 
@@ -1598,10 +1478,8 @@ export const DoorLock = Cluster(
1598
1478
  {
1599
1479
  name: "GetHolidaySchedule", id: 0x12, access: "A", conformance: "HDSCH", direction: "request",
1600
1480
  response: "GetHolidayScheduleResponse",
1601
- details: "Get the holiday schedule for the specified index." +
1602
- "\n" +
1603
- "† The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead.",
1604
- xref: { document: "cluster", section: "5.2.10.23" }
1481
+ details: "Get the holiday schedule for the specified index.",
1482
+ xref: { document: "cluster", section: "5.2.10.21" }
1605
1483
  },
1606
1484
 
1607
1485
  Field({
@@ -1613,17 +1491,15 @@ export const DoorLock = Cluster(
1613
1491
  Command(
1614
1492
  {
1615
1493
  name: "GetHolidayScheduleResponse", id: 0x12, conformance: "HDSCH", direction: "response",
1616
- details: "Returns the Holiday Schedule Entry for the specified Holiday ID." +
1617
- "\n" +
1618
- "† The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead.",
1619
- xref: { document: "cluster", section: "5.2.10.24" }
1494
+ details: "Returns the Holiday Schedule Entry for the specified Holiday ID.",
1495
+ xref: { document: "cluster", section: "5.2.10.22" }
1620
1496
  },
1621
1497
 
1622
1498
  Field({
1623
1499
  name: "HolidayIndex", id: 0x0, type: "uint8", conformance: "M",
1624
1500
  constraint: "1 to numberOfHolidaySchedulesSupported",
1625
1501
  details: "This field shall indicate the index of the Holiday schedule.",
1626
- xref: { document: "cluster", section: "5.2.10.24.1" }
1502
+ xref: { document: "cluster", section: "5.2.10.22.1" }
1627
1503
  }),
1628
1504
 
1629
1505
  Field({
@@ -1643,7 +1519,7 @@ export const DoorLock = Cluster(
1643
1519
  "If this field is SUCCESS, the optional fields for this command shall be present. For other (error) " +
1644
1520
  "status values, only the fields up to the status field shall be present.",
1645
1521
 
1646
- xref: { document: "cluster", section: "5.2.10.24.2" }
1522
+ xref: { document: "cluster", section: "5.2.10.22.2" }
1647
1523
  }),
1648
1524
 
1649
1525
  Field({
@@ -1651,7 +1527,7 @@ export const DoorLock = Cluster(
1651
1527
  details: "This field shall indicate the starting time for the Holiday schedule in Epoch Time in Seconds with " +
1652
1528
  "local time offset based on the local timezone and DST offset on the day represented by the value. " +
1653
1529
  "This shall be null if the schedule is not set for the HolidayIndex provided.",
1654
- xref: { document: "cluster", section: "5.2.10.24.3" }
1530
+ xref: { document: "cluster", section: "5.2.10.22.3" }
1655
1531
  }),
1656
1532
 
1657
1533
  Field({
@@ -1660,14 +1536,14 @@ export const DoorLock = Cluster(
1660
1536
  "local time offset based on the local timezone and DST offset on the day represented by the value. " +
1661
1537
  "LocalEndTime shall be greater than LocalStartTime. This shall be null if the schedule is not set " +
1662
1538
  "for the HolidayIndex provided.",
1663
- xref: { document: "cluster", section: "5.2.10.24.4" }
1539
+ xref: { document: "cluster", section: "5.2.10.22.4" }
1664
1540
  }),
1665
1541
 
1666
1542
  Field({
1667
1543
  name: "OperatingMode", id: 0x4, type: "OperatingModeEnum", conformance: "O", quality: "X",
1668
1544
  details: "This field shall indicate the operating mode to use during this Holiday schedule start/end time. " +
1669
1545
  "This shall be null if the schedule is not set for the HolidayIndex provided.",
1670
- xref: { document: "cluster", section: "5.2.10.24.5" }
1546
+ xref: { document: "cluster", section: "5.2.10.22.5" }
1671
1547
  })
1672
1548
  ),
1673
1549
 
@@ -1675,10 +1551,8 @@ export const DoorLock = Cluster(
1675
1551
  {
1676
1552
  name: "ClearHolidaySchedule", id: 0x13, access: "A", conformance: "HDSCH", direction: "request",
1677
1553
  response: "status",
1678
- details: "Clears the holiday schedule or all holiday schedules." +
1679
- "\n" +
1680
- "† The Holiday Schedule ID is an obsolete field name, use HolidayIndex instead.",
1681
- xref: { document: "cluster", section: "5.2.10.25" }
1554
+ details: "Clears the holiday schedule or all holiday schedules.",
1555
+ xref: { document: "cluster", section: "5.2.10.23" }
1682
1556
  },
1683
1557
 
1684
1558
  Field({
@@ -1686,7 +1560,7 @@ export const DoorLock = Cluster(
1686
1560
  constraint: "1 to numberOfHolidaySchedulesSupported, 254",
1687
1561
  details: "This field shall indicate the Holiday schedule index to clear or 0xFE to clear all Holiday " +
1688
1562
  "schedules.",
1689
- xref: { document: "cluster", section: "5.2.10.25.1" }
1563
+ xref: { document: "cluster", section: "5.2.10.23.1" }
1690
1564
  })
1691
1565
  ),
1692
1566
 
@@ -1699,27 +1573,18 @@ export const DoorLock = Cluster(
1699
1573
  "For user type value please refer to User Type Value." +
1700
1574
  "\n" +
1701
1575
  "Return status shall be one of the following values:",
1702
- xref: { document: "cluster", section: "5.2.10.26" }
1576
+ xref: { document: "cluster", section: "5.2.10.24" }
1703
1577
  },
1704
1578
 
1705
1579
  Field({
1706
1580
  name: "UserId", id: 0x0, type: "uint16", conformance: "M", constraint: "desc",
1707
1581
  details: "This field shall indicate the user ID.",
1708
- xref: { document: "cluster", section: "5.2.10.26.1" }
1582
+ xref: { document: "cluster", section: "5.2.10.24.1" }
1709
1583
  }),
1710
-
1711
1584
  Field({
1712
1585
  name: "UserType", id: 0x1, type: "UserTypeEnum", conformance: "M",
1713
-
1714
- details: "This field shall indicate the user type." +
1715
- "\n" +
1716
- "If UserType is currently YearDayScheduleUser, WeekDayScheduleUser, or ScheduleRestrictedUser and " +
1717
- "the new UserType is UnrestrictedUser then all existing Year Day and/or Week Day schedules shall be " +
1718
- "ignored or disabled (if this transition is supported by the door lock). If UserType is " +
1719
- "ScheduleRestrictedUser and the new UserType is ScheduleRestrictedUser then all existing Year Day " +
1720
- "and/or Week Day schedules shall be applied or enabled.",
1721
-
1722
- xref: { document: "cluster", section: "5.2.10.26.2" }
1586
+ details: "This field shall indicate the user type.",
1587
+ xref: { document: "cluster", section: "5.2.10.24.2" }
1723
1588
  })
1724
1589
  ),
1725
1590
 
@@ -1728,7 +1593,7 @@ export const DoorLock = Cluster(
1728
1593
  name: "GetUserType", id: 0x15, access: "A", conformance: "!USR & (PIN | RID | FGP)",
1729
1594
  direction: "request", response: "GetUserTypeResponse",
1730
1595
  details: "Retrieve the user type for a specific user.",
1731
- xref: { document: "cluster", section: "5.2.10.27" }
1596
+ xref: { document: "cluster", section: "5.2.10.25" }
1732
1597
  },
1733
1598
 
1734
1599
  Field({ name: "UserId", id: 0x0, type: "uint16", conformance: "M", constraint: "desc" })
@@ -1739,7 +1604,7 @@ export const DoorLock = Cluster(
1739
1604
  name: "GetUserTypeResponse", id: 0x15, conformance: "!USR", direction: "response",
1740
1605
  details: "Returns the user type for the specified user ID. If the requested User ID is invalid, send Default " +
1741
1606
  "Response with an error status equal to FAILURE.",
1742
- xref: { document: "cluster", section: "5.2.10.28" }
1607
+ xref: { document: "cluster", section: "5.2.10.26" }
1743
1608
  },
1744
1609
 
1745
1610
  Field({ name: "UserId", id: 0x0, type: "uint16", conformance: "M", constraint: "desc" }),
@@ -1754,7 +1619,7 @@ export const DoorLock = Cluster(
1754
1619
  "\n" +
1755
1620
  "Return status is a global status code or a cluster-specific status code from the Status Codes table " +
1756
1621
  "and shall be one of the following values:",
1757
- xref: { document: "cluster", section: "5.2.10.29" }
1622
+ xref: { document: "cluster", section: "5.2.10.27" }
1758
1623
  },
1759
1624
 
1760
1625
  Field({
@@ -1763,7 +1628,7 @@ export const DoorLock = Cluster(
1763
1628
  "\n" +
1764
1629
  "The value of the UserID field shall be between 0 and the value of the NumberOfRFIDUsersSupported " +
1765
1630
  "attribute.",
1766
- xref: { document: "cluster", section: "5.2.10.29.1" }
1631
+ xref: { document: "cluster", section: "5.2.10.27.1" }
1767
1632
  }),
1768
1633
 
1769
1634
  Field({
@@ -1773,14 +1638,14 @@ export const DoorLock = Cluster(
1773
1638
  "“Set PIN” while not all are supported." +
1774
1639
  "\n" +
1775
1640
  "Only the values 1 (Occupied/Enabled) and 3 (Occupied/Disabled) are allowed for UserStatus.",
1776
- xref: { document: "cluster", section: "5.2.10.29.2" }
1641
+ xref: { document: "cluster", section: "5.2.10.27.2" }
1777
1642
  }),
1778
1643
 
1779
1644
  Field({
1780
1645
  name: "UserType", id: 0x2, type: "UserTypeEnum", conformance: "M", constraint: "desc", default: 0,
1781
1646
  quality: "X",
1782
1647
  details: "The values are the same as used for SetPINCode command.",
1783
- xref: { document: "cluster", section: "5.2.10.29.3" }
1648
+ xref: { document: "cluster", section: "5.2.10.27.3" }
1784
1649
  }),
1785
1650
 
1786
1651
  Field({ name: "RfidCode", id: 0x3, type: "octstr", conformance: "M" })
@@ -1791,7 +1656,7 @@ export const DoorLock = Cluster(
1791
1656
  name: "GetRfidCode", id: 0x17, access: "A", conformance: "!USR & RID", direction: "request",
1792
1657
  response: "GetRfidCodeResponse",
1793
1658
  details: "Retrieve an RFID code.",
1794
- xref: { document: "cluster", section: "5.2.10.30" }
1659
+ xref: { document: "cluster", section: "5.2.10.28" }
1795
1660
  },
1796
1661
 
1797
1662
  Field({
@@ -1800,7 +1665,7 @@ export const DoorLock = Cluster(
1800
1665
  "\n" +
1801
1666
  "The value of the UserID field shall be between 0 and the value of the NumberOfRFIDUsersSupported " +
1802
1667
  "attribute.",
1803
- xref: { document: "cluster", section: "5.2.10.30.1" }
1668
+ xref: { document: "cluster", section: "5.2.10.28.1" }
1804
1669
  })
1805
1670
  ),
1806
1671
 
@@ -1820,7 +1685,7 @@ export const DoorLock = Cluster(
1820
1685
  "be equal to CONSTRAINT_ERROR when User_ID is less than the max number of users supported, and " +
1821
1686
  "NOT_FOUND if greater than or equal to the max number of users supported.",
1822
1687
 
1823
- xref: { document: "cluster", section: "5.2.10.31" }
1688
+ xref: { document: "cluster", section: "5.2.10.29" }
1824
1689
  },
1825
1690
 
1826
1691
  Field({ name: "UserId", id: 0x0, type: "uint16", conformance: "M", constraint: "desc" }),
@@ -1836,16 +1701,12 @@ export const DoorLock = Cluster(
1836
1701
  {
1837
1702
  name: "ClearRfidCode", id: 0x18, access: "A T", conformance: "!USR & RID", direction: "request",
1838
1703
  response: "status",
1839
-
1840
1704
  details: "Clear an RFID code or all RFID codes." +
1841
- "\n" +
1842
- "† The User ID is an obsolete field name, use RFIDSlotIndex instead." +
1843
1705
  "\n" +
1844
1706
  "For each RFID Code cleared whose user doesn’t have a PIN Code or other credential type, then the " +
1845
1707
  "corresponding user record’s UserStatus value shall be set to Available, and UserType value shall be " +
1846
1708
  "set to UnrestrictedUser and all schedules shall be cleared.",
1847
-
1848
- xref: { document: "cluster", section: "5.2.10.32" }
1709
+ xref: { document: "cluster", section: "5.2.10.30" }
1849
1710
  },
1850
1711
 
1851
1712
  Field({
@@ -1853,7 +1714,7 @@ export const DoorLock = Cluster(
1853
1714
  constraint: "1 to numberOfRfidUsersSupported, 65534",
1854
1715
  details: "This field shall indicate a valid RFID code slot index or 0xFFFE to indicate all RFID code slots " +
1855
1716
  "shall be cleared.",
1856
- xref: { document: "cluster", section: "5.2.10.32.1" }
1717
+ xref: { document: "cluster", section: "5.2.10.30.1" }
1857
1718
  })
1858
1719
  ),
1859
1720
 
@@ -1863,7 +1724,7 @@ export const DoorLock = Cluster(
1863
1724
  details: "Clear out all RFIDs on the lock. If you clear all RFID codes and this user didn’t have a PIN code, " +
1864
1725
  "the user status has to be set to \"0 Available\", the user type has to be set to the default value, " +
1865
1726
  "and all schedules which are supported have to be set to the default values.",
1866
- xref: { document: "cluster", section: "5.2.10.33" }
1727
+ xref: { document: "cluster", section: "5.2.10.31" }
1867
1728
  }),
1868
1729
 
1869
1730
  Command(
@@ -1889,21 +1750,21 @@ export const DoorLock = Cluster(
1889
1750
  " • INVALID_COMMAND, if one or more fields violate constraints or are invalid or if OperationType " +
1890
1751
  " is Modify and UserIndex points to an available slot.",
1891
1752
 
1892
- xref: { document: "cluster", section: "5.2.10.34" }
1753
+ xref: { document: "cluster", section: "5.2.10.32" }
1893
1754
  },
1894
1755
 
1895
1756
  Field({
1896
1757
  name: "OperationType", id: 0x0, type: "DataOperationTypeEnum", conformance: "M",
1897
1758
  constraint: "add, modify",
1898
1759
  details: "This field shall indicate the type of operation.",
1899
- xref: { document: "cluster", section: "5.2.10.34.1" }
1760
+ xref: { document: "cluster", section: "5.2.10.32.1" }
1900
1761
  }),
1901
1762
 
1902
1763
  Field({
1903
1764
  name: "UserIndex", id: 0x1, type: "uint16", conformance: "M",
1904
1765
  constraint: "1 to numberOfTotalUsersSupported",
1905
1766
  details: "This field shall indicate the user ID.",
1906
- xref: { document: "cluster", section: "5.2.10.34.2" }
1767
+ xref: { document: "cluster", section: "5.2.10.32.2" }
1907
1768
  }),
1908
1769
 
1909
1770
  Field({
@@ -1920,7 +1781,7 @@ export const DoorLock = Cluster(
1920
1781
  "\n" +
1921
1782
  "If UserName is not null, the UserName in the user record shall be set to the provided value.",
1922
1783
 
1923
- xref: { document: "cluster", section: "5.2.10.34.3" }
1784
+ xref: { document: "cluster", section: "5.2.10.32.3" }
1924
1785
  }),
1925
1786
 
1926
1787
  Field({
@@ -1939,7 +1800,7 @@ export const DoorLock = Cluster(
1939
1800
  "\n" +
1940
1801
  "If UserUniqueID is not null, the UserUniqueID in the user record shall be set to the provided value.",
1941
1802
 
1942
- xref: { document: "cluster", section: "5.2.10.34.4" }
1803
+ xref: { document: "cluster", section: "5.2.10.32.4" }
1943
1804
  }),
1944
1805
 
1945
1806
  Field({
@@ -1957,7 +1818,7 @@ export const DoorLock = Cluster(
1957
1818
  "\n" +
1958
1819
  "If UserStatus is not null, the UserStatus in the user record shall be set to the provided value.",
1959
1820
 
1960
- xref: { document: "cluster", section: "5.2.10.34.5" }
1821
+ xref: { document: "cluster", section: "5.2.10.32.5" }
1961
1822
  }),
1962
1823
 
1963
1824
  Field({
@@ -1976,7 +1837,7 @@ export const DoorLock = Cluster(
1976
1837
  "\n" +
1977
1838
  "If UserType is not null, the UserType in the user record shall be set to the provided value.",
1978
1839
 
1979
- xref: { document: "cluster", section: "5.2.10.34.6" }
1840
+ xref: { document: "cluster", section: "5.2.10.32.6" }
1980
1841
  }),
1981
1842
 
1982
1843
  Field({
@@ -1999,7 +1860,7 @@ export const DoorLock = Cluster(
1999
1860
  "If CredentialRule is not null, the CredentialRule in the user record shall be set to the provided " +
2000
1861
  "value.",
2001
1862
 
2002
- xref: { document: "cluster", section: "5.2.10.34.7" }
1863
+ xref: { document: "cluster", section: "5.2.10.32.7" }
2003
1864
  })
2004
1865
  ),
2005
1866
 
@@ -2015,7 +1876,7 @@ export const DoorLock = Cluster(
2015
1876
  "COMMAND, etc.) as needed otherwise the GetUserResponse Command shall be sent implying a status of " +
2016
1877
  "SUCCESS.",
2017
1878
 
2018
- xref: { document: "cluster", section: "5.2.10.35" }
1879
+ xref: { document: "cluster", section: "5.2.10.33" }
2019
1880
  },
2020
1881
 
2021
1882
  Field({
@@ -2032,42 +1893,42 @@ export const DoorLock = Cluster(
2032
1893
  "If the requested UserIndex is valid and the UserStatus is Available for the requested UserIndex " +
2033
1894
  "then UserName, UserUniqueID, UserStatus, UserType, CredentialRule, Credentials, CreatorFabricIndex, " +
2034
1895
  "and LastModifiedFabricIndex shall all be null in the response.",
2035
- xref: { document: "cluster", section: "5.2.10.36" }
1896
+ xref: { document: "cluster", section: "5.2.10.34" }
2036
1897
  },
2037
1898
 
2038
1899
  Field({
2039
1900
  name: "UserIndex", id: 0x0, type: "uint16", conformance: "M",
2040
1901
  constraint: "1 to numberOfTotalUsersSupported",
2041
1902
  details: "This field shall indicate the user ID.",
2042
- xref: { document: "cluster", section: "5.2.10.36.1" }
1903
+ xref: { document: "cluster", section: "5.2.10.34.1" }
2043
1904
  }),
2044
1905
 
2045
1906
  Field({
2046
1907
  name: "UserName", id: 0x1, type: "string", conformance: "M", constraint: "max 10", quality: "X",
2047
1908
  details: "This field shall contain a string to use as a human readable identifier for the user.",
2048
- xref: { document: "cluster", section: "5.2.10.36.2" }
1909
+ xref: { document: "cluster", section: "5.2.10.34.2" }
2049
1910
  }),
2050
1911
  Field({
2051
1912
  name: "UserUniqueId", id: 0x2, type: "uint32", conformance: "M", default: 0, quality: "X",
2052
1913
  details: "See UserUniqueID field.",
2053
- xref: { document: "cluster", section: "5.2.10.36.3" }
1914
+ xref: { document: "cluster", section: "5.2.10.34.3" }
2054
1915
  }),
2055
1916
  Field({
2056
1917
  name: "UserStatus", id: 0x3, type: "UserStatusEnum", conformance: "M", default: 0, quality: "X",
2057
1918
  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" }
1919
+ xref: { document: "cluster", section: "5.2.10.34.4" }
2059
1920
  }),
2060
1921
  Field({
2061
1922
  name: "UserType", id: 0x4, type: "UserTypeEnum", conformance: "M", default: 0, quality: "X",
2062
1923
  details: "This field shall indicate the UserType assigned to this user when created or modified.",
2063
- xref: { document: "cluster", section: "5.2.10.36.5" }
1924
+ xref: { document: "cluster", section: "5.2.10.34.5" }
2064
1925
  }),
2065
1926
 
2066
1927
  Field({
2067
1928
  name: "CredentialRule", id: 0x5, type: "CredentialRuleEnum", conformance: "M", constraint: "desc",
2068
1929
  default: 0, quality: "X",
2069
1930
  details: "This field shall indicate the CredentialRule set for this user.",
2070
- xref: { document: "cluster", section: "5.2.10.36.6" }
1931
+ xref: { document: "cluster", section: "5.2.10.34.6" }
2071
1932
  }),
2072
1933
 
2073
1934
  Field(
@@ -2075,7 +1936,7 @@ export const DoorLock = Cluster(
2075
1936
  name: "Credentials", id: 0x6, type: "list", conformance: "M",
2076
1937
  constraint: "0 to numberOfCredentialsSupportedPerUser", quality: "X",
2077
1938
  details: "This field shall contain a list of credentials for this user.",
2078
- xref: { document: "cluster", section: "5.2.10.36.7" }
1939
+ xref: { document: "cluster", section: "5.2.10.34.7" }
2079
1940
  },
2080
1941
 
2081
1942
  Field({ name: "entry", type: "CredentialStruct" })
@@ -2087,7 +1948,7 @@ export const DoorLock = Cluster(
2087
1948
  "UserStatus is set to Available or when the creator fabric cannot be determined (for example, when " +
2088
1949
  "user was created outside the Interaction Model) and shall NOT be null otherwise. This value shall " +
2089
1950
  "be set to 0 if the original creator fabric was deleted.",
2090
- xref: { document: "cluster", section: "5.2.10.36.8" }
1951
+ xref: { document: "cluster", section: "5.2.10.34.8" }
2091
1952
  }),
2092
1953
 
2093
1954
  Field({
@@ -2096,7 +1957,7 @@ export const DoorLock = Cluster(
2096
1957
  "null if UserStatus is set to Available or when the modifier fabric cannot be determined (for " +
2097
1958
  "example, when user was modified outside the Interaction Model) and shall NOT be null otherwise. " +
2098
1959
  "This value shall be set to 0 if the last modifier fabric was deleted.",
2099
- xref: { document: "cluster", section: "5.2.10.36.9" }
1960
+ xref: { document: "cluster", section: "5.2.10.34.9" }
2100
1961
  }),
2101
1962
 
2102
1963
  Field({
@@ -2106,7 +1967,7 @@ export const DoorLock = Cluster(
2106
1967
  "identifying occupied user slots in the database. This shall NOT be null if there is at least one " +
2107
1968
  "occupied entry after the requested UserIndex in the User database and shall be null if there are no " +
2108
1969
  "more occupied entries.",
2109
- xref: { document: "cluster", section: "5.2.10.36.10" }
1970
+ xref: { document: "cluster", section: "5.2.10.34.10" }
2110
1971
  })
2111
1972
  ),
2112
1973
 
@@ -2124,79 +1985,14 @@ export const DoorLock = Cluster(
2124
1985
  "A LockUserChange event with the provided UserIndex shall be generated after successfully clearing " +
2125
1986
  "users.",
2126
1987
 
2127
- xref: { document: "cluster", section: "5.2.10.37" }
1988
+ xref: { document: "cluster", section: "5.2.10.35" }
2128
1989
  },
2129
1990
 
2130
1991
  Field({
2131
1992
  name: "UserIndex", id: 0x0, type: "uint16", conformance: "M",
2132
1993
  constraint: "1 to numberOfTotalUsersSupported, 65534",
2133
1994
  details: "This field shall specify a valid User index or 0xFFFE to indicate all user slots shall be cleared.",
2134
- xref: { document: "cluster", section: "5.2.10.37.1" }
2135
- })
2136
- ),
2137
-
2138
- Command({
2139
- name: "OperatingEventNotification", id: 0x20, conformance: "[NOT]", direction: "response",
2140
- xref: { document: "cluster", section: "5.2.10" }
2141
- }),
2142
-
2143
- Command(
2144
- {
2145
- name: "ProgrammingEventNotification", id: 0x21, conformance: "[NOT]", direction: "response",
2146
-
2147
- details: "The door lock server sends out a programming event notification whenever a programming event takes " +
2148
- "place on the door lock." +
2149
- "\n" +
2150
- "As with operational events, all programming events can be turned on and off by flipping bits in the " +
2151
- "associated event mask." +
2152
- "\n" +
2153
- "The programming event notification command includes an optional string of data that can be used by " +
2154
- "the manufacturer to pass some manufacturer-specific information if that is required.",
2155
-
2156
- xref: { document: "cluster", section: "5.2.10.39" }
2157
- },
2158
-
2159
- Field({
2160
- name: "ProgramEventSource", id: 0x0, type: "EventSourceEnum", conformance: "M", constraint: "desc",
2161
- details: "This field shall indicate where the event was triggered from.",
2162
- xref: { document: "cluster", section: "5.2.10.39.1" }
2163
- }),
2164
- Field({ name: "ProgramEventCode", id: 0x1, type: "ProgrammingEventCodeEnum", conformance: "M", constraint: "desc" }),
2165
- Field({
2166
- name: "UserId", id: 0x2, type: "uint16", conformance: "M", constraint: "desc",
2167
- details: "This field shall indicate the UserID who performed the event",
2168
- xref: { document: "cluster", section: "5.2.10.39.6" }
2169
- }),
2170
- Field({
2171
- name: "Pin", id: 0x3, type: "octstr", conformance: "M",
2172
- details: "This field shall indicate the PIN that is associated with the UserID who performed the event",
2173
- xref: { document: "cluster", section: "5.2.10.39.7" }
2174
- }),
2175
- Field({
2176
- name: "UserType", id: 0x4, type: "UserTypeEnum", conformance: "M", constraint: "desc",
2177
- details: "This field shall indicate the UserType that is associated with the UserID who performed the event",
2178
- xref: { document: "cluster", section: "5.2.10.39.8" }
2179
- }),
2180
- Field({
2181
- name: "UserStatus", id: 0x5, type: "UserStatusEnum", conformance: "M", constraint: "desc",
2182
- details: "This field shall indicate the UserStatus that is associated with the UserID who performed the event",
2183
- xref: { document: "cluster", section: "5.2.10.39.9" }
2184
- }),
2185
-
2186
- Field({
2187
- name: "LocalTime", id: 0x6, type: "epoch-s", conformance: "M",
2188
- details: "This field shall indicate the time when the event was triggered in Epoch Time in Seconds with local " +
2189
- "time offset based on the local timezone and DST offset on the day represented by the value. If time " +
2190
- "is not supported, the field shall be populated with default not used value 0xFFFFFFFF.",
2191
- xref: { document: "cluster", section: "5.2.10.39.10" }
2192
- }),
2193
-
2194
- Field({
2195
- name: "Data", id: 0x7, type: "string", conformance: "O",
2196
- details: "This field may contain a variable string, which can be used to pass data associated with a " +
2197
- "particular event. Generally this field will be left empty. However, manufacturer can choose to use " +
2198
- "this field to store/display manufacturer-specific information.",
2199
- xref: { document: "cluster", section: "5.2.10.39.11" }
1995
+ xref: { document: "cluster", section: "5.2.10.35.1" }
2200
1996
  })
2201
1997
  ),
2202
1998
 
@@ -2208,21 +2004,21 @@ export const DoorLock = Cluster(
2208
2004
  "or ProgrammingUser." +
2209
2005
  "\n" +
2210
2006
  "Fields used for different use cases:",
2211
- xref: { document: "cluster", section: "5.2.10.40" }
2007
+ xref: { document: "cluster", section: "5.2.10.36" }
2212
2008
  },
2213
2009
 
2214
2010
  Field({
2215
2011
  name: "OperationType", id: 0x0, type: "DataOperationTypeEnum", conformance: "M",
2216
2012
  constraint: "add, modify",
2217
2013
  details: "This field shall indicate the set credential operation type requested.",
2218
- xref: { document: "cluster", section: "5.2.10.40.1" }
2014
+ xref: { document: "cluster", section: "5.2.10.36.1" }
2219
2015
  }),
2220
2016
 
2221
2017
  Field({
2222
2018
  name: "Credential", id: 0x1, type: "CredentialStruct", conformance: "M",
2223
2019
  details: "This field shall contain a credential structure that contains the CredentialTypeEnum and the " +
2224
2020
  "credential index (if applicable or 0 if not) to set.",
2225
- xref: { document: "cluster", section: "5.2.10.40.2" }
2021
+ xref: { document: "cluster", section: "5.2.10.36.2" }
2226
2022
  }),
2227
2023
 
2228
2024
  Field({
@@ -2231,7 +2027,7 @@ export const DoorLock = Cluster(
2231
2027
  "The length of the credential data shall conform to the limits of the CredentialType specified in " +
2232
2028
  "the Credential structure otherwise an INVALID_COMMAND status shall be returned in the " +
2233
2029
  "SetCredentialResponse command.",
2234
- xref: { document: "cluster", section: "5.2.10.40.3" }
2030
+ xref: { document: "cluster", section: "5.2.10.36.3" }
2235
2031
  }),
2236
2032
 
2237
2033
  Field({
@@ -2240,7 +2036,7 @@ export const DoorLock = Cluster(
2240
2036
  details: "This field shall indicate the user index to the user record that corresponds to the credential " +
2241
2037
  "being added or modified. This shall be null if OperationType is add and a new credential and user " +
2242
2038
  "is being added at the same time.",
2243
- xref: { document: "cluster", section: "5.2.10.40.4" }
2039
+ xref: { document: "cluster", section: "5.2.10.36.4" }
2244
2040
  }),
2245
2041
 
2246
2042
  Field({
@@ -2249,7 +2045,7 @@ export const DoorLock = Cluster(
2249
2045
  details: "This field shall indicate the user status to use in the new user record if a new user is being " +
2250
2046
  "created. This shall be null if OperationType is Modify. This may be null when adding a new " +
2251
2047
  "credential and user.",
2252
- xref: { document: "cluster", section: "5.2.10.40.5" }
2048
+ xref: { document: "cluster", section: "5.2.10.36.5" }
2253
2049
  }),
2254
2050
 
2255
2051
  Field({
@@ -2259,7 +2055,7 @@ export const DoorLock = Cluster(
2259
2055
  details: "This field shall indicate the user type to use in the new user record if a new user is being " +
2260
2056
  "created. This shall be null if OperationType is Modify. This may be null when adding a new " +
2261
2057
  "credential and user.",
2262
- xref: { document: "cluster", section: "5.2.10.40.6" }
2058
+ xref: { document: "cluster", section: "5.2.10.36.6" }
2263
2059
  })
2264
2060
  ),
2265
2061
 
@@ -2267,7 +2063,7 @@ export const DoorLock = Cluster(
2267
2063
  {
2268
2064
  name: "SetCredentialResponse", id: 0x23, conformance: "USR", direction: "response",
2269
2065
  details: "Returns the status for setting the specified credential.",
2270
- xref: { document: "cluster", section: "5.2.10.41" }
2066
+ xref: { document: "cluster", section: "5.2.10.37" }
2271
2067
  },
2272
2068
 
2273
2069
  Field({
@@ -2288,8 +2084,15 @@ export const DoorLock = Cluster(
2288
2084
  " • DUPLICATE, if CredentialData provided is a duplicate of another credential with the same " +
2289
2085
  " CredentialType (e.g. duplicate PIN code)." +
2290
2086
  "\n" +
2291
- " • RESOURCE_EXHAUSTED, if OperationType is Add and the user referred to by UserIndex already has " +
2292
- " NumberOfCredentialsSupportedPerUser credentials associated." +
2087
+ " • RESOURCE_EXHAUSTED, if OperationType is Add and the new credential cannot be added due to " +
2088
+ " resource constraints such as:" +
2089
+ "\n" +
2090
+ " ◦ The user referred to by UserIndex already has NumberOfCredentialsSupportedPerUser credentials " +
2091
+ " associated." +
2092
+ "\n" +
2093
+ " ◦ The credential is of type AliroEvictableEndpointKey or AliroNonEvictableEndpointKey, and " +
2094
+ " adding it would cause the total number of credentials of those two types to exceed " +
2095
+ " NumberOfAliroEndpointKeysSupported." +
2293
2096
  "\n" +
2294
2097
  " • INVALID_COMMAND, if one or more fields violate constraints or are invalid." +
2295
2098
  "\n" +
@@ -2298,7 +2101,7 @@ export const DoorLock = Cluster(
2298
2101
  "\n" +
2299
2102
  " • INVALID_COMMAND, if OperationType is Modify and UserIndex points to an available slot.",
2300
2103
 
2301
- xref: { document: "cluster", section: "5.2.10.41.1" }
2104
+ xref: { document: "cluster", section: "5.2.10.37.1" }
2302
2105
  }),
2303
2106
 
2304
2107
  Field({
@@ -2309,7 +2112,7 @@ export const DoorLock = Cluster(
2309
2112
  "Modify; if the OperationType was Add and a new User was created this shall NOT be null and shall " +
2310
2113
  "provide the UserIndex created. If the OperationType was Add and an existing User was associated " +
2311
2114
  "with the new credential then this shall be null.",
2312
- xref: { document: "cluster", section: "5.2.10.41.2" }
2115
+ xref: { document: "cluster", section: "5.2.10.37.2" }
2313
2116
  }),
2314
2117
 
2315
2118
  Field({
@@ -2323,7 +2126,7 @@ export const DoorLock = Cluster(
2323
2126
  "NextCredentialIndex reported shall NOT exceed the maximum number of credentials for a particular " +
2324
2127
  "credential type.",
2325
2128
 
2326
- xref: { document: "cluster", section: "5.2.10.41.3" }
2129
+ xref: { document: "cluster", section: "5.2.10.37.3" }
2327
2130
  })
2328
2131
  ),
2329
2132
 
@@ -2336,14 +2139,14 @@ export const DoorLock = Cluster(
2336
2139
  "An InvokeResponse command shall be sent with an appropriate error (e.g. FAILURE, INVALID_COMMAND, " +
2337
2140
  "etc.) as needed otherwise the GetCredentialStatusResponse command shall be sent implying a status " +
2338
2141
  "of SUCCESS.",
2339
- xref: { document: "cluster", section: "5.2.10.42" }
2142
+ xref: { document: "cluster", section: "5.2.10.38" }
2340
2143
  },
2341
2144
 
2342
2145
  Field({
2343
2146
  name: "Credential", id: 0x0, type: "CredentialStruct", conformance: "M",
2344
2147
  details: "This field shall contain a credential structure that contains the CredentialTypeEnum and the " +
2345
2148
  "credential index (if applicable or 0 if not) to retrieve the status for.",
2346
- xref: { document: "cluster", section: "5.2.10.42.1" }
2149
+ xref: { document: "cluster", section: "5.2.10.38.1" }
2347
2150
  })
2348
2151
  ),
2349
2152
 
@@ -2351,14 +2154,14 @@ export const DoorLock = Cluster(
2351
2154
  {
2352
2155
  name: "GetCredentialStatusResponse", id: 0x25, conformance: "USR", direction: "response",
2353
2156
  details: "Returns the status for the specified credential.",
2354
- xref: { document: "cluster", section: "5.2.10.43" }
2157
+ xref: { document: "cluster", section: "5.2.10.39" }
2355
2158
  },
2356
2159
 
2357
2160
  Field({
2358
2161
  name: "CredentialExists", id: 0x0, type: "bool", conformance: "M",
2359
2162
  details: "This field shall indicate if the requested credential type and index exists and is populated for " +
2360
2163
  "the requested user index.",
2361
- xref: { document: "cluster", section: "5.2.10.43.1" }
2164
+ xref: { document: "cluster", section: "5.2.10.39.1" }
2362
2165
  }),
2363
2166
 
2364
2167
  Field({
@@ -2368,7 +2171,7 @@ export const DoorLock = Cluster(
2368
2171
  "If CredentialType requested was ProgrammingPIN then UserIndex shall be null; otherwise, UserIndex " +
2369
2172
  "shall be null if CredentialExists is set to False and shall NOT be null if CredentialExists is set " +
2370
2173
  "to True.",
2371
- xref: { document: "cluster", section: "5.2.10.43.2" }
2174
+ xref: { document: "cluster", section: "5.2.10.39.2" }
2372
2175
  }),
2373
2176
 
2374
2177
  Field({
@@ -2377,7 +2180,7 @@ export const DoorLock = Cluster(
2377
2180
  "if CredentialExists is set to False or when the creator fabric cannot be determined (for example, " +
2378
2181
  "when credential was created outside the Interaction Model) and shall NOT be null otherwise. This " +
2379
2182
  "value shall be set to 0 if the original creator fabric was deleted.",
2380
- xref: { document: "cluster", section: "5.2.10.43.3" }
2183
+ xref: { document: "cluster", section: "5.2.10.39.3" }
2381
2184
  }),
2382
2185
 
2383
2186
  Field({
@@ -2386,7 +2189,7 @@ export const DoorLock = Cluster(
2386
2189
  "shall be null if CredentialExists is set to False or when the modifier fabric cannot be determined " +
2387
2190
  "(for example, when credential was modified outside the Interaction Model) and shall NOT be null " +
2388
2191
  "otherwise. This value shall be set to 0 if the last modifier fabric was deleted.",
2389
- xref: { document: "cluster", section: "5.2.10.43.4" }
2192
+ xref: { document: "cluster", section: "5.2.10.39.4" }
2390
2193
  }),
2391
2194
 
2392
2195
  Field({
@@ -2396,11 +2199,34 @@ export const DoorLock = Cluster(
2396
2199
  details: "This field shall indicate the next occupied index in the database for the credential type " +
2397
2200
  "requested, which is useful for quickly identifying occupied credential slots in the database. This " +
2398
2201
  "shall NOT be null if there is at least one occupied entry after the requested credential index in " +
2399
- "the corresponding database and shall be null if there are no more occupied entries. The " +
2400
- "NextCredentialIndex reported shall NOT exceed the maximum number of credentials for a particular " +
2401
- "credential type.",
2202
+ "the corresponding" +
2203
+ "\n" +
2204
+ "database and shall be null if there are no more occupied entries. The NextCredentialIndex reported " +
2205
+ "shall NOT exceed the maximum number of credentials for a particular credential type.",
2206
+
2207
+ xref: { document: "cluster", section: "5.2.10.39.5" }
2208
+ }),
2209
+
2210
+ Field({
2211
+ name: "CredentialData", id: 0x5, type: "octstr", conformance: "[ALIRO]", constraint: "desc",
2212
+ quality: "X",
2213
+
2214
+ details: "This field shall indicate the credential data for the requested user index." +
2215
+ "\n" +
2216
+ "If the CredentialType in the GetCredentialStatus command was not AliroCredentialIssuerKey, " +
2217
+ "AliroEvictableEndpointKey, or AliroNonEvictableEndpointKey, this field shall NOT be included." +
2218
+ "\n" +
2219
+ "Otherwise, if CredentialExists is false this field shall be null." +
2220
+ "\n" +
2221
+ "Otherwise, the value of this field shall be the value of the relevant credential, as a 65-byte " +
2222
+ "uncompressed elliptic curve public key as defined in section 2.3.3 of SEC 1." +
2223
+ "\n" +
2224
+ "NOTE" +
2225
+ "\n" +
2226
+ "Since the Aliro credentials are public keys, there is no security risk in allowing them to be read. " +
2227
+ "Possession of the credential octet string does not allow operating the lock.",
2402
2228
 
2403
- xref: { document: "cluster", section: "5.2.10.43.5" }
2229
+ xref: { document: "cluster", section: "5.2.10.39.6" }
2404
2230
  })
2405
2231
  ),
2406
2232
 
@@ -2415,12 +2241,12 @@ export const DoorLock = Cluster(
2415
2241
  "\n" +
2416
2242
  "For each credential cleared whose user doesn’t have another valid credential, the corresponding " +
2417
2243
  "user record shall be reset back to default values and its UserStatus value shall be set to " +
2418
- "Available and UserType value shall be set to UnrestrictedUser and all schedules shall be cleared. In" +
2244
+ "Available and UserType value shall be set to UnrestrictedUser and all schedules shall be cleared. " +
2245
+ "In this case a LockUserChange event shall be generated for the user being cleared." +
2419
2246
  "\n" +
2420
- "this case a LockUserChange event shall be generated for the user being cleared. Return status shall " +
2421
- "be one of the following values:",
2247
+ "Return status shall be one of the following values:",
2422
2248
 
2423
- xref: { document: "cluster", section: "5.2.10.44" }
2249
+ xref: { document: "cluster", section: "5.2.10.40" }
2424
2250
  },
2425
2251
 
2426
2252
  Field({
@@ -2429,7 +2255,7 @@ export const DoorLock = Cluster(
2429
2255
  details: "This field shall contain a credential structure that contains the CredentialTypeEnum and the " +
2430
2256
  "credential index (0xFFFE for all credentials or 0 if not applicable) to clear. This shall be null " +
2431
2257
  "if clearing all credential types otherwise it shall NOT be null.",
2432
- xref: { document: "cluster", section: "5.2.10.44.1" }
2258
+ xref: { document: "cluster", section: "5.2.10.40.1" }
2433
2259
  })
2434
2260
  ),
2435
2261
 
@@ -2447,16 +2273,65 @@ export const DoorLock = Cluster(
2447
2273
  "If the attribute AutoRelockTime is supported, the lock will transition to the locked state when the " +
2448
2274
  "auto relock time has expired.",
2449
2275
 
2450
- xref: { document: "cluster", section: "5.2.10.45" }
2276
+ xref: { document: "cluster", section: "5.2.10.41" }
2451
2277
  },
2452
2278
 
2453
2279
  Field({
2454
2280
  name: "PinCode", id: 0x0, type: "octstr", conformance: "[COTA & PIN]",
2455
2281
  details: "See PINCode field.",
2456
- xref: { document: "cluster", section: "5.2.10.45.1" }
2282
+ xref: { document: "cluster", section: "5.2.10.41.1" }
2283
+ })
2284
+ ),
2285
+
2286
+ Command(
2287
+ {
2288
+ name: "SetAliroReaderConfig", id: 0x28, access: "A T", conformance: "ALIRO", direction: "request",
2289
+ response: "status",
2290
+ details: "This command allows communicating an Aliro Reader configuration, as defined in [Aliro], to the lock.",
2291
+ xref: { document: "cluster", section: "5.2.10.42" }
2292
+ },
2293
+
2294
+ Field({
2295
+ name: "SigningKey", id: 0x0, type: "octstr", conformance: "M", constraint: "32",
2296
+ details: "This field shall indicate the signing key component of the Reader’s key pair.",
2297
+ xref: { document: "cluster", section: "5.2.10.42.1" }
2298
+ }),
2299
+
2300
+ Field({
2301
+ name: "VerificationKey", id: 0x1, type: "octstr", conformance: "M", constraint: "65",
2302
+ details: "This field shall indicate the verification key component of the Reader’s key pair. This shall be an " +
2303
+ "uncompressed elliptic curve public key as defined in section 2.3.3 of SEC 1.",
2304
+ xref: { document: "cluster", section: "5.2.10.42.2" }
2305
+ }),
2306
+
2307
+ Field({
2308
+ name: "GroupIdentifier", id: 0x2, type: "octstr", conformance: "M", constraint: "16",
2309
+ details: "This field shall indicate the reader group identifier for the lock.",
2310
+ xref: { document: "cluster", section: "5.2.10.42.3" }
2311
+ }),
2312
+ Field({
2313
+ name: "GroupResolvingKey", id: 0x3, type: "octstr", conformance: "ALBU", constraint: "16",
2314
+ details: "This field shall indicate the group resolving key for the lock.",
2315
+ xref: { document: "cluster", section: "5.2.10.42.4" }
2457
2316
  })
2458
2317
  ),
2459
2318
 
2319
+ Command({
2320
+ name: "ClearAliroReaderConfig", id: 0x29, access: "A T", conformance: "ALIRO", direction: "request",
2321
+ response: "status",
2322
+
2323
+ details: "This command allows clearing an existing Aliro Reader configuration for the lock. Administrators " +
2324
+ "shall NOT clear an Aliro Reader configuration without explicit user permission." +
2325
+ "\n" +
2326
+ "NOTE" +
2327
+ "\n" +
2328
+ "Using this command will revoke the ability of all existing Aliro user devices that have the old " +
2329
+ "verification key to interact with the lock. This effect is not restricted to a single fabric or " +
2330
+ "otherwise scoped in any way.",
2331
+
2332
+ xref: { document: "cluster", section: "5.2.10.43" }
2333
+ }),
2334
+
2460
2335
  Datatype(
2461
2336
  {
2462
2337
  name: "DaysMaskBitmap", type: "map8",
@@ -2625,7 +2500,6 @@ export const DoorLock = Cluster(
2625
2500
  { name: "AlarmMaskBitmap", type: "map16", xref: { document: "cluster", section: "5.2.6.6" } },
2626
2501
  Field({ name: "LockJammed", constraint: "0", description: "Locking Mechanism Jammed" }),
2627
2502
  Field({ name: "LockFactoryReset", constraint: "1", description: "Lock Reset to Factory Defaults" }),
2628
- Field({ name: "NA", constraint: "2", description: "Reserved" }),
2629
2503
  Field({ name: "LockRadioPowerCycled", constraint: "3", description: "RF Module Power Cycled" }),
2630
2504
  Field({ name: "WrongCodeEntryLimit", constraint: "4", description: "Tamper Alarm - wrong code entry limit" }),
2631
2505
  Field({
@@ -2635,31 +2509,11 @@ export const DoorLock = Cluster(
2635
2509
  Field({ name: "DoorForcedOpen", constraint: "6", description: "Forced Door Open under Door Locked Condition" })
2636
2510
  ),
2637
2511
 
2638
- Datatype(
2639
- { name: "EventMaskBitmap", type: "map16", xref: { document: "cluster", section: "5.2.6.7" } },
2640
- Field({ name: "Bit0", constraint: "0", description: "State of bit 0" }),
2641
- Field({ name: "Bit1", constraint: "1", description: "State of bit 1" }),
2642
- Field({ name: "Bit2", constraint: "2", description: "State of bit 2" }),
2643
- Field({ name: "Bit3", constraint: "3", description: "State of bit 3" }),
2644
- Field({ name: "Bit4", constraint: "4", description: "State of bit 4" }),
2645
- Field({ name: "Bit5", constraint: "5", description: "State of bit 5" }),
2646
- Field({ name: "Bit6", constraint: "6", description: "State of bit 6" }),
2647
- Field({ name: "Bit7", constraint: "7", description: "State of bit 7" }),
2648
- Field({ name: "Bit8", constraint: "8", description: "State of bit 8" }),
2649
- Field({ name: "Bit9", constraint: "9", description: "State of bit 9" }),
2650
- Field({ name: "Bit10", constraint: "10", description: "State of bit 10" }),
2651
- Field({ name: "Bit11", constraint: "11", description: "State of bit 11" }),
2652
- Field({ name: "Bit12", constraint: "12", description: "State of bit 12" }),
2653
- Field({ name: "Bit13", constraint: "13", description: "State of bit 13" }),
2654
- Field({ name: "Bit14", constraint: "14", description: "State of bit 14" }),
2655
- Field({ name: "Bit15", constraint: "15", description: "State of bit 15" })
2656
- ),
2657
-
2658
2512
  Datatype(
2659
2513
  {
2660
2514
  name: "AlarmCodeEnum", type: "enum8",
2661
2515
  details: "This enumeration shall indicate the alarm type.",
2662
- xref: { document: "cluster", section: "5.2.6.8" }
2516
+ xref: { document: "cluster", section: "5.2.6.7" }
2663
2517
  },
2664
2518
  Field({ name: "LockJammed", id: 0x0, conformance: "M", description: "Locking Mechanism Jammed" }),
2665
2519
  Field({ name: "LockFactoryReset", id: 0x1, conformance: "O", description: "Lock Reset to Factory Defaults" }),
@@ -2684,7 +2538,7 @@ export const DoorLock = Cluster(
2684
2538
  {
2685
2539
  name: "CredentialRuleEnum", type: "enum8",
2686
2540
  details: "This enumeration shall indicate the credential rule that can be applied to a particular user.",
2687
- xref: { document: "cluster", section: "5.2.6.9" }
2541
+ xref: { document: "cluster", section: "5.2.6.8" }
2688
2542
  },
2689
2543
  Field({
2690
2544
  name: "Single", id: 0x0, conformance: "USR",
@@ -2704,21 +2558,80 @@ export const DoorLock = Cluster(
2704
2558
  {
2705
2559
  name: "CredentialTypeEnum", type: "enum8",
2706
2560
  details: "This enumeration shall indicate the credential type.",
2707
- xref: { document: "cluster", section: "5.2.6.10" }
2561
+ xref: { document: "cluster", section: "5.2.6.9" }
2708
2562
  },
2709
2563
  Field({ name: "ProgrammingPin", id: 0x0, conformance: "O", description: "Programming PIN code credential type" }),
2710
2564
  Field({ name: "Pin", id: 0x1, conformance: "PIN", description: "PIN code credential type" }),
2711
2565
  Field({ name: "Rfid", id: 0x2, conformance: "RID", description: "RFID identifier credential type" }),
2712
2566
  Field({ name: "Fingerprint", id: 0x3, conformance: "FGP", description: "Fingerprint identifier credential type" }),
2713
2567
  Field({ name: "FingerVein", id: 0x4, conformance: "FGP", description: "Finger vein identifier credential type" }),
2714
- Field({ name: "Face", id: 0x5, conformance: "FACE", description: "Face identifier credential type" })
2568
+ Field({ name: "Face", id: 0x5, conformance: "FACE", description: "Face identifier credential type" }),
2569
+
2570
+ Field({
2571
+ name: "AliroCredentialIssuerKey", id: 0x6, conformance: "ALIRO",
2572
+ description: "A Credential Issuer public key as defined in [Aliro]",
2573
+
2574
+ details: "Credentials of this type shall be 65-byte uncompressed elliptic curve public keys as defined in " +
2575
+ "section 2.3.3 of SEC 1." +
2576
+ "\n" +
2577
+ "Credentials of this type shall NOT be used to allow operating the lock. They shall be used, as " +
2578
+ "defined in [Aliro], to create new credentials of type AliroEvictableEndpointKey via a step-up " +
2579
+ "transaction." +
2580
+ "\n" +
2581
+ "When performing the step-up transaction, the lock shall request the data element with identifier " +
2582
+ "\"matter1\", and shall attempt to create a new credential of type AliroEvictableEndpointKey if and " +
2583
+ "only if the data element is returned and the Access Credential can be validated using the " +
2584
+ "AliroCredentialIssuerKey." +
2585
+ "\n" +
2586
+ "When a new credential of type AliroEvictableEndpointKey is added in this manner, it shall be " +
2587
+ "associated with the same user record as the AliroCredentialIssuerKey credential that allowed the " +
2588
+ "new credential to be added." +
2589
+ "\n" +
2590
+ "If there are no available credential slots to add a new AliroEvictableEndpointKey credential (i.e. " +
2591
+ "either the NumberOfCredentialsSupportedPerUser or the NumberOfAliroEndpointKeysSupported limit has " +
2592
+ "been reached) but there exist credentials of type AliroEvictableEndpointKey associated with the " +
2593
+ "user record, the server shall remove one of those credentials using the same procedure it would " +
2594
+ "follow for the ClearCredential command before adding the new credential." +
2595
+ "\n" +
2596
+ "If there are no available credential slots to add a new AliroEvictableEndpointKey credential (i.e. " +
2597
+ "either the NumberOfCredentialsSupportedPerUser or the NumberOfAliroEndpointKeysSupported limit has " +
2598
+ "been reached) and there do not exist credentials of type AliroEvictableEndpointKey associated with " +
2599
+ "the user record, a new AliroEvictableEndpointKey credential shall NOT be created." +
2600
+ "\n" +
2601
+ "If the step-up process results in addition of new credentials, the corresponding LockUserChange " +
2602
+ "event shall have OperationSource set to Aliro." +
2603
+ "\n" +
2604
+ "If the step-up process results in the lock state changing (e.g. locking or unlocking), the " +
2605
+ "credential associated with those changes in the LockOperation events shall be the newly provisioned " +
2606
+ "AliroEvictableEndpointKey credential if one was created. If no new AliroEvictableEndpointKey " +
2607
+ "credential was created, the credential associated with the changes in the LockOperation events " +
2608
+ "shall be the AliroCredentialIssuerKey credential used for the step-up.",
2609
+
2610
+ xref: { document: "cluster", section: "5.2.6.9.1" }
2611
+ }),
2612
+
2613
+ Field({
2614
+ name: "AliroEvictableEndpointKey", id: 0x7, conformance: "ALIRO",
2615
+ description: "An Endpoint public key as defined in [Aliro] which can be evicted if space is needed for another endpoint key",
2616
+ details: "Credentials of this type shall be 65-byte uncompressed elliptic curve public keys as defined in " +
2617
+ "section 2.3.3 of SEC 1.",
2618
+ xref: { document: "cluster", section: "5.2.6.9.2" }
2619
+ }),
2620
+
2621
+ Field({
2622
+ name: "AliroNonEvictableEndpointKey", id: 0x8, conformance: "ALIRO",
2623
+ description: "An Endpoint public key as defined in [Aliro] which cannot be evicted if space is needed for another endpoint key",
2624
+ details: "Credentials of this type shall be 65-byte uncompressed elliptic curve public keys as defined in " +
2625
+ "section 2.3.3 of SEC 1.",
2626
+ xref: { document: "cluster", section: "5.2.6.9.3" }
2627
+ })
2715
2628
  ),
2716
2629
 
2717
2630
  Datatype(
2718
2631
  {
2719
2632
  name: "DataOperationTypeEnum", type: "enum8",
2720
2633
  details: "This enumeration shall indicate the data operation performed.",
2721
- xref: { document: "cluster", section: "5.2.6.11" }
2634
+ xref: { document: "cluster", section: "5.2.6.10" }
2722
2635
  },
2723
2636
  Field({ name: "Add", id: 0x0, conformance: "M", description: "Data is being added or was added" }),
2724
2637
  Field({ name: "Clear", id: 0x1, conformance: "M", description: "Data is being cleared or was cleared" }),
@@ -2729,7 +2642,7 @@ export const DoorLock = Cluster(
2729
2642
  {
2730
2643
  name: "DoorStateEnum", type: "enum8",
2731
2644
  details: "This enumeration shall indicate the current door state.",
2732
- xref: { document: "cluster", section: "5.2.6.12" }
2645
+ xref: { document: "cluster", section: "5.2.6.11" }
2733
2646
  },
2734
2647
  Field({ name: "DoorOpen", id: 0x0, conformance: "DPS", description: "Door state is open" }),
2735
2648
  Field({ name: "DoorClosed", id: 0x1, conformance: "DPS", description: "Door state is closed" }),
@@ -2746,7 +2659,7 @@ export const DoorLock = Cluster(
2746
2659
  {
2747
2660
  name: "LockDataTypeEnum", type: "enum8",
2748
2661
  details: "This enumeration shall indicate the data type that is being or has changed.",
2749
- xref: { document: "cluster", section: "5.2.6.13" }
2662
+ xref: { document: "cluster", section: "5.2.6.12" }
2750
2663
  },
2751
2664
  Field({
2752
2665
  name: "Unspecified", id: 0x0, conformance: "O",
@@ -2791,6 +2704,18 @@ export const DoorLock = Cluster(
2791
2704
  Field({
2792
2705
  name: "Face", id: 0xa, conformance: "FACE",
2793
2706
  description: "Lock user face information was added, cleared, or modified."
2707
+ }),
2708
+ Field({
2709
+ name: "AliroCredentialIssuerKey", id: 0xb, conformance: "ALIRO",
2710
+ description: "An Aliro credential issuer key credential was added, cleared, or modified."
2711
+ }),
2712
+ Field({
2713
+ name: "AliroEvictableEndpointKey", id: 0xc, conformance: "ALIRO",
2714
+ description: "An Aliro endpoint key credential which can be evicted credential was added, cleared, or modified."
2715
+ }),
2716
+ Field({
2717
+ name: "AliroNonEvictableEndpointKey", id: 0xd, conformance: "ALIRO",
2718
+ description: "An Aliro endpoint key credential which cannot be evicted was added, cleared, or modified."
2794
2719
  })
2795
2720
  ),
2796
2721
 
@@ -2798,7 +2723,7 @@ export const DoorLock = Cluster(
2798
2723
  {
2799
2724
  name: "LockOperationTypeEnum", type: "enum8",
2800
2725
  details: "This enumeration shall indicate the type of Lock operation performed.",
2801
- xref: { document: "cluster", section: "5.2.6.14" }
2726
+ xref: { document: "cluster", section: "5.2.6.13" }
2802
2727
  },
2803
2728
  Field({ name: "Lock", id: 0x0, conformance: "M", description: "Lock operation" }),
2804
2729
  Field({ name: "Unlock", id: 0x1, conformance: "M", description: "Unlock operation" }),
@@ -2817,7 +2742,7 @@ export const DoorLock = Cluster(
2817
2742
  {
2818
2743
  name: "OperationErrorEnum", type: "enum8",
2819
2744
  details: "This enumeration shall indicate the error cause of the Lock/Unlock operation performed.",
2820
- xref: { document: "cluster", section: "5.2.6.15" }
2745
+ xref: { document: "cluster", section: "5.2.6.14" }
2821
2746
  },
2822
2747
  Field({
2823
2748
  name: "Unspecified", id: 0x0, conformance: "O",
@@ -2859,18 +2784,18 @@ export const DoorLock = Cluster(
2859
2784
  "by those commands. The door lock shall NOT disable the radio or otherwise unbind or leave the " +
2860
2785
  "network. It shall still respond to all other commands and requests.",
2861
2786
 
2862
- xref: { document: "cluster", section: "5.2.6.16" }
2787
+ xref: { document: "cluster", section: "5.2.6.15" }
2863
2788
  },
2864
2789
 
2865
2790
  Field({
2866
2791
  name: "Normal", id: 0x0, conformance: "M",
2867
2792
  details: "The lock operates normally. All interfaces are enabled.",
2868
- xref: { document: "cluster", section: "5.2.6.16.1" }
2793
+ xref: { document: "cluster", section: "5.2.6.15.1" }
2869
2794
  }),
2870
2795
  Field({
2871
2796
  name: "Vacation", id: 0x1, conformance: "O",
2872
2797
  details: "Only remote interaction is enabled. The keypad shall only be operable by the master user.",
2873
- xref: { document: "cluster", section: "5.2.6.16.2" }
2798
+ xref: { document: "cluster", section: "5.2.6.15.2" }
2874
2799
  }),
2875
2800
 
2876
2801
  Field({
@@ -2878,7 +2803,7 @@ export const DoorLock = Cluster(
2878
2803
  details: "This mode is only possible if the door is locked. Manual unlocking changes the mode to Normal " +
2879
2804
  "operating mode. All external interaction with the door lock is disabled. This mode is intended to " +
2880
2805
  "be used so that users, presumably inside the property, will have control over the entrance.",
2881
- xref: { document: "cluster", section: "5.2.6.16.3" }
2806
+ xref: { document: "cluster", section: "5.2.6.15.3" }
2882
2807
  }),
2883
2808
 
2884
2809
  Field({
@@ -2886,14 +2811,14 @@ export const DoorLock = Cluster(
2886
2811
  details: "This mode only disables remote interaction with the lock. This does not apply to any remote " +
2887
2812
  "proprietary means of communication. It specifically applies to the Lock, Unlock, Toggle, and Unlock " +
2888
2813
  "with Timeout Commands.",
2889
- xref: { document: "cluster", section: "5.2.6.16.4" }
2814
+ xref: { document: "cluster", section: "5.2.6.15.4" }
2890
2815
  }),
2891
2816
 
2892
2817
  Field({
2893
2818
  name: "Passage", id: 0x4, conformance: "O",
2894
2819
  details: "The lock is open or can be opened or closed at will without the use of a Keypad or other means of " +
2895
2820
  "user validation (e.g. a lock for a business during work hours).",
2896
- xref: { document: "cluster", section: "5.2.6.16.5" }
2821
+ xref: { document: "cluster", section: "5.2.6.15.5" }
2897
2822
  })
2898
2823
  ),
2899
2824
 
@@ -2901,7 +2826,7 @@ export const DoorLock = Cluster(
2901
2826
  {
2902
2827
  name: "OperationSourceEnum", type: "enum8",
2903
2828
  details: "This enumeration shall indicate the source of the Lock/Unlock or user change operation performed.",
2904
- xref: { document: "cluster", section: "5.2.6.17" }
2829
+ xref: { document: "cluster", section: "5.2.6.16" }
2905
2830
  },
2906
2831
  Field({
2907
2832
  name: "Unspecified", id: 0x0, conformance: "O",
@@ -2933,6 +2858,10 @@ export const DoorLock = Cluster(
2933
2858
  Field({
2934
2859
  name: "Biometric", id: 0x9, conformance: "[USR]",
2935
2860
  description: "Lock/unlock operation came from biometric source (e.g. face, fingerprint/fingervein)"
2861
+ }),
2862
+ Field({
2863
+ name: "Aliro", id: 0xa, conformance: "ALIRO",
2864
+ 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]"
2936
2865
  })
2937
2866
  ),
2938
2867
 
@@ -2940,7 +2869,7 @@ export const DoorLock = Cluster(
2940
2869
  {
2941
2870
  name: "UserStatusEnum", type: "enum8",
2942
2871
  details: "This enumeration shall indicate what the status is for a specific user ID.",
2943
- xref: { document: "cluster", section: "5.2.6.18" }
2872
+ xref: { document: "cluster", section: "5.2.6.17" }
2944
2873
  },
2945
2874
  Field({ name: "Available", id: 0x0, conformance: "M", description: "The user ID is available" }),
2946
2875
  Field({ name: "OccupiedEnabled", id: 0x1, conformance: "M", description: "The user ID is occupied and enabled" }),
@@ -2951,7 +2880,7 @@ export const DoorLock = Cluster(
2951
2880
  {
2952
2881
  name: "UserTypeEnum", type: "enum8",
2953
2882
  details: "This enumeration shall indicate what the type is for a specific user ID.",
2954
- xref: { document: "cluster", section: "5.2.6.19" }
2883
+ xref: { document: "cluster", section: "5.2.6.18" }
2955
2884
  },
2956
2885
 
2957
2886
  Field({
@@ -2959,21 +2888,41 @@ export const DoorLock = Cluster(
2959
2888
  description: "The user ID type is unrestricted",
2960
2889
  details: "This value shall indicate the user has access 24/7 provided proper PIN or RFID is supplied (e.g., " +
2961
2890
  "owner).",
2962
- xref: { document: "cluster", section: "5.2.6.19.1" }
2891
+ xref: { document: "cluster", section: "5.2.6.18.1" }
2963
2892
  }),
2964
2893
 
2965
2894
  Field({
2966
2895
  name: "YearDayScheduleUser", id: 0x1, conformance: "O", description: "The user ID type is schedule",
2896
+
2967
2897
  details: "This value shall indicate the user has the ability to open lock within a specific time period " +
2968
- "(e.g., guest).",
2969
- xref: { document: "cluster", section: "5.2.6.19.2" }
2898
+ "(e.g., guest)." +
2899
+ "\n" +
2900
+ "When UserType is set to YearDayScheduleUser, user access shall be restricted as follows:" +
2901
+ "\n" +
2902
+ " • If no YearDaySchedules are set for the user, then access shall be denied" +
2903
+ "\n" +
2904
+ " • If one or more YearDaySchedules are set, user access shall be granted if and only if the " +
2905
+ " current time falls within at least one of the YearDaySchedules. If current time is not known, " +
2906
+ " user access shall NOT be granted.",
2907
+
2908
+ xref: { document: "cluster", section: "5.2.6.18.2" }
2970
2909
  }),
2971
2910
 
2972
2911
  Field({
2973
2912
  name: "WeekDayScheduleUser", id: 0x2, conformance: "O", description: "The user ID type is schedule",
2913
+
2974
2914
  details: "This value shall indicate the user has the ability to open lock based on specific time period " +
2975
- "within a reoccurring weekly schedule (e.g., cleaning worker).",
2976
- xref: { document: "cluster", section: "5.2.6.19.3" }
2915
+ "within a reoccurring weekly schedule (e.g., cleaning worker)." +
2916
+ "\n" +
2917
+ "When UserType is set to WeekDayScheduleUser, user access shall be restricted as follows:" +
2918
+ "\n" +
2919
+ " • If no WeekDaySchedules are set for the user, then access shall be denied" +
2920
+ "\n" +
2921
+ " • If one or more WeekDaySchedules are set, user access shall be granted if and only if the " +
2922
+ " current time falls within at least one of the WeekDaySchedules. If current time is not known, " +
2923
+ " user access shall NOT be granted.",
2924
+
2925
+ xref: { document: "cluster", section: "5.2.6.18.3" }
2977
2926
  }),
2978
2927
 
2979
2928
  Field({
@@ -2982,7 +2931,7 @@ export const DoorLock = Cluster(
2982
2931
  "user can manage the users and user schedules. In all other respects this user matches the " +
2983
2932
  "unrestricted (default) user. ProgrammingUser is the only user that can disable the user interface " +
2984
2933
  "(keypad, remote, etc…).",
2985
- xref: { document: "cluster", section: "5.2.6.19.4" }
2934
+ xref: { document: "cluster", section: "5.2.6.18.4" }
2986
2935
  }),
2987
2936
 
2988
2937
  Field({
@@ -2990,7 +2939,7 @@ export const DoorLock = Cluster(
2990
2939
  details: "This value shall indicate the user is recognized by the lock but does not have the ability to open " +
2991
2940
  "the lock. This user will only cause the lock to generate the appropriate event notification to any " +
2992
2941
  "bound devices.",
2993
- xref: { document: "cluster", section: "5.2.6.19.5" }
2942
+ xref: { document: "cluster", section: "5.2.6.18.5" }
2994
2943
  }),
2995
2944
 
2996
2945
  Field({
@@ -2998,7 +2947,7 @@ export const DoorLock = Cluster(
2998
2947
  details: "This value shall indicate the user has the ability to open lock but a ForcedUser LockOperationType " +
2999
2948
  "and ForcedUser silent alarm will be emitted to allow a notified Node to alert emergency services or " +
3000
2949
  "contacts on the user account when used.",
3001
- xref: { document: "cluster", section: "5.2.6.19.6" }
2950
+ xref: { document: "cluster", section: "5.2.6.18.6" }
3002
2951
  }),
3003
2952
 
3004
2953
  Field({
@@ -3006,7 +2955,7 @@ export const DoorLock = Cluster(
3006
2955
  description: "The user ID type is disposable",
3007
2956
  details: "This value shall indicate the user has the ability to open lock once after which the lock shall " +
3008
2957
  "change the corresponding user record UserStatus value to OccupiedDisabled automatically.",
3009
- xref: { document: "cluster", section: "5.2.6.19.7" }
2958
+ xref: { document: "cluster", section: "5.2.6.18.7" }
3010
2959
  }),
3011
2960
 
3012
2961
  Field({
@@ -3016,14 +2965,29 @@ export const DoorLock = Cluster(
3016
2965
  "ExpiringUserTimeout minutes the corresponding user record UserStatus value shall be set to " +
3017
2966
  "OccupiedDisabled automatically by the lock. The lock shall persist the timeout across reboots such " +
3018
2967
  "that the ExpiringUserTimeout is honored.",
3019
- xref: { document: "cluster", section: "5.2.6.19.8" }
2968
+ xref: { document: "cluster", section: "5.2.6.18.8" }
3020
2969
  }),
3021
2970
 
3022
2971
  Field({
3023
2972
  name: "ScheduleRestrictedUser", id: 0x8, conformance: "WDSCH | YDSCH",
3024
2973
  description: "The user ID type is schedule restricted",
3025
- details: "This value shall indicate the user access is restricted by Week Day and/or Year Day schedule.",
3026
- xref: { document: "cluster", section: "5.2.6.19.9" }
2974
+
2975
+ details: "This value shall indicate the user access is restricted by Week Day and/or Year Day schedule. When " +
2976
+ "UserType is set to ScheduleRestrictedUser, user access shall be restricted as follows:" +
2977
+ "\n" +
2978
+ " • If no WeekDaySchedules and no YearDaySchedules are set for the user, then access shall be denied" +
2979
+ "\n" +
2980
+ " • If one or more WeekDaySchedules are set, but no YearDaySchedules are set for the user, then " +
2981
+ " user access shall be equivalent to the WeekDayScheduleUser UserType" +
2982
+ "\n" +
2983
+ " • If one or more YearDaySchedules are set, but no WeekDaySchedules are set for the user, then " +
2984
+ " user access shall be equivalent to the YearDayScheduleUser UserType" +
2985
+ "\n" +
2986
+ " • If one or WeekDaySchedules are set AND one or more YearDaySchedules are set, then user access " +
2987
+ " shall be granted if and only if the current time falls within at least one of the " +
2988
+ " WeekDaySchedules AND the current time falls within at least one of the YearDaySchedules.",
2989
+
2990
+ xref: { document: "cluster", section: "5.2.6.18.9" }
3027
2991
  }),
3028
2992
 
3029
2993
  Field({
@@ -3033,12 +2997,12 @@ export const DoorLock = Cluster(
3033
2997
  "only. This type of user might be useful for regular delivery services or voice assistant unlocking " +
3034
2998
  "operations to prevent a PIN code credential created for them from being used at the keypad. The PIN " +
3035
2999
  "code credential would only be provided over-the-air for the lock/unlock commands.",
3036
- xref: { document: "cluster", section: "5.2.6.19.10" }
3000
+ xref: { document: "cluster", section: "5.2.6.18.10" }
3037
3001
  })
3038
3002
  ),
3039
3003
 
3040
3004
  Datatype(
3041
- { name: "LockStateEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.20" } },
3005
+ { name: "LockStateEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.19" } },
3042
3006
  Field({ name: "NotFullyLocked", id: 0x0, conformance: "M", description: "Lock state is not fully locked" }),
3043
3007
  Field({ name: "Locked", id: 0x1, conformance: "M", description: "Lock state is fully locked" }),
3044
3008
  Field({ name: "Unlocked", id: 0x2, conformance: "M", description: "Lock state is fully unlocked" }),
@@ -3049,7 +3013,7 @@ export const DoorLock = Cluster(
3049
3013
  ),
3050
3014
 
3051
3015
  Datatype(
3052
- { name: "LockTypeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.21" } },
3016
+ { name: "LockTypeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.20" } },
3053
3017
  Field({ name: "DeadBolt", id: 0x0, conformance: "M", description: "Physical lock type is dead bolt" }),
3054
3018
  Field({ name: "Magnetic", id: 0x1, conformance: "M", description: "Physical lock type is magnetic" }),
3055
3019
  Field({ name: "Other", id: 0x2, conformance: "M", description: "Physical lock type is other" }),
@@ -3068,7 +3032,7 @@ export const DoorLock = Cluster(
3068
3032
  ),
3069
3033
 
3070
3034
  Datatype(
3071
- { name: "LEDSettingEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.22" } },
3035
+ { name: "LEDSettingEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.21" } },
3072
3036
  Field({ name: "NoLedSignal", id: 0x0, conformance: "M", description: "Never use LED for signalization" }),
3073
3037
  Field({
3074
3038
  name: "NoLedSignalAccessAllowed", id: 0x1, conformance: "M",
@@ -3078,7 +3042,7 @@ export const DoorLock = Cluster(
3078
3042
  ),
3079
3043
 
3080
3044
  Datatype(
3081
- { name: "SoundVolumeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.23" } },
3045
+ { name: "SoundVolumeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.22" } },
3082
3046
  Field({ name: "Silent", id: 0x0, conformance: "M", description: "Silent Mode" }),
3083
3047
  Field({ name: "Low", id: 0x1, conformance: "M", description: "Low Volume" }),
3084
3048
  Field({ name: "High", id: 0x2, conformance: "M", description: "High Volume" }),
@@ -3086,82 +3050,24 @@ export const DoorLock = Cluster(
3086
3050
  ),
3087
3051
 
3088
3052
  Datatype(
3089
- { name: "EventTypeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.24" } },
3053
+ { name: "EventTypeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.23" } },
3090
3054
  Field({ name: "Operation", id: 0x0, conformance: "M", description: "Event type is operation" }),
3091
3055
  Field({ name: "Programming", id: 0x1, conformance: "M", description: "Event type is programming" }),
3092
3056
  Field({ name: "Alarm", id: 0x2, conformance: "M", description: "Event type is alarm" })
3093
3057
  ),
3094
3058
 
3095
- Datatype(
3096
- { name: "EventSourceEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.25" } },
3097
- Field({ name: "Keypad", id: 0x0, conformance: "M", description: "Event source is keypad" }),
3098
- Field({ name: "Remote", id: 0x1, conformance: "M", description: "Event source is remote" }),
3099
- Field({ name: "Manual", id: 0x2, conformance: "M", description: "Event source is manual" }),
3100
- Field({ name: "Rfid", id: 0x3, conformance: "M", description: "Event source is RFID" }),
3101
- Field({ name: "Indeterminate", id: 0xff, conformance: "M", description: "Event source is unknown" })
3102
- ),
3103
-
3104
- Datatype(
3105
- { name: "OperationEventCodeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.25.1" } },
3106
- Field({ name: "UnknownOrMfgSpecific", id: 0x0, conformance: "O", description: "Event code is unknown" }),
3107
- Field({ name: "Lock", id: 0x1, conformance: "O", description: "Event code is lock" }),
3108
- Field({ name: "Unlock", id: 0x2, conformance: "O", description: "Event code is unlock" }),
3109
- Field({
3110
- name: "LockFailureInvalidPiNorRfid", id: 0x3, conformance: "O",
3111
- description: "Event code is lock failure due to invalid PIN or RFID"
3112
- }),
3113
- Field({
3114
- name: "LockFailureInvalidSchedule", id: 0x4, conformance: "O",
3115
- description: "Event code is lock failure due to invalid schedule"
3116
- }),
3117
- Field({
3118
- name: "UnlockFailureInvalidPiNorRfid", id: 0x5, conformance: "O",
3119
- description: "Event code is unlock failure due to invalid PIN or RFID"
3120
- }),
3121
- Field({
3122
- name: "UnlockFailureInvalidSchedule", id: 0x6, conformance: "O",
3123
- description: "Event code is unlock failure due to invalid schedule"
3124
- }),
3125
- Field({ name: "OneTouchLock", id: 0x7, conformance: "O", description: "Event code is one touch lock" }),
3126
- Field({ name: "KeyLock", id: 0x8, conformance: "O", description: "Event code is key lock" }),
3127
- Field({ name: "KeyUnlock", id: 0x9, conformance: "O", description: "Event code is key unlock" }),
3128
- Field({ name: "AutoLock", id: 0xa, conformance: "O", description: "Event code is auto lock" }),
3129
- Field({ name: "ScheduleLock", id: 0xb, conformance: "WDSCH | YDSCH", description: "Event code is schedule lock" }),
3130
- Field({ name: "ScheduleUnlock", id: 0xc, conformance: "WDSCH | YDSCH", description: "Event code is schedule unlock" }),
3131
- Field({ name: "ManualLock", id: 0xd, conformance: "O", description: "Event code is manual lock (Key or Thumbturn)" }),
3132
- Field({
3133
- name: "ManualUnlock", id: 0xe, conformance: "O",
3134
- description: "Event code is manual unlock (Key or Thumbturn)"
3135
- }),
3136
- Field({
3137
- name: "NonAccessUserOperationEvent", id: 0xf, conformance: "O",
3138
- description: "Event code is non access user operation"
3139
- })
3140
- ),
3141
-
3142
- Datatype(
3143
- { name: "ProgrammingEventCodeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.6.25.2" } },
3144
- Field({ name: "UnknownOrMfgSpecific", id: 0x0, conformance: "O", description: "Event code is unknown" }),
3145
- Field({ name: "ProgrammingCodeChanged", id: 0x1, conformance: "O", description: "Event code is code changed" }),
3146
- Field({ name: "PinCodeAdded", id: 0x2, conformance: "O", description: "Event code is PIN added" }),
3147
- Field({ name: "PinCodeCleared", id: 0x3, conformance: "O", description: "Event code is PIN cleared" }),
3148
- Field({ name: "PinCodeChanged", id: 0x4, conformance: "O", description: "Event code is PIN changed" }),
3149
- Field({ name: "RfidCodeAdded", id: 0x5, conformance: "O", description: "Event code is RFID added" }),
3150
- Field({ name: "RfidCodeCleared", id: 0x6, conformance: "O", description: "Event code is RFID cleared" })
3151
- ),
3152
-
3153
3059
  Datatype(
3154
3060
  {
3155
3061
  name: "CredentialStruct", type: "struct",
3156
3062
  details: "This struct shall indicate the credential types and their corresponding indices (if any) for the " +
3157
3063
  "event or user record.",
3158
- xref: { document: "cluster", section: "5.2.6.26" }
3064
+ xref: { document: "cluster", section: "5.2.6.24" }
3159
3065
  },
3160
3066
 
3161
3067
  Field({
3162
3068
  name: "CredentialType", id: 0x0, type: "CredentialTypeEnum", conformance: "M",
3163
3069
  details: "This field shall indicate the credential field used to authorize the lock operation.",
3164
- xref: { document: "cluster", section: "5.2.6.26.1" }
3070
+ xref: { document: "cluster", section: "5.2.6.24.1" }
3165
3071
  }),
3166
3072
 
3167
3073
  Field({
@@ -3170,14 +3076,14 @@ export const DoorLock = Cluster(
3170
3076
  "in the list of credentials identified by CredentialType (e.g. PIN, RFID, etc.). This field shall be " +
3171
3077
  "set to 0 if CredentialType is ProgrammingPIN or does not correspond to a list that can be indexed " +
3172
3078
  "into.",
3173
- xref: { document: "cluster", section: "5.2.6.26.2" }
3079
+ xref: { document: "cluster", section: "5.2.6.24.2" }
3174
3080
  })
3175
3081
  ),
3176
3082
 
3177
3083
  Datatype(
3178
3084
  { name: "StatusCodeEnum", type: "enum8", xref: { document: "cluster", section: "5.2.7.1" } },
3179
- Field({ name: "Duplicate", id: 0x2, description: "Entry would cause a duplicate credential/ID." }),
3180
- Field({ name: "Occupied", id: 0x3, description: "Entry would replace an occupied slot." })
3085
+ Field({ name: "Duplicate", id: 0x2, conformance: "M", description: "Entry would cause a duplicate credential/ID." }),
3086
+ Field({ name: "Occupied", id: 0x3, conformance: "M", description: "Entry would replace an occupied slot." })
3181
3087
  )
3182
3088
  );
3183
3089