Identify Cluster
Cluster ID: 0x0003 |
Endpoint: Typically on Endpoint 1 (application endpoint); also commonly found on Endpoint 0 (Root)
Identify triggers a visual or audible indicator on the device (flashing light, beeping, screen blinking, etc.) to help users locate a specific device among many. This Cluster is very small — only 2 attributes and 2 commands — but nearly every Matter device is required to support it.
After commissioning, not sure which light was just added? Send an Identify command to make it flash for a few seconds. During debugging, need to confirm whether the app is connected to the right device? Use TriggerEffect to get clear feedback from the device. This is the simplest way to answer "where is this device?"
Attribute Overview
Identify has only two attributes, both mandatory. Click an attribute ID to jump to its detailed description.
| ID | Name | Type | Access | Description |
|---|---|---|---|---|
0x00 |
IdentifyTime | uint16 | Read/Write | Remaining identify time (seconds) |
0x01 |
IdentifyType | enum8 | Read-only | The identify method supported by the device |
IdentifyTime (Remaining Identify Time)
The remaining seconds of the current identify effect. Writing a non-zero value immediately starts identification; the device counts down by one each second until it reaches 0 and stops.
Writing 0 immediately stops any ongoing identification.
Writing IdentifyTime = 10 directly and sending the Identify(IdentifyTime: 10) command produce the same result.
The command approach is more common because it is semantically clearer, and some SDKs provide better wrappers for commands.
IdentifyType (Identify Method)
A read-only attribute that describes which method the device uses for identification. Different devices have different hardware capabilities — a light bulb flashes its light, a door lock may beep, and a device with a screen may blink its display.
IdentifyTypeEnum Enum Values
Commands
The Identify Cluster has two commands, both sent from Client to Server (i.e., from the app to the device). No Timed Interaction is required and there are no access restrictions — they can be sent directly.
| ID | Name | Description |
|---|---|---|
0x00 |
Identify | Start identification; the device flashes for the specified number of seconds |
0x40 |
TriggerEffect | Trigger a specific identify effect |
Identify — Start Identification (0x00)
Tells the device to begin identification for the specified number of seconds. The device chooses the identify method based on its IdentifyType capability (flashing light, beeping, etc.).
After receiving the command, the IdentifyTime attribute is set to the provided value and counts down to 0 each second.
| Parameter | Type | Required | Description |
|---|---|---|---|
| IdentifyTime | uint16 | Yes | Identify duration in seconds. Pass 0 to stop immediately |
Request example:
{
"invokeRequests": [{
"commandPath": {
"endpointId": 1,
"clusterId": "0x0003",
"commandId": "0x00" // Identify
},
"commandFields": {
"0": 10 // IdentifyTime = 10 seconds
}
}]
}
TriggerEffect — Trigger Effect (0x40)
Triggers a predefined identify effect. Unlike the Identify command, TriggerEffect specifies an effect type rather than a duration — each effect has its own fixed duration and behavior.
| Parameter | Type | Required | Description |
|---|---|---|---|
| EffectIdentifier | enum8 | Yes | The effect type to trigger (see enum values below) |
| EffectVariant | enum8 | Yes | Effect variant; currently only 0 = Default |
EffectIdentifierEnum Enum Values
EffectVariantEnum Enum Values
Request example (trigger a breathe effect):
{
"invokeRequests": [{
"commandPath": {
"endpointId": 1,
"clusterId": "0x0003",
"commandId": "0x40" // TriggerEffect
},
"commandFields": {
"0": 1, // EffectIdentifier = Breathe
"1": 0 // EffectVariant = Default
}
}]
}
Example Data
Reading the Identify Cluster attributes of a light bulb device:
{
// --- Attributes ---
"0x0": 0, // IdentifyTime = 0 (not currently identifying)
"0x1": 2 // IdentifyType = VisibleIndicator (LED indicator light)
}
A typical "locate device" feature in an app is implemented like this:
- The user taps the "Locate Device" button
- The app sends an
Identifycommand withIdentifyTime = 15(flash for 15 seconds) - The app displays a 15-second countdown in sync
- Once the user locates the device, they can send
Identify(IdentifyTime: 0)to stop early
For finer effect control (e.g., a single flash to confirm connection), TriggerEffect(Blink, Default) is more appropriate than Identify.