diff --git a/data_model/README.md b/data_model/README.md
new file mode 100644
index 00000000000000..ada763cd7f2804
--- /dev/null
+++ b/data_model/README.md
@@ -0,0 +1,27 @@
+## Contents
+
+This folder contains a machine-readable representation of matter clusters.
+
+The XML files inside `clusters` are generated by a `scraper` script out of the
+original specification `AsciiDoc` files.
+
+## How to update
+
+The matter specification is not currently public. As such, as script exists to
+update the spec XML files, however this is not done automatically.
+
+You will require access to the following tools locally:
+
+- `scraper`. A binary copy generally available
+ [here](https://github.com/csa-data-model/projects/tree/main/DM-Editor/bin/1.2.0/scrape)
+- Specification repository checkout from
+ https://github.com/CHIP-Specifications/connectedhomeip-spec
+
+Example usage:
+
+```sh
+./scripts/spec_xml/generate_spec_xml.py \
+ --scraper ~/Downloads/scrape-adoc-linux \
+ --spec-root ~/work/connectedhomeip-spec \
+ --output-dir data_model
+```
diff --git a/data_model/clusters/AccountLogin.xml b/data_model/clusters/AccountLogin.xml
index e249e0319e4487..4add6f4189d279 100644
--- a/data_model/clusters/AccountLogin.xml
+++ b/data_model/clusters/AccountLogin.xml
@@ -62,7 +62,7 @@ Davis, CA 95616, USA
-
+
@@ -70,7 +70,7 @@ Davis, CA 95616, USA
-
+
@@ -79,7 +79,7 @@ Davis, CA 95616, USA
-
+
@@ -91,7 +91,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/clusters/BasicInformationCluster.xml b/data_model/clusters/BasicInformationCluster.xml
index 6dbeab0f1a60cb..ae4e6f6661a820 100644
--- a/data_model/clusters/BasicInformationCluster.xml
+++ b/data_model/clusters/BasicInformationCluster.xml
@@ -55,10 +55,11 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
@@ -287,6 +288,18 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/clusters/BooleanSensorConfiguration.xml b/data_model/clusters/BooleanSensorConfiguration.xml
new file mode 100644
index 00000000000000..7321a70113087f
--- /dev/null
+++ b/data_model/clusters/BooleanSensorConfiguration.xml
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/ContentAppObserver.xml b/data_model/clusters/ContentAppObserver.xml
new file mode 100644
index 00000000000000..05d19307fc59ac
--- /dev/null
+++ b/data_model/clusters/ContentAppObserver.xml
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/ContentControl.xml b/data_model/clusters/ContentControl.xml
new file mode 100644
index 00000000000000..3642777b46a76d
--- /dev/null
+++ b/data_model/clusters/ContentControl.xml
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/DemandResponseLoadControl.xml b/data_model/clusters/DemandResponseLoadControl.xml
new file mode 100644
index 00000000000000..caa967bb9edb1e
--- /dev/null
+++ b/data_model/clusters/DemandResponseLoadControl.xml
@@ -0,0 +1,479 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/DeviceEnergyManagement.xml b/data_model/clusters/DeviceEnergyManagement.xml
new file mode 100644
index 00000000000000..f1c5c37d1ade35
--- /dev/null
+++ b/data_model/clusters/DeviceEnergyManagement.xml
@@ -0,0 +1,507 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/DiagnosticsGeneral.xml b/data_model/clusters/DiagnosticsGeneral.xml
index e03b1c04f13ddf..ea4ce75cd549d9 100644
--- a/data_model/clusters/DiagnosticsGeneral.xml
+++ b/data_model/clusters/DiagnosticsGeneral.xml
@@ -55,9 +55,10 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
@@ -227,7 +228,7 @@ Davis, CA 95616, USA
-
+
@@ -270,6 +271,21 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/clusters/EVSE-Attributes.xml b/data_model/clusters/EVSE-Attributes.xml
new file mode 100644
index 00000000000000..70cada7e3a902e
--- /dev/null
+++ b/data_model/clusters/EVSE-Attributes.xml
@@ -0,0 +1,45 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/EVSE-Classification.xml b/data_model/clusters/EVSE-Classification.xml
new file mode 100644
index 00000000000000..6230a083a794e7
--- /dev/null
+++ b/data_model/clusters/EVSE-Classification.xml
@@ -0,0 +1,45 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/EVSE-ClusterID.xml b/data_model/clusters/EVSE-ClusterID.xml
new file mode 100644
index 00000000000000..071dbf680e7514
--- /dev/null
+++ b/data_model/clusters/EVSE-ClusterID.xml
@@ -0,0 +1,45 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/EVSE-Commands.xml b/data_model/clusters/EVSE-Commands.xml
new file mode 100644
index 00000000000000..f170a002aab7ac
--- /dev/null
+++ b/data_model/clusters/EVSE-Commands.xml
@@ -0,0 +1,45 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/EVSE-DataTypes.xml b/data_model/clusters/EVSE-DataTypes.xml
new file mode 100644
index 00000000000000..ec95fd5c8a4eac
--- /dev/null
+++ b/data_model/clusters/EVSE-DataTypes.xml
@@ -0,0 +1,45 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/EVSE-Definitions.xml b/data_model/clusters/EVSE-Definitions.xml
new file mode 100644
index 00000000000000..5d07abc25605cb
--- /dev/null
+++ b/data_model/clusters/EVSE-Definitions.xml
@@ -0,0 +1,45 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/EVSE-Dependencies.xml b/data_model/clusters/EVSE-Dependencies.xml
new file mode 100644
index 00000000000000..1797d04b915b7b
--- /dev/null
+++ b/data_model/clusters/EVSE-Dependencies.xml
@@ -0,0 +1,45 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/EVSE-Events.xml b/data_model/clusters/EVSE-Events.xml
new file mode 100644
index 00000000000000..75c8a89274da20
--- /dev/null
+++ b/data_model/clusters/EVSE-Events.xml
@@ -0,0 +1,45 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/EVSE-Features.xml b/data_model/clusters/EVSE-Features.xml
new file mode 100644
index 00000000000000..ff1feadf386690
--- /dev/null
+++ b/data_model/clusters/EVSE-Features.xml
@@ -0,0 +1,45 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/EVSE-RevisionHistory.xml b/data_model/clusters/EVSE-RevisionHistory.xml
new file mode 100644
index 00000000000000..def04a641bf6f7
--- /dev/null
+++ b/data_model/clusters/EVSE-RevisionHistory.xml
@@ -0,0 +1,45 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/ElectricalEnergyMeasurement.xml b/data_model/clusters/ElectricalEnergyMeasurement.xml
new file mode 100644
index 00000000000000..0047f948298a95
--- /dev/null
+++ b/data_model/clusters/ElectricalEnergyMeasurement.xml
@@ -0,0 +1,322 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/ElectricalPowerMeasurement.xml b/data_model/clusters/ElectricalPowerMeasurement.xml
new file mode 100644
index 00000000000000..0839bd569c8eb7
--- /dev/null
+++ b/data_model/clusters/ElectricalPowerMeasurement.xml
@@ -0,0 +1,356 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/EnergyCalendar.xml b/data_model/clusters/EnergyCalendar.xml
new file mode 100644
index 00000000000000..058019da1e9f8c
--- /dev/null
+++ b/data_model/clusters/EnergyCalendar.xml
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/EnergyPreference.xml b/data_model/clusters/EnergyPreference.xml
new file mode 100644
index 00000000000000..710ab52291b85a
--- /dev/null
+++ b/data_model/clusters/EnergyPreference.xml
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/EnergyPrice.xml b/data_model/clusters/EnergyPrice.xml
new file mode 100644
index 00000000000000..8be42c25061937
--- /dev/null
+++ b/data_model/clusters/EnergyPrice.xml
@@ -0,0 +1,236 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/Groups.xml b/data_model/clusters/Groups.xml
index b0b8379e840d5b..175c9caf26a435 100644
--- a/data_model/clusters/Groups.xml
+++ b/data_model/clusters/Groups.xml
@@ -89,7 +89,7 @@ Davis, CA 95616, USA
-
+
@@ -105,7 +105,7 @@ Davis, CA 95616, USA
-
+
@@ -113,7 +113,7 @@ Davis, CA 95616, USA
-
+
@@ -125,7 +125,7 @@ Davis, CA 95616, USA
-
+
@@ -137,7 +137,7 @@ Davis, CA 95616, USA
-
+
@@ -151,7 +151,7 @@ Davis, CA 95616, USA
-
+
@@ -161,7 +161,7 @@ Davis, CA 95616, USA
-
+
@@ -173,7 +173,7 @@ Davis, CA 95616, USA
-
+
@@ -185,7 +185,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/clusters/LaundryDryerControls.xml b/data_model/clusters/LaundryDryerControls.xml
new file mode 100644
index 00000000000000..70c985ae3fde74
--- /dev/null
+++ b/data_model/clusters/LaundryDryerControls.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/LaundryWasherControls.xml b/data_model/clusters/LaundryWasherControls.xml
index 0f0c70d9b5825c..1e033da5dd88ab 100644
--- a/data_model/clusters/LaundryWasherControls.xml
+++ b/data_model/clusters/LaundryWasherControls.xml
@@ -70,22 +70,22 @@ Davis, CA 95616, USA
- -
+
-
- -
+
-
- -
+
-
- -
+
-
diff --git a/data_model/clusters/LevelControl.xml b/data_model/clusters/LevelControl.xml
index 0cc15f95168ce3..7716ce228b3fad 100644
--- a/data_model/clusters/LevelControl.xml
+++ b/data_model/clusters/LevelControl.xml
@@ -159,7 +159,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/clusters/Messages.xml b/data_model/clusters/Messages.xml
new file mode 100644
index 00000000000000..71e522a92a959d
--- /dev/null
+++ b/data_model/clusters/Messages.xml
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/MicrowaveOvenControl.xml b/data_model/clusters/MicrowaveOvenControl.xml
new file mode 100644
index 00000000000000..e97821db771a77
--- /dev/null
+++ b/data_model/clusters/MicrowaveOvenControl.xml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/ModeBase.xml b/data_model/clusters/ModeBase.xml
index 7c0e4ae07648b7..258708ba96908b 100644
--- a/data_model/clusters/ModeBase.xml
+++ b/data_model/clusters/ModeBase.xml
@@ -55,12 +55,19 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
+
+
+
+
+
+
@@ -95,6 +102,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -123,7 +136,7 @@ Davis, CA 95616, USA
-
+
@@ -131,7 +144,7 @@ Davis, CA 95616, USA
-
+
@@ -153,5 +166,11 @@ Davis, CA 95616, USA
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/Mode_Dishwasher.xml b/data_model/clusters/Mode_Dishwasher.xml
index 88bb8da4045695..22d0fab7897696 100644
--- a/data_model/clusters/Mode_Dishwasher.xml
+++ b/data_model/clusters/Mode_Dishwasher.xml
@@ -55,9 +55,10 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
diff --git a/data_model/clusters/Mode_EVSE.xml b/data_model/clusters/Mode_EVSE.xml
new file mode 100644
index 00000000000000..d52139252d014d
--- /dev/null
+++ b/data_model/clusters/Mode_EVSE.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/Mode_Laundry.xml b/data_model/clusters/Mode_Laundry.xml
new file mode 100644
index 00000000000000..63108a01aa876b
--- /dev/null
+++ b/data_model/clusters/Mode_Laundry.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/Mode_MicrowaveOven.xml b/data_model/clusters/Mode_MicrowaveOven.xml
new file mode 100644
index 00000000000000..d1ac9458d71af8
--- /dev/null
+++ b/data_model/clusters/Mode_MicrowaveOven.xml
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/Mode_Oven.xml b/data_model/clusters/Mode_Oven.xml
new file mode 100644
index 00000000000000..56a369dd425572
--- /dev/null
+++ b/data_model/clusters/Mode_Oven.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/Mode_RVCClean.xml b/data_model/clusters/Mode_RVCClean.xml
index 94862d27905718..b82c26501f1196 100644
--- a/data_model/clusters/Mode_RVCClean.xml
+++ b/data_model/clusters/Mode_RVCClean.xml
@@ -55,9 +55,10 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
diff --git a/data_model/clusters/Mode_RVCRun.xml b/data_model/clusters/Mode_RVCRun.xml
index 6f83ac88816322..f1b8b58c69e068 100644
--- a/data_model/clusters/Mode_RVCRun.xml
+++ b/data_model/clusters/Mode_RVCRun.xml
@@ -55,9 +55,10 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
diff --git a/data_model/clusters/Mode_Refrigerator.xml b/data_model/clusters/Mode_Refrigerator.xml
index adf4bdebdca97d..cf6a65721e0efd 100644
--- a/data_model/clusters/Mode_Refrigerator.xml
+++ b/data_model/clusters/Mode_Refrigerator.xml
@@ -55,9 +55,10 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
diff --git a/data_model/clusters/Mode_WaterHeater.xml b/data_model/clusters/Mode_WaterHeater.xml
new file mode 100644
index 00000000000000..535eb4d22dd7c7
--- /dev/null
+++ b/data_model/clusters/Mode_WaterHeater.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/NetworkCommissioningCluster.xml b/data_model/clusters/NetworkCommissioningCluster.xml
index 740c23debbd6c2..0e6703b896380a 100644
--- a/data_model/clusters/NetworkCommissioningCluster.xml
+++ b/data_model/clusters/NetworkCommissioningCluster.xml
@@ -57,9 +57,10 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
@@ -135,6 +136,23 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -295,6 +313,28 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/clusters/NetworkIdentityManagement.xml b/data_model/clusters/NetworkIdentityManagement.xml
new file mode 100644
index 00000000000000..9ce28aa194426b
--- /dev/null
+++ b/data_model/clusters/NetworkIdentityManagement.xml
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/OnOff.xml b/data_model/clusters/OnOff.xml
index 6faa08547a8eb8..3c79220ecd67fc 100644
--- a/data_model/clusters/OnOff.xml
+++ b/data_model/clusters/OnOff.xml
@@ -55,21 +55,40 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -158,11 +177,19 @@ Davis, CA 95616, USA
-
+
+
+
+
+
-
+
+
+
+
+
diff --git a/data_model/clusters/OperationalState_Oven.xml b/data_model/clusters/OperationalState_Oven.xml
new file mode 100644
index 00000000000000..785b72498b326d
--- /dev/null
+++ b/data_model/clusters/OperationalState_Oven.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/PowerSourceCluster.xml b/data_model/clusters/PowerSourceCluster.xml
index d34e75942c1a3c..f7b5da82ce20fc 100644
--- a/data_model/clusters/PowerSourceCluster.xml
+++ b/data_model/clusters/PowerSourceCluster.xml
@@ -68,11 +68,25 @@ Davis, CA 95616, USA
-
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -211,6 +225,24 @@ Davis, CA 95616, USA
-
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
-
@@ -223,6 +255,23 @@ Davis, CA 95616, USA
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
-
@@ -236,6 +285,12 @@ Davis, CA 95616, USA
-
+ -
+
+
+ -
+
+
-
@@ -482,6 +537,17 @@ Davis, CA 95616, USA
+
+ -
+
+
+ -
+
+
+ -
+
+
+
-
@@ -552,11 +618,11 @@ Davis, CA 95616, USA
-
+
-
+
@@ -607,12 +673,11 @@ Davis, CA 95616, USA
-
+
-
@@ -662,20 +727,19 @@ Davis, CA 95616, USA
-
+
-
-
+
-
+
@@ -685,21 +749,21 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
@@ -713,7 +777,10 @@ Davis, CA 95616, USA
-
+
+
+
+
@@ -750,7 +817,7 @@ Davis, CA 95616, USA
-
+
@@ -762,7 +829,122 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -806,5 +988,77 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/PumpConfigurationControl.xml b/data_model/clusters/PumpConfigurationControl.xml
index f943afc3c99ae4..095004ff01bf7e 100644
--- a/data_model/clusters/PumpConfigurationControl.xml
+++ b/data_model/clusters/PumpConfigurationControl.xml
@@ -169,206 +169,7 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/data_model/clusters/Scenes.xml b/data_model/clusters/Scenes.xml
index 185f1d5cad37bc..07a15de02bc7a4 100644
--- a/data_model/clusters/Scenes.xml
+++ b/data_model/clusters/Scenes.xml
@@ -57,13 +57,13 @@ Davis, CA 95616, USA
-->
-
+
-
-
+
+
-
+
@@ -79,8 +79,13 @@ Davis, CA 95616, USA
-
-
+
+
+
+
+
+
+
@@ -132,13 +137,36 @@ Davis, CA 95616, USA
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -198,12 +226,7 @@ Davis, CA 95616, USA
-
-
-
-
-
-
+
@@ -221,12 +244,12 @@ Davis, CA 95616, USA
-
-
+
+
@@ -247,8 +270,7 @@ Davis, CA 95616, USA
-
-
+
@@ -296,9 +318,7 @@ Davis, CA 95616, USA
-
-
-
+
@@ -423,8 +443,7 @@ Davis, CA 95616, USA
-
-
+
@@ -460,14 +479,12 @@ Davis, CA 95616, USA
-
-
-
+
-
+
diff --git a/data_model/clusters/Switch.xml b/data_model/clusters/Switch.xml
index e66d2de6d8da83..141b32e782969d 100644
--- a/data_model/clusters/Switch.xml
+++ b/data_model/clusters/Switch.xml
@@ -94,13 +94,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -108,7 +108,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/clusters/Thermostat.xml b/data_model/clusters/Thermostat.xml
index bf221b7e8cd1cd..704d3a21a1df9a 100644
--- a/data_model/clusters/Thermostat.xml
+++ b/data_model/clusters/Thermostat.xml
@@ -85,8 +85,13 @@ Davis, CA 95616, USA
-
-
+
+
+
+
+
+
+
@@ -432,6 +437,14 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
diff --git a/data_model/clusters/ThreadBorderRouterDiagnostics.xml b/data_model/clusters/ThreadBorderRouterDiagnostics.xml
new file mode 100644
index 00000000000000..20215e275d2f00
--- /dev/null
+++ b/data_model/clusters/ThreadBorderRouterDiagnostics.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/Timer.xml b/data_model/clusters/Timer.xml
new file mode 100644
index 00000000000000..f4e37a2b60ceb6
--- /dev/null
+++ b/data_model/clusters/Timer.xml
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/ValveConfigurationControl.xml b/data_model/clusters/ValveConfigurationControl.xml
new file mode 100644
index 00000000000000..74ed2f4df40597
--- /dev/null
+++ b/data_model/clusters/ValveConfigurationControl.xml
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/WaterHeaterManagement.xml b/data_model/clusters/WaterHeaterManagement.xml
new file mode 100644
index 00000000000000..c55c6a1e09bf09
--- /dev/null
+++ b/data_model/clusters/WaterHeaterManagement.xml
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/WiFiPerDeviceCredentials.xml b/data_model/clusters/WiFiPerDeviceCredentials.xml
new file mode 100644
index 00000000000000..807ea27c64053b
--- /dev/null
+++ b/data_model/clusters/WiFiPerDeviceCredentials.xml
@@ -0,0 +1,58 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/bridge-clusters-BridgedDeviceBasicInformation.xml b/data_model/clusters/bridge-clusters-BridgedDeviceBasicInformation.xml
index 126f8c19454e32..038d7a7f4112c5 100644
--- a/data_model/clusters/bridge-clusters-BridgedDeviceBasicInformation.xml
+++ b/data_model/clusters/bridge-clusters-BridgedDeviceBasicInformation.xml
@@ -55,10 +55,11 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
@@ -125,6 +126,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
diff --git a/data_model/clusters/energy_management.xml b/data_model/clusters/energy_management.xml
new file mode 100644
index 00000000000000..792560796cdd4d
--- /dev/null
+++ b/data_model/clusters/energy_management.xml
@@ -0,0 +1,58 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/clusters/network_infrastructure.xml b/data_model/clusters/network_infrastructure.xml
new file mode 100644
index 00000000000000..181ee350003454
--- /dev/null
+++ b/data_model/clusters/network_infrastructure.xml
@@ -0,0 +1,62 @@
+
+
+
\ No newline at end of file
diff --git a/data_model/spec_sha b/data_model/spec_sha
index 7229ef3c31127b..c8cdb81dba2809 100644
--- a/data_model/spec_sha
+++ b/data_model/spec_sha
@@ -1 +1 @@
-472add052fa00d436207faecd5ea9a5759c4b2ce
+6be044cb0a9bb333b70ccf9f70074afeb440b3cb
diff --git a/scripts/spec_xml/generate_spec_xml.py b/scripts/spec_xml/generate_spec_xml.py
index 115dfd8b62fcb3..1b3a767aa1c242 100755
--- a/scripts/spec_xml/generate_spec_xml.py
+++ b/scripts/spec_xml/generate_spec_xml.py
@@ -87,12 +87,11 @@ def scrape_all_clusters(dir: str, exclude_list: list[str] = []) -> None:
scrape_cluster(filename)
# Put the current spec sha into the cluster dir
- sha_file = 'spec_sha'
- os.chdir(spec_root)
- out = subprocess.run(['git', 'rev-parse', 'HEAD'], capture_output=True)
+ sha_file = os.path.abspath(os.path.join(output_dir, 'spec_sha'))
+ out = subprocess.run(['git', 'rev-parse', 'HEAD'], capture_output=True, encoding="utf8", cwd=spec_root)
sha = out.stdout
- with open(f'{output_dir}/{sha_file}', 'w') as output:
- output.write(sha.decode('utf-8'))
+ with open(sha_file, 'wt', encoding='utf8') as output:
+ output.write(sha)
if __name__ == '__main__':