@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
@@ -18,10 +18,10 @@ const Thermostat = Cluster(
18
18
  asOf: "1.3",
19
19
  classification: "application",
20
20
  pics: "TSTAT",
21
- details: "This cluster provides an interface to the functionality of a thermostat.",
21
+ details: 'This cluster provides an interface to the functionality of a thermostat.\nOptional temperature, humidity and occupancy sensors\nThermostat\nHeating / cooling control panel\nC\nDehumidification configuration\nDehumidification notification\nThermostatS\nHeating / cooling device (e.g. indoor air handler)\nS\nuser interface S\nconfiguration\nC\nConfiguration tool\nThermostat configuration\nC C Fan control S\nThermostatS notification C\nC = Client S = Server\nNote: Device names are examples for illustration purposes only\nFigure 15. Example Usage of the Thermostat and Related Clusters"',
22
22
  xref: { document: "cluster", section: "4.3" }
23
23
  },
24
- Attribute({ name: "ClusterRevision", id: 65533, type: "ClusterRevision", default: 6 }),
24
+ Attribute({ name: "ClusterRevision", id: 65533, type: "ClusterRevision", default: 8 }),
25
25
  Attribute(
26
26
  { name: "FeatureMap", id: 65532, type: "FeatureMap", xref: { document: "cluster", section: "4.3.4" } },
27
27
  Field({
@@ -73,6 +73,20 @@ const Thermostat = Cluster(
73
73
  description: "LocalTemperatureNotExposed",
74
74
  details: "This feature indicates that the Calculated Local Temperature used internally is unavailable to report externally, for example due to the temperature control being done by a separate subsystem which does not offer a view into the currently measured temperature, but allows setpoints to be provided.",
75
75
  xref: { document: "cluster", section: "4.3.4.1" }
76
+ }),
77
+ Field({
78
+ name: "MSCH",
79
+ conformance: "O",
80
+ constraint: "7",
81
+ description: "MatterScheduleConfiguration",
82
+ details: "Supports enhanced schedules"
83
+ }),
84
+ Field({
85
+ name: "PRES",
86
+ conformance: "O",
87
+ constraint: "8",
88
+ description: "Presets",
89
+ details: "Thermostat supports setpoint presets"
76
90
  })
77
91
  ),
78
92
  Attribute({
@@ -84,7 +98,7 @@ const Thermostat = Cluster(
84
98
  default: null,
85
99
  quality: "X P",
86
100
  details: "Indicates the current Calculated Local Temperature, when available.\n \u2022 If the LTNE feature is not supported:\n \u25E6 If the LocalTemperatureCalibration is invalid or currently unavailable, the attribute shall report null.\n \u25E6 If the LocalTemperatureCalibration is valid, the attribute shall report that value.\n \u2022 Otherwise, if the LTNE feature is supported, there is no feedback externally available for the LocalTemperatureCalibration. In that case, the LocalTemperature attribute shall always report null.",
87
- xref: { document: "cluster", section: "4.3.9.3" }
101
+ xref: { document: "cluster", section: "4.3.9.2" }
88
102
  }),
89
103
  Attribute({
90
104
  name: "OutdoorTemperature",
@@ -95,7 +109,7 @@ const Thermostat = Cluster(
95
109
  default: null,
96
110
  quality: "X",
97
111
  details: "Indicates the outdoor temperature, as measured locally or remotely (over the network).",
98
- xref: { document: "cluster", section: "4.3.9.4" }
112
+ xref: { document: "cluster", section: "4.3.9.3" }
99
113
  }),
100
114
  Attribute({
101
115
  name: "Occupancy",
@@ -103,10 +117,9 @@ const Thermostat = Cluster(
103
117
  type: "OccupancyBitmap",
104
118
  access: "R V",
105
119
  conformance: "OCC",
106
- constraint: "desc",
107
120
  default: 1,
108
121
  details: "Indicates whether the heated/cooled space is occupied or not, as measured locally or remotely (over the network).",
109
- xref: { document: "cluster", section: "4.3.9.5" }
122
+ xref: { document: "cluster", section: "4.3.9.4" }
110
123
  }),
111
124
  Attribute({
112
125
  name: "AbsMinHeatSetpointLimit",
@@ -117,7 +130,8 @@ const Thermostat = Cluster(
117
130
  constraint: "desc",
118
131
  default: { type: "celsius", value: 7 },
119
132
  quality: "F",
120
- xref: { document: "cluster", section: "4.3.9" }
133
+ details: "Indicates the absolute minimum level that the heating setpoint may be set to. This is a limitation imposed by the manufacturer.\nRefer to Setpoint Limits for constraints",
134
+ xref: { document: "cluster", section: "4.3.9.5" }
121
135
  }),
122
136
  Attribute({
123
137
  name: "AbsMaxHeatSetpointLimit",
@@ -139,8 +153,7 @@ const Thermostat = Cluster(
139
153
  constraint: "desc",
140
154
  default: { type: "celsius", value: 16 },
141
155
  quality: "F",
142
- details: "Indicates the absolute minimum level that the cooling setpoint may be set to. This is a limitation imposed by the manufacturer.\nRefer to Setpoint Limits for constraints",
143
- xref: { document: "cluster", section: "4.3.9.8" }
156
+ xref: { document: "cluster", section: "4.3.9" }
144
157
  }),
145
158
  Attribute({
146
159
  name: "AbsMaxCoolSetpointLimit",
@@ -152,7 +165,7 @@ const Thermostat = Cluster(
152
165
  default: { type: "celsius", value: 32 },
153
166
  quality: "F",
154
167
  details: "Indicates the absolute maximum level that the cooling setpoint may be set to. This is a limitation imposed by the manufacturer.\nRefer to Setpoint Limits for constraints",
155
- xref: { document: "cluster", section: "4.3.9.9" }
168
+ xref: { document: "cluster", section: "4.3.9.8" }
156
169
  }),
157
170
  Attribute({
158
171
  name: "PiCoolingDemand",
@@ -160,10 +173,10 @@ const Thermostat = Cluster(
160
173
  type: "uint8",
161
174
  access: "R V",
162
175
  conformance: "[COOL]",
163
- constraint: "0 to 100",
176
+ constraint: "0% to 100%",
164
177
  quality: "P",
165
178
  details: "Indicates the level of cooling demanded by the PI (proportional integral) control loop in use by the thermostat (if any), in percent. This value is 0 when the thermostat is in \u201Coff\u201D or \u201Cheating\u201D mode.\nThis attribute is reported regularly and may be used to control a cooling device.",
166
- xref: { document: "cluster", section: "4.3.9.10" }
179
+ xref: { document: "cluster", section: "4.3.9.9" }
167
180
  }),
168
181
  Attribute({
169
182
  name: "PiHeatingDemand",
@@ -171,10 +184,10 @@ const Thermostat = Cluster(
171
184
  type: "uint8",
172
185
  access: "R V",
173
186
  conformance: "[HEAT]",
174
- constraint: "0 to 100",
187
+ constraint: "0% to 100%",
175
188
  quality: "P",
176
189
  details: "Indicates the level of heating demanded by the PI loop in percent. This value is 0 when the thermostat is in \u201Coff\u201D or \u201Ccooling\u201D mode.\nThis attribute is reported regularly and may be used to control a heating device.",
177
- xref: { document: "cluster", section: "4.3.9.11" }
190
+ xref: { document: "cluster", section: "4.3.9.10" }
178
191
  }),
179
192
  Attribute({
180
193
  name: "HvacSystemTypeConfiguration",
@@ -185,8 +198,8 @@ const Thermostat = Cluster(
185
198
  constraint: "desc",
186
199
  default: 0,
187
200
  quality: "N",
188
- details: "Indicates the HVAC system type controlled by the thermostat. If the thermostat uses physical DIP switches to set these parameters, this information shall be available read-only from the DIP switches. If these parameters are set via software, there shall be read/write access in order to provide remote programming capability.",
189
- xref: { document: "cluster", section: "4.3.9.12" }
201
+ details: "Indicates the HVAC system type controlled by the thermostat. If the thermostat uses physical DIP switches to set these parameters, this information shall be available read-only\nfrom the DIP switches. If these parameters are set via software, there shall be read/write access in order to provide remote programming capability.",
202
+ xref: { document: "cluster", section: "4.3.9.11" }
190
203
  }),
191
204
  Attribute({
192
205
  name: "LocalTemperatureCalibration",
@@ -194,11 +207,10 @@ const Thermostat = Cluster(
194
207
  type: "SignedTemperature",
195
208
  access: "RW VM",
196
209
  conformance: "[!LTNE]",
197
- constraint: "-2.5\xB0C to 2.5\xB0C",
198
210
  default: { type: "celsius", value: 0 },
199
211
  quality: "N",
200
- details: "Indicates the offset the Thermostat server shall make to the measured temperature (locally or remotely) to adjust the Calculated Local Temperature prior to using, displaying or reporting it.\nThe purpose of this attribute is to adjust the calibration of the Thermostat server per the user\u2019s preferences (e.g., to match if there are multiple servers displaying different values for the same HVAC area) or compensate for variability amongst temperature sensors.\nIf a Thermostat client attempts to write LocalTemperatureCalibration attribute to an unsupported value (e.g., out of the range supported by the Thermostat server), the Thermostat server shall respond with a status of SUCCESS and set the value of LocalTemperatureCalibration to the upper or lower limit reached.",
201
- xref: { document: "cluster", section: "4.3.9.13" }
212
+ details: "Indicates the offset the Thermostat server shall make to the measured temperature (locally or remotely) to adjust the Calculated Local Temperature prior to using, displaying or reporting it.\nThe purpose of this attribute is to adjust the calibration of the Thermostat server per the user\u2019s preferences (e.g., to match if there are multiple servers displaying different values for the same HVAC area) or compensate for variability amongst temperature sensors.\nIf a Thermostat client attempts to write LocalTemperatureCalibration attribute to an unsupported value (e.g., out of the range supported by the Thermostat server), the Thermostat server shall respond with a status of SUCCESS and set the value of LocalTemperatureCalibration to the upper or lower limit reached.\nNOTE\nPrior to revision 8 of this cluster specification the value of this attribute was constrained to a range of -2.5\xB0C to 2.5\xB0C.",
213
+ xref: { document: "cluster", section: "4.3.9.12" }
202
214
  }),
203
215
  Attribute({
204
216
  name: "OccupiedCoolingSetpoint",
@@ -208,9 +220,9 @@ const Thermostat = Cluster(
208
220
  conformance: "COOL",
209
221
  constraint: "desc",
210
222
  default: { type: "celsius", value: 26 },
211
- quality: "N S",
212
- details: "Indicates the cooling mode setpoint when the room is occupied.\nRefer to Setpoint Limits for constraints. If an attempt is made to set this attribute such that these constraints are violated, a response with the status code CONSTRAINT_ERROR shall be returned.\nIf the occupancy status of the room is unknown, this attribute shall be used as the cooling mode setpoint.",
213
- xref: { document: "cluster", section: "4.3.9.14" }
223
+ quality: "N",
224
+ details: "Indicates the cooling mode setpoint when the room is occupied. Refer to Setpoint Limits for constraints.\nIf an attempt is made to set this attribute to a value greater than MaxCoolSetpointLimit or less than MinCoolSetpointLimit, a response with the status code CONSTRAINT_ERROR shall be returned.\nIf this attribute is set to a value that is less than (OccupiedHeatingSetpoint + MinSetpointDeadBand), the value of OccupiedHeatingSetpoint shall be adjusted to (OccupiedCoolingSetpoint - MinSetpointDeadBand).\nIf the occupancy status of the room is unknown, this attribute shall be used as the cooling mode setpoint.\nIf a client changes the value of this attribute, the server supports the PRES feature, and the server either does not support the OCC feature or the Occupied bit is set on the Occupancy attribute, the value of the ActivePresetHandle attribute shall be set to null.",
225
+ xref: { document: "cluster", section: "4.3.9.13" }
214
226
  }),
215
227
  Attribute({
216
228
  name: "OccupiedHeatingSetpoint",
@@ -220,9 +232,9 @@ const Thermostat = Cluster(
220
232
  conformance: "HEAT",
221
233
  constraint: "desc",
222
234
  default: { type: "celsius", value: 20 },
223
- quality: "N S",
224
- details: "Indicates the heating mode setpoint when the room is occupied.\nRefer to Setpoint Limits for constraints. If an attempt is made to set this attribute such that these constraints are violated, a response with the status code CONSTRAINT_ERROR shall be returned.\nIf the occupancy status of the room is unknown, this attribute shall be used as the heating mode setpoint.",
225
- xref: { document: "cluster", section: "4.3.9.15" }
235
+ quality: "N",
236
+ details: "Indicates the heating mode setpoint when the room is occupied. Refer to Setpoint Limits for constraints.\nIf an attempt is made to set this attribute to a value greater than MaxHeatSetpointLimit or less than MinHeatSetpointLimit, a response with the status code CONSTRAINT_ERROR shall be returned.\nIf this attribute is set to a value that is greater than\nBand), the value of OccupiedCoolingSetpoint shall be adjusted to (OccupiedHeatingSetpoint + MinSetpointDeadBand).\nIf the occupancy status of the room is unknown, this attribute shall be used as the heating mode setpoint.\nIf a client changes the value of this attribute, the server supports the PRES feature, and the server either does not support the OCC feature or the Occupied bit is set on the Occupancy attribute, the value of the ActivePresetHandle attribute shall be set to null.",
237
+ xref: { document: "cluster", section: "4.3.9.14" }
226
238
  }),
227
239
  Attribute({
228
240
  name: "UnoccupiedCoolingSetpoint",
@@ -233,8 +245,8 @@ const Thermostat = Cluster(
233
245
  constraint: "desc",
234
246
  default: { type: "celsius", value: 26 },
235
247
  quality: "N",
236
- details: "Indicates the cooling mode setpoint when the room is unoccupied.\nRefer to Setpoint Limits for constraints. If an attempt is made to set this attribute such that these constraints are violated, a response with the status code CONSTRAINT_ERROR shall be returned.\nIf the occupancy status of the room is unknown, this attribute shall NOT be used.",
237
- xref: { document: "cluster", section: "4.3.9.16" }
248
+ details: "Indicates the cooling mode setpoint when the room is unoccupied. Refer to Setpoint Limits for constraints.\nIf an attempt is made to set this attribute to a value greater than MaxCoolSetpointLimit or less than MinCoolSetpointLimit, a response with the status code CONSTRAINT_ERROR shall be returned.\nIf this attribute is set to a value that is less than (UnoccupiedHeatingSetpoint + MinSetpointDeadBand), the value of UnoccupiedHeatingSetpoint shall be adjusted to (UnoccupiedCoolingSetpoint - MinSetpointDeadBand).\nIf the occupancy status of the room is unknown, this attribute shall NOT be used.\nIf a client changes the value of this attribute, the server supports the PRES and OCC features, and the Occupied bit is not set on the Occupancy attribute, the value of the ActivePresetHandle attribute shall be set to null.",
249
+ xref: { document: "cluster", section: "4.3.9.15" }
238
250
  }),
239
251
  Attribute({
240
252
  name: "UnoccupiedHeatingSetpoint",
@@ -245,8 +257,8 @@ const Thermostat = Cluster(
245
257
  constraint: "desc",
246
258
  default: { type: "celsius", value: 20 },
247
259
  quality: "N",
248
- details: "Indicates the heating mode setpoint when the room is unoccupied.\nRefer to Setpoint Limits for constraints. If an attempt is made to set this attribute such that these constraints are violated, a response with the status code CONSTRAINT_ERROR shall be returned.\nIf the occupancy status of the room is unknown, this attribute shall NOT be used.",
249
- xref: { document: "cluster", section: "4.3.9.17" }
260
+ details: "Indicates the heating mode setpoint when the room is unoccupied. Refer to Setpoint Limits for constraints.\nIf an attempt is made to set this attribute to a value greater than MaxHeatSetpointLimit or less than MinHeatSetpointLimit, a response with the status code CONSTRAINT_ERROR shall be returned.\nIf this attribute is set to a value that is greater than (UnoccupiedCoolingSetpoint - MinSetpointDeadBand), the value of UnoccupiedCoolingSetpoint shall be adjusted to\n+ MinSetpointDeadBand).\nIf the occupancy status of the room is unknown, this attribute shall NOT be used.\nIf a client changes the value of this attribute, the server supports the PRES and OCC features, and the Occupied bit is not set on the Occupancy attribute, the value of the ActivePresetHandle attribute shall be set to null.",
261
+ xref: { document: "cluster", section: "4.3.9.16" }
250
262
  }),
251
263
  Attribute({
252
264
  name: "MinHeatSetpointLimit",
@@ -258,7 +270,7 @@ const Thermostat = Cluster(
258
270
  default: { type: "reference", name: "AbsMinHeatSetpointLimit" },
259
271
  quality: "N",
260
272
  details: "Indicates the minimum level that the heating setpoint may be set to.\nThis attribute, and the following three attributes, allow the user to define setpoint limits more constrictive than the manufacturer imposed ones. Limiting users (e.g., in a commercial building) to such setpoint limits can help conserve power.\nRefer to Setpoint Limits for constraints. If an attempt is made to set this attribute to a value which conflicts with setpoint values then those setpoints shall be adjusted by the minimum amount to permit this attribute to be set to the desired value. If an attempt is made to set this attribute to a value which is not consistent with the constraints and cannot be resolved by modifying setpoints then a response with the status code CONSTRAINT_ERROR shall be returned.",
261
- xref: { document: "cluster", section: "4.3.9.18" }
273
+ xref: { document: "cluster", section: "4.3.9.17" }
262
274
  }),
263
275
  Attribute({
264
276
  name: "MaxHeatSetpointLimit",
@@ -270,7 +282,7 @@ const Thermostat = Cluster(
270
282
  default: { type: "reference", name: "AbsMaxHeatSetpointLimit" },
271
283
  quality: "N",
272
284
  details: "Indicates the maximum level that the heating setpoint may be set to.\nRefer to Setpoint Limits for constraints. If an attempt is made to set this attribute to a value which conflicts with setpoint values then those setpoints shall be adjusted by the minimum amount to permit this attribute to be set to the desired value. If an attempt is made to set this attribute to a value which is not consistent with the constraints and cannot be resolved by modifying setpoints then a response with the status code CONSTRAINT_ERROR shall be returned.",
273
- xref: { document: "cluster", section: "4.3.9.19" }
285
+ xref: { document: "cluster", section: "4.3.9.18" }
274
286
  }),
275
287
  Attribute({
276
288
  name: "MinCoolSetpointLimit",
@@ -282,7 +294,7 @@ const Thermostat = Cluster(
282
294
  default: { type: "reference", name: "AbsMinCoolSetpointLimit" },
283
295
  quality: "N",
284
296
  details: "Indicates the minimum level that the cooling setpoint may be set to.\nRefer to Setpoint Limits for constraints. If an attempt is made to set this attribute to a value which conflicts with setpoint values then those setpoints shall be adjusted by the minimum amount to permit this attribute to be set to the desired value. If an attempt is made to set this attribute to a value which is not consistent with the constraints and cannot be resolved by modifying setpoints then a response with the status code CONSTRAINT_ERROR shall be returned.",
285
- xref: { document: "cluster", section: "4.3.9.20" }
297
+ xref: { document: "cluster", section: "4.3.9.19" }
286
298
  }),
287
299
  Attribute({
288
300
  name: "MaxCoolSetpointLimit",
@@ -294,7 +306,7 @@ const Thermostat = Cluster(
294
306
  default: { type: "reference", name: "AbsMaxCoolSetpointLimit" },
295
307
  quality: "N",
296
308
  details: "Indicates the maximum level that the cooling setpoint may be set to.\nRefer to Setpoint Limits for constraints. If an attempt is made to set this attribute to a value which conflicts with setpoint values then those setpoints shall be adjusted by the minimum amount to permit this attribute to be set to the desired value. If an attempt is made to set this attribute to a value which is not consistent with the constraints and cannot be resolved by modifying setpoints then a response with the status code CONSTRAINT_ERROR shall be returned.",
297
- xref: { document: "cluster", section: "4.3.9.21" }
309
+ xref: { document: "cluster", section: "4.3.9.20" }
298
310
  }),
299
311
  Attribute({
300
312
  name: "MinSetpointDeadBand",
@@ -302,11 +314,11 @@ const Thermostat = Cluster(
302
314
  type: "SignedTemperature",
303
315
  access: "R[W] VM",
304
316
  conformance: "AUTO",
305
- constraint: "0\xB0C to 2.5\xB0C",
317
+ constraint: "0 to 12.7\xB0C",
306
318
  default: { type: "celsius", value: 2 },
307
319
  quality: "N",
308
- details: "On devices which support the AUTO feature, this attribute shall indicate the minimum difference between the Heat Setpoint and the Cool Setpoint.\nRefer to Setpoint Limits for constraints. If an attempt is made to set this attribute to a value which conflicts with setpoint values then those setpoints shall be adjusted by the minimum amount to permit this attribute to be set to the desired value. If an attempt is made to set this attribute to a value which is not consistent with the constraints and cannot be resolved by modifying setpoints then a response with the status code CONSTRAINT_ERROR shall be returned.",
309
- xref: { document: "cluster", section: "4.3.9.22" }
320
+ details: "On devices which support the AUTO feature, this attribute shall indicate the minimum difference between the Heat Setpoint and the Cool Setpoint.\nRefer to Setpoint Limits for constraints.\nNOTE\nPrior to revision 8 of this cluster specification the value of this attribute was constrained to a range of 0\xB0C to 2.5\xB0C.\nNOTE\nFor backwards compatibility, this attribute is optionally writeable. However any writes to this attribute shall be silently ignored.",
321
+ xref: { document: "cluster", section: "4.3.9.21" }
310
322
  }),
311
323
  Attribute({
312
324
  name: "RemoteSensing",
@@ -317,7 +329,7 @@ const Thermostat = Cluster(
317
329
  default: 0,
318
330
  quality: "N",
319
331
  details: "Indicates when the local temperature, outdoor temperature and occupancy are being sensed by remote networked sensors, rather than internal sensors.\nIf the LTNE feature is present in the server, the LocalTemperature RemoteSensing bit value shall always report a value of 0.\nIf the LocalTemperature RemoteSensing bit is written with a value of 1 when the LTNE feature is present, the write shall fail and the server shall report a CONSTRAINT_ERROR.",
320
- xref: { document: "cluster", section: "4.3.9.23" }
332
+ xref: { document: "cluster", section: "4.3.9.22" }
321
333
  }),
322
334
  Attribute({
323
335
  name: "ControlSequenceOfOperation",
@@ -327,8 +339,8 @@ const Thermostat = Cluster(
327
339
  conformance: "M",
328
340
  constraint: "desc",
329
341
  quality: "N",
330
- details: "Indicates the overall operating environment of the thermostat, and thus the possible system modes that the thermostat can operate in.",
331
- xref: { document: "cluster", section: "4.3.9.24" }
342
+ details: "Indicates the overall operating environment of the thermostat, and thus the possible system modes that the thermostat can operate in.\nIf an attempt is made to write to this attribute, the server shall silently ignore the write and the value of this attribute shall remain unchanged. This behavior is in place for backwards compatibility with existing thermostats.",
343
+ xref: { document: "cluster", section: "4.3.9.23" }
332
344
  }),
333
345
  Attribute({
334
346
  name: "SystemMode",
@@ -338,9 +350,9 @@ const Thermostat = Cluster(
338
350
  conformance: "M",
339
351
  constraint: "desc",
340
352
  default: 1,
341
- quality: "N S",
353
+ quality: "N",
342
354
  details: "Indicates the current operating mode of the thermostat. Its value shall be limited by the ControlSequenceOfOperation attribute.",
343
- xref: { document: "cluster", section: "4.3.9.25" }
355
+ xref: { document: "cluster", section: "4.3.9.24" }
344
356
  }),
345
357
  Attribute({
346
358
  name: "ThermostatRunningMode",
@@ -351,7 +363,7 @@ const Thermostat = Cluster(
351
363
  constraint: "desc",
352
364
  default: 0,
353
365
  details: "Indicates the running mode of the thermostat. This attribute uses the same values as SystemModeEnum but can only be Off, Cool or Heat. This attribute is intended to provide additional information when the thermostat\u2019s system mode is in auto mode.",
354
- xref: { document: "cluster", section: "4.3.9.27" }
366
+ xref: { document: "cluster", section: "4.3.9.26" }
355
367
  }),
356
368
  Attribute({
357
369
  name: "StartOfWeek",
@@ -362,7 +374,7 @@ const Thermostat = Cluster(
362
374
  constraint: "desc",
363
375
  quality: "F",
364
376
  details: "Indicates the day of the week that this thermostat considers to be the start of week for weekly setpoint scheduling.\nThis attribute may be able to be used as the base to determine if the device supports weekly scheduling by reading the attribute. Successful response means that the weekly scheduling is supported.",
365
- xref: { document: "cluster", section: "4.3.9.28" }
377
+ xref: { document: "cluster", section: "4.3.9.27" }
366
378
  }),
367
379
  Attribute({
368
380
  name: "NumberOfWeeklyTransitions",
@@ -373,7 +385,7 @@ const Thermostat = Cluster(
373
385
  default: 0,
374
386
  quality: "F",
375
387
  details: "Indicates how many weekly schedule transitions the thermostat is capable of handling.",
376
- xref: { document: "cluster", section: "4.3.9.29" }
388
+ xref: { document: "cluster", section: "4.3.9.28" }
377
389
  }),
378
390
  Attribute({
379
391
  name: "NumberOfDailyTransitions",
@@ -384,7 +396,7 @@ const Thermostat = Cluster(
384
396
  default: 0,
385
397
  quality: "F",
386
398
  details: "Indicates how many daily schedule transitions the thermostat is capable of handling.",
387
- xref: { document: "cluster", section: "4.3.9.30" }
399
+ xref: { document: "cluster", section: "4.3.9.29" }
388
400
  }),
389
401
  Attribute({
390
402
  name: "TemperatureSetpointHold",
@@ -395,8 +407,8 @@ const Thermostat = Cluster(
395
407
  constraint: "desc",
396
408
  default: 0,
397
409
  quality: "N",
398
- details: "Indicates the temperature hold status on the thermostat. If hold status is on, the thermostat SHOULD maintain the temperature setpoint for the current mode until a system mode change. If hold status is off, the thermostat SHOULD follow the setpoint transitions specified by its internal scheduling program. If the thermostat supports setpoint hold for a specific duration, it SHOULD also implement the TemperatureSetpointHoldDuration attribute.",
399
- xref: { document: "cluster", section: "4.3.9.31" }
410
+ details: "Indicates the temperature hold status on the thermostat. If hold status is on, the thermostat SHOULD maintain the temperature setpoint for the current mode until a system mode change. If hold status is off, the thermostat SHOULD follow the setpoint transitions specified by its internal scheduling program. If the thermostat supports setpoint hold for a specific duration, it SHOULD also implement the TemperatureSetpointHoldDuration attribute.\nIf the server supports a setpoint hold for a specific duration, it SHOULD also implement the SetpointHoldExpiryTimestamp attribute.\nIf this attribute is updated to SetpointHoldOn and the TemperatureSetpointHoldDuration has a non- null value and the SetpointHoldExpiryTimestamp is supported, the server shall update the SetpointHoldExpiryTimestamp with a value of current UTC timestamp, in seconds, plus the value in TemperatureSetpointHoldDuration multiplied by 60.\nIf this attribute is updated to SetpointHoldOff and the SetpointHoldExpiryTimestamp is supported, the server shall set the SetpointHoldExpiryTimestamp to null.",
411
+ xref: { document: "cluster", section: "4.3.9.30" }
400
412
  }),
401
413
  Attribute({
402
414
  name: "TemperatureSetpointHoldDuration",
@@ -407,8 +419,8 @@ const Thermostat = Cluster(
407
419
  constraint: "max 1440",
408
420
  default: null,
409
421
  quality: "X N",
410
- details: "Indicates the period in minutes for which a setpoint hold is active. Thermostats that support hold for a specified duration SHOULD implement this attribute. The null value indicates the field is unused. All other values are reserved.",
411
- xref: { document: "cluster", section: "4.3.9.32" }
422
+ details: "Indicates the period in minutes for which a setpoint hold is active. Thermostats that support hold for a specified duration SHOULD implement this attribute. The null value indicates the field is unused. All other values are reserved.\nIf this attribute is updated to a non-null value and the TemperatureSetpointHold is set to SetpointHoldOn and the SetpointHoldExpiryTimestamp is supported, the server shall update SetpointHoldExpiryTimestamp with a value of current UTC timestamp, in seconds, plus the new value of this attribute multiplied by 60.\nIf this attribute is set to null and the SetpointHoldExpiryTimestamp is supported, the server shall set the SetpointHoldExpiryTimestamp to null.",
423
+ xref: { document: "cluster", section: "4.3.9.31" }
412
424
  }),
413
425
  Attribute({
414
426
  name: "ThermostatProgrammingOperationMode",
@@ -420,7 +432,7 @@ const Thermostat = Cluster(
420
432
  default: 0,
421
433
  quality: "P",
422
434
  details: "Indicates the operational state of the thermostat\u2019s programming. The thermostat shall modify its programming operation when this attribute is modified by a client and update this attribute when its programming operation is modified locally by a user. The thermostat may support more than one active ProgrammingOperationModeBitmap. For example, the thermostat may operate simultaneously in Schedule Programming Mode and Recovery Mode.\nThermostats which contain a schedule may use this attribute to control how that schedule is used, even if they do not support the ScheduleConfiguration feature.\nWhen ScheduleActive is not set, the setpoint is altered only by manual up/down changes at the thermostat or remotely, not by internal schedule programming.\nNOTE\nModifying the ScheduleActive bit does not clear or delete previous weekly schedule programming configurations.",
423
- xref: { document: "cluster", section: "4.3.9.33" }
435
+ xref: { document: "cluster", section: "4.3.9.32" }
424
436
  }),
425
437
  Attribute({
426
438
  name: "ThermostatRunningState",
@@ -430,7 +442,7 @@ const Thermostat = Cluster(
430
442
  conformance: "O",
431
443
  constraint: "desc",
432
444
  details: "Indicates the current relay state of the heat, cool, and fan relays. Unimplemented outputs shall be treated as if they were Off.",
433
- xref: { document: "cluster", section: "4.3.9.34" }
445
+ xref: { document: "cluster", section: "4.3.9.33" }
434
446
  }),
435
447
  Attribute({
436
448
  name: "SetpointChangeSource",
@@ -441,7 +453,7 @@ const Thermostat = Cluster(
441
453
  constraint: "desc",
442
454
  default: 0,
443
455
  details: "Indicates the source of the current active OccupiedCoolingSetpoint or OccupiedHeatingSetpoint (i.e., who or what determined the current setpoint).\nThis attribute enables service providers to determine whether changes to setpoints were initiated due to occupant comfort, scheduled programming or some other source (e.g., electric utility or other service provider). Because automation services may initiate frequent setpoint changes, this attribute clearly differentiates the source of setpoint changes made at the thermostat.",
444
- xref: { document: "cluster", section: "4.3.9.35" }
456
+ xref: { document: "cluster", section: "4.3.9.34" }
445
457
  }),
446
458
  Attribute({
447
459
  name: "SetpointChangeAmount",
@@ -452,7 +464,7 @@ const Thermostat = Cluster(
452
464
  default: null,
453
465
  quality: "X",
454
466
  details: "Indicates the delta between the current active OccupiedCoolingSetpoint or OccupiedHeatingSetpoint and the previous active setpoint. This attribute is meant to accompany the SetpointChangeSource attribute; devices implementing SetpointChangeAmount SHOULD also implement SetpointChangeSource.\nThe null value indicates that the previous setpoint was unknown.",
455
- xref: { document: "cluster", section: "4.3.9.36" }
467
+ xref: { document: "cluster", section: "4.3.9.35" }
456
468
  }),
457
469
  Attribute({
458
470
  name: "SetpointChangeSourceTimestamp",
@@ -462,7 +474,7 @@ const Thermostat = Cluster(
462
474
  conformance: "O",
463
475
  default: 0,
464
476
  details: "Indicates the time in UTC at which the SetpointChangeAmount attribute change was recorded.",
465
- xref: { document: "cluster", section: "4.3.9.37" }
477
+ xref: { document: "cluster", section: "4.3.9.36" }
466
478
  }),
467
479
  Attribute({
468
480
  name: "OccupiedSetback",
@@ -474,7 +486,7 @@ const Thermostat = Cluster(
474
486
  default: null,
475
487
  quality: "X N",
476
488
  details: "Indicates the amount that the Thermostat server will allow the Calculated Local Temperature to float above the OccupiedCoolingSetpoint (i.e., OccupiedCoolingSetpoint + OccupiedSetback) or below the OccupiedHeatingSetpoint setpoint (i.e., OccupiedHeatingSetpoint \u2013 OccupiedSetback) before initiating a state change to bring the temperature back to the user\u2019s desired setpoint. This attribute is sometimes also referred to as the \u201Cspan.\u201D\nThe purpose of this attribute is to allow remote configuration of the span between the desired setpoint and the measured temperature to help prevent over-cycling and reduce energy bills, though this may result in lower comfort on the part of some users.\nThe null value indicates the attribute is unused.\nIf the Thermostat client attempts to write OccupiedSetback to a value greater than OccupiedSetbackMax, the Thermostat server shall set its OccupiedSetback value to OccupiedSetbackMax and shall send a Write Attribute Response command with a Status Code field enumeration of SUCCESS response.\nIf the Thermostat client attempts to write OccupiedSetback to a value less than OccupiedSetbackMin, the Thermostat server shall set its OccupiedSetback value to OccupiedSetbackMin and shall send a Write Attribute Response command with a Status Code field enumeration of SUCCESS response.",
477
- xref: { document: "cluster", section: "4.3.9.38" }
489
+ xref: { document: "cluster", section: "4.3.9.37" }
478
490
  }),
479
491
  Attribute({
480
492
  name: "OccupiedSetbackMin",
@@ -486,7 +498,7 @@ const Thermostat = Cluster(
486
498
  default: null,
487
499
  quality: "X F",
488
500
  details: "Indicates the minimum value that the Thermostat server will allow the OccupiedSetback attribute to be configured by a user.\nThe null value indicates the attribute is unused.",
489
- xref: { document: "cluster", section: "4.3.9.39" }
501
+ xref: { document: "cluster", section: "4.3.9.38" }
490
502
  }),
491
503
  Attribute({
492
504
  name: "OccupiedSetbackMax",
@@ -498,7 +510,7 @@ const Thermostat = Cluster(
498
510
  default: null,
499
511
  quality: "X F",
500
512
  details: "Indicates the maximum value that the Thermostat server will allow the OccupiedSetback attribute to be configured by a user.\nThe null value indicates the attribute is unused.",
501
- xref: { document: "cluster", section: "4.3.9.40" }
513
+ xref: { document: "cluster", section: "4.3.9.39" }
502
514
  }),
503
515
  Attribute({
504
516
  name: "UnoccupiedSetback",
@@ -510,7 +522,7 @@ const Thermostat = Cluster(
510
522
  default: null,
511
523
  quality: "X N",
512
524
  details: "Indicates the amount that the Thermostat server will allow the Calculated Local Temperature to float above the UnoccupiedCoolingSetpoint (i.e., UnoccupiedCoolingSetpoint + UnoccupiedSetback) or below the UnoccupiedHeatingSetpoint setpoint (i.e., UnoccupiedHeatingSetpoint - UnoccupiedSetback) before initiating a state change to bring the temperature back to the user\u2019s desired setpoint. This attribute is sometimes also referred to as the \u201Cspan.\u201D\nThe purpose of this attribute is to allow remote configuration of the span between the desired setpoint and the measured temperature to help prevent over-cycling and reduce energy bills, though this may result in lower comfort on the part of some users.\nThe null value indicates the attribute is unused.\nIf the Thermostat client attempts to write UnoccupiedSetback to a value greater than UnoccupiedSetbackMax, the Thermostat server shall set its UnoccupiedSetback value to UnoccupiedSetbackMax and shall send a Write Attribute Response command with a Status Code field enumeration of SUCCESS response.\nIf the Thermostat client attempts to write UnoccupiedSetback to a value less than UnoccupiedSetbackMin, the Thermostat server shall set its UnoccupiedSetback value to UnoccupiedSetbackMin and shall send a Write Attribute Response command with a Status Code field enumeration of SUCCESS response.",
513
- xref: { document: "cluster", section: "4.3.9.41" }
525
+ xref: { document: "cluster", section: "4.3.9.40" }
514
526
  }),
515
527
  Attribute({
516
528
  name: "UnoccupiedSetbackMin",
@@ -522,7 +534,7 @@ const Thermostat = Cluster(
522
534
  default: null,
523
535
  quality: "X F",
524
536
  details: "Indicates the minimum value that the Thermostat server will allow the UnoccupiedSetback attribute to be configured by a user.\nThe null value indicates the attribute is unused.",
525
- xref: { document: "cluster", section: "4.3.9.42" }
537
+ xref: { document: "cluster", section: "4.3.9.41" }
526
538
  }),
527
539
  Attribute({
528
540
  name: "UnoccupiedSetbackMax",
@@ -534,7 +546,7 @@ const Thermostat = Cluster(
534
546
  default: null,
535
547
  quality: "X F",
536
548
  details: "Indicates the maximum value that the Thermostat server will allow the UnoccupiedSetback attribute to be configured by a user.\nThe null value indicates the attribute is unused.",
537
- xref: { document: "cluster", section: "4.3.9.43" }
549
+ xref: { document: "cluster", section: "4.3.9.42" }
538
550
  }),
539
551
  Attribute(
540
552
  {
@@ -546,7 +558,7 @@ const Thermostat = Cluster(
546
558
  default: { type: "celsius", value: 25 },
547
559
  quality: "N",
548
560
  details: "Indicates the delta between the Calculated Local Temperature and the OccupiedHeatingSetpoint or UnoccupiedHeatingSetpoint attributes at which the Thermostat server will operate in emergency heat mode.\nIf the difference between the Calculated Local Temperature and OccupiedCoolingSetpoint or UnoccupiedCoolingSetpoint is greater than or equal to the EmergencyHeatDelta and the Thermostat server\u2019s SystemMode attribute is in a heating-related mode, then the Thermostat server shall immediately switch to the SystemMode attribute value that provides the highest stage of heating (e.g., emergency heat) and continue operating in that running state until the OccupiedHeatingSetpoint value is reached. For example:\n \u2022 Calculated Local Temperature = 10.0\xB0C\n \u2022 OccupiedHeatingSetpoint = 16.0\xB0C\n \u2022 EmergencyHeatDelta = 2.0\xB0C\n\u21D2 OccupiedHeatingSetpoint - Calculated Local Temperature \u2265? EmergencyHeatDelta\n\u21D2 16\xB0C - 10\xB0C \u2265? 2\xB0C\n\u21D2 TRUE >>> Thermostat server changes its SystemMode to operate in 2nd stage or emergency heat mode\nThe purpose of this attribute is to provide Thermostat clients the ability to configure rapid heating when a setpoint is of a specified amount greater than the measured temperature. This allows the heated space to be quickly heated to the desired level set by the user.",
549
- xref: { document: "cluster", section: "4.3.9.44" }
561
+ xref: { document: "cluster", section: "4.3.9.43" }
550
562
  }
551
563
  ),
552
564
  Attribute({
@@ -559,7 +571,7 @@ const Thermostat = Cluster(
559
571
  default: 0,
560
572
  quality: "N",
561
573
  details: "Indicates the type of Mini Split ACTypeEnum of Mini Split AC is defined depending on how Cooling and Heating condition is achieved by Mini Split AC.",
562
- xref: { document: "cluster", section: "4.3.9.45" }
574
+ xref: { document: "cluster", section: "4.3.9.44" }
563
575
  }),
564
576
  Attribute({
565
577
  name: "AcCapacity",
@@ -570,7 +582,7 @@ const Thermostat = Cluster(
570
582
  default: 0,
571
583
  quality: "N",
572
584
  details: "Indicates capacity of Mini Split AC in terms of the format defined by the ACCapacityFormat attribute",
573
- xref: { document: "cluster", section: "4.3.9.46" }
585
+ xref: { document: "cluster", section: "4.3.9.45" }
574
586
  }),
575
587
  Attribute({
576
588
  name: "AcRefrigerantType",
@@ -582,7 +594,7 @@ const Thermostat = Cluster(
582
594
  default: 0,
583
595
  quality: "N",
584
596
  details: "Indicates type of refrigerant used within the Mini Split AC.",
585
- xref: { document: "cluster", section: "4.3.9.47" }
597
+ xref: { document: "cluster", section: "4.3.9.46" }
586
598
  }),
587
599
  Attribute({
588
600
  name: "AcCompressorType",
@@ -594,7 +606,7 @@ const Thermostat = Cluster(
594
606
  default: 0,
595
607
  quality: "N",
596
608
  details: "Indicates the type of compressor used within the Mini Split AC.",
597
- xref: { document: "cluster", section: "4.3.9.48" }
609
+ xref: { document: "cluster", section: "4.3.9.47" }
598
610
  }),
599
611
  Attribute({
600
612
  name: "AcErrorCode",
@@ -604,7 +616,7 @@ const Thermostat = Cluster(
604
616
  conformance: "O",
605
617
  default: 0,
606
618
  details: "Indicates the type of errors encountered within the Mini Split AC.",
607
- xref: { document: "cluster", section: "4.3.9.49" }
619
+ xref: { document: "cluster", section: "4.3.9.48" }
608
620
  }),
609
621
  Attribute({
610
622
  name: "AcLouverPosition",
@@ -616,7 +628,7 @@ const Thermostat = Cluster(
616
628
  default: 0,
617
629
  quality: "N",
618
630
  details: "Indicates the position of Louver on the AC.",
619
- xref: { document: "cluster", section: "4.3.9.50" }
631
+ xref: { document: "cluster", section: "4.3.9.49" }
620
632
  }),
621
633
  Attribute({
622
634
  name: "AcCoilTemperature",
@@ -627,7 +639,7 @@ const Thermostat = Cluster(
627
639
  default: null,
628
640
  quality: "X",
629
641
  details: "Indicates the temperature of the AC coil, as measured locally or remotely (over the network).",
630
- xref: { document: "cluster", section: "4.3.9.51" }
642
+ xref: { document: "cluster", section: "4.3.9.50" }
631
643
  }),
632
644
  Attribute({
633
645
  name: "AcCapacityFormat",
@@ -639,7 +651,143 @@ const Thermostat = Cluster(
639
651
  default: 0,
640
652
  quality: "N",
641
653
  details: "Indicates the format for the ACCapacity attribute.",
642
- xref: { document: "cluster", section: "4.3.9.52" }
654
+ xref: { document: "cluster", section: "4.3.9.51" }
655
+ }),
656
+ Attribute(
657
+ {
658
+ name: "PresetTypes",
659
+ id: 72,
660
+ type: "list",
661
+ access: "R V",
662
+ conformance: "PRES",
663
+ constraint: "desc",
664
+ quality: "F",
665
+ details: "Indicates the supported PresetScenarioEnum values, limits on how many presets can be created for each PresetScenarioEnum, and whether or not a thermostat can transition automatically to a given scenario.",
666
+ xref: { document: "cluster", section: "4.3.9.52" }
667
+ },
668
+ Field({ name: "entry", type: "PresetTypeStruct" })
669
+ ),
670
+ Attribute(
671
+ {
672
+ name: "ScheduleTypes",
673
+ id: 73,
674
+ type: "list",
675
+ access: "R V",
676
+ conformance: "MSCH",
677
+ constraint: "desc",
678
+ quality: "F",
679
+ details: "Indicates the supported SystemMode values for Schedules, limits on how many schedules can be created for each SystemMode value, and whether or not a given SystemMode value supports transitions to Presets, target setpoints, or both.",
680
+ xref: { document: "cluster", section: "4.3.9.53" }
681
+ },
682
+ Field({ name: "entry", type: "ScheduleTypeStruct" })
683
+ ),
684
+ Attribute({
685
+ name: "NumberOfPresets",
686
+ id: 74,
687
+ type: "uint8",
688
+ access: "R V",
689
+ conformance: "PRES",
690
+ default: 0,
691
+ quality: "F",
692
+ details: "Indicates the maximum number of entries supported by the Presets attribute.",
693
+ xref: { document: "cluster", section: "4.3.9.54" }
694
+ }),
695
+ Attribute({
696
+ name: "NumberOfSchedules",
697
+ id: 75,
698
+ type: "uint8",
699
+ access: "R V",
700
+ conformance: "MSCH",
701
+ default: 0,
702
+ quality: "F",
703
+ details: "Indicates the maximum number of entries supported by the Schedules attribute.",
704
+ xref: { document: "cluster", section: "4.3.9.55" }
705
+ }),
706
+ Attribute({
707
+ name: "NumberOfScheduleTransitions",
708
+ id: 76,
709
+ type: "uint8",
710
+ access: "R V",
711
+ conformance: "MSCH",
712
+ default: 0,
713
+ quality: "F",
714
+ details: "Indicates the maximum number of transitions per Schedules attribute entry.",
715
+ xref: { document: "cluster", section: "4.3.9.56" }
716
+ }),
717
+ Attribute({
718
+ name: "NumberOfScheduleTransitionPerDay",
719
+ id: 77,
720
+ type: "uint8",
721
+ access: "R V",
722
+ conformance: "MSCH",
723
+ default: null,
724
+ quality: "X F",
725
+ xref: { document: "cluster", section: "4.3.9" }
726
+ }),
727
+ Attribute({
728
+ name: "ActivePresetHandle",
729
+ id: 78,
730
+ type: "octstr",
731
+ access: "R V",
732
+ conformance: "PRES",
733
+ constraint: "max 16",
734
+ default: null,
735
+ quality: "X N",
736
+ details: "Indicates the PresetHandle of the active preset. If this attribute is null, then there is no active preset.",
737
+ xref: { document: "cluster", section: "4.3.9.58" }
738
+ }),
739
+ Attribute({
740
+ name: "ActiveScheduleHandle",
741
+ id: 79,
742
+ type: "octstr",
743
+ access: "R V",
744
+ conformance: "MSCH",
745
+ constraint: "max 16",
746
+ default: null,
747
+ quality: "X N",
748
+ details: "Indicates the ScheduleHandle of the active schedule. A null value in this attribute indicates that there is no active schedule.",
749
+ xref: { document: "cluster", section: "4.3.9.59" }
750
+ }),
751
+ Attribute(
752
+ {
753
+ name: "Presets",
754
+ id: 80,
755
+ type: "list",
756
+ access: "RW VM",
757
+ conformance: "PRES",
758
+ constraint: "max numberOfPresets",
759
+ default: [],
760
+ quality: "N T",
761
+ details: "This attribute shall contain the current list of configured presets. On receipt of a write request:\n 1. If the PresetHandle field is null, the PresetStruct shall be treated as an added preset, and the device shall create a new unique value for the PresetHandle field.\n a. If the BuiltIn field is true, a response with the status code CONSTRAINT_ERROR shall be returned.\n 2. If the PresetHandle field is not null, the PresetStruct shall be treated as a modification of an existing preset.\n a. If the value of the PresetHandle field does not match any of the existing presets, a response with the status code NOT_FOUND shall be returned.\n b. If the value of the PresetHandle field is duplicated on multiple presets in the updated list, a response with the status code CONSTRAINT_ERROR shall be returned.\n c. If the BuiltIn field is true, and the PresetStruct in the current value with a matching PresetHandle field has a BuiltIn field set to false, a response with the status code CONSTRAINT_ERROR shall be returned.\n d. If the BuiltIn field is false, and the PresetStruct in the current value with a matching PresetHandle field has a BuiltIn field set to true, a response with the status code CONSTRAINT_ERROR shall be returned.\n 3. If the specified PresetScenarioEnum value does not exist in PresetTypes, a response with the status code CONSTRAINT_ERROR shall be returned.\n 4. If the Name is set, but the associated PresetTypeStruct does not have the SupportsNames bit set, a response with the status code CONSTRAINT_ERROR shall be returned.\n 5. If appending the received PresetStruct to the pending list of Presets would cause the total number of pending presets to exceed the value of the NumberOfPresets attribute, a response with the status code RESOURCE_EXHAUSTED shall be returned.\n 6. If appending the received PresetStruct to the pending list of Presets would cause the total number of pending presets whose PresetScenario field matches the appended preset\u2019s PresetScenario field to exceed the value of the NumberOfPresets field on the PresetTypeStruct whose PresetScenario matches the appended preset\u2019s PresetScenario field, a response with the status code RESOURCE_EXHAUSTED shall be returned.\n 7. Otherwise, the write shall be pended until receipt of a commit request, and the status code SUCCESS shall be returned.\n a. If the BuiltIn field is null:\n i. If there is a PresetStruct in the current value with a matching PresetHandle field, the BuiltIn field on the pending PresetStruct shall be set to the value of the BuiltIn on the matching PresetStruct.\n ii. Otherwise, the BuiltIn field on the pending PresetStruct shall be set to false.\nOn an attempt to commit, the status of this attribute shall be determined as follows:\n 1. For all existing presets:\n a. If, after applying all pending changes, the updated value of the Presets attribute would not contain a PresetStruct with a matching PresetHandle field, indicating the removal of the PresetStruct, the server shall check for invalid removal of the PresetStruct:\n i. If the BuiltIn field is true on the removed PresetStruct, the attribute status shall be CONSTRAINT_ERROR.\n ii. If the MSCH feature is supported and the removed PresetHandle would be referenced by any PresetHandle on any ScheduleTransitionStruct on any ScheduleStruct in the updated value of the Schedules attribute, the attribute status shall be INVALID_IN_STATE.\n iii. If the removed PresetHandle is equal to the value of the ActivePresetHandle attribute, the attribute status shall be INVALID_IN_STATE.\n 2. Otherwise, the attribute status shall be SUCCESS.",
762
+ xref: { document: "cluster", section: "4.3.9.60" }
763
+ },
764
+ Field({ name: "entry", type: "PresetStruct" })
765
+ ),
766
+ Attribute(
767
+ {
768
+ name: "Schedules",
769
+ id: 81,
770
+ type: "list",
771
+ access: "RW VM",
772
+ conformance: "MSCH",
773
+ constraint: "desc",
774
+ default: [],
775
+ quality: "N T",
776
+ details: "This attribute shall contain a list of ScheduleStructs. On receipt of a write request:\n 1. For all schedules in the write request:\n a. If the ScheduleHandle field is null, the ScheduleStruct shall be treated as an added schedule, and the device shall create a new unique value for the ScheduleHandle field.\n i. If the BuiltIn field is true, a response with the status code CONSTRAINT_ERROR shall be returned.\n b. Otherwise, if the ScheduleHandle field is not null, the ScheduleStruct shall be treated as a modification of an existing schedule.\n i. If the value of the ScheduleHandle field does not match any of the existing schedules, a response with the status code NOT_FOUND shall be returned.\n ii. If the BuiltIn field is true, and the ScheduleStruct in the current value with a matching ScheduleHandle field has a BuiltIn field set to false, a response with the status code CONSTRAINT_ERROR shall be returned.\n iii. If the BuiltIn field is false, and the ScheduleStruct in the current value with a matching ScheduleHandle field has a BuiltIn field set to true, a response with the status code CONSTRAINT_ERROR shall be returned.\n c. If the specified SystemMode does not exist in ScheduleTypes, a response with the status code CONSTRAINT_ERROR shall be returned.\n d. If the number of transitions exceeds the NumberOfScheduleTransitions value, a response with the status code RESOURCE_EXHAUSTED shall be returned.\n e. If the value of the NumberOfScheduleTransitionsPerDay attribute is not null, and the number of transitions on any single day of the week exceeds the NumberOfScheduleTransitionsPerDay value, a response with the status code RESOURCE_EXHAUSTED shall be returned.\n f. If the PresetHandle field is present, but the associated ScheduleTypeStruct does not have the SupportsPresets bit set, a response with the status code CONSTRAINT_ERROR shall be returned.\n g. If the PresetHandle field is present, but after applying all pending changes, the Presets attribute would not contain a PresetStruct whose PresetHandle field matches the value of the PresetHandle field, a response with the status code CONSTRAINT_ERROR shall be returned.\n h. If the Name is set, but the associated ScheduleTypeStruct does not have the SupportsNames bit set, a response with the status code CONSTRAINT_ERROR shall be returned.\n i. For all transitions in all schedules in the write request:\n i. If the PresetHandle field is present, but the ScheduleTypeStruct matching the value of the SystemMode field on the encompassing ScheduleStruct does not have the SupportsPresets bit set, a response with the status code CONSTRAINT_ERROR shall be returned.\n j. If the PresetHandle field is present, but after applying all pending changes, the Presets attribute would not contain a PresetStruct whose PresetHandle field matches the value of the PresetHandle field, a response with the status code CONSTRAINT_ERROR shall be returned.\n i. If the SystemMode field is present, but the ScheduleTypeStruct matching the value of the SystemMode field on the encompassing ScheduleStruct does not have the SupportsSetpoints bit set, a response with the status code CONSTRAINT_ERROR shall be returned.\n ii. If the SystemMode field is has a value of SystemModeOff, but the ScheduleTypeStruct matching the value of the SystemMode field on the encompassing ScheduleStruct does not have the SupportsOff bit set, a response with the status code CONSTRAINT_ERROR shall be returned.\n k. If the HeatingSetpoint field is present, but the ScheduleTypeStruct matching the value of the SystemMode field on the encompassing ScheduleStruct does not have the SupportsSetpoints bit set, a response with the status code CONSTRAINT_ERROR shall be returned.\n l. If the CoolingSetpoint field is present, but the ScheduleTypeStruct matching the value of the SystemMode field on the encompassing ScheduleStruct does not have the SupportsSetpoints bit set, a response with the status code CONSTRAINT_ERROR shall be returned.\n 2. If appending the received ScheduleStruct to the pending list of Schedules would cause the total number of pending schedules to exceed the value of the NumberOfSchedules attribute, a response with the status code RESOURCE_EXHAUSTED shall be returned.\n 3. If appending the received ScheduleStruct to the pending list of Schedules would cause the total number of pending schedules whose SystemMode field matches the appended schedule\u2019s SystemMode field to exceed the value of the NumberOfSchedules field on the ScheduleTypeStruct whose SystemMode field matches the appended schedule\u2019s SystemMode field, a response with the status code RESOURCE_EXHAUSTED shall be returned.\n 4. Otherwise, the write shall be pended until receipt of a commit request, and the attribute status shall be SUCCESS.\n a. If the BuiltIn field is null:\n i. If there is a ScheduleStruct in the current value with a matching ScheduleHandle field, the BuiltIn field on the pending ScheduleStruct shall be set to the value of the BuiltIn on the matching ScheduleStruct.\n ii. Otherwise, the BuiltIn field on the pending ScheduleStruct shall be set to false.\nOn an attempt to commit, the status of this attribute shall be determined as follows:\n 1. For all existing schedules:\n a. If, after applying all pending changes, the updated value of the Schedules attribute would not contain a ScheduleStruct with a matching ScheduleHandle field, indicating the removal of the ScheduleStruct, the server shall check for invalid removal of the ScheduleStruct:\n i. If the BuiltIn field is true on the removed ScheduleStruct, the attribute status shall be CONSTRAINT_ERROR.\n ii. If the removed ScheduleHandle is equal to the value of the ActiveScheduleHandle attribute, the attribute status shall be INVALID_IN_STATE.\n 2. Otherwise, the attribute status shall be SUCCESS.",
777
+ xref: { document: "cluster", section: "4.3.9.61" }
778
+ },
779
+ Field({ name: "entry", type: "ScheduleStruct" })
780
+ ),
781
+ Attribute({
782
+ name: "SetpointHoldExpiryTimestamp",
783
+ id: 82,
784
+ type: "epoch-s",
785
+ access: "R V",
786
+ conformance: "O",
787
+ default: null,
788
+ quality: "X N",
789
+ details: "If there is a known time when the TemperatureSetpointHold shall be cleared, this attribute shall contain the timestamp in UTC indicating when that will happen. If there is no such known time, this attribute shall be null.\nIf the TemperatureSetpointHold is set to SetpointHoldOff or the TemperatureSetpointHoldDuration is set to null, this attribute shall be set to null indicating there is no hold on the Thermostat either with or without a duration.",
790
+ xref: { document: "cluster", section: "4.3.9.62" }
643
791
  }),
644
792
  Command(
645
793
  {
@@ -649,11 +797,25 @@ const Thermostat = Cluster(
649
797
  conformance: "M",
650
798
  direction: "request",
651
799
  response: "status",
652
- details: "Upon receipt, the attributes for the indicated setpoint(s) shall have the amount specified in the Amount field added to them. If the resulting value is outside the limits imposed by MinCoolSetpointLimit, MaxCoolSetpointLimit, MinHeatSetpointLimit and MaxHeatSetpointLimit, the value is clamped to those limits. This is not considered an error condition.",
653
800
  xref: { document: "cluster", section: "4.3.10.1" }
654
801
  },
655
- Field({ name: "Mode", id: 0, type: "SetpointRaiseLowerModeEnum", conformance: "M", constraint: "desc" }),
656
- Field({ name: "Amount", id: 1, type: "int8", conformance: "M" })
802
+ Field({
803
+ name: "Mode",
804
+ id: 0,
805
+ type: "SetpointRaiseLowerModeEnum",
806
+ conformance: "M",
807
+ constraint: "desc",
808
+ details: "The field shall specify which setpoints are to be adjusted.",
809
+ xref: { document: "cluster", section: "4.3.10.1.1" }
810
+ }),
811
+ Field({
812
+ name: "Amount",
813
+ id: 1,
814
+ type: "int8",
815
+ conformance: "M",
816
+ details: "This field shall indicate the amount (possibly negative) that should be added to the setpoint(s), in steps of 0.1\xB0C.",
817
+ xref: { document: "cluster", section: "4.3.10.1.2" }
818
+ })
657
819
  ),
658
820
  Command(
659
821
  {
@@ -663,8 +825,8 @@ const Thermostat = Cluster(
663
825
  conformance: "SCH",
664
826
  direction: "request",
665
827
  response: "status",
666
- details: "Upon receipt, the weekly schedule for updating setpoints shall be stored in the thermostat and SHOULD begin at the time of receipt. A status code shall be sent in response.\nWhen a command is received that requires a total number of transitions greater than the device supports, the status of the response shall be INSUFFICIENT_SPACE.\nWhen any of the setpoints sent in the sequence is out of range (AbsMin/MaxSetPointLimit), or when the Mode for Sequence field includes a mode not supported by the device, the status of the response shall be CONSTRAINT_ERROR and no setpoints from the entire sequence SHOULD be used.\nWhen an overlapping transition is detected, the status of the response shall be FAILURE.\nWhen a device which does not support multiple days in a command receives a command with more than one bit set in the DayOfWeekForSequence field, or when a device which does not support multiple modes in a command receives a command with more than one bit set in the ModeForSequence field, or when the contents of the Transitions field does not agree with NumberOfTransitionsForSequence, DayOfWeekForSequence or ModeForSequence, the status of the response shall be INVALID_COMMAND.\nWhen the transitions could be added successfully, the status of the response shall be SUCCESS.\nThe set weekly schedule command is used to update the thermostat weekly setpoint schedule from a management system. If the thermostat already has a weekly setpoint schedule programmed, then it SHOULD replace each daily setpoint set as it receives the updates from the management system. For example, if the thermostat has 4 setpoints for every day of the week and is sent a Set Weekly Schedule command with one setpoint for Saturday then the thermostat SHOULD remove all 4 setpoints for Saturday and replace those with the updated setpoint but leave all other days unchanged. If the schedule is larger than what fits in one frame or contains more than 10 transitions, the schedule shall then be sent using multiple Set Weekly Schedule Commands.",
667
- xref: { document: "cluster", section: "4.3.10.4" }
828
+ details: "This command is used to update the thermostat weekly setpoint schedule from a management system. If the thermostat already has a weekly setpoint schedule programmed, then it SHOULD replace each daily setpoint set as it receives the updates from the management system. For example, if the thermostat has 4 setpoints for every day of the week and is sent a SetWeeklySchedule command with one setpoint for Saturday then the thermostat SHOULD remove all 4 setpoints for Saturday and replace those with the updated setpoint but leave all other days unchanged. If the schedule is larger than what fits in one frame or contains more than 10 transitions, the schedule shall then be sent using multiple SetWeeklySchedule Commands.",
829
+ xref: { document: "cluster", section: "4.3.10.2" }
668
830
  },
669
831
  Field({
670
832
  name: "NumberOfTransitionsForSequence",
@@ -672,7 +834,7 @@ const Thermostat = Cluster(
672
834
  type: "uint8",
673
835
  conformance: "M",
674
836
  details: "This field shall indicate how many individual transitions to expect for this sequence of commands. If a device supports more than 10 transitions in its schedule they can send this by sending more than 1 \u201CSet Weekly Schedule\u201D command, each containing the separate information that the device needs to set.",
675
- xref: { document: "cluster", section: "4.3.10.4.1" }
837
+ xref: { document: "cluster", section: "4.3.10.2.1" }
676
838
  }),
677
839
  Field({
678
840
  name: "DayOfWeekForSequence",
@@ -681,7 +843,7 @@ const Thermostat = Cluster(
681
843
  conformance: "M",
682
844
  constraint: "desc",
683
845
  details: "This field shall represent the day of the week at which all the transitions within the payload of the command SHOULD be associated to. This field is a bitmap and therefore the associated setpoint could overlap onto multiple days (you could set one transition time for all \u201Cweek days\u201D or whatever combination of days the implementation requests).\nEach setpoint transition will begin with the day of week for this transition. There can be up to 10 transitions for each command.",
684
- xref: { document: "cluster", section: "4.3.10.4.2" }
846
+ xref: { document: "cluster", section: "4.3.10.2.2" }
685
847
  }),
686
848
  Field({
687
849
  name: "ModeForSequence",
@@ -690,7 +852,7 @@ const Thermostat = Cluster(
690
852
  conformance: "M",
691
853
  constraint: "desc",
692
854
  details: "This field shall indicate how the application decodes the setpoint fields of each transition in the Transitions list.\nIf the HeatSetpointPresent bit is On, the HeatSetpoint field shall NOT be null in every entry of the Transitions list.\nIf the HeatSetpointPresent bit is Off, the HeatSetpoint field shall be null in every entry of the Transitions list.\nIf the CoolSetpointPresent bit is On, the CoolSetpoint field shall NOT be null in every entry of the Transitions list.\nIf the CoolSetpointPresent bit is Off, the CoolSetpoint field shall be null in every entry of the Transitions list.\nAt least one of the bits in the Mode For Sequence byte shall be on.\nBoth bits must be respected, even if the HEAT or COOL feature is not supported, to ensure the command is decoded and handled correctly.",
693
- xref: { document: "cluster", section: "4.3.10.4.3" }
855
+ xref: { document: "cluster", section: "4.3.10.2.3" }
694
856
  }),
695
857
  Field(
696
858
  {
@@ -700,7 +862,7 @@ const Thermostat = Cluster(
700
862
  conformance: "M",
701
863
  constraint: "max 10",
702
864
  details: "This field shall contain the list of setpoint transitions used to update the specified daily schedules",
703
- xref: { document: "cluster", section: "4.3.10.4.4" }
865
+ xref: { document: "cluster", section: "4.3.10.2.4" }
704
866
  },
705
867
  Field({ name: "entry", type: "WeeklyScheduleTransitionStruct" })
706
868
  )
@@ -713,8 +875,7 @@ const Thermostat = Cluster(
713
875
  conformance: "SCH",
714
876
  direction: "request",
715
877
  response: "GetWeeklyScheduleResponse",
716
- details: "Upon receipt, the unit SHOULD send in return the Get Weekly Schedule Response command. The Days to Return and Mode to Return fields are defined as bitmask for the flexibility to support multiple days and multiple modes within one command. If thermostat cannot handle incoming command with multiple days and/or multiple modes within one command, it shall send default response of INVALID_COMMAND in return.",
717
- xref: { document: "cluster", section: "4.3.10.5" }
878
+ xref: { document: "cluster", section: "4.3.10.3" }
718
879
  },
719
880
  Field({
720
881
  name: "DaysToReturn",
@@ -723,7 +884,7 @@ const Thermostat = Cluster(
723
884
  conformance: "M",
724
885
  constraint: "desc",
725
886
  details: "This field shall indicate the number of days the client would like to return the setpoint values for and could be any combination of single days or the entire week.",
726
- xref: { document: "cluster", section: "4.3.10.5.1" }
887
+ xref: { document: "cluster", section: "4.3.10.3.1" }
727
888
  }),
728
889
  Field({
729
890
  name: "ModeToReturn",
@@ -732,7 +893,7 @@ const Thermostat = Cluster(
732
893
  conformance: "M",
733
894
  constraint: "desc",
734
895
  details: "This field shall indicate the mode the client would like to return the set point values for and could be any combination of heat only, cool only or heat & cool.",
735
- xref: { document: "cluster", section: "4.3.10.5.2" }
896
+ xref: { document: "cluster", section: "4.3.10.3.2" }
736
897
  })
737
898
  ),
738
899
  Command(
@@ -742,7 +903,7 @@ const Thermostat = Cluster(
742
903
  conformance: "SCH",
743
904
  direction: "response",
744
905
  details: "This command has the same payload format as the Set Weekly Schedule.",
745
- xref: { document: "cluster", section: "4.3.10.6" }
906
+ xref: { document: "cluster", section: "4.3.10.4" }
746
907
  },
747
908
  Field({ name: "NumberOfTransitionsForSequence", id: 0, type: "uint8", conformance: "M" }),
748
909
  Field({
@@ -766,7 +927,7 @@ const Thermostat = Cluster(
766
927
  direction: "request",
767
928
  response: "status",
768
929
  details: "This command is used to clear the weekly schedule. The Clear weekly schedule has no payload.\nUpon receipt, all transitions currently stored shall be cleared and a default response of SUCCESS shall be sent in response. There are no error responses to this command.",
769
- xref: { document: "cluster", section: "4.3.10.7" }
930
+ xref: { document: "cluster", section: "4.3.10.5" }
770
931
  }),
771
932
  Command(
772
933
  {
@@ -775,7 +936,7 @@ const Thermostat = Cluster(
775
936
  conformance: "GetRelayStatusLog",
776
937
  direction: "response",
777
938
  details: "This command is sent from the thermostat cluster server in response to the Get Relay Status Log. After the Relay Status Entry is sent over the air to the requesting client, the specific entry will be cleared from the thermostat internal log.",
778
- xref: { document: "cluster", section: "4.3.10.9" }
939
+ xref: { document: "cluster", section: "4.3.10.7" }
779
940
  },
780
941
  Field({
781
942
  name: "TimeOfDay",
@@ -784,7 +945,7 @@ const Thermostat = Cluster(
784
945
  conformance: "M",
785
946
  constraint: "max 1439",
786
947
  details: "This field shall indicate the sample time of the day, in minutes since midnight, when the relay status was captured for this associated log entry. For example, 6am will be represented by 360 minutes since midnight and 11:30pm will be represented by 1410 minutes since midnight.",
787
- xref: { document: "cluster", section: "4.3.10.9.1" }
948
+ xref: { document: "cluster", section: "4.3.10.7.1" }
788
949
  }),
789
950
  Field({
790
951
  name: "RelayStatus",
@@ -793,7 +954,7 @@ const Thermostat = Cluster(
793
954
  conformance: "M",
794
955
  constraint: "desc",
795
956
  details: "This field shall indicate the relay status for thermostat when the log is captured. Each bit represents one relay used by the thermostat. If the bit is on, the associated relay is on and active. Each thermostat manufacturer can create its own mapping between the bitmap and the associated relay.",
796
- xref: { document: "cluster", section: "4.3.10.9.2" }
957
+ xref: { document: "cluster", section: "4.3.10.7.2" }
797
958
  }),
798
959
  Field({
799
960
  name: "LocalTemperature",
@@ -802,14 +963,14 @@ const Thermostat = Cluster(
802
963
  conformance: "M",
803
964
  quality: "X",
804
965
  details: "This field shall indicate the LocalTemperature when the log is captured. The null value indicates that LocalTemperature was invalid or unavailable.",
805
- xref: { document: "cluster", section: "4.3.10.9.3" }
966
+ xref: { document: "cluster", section: "4.3.10.7.3" }
806
967
  }),
807
968
  Field({
808
969
  name: "HumidityInPercentage",
809
970
  id: 3,
810
971
  type: "uint8",
811
972
  conformance: "M",
812
- constraint: "0 to 100",
973
+ constraint: "0% to 100%",
813
974
  quality: "X"
814
975
  }),
815
976
  Field({
@@ -818,7 +979,7 @@ const Thermostat = Cluster(
818
979
  type: "temperature",
819
980
  conformance: "M",
820
981
  details: "This field shall indicate the target setpoint temperature when the log is captured.",
821
- xref: { document: "cluster", section: "4.3.10.9.5" }
982
+ xref: { document: "cluster", section: "4.3.10.7.5" }
822
983
  }),
823
984
  Field({
824
985
  name: "UnreadEntries",
@@ -826,7 +987,48 @@ const Thermostat = Cluster(
826
987
  type: "uint16",
827
988
  conformance: "M",
828
989
  details: "This field shall indicate the number of unread entries within the thermostat internal log system.",
829
- xref: { document: "cluster", section: "4.3.10.9.6" }
990
+ xref: { document: "cluster", section: "4.3.10.7.6" }
991
+ })
992
+ ),
993
+ Command(
994
+ {
995
+ name: "SetActiveScheduleRequest",
996
+ id: 5,
997
+ access: "O",
998
+ conformance: "MSCH",
999
+ direction: "request",
1000
+ response: "status",
1001
+ xref: { document: "cluster", section: "4.3.10.8" }
1002
+ },
1003
+ Field({
1004
+ name: "ScheduleHandle",
1005
+ id: 0,
1006
+ type: "octstr",
1007
+ conformance: "M",
1008
+ constraint: "max 16",
1009
+ details: "This field shall specify the value of the ScheduleHandle field on the ScheduleStruct to be made active.",
1010
+ xref: { document: "cluster", section: "4.3.10.8.1" }
1011
+ })
1012
+ ),
1013
+ Command(
1014
+ {
1015
+ name: "SetActivePresetRequest",
1016
+ id: 6,
1017
+ access: "O",
1018
+ conformance: "PRES",
1019
+ direction: "request",
1020
+ response: "status",
1021
+ xref: { document: "cluster", section: "4.3.10.9" }
1022
+ },
1023
+ Field({
1024
+ name: "PresetHandle",
1025
+ id: 0,
1026
+ type: "octstr",
1027
+ conformance: "M",
1028
+ constraint: "max 16",
1029
+ quality: "X",
1030
+ details: "This field shall specify the value of the PresetHandle field on the PresetStruct to be made active. If the field is set to null, that indicates there should be no active preset.",
1031
+ xref: { document: "cluster", section: "4.3.10.9.1" }
830
1032
  })
831
1033
  ),
832
1034
  Datatype(
@@ -876,7 +1078,7 @@ const Thermostat = Cluster(
876
1078
  Field(
877
1079
  {
878
1080
  name: "CoolingStage",
879
- constraint: "0 to 2",
1081
+ constraint: "1 to 1",
880
1082
  description: "Stage of cooling the HVAC system is using.",
881
1083
  details: "These bits shall indicate what stage of cooling the HVAC system is using.\n \u2022 00 = Cool Stage 1\n \u2022 01 = Cool Stage 2\n \u2022 10 = Cool Stage 3\n \u2022 11 = Reserved",
882
1084
  xref: { document: "cluster", section: "4.3.8.6.1" }
@@ -885,7 +1087,7 @@ const Thermostat = Cluster(
885
1087
  Field(
886
1088
  {
887
1089
  name: "HeatingStage",
888
- constraint: "2 to 4",
1090
+ constraint: "3 to 3",
889
1091
  description: "Stage of heating the HVAC system is using.",
890
1092
  details: "These bits shall indicate what stage of heating the HVAC system is using.\n \u2022 00 = Heat Stage 1\n \u2022 01 = Heat Stage 2\n \u2022 10 = Heat Stage 3\n \u2022 11 = Reserved",
891
1093
  xref: { document: "cluster", section: "4.3.8.6.2" }
@@ -910,8 +1112,18 @@ const Thermostat = Cluster(
910
1112
  }
911
1113
  )
912
1114
  ),
1115
+ Datatype({
1116
+ name: "OccupancyBitmap",
1117
+ type: "OccupancySensing.OccupancyBitmap",
1118
+ xref: { document: "cluster", section: "4.3.8.7" }
1119
+ }),
1120
+ Datatype(
1121
+ { name: "PresetTypeFeaturesBitmap", type: "map16", xref: { document: "cluster", section: "4.3.8.8" } },
1122
+ Field({ name: "Automatic", constraint: "0", description: "Preset may be automatically activated by the thermostat" }),
1123
+ Field({ name: "SupportsNames", constraint: "1", description: "Preset supports user- provided names" })
1124
+ ),
913
1125
  Datatype(
914
- { name: "ProgrammingOperationModeBitmap", type: "map8", xref: { document: "cluster", section: "4.3.8.7" } },
1126
+ { name: "ProgrammingOperationModeBitmap", type: "map8", xref: { document: "cluster", section: "4.3.8.9" } },
915
1127
  Field({
916
1128
  name: "ScheduleActive",
917
1129
  constraint: "0",
@@ -921,17 +1133,17 @@ const Thermostat = Cluster(
921
1133
  Field({ name: "Economy", constraint: "2", description: "Economy/EnergyStar mode" })
922
1134
  ),
923
1135
  Datatype(
924
- { name: "RelayStateBitmap", type: "map16", xref: { document: "cluster", section: "4.3.8.8" } },
925
- Field({ name: "Heat", constraint: "0", description: "Heat State On" }),
926
- Field({ name: "Cool", constraint: "1", description: "Cool State On" }),
927
- Field({ name: "Fan", constraint: "2", description: "Fan State On" }),
928
- Field({ name: "HeatStage2", constraint: "3", description: "Heat 2nd State On" }),
929
- Field({ name: "CoolStage2", constraint: "4", description: "Cool 2nd State On" }),
930
- Field({ name: "FanStage2", constraint: "5", description: "Fan 2nd State On" }),
1136
+ { name: "RelayStateBitmap", type: "map16", xref: { document: "cluster", section: "4.3.8.10" } },
1137
+ Field({ name: "Heat", constraint: "0", description: "Heat Stage On" }),
1138
+ Field({ name: "Cool", constraint: "1", description: "Cool Stage On" }),
1139
+ Field({ name: "Fan", constraint: "2", description: "Fan Stage On" }),
1140
+ Field({ name: "HeatStage2", constraint: "3", description: "Heat 2nd Stage On" }),
1141
+ Field({ name: "CoolStage2", constraint: "4", description: "Cool 2nd Stage On" }),
1142
+ Field({ name: "FanStage2", constraint: "5", description: "Fan 2nd Stage On" }),
931
1143
  Field({ name: "FanStage3", constraint: "6", description: "Fan 3rd Stage On" })
932
1144
  ),
933
1145
  Datatype(
934
- { name: "RemoteSensingBitmap", type: "map8", xref: { document: "cluster", section: "4.3.8.9" } },
1146
+ { name: "RemoteSensingBitmap", type: "map8", xref: { document: "cluster", section: "4.3.8.11" } },
935
1147
  Field({
936
1148
  name: "LocalTemperature",
937
1149
  constraint: "0",
@@ -942,12 +1154,43 @@ const Thermostat = Cluster(
942
1154
  constraint: "1",
943
1155
  description: "OutdoorTemperature is derived from a remote node",
944
1156
  details: "This bit shall be supported if the OutdoorTemperature attribute is supported.",
945
- xref: { document: "cluster", section: "4.3.8.9.1" }
1157
+ xref: { document: "cluster", section: "4.3.8.11.1" }
946
1158
  }),
947
1159
  Field({ name: "Occupancy", constraint: "2", description: "Occupancy is derived from a remote node" })
948
1160
  ),
949
1161
  Datatype(
950
- { name: "ScheduleDayOfWeekBitmap", type: "map8", xref: { document: "cluster", section: "4.3.8.10" } },
1162
+ { name: "ScheduleTypeFeaturesBitmap", type: "map16", xref: { document: "cluster", section: "4.3.8.12" } },
1163
+ Field({
1164
+ name: "SupportsPresets",
1165
+ constraint: "0",
1166
+ description: "Supports presets",
1167
+ details: "This bit shall indicate that any ScheduleStruct with a SystemMode field whose value matches the SystemMode field on the encompassing ScheduleTypeStruct supports specifying presets on ScheduleTransitionStructs contained in its Transitions field.",
1168
+ xref: { document: "cluster", section: "4.3.8.12.1" }
1169
+ }),
1170
+ Field({
1171
+ name: "SupportsSetpoints",
1172
+ constraint: "1",
1173
+ description: "Supports setpoints",
1174
+ details: "This bit shall indicate that any ScheduleStruct with a SystemMode field whose value matches the SystemMode field on the encompassing ScheduleTypeStruct supports specifying setpoints on ScheduleTransitionStructs contained in its Transitions field.",
1175
+ xref: { document: "cluster", section: "4.3.8.12.2" }
1176
+ }),
1177
+ Field({
1178
+ name: "SupportsNames",
1179
+ constraint: "2",
1180
+ description: "Supports user-provided names",
1181
+ details: "This bit shall indicate that any ScheduleStruct with a SystemMode field whose value matches the SystemMode field on the encompassing ScheduleTypeStruct supports setting the value of the Name field.",
1182
+ xref: { document: "cluster", section: "4.3.8.12.3" }
1183
+ }),
1184
+ Field({
1185
+ name: "SupportsOff",
1186
+ constraint: "3",
1187
+ description: "Supports transitioning to SystemModeOff",
1188
+ details: "This bit shall indicate that any ScheduleStruct with a SystemMode field whose value matches the SystemMode field on the encompassing ScheduleTypeStruct supports setting its SystemMode field to Off.",
1189
+ xref: { document: "cluster", section: "4.3.8.12.4" }
1190
+ })
1191
+ ),
1192
+ Datatype(
1193
+ { name: "ScheduleDayOfWeekBitmap", type: "map8", xref: { document: "cluster", section: "4.3.8.13" } },
951
1194
  Field({ name: "Sunday", constraint: "0", description: "Sunday" }),
952
1195
  Field({ name: "Monday", constraint: "1", description: "Monday" }),
953
1196
  Field({ name: "Tuesday", constraint: "2", description: "Tuesday" }),
@@ -958,23 +1201,23 @@ const Thermostat = Cluster(
958
1201
  Field({ name: "Away", constraint: "7", description: "Away or Vacation" })
959
1202
  ),
960
1203
  Datatype(
961
- { name: "ScheduleModeBitmap", type: "map8", xref: { document: "cluster", section: "4.3.8.11" } },
1204
+ { name: "ScheduleModeBitmap", type: "map8", xref: { document: "cluster", section: "4.3.8.14" } },
962
1205
  Field({ name: "HeatSetpointPresent", constraint: "0", description: "Adjust Heat Setpoint" }),
963
1206
  Field({ name: "CoolSetpointPresent", constraint: "1", description: "Adjust Cool Setpoint" })
964
1207
  ),
965
1208
  Datatype(
966
- { name: "ACCapacityFormatEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.12" } },
1209
+ { name: "ACCapacityFormatEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.15" } },
967
1210
  Field({ name: "BtUh", id: 0, conformance: "O", description: "British Thermal Unit per Hour" })
968
1211
  ),
969
1212
  Datatype(
970
- { name: "ACCompressorTypeEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.13" } },
1213
+ { name: "ACCompressorTypeEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.16" } },
971
1214
  Field({ name: "Unknown", id: 0, conformance: "O", description: "Unknown compressor type" }),
972
1215
  Field({ name: "T1", id: 1, conformance: "O", description: "Max working ambient 43 \xB0C" }),
973
1216
  Field({ name: "T2", id: 2, conformance: "O", description: "Max working ambient 35 \xB0C" }),
974
1217
  Field({ name: "T3", id: 3, conformance: "O", description: "Max working ambient 52 \xB0C" })
975
1218
  ),
976
1219
  Datatype(
977
- { name: "ACLouverPositionEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.14" } },
1220
+ { name: "ACLouverPositionEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.17" } },
978
1221
  Field({ name: "Closed", id: 1, conformance: "O", description: "Fully Closed" }),
979
1222
  Field({ name: "Open", id: 2, conformance: "O", description: "Fully Open" }),
980
1223
  Field({ name: "Quarter", id: 3, conformance: "O", description: "Quarter Open" }),
@@ -982,14 +1225,14 @@ const Thermostat = Cluster(
982
1225
  Field({ name: "ThreeQuarters", id: 5, conformance: "O", description: "Three Quarters Open" })
983
1226
  ),
984
1227
  Datatype(
985
- { name: "ACRefrigerantTypeEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.15" } },
1228
+ { name: "ACRefrigerantTypeEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.18" } },
986
1229
  Field({ name: "Unknown", id: 0, conformance: "O", description: "Unknown Refrigerant Type" }),
987
1230
  Field({ name: "R22", id: 1, conformance: "O", description: "R22 Refrigerant" }),
988
1231
  Field({ name: "R410A", id: 2, conformance: "O", description: "R410a Refrigerant" }),
989
1232
  Field({ name: "R407C", id: 3, conformance: "O", description: "R407c Refrigerant" })
990
1233
  ),
991
1234
  Datatype(
992
- { name: "ACTypeEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.16" } },
1235
+ { name: "ACTypeEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.19" } },
993
1236
  Field({ name: "Unknown", id: 0, conformance: "O", description: "Unknown AC Type" }),
994
1237
  Field({ name: "CoolingFixed", id: 1, conformance: "O", description: "Cooling and Fixed Speed" }),
995
1238
  Field({ name: "HeatPumpFixed", id: 2, conformance: "O", description: "Heat Pump and Fixed Speed" }),
@@ -997,7 +1240,7 @@ const Thermostat = Cluster(
997
1240
  Field({ name: "HeatPumpInverter", id: 4, conformance: "O", description: "Heat Pump and Inverter" })
998
1241
  ),
999
1242
  Datatype(
1000
- { name: "SetpointRaiseLowerModeEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.17" } },
1243
+ { name: "SetpointRaiseLowerModeEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.20" } },
1001
1244
  Field({ name: "Heat", id: 0, conformance: "HEAT", description: "Adjust Heat Setpoint" }),
1002
1245
  Field({ name: "Cool", id: 1, conformance: "COOL", description: "Adjust Cool Setpoint" }),
1003
1246
  Field({ name: "Both", id: 2, conformance: "HEAT | COOL", description: "Adjust Heat Setpoint and Cool Setpoint" })
@@ -1007,7 +1250,7 @@ const Thermostat = Cluster(
1007
1250
  name: "ControlSequenceOfOperationEnum",
1008
1251
  type: "enum8",
1009
1252
  details: "NOTE\nCoolingAndHeating\nA thermostat indicating it supports CoolingAndHeating (or CoolingAndHeatingWithReheat) SHOULD be able to request heating or cooling on demand and will usually support the Auto SystemMode.\nSystems which support cooling or heating, requiring external intervention to change modes or where the whole building must be in the same mode, SHOULD report CoolingOnly or HeatingOnly based on the current capability.",
1010
- xref: { document: "cluster", section: "4.3.8.18" }
1253
+ xref: { document: "cluster", section: "4.3.8.21" }
1011
1254
  },
1012
1255
  Field({ name: "CoolingOnly", id: 0, conformance: "[COOL]", description: "Heat and Emergency are not possible" }),
1013
1256
  Field({
@@ -1037,7 +1280,66 @@ const Thermostat = Cluster(
1037
1280
  })
1038
1281
  ),
1039
1282
  Datatype(
1040
- { name: "SetpointChangeSourceEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.19" } },
1283
+ { name: "PresetScenarioEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.22" } },
1284
+ Field({
1285
+ name: "Occupied",
1286
+ id: 1,
1287
+ conformance: "M",
1288
+ description: "The thermostat-controlled area is occupied",
1289
+ details: "This value shall indicate the preset for periods when the thermostat\u2019s temperature-controlled area is occupied. It is intended for thermostats that can automatically determine occupancy.",
1290
+ xref: { document: "cluster", section: "4.3.8.22.2" }
1291
+ }),
1292
+ Field({
1293
+ name: "Unoccupied",
1294
+ id: 2,
1295
+ conformance: "M",
1296
+ description: "The thermostat-controlled area is unoccupied",
1297
+ details: "This value shall indicate the preset for periods when the thermostat\u2019s temperature-controlled area is unoccupied. It is intended for thermostats that can automatically determine occupancy.",
1298
+ xref: { document: "cluster", section: "4.3.8.22.3" }
1299
+ }),
1300
+ Field({
1301
+ name: "Sleep",
1302
+ id: 3,
1303
+ conformance: "M",
1304
+ description: "Users are likely to be sleeping",
1305
+ details: "This value shall indicate the preset for periods when users are likely to be asleep.",
1306
+ xref: { document: "cluster", section: "4.3.8.22.4" }
1307
+ }),
1308
+ Field({
1309
+ name: "Wake",
1310
+ id: 4,
1311
+ conformance: "M",
1312
+ description: "Users are likely to be waking up",
1313
+ details: "This value shall indicate the preset for periods when users are likely to be waking up.",
1314
+ xref: { document: "cluster", section: "4.3.8.22.5" }
1315
+ }),
1316
+ Field({
1317
+ name: "Vacation",
1318
+ id: 5,
1319
+ conformance: "M",
1320
+ description: "Users are on vacation",
1321
+ details: "This value shall indicate the preset for periods when users are on vacation, or otherwise out-of- home for extended periods of time.",
1322
+ xref: { document: "cluster", section: "4.3.8.22.6" }
1323
+ }),
1324
+ Field({
1325
+ name: "GoingToSleep",
1326
+ id: 6,
1327
+ conformance: "M",
1328
+ description: "Users are likely to be going to sleep",
1329
+ details: "This value shall indicate the preset for periods when users are likely to be going to sleep.",
1330
+ xref: { document: "cluster", section: "4.3.8.22.7" }
1331
+ }),
1332
+ Field({
1333
+ name: "UserDefined",
1334
+ id: 254,
1335
+ conformance: "M",
1336
+ description: "Custom presets",
1337
+ details: "This value shall indicate a free-form preset; when set, the Name field on PresetStruct shall NOT be null.",
1338
+ xref: { document: "cluster", section: "4.3.8.22.8" }
1339
+ })
1340
+ ),
1341
+ Datatype(
1342
+ { name: "SetpointChangeSourceEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.23" } },
1041
1343
  Field({
1042
1344
  name: "Manual",
1043
1345
  id: 0,
@@ -1047,7 +1349,7 @@ const Thermostat = Cluster(
1047
1349
  Field({
1048
1350
  name: "Schedule",
1049
1351
  id: 1,
1050
- conformance: "[SCH]",
1352
+ conformance: "[SCH | MSCH]",
1051
1353
  description: "Schedule/internal programming-initiated setpoint change"
1052
1354
  }),
1053
1355
  Field({
@@ -1058,7 +1360,7 @@ const Thermostat = Cluster(
1058
1360
  })
1059
1361
  ),
1060
1362
  Datatype(
1061
- { name: "StartOfWeekEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.20" } },
1363
+ { name: "StartOfWeekEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.24" } },
1062
1364
  Field({ name: "Sunday", id: 0, conformance: "M" }),
1063
1365
  Field({ name: "Monday", id: 1, conformance: "M" }),
1064
1366
  Field({ name: "Tuesday", id: 2, conformance: "M" }),
@@ -1071,8 +1373,8 @@ const Thermostat = Cluster(
1071
1373
  {
1072
1374
  name: "SystemModeEnum",
1073
1375
  type: "enum8",
1074
- details: "Table 35. Interpretation of Heat, Cool and Auto SystemModeEnum Values",
1075
- xref: { document: "cluster", section: "4.3.8.21" }
1376
+ details: "Table 9. Interpretation of Heat, Cool and Auto SystemModeEnum Values",
1377
+ xref: { document: "cluster", section: "4.3.8.25" }
1076
1378
  },
1077
1379
  Field({
1078
1380
  name: "Off",
@@ -1100,7 +1402,7 @@ const Thermostat = Cluster(
1100
1402
  Field({ name: "Sleep", id: 9, conformance: "O" })
1101
1403
  ),
1102
1404
  Datatype(
1103
- { name: "ThermostatRunningModeEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.22" } },
1405
+ { name: "ThermostatRunningModeEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.26" } },
1104
1406
  Field({
1105
1407
  name: "Off",
1106
1408
  id: 0,
@@ -1111,7 +1413,7 @@ const Thermostat = Cluster(
1111
1413
  Field({ name: "Heat", id: 4, conformance: "[HEAT]", description: "Demand is only generated for Heating" })
1112
1414
  ),
1113
1415
  Datatype(
1114
- { name: "TemperatureSetpointHoldEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.23" } },
1416
+ { name: "TemperatureSetpointHoldEnum", type: "enum8", xref: { document: "cluster", section: "4.3.8.27" } },
1115
1417
  Field({ name: "SetpointHoldOff", id: 0, conformance: "M", description: "Follow scheduling program" }),
1116
1418
  Field({
1117
1419
  name: "SetpointHoldOn",
@@ -1120,12 +1422,103 @@ const Thermostat = Cluster(
1120
1422
  description: "Maintain current setpoint, regardless of schedule transitions"
1121
1423
  })
1122
1424
  ),
1425
+ Datatype(
1426
+ { name: "PresetStruct", type: "struct", xref: { document: "cluster", section: "4.3.8.28" } },
1427
+ Field({
1428
+ name: "PresetHandle",
1429
+ id: 0,
1430
+ type: "octstr",
1431
+ conformance: "M",
1432
+ constraint: "max 16",
1433
+ quality: "X",
1434
+ details: "This field shall indicate a device generated identifier for this preset. It shall be unique on the device, and shall NOT be reused after the associated preset has been deleted.\nThis field shall only be null when the encompassing PresetStruct is appended to the Presets attribute for the purpose of creating a new Preset. Refer to Presets for the creation of Preset handles.",
1435
+ xref: { document: "cluster", section: "4.3.8.28.1" }
1436
+ }),
1437
+ Field({
1438
+ name: "PresetScenario",
1439
+ id: 1,
1440
+ type: "PresetScenarioEnum",
1441
+ conformance: "M",
1442
+ details: "This field shall indicate the associated PresetScenarioEnum value for this preset.",
1443
+ xref: { document: "cluster", section: "4.3.8.28.2" }
1444
+ }),
1445
+ Field({
1446
+ name: "Name",
1447
+ id: 2,
1448
+ type: "string",
1449
+ conformance: "O",
1450
+ constraint: "max 64",
1451
+ default: null,
1452
+ quality: "X",
1453
+ details: "This field shall indicate a name provided by a user. The null value shall indicate no name.\nWithin each subset of presets sharing the same PresetScenario field value, there shall NOT be any presets with the same value, including null as a value, in the Name field.",
1454
+ xref: { document: "cluster", section: "4.3.8.28.3" }
1455
+ }),
1456
+ Field({
1457
+ name: "CoolingSetpoint",
1458
+ id: 3,
1459
+ type: "temperature",
1460
+ conformance: "COOL",
1461
+ constraint: "desc",
1462
+ default: { type: "celsius", value: 26 },
1463
+ details: "This field shall indicate the cooling setpoint for the preset. Refer to Setpoint Limits for value constraints.",
1464
+ xref: { document: "cluster", section: "4.3.8.28.4" }
1465
+ }),
1466
+ Field({
1467
+ name: "HeatingSetpoint",
1468
+ id: 4,
1469
+ type: "temperature",
1470
+ conformance: "HEAT",
1471
+ constraint: "desc",
1472
+ default: { type: "celsius", value: 20 },
1473
+ details: "This field shall indicate the heating setpoint for the preset. Refer to Setpoint Limits for value constraints.",
1474
+ xref: { document: "cluster", section: "4.3.8.28.5" }
1475
+ }),
1476
+ Field({
1477
+ name: "BuiltIn",
1478
+ id: 5,
1479
+ type: "bool",
1480
+ conformance: "M",
1481
+ default: false,
1482
+ quality: "X",
1483
+ details: 'This field shall indicate whether the preset is marked as "built-in", meaning that it can be modified, but it cannot be deleted.',
1484
+ xref: { document: "cluster", section: "4.3.8.28.6" }
1485
+ })
1486
+ ),
1487
+ Datatype(
1488
+ { name: "PresetTypeStruct", type: "struct", xref: { document: "cluster", section: "4.3.8.29" } },
1489
+ Field({
1490
+ name: "PresetScenario",
1491
+ id: 0,
1492
+ type: "PresetScenarioEnum",
1493
+ conformance: "M",
1494
+ details: "This field shall specify a PresetScenarioEnum value supported by this thermostat.",
1495
+ xref: { document: "cluster", section: "4.3.8.29.1" }
1496
+ }),
1497
+ Field({
1498
+ name: "NumberOfPresets",
1499
+ id: 1,
1500
+ type: "uint8",
1501
+ conformance: "M",
1502
+ default: 0,
1503
+ details: "This field shall specify a limit for the number of presets for this PresetScenarioEnum.",
1504
+ xref: { document: "cluster", section: "4.3.8.29.2" }
1505
+ }),
1506
+ Field({
1507
+ name: "PresetTypeFeatures",
1508
+ id: 2,
1509
+ type: "PresetTypeFeaturesBitmap",
1510
+ conformance: "M",
1511
+ default: 0,
1512
+ details: "This field shall specify a bitmap of features for this PresetTypeStruct.",
1513
+ xref: { document: "cluster", section: "4.3.8.29.3" }
1514
+ })
1515
+ ),
1123
1516
  Datatype(
1124
1517
  {
1125
1518
  name: "WeeklyScheduleTransitionStruct",
1126
1519
  type: "struct",
1127
1520
  details: "This represents a single transition in a Thermostat schedule",
1128
- xref: { document: "cluster", section: "4.3.8.24" }
1521
+ xref: { document: "cluster", section: "4.3.8.30" }
1129
1522
  },
1130
1523
  Field({
1131
1524
  name: "TransitionTime",
@@ -1134,7 +1527,7 @@ const Thermostat = Cluster(
1134
1527
  conformance: "M",
1135
1528
  constraint: "max 1439",
1136
1529
  details: "This field shall represent the start time of the schedule transition during the associated day. The time will be represented by a 16 bits unsigned integer to designate the minutes since midnight. For example, 6am will be represented by 360 minutes since midnight and 11:30pm will be represented by 1410 minutes since midnight.",
1137
- xref: { document: "cluster", section: "4.3.8.24.1" }
1530
+ xref: { document: "cluster", section: "4.3.8.30.1" }
1138
1531
  }),
1139
1532
  Field({
1140
1533
  name: "HeatSetpoint",
@@ -1143,7 +1536,7 @@ const Thermostat = Cluster(
1143
1536
  conformance: "M",
1144
1537
  quality: "X",
1145
1538
  details: "This field shall represent the heat setpoint to be applied at this associated transition start time.",
1146
- xref: { document: "cluster", section: "4.3.8.24.2" }
1539
+ xref: { document: "cluster", section: "4.3.8.30.2" }
1147
1540
  }),
1148
1541
  Field({
1149
1542
  name: "CoolSetpoint",
@@ -1152,10 +1545,166 @@ const Thermostat = Cluster(
1152
1545
  conformance: "M",
1153
1546
  quality: "X",
1154
1547
  details: "This field shall represent the cool setpoint to be applied at this associated transition start time.",
1155
- xref: { document: "cluster", section: "4.3.8.24.3" }
1548
+ xref: { document: "cluster", section: "4.3.8.30.3" }
1549
+ })
1550
+ ),
1551
+ Datatype(
1552
+ { name: "ScheduleStruct", type: "struct", xref: { document: "cluster", section: "4.3.8.31" } },
1553
+ Field({
1554
+ name: "ScheduleHandle",
1555
+ id: 0,
1556
+ type: "octstr",
1557
+ conformance: "M",
1558
+ constraint: "max 16",
1559
+ quality: "X",
1560
+ details: "This field shall indicate a device generated identifier for this schedule. It shall be unique on the device, and shall NOT be reused after the associated schedule has been deleted.\nThis field shall only be null when the encompassing ScheduleStruct is appended to the Schedules attribute for the purpose of creating a new Schedule. Refer to Schedules for the creation of Schedule handles.",
1561
+ xref: { document: "cluster", section: "4.3.8.31.1" }
1562
+ }),
1563
+ Field({
1564
+ name: "SystemMode",
1565
+ id: 1,
1566
+ type: "SystemModeEnum",
1567
+ conformance: "M",
1568
+ constraint: "desc",
1569
+ details: "This field shall specify the default thermostat system mode for transitions in this schedule. The only valid values for this field shall be Auto, Heat, and Cool.",
1570
+ xref: { document: "cluster", section: "4.3.8.31.2" }
1571
+ }),
1572
+ Field({
1573
+ name: "Name",
1574
+ id: 2,
1575
+ type: "string",
1576
+ conformance: "O",
1577
+ constraint: "max 64",
1578
+ details: "This field shall specify a name for the ScheduleStruct.",
1579
+ xref: { document: "cluster", section: "4.3.8.31.3" }
1580
+ }),
1581
+ Field({
1582
+ name: "PresetHandle",
1583
+ id: 3,
1584
+ type: "octstr",
1585
+ conformance: "O",
1586
+ constraint: "max 16",
1587
+ details: "This field shall indicate the default PresetHandle value for transitions in this schedule.",
1588
+ xref: { document: "cluster", section: "4.3.8.31.4" }
1589
+ }),
1590
+ Field(
1591
+ {
1592
+ name: "Transitions",
1593
+ id: 4,
1594
+ type: "list",
1595
+ conformance: "M",
1596
+ constraint: "1 to numberOfScheduleTransitions",
1597
+ default: [],
1598
+ details: "This field shall specify a list of transitions for the schedule.\nThis field shall NOT contain more than one ScheduleStruct with the same TransitionTime field and overlapping DayOfWeek fields; i.e. there shall be no duplicate transitions.\nIf the NumberOfScheduleTransitionsPerDay attribute is not null, then for each bit in ScheduleDayOfWeekBitmap, the number of transitions with that bit set in DayOfWeek shall NOT be greater than the value of the NumberOfScheduleTransitionsPerDay attribute.\nFor the purposes of determining which ScheduleStruct in this list is currently active, the current time shall be the number of minutes past midnight in the display value of the current time, not the actual number of minutes that have elapsed since midnight. On days which transition into or out of daylight saving time, certain values may repeat or not occur during the transition period.\nA ScheduleTransitionStruct in this list shall be active if the current day of the week matches its DayOfWeek field and the current time is greater than or equal to the TransitionTime, but less than the TransitionTime on any other ScheduleTransitionStruct in the Transitions field whose DayOfWeek field also matches the current day of the week.\nIf the current time is less than every ScheduleTransitionStruct whose DayOfWeek field also matches the current day of the week, the server shall attempt the same process to identify the active ScheduleTransitionStruct for the day preceding the previously attempted day of the week, repeating until an active ScheduleTransitionStruct is found or the attempted day is the current day of the week again. If no active ScheduleTransitionStruct is found, then the active ScheduleTransitionStruct shall be the ScheduleTransitionStruct with the largest TransitionTime field from the set of ScheduleTransitionStructs whose DayOfWeek field matches the current day of the week.",
1599
+ xref: { document: "cluster", section: "4.3.8.31.5" }
1600
+ },
1601
+ Field({ name: "entry", type: "ScheduleTransitionStruct" })
1602
+ ),
1603
+ Field({
1604
+ name: "BuiltIn",
1605
+ id: 5,
1606
+ type: "bool",
1607
+ conformance: "M",
1608
+ default: false,
1609
+ quality: "X",
1610
+ details: 'This field shall indicate whether the schedule is marked as "built-in", meaning that it can be modified, but it cannot be deleted.',
1611
+ xref: { document: "cluster", section: "4.3.8.31.6" }
1156
1612
  })
1157
1613
  ),
1158
- Datatype({ name: "OccupancyBitmap", type: "OccupancySensing.OccupancyBitmap" })
1614
+ Datatype(
1615
+ {
1616
+ name: "ScheduleTransitionStruct",
1617
+ type: "struct",
1618
+ details: "This struct provides a time of day and a set of days of the week for a state transition within a schedule. The thermostat shall use the following order of precedence for determining a new setpoint at the time of transition:\n 1. If the PresetHandle field is provided, then the setpoint for the PresetStruct in the Presets attribute with that identifier shall be used\n 2. If either the HeatingSetpoint or CoolingSetpoint is provided, then it shall be used\n a. If the SystemMode field is provided, the HeatingSetpoint and CoolingSetpoint fields shall be interpreted using the SystemMode field\n b. If the SystemMode field is not provided, the HeatingSetpoint and CoolingSetpoint fields shall be interpreted using the SystemMode field on the parent ScheduleStruct\n 3. If neither the PresetHandle field or any Setpoint field is provided, then the PresetHandle field on the parent ScheduleStruct shall be used to determine the active PresetStruct\n 4. If the PresetHandle is not indicated and no setpoint is provided for the current SystemMode, the server shall use a default value for the current SystemMode.\nIf the setpoint was derived from a preset, then the ActivePresetHandle shall be set to the PresetHandle of that preset.\nIf a CoolingSetpoint was used to determine the cooling setpoint:\n \u2022 If the server supports the OCC feature, and the Occupied bit is not set on the Occupancy attribute, then the UnoccupiedCoolingSetpoint attribute shall be set to the CoolingSetpoint\n \u2022 Otherwise, the OccupiedCoolingSetpoint attribute shall be set to the CoolingSetpoint If a HeatingSetpoint was used to determine the heating setpoint:\n \u2022 If the server supports the OCC feature, and the Occupied bit is not set on the Occupancy attribute, then the UnoccupiedHeatingSetpoint attribute shall be set to the HeatingSetpoint\n \u2022 Otherwise, the OccupiedHeatingSetpoint attribute shall be set to the HeatingSetpoint The ScheduleTransitionStruct shall be invalid if all the following are true:\n \u2022 The HeatingSetpoint field is not provided\n \u2022 The PresetHandle field is not provided\n \u2022 The PresetHandle field on the encompassing ScheduleStruct is not provided\n \u2022 The SystemMode field is provided and has the value Heat or Auto, or the SystemMode field on the parent ScheduleStruct has the value Heat or Auto\nThe ScheduleTransitionStruct shall be invalid if all the following are true:\n \u2022 The CoolingSetpoint field is not provided\n \u2022 The PresetHandle field is not provided\n \u2022 The PresetHandle field on the encompassing ScheduleStruct is not provided\n \u2022 The SystemMode field is provided and has the value Cool or Auto, or the SystemMode field on the parent ScheduleStruct has the value Cool or Auto",
1619
+ xref: { document: "cluster", section: "4.3.8.32" }
1620
+ },
1621
+ Field({
1622
+ name: "DayOfWeek",
1623
+ id: 0,
1624
+ type: "ScheduleDayOfWeekBitmap",
1625
+ conformance: "M",
1626
+ constraint: "desc",
1627
+ details: "This field shall specify a bitmask of days of the week that the transition applies to. The Vacation bit shall NOT be set; vacation schedules shall be set via the vacation preset.",
1628
+ xref: { document: "cluster", section: "4.3.8.32.1" }
1629
+ }),
1630
+ Field({
1631
+ name: "TransitionTime",
1632
+ id: 1,
1633
+ type: "uint16",
1634
+ conformance: "M",
1635
+ constraint: "max 1439",
1636
+ details: "This shall specify the time of day at which the transition becomes active, in terms of minutes within the day representing the wall clock, where 0 is 00:00:00, 1 is 00:01:00 and 1439 is 23:59:00.\nHandling of transitions during the changeover of Daylight Saving Time is implementation-dependent.",
1637
+ xref: { document: "cluster", section: "4.3.8.32.2" }
1638
+ }),
1639
+ Field({
1640
+ name: "PresetHandle",
1641
+ id: 2,
1642
+ type: "octstr",
1643
+ conformance: "[PRES]",
1644
+ constraint: "max 16",
1645
+ details: "This field shall specify the preset used at the TransitionTime. If this field is provided, then the SystemMode, CoolingSetpoint and HeatingSetpoint fields shall NOT be provided.",
1646
+ xref: { document: "cluster", section: "4.3.8.32.3" }
1647
+ }),
1648
+ Field({
1649
+ name: "SystemMode",
1650
+ id: 3,
1651
+ type: "SystemModeEnum",
1652
+ conformance: "O",
1653
+ constraint: "desc",
1654
+ details: "This shall specify the default mode to which the thermostat will switch for this transition, overriding the default for the schedule. The only valid values for this field shall be Auto, Heat, Cool and Off. This field shall only be included when the required system mode differs from the schedule\u2019s default SystemMode.",
1655
+ xref: { document: "cluster", section: "4.3.8.32.4" }
1656
+ }),
1657
+ Field({
1658
+ name: "CoolingSetpoint",
1659
+ id: 4,
1660
+ type: "temperature",
1661
+ conformance: "[COOL]",
1662
+ constraint: "desc",
1663
+ details: "This field shall specify the cooling setpoint for the transition. If PresetHandle is set, this field shall NOT be included. Refer to Setpoint Limits for value constraints.",
1664
+ xref: { document: "cluster", section: "4.3.8.32.5" }
1665
+ }),
1666
+ Field({
1667
+ name: "HeatingSetpoint",
1668
+ id: 5,
1669
+ type: "temperature",
1670
+ conformance: "[HEAT]",
1671
+ constraint: "desc",
1672
+ details: "This field shall specify the cooling setpoint for the transition. If PresetHandle is set, this field shall NOT be included. Refer to Setpoint Limits for value constraints.",
1673
+ xref: { document: "cluster", section: "4.3.8.32.6" }
1674
+ })
1675
+ ),
1676
+ Datatype(
1677
+ { name: "ScheduleTypeStruct", type: "struct", xref: { document: "cluster", section: "4.3.8.33" } },
1678
+ Field({
1679
+ name: "SystemMode",
1680
+ id: 0,
1681
+ type: "SystemModeEnum",
1682
+ conformance: "M",
1683
+ constraint: "desc",
1684
+ details: "This field shall specify a SystemModeEnum supported by this thermostat for Schedules. The only valid values for this field shall be Auto, Heat, and Cool.",
1685
+ xref: { document: "cluster", section: "4.3.8.33.1" }
1686
+ }),
1687
+ Field({
1688
+ name: "NumberOfSchedules",
1689
+ id: 1,
1690
+ type: "uint8",
1691
+ conformance: "M",
1692
+ constraint: "max numberOfSchedules",
1693
+ default: 0,
1694
+ details: "This field shall specify a limit for the number of Schedules for this SystemMode.",
1695
+ xref: { document: "cluster", section: "4.3.8.33.2" }
1696
+ }),
1697
+ Field({
1698
+ name: "ScheduleTypeFeatures",
1699
+ id: 2,
1700
+ type: "ScheduleTypeFeaturesBitmap",
1701
+ conformance: "M",
1702
+ constraint: "desc",
1703
+ default: 0,
1704
+ details: "This field shall specify a bitmap of features for this schedule entry. At least one of SupportsPresets and SupportsSetpoints shall be set.",
1705
+ xref: { document: "cluster", section: "4.3.8.33.3" }
1706
+ })
1707
+ )
1159
1708
  );
1160
1709
  MatterDefinition.children.push(Thermostat);
1161
1710
  export {