Documentation for Matter Cluster 8, including attributes, commands, payload examples, shadow paths, and backend interpretation.
Matter Cluster 8, also written as 0x0008, is the Level Control Cluster.
It is used for endpoints that support level-based control.
For lighting devices, Cluster 8 usually represents brightness / dimming level.
For other device types, it may represent another adjustable level.
| Field | Value |
|---|---|
| Cluster ID decimal | 8 |
| Cluster ID hex | 0x0008 |
| Cluster name | Level Control |
| Full cluster name | Level Control Cluster |
| Matter version | 1.5 |
| Cluster revision | 6 |
| Scope | Endpoint |
| Role | Application |
| Hierarchy | Base |
| PICS code | LVL |
Cluster 8 values in the device shadow usually use this format:
endpoint_id / cluster_id / attribute_id
For Cluster 8:
endpoint_id / 8 / attribute_id
Example:
{
"1/8/0": 113
}Meaning:
| Part | Meaning |
|---|---|
1 |
Endpoint ID |
8 |
Level Control Cluster |
0 |
CurrentLevel attribute |
113 |
Current level value |
Path example:
1/8/0
This attribute stores the current level of the endpoint.
For a dimmable light, this usually means current brightness level.
| Value | Meaning |
|---|---|
0 |
Lowest level / OFF-related level depending on device behavior |
1 |
Minimum lighting level for many Matter lighting devices |
254 |
Maximum standard level |
null |
Current level is unknown or unavailable |
Example:
{
"1/8/0": 113
}Meaning:
Endpoint 1 current level is 113.
Recommended UI mapping for brightness:
brightness_percent = round(CurrentLevel / 254 * 100)
Example:
113 / 254 * 100 = 44.5%
Recommended UI value:
45%
Important:
CurrentLevel is not the same thing as ON/OFF state.
Use Cluster 6 together with Cluster 8:
1/6/0 = OnOff state
1/8/0 = Current level / brightness
Cluster 8 can expose feature bits through the global FeatureMap attribute.
FeatureMap path:
endpoint_id / 8 / 65532
Example:
{
"1/8/65532": 3
}Meaning:
Feature bits 0 and 1 are enabled.
| Bit | Code | Name | Description |
|---|---|---|---|
0 |
OO |
OnOff |
Dependency with the On/Off cluster |
1 |
LT |
Lighting |
Behavior that supports lighting applications |
2 |
FQ |
Frequency |
Supports frequency attributes and behavior |
| FeatureMap value | Enabled features | Meaning |
|---|---|---|
0 |
none | Basic level control |
1 |
OO |
Level control depends on On/Off cluster |
2 |
LT |
Lighting behavior |
3 |
OO + LT |
Common dimmable light behavior |
4 |
FQ |
Frequency-capable device |
Most dimmable Matter lights usually support:
OO + LT
That usually means:
{
"1/8/65532": 3
}Used by:
Move
MoveWithOnOff
| Value | Name | Description |
|---|---|---|
0 |
Up |
Increase the level |
1 |
Down |
Decrease the level |
Used by:
Step
StepWithOnOff
| Value | Name | Description |
|---|---|---|
0 |
Up |
Step level upward |
1 |
Down |
Step level downward |
Used by:
Options attribute
OptionsMask command field
OptionsOverride command field
| Bit | Name | Description |
|---|---|---|
0 |
ExecuteIfOff |
Allows level commands to execute when the endpoint is OFF |
1 |
CoupleColorTempToLevel |
Couples color temperature behavior to level changes |
Path example:
1/8/0
Description:
Current level of the endpoint.
For lighting:
CurrentLevel usually means brightness.
Value range:
MinLevel <= CurrentLevel <= MaxLevel
Typical lighting range:
1..254
Example:
{
"1/8/0": 113
}Meaning:
Endpoint 1 brightness level is 113.
Recommended UI mapping:
113 -> about 45%
Path example:
1/8/1
Description:
Remaining transition time while the endpoint is moving from one level to another.
This is mainly useful when a command uses non-zero transition time.
Example command:
{
"level": 200,
"transitionTime": 50
}Meaning:
Move to level 200 over a transition period.
During transition, the device may report:
{
"1/8/1": 30
}Meaning:
There is still transition time remaining.
For instant transitions:
{
"transitionTime": 0
}RemainingTime is usually 0 or not important.
Path example:
1/8/2
Description:
Minimum supported level for this endpoint.
For lighting devices, this is commonly:
1
For non-lighting level-control devices, it can be:
0
Example:
{
"1/8/2": 1
}Meaning:
Endpoint 1 minimum supported level is 1.
Important practical behavior:
Some lights do not report CurrentLevel = 0.
They may turn OFF through Cluster 6 but keep CurrentLevel at MinLevel = 1.
Example:
{
"1/6/0": false,
"1/8/0": 1
}Meaning:
Light is OFF.
Stored/current brightness level is minimum level 1.
This is normal behavior for many Matter lights.
Path example:
1/8/3
Description:
Maximum supported level for this endpoint.
Default / common value:
254
Example:
{
"1/8/3": 254
}Meaning:
Endpoint 1 maximum level is 254.
Recommended UI mapping:
CurrentLevel / MaxLevel * 100
Example:
127 / 254 * 100 = 50%
Frequency attributes are used only when the FQ feature is supported.
Most regular dimmable lights do not use these attributes.
Path example:
1/8/4
Description:
Current frequency value of a frequency-capable endpoint.
Only used when FeatureMap includes:
FQ
Example:
{
"1/8/4": 60
}Meaning:
Current frequency is 60.
Path example:
1/8/5
Description:
Minimum supported frequency value.
Only used when FeatureMap includes:
FQ
Example:
{
"1/8/5": 20
}Meaning:
Minimum supported frequency is 20.
Path example:
1/8/6
Description:
Maximum supported frequency value.
Only used when FeatureMap includes:
FQ
Example:
{
"1/8/6": 100
}Meaning:
Maximum supported frequency is 100.
Path example:
1/8/15
Description:
Default options controlling how Level Control commands behave.
Options is a bitmap.
| Bit | Name | Description |
|---|---|---|
0 |
ExecuteIfOff |
Allows level commands to execute while endpoint is OFF |
1 |
CoupleColorTempToLevel |
Couples color temperature to level changes |
Example:
{
"1/8/15": 1
}Meaning:
ExecuteIfOff is enabled.
Example:
{
"1/8/15": 0
}Meaning:
No option bits are enabled.
Command-level override fields:
OptionsMask
OptionsOverride
These allow one command to override the default Options behavior.
For most simple bridge commands, use:
{
"optionsMask": 0,
"optionsOverride": 0
}Or omit them if python-matter-server accepts defaults.
These attributes are normally useful for lighting devices and endpoints that combine Cluster 8 with Cluster 6.
Path example:
1/8/16
Description:
Default transition time used when changing between ON and OFF level states.
Example:
{
"1/8/16": 0
}Meaning:
Use immediate transition.
Path example:
1/8/17
Description:
Level value used when the endpoint is turned ON.
Example:
{
"1/8/17": 113
}Meaning:
When endpoint turns ON, it should use level 113.
If OnLevel is null:
{
"1/8/17": null
}Meaning:
Device may restore previous level or use its own default.
Path example:
1/8/18
Description:
Transition time used when moving to ON level.
Example:
{
"1/8/18": 20
}Meaning:
Use transition time 20 when turning ON.
If value is null:
{
"1/8/18": null
}Meaning:
No specific ON transition time is configured.
Path example:
1/8/19
Description:
Transition time used when moving to OFF.
Example:
{
"1/8/19": 20
}Meaning:
Use transition time 20 when turning OFF.
If value is null:
{
"1/8/19": null
}Meaning:
No specific OFF transition time is configured.
Path example:
1/8/20
Description:
Default rate used for Move commands when no command-specific rate is provided.
Example:
{
"1/8/20": 10
}Meaning:
Default continuous move rate is 10.
This is related to commands like:
Move
MoveWithOnOff
Path example:
1/8/16384
Description:
Defines what CurrentLevel should be after power cycle, reboot, or restart.
Usually used by lighting devices.
Example:
{
"1/8/16384": 254
}Meaning:
After startup, endpoint should restore level 254.
Example:
{
"1/8/16384": 113
}Meaning:
After startup, endpoint should restore level 113.
Example:
{
"1/8/16384": null
}Meaning:
Device uses its own startup/default behavior.
Cluster 8 has 9 standard Matter commands.
| Decimal ID | Hex ID | Command name | Description |
|---|---|---|---|
0 |
0x00 |
MoveToLevel |
Move to a specific level |
1 |
0x01 |
Move |
Move level continuously up or down |
2 |
0x02 |
Step |
Change level by a fixed step |
3 |
0x03 |
Stop |
Stop an active level movement |
4 |
0x04 |
MoveToLevelWithOnOff |
Move to level and update On/Off state |
5 |
0x05 |
MoveWithOnOff |
Move continuously and update On/Off behavior |
6 |
0x06 |
StepWithOnOff |
Step level and update On/Off behavior |
7 |
0x07 |
StopWithOnOff |
Stop movement with On/Off behavior |
8 |
0x08 |
MoveToClosestFrequency |
Move to closest supported frequency |
Cluster 8 exposes a metadata attribute called AcceptedCommandList.
In the shadow, it appears as:
endpoint_id / 8 / 65529
Example:
{
"1/8/65529": [0, 1, 2, 3, 4, 5, 6, 7]
}This means endpoint 1 supports the common Level Control commands except frequency command 8.
Example with frequency support:
{
"1/8/65529": [0, 1, 2, 3, 4, 5, 6, 7, 8]
}This means endpoint 1 supports all standard Cluster 8 commands, including MoveToClosestFrequency.
| ID | Command |
|---|---|
0 |
MoveToLevel |
1 |
Move |
2 |
Step |
3 |
Stop |
4 |
MoveToLevelWithOnOff |
5 |
MoveWithOnOff |
6 |
StepWithOnOff |
7 |
StopWithOnOff |
8 |
MoveToClosestFrequency |
Before sending a Cluster 8 command, check that the command ID exists in:
endpoint/8/65529
Your bridge uses this structure:
{
"message_id": "501",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "MoveToLevelWithOnOff",
"payload": {
"level": 113,
"transitionTime": 0
},
"timed_request_timeout_ms": 1000
}
}For Cluster 8, always use:
{
"cluster_id": 8
}For direct Matter devices, use:
{
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "MoveToLevelWithOnOff",
"payload": {
"level": 113,
"transitionTime": 0
}
}For bridged Zigbee devices through your Matter bridge, the backend may omit node_id and sometimes omit endpoint_id depending on how the MatterBridge resolves the device.
Moves the endpoint to a specific level.
This command changes the level but does not necessarily update the On/Off state.
For user-facing light brightness control, MoveToLevelWithOnOff is usually better.
| Field | Value |
|---|---|
| Command ID | 0 |
| Command hex | 0x00 |
| Command name | MoveToLevel |
| Field | Description |
|---|---|
level |
Target level, usually 0..254 |
transitionTime |
Time used to move to target level |
optionsMask |
Selects which option bits to override |
optionsOverride |
Override values for selected option bits |
{
"message_id": "801",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "MoveToLevel",
"payload": {
"level": 113,
"transitionTime": 0
},
"timed_request_timeout_ms": 1000
}
}{
"1/8/0": 113
}Important:
This command may not turn the light ON if the endpoint is currently OFF.
Use MoveToLevelWithOnOff if ON/OFF state should follow the level.
Starts moving the level continuously up or down.
The movement continues until the endpoint reaches the minimum/maximum level or receives a stop command.
| Field | Value |
|---|---|
| Command ID | 1 |
| Command hex | 0x01 |
| Command name | Move |
| Field | Description |
|---|---|
moveMode |
Direction: 0 = Up, 1 = Down |
rate |
Rate of level movement |
optionsMask |
Selects which option bits to override |
optionsOverride |
Override values for selected option bits |
| Value | Name | Description |
|---|---|---|
0 |
Up |
Increase the level |
1 |
Down |
Decrease the level |
{
"message_id": "802",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "Move",
"payload": {
"moveMode": 0,
"rate": 10
},
"timed_request_timeout_ms": 1000
}
}{
"message_id": "803",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "Move",
"payload": {
"moveMode": 1,
"rate": 10
},
"timed_request_timeout_ms": 1000
}
}While moving, the device should report changing level values:
{
"1/8/0": 120
}Then:
{
"1/8/0": 130
}To stop movement, send:
Stop
Changes the endpoint level by a fixed step amount.
This is useful for brightness up / brightness down buttons.
| Field | Value |
|---|---|
| Command ID | 2 |
| Command hex | 0x02 |
| Command name | Step |
| Field | Description |
|---|---|
stepMode |
Direction: 0 = Up, 1 = Down |
stepSize |
Amount to increase or decrease |
transitionTime |
Time used for this step |
optionsMask |
Selects which option bits to override |
optionsOverride |
Override values for selected option bits |
| Value | Name | Description |
|---|---|---|
0 |
Up |
Increase level by stepSize |
1 |
Down |
Decrease level by stepSize |
{
"message_id": "804",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "Step",
"payload": {
"stepMode": 0,
"stepSize": 20,
"transitionTime": 0
},
"timed_request_timeout_ms": 1000
}
}If current level is:
{
"1/8/0": 113
}Expected new level:
{
"1/8/0": 133
}{
"message_id": "805",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "Step",
"payload": {
"stepMode": 1,
"stepSize": 20,
"transitionTime": 0
},
"timed_request_timeout_ms": 1000
}
}If current level is:
{
"1/8/0": 113
}Expected new level:
{
"1/8/0": 93
}Stops an active level movement.
This is usually used after Move.
| Field | Value |
|---|---|
| Command ID | 3 |
| Command hex | 0x03 |
| Command name | Stop |
| Field | Description |
|---|---|
optionsMask |
Selects which option bits to override |
optionsOverride |
Override values for selected option bits |
{
"message_id": "806",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "Stop",
"payload": {},
"timed_request_timeout_ms": 1000
}
}The level remains at the current value when movement stops.
Example:
{
"1/8/0": 147
}Moves the endpoint to a specific level and updates the On/Off state.
This is the recommended command for user-facing dimmable light control.
| Field | Value |
|---|---|
| Command ID | 4 |
| Command hex | 0x04 |
| Command name | MoveToLevelWithOnOff |
This command uses the same base payload behavior as MoveToLevel.
| Field | Description |
|---|---|
level |
Target level, usually 0..254 |
transitionTime |
Time used to move to target level |
optionsMask |
Optional options mask if supported by bridge/server |
optionsOverride |
Optional options override if supported by bridge/server |
{
"message_id": "807",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "MoveToLevelWithOnOff",
"payload": {
"level": 0,
"transitionTime": 0
},
"timed_request_timeout_ms": 1000
}
}{
"1/6/0": false
}Cluster 8 may report:
{
"1/8/0": 0
}or:
{
"1/8/0": 1
}Both can be normal depending on MinLevel and device behavior.
{
"message_id": "808",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "MoveToLevelWithOnOff",
"payload": {
"level": 113,
"transitionTime": 0
},
"timed_request_timeout_ms": 1000
}
}{
"1/6/0": true,
"1/8/0": 113
}Meaning:
Endpoint is ON.
Brightness level is 113.
Approximate UI brightness is 45%.
Starts moving the level continuously and updates On/Off behavior.
Use this when a brightness button is pressed and held.
| Field | Value |
|---|---|
| Command ID | 5 |
| Command hex | 0x05 |
| Command name | MoveWithOnOff |
This command uses the same base payload behavior as Move.
| Field | Description |
|---|---|
moveMode |
Direction: 0 = Up, 1 = Down |
rate |
Rate of level movement |
optionsMask |
Optional options mask |
optionsOverride |
Optional options override |
{
"message_id": "809",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "MoveWithOnOff",
"payload": {
"moveMode": 0,
"rate": 10
},
"timed_request_timeout_ms": 1000
}
}{
"message_id": "810",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "MoveWithOnOff",
"payload": {
"moveMode": 1,
"rate": 10
},
"timed_request_timeout_ms": 1000
}
}The endpoint reports changing values:
{
"1/8/0": 140
}When moving up, the endpoint should usually be ON:
{
"1/6/0": true
}Changes level by a fixed step and updates On/Off behavior.
This is recommended for brightness up/down buttons.
| Field | Value |
|---|---|
| Command ID | 6 |
| Command hex | 0x06 |
| Command name | StepWithOnOff |
This command uses the same base payload behavior as Step.
| Field | Description |
|---|---|
stepMode |
Direction: 0 = Up, 1 = Down |
stepSize |
Amount to increase or decrease |
transitionTime |
Time used for the step |
optionsMask |
Optional options mask |
optionsOverride |
Optional options override |
{
"message_id": "811",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "StepWithOnOff",
"payload": {
"stepMode": 0,
"stepSize": 25,
"transitionTime": 0
},
"timed_request_timeout_ms": 1000
}
}{
"message_id": "812",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "StepWithOnOff",
"payload": {
"stepMode": 1,
"stepSize": 25,
"transitionTime": 0
},
"timed_request_timeout_ms": 1000
}
}Example before:
{
"1/6/0": true,
"1/8/0": 113
}After StepWithOnOff up by 25:
{
"1/6/0": true,
"1/8/0": 138
}After StepWithOnOff down by 25:
{
"1/6/0": true,
"1/8/0": 88
}If stepping down reaches the minimum/off behavior, the endpoint may report:
{
"1/6/0": false,
"1/8/0": 1
}Stops active level movement while preserving On/Off-coupled behavior.
Usually used after MoveWithOnOff.
| Field | Value |
|---|---|
| Command ID | 7 |
| Command hex | 0x07 |
| Command name | StopWithOnOff |
This command uses the same base payload behavior as Stop.
| Field | Description |
|---|---|
optionsMask |
Optional options mask |
optionsOverride |
Optional options override |
{
"message_id": "813",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "StopWithOnOff",
"payload": {},
"timed_request_timeout_ms": 1000
}
}The endpoint stops at the current level.
Example:
{
"1/6/0": true,
"1/8/0": 147
}Moves the endpoint to the closest supported frequency.
This command is only used when the endpoint supports the FQ feature.
Most standard dimmable lights do not support this command.
| Field | Value |
|---|---|
| Command ID | 8 |
| Command hex | 0x08 |
| Command name | MoveToClosestFrequency |
| Field | Description |
|---|---|
frequency |
Requested target frequency |
{
"message_id": "814",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "MoveToClosestFrequency",
"payload": {
"frequency": 60
},
"timed_request_timeout_ms": 1000
}
}If supported, endpoint may report:
{
"1/8/4": 60
}Meaning:
CurrentFrequency is 60.
If the exact requested frequency is not supported, the device should move to the closest supported value.
Path example:
1/8/65528
Description:
Commands this cluster may generate/send.
Example:
{
"1/8/65528": []
}Path example:
1/8/65529
Description:
Commands this cluster accepts.
Example:
{
"1/8/65529": [0, 1, 2, 3, 4, 5, 6, 7]
}Meaning:
Endpoint 1 accepts standard Level Control commands except frequency command.
Path example:
1/8/65531
Description:
Attributes available on this cluster for this endpoint.
Example:
{
"1/8/65531": [0, 1, 2, 3, 15, 17, 65528, 65529, 65531, 65532, 65533]
}Meaning:
Endpoint 1 exposes CurrentLevel, RemainingTime, MinLevel, MaxLevel, Options, OnLevel, and global metadata attributes.
Path example:
1/8/65532
Description:
Enabled feature bits for Cluster 8.
Example:
{
"1/8/65532": 3
}Meaning:
OO + LT features are enabled.
Feature bits:
| Bit | Code | Name |
|---|---|---|
0 |
OO |
OnOff |
1 |
LT |
Lighting |
2 |
FQ |
Frequency |
Path example:
1/8/65533
Description:
Cluster revision/version.
For Matter 1.5 Level Control:
{
"1/8/65533": 6
}Meaning:
Endpoint 1 implements Level Control cluster revision 6.
When shadow contains:
{
"1/6/0": true,
"1/8/0": 113
}Backend/UI should interpret:
Device is ON.
Brightness level is 113.
Brightness percent is about 45%.
Recommended normalized state:
{
"available": true,
"on": true,
"level": 113,
"brightness": 45
}When shadow contains:
{
"1/6/0": false,
"1/8/0": 113
}Backend/UI should interpret:
Device is OFF.
Previous/stored brightness level is 113.
Recommended normalized state:
{
"available": true,
"on": false,
"level": 113,
"brightness": 45
}UI should show:
OFF
not:
45% ON
because Cluster 6 OnOff state is false.
When shadow contains:
{
"1/6/0": false,
"1/8/0": 1
}Backend/UI should interpret:
Device is OFF.
Level value is at minimum level.
Recommended normalized state:
{
"available": true,
"on": false,
"level": 1,
"brightness": 0
}For UI, when 1/6/0 is false, show brightness as OFF even if 1/8/0 is 1.
Example command:
{
"cluster_id": 8,
"command_name": "MoveToLevelWithOnOff",
"payload": {
"level": 0,
"transitionTime": 0
}
}Expected Matter attribute updates:
{
"1/6/0": false,
"1/8/0": 1
}Meaning:
Endpoint turned OFF.
CurrentLevel reported as minimum level 1.
Example command:
{
"cluster_id": 8,
"command_name": "MoveToLevelWithOnOff",
"payload": {
"level": 113,
"transitionTime": 0
}
}Expected Matter attribute updates:
{
"1/6/0": true,
"1/8/0": 113
}Meaning:
Endpoint turned ON.
Brightness level changed to 113.
endpoint/6/0
Values:
true = ON
false = OFF
endpoint/8/0
Values:
0..254
Recommended formula:
brightness_percent = round(CurrentLevel / 254 * 100)
Examples:
| CurrentLevel | Approx UI brightness |
|---|---|
1 |
0% or minimum |
64 |
25% |
113 |
45% |
127 |
50% |
191 |
75% |
254 |
100% |
If:
{
"1/6/0": false,
"1/8/0": 113
}UI should show:
OFF
Brightness level can still be stored internally as:
113
Use:
{
"message_id": "901",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "MoveToLevelWithOnOff",
"payload": {
"level": 0,
"transitionTime": 0
},
"timed_request_timeout_ms": 1000
}
}Expected final state:
{
"1/6/0": false
}Use:
{
"message_id": "902",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "MoveToLevelWithOnOff",
"payload": {
"level": 113,
"transitionTime": 0
},
"timed_request_timeout_ms": 1000
}
}Expected final state:
{
"1/6/0": true,
"1/8/0": 113
}When user moves slider to 45%:
level = round(45 / 100 * 254)
level = 114
Send:
{
"message_id": "903",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 8,
"command_name": "MoveToLevelWithOnOff",
"payload": {
"level": 114,
"transitionTime": 0
},
"timed_request_timeout_ms": 1000
}
}Expected state:
{
"1/6/0": true,
"1/8/0": 114
}These are global Matter metadata attributes for Cluster 8.
They describe the cluster itself.
| Attribute ID | Name | Description |
|---|---|---|
65528 |
GeneratedCommandList |
Commands this cluster may generate/send |
65529 |
AcceptedCommandList |
Commands this cluster accepts |
65531 |
AttributeList |
Attributes available on this cluster |
65532 |
FeatureMap |
Enabled feature bits |
65533 |
ClusterRevision |
Cluster revision/version |
Example:
{
"1/8/65529": [0, 1, 2, 3, 4, 5, 6, 7]
}Meaning:
Endpoint 1 accepts common Level Control commands.
Example:
{
"1/8/65532": 3
}Meaning:
Endpoint 1 supports OnOff + Lighting features.
Example:
{
"1/8/65533": 6
}Meaning:
Endpoint 1 implements Cluster 8 revision 6.
Cluster 8 is the Matter Level Control Cluster.
Main state:
endpoint/8/0
Main meaning:
CurrentLevel / brightness / dimming level
Common level range:
0..254
For most lighting devices:
1 = minimum level
254 = maximum level
Most important command:
MoveToLevelWithOnOff
Recommended command for brightness control:
{
"cluster_id": 8,
"command_name": "MoveToLevelWithOnOff",
"payload": {
"level": 113,
"transitionTime": 0
}
}Supported command list:
endpoint/8/65529
All standard Cluster 8 commands:
0 = MoveToLevel
1 = Move
2 = Step
3 = Stop
4 = MoveToLevelWithOnOff
5 = MoveWithOnOff
6 = StepWithOnOff
7 = StopWithOnOff
8 = MoveToClosestFrequency
If the shadow has:
{
"1/8/65529": [0, 1, 2, 3, 4, 5, 6, 7]
}Then endpoint 1 supports common Level Control commands.
If the shadow has:
{
"1/8/65529": [0, 1, 2, 3, 4, 5, 6, 7, 8]
}Then endpoint 1 supports all standard Cluster 8 commands, including frequency control.
For UI, always combine:
endpoint/6/0 = ON/OFF state
endpoint/8/0 = brightness/level state
Recommended interpretation:
If endpoint/6/0 is false, show OFF.
If endpoint/6/0 is true, show brightness from endpoint/8/0.