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 91ceabe5dcbdef..3a6187874db2b0 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 @@ -1079,7 +1079,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; 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.zap b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap index fd7ef67ad59ac9..43de928aba7937 100644 --- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap @@ -7064,7 +7064,7 @@ "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "TemperatureDisplayModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -7080,7 +7080,7 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "KeypadLockoutEnum", "included": 1, "storageOption": "RAM", "singleton": 0, diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter index 9ecbdb2e53c637..8d49b997c2b5ce 100644 --- a/examples/bridge-app/bridge-common/bridge-app.matter +++ b/examples/bridge-app/bridge-common/bridge-app.matter @@ -649,7 +649,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; 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_dishwasher_cc105034fe.matter b/examples/chef/devices/rootnode_dishwasher_cc105034fe.matter index d6f7642b2e2d85..ad451cc40b47d2 100644 --- a/examples/chef/devices/rootnode_dishwasher_cc105034fe.matter +++ b/examples/chef/devices/rootnode_dishwasher_cc105034fe.matter @@ -310,7 +310,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; 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_laundrywasher_fb10d238c8.matter b/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter index 0ec432e3e20dad..6f315142dee3bf 100644 --- a/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter +++ b/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter @@ -310,7 +310,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; 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_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter b/examples/chef/devices/rootnode_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter index 9a087e66d8fb00..ed1cad3db868eb 100644 --- a/examples/chef/devices/rootnode_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter +++ b/examples/chef/devices/rootnode_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter @@ -310,7 +310,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; 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_roomairconditioner_9cf3607804.zap b/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.zap index c7ba8b78616a09..f844ff02c238a1 100644 --- a/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.zap +++ b/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.zap @@ -3037,7 +3037,7 @@ "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "TemperatureDisplayModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -3053,7 +3053,7 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "KeypadLockoutEnum", "included": 1, "storageOption": "RAM", "singleton": 0, diff --git a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.zap b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.zap index e4abf0e13b53ad..a2239be9ab987b 100644 --- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.zap +++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.zap @@ -3596,7 +3596,7 @@ "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "TemperatureDisplayModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -3612,7 +3612,7 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "KeypadLockoutEnum", "included": 1, "storageOption": "RAM", "singleton": 0, diff --git a/examples/dishwasher-app/dishwasher-common/dishwasher-app.matter b/examples/dishwasher-app/dishwasher-common/dishwasher-app.matter index edba1ad9aea96e..2b18f41c2b593c 100644 --- a/examples/dishwasher-app/dishwasher-common/dishwasher-app.matter +++ b/examples/dishwasher-app/dishwasher-common/dishwasher-app.matter @@ -398,7 +398,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; 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 3d8f9135409136..3475e909bbd04c 100644 --- a/examples/placeholder/linux/apps/app1/config.matter +++ b/examples/placeholder/linux/apps/app1/config.matter @@ -1023,7 +1023,7 @@ client cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute optional TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) optional TempUnitEnum temperatureUnit = 0; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -1047,7 +1047,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; 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.zap b/examples/placeholder/linux/apps/app1/config.zap index 39b1315aee410e..0dbe7077a0b98e 100644 --- a/examples/placeholder/linux/apps/app1/config.zap +++ b/examples/placeholder/linux/apps/app1/config.zap @@ -8760,7 +8760,7 @@ "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "TemperatureDisplayModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -8776,7 +8776,7 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "KeypadLockoutEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -8792,7 +8792,7 @@ "code": 2, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "ScheduleProgrammingVisibilityEnum", "included": 1, "storageOption": "RAM", "singleton": 0, diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter index 284ec9f396972b..9ecc3de607745d 100644 --- a/examples/placeholder/linux/apps/app2/config.matter +++ b/examples/placeholder/linux/apps/app2/config.matter @@ -1006,7 +1006,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; 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.zap b/examples/placeholder/linux/apps/app2/config.zap index 3417feb3df0ecc..725e63e1c64cdc 100644 --- a/examples/placeholder/linux/apps/app2/config.zap +++ b/examples/placeholder/linux/apps/app2/config.zap @@ -8834,7 +8834,7 @@ "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "TemperatureDisplayModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -8850,7 +8850,7 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "KeypadLockoutEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -8866,7 +8866,7 @@ "code": 2, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "ScheduleProgrammingVisibilityEnum", "included": 1, "storageOption": "RAM", "singleton": 0, diff --git a/examples/refrigerator-app/refrigerator-common/refrigerator-app.matter b/examples/refrigerator-app/refrigerator-common/refrigerator-app.matter index cdc214bc3ddc4c..4352e13bf71d13 100644 --- a/examples/refrigerator-app/refrigerator-common/refrigerator-app.matter +++ b/examples/refrigerator-app/refrigerator-common/refrigerator-app.matter @@ -265,7 +265,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; 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 fbbef00508c2e9..74c4af426c3abc 100644 --- a/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter +++ b/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter @@ -414,7 +414,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; diff --git a/examples/thermostat/nxp/zap/thermostat_matter_thread.matter b/examples/thermostat/nxp/zap/thermostat_matter_thread.matter index 10116d1df8f824..0120c82d54af9d 100644 --- a/examples/thermostat/nxp/zap/thermostat_matter_thread.matter +++ b/examples/thermostat/nxp/zap/thermostat_matter_thread.matter @@ -722,7 +722,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; diff --git a/examples/thermostat/nxp/zap/thermostat_matter_wifi.matter b/examples/thermostat/nxp/zap/thermostat_matter_wifi.matter index eac0acc054d276..c97af9e72e22da 100644 --- a/examples/thermostat/nxp/zap/thermostat_matter_wifi.matter +++ b/examples/thermostat/nxp/zap/thermostat_matter_wifi.matter @@ -722,7 +722,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; diff --git a/examples/thermostat/thermostat-common/thermostat.matter b/examples/thermostat/thermostat-common/thermostat.matter index 0d67cab366993b..82dff269065247 100644 --- a/examples/thermostat/thermostat-common/thermostat.matter +++ b/examples/thermostat/thermostat-common/thermostat.matter @@ -596,7 +596,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; diff --git a/examples/thermostat/thermostat-common/thermostat.zap b/examples/thermostat/thermostat-common/thermostat.zap index 0bdc55a361912c..fef78b92cbb186 100644 --- a/examples/thermostat/thermostat-common/thermostat.zap +++ b/examples/thermostat/thermostat-common/thermostat.zap @@ -4964,7 +4964,7 @@ "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "TemperatureDisplayModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -4980,7 +4980,7 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "KeypadLockoutEnum", "included": 1, "storageOption": "RAM", "singleton": 0, diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter index b8b3d3e3e3fb12..ecee6e792e42bb 100644 --- a/examples/tv-app/tv-common/tv-app.matter +++ b/examples/tv-app/tv-common/tv-app.matter @@ -528,7 +528,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter index 89c8d5a41a4902..eb90d7d576e809 100644 --- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter +++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter @@ -630,7 +630,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; diff --git a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter index d2f419d1711a31..0ac18cb306965c 100644 --- a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter +++ b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter @@ -666,7 +666,7 @@ server cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) TempUnitEnum temperatureUnit = 0; 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/inputs/all-clusters-app.zap b/scripts/tools/zap/tests/inputs/all-clusters-app.zap index 7cfd95cc9aa97f..fbff9c8e36435b 100644 --- a/scripts/tools/zap/tests/inputs/all-clusters-app.zap +++ b/scripts/tools/zap/tests/inputs/all-clusters-app.zap @@ -10346,7 +10346,7 @@ "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "TemperatureDisplayModeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -10362,7 +10362,7 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "KeypadLockoutEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -10378,7 +10378,7 @@ "code": 2, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "ScheduleProgrammingVisibilityEnum", "included": 1, "storageOption": "RAM", "singleton": 0, diff --git a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/access.h b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/access.h index 5403f99d2c747e..c1e762de1b2526 100644 --- a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/access.h +++ b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/access.h @@ -234,6 +234,7 @@ 0x0000002B, /* Cluster: Localization Configuration, Attribute: ActiveLocale, Privilege: manage */ \ 0x0000002C, /* Cluster: Time Format Localization, Attribute: HourFormat, Privilege: manage */ \ 0x0000002C, /* Cluster: Time Format Localization, Attribute: ActiveCalendarType, Privilege: manage */ \ + 0x0000002D, /* Cluster: Unit Localization, Attribute: TemperatureUnit, Privilege: manage */ \ 0x00000030, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \ 0x00000031, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \ 0x0000003F, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \ @@ -292,6 +293,7 @@ 0x00000000, /* Cluster: Localization Configuration, Attribute: ActiveLocale, Privilege: manage */ \ 0x00000000, /* Cluster: Time Format Localization, Attribute: HourFormat, Privilege: manage */ \ 0x00000001, /* Cluster: Time Format Localization, Attribute: ActiveCalendarType, Privilege: manage */ \ + 0x00000000, /* Cluster: Unit Localization, Attribute: TemperatureUnit, Privilege: manage */ \ 0x00000000, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \ 0x00000004, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \ 0x00000000, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \ @@ -350,6 +352,7 @@ kMatterAccessPrivilegeManage, /* Cluster: Localization Configuration, Attribute: ActiveLocale, Privilege: manage */ \ kMatterAccessPrivilegeManage, /* Cluster: Time Format Localization, Attribute: HourFormat, Privilege: manage */ \ kMatterAccessPrivilegeManage, /* Cluster: Time Format Localization, Attribute: ActiveCalendarType, Privilege: manage */ \ + kMatterAccessPrivilegeManage, /* Cluster: Unit Localization, Attribute: TemperatureUnit, Privilege: manage */ \ kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \ kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \ kMatterAccessPrivilegeManage, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \ diff --git a/src/app/zap-templates/zcl/data-model/chip/unit-localization-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/unit-localization-cluster.xml index 22dfff577636f7..febb19ed595e36 100644 --- a/src/app/zap-templates/zcl/data-model/chip/unit-localization-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/unit-localization-cluster.xml @@ -35,7 +35,10 @@ limitations under the License. mechanism by which they can be configured to use a user’s preferred unit. - TemperatureUnit + + TemperatureUnit + + diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index 841c4cba61e5de..bd67674e0366e1 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -1162,7 +1162,7 @@ client cluster UnitLocalization = 45 { kTemperatureUnit = 0x1; } - attribute optional TempUnitEnum temperatureUnit = 0; + attribute access(write: manage) optional TempUnitEnum temperatureUnit = 0; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530;