From df3ce737a25912645b796951f1c508fdcc5da60d Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Wed, 15 Nov 2023 03:51:20 -0500 Subject: [PATCH] Match `Thermostat User Interface Configuration Cluster` to spec (#30325) * Add and use enums * ZAP regen --- .../all-clusters-app.matter | 25 ++++++++- .../all-clusters-minimal-app.matter | 23 +++++++- ...tnode_roomairconditioner_9cf3607804.matter | 23 +++++++- .../rootnode_thermostat_bm3fb8dhYi.matter | 23 +++++++- .../placeholder/linux/apps/app1/config.matter | 50 +++++++++++++++-- .../placeholder/linux/apps/app2/config.matter | 50 +++++++++++++++-- .../thermostat-common/thermostat.matter | 23 +++++++- ...t-user-interface-configuration-cluster.xml | 29 +++++++++- .../data_model/controller-clusters.matter | 25 ++++++++- .../python/chip/clusters/Objects.py | 56 +++++++++++++++---- .../MTRAttributeTLVValueDecoder.mm | 6 +- .../CHIP/zap-generated/MTRBaseClusters.h | 19 +++++++ .../CHIP/zap-generated/MTRBaseClusters.mm | 6 +- .../zap-generated/attributes/Accessors.cpp | 30 ++++++---- .../zap-generated/attributes/Accessors.h | 19 +++++-- .../zap-generated/cluster-enums-check.h | 42 ++++++++++++++ .../app-common/zap-generated/cluster-enums.h | 43 +++++++++++++- .../zap-generated/cluster-objects.h | 27 +++++---- .../zap-generated/cluster/Commands.h | 15 ++--- .../cluster/logging/DataModelLogger.cpp | 6 +- 20 files changed, 452 insertions(+), 88 deletions(-) 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 da455cfcb688ac..6d7d7d405427e3 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 @@ -3705,9 +3705,28 @@ provisional server cluster FanControl = 514 { /** An interface for configuring the user interface of a thermostat (which may be remote from the thermostat). */ server cluster ThermostatUserInterfaceConfiguration = 516 { - attribute enum8 temperatureDisplayMode = 0; - attribute access(write: manage) enum8 keypadLockout = 1; - attribute access(write: manage) enum8 scheduleProgrammingVisibility = 2; + enum KeypadLockoutEnum : enum8 { + kNoLockout = 0; + kLockout1 = 1; + kLockout2 = 2; + kLockout3 = 3; + kLockout4 = 4; + kLockout5 = 5; + } + + enum ScheduleProgrammingVisibilityEnum : enum8 { + kScheduleProgrammingPermitted = 0; + kScheduleProgrammingDenied = 1; + } + + enum TemperatureDisplayModeEnum : enum8 { + kCelsius = 0; + kFahrenheit = 1; + } + + attribute TemperatureDisplayModeEnum temperatureDisplayMode = 0; + attribute access(write: manage) KeypadLockoutEnum keypadLockout = 1; + attribute access(write: manage) ScheduleProgrammingVisibilityEnum scheduleProgrammingVisibility = 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-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 0993d67d936b92..a91f01342e01ad 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 @@ -2916,8 +2916,27 @@ provisional server cluster FanControl = 514 { /** An interface for configuring the user interface of a thermostat (which may be remote from the thermostat). */ server cluster ThermostatUserInterfaceConfiguration = 516 { - attribute enum8 temperatureDisplayMode = 0; - attribute access(write: manage) enum8 keypadLockout = 1; + enum KeypadLockoutEnum : enum8 { + kNoLockout = 0; + kLockout1 = 1; + kLockout2 = 2; + kLockout3 = 3; + kLockout4 = 4; + kLockout5 = 5; + } + + enum ScheduleProgrammingVisibilityEnum : enum8 { + kScheduleProgrammingPermitted = 0; + kScheduleProgrammingDenied = 1; + } + + enum TemperatureDisplayModeEnum : enum8 { + kCelsius = 0; + kFahrenheit = 1; + } + + attribute TemperatureDisplayModeEnum temperatureDisplayMode = 0; + attribute access(write: manage) KeypadLockoutEnum keypadLockout = 1; 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.matter b/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.matter index c10d6819f9b54e..354c39aea13a34 100644 --- a/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.matter +++ b/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.matter @@ -1111,8 +1111,27 @@ provisional server cluster FanControl = 514 { /** An interface for configuring the user interface of a thermostat (which may be remote from the thermostat). */ server cluster ThermostatUserInterfaceConfiguration = 516 { - attribute enum8 temperatureDisplayMode = 0; - attribute access(write: manage) enum8 keypadLockout = 1; + enum KeypadLockoutEnum : enum8 { + kNoLockout = 0; + kLockout1 = 1; + kLockout2 = 2; + kLockout3 = 3; + kLockout4 = 4; + kLockout5 = 5; + } + + enum ScheduleProgrammingVisibilityEnum : enum8 { + kScheduleProgrammingPermitted = 0; + kScheduleProgrammingDenied = 1; + } + + enum TemperatureDisplayModeEnum : enum8 { + kCelsius = 0; + kFahrenheit = 1; + } + + attribute TemperatureDisplayModeEnum temperatureDisplayMode = 0; + attribute access(write: manage) KeypadLockoutEnum keypadLockout = 1; 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 7e257b1fbfb706..09a8cc93afa0f0 100644 --- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter +++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter @@ -1369,8 +1369,27 @@ provisional client cluster FanControl = 514 { /** An interface for configuring the user interface of a thermostat (which may be remote from the thermostat). */ server cluster ThermostatUserInterfaceConfiguration = 516 { - attribute enum8 temperatureDisplayMode = 0; - attribute access(write: manage) enum8 keypadLockout = 1; + enum KeypadLockoutEnum : enum8 { + kNoLockout = 0; + kLockout1 = 1; + kLockout2 = 2; + kLockout3 = 3; + kLockout4 = 4; + kLockout5 = 5; + } + + enum ScheduleProgrammingVisibilityEnum : enum8 { + kScheduleProgrammingPermitted = 0; + kScheduleProgrammingDenied = 1; + } + + enum TemperatureDisplayModeEnum : enum8 { + kCelsius = 0; + kFahrenheit = 1; + } + + attribute TemperatureDisplayModeEnum temperatureDisplayMode = 0; + attribute access(write: manage) KeypadLockoutEnum keypadLockout = 1; 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 bc1050e8604835..08244cbd5558ef 100644 --- a/examples/placeholder/linux/apps/app1/config.matter +++ b/examples/placeholder/linux/apps/app1/config.matter @@ -4528,9 +4528,28 @@ server cluster Thermostat = 513 { /** An interface for configuring the user interface of a thermostat (which may be remote from the thermostat). */ client cluster ThermostatUserInterfaceConfiguration = 516 { - attribute enum8 temperatureDisplayMode = 0; - attribute access(write: manage) enum8 keypadLockout = 1; - attribute access(write: manage) optional enum8 scheduleProgrammingVisibility = 2; + enum KeypadLockoutEnum : enum8 { + kNoLockout = 0; + kLockout1 = 1; + kLockout2 = 2; + kLockout3 = 3; + kLockout4 = 4; + kLockout5 = 5; + } + + enum ScheduleProgrammingVisibilityEnum : enum8 { + kScheduleProgrammingPermitted = 0; + kScheduleProgrammingDenied = 1; + } + + enum TemperatureDisplayModeEnum : enum8 { + kCelsius = 0; + kFahrenheit = 1; + } + + attribute TemperatureDisplayModeEnum temperatureDisplayMode = 0; + attribute access(write: manage) KeypadLockoutEnum keypadLockout = 1; + attribute access(write: manage) optional ScheduleProgrammingVisibilityEnum scheduleProgrammingVisibility = 2; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -4541,9 +4560,28 @@ client cluster ThermostatUserInterfaceConfiguration = 516 { /** An interface for configuring the user interface of a thermostat (which may be remote from the thermostat). */ server cluster ThermostatUserInterfaceConfiguration = 516 { - attribute enum8 temperatureDisplayMode = 0; - attribute access(write: manage) enum8 keypadLockout = 1; - attribute access(write: manage) enum8 scheduleProgrammingVisibility = 2; + enum KeypadLockoutEnum : enum8 { + kNoLockout = 0; + kLockout1 = 1; + kLockout2 = 2; + kLockout3 = 3; + kLockout4 = 4; + kLockout5 = 5; + } + + enum ScheduleProgrammingVisibilityEnum : enum8 { + kScheduleProgrammingPermitted = 0; + kScheduleProgrammingDenied = 1; + } + + enum TemperatureDisplayModeEnum : enum8 { + kCelsius = 0; + kFahrenheit = 1; + } + + attribute TemperatureDisplayModeEnum temperatureDisplayMode = 0; + attribute access(write: manage) KeypadLockoutEnum keypadLockout = 1; + attribute access(write: manage) ScheduleProgrammingVisibilityEnum scheduleProgrammingVisibility = 2; 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 c68d4830b0beb6..6a256de13a3c46 100644 --- a/examples/placeholder/linux/apps/app2/config.matter +++ b/examples/placeholder/linux/apps/app2/config.matter @@ -4487,9 +4487,28 @@ server cluster Thermostat = 513 { /** An interface for configuring the user interface of a thermostat (which may be remote from the thermostat). */ client cluster ThermostatUserInterfaceConfiguration = 516 { - attribute enum8 temperatureDisplayMode = 0; - attribute access(write: manage) enum8 keypadLockout = 1; - attribute access(write: manage) optional enum8 scheduleProgrammingVisibility = 2; + enum KeypadLockoutEnum : enum8 { + kNoLockout = 0; + kLockout1 = 1; + kLockout2 = 2; + kLockout3 = 3; + kLockout4 = 4; + kLockout5 = 5; + } + + enum ScheduleProgrammingVisibilityEnum : enum8 { + kScheduleProgrammingPermitted = 0; + kScheduleProgrammingDenied = 1; + } + + enum TemperatureDisplayModeEnum : enum8 { + kCelsius = 0; + kFahrenheit = 1; + } + + attribute TemperatureDisplayModeEnum temperatureDisplayMode = 0; + attribute access(write: manage) KeypadLockoutEnum keypadLockout = 1; + attribute access(write: manage) optional ScheduleProgrammingVisibilityEnum scheduleProgrammingVisibility = 2; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -4500,9 +4519,28 @@ client cluster ThermostatUserInterfaceConfiguration = 516 { /** An interface for configuring the user interface of a thermostat (which may be remote from the thermostat). */ server cluster ThermostatUserInterfaceConfiguration = 516 { - attribute enum8 temperatureDisplayMode = 0; - attribute access(write: manage) enum8 keypadLockout = 1; - attribute access(write: manage) enum8 scheduleProgrammingVisibility = 2; + enum KeypadLockoutEnum : enum8 { + kNoLockout = 0; + kLockout1 = 1; + kLockout2 = 2; + kLockout3 = 3; + kLockout4 = 4; + kLockout5 = 5; + } + + enum ScheduleProgrammingVisibilityEnum : enum8 { + kScheduleProgrammingPermitted = 0; + kScheduleProgrammingDenied = 1; + } + + enum TemperatureDisplayModeEnum : enum8 { + kCelsius = 0; + kFahrenheit = 1; + } + + attribute TemperatureDisplayModeEnum temperatureDisplayMode = 0; + attribute access(write: manage) KeypadLockoutEnum keypadLockout = 1; + attribute access(write: manage) ScheduleProgrammingVisibilityEnum scheduleProgrammingVisibility = 2; 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 b6cab942fbd3a8..c555296bdff957 100644 --- a/examples/thermostat/thermostat-common/thermostat.matter +++ b/examples/thermostat/thermostat-common/thermostat.matter @@ -1642,8 +1642,27 @@ server cluster Thermostat = 513 { /** An interface for configuring the user interface of a thermostat (which may be remote from the thermostat). */ server cluster ThermostatUserInterfaceConfiguration = 516 { - attribute enum8 temperatureDisplayMode = 0; - attribute access(write: manage) enum8 keypadLockout = 1; + enum KeypadLockoutEnum : enum8 { + kNoLockout = 0; + kLockout1 = 1; + kLockout2 = 2; + kLockout3 = 3; + kLockout4 = 4; + kLockout5 = 5; + } + + enum ScheduleProgrammingVisibilityEnum : enum8 { + kScheduleProgrammingPermitted = 0; + kScheduleProgrammingDenied = 1; + } + + enum TemperatureDisplayModeEnum : enum8 { + kCelsius = 0; + kFahrenheit = 1; + } + + attribute TemperatureDisplayModeEnum temperatureDisplayMode = 0; + attribute access(write: manage) KeypadLockoutEnum keypadLockout = 1; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; diff --git a/src/app/zap-templates/zcl/data-model/chip/thermostat-user-interface-configuration-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/thermostat-user-interface-configuration-cluster.xml index fdf670540fa11d..cd3491cc079024 100644 --- a/src/app/zap-templates/zcl/data-model/chip/thermostat-user-interface-configuration-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/thermostat-user-interface-configuration-cluster.xml @@ -29,18 +29,41 @@ limitations under the License. - TemperatureDisplayMode + TemperatureDisplayMode - + KeypadLockout - + ScheduleProgrammingVisibility + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index 81a5349e29e1f3..f56573cb7cd833 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -5088,9 +5088,28 @@ provisional client cluster FanControl = 514 { /** An interface for configuring the user interface of a thermostat (which may be remote from the thermostat). */ client cluster ThermostatUserInterfaceConfiguration = 516 { - attribute enum8 temperatureDisplayMode = 0; - attribute access(write: manage) enum8 keypadLockout = 1; - attribute access(write: manage) optional enum8 scheduleProgrammingVisibility = 2; + enum KeypadLockoutEnum : enum8 { + kNoLockout = 0; + kLockout1 = 1; + kLockout2 = 2; + kLockout3 = 3; + kLockout4 = 4; + kLockout5 = 5; + } + + enum ScheduleProgrammingVisibilityEnum : enum8 { + kScheduleProgrammingPermitted = 0; + kScheduleProgrammingDenied = 1; + } + + enum TemperatureDisplayModeEnum : enum8 { + kCelsius = 0; + kFahrenheit = 1; + } + + attribute TemperatureDisplayModeEnum temperatureDisplayMode = 0; + attribute access(write: manage) KeypadLockoutEnum keypadLockout = 1; + attribute access(write: manage) optional ScheduleProgrammingVisibilityEnum scheduleProgrammingVisibility = 2; 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 4f7071a260473a..f3f396633491fa 100644 --- a/src/controller/python/chip/clusters/Objects.py +++ b/src/controller/python/chip/clusters/Objects.py @@ -26593,9 +26593,9 @@ class ThermostatUserInterfaceConfiguration(Cluster): def descriptor(cls) -> ClusterObjectDescriptor: return ClusterObjectDescriptor( Fields=[ - ClusterObjectFieldDescriptor(Label="temperatureDisplayMode", Tag=0x00000000, Type=uint), - ClusterObjectFieldDescriptor(Label="keypadLockout", Tag=0x00000001, Type=uint), - ClusterObjectFieldDescriptor(Label="scheduleProgrammingVisibility", Tag=0x00000002, Type=typing.Optional[uint]), + ClusterObjectFieldDescriptor(Label="temperatureDisplayMode", Tag=0x00000000, Type=ThermostatUserInterfaceConfiguration.Enums.TemperatureDisplayModeEnum), + ClusterObjectFieldDescriptor(Label="keypadLockout", Tag=0x00000001, Type=ThermostatUserInterfaceConfiguration.Enums.KeypadLockoutEnum), + ClusterObjectFieldDescriptor(Label="scheduleProgrammingVisibility", Tag=0x00000002, Type=typing.Optional[ThermostatUserInterfaceConfiguration.Enums.ScheduleProgrammingVisibilityEnum]), 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]), @@ -26604,9 +26604,9 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="clusterRevision", Tag=0x0000FFFD, Type=uint), ]) - temperatureDisplayMode: 'uint' = None - keypadLockout: 'uint' = None - scheduleProgrammingVisibility: 'typing.Optional[uint]' = None + temperatureDisplayMode: 'ThermostatUserInterfaceConfiguration.Enums.TemperatureDisplayModeEnum' = None + keypadLockout: 'ThermostatUserInterfaceConfiguration.Enums.KeypadLockoutEnum' = None + scheduleProgrammingVisibility: 'typing.Optional[ThermostatUserInterfaceConfiguration.Enums.ScheduleProgrammingVisibilityEnum]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -26614,6 +26614,38 @@ def descriptor(cls) -> ClusterObjectDescriptor: featureMap: 'uint' = None clusterRevision: 'uint' = None + class Enums: + class KeypadLockoutEnum(MatterIntEnum): + kNoLockout = 0x00 + kLockout1 = 0x01 + kLockout2 = 0x02 + kLockout3 = 0x03 + kLockout4 = 0x04 + kLockout5 = 0x05 + # All received enum values that are not listed above will be mapped + # to kUnknownEnumValue. This is a helper enum value that should only + # be used by code to process how it handles receiving and unknown + # enum value. This specific should never be transmitted. + kUnknownEnumValue = 6, + + class ScheduleProgrammingVisibilityEnum(MatterIntEnum): + kScheduleProgrammingPermitted = 0x00 + kScheduleProgrammingDenied = 0x01 + # All received enum values that are not listed above will be mapped + # to kUnknownEnumValue. This is a helper enum value that should only + # be used by code to process how it handles receiving and unknown + # enum value. This specific should never be transmitted. + kUnknownEnumValue = 2, + + class TemperatureDisplayModeEnum(MatterIntEnum): + kCelsius = 0x00 + kFahrenheit = 0x01 + # All received enum values that are not listed above will be mapped + # to kUnknownEnumValue. This is a helper enum value that should only + # be used by code to process how it handles receiving and unknown + # enum value. This specific should never be transmitted. + kUnknownEnumValue = 2, + class Attributes: @dataclass class TemperatureDisplayMode(ClusterAttributeDescriptor): @@ -26627,9 +26659,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=uint) + return ClusterObjectFieldDescriptor(Type=ThermostatUserInterfaceConfiguration.Enums.TemperatureDisplayModeEnum) - value: 'uint' = 0 + value: 'ThermostatUserInterfaceConfiguration.Enums.TemperatureDisplayModeEnum' = 0 @dataclass class KeypadLockout(ClusterAttributeDescriptor): @@ -26643,9 +26675,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=uint) + return ClusterObjectFieldDescriptor(Type=ThermostatUserInterfaceConfiguration.Enums.KeypadLockoutEnum) - value: 'uint' = 0 + value: 'ThermostatUserInterfaceConfiguration.Enums.KeypadLockoutEnum' = 0 @dataclass class ScheduleProgrammingVisibility(ClusterAttributeDescriptor): @@ -26659,9 +26691,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[uint]) + return ClusterObjectFieldDescriptor(Type=typing.Optional[ThermostatUserInterfaceConfiguration.Enums.ScheduleProgrammingVisibilityEnum]) - value: 'typing.Optional[uint]' = None + value: 'typing.Optional[ThermostatUserInterfaceConfiguration.Enums.ScheduleProgrammingVisibilityEnum]' = 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 11504f0e1ae195..060a0c1de5d749 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm @@ -9327,7 +9327,7 @@ static id _Nullable DecodeAttributeValueForThermostatUserInterfaceConfigurationC return nil; } NSNumber * _Nonnull value; - value = [NSNumber numberWithUnsignedChar:cppValue]; + value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)]; return value; } case Attributes::KeypadLockout::Id: { @@ -9338,7 +9338,7 @@ static id _Nullable DecodeAttributeValueForThermostatUserInterfaceConfigurationC return nil; } NSNumber * _Nonnull value; - value = [NSNumber numberWithUnsignedChar:cppValue]; + value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)]; return value; } case Attributes::ScheduleProgrammingVisibility::Id: { @@ -9349,7 +9349,7 @@ static id _Nullable DecodeAttributeValueForThermostatUserInterfaceConfigurationC return nil; } NSNumber * _Nonnull value; - value = [NSNumber numberWithUnsignedChar:cppValue]; + value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)]; return value; } default: { diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h index ed3c93bf2a22a9..c02edc106a7d0d 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h @@ -16276,6 +16276,25 @@ typedef NS_OPTIONS(uint8_t, MTRFanControlWindSupportMask) { MTRFanControlWindSupportMaskNaturalWind MTR_DEPRECATED("Please use MTRFanControlWindBitmapNaturalWind", ios(16.1, 17.0), macos(13.0, 14.0), watchos(9.1, 10.0), tvos(16.1, 17.0)) = 0x2, } MTR_DEPRECATED("Please use MTRFanControlWindBitmap", ios(16.1, 17.0), macos(13.0, 14.0), watchos(9.1, 10.0), tvos(16.1, 17.0)); +typedef NS_ENUM(uint8_t, MTRThermostatUserInterfaceConfigurationKeypadLockout) { + MTRThermostatUserInterfaceConfigurationKeypadLockoutNoLockout MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRThermostatUserInterfaceConfigurationKeypadLockoutLockout1 MTR_PROVISIONALLY_AVAILABLE = 0x01, + MTRThermostatUserInterfaceConfigurationKeypadLockoutLockout2 MTR_PROVISIONALLY_AVAILABLE = 0x02, + MTRThermostatUserInterfaceConfigurationKeypadLockoutLockout3 MTR_PROVISIONALLY_AVAILABLE = 0x03, + MTRThermostatUserInterfaceConfigurationKeypadLockoutLockout4 MTR_PROVISIONALLY_AVAILABLE = 0x04, + MTRThermostatUserInterfaceConfigurationKeypadLockoutLockout5 MTR_PROVISIONALLY_AVAILABLE = 0x05, +} MTR_PROVISIONALLY_AVAILABLE; + +typedef NS_ENUM(uint8_t, MTRThermostatUserInterfaceConfigurationScheduleProgrammingVisibility) { + MTRThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityScheduleProgrammingPermitted MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRThermostatUserInterfaceConfigurationScheduleProgrammingVisibilityScheduleProgrammingDenied MTR_PROVISIONALLY_AVAILABLE = 0x01, +} MTR_PROVISIONALLY_AVAILABLE; + +typedef NS_ENUM(uint8_t, MTRThermostatUserInterfaceConfigurationTemperatureDisplayMode) { + MTRThermostatUserInterfaceConfigurationTemperatureDisplayModeCelsius MTR_PROVISIONALLY_AVAILABLE = 0x00, + MTRThermostatUserInterfaceConfigurationTemperatureDisplayModeFahrenheit MTR_PROVISIONALLY_AVAILABLE = 0x01, +} MTR_PROVISIONALLY_AVAILABLE; + typedef NS_ENUM(uint8_t, MTRColorControlColorLoopAction) { MTRColorControlColorLoopActionDeactivate MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x00, MTRColorControlColorLoopActionActivateFromColorLoopStartEnhancedHue MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x01, diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm index e8ae86dd32952e..affa6d51ceedd2 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm @@ -64969,7 +64969,7 @@ - (void)writeAttributeTemperatureDisplayModeWithValue:(NSNumber * _Nonnull)value ListFreer listFreer; using TypeInfo = ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::TypeInfo; TypeInfo::Type cppValue; - cppValue = value.unsignedCharValue; + cppValue = static_cast>(value.unsignedCharValue); chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpoint); return cppCluster.WriteAttribute(cppValue, bridge, successCb, failureCb, timedWriteTimeout); }); @@ -65033,7 +65033,7 @@ - (void)writeAttributeKeypadLockoutWithValue:(NSNumber * _Nonnull)value params:( ListFreer listFreer; using TypeInfo = ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::TypeInfo; TypeInfo::Type cppValue; - cppValue = value.unsignedCharValue; + cppValue = static_cast>(value.unsignedCharValue); chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpoint); return cppCluster.WriteAttribute(cppValue, bridge, successCb, failureCb, timedWriteTimeout); }); @@ -65097,7 +65097,7 @@ - (void)writeAttributeScheduleProgrammingVisibilityWithValue:(NSNumber * _Nonnul ListFreer listFreer; using TypeInfo = ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::TypeInfo; TypeInfo::Type cppValue; - cppValue = value.unsignedCharValue; + cppValue = static_cast>(value.unsignedCharValue); chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpoint); return cppCluster.WriteAttribute(cppValue, bridge, successCb, failureCb, timedWriteTimeout); }); 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 8ff8fa39480723..8e121e8c752fbb 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 @@ -15234,9 +15234,10 @@ namespace Attributes { namespace TemperatureDisplayMode { -EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value) +EmberAfStatus Get(chip::EndpointId endpoint, + chip::app::Clusters::ThermostatUserInterfaceConfiguration::TemperatureDisplayModeEnum * value) { - using Traits = NumericAttributeTraits; + using Traits = NumericAttributeTraits; Traits::StorageType temp; uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp); EmberAfStatus status = @@ -15249,9 +15250,10 @@ EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value) *value = Traits::StorageToWorking(temp); return status; } -EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value) +EmberAfStatus Set(chip::EndpointId endpoint, + chip::app::Clusters::ThermostatUserInterfaceConfiguration::TemperatureDisplayModeEnum value) { - using Traits = NumericAttributeTraits; + using Traits = NumericAttributeTraits; if (!Traits::CanRepresentValue(/* isNullable = */ false, value)) { return EMBER_ZCL_STATUS_CONSTRAINT_ERROR; @@ -15267,9 +15269,9 @@ EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value) namespace KeypadLockout { -EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value) +EmberAfStatus Get(chip::EndpointId endpoint, chip::app::Clusters::ThermostatUserInterfaceConfiguration::KeypadLockoutEnum * value) { - using Traits = NumericAttributeTraits; + using Traits = NumericAttributeTraits; Traits::StorageType temp; uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp); EmberAfStatus status = @@ -15282,9 +15284,9 @@ EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value) *value = Traits::StorageToWorking(temp); return status; } -EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value) +EmberAfStatus Set(chip::EndpointId endpoint, chip::app::Clusters::ThermostatUserInterfaceConfiguration::KeypadLockoutEnum value) { - using Traits = NumericAttributeTraits; + using Traits = NumericAttributeTraits; if (!Traits::CanRepresentValue(/* isNullable = */ false, value)) { return EMBER_ZCL_STATUS_CONSTRAINT_ERROR; @@ -15300,9 +15302,11 @@ EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value) namespace ScheduleProgrammingVisibility { -EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value) +EmberAfStatus Get(chip::EndpointId endpoint, + chip::app::Clusters::ThermostatUserInterfaceConfiguration::ScheduleProgrammingVisibilityEnum * value) { - using Traits = NumericAttributeTraits; + using Traits = + NumericAttributeTraits; Traits::StorageType temp; uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp); EmberAfStatus status = @@ -15315,9 +15319,11 @@ EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value) *value = Traits::StorageToWorking(temp); return status; } -EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value) +EmberAfStatus Set(chip::EndpointId endpoint, + chip::app::Clusters::ThermostatUserInterfaceConfiguration::ScheduleProgrammingVisibilityEnum value) { - using Traits = NumericAttributeTraits; + using Traits = + NumericAttributeTraits; if (!Traits::CanRepresentValue(/* isNullable = */ false, value)) { return EMBER_ZCL_STATUS_CONSTRAINT_ERROR; 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 fb71f86275f5c5..9281745811e65f 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 @@ -2760,18 +2760,25 @@ namespace ThermostatUserInterfaceConfiguration { namespace Attributes { namespace TemperatureDisplayMode { -EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value); // enum8 -EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value); +EmberAfStatus +Get(chip::EndpointId endpoint, + chip::app::Clusters::ThermostatUserInterfaceConfiguration::TemperatureDisplayModeEnum * value); // TemperatureDisplayModeEnum +EmberAfStatus Set(chip::EndpointId endpoint, + chip::app::Clusters::ThermostatUserInterfaceConfiguration::TemperatureDisplayModeEnum value); } // namespace TemperatureDisplayMode namespace KeypadLockout { -EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value); // enum8 -EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value); +EmberAfStatus Get(chip::EndpointId endpoint, + chip::app::Clusters::ThermostatUserInterfaceConfiguration::KeypadLockoutEnum * value); // KeypadLockoutEnum +EmberAfStatus Set(chip::EndpointId endpoint, chip::app::Clusters::ThermostatUserInterfaceConfiguration::KeypadLockoutEnum value); } // namespace KeypadLockout namespace ScheduleProgrammingVisibility { -EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value); // enum8 -EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value); +EmberAfStatus Get(chip::EndpointId endpoint, + chip::app::Clusters::ThermostatUserInterfaceConfiguration::ScheduleProgrammingVisibilityEnum * + value); // ScheduleProgrammingVisibilityEnum +EmberAfStatus Set(chip::EndpointId endpoint, + chip::app::Clusters::ThermostatUserInterfaceConfiguration::ScheduleProgrammingVisibilityEnum value); } // namespace ScheduleProgrammingVisibility namespace FeatureMap { diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h index 0635d492a19f2d..12aa4e979eced3 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h @@ -2082,6 +2082,48 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(FanControl::StepDirecti } } +static auto __attribute__((unused)) EnsureKnownEnumValue(ThermostatUserInterfaceConfiguration::KeypadLockoutEnum val) +{ + using EnumType = ThermostatUserInterfaceConfiguration::KeypadLockoutEnum; + switch (val) + { + case EnumType::kNoLockout: + case EnumType::kLockout1: + case EnumType::kLockout2: + case EnumType::kLockout3: + case EnumType::kLockout4: + case EnumType::kLockout5: + return val; + default: + return static_cast(6); + } +} +static auto __attribute__((unused)) +EnsureKnownEnumValue(ThermostatUserInterfaceConfiguration::ScheduleProgrammingVisibilityEnum val) +{ + using EnumType = ThermostatUserInterfaceConfiguration::ScheduleProgrammingVisibilityEnum; + switch (val) + { + case EnumType::kScheduleProgrammingPermitted: + case EnumType::kScheduleProgrammingDenied: + return val; + default: + return static_cast(2); + } +} +static auto __attribute__((unused)) EnsureKnownEnumValue(ThermostatUserInterfaceConfiguration::TemperatureDisplayModeEnum val) +{ + using EnumType = ThermostatUserInterfaceConfiguration::TemperatureDisplayModeEnum; + switch (val) + { + case EnumType::kCelsius: + case EnumType::kFahrenheit: + return val; + default: + return static_cast(2); + } +} + static auto __attribute__((unused)) EnsureKnownEnumValue(ColorControl::ColorLoopAction val) { using EnumType = ColorControl::ColorLoopAction; diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h index 1e4c6fc2526094..09296a46c2d8ca 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h @@ -3075,7 +3075,48 @@ enum class WindBitmap : uint8_t }; } // namespace FanControl -namespace ThermostatUserInterfaceConfiguration {} // namespace ThermostatUserInterfaceConfiguration +namespace ThermostatUserInterfaceConfiguration { + +// Enum for KeypadLockoutEnum +enum class KeypadLockoutEnum : uint8_t +{ + kNoLockout = 0x00, + kLockout1 = 0x01, + kLockout2 = 0x02, + kLockout3 = 0x03, + kLockout4 = 0x04, + kLockout5 = 0x05, + // All received enum values that are not listed above will be mapped + // to kUnknownEnumValue. This is a helper enum value that should only + // be used by code to process how it handles receiving and unknown + // enum value. This specific should never be transmitted. + kUnknownEnumValue = 6, +}; + +// Enum for ScheduleProgrammingVisibilityEnum +enum class ScheduleProgrammingVisibilityEnum : uint8_t +{ + kScheduleProgrammingPermitted = 0x00, + kScheduleProgrammingDenied = 0x01, + // All received enum values that are not listed above will be mapped + // to kUnknownEnumValue. This is a helper enum value that should only + // be used by code to process how it handles receiving and unknown + // enum value. This specific should never be transmitted. + kUnknownEnumValue = 2, +}; + +// Enum for TemperatureDisplayModeEnum +enum class TemperatureDisplayModeEnum : uint8_t +{ + kCelsius = 0x00, + kFahrenheit = 0x01, + // All received enum values that are not listed above will be mapped + // to kUnknownEnumValue. This is a helper enum value that should only + // be used by code to process how it handles receiving and unknown + // enum value. This specific should never be transmitted. + kUnknownEnumValue = 2, +}; +} // namespace ThermostatUserInterfaceConfiguration namespace ColorControl { 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 20f866eac71672..fe3f44d048064c 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 @@ -24200,9 +24200,9 @@ namespace Attributes { namespace TemperatureDisplayMode { struct TypeInfo { - using Type = uint8_t; - using DecodableType = uint8_t; - using DecodableArgType = uint8_t; + using Type = chip::app::Clusters::ThermostatUserInterfaceConfiguration::TemperatureDisplayModeEnum; + using DecodableType = chip::app::Clusters::ThermostatUserInterfaceConfiguration::TemperatureDisplayModeEnum; + using DecodableArgType = chip::app::Clusters::ThermostatUserInterfaceConfiguration::TemperatureDisplayModeEnum; static constexpr ClusterId GetClusterId() { return Clusters::ThermostatUserInterfaceConfiguration::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::TemperatureDisplayMode::Id; } @@ -24212,9 +24212,9 @@ struct TypeInfo namespace KeypadLockout { struct TypeInfo { - using Type = uint8_t; - using DecodableType = uint8_t; - using DecodableArgType = uint8_t; + using Type = chip::app::Clusters::ThermostatUserInterfaceConfiguration::KeypadLockoutEnum; + using DecodableType = chip::app::Clusters::ThermostatUserInterfaceConfiguration::KeypadLockoutEnum; + using DecodableArgType = chip::app::Clusters::ThermostatUserInterfaceConfiguration::KeypadLockoutEnum; static constexpr ClusterId GetClusterId() { return Clusters::ThermostatUserInterfaceConfiguration::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::KeypadLockout::Id; } @@ -24224,9 +24224,9 @@ struct TypeInfo namespace ScheduleProgrammingVisibility { struct TypeInfo { - using Type = uint8_t; - using DecodableType = uint8_t; - using DecodableArgType = uint8_t; + using Type = chip::app::Clusters::ThermostatUserInterfaceConfiguration::ScheduleProgrammingVisibilityEnum; + using DecodableType = chip::app::Clusters::ThermostatUserInterfaceConfiguration::ScheduleProgrammingVisibilityEnum; + using DecodableArgType = chip::app::Clusters::ThermostatUserInterfaceConfiguration::ScheduleProgrammingVisibilityEnum; static constexpr ClusterId GetClusterId() { return Clusters::ThermostatUserInterfaceConfiguration::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ScheduleProgrammingVisibility::Id; } @@ -24278,9 +24278,12 @@ struct TypeInfo CHIP_ERROR Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path); - Attributes::TemperatureDisplayMode::TypeInfo::DecodableType temperatureDisplayMode = static_cast(0); - Attributes::KeypadLockout::TypeInfo::DecodableType keypadLockout = static_cast(0); - Attributes::ScheduleProgrammingVisibility::TypeInfo::DecodableType scheduleProgrammingVisibility = static_cast(0); + Attributes::TemperatureDisplayMode::TypeInfo::DecodableType temperatureDisplayMode = + static_cast(0); + Attributes::KeypadLockout::TypeInfo::DecodableType keypadLockout = + static_cast(0); + Attributes::ScheduleProgrammingVisibility::TypeInfo::DecodableType scheduleProgrammingVisibility = + 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 df7731d7a43718..71641c77d24c98 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h @@ -18377,13 +18377,14 @@ void registerClusterThermostatUserInterfaceConfiguration(Commands & commands, Cr make_unique(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig), // make_unique(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig), // make_unique>(Id, credsIssuerConfig), // - make_unique>(Id, "temperature-display-mode", 0, UINT8_MAX, Attributes::TemperatureDisplayMode::Id, - WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>(Id, "keypad-lockout", 0, UINT8_MAX, Attributes::KeypadLockout::Id, - WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>(Id, "schedule-programming-visibility", 0, UINT8_MAX, - Attributes::ScheduleProgrammingVisibility::Id, WriteCommandType::kWrite, - credsIssuerConfig), // + make_unique>( + Id, "temperature-display-mode", 0, UINT8_MAX, Attributes::TemperatureDisplayMode::Id, WriteCommandType::kWrite, + credsIssuerConfig), // + make_unique>( + Id, "keypad-lockout", 0, UINT8_MAX, Attributes::KeypadLockout::Id, WriteCommandType::kWrite, credsIssuerConfig), // + make_unique>( + Id, "schedule-programming-visibility", 0, UINT8_MAX, Attributes::ScheduleProgrammingVisibility::Id, + WriteCommandType::kWrite, 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 7ab7474a42b0d6..62bd8c41261e1e 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp @@ -10673,17 +10673,17 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP switch (path.mAttributeId) { case ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id: { - uint8_t value; + chip::app::Clusters::ThermostatUserInterfaceConfiguration::TemperatureDisplayModeEnum value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("TemperatureDisplayMode", 1, value); } case ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id: { - uint8_t value; + chip::app::Clusters::ThermostatUserInterfaceConfiguration::KeypadLockoutEnum value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("KeypadLockout", 1, value); } case ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id: { - uint8_t value; + chip::app::Clusters::ThermostatUserInterfaceConfiguration::ScheduleProgrammingVisibilityEnum value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ScheduleProgrammingVisibility", 1, value); }