SmartThingsEdgeDrivers icon indicating copy to clipboard operation
SmartThingsEdgeDrivers copied to clipboard

Missing UI for Temperature Level Control in Matter Refrigerator and Freezer (Profile: TL)

Open Mbadra96 opened this issue 1 year ago • 2 comments

What is Wrong:

  • For profile (TL), both refrigerator and freezer are configured with TemperatureLevelControl.
  • However, no control UI is displayed for adjusting the temperature level for refrigerator (But works well for the freezer) in the SmartThings app.
  • This affects the user experience as the temperature levels cannot be selected or modified through the app interface.

Steps to Reproduce:

  1. Commission a refrigerator or freezer device with profile (TL) on the SmartThings app.
  2. Open the device controls for TemperatureLevelControl.
  3. Observe that no UI is available for selecting or modifying temperature levels.

Expected Behavior:

  • The UI should provide a slider or selection control for TemperatureLevelControl to allow users to adjust temperature levels within the supported range.

Additional Information:

  • Device Details:
    • Controller: ESP32-S3
    • Matter Version: 1.4
    • IDF Version: 5.2.3
  • Logs: Attached below are logs from the ESP-Matter setup and exported JSON attributes from the SmartThings app showing the missing UI issue.

Relevant Logs:

For setting the temp level for the freezer

I (549763) esp_matter_command: Received command 0x00000000 for endpoint 0x0003's cluster 0x00000056
I (549773) esp_matter_attribute: ********** R : Endpoint 0x0003's Cluster 0x00000056's Attribute 0x0000FFFC is 2 **********
AppSupportedTemperatureLevelsDelegate::Size endpoint 3
AppSupportedTemperatureLevelsDelegate::Size Size of endpoint 3 is 11
I (549773) esp_matter_attribute: ********** R : Endpoint 0x0003's Cluster 0x00000056's Attribute 0x00000004 is 6 **********

Exported JSON Attributes: From my.smartthings

[
    {
        "component": "freezer",
        "capability": "mode",
        "attribute": "mode",
        "value": "Normal",
        "timestamp": "2024-12-11T20:19:36.059Z"
    },
    {
        "component": "freezer",
        "capability": "mode",
        "attribute": "supportedArguments",
        "value": [
            "Normal",
            "Rapid Freeze"
        ],
        "timestamp": "2024-12-11T20:19:35.780Z"
    },
    {
        "component": "freezer",
        "capability": "mode",
        "attribute": "supportedModes",
        "value": [
            "Normal",
            "Rapid Freeze"
        ],
        "timestamp": "2024-12-11T20:19:35.586Z"
    },
    {
        "component": "freezer",
        "capability": "temperatureLevel",
        "attribute": "supportedTemperatureLevels",
        "value": [
            "-14.0°C",
            "-15.0°C",
            "-16.0°C",
            "-17.0°C",
            "-18.0°C",
            "-19.0°C",
            "-20.0°C",
            "-21.0°C",
            "-22.0°C",
            "-23.0°C",
            "-24.0°C"
        ],
        "timestamp": "2024-12-11T20:19:34.176Z"
    },
    {
        "component": "freezer",
        "capability": "temperatureLevel",
        "attribute": "temperatureLevel",
        "value": "-20.0°C",
        "timestamp": "2024-12-11T20:27:44.825Z"
    },
    {
        "component": "freezer",
        "capability": "temperatureMeasurement",
        "attribute": "temperature",
        "value": 5,
        "timestamp": "2024-12-11T20:19:33.529Z"
    },
    {
        "component": "freezer",
        "capability": "temperatureMeasurement",
        "attribute": "temperatureRange",
        "value": null
    },
    {
        "component": "main",
        "capability": "contactSensor",
        "attribute": "contact",
        "value": "closed",
        "timestamp": "2024-12-11T20:19:33.834Z"
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "availableVersion",
        "value": "v1.0 (1)",
        "timestamp": "2024-12-11T20:19:30.167Z"
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "currentVersion",
        "value": "v1.0 (1)",
        "timestamp": "2024-12-11T20:19:30.203Z"
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "lastUpdateStatus",
        "value": null
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "lastUpdateStatusReason",
        "value": null
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "lastUpdateTime",
        "value": null
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "state",
        "value": "normalOperation",
        "timestamp": "2024-12-11T20:19:30.172Z"
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "supportedCommands",
        "value": null
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "updateAvailable",
        "value": false,
        "timestamp": "2024-12-11T20:19:30.167Z"
    },
    {
        "component": "main",
        "capability": "mode",
        "attribute": "mode",
        "value": "Normal",
        "timestamp": "2024-12-11T20:19:35.416Z"
    },
    {
        "component": "main",
        "capability": "mode",
        "attribute": "supportedArguments",
        "value": [
            "Normal",
            "Holiday"
        ],
        "timestamp": "2024-12-11T20:19:35.074Z"
    },
    {
        "component": "main",
        "capability": "mode",
        "attribute": "supportedModes",
        "value": [
            "Normal",
            "Holiday"
        ],
        "timestamp": "2024-12-11T20:19:35.020Z"
    },
    {
        "component": "refrigerator",
        "capability": "mode",
        "attribute": "mode",
        "value": "Normal",
        "timestamp": "2024-12-11T20:19:34.583Z"
    },
    {
        "component": "refrigerator",
        "capability": "mode",
        "attribute": "supportedArguments",
        "value": [
            "Normal",
            "Rapid Cool"
        ],
        "timestamp": "2024-12-11T20:19:34.580Z"
    },
    {
        "component": "refrigerator",
        "capability": "mode",
        "attribute": "supportedModes",
        "value": [
            "Normal",
            "Rapid Cool"
        ],
        "timestamp": "2024-12-11T20:19:34.581Z"
    },
    {
        "component": "refrigerator",
        "capability": "temperatureLevel",
        "attribute": "supportedTemperatureLevels",
        "value": null
    },
    {
        "component": "refrigerator",
        "capability": "temperatureLevel",
        "attribute": "temperatureLevel",
        "value": null
    },
    {
        "component": "refrigerator",
        "capability": "temperatureMeasurement",
        "attribute": "temperature",
        "value": 5,
        "timestamp": "2024-12-11T20:19:33.355Z"
    },
    {
        "component": "refrigerator",
        "capability": "temperatureMeasurement",
        "attribute": "temperatureRange",
        "value": null
    }
]

Attachments:

  1. Screenshots showing the missing UI for TemperatureLevelControl.

WhatsApp Image 2024-12-11 at 22 10 00_fd99528c


Please let us know how to resolve this issue or if additional information is required. Thank you!

Mbadra96 avatar Dec 11 '24 20:12 Mbadra96

@Mbadra96 Thank you for checking the problem and contacting us. This is a problem caused by mismatching the settings between the profile and the device-configuration. I will solve it as soon as possible.

HunsupJung avatar Dec 20 '24 04:12 HunsupJung

@HunsupJung Ok thank you

Mbadra96 avatar Dec 21 '24 15:12 Mbadra96

Hello, The step attribute within the Temperature Control Cluster is read correctly by the CHIP stack as it should be 1 degrees but 0.1 degrees interval was assigned. (as evidenced in the logs and feature map), but: UI Rendering: The step value isn’t being displayed in the UI correctly it was set to (0.1 C) JSON Export: The step field is not assigned correctly in the exported attributes JSON.

Step Attribute

[1746888275.811] [92919:3686079:chip] [DMG] {
[1746888275.811] [92919:3686079:chip] [DMG] 	AttributeReportIBs =
[1746888275.811] [92919:3686079:chip] [DMG] 	[
[1746888275.811] [92919:3686079:chip] [DMG] 		AttributeReportIB =
[1746888275.811] [92919:3686079:chip] [DMG] 		{
[1746888275.811] [92919:3686079:chip] [DMG] 			AttributeDataIB =
[1746888275.811] [92919:3686079:chip] [DMG] 			{
[1746888275.811] [92919:3686079:chip] [DMG] 				DataVersion = 0x7095a8c9,
[1746888275.811] [92919:3686079:chip] [DMG] 				AttributePathIB =
[1746888275.811] [92919:3686079:chip] [DMG] 				{
[1746888275.811] [92919:3686079:chip] [DMG] 					Endpoint = 0x2,
[1746888275.811] [92919:3686079:chip] [DMG] 					Cluster = 0x56,
[1746888275.811] [92919:3686079:chip] [DMG] 					Attribute = 0x0000_0003,
[1746888275.811] [92919:3686079:chip] [DMG] 				}
[1746888275.811] [92919:3686079:chip] [DMG] 					
[1746888275.811] [92919:3686079:chip] [DMG] 				Data = 100 (signed), 
[1746888275.811] [92919:3686079:chip] [DMG] 			},
[1746888275.811] [92919:3686079:chip] [DMG] 			
[1746888275.811] [92919:3686079:chip] [DMG] 		},
[1746888275.811] [92919:3686079:chip] [DMG] 		
[1746888275.811] [92919:3686079:chip] [DMG] 	],

Feature Map

[1746889255.554] [92919:3686782:chip] [DMG] 	AttributeReportIBs =
[1746889255.554] [92919:3686782:chip] [DMG] 	[
[1746889255.554] [92919:3686782:chip] [DMG] 		AttributeReportIB =
[1746889255.554] [92919:3686782:chip] [DMG] 		{
[1746889255.554] [92919:3686782:chip] [DMG] 			AttributeDataIB =
[1746889255.554] [92919:3686782:chip] [DMG] 			{
[1746889255.554] [92919:3686782:chip] [DMG] 				DataVersion = 0x7095a8c9,
[1746889255.555] [92919:3686782:chip] [DMG] 				AttributePathIB =
[1746889255.555] [92919:3686782:chip] [DMG] 				{
[1746889255.555] [92919:3686782:chip] [DMG] 					Endpoint = 0x2,
[1746889255.555] [92919:3686782:chip] [DMG] 					Cluster = 0x56,
[1746889255.555] [92919:3686782:chip] [DMG] 					Attribute = 0x0000_FFFC,
[1746889255.555] [92919:3686782:chip] [DMG] 				}
[1746889255.555] [92919:3686782:chip] [DMG] 					
[1746889255.555] [92919:3686782:chip] [DMG] 				Data = 5 (unsigned), 
[1746889255.555] [92919:3686782:chip] [DMG] 			},
[1746889255.555] [92919:3686782:chip] [DMG] 			
[1746889255.555] [92919:3686782:chip] [DMG] 		},
[1746889255.555] [92919:3686782:chip] [DMG] 		
[1746889255.555] [92919:3686782:chip] [DMG] 	],
[1746889255.555] [92919:3686782:chip] [DMG] 	
[1746889255.555] [92919:3686782:chip] [DMG] 	SuppressResponse = true, 
[1746889255.555] [92919:3686782:chip] [DMG] 	InteractionModelRevision = 12
[1746889255.555] [92919:3686782:chip] [DMG] }
[
    {
        "component": "freezer",
        "capability": "mode",
        "attribute": "mode",
        "value": "Normal",
        "timestamp": "2025-05-10T13:50:34.311Z"
    },
    {
        "component": "freezer",
        "capability": "mode",
        "attribute": "supportedArguments",
        "value": [
            "Normal",
            "Rapid Freeze"
        ],
        "timestamp": "2025-05-10T14:38:51.532Z"
    },
    {
        "component": "freezer",
        "capability": "mode",
        "attribute": "supportedModes",
        "value": [
            "Normal",
            "Rapid Freeze"
        ],
        "timestamp": "2025-05-10T14:38:51.531Z"
    },
    {
        "component": "freezer",
        "capability": "temperatureLevel",
        "attribute": "supportedTemperatureLevels",
        "value": [
            "-14.0°",
            "-15.0°",
            "-16.0°",
            "-17.0°",
            "-18.0°",
            "-19.0°",
            "-20.0°",
            "-21.0°",
            "-22.0°",
            "-23.0°",
            "-24.0°"
        ],
        "timestamp": "2025-05-10T14:38:51.354Z"
    },
    {
        "component": "freezer",
        "capability": "temperatureLevel",
        "attribute": "temperatureLevel",
        "value": "-14.0°",
        "timestamp": "2025-05-10T14:38:51.384Z"
    },
    {
        "component": "freezer",
        "capability": "temperatureMeasurement",
        "attribute": "temperature",
        "value": 5,
        "timestamp": "2025-05-10T14:38:51.350Z"
    },
    {
        "component": "freezer",
        "capability": "temperatureMeasurement",
        "attribute": "temperatureRange",
        "value": null
    },
    {
        "component": "main",
        "capability": "contactSensor",
        "attribute": "contact",
        "value": "closed",
        "timestamp": "2025-05-10T14:38:51.350Z"
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "availableVersion",
        "value": "1.0 (1)",
        "timestamp": "2025-05-07T18:04:39.818Z"
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "currentVersion",
        "value": "1.0 (1)",
        "timestamp": "2025-05-07T18:04:39.876Z"
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "estimatedTimeRemaining",
        "value": null
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "imageTransferProgress",
        "value": null
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "lastUpdateStatus",
        "value": null
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "lastUpdateStatusReason",
        "value": null
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "lastUpdateTime",
        "value": null
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "state",
        "value": "normalOperation",
        "timestamp": "2025-05-07T18:04:39.816Z"
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "supportedCommands",
        "value": null
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "supportsProgressReports",
        "value": null
    },
    {
        "component": "main",
        "capability": "firmwareUpdate",
        "attribute": "updateAvailable",
        "value": false,
        "timestamp": "2025-05-07T18:04:39.816Z"
    },
    {
        "component": "main",
        "capability": "mode",
        "attribute": "mode",
        "value": "Holiday",
        "timestamp": "2025-05-10T14:38:51.440Z"
    },
    {
        "component": "main",
        "capability": "mode",
        "attribute": "supportedArguments",
        "value": [
            "Normal",
            "Holiday"
        ],
        "timestamp": "2025-05-10T14:38:51.419Z"
    },
    {
        "component": "main",
        "capability": "mode",
        "attribute": "supportedModes",
        "value": [
            "Normal",
            "Holiday"
        ],
        "timestamp": "2025-05-10T14:38:51.420Z"
    },
    {
        "component": "refrigerator",
        "capability": "mode",
        "attribute": "mode",
        "value": "Rapid Cool",
        "timestamp": "2025-05-10T14:38:51.443Z"
    },
    {
        "component": "refrigerator",
        "capability": "mode",
        "attribute": "supportedArguments",
        "value": [
            "Normal",
            "Rapid Cool"
        ],
        "timestamp": "2025-05-10T14:38:51.440Z"
    },
    {
        "component": "refrigerator",
        "capability": "mode",
        "attribute": "supportedModes",
        "value": [
            "Normal",
            "Rapid Cool"
        ],
        "timestamp": "2025-05-10T14:38:51.439Z"
    },
    {
        "component": "refrigerator",
        "capability": "temperatureMeasurement",
        "attribute": "temperature",
        "value": 5,
        "timestamp": "2025-05-10T14:38:51.306Z"
    },
    {
        "component": "refrigerator",
        "capability": "temperatureMeasurement",
        "attribute": "temperatureRange",
        "value": null
    },
    {
        "component": "refrigerator",
        "capability": "temperatureSetpoint",
        "attribute": "temperatureSetpoint",
        "value": 5,
        "timestamp": "2025-05-10T14:38:51.419Z"
    },
    {
        "component": "refrigerator",
        "capability": "temperatureSetpoint",
        "attribute": "temperatureSetpointRange",
        "value": {
            "minimum": 2,
            "maximum": 8,
            "step": 0.1
        },
        "timestamp": "2025-05-10T14:38:51.383Z"
    }
]

Mbadra96 avatar May 10 '25 15:05 Mbadra96

Any updates

markgergis avatar Jun 08 '25 19:06 markgergis

@HunsupJung is this issue getting fixed soon?

abdelrahman-osama avatar Nov 07 '25 12:11 abdelrahman-osama