diff --git a/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter b/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter
index d210cebb350c3a..1f912fcd64e643 100644
--- a/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter
+++ b/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter
@@ -1180,10 +1180,10 @@ provisional server cluster FanControl = 514 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter b/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter
index fd0ebb160daf13..736803eaad9c70 100644
--- a/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter
+++ b/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter
@@ -1272,9 +1272,9 @@ server cluster AirQuality = 91 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
index dba512b0bd986c..a27629bc4da66d 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
@@ -4117,10 +4117,10 @@ server cluster IlluminanceMeasurement = 1024 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
index 9253007d08e616..5a4a521d090db2 100644
--- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
+++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
@@ -3033,9 +3033,9 @@ server cluster IlluminanceMeasurement = 1024 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter
index 4b6e552b10cc92..63f5eb56aa9021 100644
--- a/examples/bridge-app/bridge-common/bridge-app.matter
+++ b/examples/bridge-app/bridge-common/bridge-app.matter
@@ -1617,9 +1617,9 @@ server cluster UserLabel = 65 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter b/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter
index 309178d53e154c..7e202205baad3c 100644
--- a/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter
+++ b/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter
@@ -1172,9 +1172,9 @@ provisional server cluster FanControl = 514 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter b/examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter
index 38eda3781d4801..25c89264dc5cc4 100644
--- a/examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter
+++ b/examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter
@@ -1105,10 +1105,10 @@ server cluster AirQuality = 91 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/chef/devices/rootnode_pump_5f904818cc.matter b/examples/chef/devices/rootnode_pump_5f904818cc.matter
index dcccce26d70827..a5bd2bf03297bb 100644
--- a/examples/chef/devices/rootnode_pump_5f904818cc.matter
+++ b/examples/chef/devices/rootnode_pump_5f904818cc.matter
@@ -1010,9 +1010,9 @@ server cluster PumpConfigurationAndControl = 512 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
index 7f88ae608aeabf..8eb9c77b6fc45e 100644
--- a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
+++ b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
@@ -1171,9 +1171,9 @@ server cluster FixedLabel = 64 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
index b34d514d77fd7a..73d5d7df7262a2 100644
--- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
+++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
@@ -1366,10 +1366,10 @@ server cluster ThermostatUserInterfaceConfiguration = 516 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
client cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute optional int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute optional temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter
index bf42f6c10610c6..1040513cc7c557 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -5170,10 +5170,10 @@ server cluster IlluminanceMeasurement = 1024 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
client cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute optional int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute optional temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
@@ -5184,10 +5184,10 @@ client cluster TemperatureMeasurement = 1026 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter
index ffb7febbab9470..a2662b804165b9 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -5129,10 +5129,10 @@ server cluster IlluminanceMeasurement = 1024 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
client cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute optional int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute optional temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
@@ -5143,10 +5143,10 @@ client cluster TemperatureMeasurement = 1026 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/pump-app/pump-common/pump-app.matter b/examples/pump-app/pump-common/pump-app.matter
index b73ddb2d490f40..97ece6ceda452c 100644
--- a/examples/pump-app/pump-common/pump-app.matter
+++ b/examples/pump-app/pump-common/pump-app.matter
@@ -1321,10 +1321,10 @@ server cluster PumpConfigurationAndControl = 512 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/pump-app/silabs/data_model/pump-thread-app.matter b/examples/pump-app/silabs/data_model/pump-thread-app.matter
index 1738d10a837777..8112f63eebb16f 100644
--- a/examples/pump-app/silabs/data_model/pump-thread-app.matter
+++ b/examples/pump-app/silabs/data_model/pump-thread-app.matter
@@ -1321,10 +1321,10 @@ server cluster PumpConfigurationAndControl = 512 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/pump-app/silabs/data_model/pump-wifi-app.matter b/examples/pump-app/silabs/data_model/pump-wifi-app.matter
index 1738d10a837777..8112f63eebb16f 100644
--- a/examples/pump-app/silabs/data_model/pump-wifi-app.matter
+++ b/examples/pump-app/silabs/data_model/pump-wifi-app.matter
@@ -1321,10 +1321,10 @@ server cluster PumpConfigurationAndControl = 512 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter
index 0f95bb9b2ac941..fd542a29b72f78 100644
--- a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter
+++ b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter
@@ -1246,10 +1246,10 @@ client cluster PumpConfigurationAndControl = 512 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
client cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute optional int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute optional temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter b/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter
index d7d7e77f8c931a..187f8d14112801 100644
--- a/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter
+++ b/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter
@@ -1028,9 +1028,9 @@ server cluster UserLabel = 65 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
server cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h
index 4679085f1570dd..16e6c92fe83576 100644
--- a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h
+++ b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h
@@ -1143,12 +1143,15 @@
{ ZAP_SIMPLE_DEFAULT(3), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Temperature Measurement (server) */ \
- { ZAP_SIMPLE_DEFAULT(0x8000), 0x00000000, 2, ZAP_TYPE(INT16S), ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* MeasuredValue */ \
- { ZAP_SIMPLE_DEFAULT(0x8000), 0x00000001, 2, ZAP_TYPE(INT16S), ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* MinMeasuredValue */ \
- { ZAP_SIMPLE_DEFAULT(0x8000), 0x00000002, 2, ZAP_TYPE(INT16S), ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* MaxMeasuredValue */ \
- { ZAP_EMPTY_DEFAULT(), 0x00000003, 2, ZAP_TYPE(INT16U), 0 }, /* Tolerance */ \
- { ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
- { ZAP_SIMPLE_DEFAULT(4), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
+ { ZAP_SIMPLE_DEFAULT(0x8000), 0x00000000, 2, ZAP_TYPE(TEMPERATURE), \
+ ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* MeasuredValue */ \
+ { ZAP_SIMPLE_DEFAULT(0x8000), 0x00000001, 2, ZAP_TYPE(TEMPERATURE), \
+ ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* MinMeasuredValue */ \
+ { ZAP_SIMPLE_DEFAULT(0x8000), 0x00000002, 2, ZAP_TYPE(TEMPERATURE), \
+ ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* MaxMeasuredValue */ \
+ { ZAP_EMPTY_DEFAULT(), 0x00000003, 2, ZAP_TYPE(TEMPERATURE), 0 }, /* Tolerance */ \
+ { ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
+ { ZAP_SIMPLE_DEFAULT(4), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Pressure Measurement (server) */ \
{ ZAP_SIMPLE_DEFAULT(0x0000), 0x00000000, 2, ZAP_TYPE(INT16S), ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* MeasuredValue */ \
diff --git a/src/app/zap-templates/zcl/data-model/chip/temperature-measurement-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/temperature-measurement-cluster.xml
index e24738ead95da0..aee79b86eea3c0 100644
--- a/src/app/zap-templates/zcl/data-model/chip/temperature-measurement-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/temperature-measurement-cluster.xml
@@ -24,9 +24,9 @@ limitations under the License.
TEMPERATURE_MEASUREMENT_CLUSTER
true
true
- MeasuredValue
- MinMeasuredValue
- MaxMeasuredValue
- Tolerance
+ MeasuredValue
+ MinMeasuredValue
+ MaxMeasuredValue
+ Tolerance
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index ab11903fd525d9..e267835ba07ce5 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -5149,10 +5149,10 @@ client cluster IlluminanceMeasurement = 1024 {
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
client cluster TemperatureMeasurement = 1026 {
- readonly attribute nullable int16s measuredValue = 0;
- readonly attribute nullable int16s minMeasuredValue = 1;
- readonly attribute nullable int16s maxMeasuredValue = 2;
- readonly attribute optional int16u tolerance = 3;
+ readonly attribute nullable temperature measuredValue = 0;
+ readonly attribute nullable temperature minMeasuredValue = 1;
+ readonly attribute nullable temperature maxMeasuredValue = 2;
+ readonly attribute optional temperature tolerance = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py
index 3c4d380b275ff4..8394b7c33e79a5 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -27740,7 +27740,7 @@ def descriptor(cls) -> ClusterObjectDescriptor:
ClusterObjectFieldDescriptor(Label="measuredValue", Tag=0x00000000, Type=typing.Union[Nullable, int]),
ClusterObjectFieldDescriptor(Label="minMeasuredValue", Tag=0x00000001, Type=typing.Union[Nullable, int]),
ClusterObjectFieldDescriptor(Label="maxMeasuredValue", Tag=0x00000002, Type=typing.Union[Nullable, int]),
- ClusterObjectFieldDescriptor(Label="tolerance", Tag=0x00000003, Type=typing.Optional[uint]),
+ ClusterObjectFieldDescriptor(Label="tolerance", Tag=0x00000003, Type=typing.Optional[int]),
ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]),
ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]),
ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]),
@@ -27752,7 +27752,7 @@ def descriptor(cls) -> ClusterObjectDescriptor:
measuredValue: 'typing.Union[Nullable, int]' = None
minMeasuredValue: 'typing.Union[Nullable, int]' = None
maxMeasuredValue: 'typing.Union[Nullable, int]' = None
- tolerance: 'typing.Optional[uint]' = None
+ tolerance: 'typing.Optional[int]' = None
generatedCommandList: 'typing.List[uint]' = None
acceptedCommandList: 'typing.List[uint]' = None
eventList: 'typing.List[uint]' = None
@@ -27821,9 +27821,9 @@ def attribute_id(cls) -> int:
@ChipUtility.classproperty
def attribute_type(cls) -> ClusterObjectFieldDescriptor:
- return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+ return ClusterObjectFieldDescriptor(Type=typing.Optional[int])
- value: 'typing.Optional[uint]' = None
+ value: 'typing.Optional[int]' = None
@dataclass
class GeneratedCommandList(ClusterAttributeDescriptor):
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
index 90709b7f13163a..ca52f7aa5bdb9b 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
@@ -10001,7 +10001,7 @@ static id _Nullable DecodeAttributeValueForTemperatureMeasurementCluster(Attribu
return nil;
}
NSNumber * _Nonnull value;
- value = [NSNumber numberWithUnsignedShort:cppValue];
+ value = [NSNumber numberWithShort:cppValue];
return value;
}
default: {
diff --git a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
index de97d22f4d964e..9563ed39d85707 100644
--- a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
+++ b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
@@ -17603,7 +17603,7 @@ EmberAfStatus Set(chip::EndpointId endpoint, int16_t value)
Traits::StorageType storageValue;
Traits::WorkingToStorage(value, storageValue);
uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
- return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_INT16S_ATTRIBUTE_TYPE);
+ return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_TEMPERATURE_ATTRIBUTE_TYPE);
}
EmberAfStatus SetNull(chip::EndpointId endpoint)
@@ -17612,7 +17612,7 @@ EmberAfStatus SetNull(chip::EndpointId endpoint)
Traits::StorageType value;
Traits::SetNull(value);
uint8_t * writable = Traits::ToAttributeStoreRepresentation(value);
- return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_INT16S_ATTRIBUTE_TYPE);
+ return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_TEMPERATURE_ATTRIBUTE_TYPE);
}
EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable & value)
@@ -17656,7 +17656,7 @@ EmberAfStatus Set(chip::EndpointId endpoint, int16_t value)
Traits::StorageType storageValue;
Traits::WorkingToStorage(value, storageValue);
uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
- return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_INT16S_ATTRIBUTE_TYPE);
+ return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_TEMPERATURE_ATTRIBUTE_TYPE);
}
EmberAfStatus SetNull(chip::EndpointId endpoint)
@@ -17665,7 +17665,7 @@ EmberAfStatus SetNull(chip::EndpointId endpoint)
Traits::StorageType value;
Traits::SetNull(value);
uint8_t * writable = Traits::ToAttributeStoreRepresentation(value);
- return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_INT16S_ATTRIBUTE_TYPE);
+ return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_TEMPERATURE_ATTRIBUTE_TYPE);
}
EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable & value)
@@ -17709,7 +17709,7 @@ EmberAfStatus Set(chip::EndpointId endpoint, int16_t value)
Traits::StorageType storageValue;
Traits::WorkingToStorage(value, storageValue);
uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
- return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_INT16S_ATTRIBUTE_TYPE);
+ return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_TEMPERATURE_ATTRIBUTE_TYPE);
}
EmberAfStatus SetNull(chip::EndpointId endpoint)
@@ -17718,7 +17718,7 @@ EmberAfStatus SetNull(chip::EndpointId endpoint)
Traits::StorageType value;
Traits::SetNull(value);
uint8_t * writable = Traits::ToAttributeStoreRepresentation(value);
- return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_INT16S_ATTRIBUTE_TYPE);
+ return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_TEMPERATURE_ATTRIBUTE_TYPE);
}
EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable & value)
@@ -17735,9 +17735,9 @@ EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullabl
namespace Tolerance {
-EmberAfStatus Get(chip::EndpointId endpoint, uint16_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, int16_t * value)
{
- using Traits = NumericAttributeTraits;
+ using Traits = NumericAttributeTraits;
Traits::StorageType temp;
uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
EmberAfStatus status = emberAfReadAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, readable, sizeof(temp));
@@ -17749,9 +17749,9 @@ EmberAfStatus Get(chip::EndpointId endpoint, uint16_t * value)
*value = Traits::StorageToWorking(temp);
return status;
}
-EmberAfStatus Set(chip::EndpointId endpoint, uint16_t value)
+EmberAfStatus Set(chip::EndpointId endpoint, int16_t value)
{
- using Traits = NumericAttributeTraits;
+ using Traits = NumericAttributeTraits;
if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
{
return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
@@ -17759,7 +17759,7 @@ EmberAfStatus Set(chip::EndpointId endpoint, uint16_t value)
Traits::StorageType storageValue;
Traits::WorkingToStorage(value, storageValue);
uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
- return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE);
+ return emberAfWriteAttribute(endpoint, Clusters::TemperatureMeasurement::Id, Id, writable, ZCL_TEMPERATURE_ATTRIBUTE_TYPE);
}
} // namespace Tolerance
diff --git a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
index 4486856ee4a374..e993b63df4c0ea 100644
--- a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
+++ b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
@@ -3107,29 +3107,29 @@ namespace TemperatureMeasurement {
namespace Attributes {
namespace MeasuredValue {
-EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable & value); // int16s
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable & value); // temperature
EmberAfStatus Set(chip::EndpointId endpoint, int16_t value);
EmberAfStatus SetNull(chip::EndpointId endpoint);
EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable & value);
} // namespace MeasuredValue
namespace MinMeasuredValue {
-EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable & value); // int16s
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable & value); // temperature
EmberAfStatus Set(chip::EndpointId endpoint, int16_t value);
EmberAfStatus SetNull(chip::EndpointId endpoint);
EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable & value);
} // namespace MinMeasuredValue
namespace MaxMeasuredValue {
-EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable & value); // int16s
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable & value); // temperature
EmberAfStatus Set(chip::EndpointId endpoint, int16_t value);
EmberAfStatus SetNull(chip::EndpointId endpoint);
EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable & value);
} // namespace MaxMeasuredValue
namespace Tolerance {
-EmberAfStatus Get(chip::EndpointId endpoint, uint16_t * value); // int16u
-EmberAfStatus Set(chip::EndpointId endpoint, uint16_t value);
+EmberAfStatus Get(chip::EndpointId endpoint, int16_t * value); // temperature
+EmberAfStatus Set(chip::EndpointId endpoint, int16_t value);
} // namespace Tolerance
namespace FeatureMap {
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
index 53ad0bc00adb44..ca8a7867870c28 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
@@ -24992,9 +24992,9 @@ struct TypeInfo
namespace Tolerance {
struct TypeInfo
{
- using Type = uint16_t;
- using DecodableType = uint16_t;
- using DecodableArgType = uint16_t;
+ using Type = int16_t;
+ using DecodableType = int16_t;
+ using DecodableArgType = int16_t;
static constexpr ClusterId GetClusterId() { return Clusters::TemperatureMeasurement::Id; }
static constexpr AttributeId GetAttributeId() { return Attributes::Tolerance::Id; }
@@ -25049,7 +25049,7 @@ struct TypeInfo
Attributes::MeasuredValue::TypeInfo::DecodableType measuredValue;
Attributes::MinMeasuredValue::TypeInfo::DecodableType minMeasuredValue;
Attributes::MaxMeasuredValue::TypeInfo::DecodableType maxMeasuredValue;
- Attributes::Tolerance::TypeInfo::DecodableType tolerance = static_cast(0);
+ Attributes::Tolerance::TypeInfo::DecodableType tolerance = static_cast(0);
Attributes::GeneratedCommandList::TypeInfo::DecodableType generatedCommandList;
Attributes::AcceptedCommandList::TypeInfo::DecodableType acceptedCommandList;
Attributes::EventList::TypeInfo::DecodableType eventList;
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
index 0dfa96f5ed563d..f65b3063fba7bd 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
@@ -18036,8 +18036,8 @@ void registerClusterTemperatureMeasurement(Commands & commands, CredentialIssuer
make_unique>>(Id, "max-measured-value", INT16_MIN, INT16_MAX,
Attributes::MaxMeasuredValue::Id,
WriteCommandType::kForceWrite, credsIssuerConfig), //
- make_unique>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id,
- WriteCommandType::kForceWrite, credsIssuerConfig), //
+ make_unique>(Id, "tolerance", INT16_MIN, INT16_MAX, Attributes::Tolerance::Id,
+ WriteCommandType::kForceWrite, credsIssuerConfig), //
make_unique>>(
Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
credsIssuerConfig), //
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
index 820f5680f25761..f26ae6d1c32025 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
+++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
@@ -10533,7 +10533,7 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
}
case TemperatureMeasurement::Attributes::Tolerance::Id: {
- uint16_t value;
+ int16_t value;
ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
return DataModelLogger::LogValue("Tolerance", 1, value);
}
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
index 5cce9bf5cd4a62..fe9d1ee034da7c 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
@@ -93594,7 +93594,7 @@ class Test_TC_TMP_2_1 : public TestCommandBridge {
if (value != nil) {
- VerifyOrReturn(CheckConstraintType("minMeasuredValue", "int16s", "int16s"));
+ VerifyOrReturn(CheckConstraintType("minMeasuredValue", "temperature", "int16s"));
VerifyOrReturn(CheckConstraintMinValue("minMeasuredValue", [value shortValue], -27315));
VerifyOrReturn(CheckConstraintMaxValue("minMeasuredValue", [value shortValue], 32766));
}
@@ -93623,7 +93623,7 @@ class Test_TC_TMP_2_1 : public TestCommandBridge {
if (value != nil) {
- VerifyOrReturn(CheckConstraintType("maxMeasuredValue", "int16s", "int16s"));
+ VerifyOrReturn(CheckConstraintType("maxMeasuredValue", "temperature", "int16s"));
VerifyOrReturn(CheckConstraintMinValue("maxMeasuredValue", [value shortValue], CurrentMinMeasured));
VerifyOrReturn(CheckConstraintMaxValue("maxMeasuredValue", [value shortValue], 32767));
}
@@ -93651,7 +93651,7 @@ class Test_TC_TMP_2_1 : public TestCommandBridge {
if (value != nil) {
- VerifyOrReturn(CheckConstraintType("measuredValue", "int16s", "int16s"));
+ VerifyOrReturn(CheckConstraintType("measuredValue", "temperature", "int16s"));
VerifyOrReturn(CheckConstraintMinValue("measuredValue", [value shortValue], CurrentMinMeasured));
VerifyOrReturn(CheckConstraintMaxValue("measuredValue", [value shortValue], CurrentMaxMeasured));
}
@@ -93674,9 +93674,9 @@ class Test_TC_TMP_2_1 : public TestCommandBridge {
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
- VerifyOrReturn(CheckConstraintType("tolerance", "int16u", "int16u"));
- VerifyOrReturn(CheckConstraintMinValue("tolerance", [value unsignedShortValue], 0U));
- VerifyOrReturn(CheckConstraintMaxValue("tolerance", [value unsignedShortValue], 2048U));
+ VerifyOrReturn(CheckConstraintType("tolerance", "temperature", "int16u"));
+ VerifyOrReturn(CheckConstraintMinValue("tolerance", [value shortValue], 0));
+ VerifyOrReturn(CheckConstraintMaxValue("tolerance", [value shortValue], 2048));
NextTest();
}];