MatterCluster 6 — On/Off

Matter Cluster 6 — On/Off Cluster

Documentation for Matter Cluster 6, including attributes, commands, payload examples, and backend interpretation.

Matter Cluster 6 — On/Off Cluster

Matter Cluster 6, also written as 0x0006, is the On/Off Cluster.
It is used for endpoints that can be switched between ON and OFF.

Cluster Identity

FieldValue
Cluster ID decimal6
Cluster ID hex0x0006
Cluster nameOn/Off

Shadow Path Format

Cluster 6 values in the device shadow usually use this format:

endpoint_id / cluster_id / attribute_id

For Cluster 6:

endpoint_id / 6 / attribute_id

Example:

{
  "1/6/0": true
}

Meaning:

PartMeaning
1Endpoint ID
6On/Off Cluster
0OnOff attribute
trueEndpoint is ON

Main State Attribute

Attribute 0OnOff

Path example:

1/6/0

This attribute stores the current ON/OFF state of the endpoint.

ValueMeaning
trueEndpoint is ON
falseEndpoint is OFF

Example ON state:

{
  "1/6/0": true
}

Example OFF state:

{
  "1/6/0": false
}

Recommended UI mapping:

true  -> ON
false -> OFF

Cluster 6 Commands

Cluster 6 has 6 standard Matter commands.

Decimal IDHex IDCommand nameDescription
00x00OffTurns endpoint OFF
10x01OnTurns endpoint ON
20x02ToggleChanges endpoint to opposite state
640x40OffWithEffectTurns endpoint OFF with an effect
650x41OnWithRecallGlobalSceneTurns endpoint ON and recalls global scene state
660x42OnWithTimedOffTurns endpoint ON for a limited time

AcceptedCommandList

Cluster 6 exposes a metadata attribute called AcceptedCommandList.

In the shadow, it appears as:

endpoint_id / 6 / 65529

Example:

{
  "1/6/65529": [0, 1, 2, 64, 65, 66]
}

This means endpoint 1 supports all 6 standard Cluster 6 commands.

IDCommand
0Off
1On
2Toggle
64OffWithEffect
65OnWithRecallGlobalScene
66OnWithTimedOff

Before sending a Cluster 6 command, check that the command ID exists in endpoint/6/65529.


Bridge Command Payload Format

Your bridge uses this structure:

{
  "message_id": "501",
  "command": "device_command",
  "args": {

    "endpoint_id": 1,
    "cluster_id": 6,
    "command_name": "On",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

For Cluster 6, always use:

{
  "cluster_id": 6
}

Command: Off

Purpose

Turns the endpoint OFF.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameOff

Payload

{
  "message_id": "601",
  "command": "device_command",
  "args": {

    "endpoint_id": 1,
    "cluster_id": 6,
    "command_name": "Off",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

Expected State

{
  "1/6/0": false
}

Command: On

Purpose

Turns the endpoint ON.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameOn

Payload

{
  "message_id": "602",
  "command": "device_command",
  "args": {

    "endpoint_id": 1,
    "cluster_id": 6,
    "command_name": "On",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

Expected State

{
  "1/6/0": true
}

Command: Toggle

Purpose

Changes the endpoint to the opposite state.

Current stateResult after Toggle
true / ONfalse / OFF
false / OFFtrue / ON

Command Identity

FieldValue
Command ID2
Command hex0x02
Command nameToggle

Payload

Bridge Command Example

{
  "message_id": "603",
  "command": "device_command",
  "args": {

    "endpoint_id": 1,
    "cluster_id": 6,
    "command_name": "Toggle",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

Command: OffWithEffect

Purpose

Turns the endpoint OFF using an effect.

This command is usually used for lighting endpoints.

Command Identity

FieldValue
Command ID64
Command hex0x40
Command nameOffWithEffect

Payload

Use the field naming expected by your bridge / python-matter-server.

Payload Fields

FieldDescription
effectIdentifierSelects the off effect type
effectVariantSelects the variant of that effect

Effect Identifiers

ValueNameDescription
0DelayedAllOffDelayed all-off effect
1DyingLightDying-light style effect

Variants for DelayedAllOff

Used when:

{
  "effectIdentifier": 0
}
ValueNameDescription
0DelayedOffFastFadeFast fade to OFF
1NoFadeTurn OFF without fade
2DelayedOffSlowFadeSlow fade to OFF

Variants for DyingLight

Used when:

{
  "effectIdentifier": 1
}
ValueNameDescription
0DyingLightFadeOffDying-light fade-off effect

Bridge Command Example

{
  "message_id": "604",
  "command": "device_command",
  "args": {

    "endpoint_id": 1,
    "cluster_id": 6,
    "command_name": "OffWithEffect",
    "payload": {
      "effectIdentifier": 0,
      "effectVariant": 0
    },
    "timed_request_timeout_ms": 1000
  }
}

Expected Final State

{
  "1/6/0": false
}

Command: OnWithRecallGlobalScene

Purpose

Turns the endpoint ON and recalls global scene state.

Command Identity

FieldValue
Command ID65
Command hex0x41
Command nameOnWithRecallGlobalScene

Payload

{
  "message_id": "605",
  "command": "device_command",
  "args": {

    "endpoint_id": 1,
    "cluster_id": 6,
    "command_name": "OnWithRecallGlobalScene",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

Expected State

{
  "1/6/0": true
}

Command: OnWithTimedOff

Purpose

Turns the endpoint ON for a limited time.

After the timer expires, the endpoint may turn OFF automatically.

Command Identity

FieldValue
Command ID66
Command hex0x42
Command nameOnWithTimedOff

Payload

Use the field naming expected by your bridge / python-matter-server.

Payload Fields

FieldDescription
onOffControlControl flags
onTimeTime endpoint should remain ON
offWaitTimeWait/guard time after turning OFF

onOffControl

ValueDescription
0Normal timed-on command
1Accept command only when endpoint is already ON

For most cases, use:

{
  "onOffControl": 0
}

onTime

onTime is normally expressed in 1/10 second units.

onTimeDuration
101 second
10010 seconds
30030 seconds
60060 seconds
1200120 seconds

offWaitTime

For simple usage:

{
  "offWaitTime": 0
}

Bridge Command Example: Turn ON for 30 seconds

{
  "message_id": "606",
  "command": "device_command",
  "args": {

    "endpoint_id": 1,
    "cluster_id": 6,
    "command_name": "OnWithTimedOff",
    "payload": {
      "onOffControl": 0,
      "onTime": 300,
      "offWaitTime": 0
    },
    "timed_request_timeout_ms": 1000
  }
}

Expected State

Immediately after command:

{
  "1/6/0": true
}

After the timer expires:

{
  "1/6/0": false
}

Other Cluster 6 Attributes

Attribute 16384 / 0x4000GlobalSceneControl

Path example:

1/6/16384

Description:

Controls global scene behavior for the On/Off cluster.

Attribute 16385 / 0x4001OnTime

Path example:

1/6/16385

Description:

Time the endpoint remains ON during timed-on behavior.

Usually related to OnWithTimedOff.


Attribute 16386 / 0x4002OffWaitTime

Path example:

1/6/16386

Description:

Wait/guard time used after timed-off behavior.

Usually related to OnWithTimedOff.


Attribute 16387 / 0x4003StartUpOnOff

Path example:

1/6/16387

Description:

Defines what the endpoint should do after power cycle or reboot.

Possible values:

ValueDescription
0Start OFF
1Start ON
2Toggle from previous state
nullDevice default behavior

Example:

{
  "1/6/16387": 0
}

Meaning:

After power recovery, endpoint 1 should start OFF.

Cluster 6 Metadata Attributes

These are global Matter metadata attributes for Cluster 6.

They describe the cluster itself.

Attribute IDNameDescription
65528GeneratedCommandListCommands this cluster may generate/send
65529AcceptedCommandListCommands this cluster accepts
65531AttributeListAttributes available on this cluster
65532FeatureMapEnabled feature bits
65533ClusterRevisionCluster revision/version

Example:

{
  "1/6/65529": [0, 1, 2, 64, 65, 66]
}

Meaning:

Endpoint 1 accepts all six standard Cluster 6 commands.

Final Summary

Cluster 6 is the Matter On/Off Cluster.

Main state:

endpoint/6/0

Possible values:

true  = ON
false = OFF

Supported command list:

endpoint/6/65529

All standard Cluster 6 commands:

0  = Off
1  = On
2  = Toggle
64 = OffWithEffect
65 = OnWithRecallGlobalScene
66 = OnWithTimedOff

If the shadow has:

{
  "1/6/65529": [0, 1, 2, 64, 65, 66]
}

Then endpoint 1 supports all standard Cluster 6 commands.