@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,23 +18,23 @@ const DeviceEnergyManagement = Cluster(
18
18
  id: 152,
19
19
  classification: "application",
20
20
  pics: "DEM",
21
- details: "This cluster allows a client to manage the power draw of a device. An example of such a client could be an Energy Management System (EMS) which controls an Energy Smart Appliance (ESA).\nIn most deployments the EMS will be the client, and the ESA will host the Energy Management Cluster server.\nFigure 15. Example of the how an EMS is a client of multiple ESAs Energy Management clusters.\nThis cluster is intended to be generic in nature and could apply to any electrical load or generator (e.g. a Battery Electric Storage System - BESS, solar PV inverter, EVSE, HVAC, heat pump, hot water heater, white goods appliances etc).\nIt consists of the following areas which shall be supported by all devices implementing this cluster:\n \u2022 Description of ESA and its capabilities & power limits (sometimes referred to as a nameplate)\n \u2022 Current state of operation (including user opt-out, safety limitations / alarms) There are some optional capabilities that some ESAs may be able to offer:\n \u2022 Ability to control the load or generation\n \u2022 Forecast data, including when it can be flexible (i.e. modify the power or time period)\n \u2022 The ability to have their power profile adjusted by an EMS, and to provide an updated Forecast back to the EMS.\nThis allows the EMS to manage multiple home loads and where ESAs can be flexible, continuously optimizing the home energy to minimize cost, reduce CO2 impact, maximize self-consumption of solar PV and provide Demand Side Response (DSR) Grid services.\nIt is likely that the ESA may also use the Pricing Cluster to obtain incentive signals such as 'grid carbon intensity', 'time of use' or 'type of use' tariffs to schedule its operation to run at the cheapest and greenest times.\nFigure 16. Example of the how an HVAC may use multiple clusters\nNOTE\nGrid Services are market dependent and will use other protocols ([OpenADR] / [IEEE2030.5]) to communicate grid events to the EMS. These are outside the scope of Matter.\nNOTE\nDifferent markets may follow different approaches, but the UK [PAS1878] and [EUCodeOfConduct] give examples of how ESAs may be mandated to support these features in the future.\nNOTE Support of Device Energy Management Cluster is provisional.",
21
+ details: "This cluster allows a client to manage the power draw of a device. An example of such a client could\nbe an Energy Management System (EMS) which controls an Energy Smart Appliance (ESA).\nIn most deployments the EMS will be the client, and the ESA will host the Device Energy Management Cluster server.\nFigure 17. Example of the how an EMS is a client of multiple ESAs Device Energy Management clusters.\nThis cluster is intended to be generic in nature and could apply to any electrical load or generator (e.g. a Battery Electric Storage System - BESS, solar PV inverter, EVSE, HVAC, heat pump, hot water heater, white goods appliances etc).\nIt consists of the following areas which shall be supported by all devices implementing this cluster:\n \u2022 Description of ESA and its capabilities & power limits (sometimes referred to as a nameplate)\n \u2022 Current state of operation (including user opt-out, safety limitations / alarms) There are some optional capabilities that some ESAs may be able to offer:\n \u2022 Ability to control the load or generation\n \u2022 Forecast data, including when it can be flexible (i.e. modify the power or time period)\n \u2022 The ability to have their power profile adjusted by an EMS, and to provide an updated Forecast back to the EMS.\nThis allows the EMS to manage multiple home loads and where ESAs can be flexible, continuously optimizing the home energy to minimize cost, reduce CO2 impact, maximize self-consumption of solar PV and provide Demand Side Response (DSR) Grid services.\nIt is likely that the ESA may also use the Pricing Cluster to obtain incentive signals such as 'grid carbon intensity', 'time of use' or 'type of use' tariffs to schedule its operation to run at the cheapest and greenest times.\nFigure 18. Example of the how an HVAC may use multiple clusters\nNOTE\nGrid Services are market dependent and will use other protocols ([OpenADR] / [IEEE2030.5]) to communicate grid events to the EMS. These are outside the scope of Matter.\nNOTE\nDifferent markets may follow different approaches, but the UK [PAS1878] and [EUCodeOfConduct] give examples of how ESAs may be mandated to support these features in the future.",
22
22
  xref: { document: "cluster", section: "9.2" }
23
23
  },
24
- Attribute({ name: "ClusterRevision", id: 65533, type: "ClusterRevision", default: 3 }),
24
+ Attribute({ name: "ClusterRevision", id: 65533, type: "ClusterRevision", default: 4 }),
25
25
  Attribute(
26
26
  { name: "FeatureMap", id: 65532, type: "FeatureMap", xref: { document: "cluster", section: "9.2.4" } },
27
27
  Field({
28
28
  name: "PA",
29
- conformance: "O.a+",
29
+ conformance: "O",
30
30
  constraint: "0",
31
31
  description: "PowerAdjustment",
32
- details: "For Energy Smart Appliances (ESA) the definition of being 'smart' mandates that they can report their current power adjustment capability and have an EMS request a temporary adjustment. This may typically be to curtail power requirements during peak periods, but can also be used to turn on an ESA if there is excess renewable or local generation (Solar PV).\nFor example, a home may have solar PV which often produces more power than the home requires,\nresulting in the excess power flowing into the grid. This excess power naturally fluctuates when clouds pass overhead and other loads in the home are switched on and off.\nEVSE Example: An EMS may therefore be able to turn on the EVSE (if the vehicle is plugged in) and can start charging the vehicle, and periodically modify the charging power depending on PV generation and other home loads, so as to minimize import and export to the grid.",
32
+ details: "For Energy Smart Appliances (ESA) the definition of being 'smart' mandates that they can report their current power adjustment capability and have an EMS request a temporary adjustment. This may typically be to curtail power requirements during peak periods, but can also be used to turn on an ESA if there is excess renewable or local generation (Solar PV).\nFor example, a home may have solar PV which often produces more power than the home requires, resulting in the excess power flowing into the grid. This excess power naturally fluctuates when clouds pass overhead and other loads in the home are switched on and off.\nEVSE Example: An EMS may therefore be able to turn on the EVSE (if the vehicle is plugged in) and can start charging the vehicle, and periodically modify the charging power depending on PV generation and other home loads, so as to minimize import and export to the grid. An EMS may also use this feature to control the discharging (and re-charging) of the vehicle if the EVSE and vehicle support the V2X feature of the EVSE cluster of the associated EVSE device.",
33
33
  xref: { document: "cluster", section: "9.2.4.1" }
34
34
  }),
35
35
  Field({
36
36
  name: "PFR",
37
- conformance: "(STA | PAU | FA | CON) & !SFR, O.a+",
37
+ conformance: "[!PA].a, STA | PAU | FA | CON, O",
38
38
  constraint: "1",
39
39
  description: "PowerForecastReporting",
40
40
  details: "For Energy Smart Appliances (ESA) the definition of being 'smart' implies that they can report their indicative forecast power demands or generation, to a greater or lesser extent. For some ESAs this is highly predictable (in terms of both power and time), in other appliances this is more challenging and only a basic level of forecast is possible.\nForecasts are defined from a current time, using a slot format, where the slot is akin to a relatively constant operating mode.\nWashing machine example: a washing machine may have stages of a washing cycle: heating, tumbling, rinse and spin stages. At each stage, the approximate minimum and maximum power consumption may be known, as well as the duration of that stage.\nIn some circumstances the ESA may allow the stage to be delayed or paused (subject to safety and manufacturer\u2019s discretion and user preferences).\nTypically, appliances with a heating element cannot have their power consumption adjusted and can only be paused or delayed.\nSome ESAs may not be flexible other than a delayed cycle start (for example, once the washing cycle has been started then they run continuously until the cycle completes).\nAppliances that only support the PowerForecastReporting and not any of the adjustment features may indicate that they are not flexible in the forecast slot format.\nThe PowerForecastReporting and the adjustment features aim to align to the [SAREF4ENER] ontology.\nInverter driven ESAs: some inverter driven ESAs can consume or generate a variable amount of power.\nFor example, a single phase EVSE can be adjusted in the range of 6-32Amps in 0.6 Amp steps in EU or on a hardwired 120V supply in the range of 6-15 Amps in US.\nFor example, a home battery may be adjusted to charge or discharge in steps of 1W.\nFor example, a heat pump may be able to modulate its compressor inverter between 20-100% of its rated power.\nThe ESA indicates its power adjustment range and its nominal power consumption as part of its Forecast.",
@@ -42,7 +42,7 @@ const DeviceEnergyManagement = Cluster(
42
42
  }),
43
43
  Field({
44
44
  name: "SFR",
45
- conformance: "(STA | PAU | FA | CON) & !PFR, O.a+",
45
+ conformance: "[!PA].a",
46
46
  constraint: "2",
47
47
  description: "StateForecastReporting",
48
48
  details: "Some ESAs do not know their actual power consumption, but do know the state of operation. Like the PowerForecastingReporting feature, this uses the same slot structure mechanism to indicate a change in state vs time.\nAn external observing EMS may have access to real-time meter readings, and could learn the typical power consumption based on the advertised internal state of the ESA.\nTo enable this capability, the ESA shall report its internal operational state using an manufacturer specific value.\nOnce the EMS has built a model of the state vs observed power consumption, it may request a forecast adjustment for particular times of the day, encouraging the ESA to use power at alternative times.",
@@ -50,7 +50,7 @@ const DeviceEnergyManagement = Cluster(
50
50
  }),
51
51
  Field({
52
52
  name: "STA",
53
- conformance: "O.a+",
53
+ conformance: "O",
54
54
  constraint: "3",
55
55
  description: "StartTimeAdjustment",
56
56
  details: "ESAs which support the Start Time Adjustment feature, allow an EMS to recommend a change to the start time of the energy transfer that the ESA has previously suggested it would use.\nWashing machine example: A Washing Machine may have been set to start a wash cycle at 9pm when the variable tariff normally reduces.\nHowever, the EMS is aware that a grid event has occurred, making it cheaper to run the cycle at a later time, but the washing machine is not aware of this.\nThe EMS first requests the Forecast data from each of its registered ESAs. It determines that the washing machine has a power profile suggesting it will start the wash cycle at 9pm, but the EMS now knows that the grid event means it will be cheaper to delay the start until 11pm.\nThe EMS can then optimize the cost by asking the washing machine to delay starting the wash cycle until 11pm.\nIt does this by sending a StartTimeAdjustRequest to the washing machine to request delaying the start of the washing cycle.",
@@ -58,15 +58,15 @@ const DeviceEnergyManagement = Cluster(
58
58
  }),
59
59
  Field({
60
60
  name: "PAU",
61
- conformance: "O.a+",
61
+ conformance: "O",
62
62
  constraint: "4",
63
63
  description: "Pausable",
64
- details: "ESAs which support the Pausable feature, allow an EMS to recommend a pause in the middle of a forecast power profile that the ESA is currently using.\nWashing machine example: A Washing Machine is in operation, and starting its water heating step.\nHowever, the EMS becomes aware from the smart meter that the total home load on the grid is close to exceeding its allowed total grid load.\nThe EMS first requests the Forecast data from each of its registered ESAs. It determines that the washing machine has a power profile suggesting its current step in the wash cycle is using power to heat the water, but that this step can be paused.\nThe EMS can then reduce the grid load by asking the washing machine to pause the wash cycle for a short duration.\nIt does this by sending a PauseRequest to the washing machine to request pausing the current step of the forecast power usage for a period to allow other home loads to finish before resuming the washing cycle.",
64
+ details: "ESAs which support the Pausable feature, allow an EMS to recommend a pause in the middle of a\nforecast power profile that the ESA is currently using.\nWashing machine example: A Washing Machine is in operation, and starting its water heating step.\nHowever, the EMS becomes aware from the smart meter that the total home load on the grid is close to exceeding its allowed total grid load.\nThe EMS first requests the Forecast data from each of its registered ESAs. It determines that the washing machine has a power profile suggesting its current step in the wash cycle is using power to heat the water, but that this step can be paused.\nThe EMS can then reduce the grid load by asking the washing machine to pause the wash cycle for a short duration.\nIt does this by sending a PauseRequest to the washing machine to request pausing the current step of the forecast power usage for a period to allow other home loads to finish before resuming the washing cycle.",
65
65
  xref: { document: "cluster", section: "9.2.4.5" }
66
66
  }),
67
67
  Field({
68
68
  name: "FA",
69
- conformance: "P, O.a+",
69
+ conformance: "O",
70
70
  constraint: "5",
71
71
  description: "ForecastAdjustment",
72
72
  details: "ESAs which support the Forecast adjustment feature, allow an EMS to recommend a change to the start, duration and/or power level limits of the steps of the power profile that the ESA has previously suggested it would use.\nHeat pump and Solar PV example: A heat pump may have the ability to heat hot water as well as heating the home. The heat pump scheduling system may have determined that the home will be unoccupied during the day, or that the indoor temperature is above the set-point and so it knows that it will not need to heat the home.\nHowever, the hot water tank is likely to need to be reheated before the homeowner comes home in the evening. The heat pump is not aware that the property also has a solar PV inverter which is also an ESA that is communicating with the EMS.\nThe EMS first requests the Forecast data from each of its registered ESAs. It determines that the heat pump has a power profile suggesting it needs to heat hot water around 6pm. The solar PV inverter has forecast that it will generate 3.6kW of power during the middle of the day and into the afternoon before the sun goes down.\nThe EMS can then optimize the home considering other non-ESA loads and can ask the heat pump to heat the hot water around 3pm when it has forecast that excess solar power will be available.\nIt does this by sending a ModifyForecastRequest to the heat pump and asks the heat pump to expect to run at a lower power consumption (within the solar excess power) which requires the heat pump to run for a longer duration to achieve its required energy demand.",
@@ -74,10 +74,10 @@ const DeviceEnergyManagement = Cluster(
74
74
  }),
75
75
  Field({
76
76
  name: "CON",
77
- conformance: "P, O.a+",
77
+ conformance: "O",
78
78
  constraint: "6",
79
79
  description: "ConstraintBasedAdjustment",
80
- details: "ESAs which support the Constraint-Based Adjustment feature allow an EMS to inform the ESA of periods during which power usage should be modified (for example when the EMS has been made aware that the grid supplier has requested reduced energy usage due to overall peak grid demand) and may cause the ESA to modify the intended power profile has previously suggested it would use.\nEVSE example: An EVSE scheduling system may have determined that the vehicle would be charged starting at a moderate rate at 1am, so that it has enough charge by the time it is needed later that morning.\nHowever, the DSR service provider has informed the EMS that due to high forecast winds it is now forecast that there will be very cheap energy available from wind generation between 2am and 3am.\nThe EMS first requests the Forecast data from each of its registered ESAs. It determines that the\nEVSE has a power profile suggesting it plans to start charging the vehicle at 1am.\nThe EMS can then try to reduce the cost of charging the EV by informing the EVSE of the desire to increase the charging between scheduled times.\nIt does this by sending a RequestConstraintBasedForecast to the EVSE and asks it to run at a higher NominalPower consumption during the constraint period, which may require it to decrease its charge rate outside the constraint period to achieve its required energy demand.",
80
+ details: "ESAs which support the Constraint-Based Adjustment feature allow an EMS to inform the ESA of periods during which power usage should be modified (for example when the EMS has been made aware that the grid supplier has requested reduced energy usage due to overall peak grid demand)\nand may cause the ESA to modify the intended power profile has previously suggested it would use.\nEVSE example: An EVSE scheduling system may have determined that the vehicle would be charged starting at a moderate rate at 1am, so that it has enough charge by the time it is needed later that morning.\nHowever, the DSR service provider has informed the EMS that due to high forecast winds it is now forecast that there will be very cheap energy available from wind generation between 2am and 3am.\nThe EMS first requests the Forecast data from each of its registered ESAs. It determines that the EVSE has a power profile suggesting it plans to start charging the vehicle at 1am.\nThe EMS can then try to reduce the cost of charging the EV by informing the EVSE of the desire to increase the charging between scheduled times.\nIt does this by sending a RequestConstraintBasedForecast to the EVSE and asks it to run at a higher NominalPower consumption during the constraint period, which may require it to decrease its charge rate outside the constraint period to achieve its required energy demand.",
81
81
  xref: { document: "cluster", section: "9.2.4.7" }
82
82
  })
83
83
  ),
@@ -101,7 +101,7 @@ const DeviceEnergyManagement = Cluster(
101
101
  conformance: "M",
102
102
  default: false,
103
103
  quality: "F",
104
- details: "Indicates whether the ESA is classed as a generator or load. This allows an EMS to understand whether the power values reported by the ESA need to have their sign inverted when dealing with forecasts and adjustments.\nFor example, a solar PV inverter (being a generator) may produce positive values to indicate generation, however an EMS when predicting the total home load would need to subtract these positive values from the loads to compute a net import at the grid meter.\nFor example, a home battery storage system (BESS) which needs to charge the battery and then discharge to the home loads, would be classed as a generator. These types of devices shall have this field set to true. When generating its forecast or advertising its PowerAdjustmentCapability, the power values shall be positive to indicate discharging to the loads in the home, and negative to indicate when it is charging its battery.\nGRID meter = \u03A3 LoadPowers - \u03A3 GeneratorPowers\nExample:",
104
+ details: "Indicates whether the ESA is classed as a generator or load. This allows an EMS to understand whether the power values reported by the ESA need to have their sign inverted when dealing with forecasts and adjustments.\nFor example, a solar PV inverter (being a generator) may produce negative values to indicate generation (since power is flowing out of the node into the home), however a display showing the power to the consumers may need to present a positive solar production value to the consumer.\nFor example, a home battery storage system (BESS) which needs to charge the battery and then discharge to the home loads, would be classed as a generator. These types of devices shall have this field set to true. When generating its forecast or advertising its PowerAdjustmentCapability, the power values shall be negative to indicate discharging to the loads in the home, and positive to indicate when it is charging its battery.\nGRID meter = \u03A3 LoadPowers + \u03A3 GeneratorPowers\nExample:",
105
105
  xref: { document: "cluster", section: "9.2.8.2" }
106
106
  }
107
107
  ),
@@ -123,7 +123,7 @@ const DeviceEnergyManagement = Cluster(
123
123
  access: "R V",
124
124
  conformance: "M",
125
125
  default: 0,
126
- details: "Indicates the minimum electrical power that the ESA can consume when switched on. This does not include when in power save or standby modes.\nNote that for Generator ESAs that can charge an internal battery (such as a battery storage inverter), the AbsMinPower will be a negative number representing the maximum power that the ESA can charge its internal battery.",
126
+ details: "Indicates the minimum electrical power that the ESA can consume when switched on. This does not include when in power save or standby modes.\nNOTE\nFor Generator ESAs that can discharge an internal battery (such as a battery storage inverter) to loads in the home, the AbsMinPower will be a negative number representing the maximum power that the ESA can discharge its internal battery.",
127
127
  xref: { document: "cluster", section: "9.2.8.4" }
128
128
  }),
129
129
  Attribute({
@@ -132,25 +132,22 @@ const DeviceEnergyManagement = Cluster(
132
132
  type: "power-mW",
133
133
  access: "R V",
134
134
  conformance: "M",
135
+ constraint: "min absMinPower",
135
136
  default: 0,
136
- details: "Indicates the maximum electrical power that the ESA can consume when switched on.\nThe value of the AbsMaxPower attribute shall be limited\nAbsMaxPower >= AbsMinPower\nNote that for Generator ESAs that can discharge a battery to loads in the home (such as a battery storage inverter), the AbsMaxPower will be a positive number representing the maximum power at which the ESA can discharge its internal battery.\nFor example, a battery storage inverter that can charge its battery at a maximum power of 2000W and can discharge the battery at a maximum power of 3000W, would have a AbsMinPower: -2000, AbsMaxPower: 3000W.",
137
+ details: "Indicates the maximum electrical power that the ESA can consume when switched on.\nNote that for Generator ESAs that can charge a battery by importing power into the node (such as a battery storage inverter), the AbsMaxPower will be a positive number representing the maximum power at which the ESA can charge its internal battery.\nFor example, a battery storage inverter that can charge its battery at a maximum power of 2000W and can discharge the battery at a maximum power of 3000W, would have a AbsMinPower: -3000, AbsMaxPower: 2000W.",
137
138
  xref: { document: "cluster", section: "9.2.8.5" }
138
139
  }),
139
- Attribute(
140
- {
141
- name: "PowerAdjustmentCapability",
142
- id: 5,
143
- type: "list",
144
- access: "R V",
145
- conformance: "PA",
146
- constraint: "max 8",
147
- default: null,
148
- quality: "X",
149
- details: "Indicates how the ESA can be adjusted at the current time. This attribute SHOULD be updated regularly by ESAs.\nFor example, a battery storage inverter may need to regulate its internal temperature, or the charging rate of the battery may be limited due to cold temperatures, or a change in the state of charge of the battery may mean that the maximum charging or discharging rate is limited.\nAn empty list shall indicate that no power adjustment is currently possible.\nMultiple entries in the list allow to indicate that permutations of scenarios may be possible.\nFor example, a 10kWh battery could be at 80% state of charge. If charging at 2kW, then it would be full in 1 hour. However, it could be discharged at 2kW for 4 hours.\nIn this example the list of PowerAdjustStructs allows multiple scenarios to be offered as follows:",
150
- xref: { document: "cluster", section: "9.2.8.6" }
151
- },
152
- Field({ name: "entry", type: "PowerAdjustStruct" })
153
- ),
140
+ Attribute({
141
+ name: "PowerAdjustmentCapability",
142
+ id: 5,
143
+ type: "PowerAdjustCapabilityStruct",
144
+ access: "R V",
145
+ conformance: "PA",
146
+ default: null,
147
+ quality: "X Q",
148
+ details: "Indicates how the ESA can be adjusted at the current time, and the state of any active adjustment.\nA null value indicates that no power adjustment is currently possible, and nor is any adjustment currently active.\nThis attribute SHOULD be updated periodically by ESAs to reflect any changes in internal state, for example temperature or stored energy, which would affect the power or duration limits.\nChanges to this attribute shall only be marked as reportable in the following cases:\n \u2022 At most once every 10 seconds on changes, or\n \u2022 When it changes from null to any other value and vice versa.",
149
+ xref: { document: "cluster", section: "9.2.8.6" }
150
+ }),
154
151
  Attribute({
155
152
  name: "Forecast",
156
153
  id: 6,
@@ -158,8 +155,8 @@ const DeviceEnergyManagement = Cluster(
158
155
  access: "R V",
159
156
  conformance: "PFR | SFR",
160
157
  default: null,
161
- quality: "X",
162
- details: "This attribute allows an ESA to share its intended forecast with a client (such as an Energy Management System).\nA null value indicates that there is no forecast currently available\nyet been selected by the user).\nA server may reset this value attribute to null on a reboot, and it does not need to persist any previous forecasts.",
158
+ quality: "X Q",
159
+ details: "This attribute allows an ESA to share its intended forecast with a client (such as an Energy Management System).\nA null value indicates that there is no forecast currently available (for example, a program has not yet been selected by the user).\nA server may reset this value attribute to null on a reboot, and it does not need to persist any previous forecasts.\nChanges to this attribute shall only be marked as reportable in the following cases:\n \u2022 At most once every 10 seconds on changes, or\n \u2022 When it changes from null to any other value and vice versa, or\n \u2022 As a result of a command which causes the forecast to be updated, or\n \u2022 As a result of a change in the opt-out status which in turn may cause the ESA to recalculate its forecast.",
163
160
  xref: { document: "cluster", section: "9.2.8.7" }
164
161
  }),
165
162
  Attribute({
@@ -170,7 +167,7 @@ const DeviceEnergyManagement = Cluster(
170
167
  conformance: "PA | STA | PAU | FA | CON",
171
168
  constraint: "desc",
172
169
  default: 0,
173
- details: "Indicates the current Opt-Out state of the ESA. The ESA may have a local user interface to allow the user to control this OptOutState. An EMS may subscribe to the OptOutState to get notified about changes in operational state.\nIf the ESA is in the LocalOptOut or OptOut states, so it cannot be controlled by an EMS for local optimization reasons, it shall reject any commands which have the AdjustmentCauseEnum value LocalOptimization. If the ESA is in the GridOptOut or OptOut states, so it cannot be controlled by an EMS for grid optimization reasons, it shall reject any commands which have the AdjustmentCauseEnum value GridOptimization. If the ESA is in the LocalOptOut, GridOptOut, or NoOptOut states, the device is still permitted to optimize its own energy usage, for example, using tariff information it may obtain.",
170
+ details: "Indicates the current Opt-Out state of the ESA. The ESA may have a local user interface to allow the user to control this OptOutState. An EMS may subscribe to the OptOutState to get notified about changes in operational state.\nIf the ESA is in the LocalOptOut or OptOut states, so it cannot be controlled by an EMS for local optimization reasons, it shall reject any commands which have the AdjustmentCauseEnum value LocalOptimization. If the ESA is in the GridOptOut or OptOut states, so it cannot be controlled by an EMS for grid optimization reasons, it shall reject any commands which have the AdjustmentCauseEnum value GridOptimization.\nIf the user changes the Opt-Out state of the ESA which is currently operating with a Forecast that is due to a previous StartTimeAdjustRequest, ModifyForecastRequest or RequestConstraintBasedForecast command that would now not be permitted due to the new Opt-out state\nattribute ForecastUpdateReason field currently contains a reason which is now opted out), the ESA shall behave as if it had received a CancelRequest command.\nIf the user changes the Opt-Out state of the ESA which currently has the ESAStateEnum with value Paused due to a previous PauseRequest command that would now not be permitted due to the new Opt-out state, and the ESA supports the PFR or SFR features (i.e. the Forecast attribute ForecastUpdateReason field currently contains a reason which is now opted out), the ESA shall behave as if it had received a ResumeRequest command.\nIf the user changes the Opt-Out state of the ESA which currently has the ESAStateEnum with value PowerAdjustActive due to a previous PowerAdjustRequest command that would now not be permitted due to the new Opt-out state (i.e. the Forecast attribute ForecastUpdateReason field currently contains a reason which is now opted out), the ESA shall behave as if it had received a CancelPowerAdjustRequest command.\nIf the ESA is in the LocalOptOut, GridOptOut, or NoOptOut states, the device is still permitted to optimize its own energy usage, for example, using tariff information it may obtain.",
174
171
  xref: { document: "cluster", section: "9.2.8.8" }
175
172
  }),
176
173
  Event({
@@ -214,7 +211,7 @@ const DeviceEnergyManagement = Cluster(
214
211
  id: 2,
215
212
  type: "energy-mWh",
216
213
  conformance: "M",
217
- details: "This field shall indicate the approximate energy used by the ESA during the session.\nFor example, if the ESA was on and was adjusted to be switched off, then this shall be 0W. If this was a battery inverter that was requested to charge it would have a negative energy use. If this was a normal load that was turned on, then it will have positive value.",
214
+ details: "This field shall indicate the approximate energy used by the ESA during the session.\nFor example, if the ESA was on and was adjusted to be switched off, then this shall be 0 mWh. If this was a battery inverter that was requested to discharge it would have a negative EnergyUse value. If this was a normal load that was turned on, then it will have positive value.",
218
215
  xref: { document: "cluster", section: "9.2.10.2.3" }
219
216
  })
220
217
  ),
@@ -321,7 +318,6 @@ const DeviceEnergyManagement = Cluster(
321
318
  id: 1,
322
319
  type: "AdjustmentCauseEnum",
323
320
  conformance: "M",
324
- constraint: "desc",
325
321
  details: "This field shall indicate the cause of the request from the EMS.",
326
322
  xref: { document: "cluster", section: "9.2.9.3.2" }
327
323
  })
@@ -351,7 +347,6 @@ const DeviceEnergyManagement = Cluster(
351
347
  id: 1,
352
348
  type: "AdjustmentCauseEnum",
353
349
  conformance: "M",
354
- constraint: "desc",
355
350
  details: "This field shall indicate the cause of the request from the EMS.",
356
351
  xref: { document: "cluster", section: "9.2.9.4.2" }
357
352
  })
@@ -382,7 +377,7 @@ const DeviceEnergyManagement = Cluster(
382
377
  id: 0,
383
378
  type: "uint32",
384
379
  conformance: "M",
385
- details: "This field shall indicate the ForecastId that is to be modified.",
380
+ details: "This field shall indicate the ForecastID that is to be modified.",
386
381
  xref: { document: "cluster", section: "9.2.9.6.1" }
387
382
  }),
388
383
  Field(
@@ -392,7 +387,7 @@ const DeviceEnergyManagement = Cluster(
392
387
  type: "list",
393
388
  conformance: "M",
394
389
  constraint: "max 10",
395
- details: "This field shall contain a list of SlotAdjustment parameters that should be modified in the corresponding Forecast with matching ForecastId.",
390
+ details: "This field shall contain a list of SlotAdjustment parameters that should be modified in the corresponding Forecast with matching ForecastID.",
396
391
  xref: { document: "cluster", section: "9.2.9.6.2" }
397
392
  },
398
393
  Field({ name: "entry", type: "SlotAdjustmentStruct" })
@@ -402,7 +397,6 @@ const DeviceEnergyManagement = Cluster(
402
397
  id: 2,
403
398
  type: "AdjustmentCauseEnum",
404
399
  conformance: "M",
405
- constraint: "desc",
406
400
  details: "This field shall indicate the cause of the request from the EMS.",
407
401
  xref: { document: "cluster", section: "9.2.9.6.3" }
408
402
  })
@@ -425,7 +419,7 @@ const DeviceEnergyManagement = Cluster(
425
419
  type: "list",
426
420
  conformance: "M",
427
421
  constraint: "max 10",
428
- details: "This field shall indicate the series of turn up or turn down power requests that the ESA is being asked to constrain its operation within.\nFor example, a grid event which requires devices to reduce power (turn down) between 4pm and 6pm and due to excess power on the grid overnight, may request ESAs to increase their power demand (turn up) between midnight and 6am.\nIf this ESA supports PFR this would have 2 entries in the list as follows:\nIf this ESA supports SFR where it does not know the actual power, but has an understanding of the functions that use more energy, it could be requested to use more or less energy using the LoadControl field as follows:",
422
+ details: "This field shall indicate the series of turn up or turn down power requests that the ESA is being asked to constrain its operation within. These requests shall be in the future, shall be in chronological order, starting with the earliest start time, and shall NOT overlap in time.\nFor example, a grid event which requires devices to reduce power (turn down) between 4pm and 6pm and due to excess power on the grid overnight, may request ESAs to increase their power demand (turn up) between midnight and 6am.\nIf this ESA supports PFR this would have 2 entries in the list as follows:\nIf this ESA supports SFR where it does not know the actual power, but has an understanding of the functions that use more energy, it could be requested to use more or less energy using the LoadCon\ntrol field as follows:",
429
423
  xref: { document: "cluster", section: "9.2.9.7.1" }
430
424
  },
431
425
  Field({ name: "entry", type: "ConstraintsStruct" })
@@ -435,7 +429,6 @@ const DeviceEnergyManagement = Cluster(
435
429
  id: 1,
436
430
  type: "AdjustmentCauseEnum",
437
431
  conformance: "M",
438
- constraint: "desc",
439
432
  details: "This field shall indicate the cause of the request from the EMS.",
440
433
  xref: { document: "cluster", section: "9.2.9.7.2" }
441
434
  })
@@ -532,7 +525,7 @@ const DeviceEnergyManagement = Cluster(
532
525
  Field({
533
526
  name: "Paused",
534
527
  id: 4,
535
- conformance: "[FA]",
528
+ conformance: "PAU",
536
529
  description: "The ESA is currently paused by a client using the PauseRequest command"
537
530
  })
538
531
  ),
@@ -568,36 +561,36 @@ const DeviceEnergyManagement = Cluster(
568
561
  Field({
569
562
  name: "NormalCompletion",
570
563
  id: 0,
571
- conformance: "O",
564
+ conformance: "M",
572
565
  description: "The ESA completed the power adjustment as requested"
573
566
  }),
574
- Field({ name: "Offline", id: 1, conformance: "O", description: "The ESA was set to offline" }),
567
+ Field({ name: "Offline", id: 1, conformance: "M", description: "The ESA was set to offline" }),
575
568
  Field({
576
569
  name: "Fault",
577
570
  id: 2,
578
- conformance: "O",
571
+ conformance: "M",
579
572
  description: "The ESA has developed a fault could not complete the adjustment"
580
573
  }),
581
574
  Field({
582
575
  name: "UserOptOut",
583
576
  id: 3,
584
- conformance: "O",
577
+ conformance: "M",
585
578
  description: "The user has disabled the ESA\u2019s flexibility capability"
586
579
  }),
587
- Field({ name: "Cancelled", id: 4, conformance: "O", description: "The adjustment was cancelled by a client" })
580
+ Field({ name: "Cancelled", id: 4, conformance: "M", description: "The adjustment was cancelled by a client" })
588
581
  ),
589
582
  Datatype(
590
583
  { name: "AdjustmentCauseEnum", type: "enum8", xref: { document: "cluster", section: "9.2.7.6" } },
591
584
  Field({
592
585
  name: "LocalOptimization",
593
586
  id: 0,
594
- conformance: "O",
587
+ conformance: "M",
595
588
  description: "The adjustment is to optimize the local energy usage"
596
589
  }),
597
590
  Field({
598
591
  name: "GridOptimization",
599
592
  id: 1,
600
- conformance: "O",
593
+ conformance: "M",
601
594
  description: "The adjustment is to optimize the grid energy usage"
602
595
  })
603
596
  ),
@@ -606,23 +599,39 @@ const DeviceEnergyManagement = Cluster(
606
599
  Field({
607
600
  name: "InternalOptimization",
608
601
  id: 0,
609
- conformance: "O",
602
+ conformance: "M",
610
603
  description: "The update was due to internal ESA device optimization"
611
604
  }),
612
605
  Field({
613
606
  name: "LocalOptimization",
614
607
  id: 1,
615
- conformance: "O",
608
+ conformance: "M",
616
609
  description: "The update was due to local EMS optimization"
617
610
  }),
618
- Field({ name: "GridOptimization", id: 2, conformance: "O", description: "The update was due to grid optimization" })
611
+ Field({ name: "GridOptimization", id: 2, conformance: "M", description: "The update was due to grid optimization" })
612
+ ),
613
+ Datatype(
614
+ { name: "PowerAdjustReasonEnum", type: "enum8", xref: { document: "cluster", section: "9.2.7.8" } },
615
+ Field({ name: "NoAdjustment", id: 0, conformance: "M", description: "There is no Power Adjustment active" }),
616
+ Field({
617
+ name: "LocalOptimizationAdjustment",
618
+ id: 1,
619
+ conformance: "M",
620
+ description: "There is PowerAdjustment active due to local EMS optimization"
621
+ }),
622
+ Field({
623
+ name: "GridOptimizationAdjustment",
624
+ id: 2,
625
+ conformance: "M",
626
+ description: "There is PowerAdjustment active due to local EMS optimization"
627
+ })
619
628
  ),
620
629
  Datatype(
621
630
  {
622
631
  name: "CostStruct",
623
632
  type: "struct",
624
633
  details: "This indicates a generic mechanism for expressing cost to run an appliance, in terms of financial, GHG emissions, comfort value etc.",
625
- xref: { document: "cluster", section: "9.2.7.8" }
634
+ xref: { document: "cluster", section: "9.2.7.9" }
626
635
  },
627
636
  Field({
628
637
  name: "CostType",
@@ -631,7 +640,7 @@ const DeviceEnergyManagement = Cluster(
631
640
  conformance: "M",
632
641
  default: 0,
633
642
  details: "This field shall indicate the type of cost being represented (see CostTypeEnum).",
634
- xref: { document: "cluster", section: "9.2.7.8.1" }
643
+ xref: { document: "cluster", section: "9.2.7.9.1" }
635
644
  }),
636
645
  Field({
637
646
  name: "Value",
@@ -640,7 +649,7 @@ const DeviceEnergyManagement = Cluster(
640
649
  conformance: "M",
641
650
  default: 0,
642
651
  details: "This field shall indicate the value of the cost. This may be negative (indicating that it is not a cost, but a free benefit).\nFor example, if the Value was -302 and DecimalPoints was 2, then this would represent a benefit of 3.02.",
643
- xref: { document: "cluster", section: "9.2.7.8.2" }
652
+ xref: { document: "cluster", section: "9.2.7.9.2" }
644
653
  }),
645
654
  Field({
646
655
  name: "DecimalPoints",
@@ -649,7 +658,7 @@ const DeviceEnergyManagement = Cluster(
649
658
  conformance: "M",
650
659
  default: 0,
651
660
  details: "This field shall indicate the number of digits to the right of the decimal point in the Value field. For example, if the Value was 102 and DecimalPoints was 2, then this would represent a cost of 1.02.",
652
- xref: { document: "cluster", section: "9.2.7.8.3" }
661
+ xref: { document: "cluster", section: "9.2.7.9.3" }
653
662
  }),
654
663
  Field({
655
664
  name: "Currency",
@@ -659,28 +668,29 @@ const DeviceEnergyManagement = Cluster(
659
668
  constraint: "max 999",
660
669
  default: 0,
661
670
  details: "Indicates the currency for the value in the Value field. The value of the currency field shall match the values defined by [ISO 4217].\nThis is an optional field. It shall be included if CostType is Financial.",
662
- xref: { document: "cluster", section: "9.2.7.8.4" }
671
+ xref: { document: "cluster", section: "9.2.7.9.4" }
663
672
  })
664
673
  ),
665
674
  Datatype(
666
- { name: "PowerAdjustStruct", type: "struct", xref: { document: "cluster", section: "9.2.7.9" } },
675
+ { name: "PowerAdjustStruct", type: "struct", xref: { document: "cluster", section: "9.2.7.10" } },
667
676
  Field({
668
677
  name: "MinPower",
669
678
  id: 0,
670
679
  type: "power-mW",
671
680
  conformance: "M",
672
681
  default: 0,
673
- details: "This field shall indicate the minimum power that the ESA can have its power adjusted to.\nNote that this is a signed value. Negative values indicate power flows away from loads (e.g. charging a battery inverter).\nMinPower shall be less than MaxPower.",
674
- xref: { document: "cluster", section: "9.2.7.9.1" }
682
+ details: "This field shall indicate the minimum power that the ESA can have its power adjusted to.\nNote that this is a signed value. Negative values indicate power flows out of the node (e.g. discharging a battery).",
683
+ xref: { document: "cluster", section: "9.2.7.10.1" }
675
684
  }),
676
685
  Field({
677
686
  name: "MaxPower",
678
687
  id: 1,
679
688
  type: "power-mW",
680
689
  conformance: "M",
690
+ constraint: "min minPower",
681
691
  default: 0,
682
- details: "This field shall indicate the maximum power that the ESA can have its power adjusted to.\nNote that this is a signed value. Negative values indicate power flows away from loads (e.g. charging a battery inverter).\nMinPower shall be less than MaxPower.\nFor example, if the charging current of an EVSE can be adjusted within the range of 6A to 32A on a 230V supply, then the power adjustment range is between 1380W and 7360W. Here the MinPower would be 1380W, and MaxPower would be 7360W.\nFor example, if a battery storage inverter can discharge between 0 to 3000W towards a load, then its MinPower would be 0W and its MaxPower would be 3000W.\nIn another example, if a battery storage inverter can charge its internal battery, between 0W and 2000W. Here power is flowing away from the home loads, so the power values need to be negative. As such the MinPower becomes -2000W and MaxPower becomes 0W.",
683
- xref: { document: "cluster", section: "9.2.7.9.2" }
692
+ details: "This field shall indicate the maximum power that the ESA can have its power adjusted to.\nNote that this is a signed value. Negative values indicate power flows out of the node (e.g. discharging a battery).\nFor example, if the charging current of an EVSE can be adjusted within the range of 6A to 32A on a 230V supply, then the power adjustment range is between 1380W and 7360W. Here the MinPower would be 1380W, and MaxPower would be 7360W.\nFor example, if a battery storage inverter can discharge between 0 to 3000W towards a load, then power is flowing out of the node and is therefore negative. Its MinPower would be -3000W and its MaxPower would be 0W.\nIn another example, if a battery storage inverter can charge its internal battery, between 0W and 2000W. Here power is flowing into the node when charging. As such the MinPower becomes 0W and MaxPower becomes 2000W.",
693
+ xref: { document: "cluster", section: "9.2.7.10.2" }
684
694
  }),
685
695
  Field({
686
696
  name: "MinDuration",
@@ -688,33 +698,52 @@ const DeviceEnergyManagement = Cluster(
688
698
  type: "elapsed-s",
689
699
  conformance: "M",
690
700
  default: 0,
691
- details: "This field shall indicate the minimum duration, in seconds, that a controller may invoke an ESA power adjustment. Manufacturers may use this to as an anti-cycling capability to avoid controllers from rapidly making power adjustments.\nNote that MinDuration shall be less than MaxDuration.",
692
- xref: { document: "cluster", section: "9.2.7.9.3" }
701
+ details: "This field shall indicate the minimum duration, in seconds, that a controller may invoke an ESA power adjustment. Manufacturers may use this to as an anti-cycling capability to avoid controllers from rapidly making power adjustments.",
702
+ xref: { document: "cluster", section: "9.2.7.10.3" }
693
703
  }),
694
704
  Field({
695
705
  name: "MaxDuration",
696
706
  id: 3,
697
707
  type: "elapsed-s",
698
708
  conformance: "M",
699
- details: "This field shall indicate the maximum duration, in seconds, that a controller may invoke an ESA power adjustment. Manufacturers may use this to protect the user experience, to avoid over heating of the ESA, ensuring that there is sufficient headroom to use or store energy in the ESA or for any other reason.\nNote that MinDuration shall be less than MaxDuration.",
700
- xref: { document: "cluster", section: "9.2.7.9.4" }
709
+ constraint: "min minDuration",
710
+ details: "This field shall indicate the maximum duration, in seconds, that a controller may invoke an ESA power adjustment. Manufacturers may use this to protect the user experience, to avoid over heating of the ESA, ensuring that there is sufficient headroom to use or store energy in the ESA or for any other reason.",
711
+ xref: { document: "cluster", section: "9.2.7.10.4" }
701
712
  })
702
713
  ),
714
+ Datatype(
715
+ { name: "PowerAdjustCapabilityStruct", type: "struct", xref: { document: "cluster", section: "9.2.7.11" } },
716
+ Field(
717
+ {
718
+ name: "PowerAdjustCapability",
719
+ id: 0,
720
+ type: "list",
721
+ conformance: "M",
722
+ constraint: "max 8",
723
+ default: null,
724
+ quality: "X",
725
+ details: "This field shall indicate how the ESA can be adjusted at the current time.\nFor example, a battery storage inverter may need to regulate its internal temperature, or the charging rate of the battery may be limited due to cold temperatures, or a change in the state of charge of the battery may mean that the maximum charging or discharging rate is limited.\nAn empty list shall indicate that no power adjustment is currently possible.\nMultiple entries in the list allow indicating that permutations of scenarios may be possible.\nFor example, a 10kWh battery could be at 80% state of charge. If charging at 2kW, then it would be full in 1 hour. However, it could be discharged at 2kW for 4 hours.\nIn this example the list of PowerAdjustStructs allows multiple scenarios to be offered as follows:",
726
+ xref: { document: "cluster", section: "9.2.7.12" }
727
+ },
728
+ Field({ name: "entry", type: "PowerAdjustStruct" })
729
+ ),
730
+ Field({ name: "Cause", id: 1, type: "PowerAdjustReasonEnum", conformance: "M", default: 0 })
731
+ ),
703
732
  Datatype(
704
733
  {
705
734
  name: "ForecastStruct",
706
735
  type: "struct",
707
736
  details: "This indicates a list of 'slots' describing the overall timing of the ESA\u2019s planned energy and power use, with different power and energy demands per slot. For example, slots might be used to describe the distinct stages of a washing machine cycle.\nWhere an ESA does not know the actual power and energy use of the system, it may support the SFR\nfeature and instead report its internal state.",
708
- xref: { document: "cluster", section: "9.2.7.10" }
737
+ xref: { document: "cluster", section: "9.2.7.13" }
709
738
  },
710
739
  Field({
711
740
  name: "ForecastId",
712
741
  id: 0,
713
- type: "uint16",
742
+ type: "uint32",
714
743
  conformance: "M",
715
744
  default: 0,
716
- details: "This field shall indicate the sequence number for the current forecast. If the ESA updates a forecast, it shall monotonically increase this value.\nThe ESA does not need to persist this value across reboots, since the EMS SHOULD be able to detect that any previous subscriptions are lost if a device reboots. The loss of a subscription and subsequent re-subscription allows the EMS to learn about any new forecasts.\nThe value of ForecastId is allowed to wrap.",
717
- xref: { document: "cluster", section: "9.2.7.10.1" }
745
+ details: "This field shall indicate the sequence number for the current forecast. If the ESA updates a forecast, it shall monotonically increase this value.\nThe ESA does not need to persist this value across reboots, since the EMS SHOULD be able to detect that any previous subscriptions are lost if a device reboots. The loss of a subscription and subsequent re-subscription allows the EMS to learn about any new forecasts.\nThe value of ForecastID is allowed to wrap.",
746
+ xref: { document: "cluster", section: "9.2.7.13.1" }
718
747
  }),
719
748
  Field({
720
749
  name: "ActiveSlotNumber",
@@ -724,7 +753,7 @@ const DeviceEnergyManagement = Cluster(
724
753
  default: 0,
725
754
  quality: "X",
726
755
  details: "This field shall indicate which element of the Slots list is currently active in the Forecast sequence. A null value indicates that the sequence has not yet started.",
727
- xref: { document: "cluster", section: "9.2.7.10.2" }
756
+ xref: { document: "cluster", section: "9.2.7.13.2" }
728
757
  }),
729
758
  Field({
730
759
  name: "StartTime",
@@ -732,7 +761,7 @@ const DeviceEnergyManagement = Cluster(
732
761
  type: "epoch-s",
733
762
  conformance: "M",
734
763
  details: "This field shall indicate the planned start time, in UTC, for the entire Forecast.",
735
- xref: { document: "cluster", section: "9.2.7.10.3" }
764
+ xref: { document: "cluster", section: "9.2.7.13.3" }
736
765
  }),
737
766
  Field({
738
767
  name: "EndTime",
@@ -740,7 +769,7 @@ const DeviceEnergyManagement = Cluster(
740
769
  type: "epoch-s",
741
770
  conformance: "M",
742
771
  details: "This field shall indicate the planned end time, in UTC, for the entire Forecast.",
743
- xref: { document: "cluster", section: "9.2.7.10.4" }
772
+ xref: { document: "cluster", section: "9.2.7.13.4" }
744
773
  }),
745
774
  Field({
746
775
  name: "EarliestStartTime",
@@ -748,8 +777,8 @@ const DeviceEnergyManagement = Cluster(
748
777
  type: "epoch-s",
749
778
  conformance: "STA",
750
779
  quality: "X",
751
- details: "This field shall indicate the earliest start time, in UTC, that the entire Forecast can be shifted to.\nA null value indicates that it can be started immediately.",
752
- xref: { document: "cluster", section: "9.2.7.10.5" }
780
+ details: "This field shall indicate the earliest start time, in UTC, that the entire Forecast can be shifted to. A null value indicates that it can be started immediately.",
781
+ xref: { document: "cluster", section: "9.2.7.13.5" }
753
782
  }),
754
783
  Field({
755
784
  name: "LatestEndTime",
@@ -757,15 +786,15 @@ const DeviceEnergyManagement = Cluster(
757
786
  type: "epoch-s",
758
787
  conformance: "STA",
759
788
  details: "This field shall indicate the latest end time, in UTC, for the entire Forecast.\ne.g. for an EVSE charging session, this may indicate the departure time for the vehicle, by which time the charging session must end.",
760
- xref: { document: "cluster", section: "9.2.7.10.6" }
789
+ xref: { document: "cluster", section: "9.2.7.13.6" }
761
790
  }),
762
791
  Field({
763
- name: "IsPauseable",
792
+ name: "IsPausable",
764
793
  id: 6,
765
794
  type: "bool",
766
795
  conformance: "M",
767
796
  details: "This field shall indicate that some part of the Forecast can be paused. It aims to allow a client to read this flag and if it is false, then none of the slots contain SlotIsPausable set to true. This can save a client from having to check each slot in the list.",
768
- xref: { document: "cluster", section: "9.2.7.10.7" }
797
+ xref: { document: "cluster", section: "9.2.7.13.7" }
769
798
  }),
770
799
  Field(
771
800
  {
@@ -775,7 +804,7 @@ const DeviceEnergyManagement = Cluster(
775
804
  conformance: "M",
776
805
  constraint: "max 10",
777
806
  details: "This field shall contain a list of SlotStructs.\nIt shall contain at least 1 entry, and a maximum of 10.",
778
- xref: { document: "cluster", section: "9.2.7.10.8" }
807
+ xref: { document: "cluster", section: "9.2.7.13.8" }
779
808
  },
780
809
  Field({ name: "entry", type: "SlotStruct" })
781
810
  ),
@@ -785,7 +814,7 @@ const DeviceEnergyManagement = Cluster(
785
814
  type: "ForecastUpdateReasonEnum",
786
815
  conformance: "M",
787
816
  details: "This field shall contain the reason the current Forecast was generated.",
788
- xref: { document: "cluster", section: "9.2.7.10.9" }
817
+ xref: { document: "cluster", section: "9.2.7.13.9" }
789
818
  })
790
819
  ),
791
820
  Datatype(
@@ -793,7 +822,7 @@ const DeviceEnergyManagement = Cluster(
793
822
  name: "SlotStruct",
794
823
  type: "struct",
795
824
  details: "This indicates a specific stage of an ESA\u2019s operation.",
796
- xref: { document: "cluster", section: "9.2.7.11" }
825
+ xref: { document: "cluster", section: "9.2.7.14" }
797
826
  },
798
827
  Field({
799
828
  name: "MinDuration",
@@ -801,7 +830,7 @@ const DeviceEnergyManagement = Cluster(
801
830
  type: "elapsed-s",
802
831
  conformance: "M",
803
832
  details: "This field shall indicate the minimum time (in seconds) that the appliance expects to be in this slot for.",
804
- xref: { document: "cluster", section: "9.2.7.11.1" }
833
+ xref: { document: "cluster", section: "9.2.7.14.1" }
805
834
  }),
806
835
  Field({
807
836
  name: "MaxDuration",
@@ -809,7 +838,7 @@ const DeviceEnergyManagement = Cluster(
809
838
  type: "elapsed-s",
810
839
  conformance: "M",
811
840
  details: "This field shall indicate the maximum time (in seconds) that the appliance expects to be in this slot for.",
812
- xref: { document: "cluster", section: "9.2.7.11.2" }
841
+ xref: { document: "cluster", section: "9.2.7.14.2" }
813
842
  }),
814
843
  Field({
815
844
  name: "DefaultDuration",
@@ -817,7 +846,7 @@ const DeviceEnergyManagement = Cluster(
817
846
  type: "elapsed-s",
818
847
  conformance: "M",
819
848
  details: "This field shall indicate the expected time (in seconds) that the appliance expects to be in this slot for.",
820
- xref: { document: "cluster", section: "9.2.7.11.3" }
849
+ xref: { document: "cluster", section: "9.2.7.14.3" }
821
850
  }),
822
851
  Field({
823
852
  name: "ElapsedSlotTime",
@@ -825,24 +854,31 @@ const DeviceEnergyManagement = Cluster(
825
854
  type: "elapsed-s",
826
855
  conformance: "M",
827
856
  details: "This field shall indicate the time (in seconds) that has already elapsed whilst in this slot. If the slot has not yet been started, then it shall be 0. Once the slot has been completed, then this reflects how much time was spent in this slot.\nWhen subscribed to, a change in this field value shall NOT cause the Forecast attribute to be updated since this value may change every 1 second.\nWhen the Forecast attribute is read, then this value shall be the most recent value.",
828
- xref: { document: "cluster", section: "9.2.7.11.4" }
857
+ xref: { document: "cluster", section: "9.2.7.14.4" }
829
858
  }),
830
859
  Field({
831
860
  name: "RemainingSlotTime",
832
861
  id: 4,
833
862
  type: "elapsed-s",
834
863
  conformance: "M",
835
- details: "This field shall indicate the time (in seconds) that is estimated to be remaining.\nNote that it may not align to the DefaultDuration - ElapsedSlotTime since an appliance may have revised its planned operation based on conditions.\nWhen subscribed to, a change in this field value shall NOT cause the Forecast attribute to be updated, since this value may change every 1 second.\nNote that if the ESA is currently paused, then this value shall not change.\nWhen the Forecast attribute is read, then this value shall be the most recent value.",
836
- xref: { document: "cluster", section: "9.2.7.11.5" }
864
+ details: "This field shall indicate the time (in seconds) that is estimated to be remaining.\nNote that it may not align to the DefaultDuration - ElapsedSlotTime since an appliance may have revised its planned operation based on conditions.\nWhen subscribed to, a change in this field value shall NOT cause the Forecast attribute to be updated, since this value may change every 1 second.\nNote that if the ESA is currently paused, then this value shall NOT change.\nWhen the Forecast attribute is read, then this value shall be the most recent value.",
865
+ xref: { document: "cluster", section: "9.2.7.14.5" }
866
+ }),
867
+ Field({
868
+ name: "SlotIsPausable",
869
+ id: 5,
870
+ type: "bool",
871
+ conformance: "PAU",
872
+ details: "This field shall indicate whether this slot can be paused.",
873
+ xref: { document: "cluster", section: "9.2.7.14.6" }
837
874
  }),
838
- Field({ name: "SlotIsPauseable", id: 5, type: "bool", conformance: "PAU" }),
839
875
  Field({
840
876
  name: "MinPauseDuration",
841
877
  id: 6,
842
878
  type: "elapsed-s",
843
879
  conformance: "PAU",
844
880
  details: "This field shall indicate the shortest period that the slot can be paused for. This can be set to avoid controllers trying to pause ESAs for short periods and then resuming operation in a cyclic fashion which may damage or cause excess energy to be consumed with restarting of an operation.",
845
- xref: { document: "cluster", section: "9.2.7.11.7" }
881
+ xref: { document: "cluster", section: "9.2.7.14.7" }
846
882
  }),
847
883
  Field({
848
884
  name: "MaxPauseDuration",
@@ -850,15 +886,15 @@ const DeviceEnergyManagement = Cluster(
850
886
  type: "elapsed-s",
851
887
  conformance: "PAU",
852
888
  details: "This field shall indicate the longest period that the slot can be paused for.",
853
- xref: { document: "cluster", section: "9.2.7.11.8" }
889
+ xref: { document: "cluster", section: "9.2.7.14.8" }
854
890
  }),
855
891
  Field({
856
892
  name: "ManufacturerEsaState",
857
893
  id: 8,
858
894
  type: "uint16",
859
895
  conformance: "SFR",
860
- details: "This field shall indicate a manufacturer defined value indicating the state of the ESA.\nThis may be used by an observing EMS which also has access to the metering data to ascertain the typical power drawn when the ESA is in a manufacturer defined state.\nSome appliances, such as smart thermostats, may not know how much power is being drawn by the HVAC system, but do know what they have asked the HVAC system to do.\nManufacturers can use this value to indicate a variety of states in an unspecified way. For example, they may choose to use values between 0-100 as a percentage of compressor modulation, or could use these values as Enum states meaning heating with fan, heating without fan etc.\nNOTE An ESA shall always use the same value to represent the same operating state.\nBy providing this information a smart EMS may be able to learn the observed power draw when the ESA is put into a specific state. It can potentially then use the information in the PowerForecastReporting data to predict the power draw from the appliance and potentially ask it to modify its timing via one of the adjustment request commands, or adjust other ESAs power to compensate.",
861
- xref: { document: "cluster", section: "9.2.7.11.9" }
896
+ details: "This field shall indicate a manufacturer defined value indicating the state of the ESA.\nThis may be used by an observing EMS which also has access to the metering data to ascertain the typical power drawn when the ESA is in a manufacturer defined state.\nSome appliances, such as smart thermostats, may not know how much power is being drawn by the HVAC system, but do know what they have asked the HVAC system to do.\nManufacturers can use this value to indicate a variety of states in an unspecified way. For example, they may choose to use values between 0-100 as a percentage of compressor modulation, or could use these values as Enum states meaning heating with fan, heating without fan etc.\nNOTE An ESA shall always use the same value to represent the same operating state.\nBy providing this information a smart EMS may be able to learn the observed power draw when the ESA is put into a specific state. It can potentially then use the ManufacturerESAState field in the Forecast attribute along with observed power drawn to predict the power draw from the appliance and potentially ask it to modify its timing via one of the adjustment request commands, or adjust other ESAs power to compensate.",
897
+ xref: { document: "cluster", section: "9.2.7.14.9" }
862
898
  }),
863
899
  Field({
864
900
  name: "NominalPower",
@@ -866,7 +902,7 @@ const DeviceEnergyManagement = Cluster(
866
902
  type: "power-mW",
867
903
  conformance: "PFR",
868
904
  details: "This field shall indicate the expected power that the appliance will use during this slot. It may be considered the average value over the slot, and some variation from this would be expected (for example, as it is ramping up).",
869
- xref: { document: "cluster", section: "9.2.7.11.10" }
905
+ xref: { document: "cluster", section: "9.2.7.14.10" }
870
906
  }),
871
907
  Field({
872
908
  name: "MinPower",
@@ -874,7 +910,7 @@ const DeviceEnergyManagement = Cluster(
874
910
  type: "power-mW",
875
911
  conformance: "PFR",
876
912
  details: "This field shall indicate the lowest power that the appliance expects to use during this slot. (e.g. during a ramp up it may be 0W).\nSome appliances (e.g. battery inverters which can charge and discharge) may have a negative power.",
877
- xref: { document: "cluster", section: "9.2.7.11.11" }
913
+ xref: { document: "cluster", section: "9.2.7.14.11" }
878
914
  }),
879
915
  Field({
880
916
  name: "MaxPower",
@@ -882,7 +918,7 @@ const DeviceEnergyManagement = Cluster(
882
918
  type: "power-mW",
883
919
  conformance: "PFR",
884
920
  details: "This field shall indicate the maximum power that the appliance expects to use during this slot. (e.g. during a ramp up it may be 0W). This field ignores the effects of short-lived inrush currents.\nSome appliances (e.g. battery inverters which can charge and discharge) may have a negative power.",
885
- xref: { document: "cluster", section: "9.2.7.11.12" }
921
+ xref: { document: "cluster", section: "9.2.7.14.12" }
886
922
  }),
887
923
  Field({
888
924
  name: "NominalEnergy",
@@ -890,7 +926,7 @@ const DeviceEnergyManagement = Cluster(
890
926
  type: "energy-mWh",
891
927
  conformance: "PFR",
892
928
  details: "This field shall indicate the expected energy that the appliance expects to use or produce during this slot.\nSome appliances (e.g. battery inverters which can charge and discharge) may have a negative energy.",
893
- xref: { document: "cluster", section: "9.2.7.11.13" }
929
+ xref: { document: "cluster", section: "9.2.7.14.13" }
894
930
  }),
895
931
  Field(
896
932
  {
@@ -900,7 +936,7 @@ const DeviceEnergyManagement = Cluster(
900
936
  conformance: "O",
901
937
  constraint: "max 5",
902
938
  details: "This field shall indicate the current estimated cost for operating.\nFor example, if the device has access to an Energy pricing server it may be able to use the tariff to estimate the cost of energy for this slot in the power forecast.\nWhen an Energy Management System requests a change in the schedule, then the device may suggest a change in the cost as a result of shifting its energy. This can allow a demand side response service to be informed of the relative cost to use energy at a different time.\nThe Costs field is a list of CostStruct structures which allows multiple CostTypeEnum and Values to be shared by the energy appliance. These could be based on GHG emissions, comfort value for the consumer etc.\nFor example, comfort could be expressed in abstract units or in currency. A water heater that is heated earlier in the day is likely to lose some of its heat before it is needed, which could require a top-up heating event to occur later in the day (which may incur additional cost).\nIf the ESA cannot calculate its cost for any reason (such as losing its connection to a Price server) it may omit this field. This is treated as extra meta data that an EMS may use to optimize a system.",
903
- xref: { document: "cluster", section: "9.2.7.11.14" }
939
+ xref: { document: "cluster", section: "9.2.7.14.14" }
904
940
  },
905
941
  Field({ name: "entry", type: "CostStruct" })
906
942
  ),
@@ -910,7 +946,7 @@ const DeviceEnergyManagement = Cluster(
910
946
  type: "power-mW",
911
947
  conformance: "FA & PFR",
912
948
  details: "This field shall indicate the minimum power that the appliance can be requested to use.\nFor example, some EVSEs cannot be switched on to charge below 6A which may equate to ~1.3kW in EU markets. If the slot indicates a NominalPower of 0W (indicating it is expecting to be off), this allows an ESA to indicate it could be switched on to charge, but this would be the minimum power limit it can be set to.",
913
- xref: { document: "cluster", section: "9.2.7.11.15" }
949
+ xref: { document: "cluster", section: "9.2.7.14.15" }
914
950
  }),
915
951
  Field({
916
952
  name: "MaxPowerAdjustment",
@@ -918,27 +954,27 @@ const DeviceEnergyManagement = Cluster(
918
954
  type: "power-mW",
919
955
  conformance: "FA & PFR",
920
956
  details: "This field shall indicate the maximum power that the appliance can be requested to use.\nFor example, an EVSE may be limited by its electrical supply to 32A which would be ~7.6kW in EU markets. If the slot indicates a NominalPower of 0W (indicating it is expecting to be off), this allows an ESA to indicate it could be switched on to charge, but this would be the maximum power limit it can be set to.",
921
- xref: { document: "cluster", section: "9.2.7.11.16" }
957
+ xref: { document: "cluster", section: "9.2.7.14.16" }
922
958
  }),
923
959
  Field({
924
960
  name: "MinDurationAdjustment",
925
961
  id: 16,
926
962
  type: "elapsed-s",
927
- conformance: "FA & (PFR | SFR)",
963
+ conformance: "FA",
928
964
  details: "This field shall indicate the minimum time, in seconds, that the slot can be requested to shortened to.\nFor example, if the slot indicates a NominalPower of 0W (indicating it is expecting to be off), this would allow an ESA to specify the minimum time it could be switched on for. This is to help protect the appliance from being damaged by short cycling times.\nFor example, a heat pump compressor may have a minimum cycle time of order a few minutes.",
929
- xref: { document: "cluster", section: "9.2.7.11.17" }
965
+ xref: { document: "cluster", section: "9.2.7.14.17" }
930
966
  }),
931
967
  Field({
932
968
  name: "MaxDurationAdjustment",
933
969
  id: 17,
934
970
  type: "elapsed-s",
935
- conformance: "FA & (PFR | SFR)",
971
+ conformance: "FA",
936
972
  details: "This field shall indicate the maximum time, in seconds, that the slot can be requested to extended to.\nFor example, if the slot indicates a NominalPower of 0W (indicating it is expecting to be off), this allows an ESA to specify the maximum time it could be switched on for. This may allow a battery or water heater to indicate the maximum duration that it can charge for before becoming full. In the case of a battery inverter which can be discharged, it may equally indicate the maximum time the battery could be discharged for (at the MaxPowerAdjustment power level).",
937
- xref: { document: "cluster", section: "9.2.7.11.18" }
973
+ xref: { document: "cluster", section: "9.2.7.14.18" }
938
974
  })
939
975
  ),
940
976
  Datatype(
941
- { name: "SlotAdjustmentStruct", type: "struct", xref: { document: "cluster", section: "9.2.7.12" } },
977
+ { name: "SlotAdjustmentStruct", type: "struct", xref: { document: "cluster", section: "9.2.7.15" } },
942
978
  Field({
943
979
  name: "SlotIndex",
944
980
  id: 0,
@@ -946,16 +982,16 @@ const DeviceEnergyManagement = Cluster(
946
982
  conformance: "M",
947
983
  constraint: "desc",
948
984
  details: "This field shall indicate the index into the Slots list within the Forecast that is to be modified. It shall be less than the actual length of the Slots list (implicitly it must be in the range 0 to 9 based on the maximum length of the Slots list constraint).",
949
- xref: { document: "cluster", section: "9.2.7.12.1" }
985
+ xref: { document: "cluster", section: "9.2.7.15.1" }
950
986
  }),
951
987
  Field({
952
988
  name: "NominalPower",
953
989
  id: 1,
954
990
  type: "power-mW",
955
- conformance: "M",
991
+ conformance: "PFR",
956
992
  constraint: "desc",
957
- details: "This field shall indicate the new requested power that the ESA shall operate at. It MUST be between the MinPowerAdjustment and MaxPowerAdjustment for the slot as advertised by the ESA.",
958
- xref: { document: "cluster", section: "9.2.7.12.2" }
993
+ details: "This field shall indicate the new requested power that the ESA shall operate at. It MUST be between the AbsMinPower and AbsMaxPower attributes as advertised by the ESA if it supports PFR.\nThis is a signed value and can be used to indicate charging or discharging. If the ESA does NOT support PFR this value shall be ignored by the ESA.",
994
+ xref: { document: "cluster", section: "9.2.7.15.2" }
959
995
  }),
960
996
  Field({
961
997
  name: "Duration",
@@ -964,7 +1000,7 @@ const DeviceEnergyManagement = Cluster(
964
1000
  conformance: "M",
965
1001
  constraint: "desc",
966
1002
  details: "This field shall indicate the new requested duration, in seconds, that the ESA shall extend or shorten the slot duration to. It MUST be between the MinDurationAdjustment and MaxDurationAdjustment for the slot as advertised by the ESA.",
967
- xref: { document: "cluster", section: "9.2.7.12.3" }
1003
+ xref: { document: "cluster", section: "9.2.7.15.3" }
968
1004
  })
969
1005
  ),
970
1006
  Datatype(
@@ -972,7 +1008,7 @@ const DeviceEnergyManagement = Cluster(
972
1008
  name: "ConstraintsStruct",
973
1009
  type: "struct",
974
1010
  details: "The ConstraintsStruct allows a client to inform an ESA about a constraint period (such as a grid event, or perhaps excess solar PV). The format allows the client to suggest that the ESA can either turn up its energy consumption, or turn down its energy consumption during this period.",
975
- xref: { document: "cluster", section: "9.2.7.13" }
1011
+ xref: { document: "cluster", section: "9.2.7.16" }
976
1012
  },
977
1013
  Field({
978
1014
  name: "StartTime",
@@ -981,16 +1017,16 @@ const DeviceEnergyManagement = Cluster(
981
1017
  conformance: "M",
982
1018
  constraint: "desc",
983
1019
  details: "This field shall indicate the start time of the constraint period that the client wishes the ESA to compute a new Forecast.\nThis value is in UTC and MUST be in the future.",
984
- xref: { document: "cluster", section: "9.2.7.13.1" }
1020
+ xref: { document: "cluster", section: "9.2.7.16.1" }
985
1021
  }),
986
1022
  Field({
987
1023
  name: "Duration",
988
1024
  id: 1,
989
1025
  type: "elapsed-s",
990
1026
  conformance: "M",
991
- constraint: "0 to 86400",
1027
+ constraint: "max 86400",
992
1028
  details: "This field shall indicate the duration of the constraint in seconds.",
993
- xref: { document: "cluster", section: "9.2.7.13.2" }
1029
+ xref: { document: "cluster", section: "9.2.7.16.2" }
994
1030
  }),
995
1031
  Field({
996
1032
  name: "NominalPower",
@@ -998,16 +1034,16 @@ const DeviceEnergyManagement = Cluster(
998
1034
  type: "power-mW",
999
1035
  conformance: "PFR",
1000
1036
  constraint: "desc",
1001
- details: "This field shall indicate the nominal power that client wishes the ESA to operate at during the constrained period. It MUST be between the AbsMinPower and AbsMaxPower attributes as advertised by the ESA if it supports PFR.\nThis is a signed value and can be used to indicate charging or discharging. If the ESA does NOT support PFR this value shall be ignored by the ESA.",
1002
- xref: { document: "cluster", section: "9.2.7.13.3" }
1037
+ details: "This field shall indicate the nominal power that client wishes the ESA to operate at during the constrained period. It MUST be between the AbsMinPower and AbsMaxPower attributes as advertised by the ESA if it supports PFR.\nThis is a signed value and can be used to indicate charging or discharging.",
1038
+ xref: { document: "cluster", section: "9.2.7.16.3" }
1003
1039
  }),
1004
1040
  Field({
1005
1041
  name: "MaximumEnergy",
1006
1042
  id: 3,
1007
1043
  type: "energy-mWh",
1008
1044
  conformance: "PFR",
1009
- details: "This field shall indicate the maximum energy that can be transferred to or from the ESA during the constraint period.\nThis is a signed value and can be used to indicate charging or discharging. If the ESA does NOT support PFR this value may be ignored by the ESA.",
1010
- xref: { document: "cluster", section: "9.2.7.13.4" }
1045
+ details: "This field shall indicate the maximum energy that can be transferred to or from the ESA during the constraint period.\nThis is a signed value and can be used to indicate charging or discharging.",
1046
+ xref: { document: "cluster", section: "9.2.7.16.4" }
1011
1047
  }),
1012
1048
  Field({
1013
1049
  name: "LoadControl",
@@ -1015,7 +1051,7 @@ const DeviceEnergyManagement = Cluster(
1015
1051
  type: "int8",
1016
1052
  conformance: "SFR",
1017
1053
  details: "This field shall indicate the turn up or turn down nature that the grid wants as the outcome by the ESA during the constraint period.\nThis is expressed as a signed value between -100 to +100. A value of 0 would indicate no bias to using more or less energy. A negative value indicates a request to use less energy. A positive value indicates a request to use more energy.\nNote that the mapping between values and operation is manufacturer specific.",
1018
- xref: { document: "cluster", section: "9.2.7.13.5" }
1054
+ xref: { document: "cluster", section: "9.2.7.16.5" }
1019
1055
  })
1020
1056
  )
1021
1057
  );