Matter Cluster 1287 — Media Input
Matter Cluster 1287 (0x0507) Media Input: attributes, commands, events, data types, shadow paths and bridge payload examples.
Matter Cluster 1287 — Media Input Cluster
Matter Cluster 1287, also written as 0x0507, is the Media Input Cluster.
This cluster provides an interface for controlling the Input Selector on a media device such as a Video Player. This cluster would be implemented on TV and other media streaming devices, as well as devices that provide input to or output from such devices. This cluster provides the list of available inputs and provides commands for selecting and renaming them.
Cluster Identity
| Field | Value |
|---|---|
| Cluster ID decimal | 1287 |
| Cluster ID hex | 0x0507 |
| Cluster name | Media Input |
| Cluster revision (Matter 1.6.1) | 1 |
| Role | application |
| Scope | Endpoint |
| PICS code | MEDIAINPUT |
| Typical endpoint | 1 |
Revision history
| Revision | Change |
|---|---|
| 1 | Initial revision |
Shadow Path Format
Cluster 1287 values in the device shadow use this format:
endpoint_id / 1287 / attribute_id
Example:
{
"1/1287/1": 1
}
| Part | Meaning |
|---|---|
1 | Endpoint ID |
1287 | Media Input cluster |
1 | CurrentInput attribute |
Cluster 1287 Features
The FeatureMap attribute (1/1287/65532) is a bitmap. Each bit set means the device implements that feature and the attributes and commands that depend on it.
| Bit | Code | Feature | Conformance | Meaning |
|---|---|---|---|---|
| 0 | NU | NameUpdates | O | Supports updates to the input names |
Example: FeatureMap = 0 means no optional feature is enabled; 1 means every feature listed above is enabled.
Data Types
InputTypeEnum
| Value | Name | Conformance | Meaning |
|---|---|---|---|
| 0 | Internal | M | Indicates content not coming from a physical input. |
| 1 | Aux | M | — |
| 2 | Coax | M | — |
| 3 | Composite | M | — |
| 4 | HDMI | M | — |
| 5 | Input | M | — |
| 6 | Line | M | — |
| 7 | Optical | M | — |
| 8 | Video | M | — |
| 9 | SCART | M | — |
| 10 | USB | M | — |
| 11 | Other | M | — |
InputInfoStruct (struct)
This contains information about an input.
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | Index | uint8 | M | — | Indicates the unique index into the list of Inputs. |
| 1 | InputType | InputTypeEnum | M | desc | Indicates the type of input |
| 2 | Name | string | M | — | Indicates the input name, such as “HDMI 1”. |
| 3 | Description | string | M | — | Indicates the user editable input description, such as “Living room Playstation”. |
Cluster 1287 Attributes
Cluster 1287 defines 2 attributes plus the global attributes. Conformance: M mandatory, O optional, a feature code means "mandatory when that feature is present", square brackets mean "optional when …".
| ID | Hex | Attribute | Type | Conformance | Access | Qualities | Default |
|---|---|---|---|---|---|---|---|
| 0 | 0x0000 | InputList | list of InputInfoStruct | M | R (read: view) | — | — |
| 1 | 0x0001 | CurrentInput | uint8 | M | R (read: view) | — | — |
Global attributes
| ID | Hex | Attribute | Meaning |
|---|---|---|---|
| 65528 | 0xFFF8 | GeneratedCommandList | Response command IDs this server generates. |
| 65529 | 0xFFF9 | AcceptedCommandList | Command IDs this server accepts. |
| 65531 | 0xFFFB | AttributeList | Attribute IDs implemented. |
| 65532 | 0xFFFC | FeatureMap | Implemented optional features (see above). |
| 65533 | 0xFFFD | ClusterRevision | Cluster revision implemented; 1 for a Matter 1.6.1 device. |
Attribute Details
Attribute 0 / 0x0000 — InputList
Path example:
1/1287/0
This attribute provides a list of the media inputs supported by the device.
| Property | Value |
|---|---|
| Type | list of InputInfoStruct |
| Conformance | M |
| Access | R (read: view) |
Each entry is a InputInfoStruct (see Data Types).
Example:
{
"1/1287/0": []
}
Attribute 1 / 0x0001 — CurrentInput
Path example:
1/1287/1
This attribute contains the value of the index field of the currently selected InputInfoStruct.
| Property | Value |
|---|---|
| Type | uint8 |
| Conformance | M |
| Access | R (read: view) |
Example:
{
"1/1287/1": 1
}
Cluster 1287 Commands
Cluster 1287 has 4 client-to-server commands and 0 responses.
| ID | Hex | Command | Direction | Conformance | Response | Description |
|---|---|---|---|---|---|---|
| 0 | 0x00 | SelectInput | client → server | M | status | On receipt, this command must change the media input on the device to the input at a specific index in the Input List. |
| 1 | 0x01 | ShowInputStatus | client → server | M | status | On receipt, this command must display the active status of the input list on screen. |
| 2 | 0x02 | HideInputStatus | client → server | M | status | On receipt, this command must hide the input list from the screen. |
| 3 | 0x03 | RenameInput | client → server | NU | status | On receipt, this command must rename the input at a specific index in the Input List. |
AcceptedCommandList
The AcceptedCommandList attribute lists the command IDs the endpoint actually implements:
endpoint_id / 1287 / 65529
{
"1/1287/65529": [
0,
1,
2,
3
]
}
Before sending a Cluster 1287 command, check that the command ID exists in endpoint/1287/65529. Optional commands are only present when the matching feature is set in FeatureMap.
Bridge Command Payload Format
The bridge accepts Matter commands in this structure:
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1287,
"command_name": "SelectInput",
"payload": {},
"timed_request_timeout_ms": 1000
}
}
For Cluster 1287, always use "cluster_id": 1287. Payload keys are the command field names in lowerCamelCase. Octet-string fields are base64-encoded. timed_request_timeout_ms is required for timed commands and ignored otherwise.
Command: SelectInput
Purpose
On receipt, this command must change the media input on the device to the input at a specific index in the Input List.
Command Identity
| Field | Value |
|---|---|
| Command ID | 0 |
| Command hex | 0x00 |
| Command name | SelectInput |
| Direction | client → server |
| Conformance | M |
| Response | status |
| Access | (invoke: operate) |
Payload Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | Index | index | uint8 | M | — | Indicates the index field of the InputInfoStruct from the InputList attribute in which to change to. |
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1287,
"command_name": "SelectInput",
"payload": {
"index": 1
}
}
}
Command: ShowInputStatus
Purpose
On receipt, this command must display the active status of the input list on screen.
Command Identity
| Field | Value |
|---|---|
| Command ID | 1 |
| Command hex | 0x01 |
| Command name | ShowInputStatus |
| Direction | client → server |
| Conformance | M |
| Response | status |
| Access | (invoke: operate) |
Payload Fields
This command has no payload fields.
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1287,
"command_name": "ShowInputStatus",
"payload": {}
}
}
Command: HideInputStatus
Purpose
On receipt, this command must hide the input list from the screen.
Command Identity
| Field | Value |
|---|---|
| Command ID | 2 |
| Command hex | 0x02 |
| Command name | HideInputStatus |
| Direction | client → server |
| Conformance | M |
| Response | status |
| Access | (invoke: operate) |
Payload Fields
This command has no payload fields.
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1287,
"command_name": "HideInputStatus",
"payload": {}
}
}
Command: RenameInput
Purpose
On receipt, this command must rename the input at a specific index in the Input List. Updates to the input name must appear in the device's settings menus.
Command Identity
| Field | Value |
|---|---|
| Command ID | 3 |
| Command hex | 0x03 |
| Command name | RenameInput |
| Direction | client → server |
| Conformance | NU |
| Response | status |
| Access | (invoke: manage) |
Payload Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | Index | index | uint8 | M | — | — |
| 1 | Name | name | string | M | — | — |
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1287,
"command_name": "RenameInput",
"payload": {
"index": 1,
"name": "example"
}
}
}
Cluster 1287 Events
Cluster 1287 defines no events.
SmartphoneKey Notes
- Cluster 1287 is not currently exposed by SmartphoneKey devices. This page documents the Matter 1.6.1 specification so that future devices can be interpreted without changes to the backend.
- Shadow paths follow
endpoint/1287/attribute; attribute values that the device reports as unreadable are written asn/a. - Attribute IDs, command IDs and enum values on this page come from the CSA Matter 1.6.1 data model; descriptions are condensed from the specification text.