Media1286 — Media Playback

Matter Cluster 1286 — Media Playback

Matter Cluster 1286 (0x0506) Media Playback: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 1286 — Media Playback Cluster

Matter Cluster 1286, also written as 0x0506, is the Media Playback Cluster. This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV, Set-top Box, or Smart Speaker. This cluster server would be supported on Video Player devices or endpoints that provide media playback, such as a Content App. This cluster provides an interface for controlling Media Playback.

Cluster Identity

FieldValue
Cluster ID decimal1286
Cluster ID hex0x0506
Cluster nameMedia Playback
Cluster revision (Matter 1.6.1)2
Roleapplication
ScopeEndpoint
PICS codeMEDIAPLAYBACK
Typical endpoint1

Revision history

RevisionChange
1Initial revision
2Added Text/Audio tracks support, Audio-while-advancing (AA) feature, StateChanged event

Shadow Path Format

Cluster 1286 values in the device shadow use this format:

endpoint_id / 1286 / attribute_id

Example:

{
  "1/1286/0": 0
}
PartMeaning
1Endpoint ID
1286Media Playback cluster
0CurrentState attribute

Cluster 1286 Features

The FeatureMap attribute (1/1286/65532) is a bitmap. Each bit set means the device implements that feature and the attributes and commands that depend on it.

BitCodeFeatureConformanceMeaning
0ASAdvancedSeekOAdvanced media seeking
1VSVariableSpeedOVariable speed playback
2TTTextTracksOText Tracks
3ATAudioTracksOAudio Tracks
4AAAudioAdvanceOCan play audio during fast and slow playback speeds

Example: FeatureMap = 0 means no optional feature is enabled; 31 means every feature listed above is enabled.


Data Types

CharacteristicEnum

ValueNameConformanceMeaning
0ForcedSubtitlesMTextual information meant for display when no other text representation is selected. It is used to clarify dialogue, alternate languages, texted graphics or location/person IDs that are not otherwise covered in the dubbed/localized audio
1DescribesVideoMTextual or audio media component containing a textual description (intended for audio synthesis) or an audio description describing a visual component
2EasyToReadMSimplified or reduced captions as specified in [United States Code Title 47 CFR 79.103(c)(9)]
3FrameBasedMA media characteristic that indicates that a track selection option includes frame-based content
4MainProgramMMain media component(s) which is/are intended for presentation if no other information is provided
5OriginalContentMA media characteristic that indicates that a track or media selection option contains original content
6VoiceOverTranslationMA media characteristic that indicates that a track or media selection option contains a language translation and verbal interpretation of spoken dialog
7CaptionMTextual media component containing transcriptions of spoken dialog and auditory cues such as sound effects and music for the hearing impaired
8SubtitleMTextual transcriptions of spoken dialog.
9AlternateMTextual media component containing transcriptions of spoken dialog and auditory cues such as sound effects and music for the hearing impaired
10SupplementaryMMedia content component that is supplementary to a media content component of a different media component type
11CommentaryMExperience that contains a commentary (e.g. director’s commentary) (typically audio)
12DubbedTranslationMExperience that contains an element that is presented in a different language from the original (e.g. dubbed audio, translated captions)
13DescriptionMTextual or audio media component containing a textual description (intended for audio synthesis) or an audio description describing a visual component
14MetadataMMedia component containing information intended to be processed by application specific elements
15EnhancedAudioIntelligibilityMExperience containing an element for improved intelligibility of the dialogue.
16EmergencyMExperience that provides information, about a current emergency, that is intended to enable the protection of life, health, safety, and property, and may also include critical details regarding the emergency and how to respond to the emergency
17KaraokeMTextual representation of a songs’ lyrics, usually in the same language as the associated song as specified in [SMPTE ST 2067-2]

PlaybackStateEnum

ValueNameConformanceMeaning
0PlayingMMedia is currently playing (includes FF and REW)
1PausedMMedia is currently paused
2NotPlayingMMedia is not currently playing
3BufferingMMedia is not currently buffering and playback will start when buffer has been filled

StatusEnum

ValueNameConformanceMeaning
0SuccessMSucceeded
1InvalidStateForCommandMRequested playback command is invalid in the current playback state.
2NotAllowedMRequested playback command is not allowed in the current playback state For example, attempting to fast-forward during a commercial might return NotAllowed.
3NotActiveMThis endpoint is not active for playback.
4SpeedOutOfRangeVSThe FastForward or Rewind Command was issued but the media is already playing back at the fastest speed supported by the server in the respective direction.
5SeekOutOfRangeASThe Seek Command was issued with a value of position outside of the allowed seek range of the media.

PlaybackPositionStruct (struct)

This structure defines a playback position within a media stream being played.

FieldNameTypeConformanceConstraintMeaning
0UpdatedAtepoch-usM—Indicates the time when the position was last updated.
1Positionuint64 (nullable)M—Indicates the associated discrete position within the media stream, in milliseconds from the beginning of the stream, being associated with the time indicated by the UpdatedAt field.

TrackAttributesStruct (struct)

This structure includes the attributes associated with a Text/Audio Track

FieldNameTypeConformanceConstraintMeaning
0LanguageCodestringMmax length 32The value is a String containing one of the standard Tags for Identifying Languages RFC5646, which identifies the primary language used in the Track.
1Characteristicslist of CharacteristicEnum (nullable)O—This is a list of enumerated CharacteristicEnum values that indicate a purpose, trait or feature associated with the Track.
2DisplayNamestring (nullable)Omax length 256The value is a String containing a user displayable name for the Track.

TrackStruct (struct)

This structure defines a uniquely identifiable Text Track or Audio Track.

FieldNameTypeConformanceConstraintMeaning
0IDstringMmax length 32—
1TrackAttributesTrackAttributesStructM—Indicates the Attributes associated to the Track, like languageCode.

Cluster 1286 Attributes

Cluster 1286 defines 11 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 …".

IDHexAttributeTypeConformanceAccessQualitiesDefault
00x0000CurrentStatePlaybackStateEnumMR (read: view)——
10x0001StartTimeepoch-usASR (read: view)nullablenull
20x0002Durationuint64ASR (read: view)nullablenull
30x0003SampledPositionPlaybackPositionStructASR (read: view)nullablenull
40x0004PlaybackSpeedsingleASR (read: view)—0
50x0005SeekRangeEnduint64ASR (read: view)nullablenull
60x0006SeekRangeStartuint64ASR (read: view)nullablenull
70x0007ActiveAudioTrackTrackStructATR (read: view)nullablenull
80x0008AvailableAudioTrackslist of TrackStructATR (read: view)nullablenull
90x0009ActiveTextTrackTrackStructTTR (read: view)nullablenull
100x000AAvailableTextTrackslist of TrackStructTTR (read: view)nullablenull

Global attributes

IDHexAttributeMeaning
655280xFFF8GeneratedCommandListResponse command IDs this server generates.
655290xFFF9AcceptedCommandListCommand IDs this server accepts.
655310xFFFBAttributeListAttribute IDs implemented.
655320xFFFCFeatureMapImplemented optional features (see above).
655330xFFFDClusterRevisionCluster revision implemented; 2 for a Matter 1.6.1 device.

Attribute Details

Attribute 0 / 0x0000 — CurrentState

Path example:

1/1286/0

Indicates the current playback state of media. During fast-forward, rewind, and other seek operations; this attribute is set to PLAYING.

PropertyValue
TypePlaybackStateEnum
ConformanceM
AccessR (read: view)
Constraintdesc

Values (PlaybackStateEnum):

ValueNameMeaning
0PlayingMedia is currently playing (includes FF and REW)
1PausedMedia is currently paused
2NotPlayingMedia is not currently playing
3BufferingMedia is not currently buffering and playback will start when buffer has been filled

Example:

{
  "1/1286/0": 0
}

Attribute 1 / 0x0001 — StartTime

Path example:

1/1286/1

Indicates the start time of the media, in case the media has a fixed start time (for example, live stream or television broadcast), or null when start time does not apply to the current media (for example, video-on-demand). This time is a UTC time. The client needs to handle conversion to local time, as required, taking in account time zone and possible local DST offset.

PropertyValue
Typeepoch-us
ConformanceAS
AccessR (read: view)
Qualitiesnullable
Constraintdesc
Defaultnull

Example:

{
  "1/1286/1": 0
}

Attribute 2 / 0x0002 — Duration

Path example:

1/1286/2

Indicates the duration, in milliseconds, of the current media being played back or null when duration is not applicable (for example, in live streaming content with no known duration). This attribute must never be 0.

PropertyValue
Typeuint64
ConformanceAS
AccessR (read: view)
Qualitiesnullable
Constraintdesc
Defaultnull

Example:

{
  "1/1286/2": 1
}

Attribute 3 / 0x0003 — SampledPosition

Path example:

1/1286/3

Indicates the position of playback (Position field) at the time (UpdateAt field) specified in the attribute. The client may use the SampledPosition attribute to compute the current position within the media stream based on the PlaybackSpeed, PlaybackPositionStruct.UpdatedAt and PlaybackPositionStruct.Position fields. To enable this, the SampledPosition attribute is updated whenever a change in either the playback speed or the playback position is triggered outside the normal playback of the media.

PropertyValue
TypePlaybackPositionStruct
ConformanceAS
AccessR (read: view)
Qualitiesnullable
Constraintdesc
Defaultnull

Value is a PlaybackPositionStruct struct (see Data Types).

Example:

{
  "1/1286/3": {
    "updatedAt": 1,
    "position": 1
  }
}

Attribute 4 / 0x0004 — PlaybackSpeed

Path example:

1/1286/4

Indicates the speed at which the current media is being played.

PropertyValue
Typesingle
ConformanceAS
AccessR (read: view)
Constraintdesc
Default0

Example:

{
  "1/1286/4": 1
}

Attribute 5 / 0x0005 — SeekRangeEnd

Path example:

1/1286/5

Indicates the furthest forward valid position to which a client may seek forward, in milliseconds from the start of the media. When the media has an associated StartTime, a value of null indicates that a seek forward is valid only until the current time within the media, using a position computed from the difference between the current time offset and StartTime, in milliseconds from start of the media, truncating fractional milliseconds towards 0. A value of null when StartTime is not specified indicates that seeking forward is not allowed.

PropertyValue
Typeuint64
ConformanceAS
AccessR (read: view)
Qualitiesnullable
Constraintdesc
Defaultnull

Example:

{
  "1/1286/5": 1
}

Attribute 6 / 0x0006 — SeekRangeStart

Path example:

1/1286/6

Indicates the earliest valid position to which a client may seek back, in milliseconds from start of the media. A value of null indicates that seeking backwards is not allowed.

PropertyValue
Typeuint64
ConformanceAS
AccessR (read: view)
Qualitiesnullable
Constraintdesc
Defaultnull

Example:

{
  "1/1286/6": 1
}

Attribute 7 / 0x0007 — ActiveAudioTrack

Path example:

1/1286/7

Indicates the Audio track currently set and being used for the streaming media. A value of null indicates that no Audio Track corresponding to the current media is currently being played.

PropertyValue
TypeTrackStruct
ConformanceAT
AccessR (read: view)
Qualitiesnullable
Constraintdesc
Defaultnull

Value is a TrackStruct struct (see Data Types).

Example:

{
  "1/1286/7": {
    "id": "example",
    "trackAttributes": {
      "languageCode": "example",
      "characteristics": [],
      "displayName": "example"
    }
  }
}

Attribute 8 / 0x0008 — AvailableAudioTracks

Path example:

1/1286/8

Indicates the list of Audio tracks available for the current title being played. A value of null indicates that no Audio Tracks corresponding to the current media are selectable by the client.

PropertyValue
Typelist of TrackStruct
ConformanceAT
AccessR (read: view)
Qualitiesnullable
Constraintdesc
Defaultnull

Each entry is a TrackStruct (see Data Types).

Example:

{
  "1/1286/8": []
}

Attribute 9 / 0x0009 — ActiveTextTrack

Path example:

1/1286/9

Indicates the Text track currently set and being used for the streaming media. This can be nil. A value of null indicates that no Text Track corresponding to the current media is currently being displayed.

PropertyValue
TypeTrackStruct
ConformanceTT
AccessR (read: view)
Qualitiesnullable
Constraintdesc
Defaultnull

Value is a TrackStruct struct (see Data Types).

Example:

{
  "1/1286/9": {
    "id": "example",
    "trackAttributes": {
      "languageCode": "example",
      "characteristics": [],
      "displayName": "example"
    }
  }
}

Attribute 10 / 0x000A — AvailableTextTracks

Path example:

1/1286/10

Indicates the list of Text tracks available for the current title being played. This can be an empty list. A value of null indicates that no Text Tracks corresponding to the current media are selectable by the client.

PropertyValue
Typelist of TrackStruct
ConformanceTT
AccessR (read: view)
Qualitiesnullable
Constraintdesc
Defaultnull

Each entry is a TrackStruct (see Data Types).

Example:

{
  "1/1286/10": []
}

Cluster 1286 Commands

Cluster 1286 has 14 client-to-server commands and 1 response.

IDHexCommandDirectionConformanceResponseDescription
00x00Playclient → serverMPlaybackResponseThis command is used to start playback of the media.
10x01Pauseclient → serverMPlaybackResponseThis command is used to pause playback of the media.
20x02Stopclient → serverMPlaybackResponseThis command is used to stop playback of the media.
30x03StartOverclient → serverOPlaybackResponseThis command is used to start playback of the media from the beginning.
40x04Previousclient → serverOPlaybackResponseThis command is used to go back to the previous media playback item.
50x05Nextclient → serverOPlaybackResponseThis command is used to go to the next media playback item.
60x06Rewindclient → serverVSPlaybackResponseThis command is used to rewind the media.
70x07FastForwardclient → serverVSPlaybackResponseThis command is used to fast forward the media.
80x08SkipForwardclient → serverOPlaybackResponseThis command is used to skip forward in the media.
90x09SkipBackwardclient → serverOPlaybackResponseThis command is used to skip backward in the media.
100x0APlaybackResponseserver → clientM—This command is used to indicate the status of the command that was issued by the client.
110x0BSeekclient → serverASPlaybackResponseThis command is used to seek to a specific position in the media.
120x0CActivateAudioTrackclient → serverATstatusThis command is used to activate a specific Audio Track for the media being played.
130x0DActivateTextTrackclient → serverTTstatusThis command is used to activate a specific Text Track for the media being played.
140x0EDeactivateTextTrackclient → serverTTstatusThis command is used to deactivate a specific Text Track for the media being played.

AcceptedCommandList

The AcceptedCommandList attribute lists the command IDs the endpoint actually implements:

endpoint_id / 1286 / 65529
{
  "1/1286/65529": [
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    11,
    12,
    13,
    14
  ]
}

Before sending a Cluster 1286 command, check that the command ID exists in endpoint/1286/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": 1286,
    "command_name": "Play",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

For Cluster 1286, always use "cluster_id": 1286. 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: Play

Purpose

This command is used to start playback of the media. Upon receipt, this must play media. If content is currently in a FastForward or Rewind state. Play returns media to normal playback speed.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command namePlay
Directionclient → server
ConformanceM
ResponsePlaybackResponse
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": 1286,
    "command_name": "Play",
    "payload": {}
  }
}

The device answers with PlaybackResponse (see below).


Command: Pause

Purpose

This command is used to pause playback of the media. Upon receipt, this must pause playback of the media.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command namePause
Directionclient → server
ConformanceM
ResponsePlaybackResponse
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": 1286,
    "command_name": "Pause",
    "payload": {}
  }
}

The device answers with PlaybackResponse (see below).


Command: Stop

Purpose

This command is used to stop playback of the media. Upon receipt, this must stop playback of the media. User-visible outcome is context-specific. This may navigate the user back to the location from where the media was originally launched.

Command Identity

FieldValue
Command ID2
Command hex0x02
Command nameStop
Directionclient → server
ConformanceM
ResponsePlaybackResponse
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": 1286,
    "command_name": "Stop",
    "payload": {}
  }
}

The device answers with PlaybackResponse (see below).


Command: StartOver

Purpose

This command is used to start playback of the media from the beginning. Upon receipt, this must Start Over with the current media playback item.

Command Identity

FieldValue
Command ID3
Command hex0x03
Command nameStartOver
Directionclient → server
ConformanceO
ResponsePlaybackResponse
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": 1286,
    "command_name": "StartOver",
    "payload": {}
  }
}

The device answers with PlaybackResponse (see below).


Command: Previous

Purpose

This command is used to go back to the previous media playback item. Upon receipt, this must cause the handler to be invoked for "Previous". User experience is context-specific. This will often Go back to the previous media playback item.

Command Identity

FieldValue
Command ID4
Command hex0x04
Command namePrevious
Directionclient → server
ConformanceO
ResponsePlaybackResponse
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": 1286,
    "command_name": "Previous",
    "payload": {}
  }
}

The device answers with PlaybackResponse (see below).


Command: Next

Purpose

This command is used to go to the next media playback item. Upon receipt, this must cause the handler to be invoked for "Next". User experience is context-specific. This will often Go forward to the next media playback item.

Command Identity

FieldValue
Command ID5
Command hex0x05
Command nameNext
Directionclient → server
ConformanceO
ResponsePlaybackResponse
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": 1286,
    "command_name": "Next",
    "payload": {}
  }
}

The device answers with PlaybackResponse (see below).


Command: Rewind

Purpose

This command is used to rewind the media. Upon receipt, this must start playback of the media backward in case the media is currently playing in the forward direction or is not playing. If the playback is already happening in the backwards direction receipt of this command must increase the speed of the media playback backwards. Different "rewind" speeds may be reflected on the media playback device based upon the number of sequential calls to this function and the capability of the device.

Command Identity

FieldValue
Command ID6
Command hex0x06
Command nameRewind
Directionclient → server
ConformanceVS
ResponsePlaybackResponse
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0AudioAdvanceUnmutedaudioAdvanceUnmutedboolAA—Indicates whether audio should be unmuted by the player during rewind. A value of true does not guarantee that audio can be heard by the user since the speaker may be muted, turned down to a low level and/or unplugged.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1286,
    "command_name": "Rewind",
    "payload": {
      "audioAdvanceUnmuted": true
    }
  }
}

The device answers with PlaybackResponse (see below).


Command: FastForward

Purpose

This command is used to fast forward the media. Upon receipt, this must start playback of the media in the forward direction in case the media is currently playing in the backward direction or is not playing. If the playback is already happening in the forward direction receipt of this command must increase the speed of the media playback. Different "fast-forward" speeds may be reflected on the media playback device based upon the number of sequential calls to this function and the capability of the device.

Command Identity

FieldValue
Command ID7
Command hex0x07
Command nameFastForward
Directionclient → server
ConformanceVS
ResponsePlaybackResponse
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0AudioAdvanceUnmutedaudioAdvanceUnmutedboolAA—Indicates whether audio should be unmuted by the player during fast forward. A value of true does not guarantee that audio can be heard by the user since the speaker may be muted, turned down to a low level and/or unplugged.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1286,
    "command_name": "FastForward",
    "payload": {
      "audioAdvanceUnmuted": true
    }
  }
}

The device answers with PlaybackResponse (see below).


Command: SkipForward

Purpose

This command is used to skip forward in the media. Upon receipt, this must Skip forward in the media by the given number of milliseconds.

Command Identity

FieldValue
Command ID8
Command hex0x08
Command nameSkipForward
Directionclient → server
ConformanceO
ResponsePlaybackResponse
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0DeltaPositionMillisecondsdeltaPositionMillisecondsuint64M—Indicates the duration of the time span to skip forward in the media, in milliseconds.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1286,
    "command_name": "SkipForward",
    "payload": {
      "deltaPositionMilliseconds": 1
    }
  }
}

The device answers with PlaybackResponse (see below).


Command: SkipBackward

Purpose

This command is used to skip backward in the media. Upon receipt, this must Skip backward in the media by the given number of milliseconds.

Command Identity

FieldValue
Command ID9
Command hex0x09
Command nameSkipBackward
Directionclient → server
ConformanceO
ResponsePlaybackResponse
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0DeltaPositionMillisecondsdeltaPositionMillisecondsuint64M—Indicates the duration of the time span to skip backward in the media, in milliseconds.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1286,
    "command_name": "SkipBackward",
    "payload": {
      "deltaPositionMilliseconds": 1
    }
  }
}

The device answers with PlaybackResponse (see below).


Command: PlaybackResponse

Purpose

This command is used to indicate the status of the command that was issued by the client. This command is generated in response to various Playback Commands.

Command Identity

FieldValue
Command ID10
Command hex0x0A
Command namePlaybackResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0StatusstatusStatusEnumMdescIndicates the status of the command which resulted in this response.
1DatadatastringO—Indicates Optional app-specific data.

Status values (StatusEnum): 0 = Success, 1 = InvalidStateForCommand, 2 = NotAllowed, 3 = NotActive, 4 = SpeedOutOfRange, 5 = SeekOutOfRange


Command: Seek

Purpose

This command is used to seek to a specific position in the media. Upon receipt, this must change the playback position in the media to the given position.

Command Identity

FieldValue
Command ID11
Command hex0x0B
Command nameSeek
Directionclient → server
ConformanceAS
ResponsePlaybackResponse
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0Positionpositionuint64M—Indicates the position (in milliseconds) in the media to seek to. In case the position falls in the middle of a frame, the server must set the position to the beginning of that frame and set the SampledPosition attribute on the cluster accordingly.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1286,
    "command_name": "Seek",
    "payload": {
      "position": 1
    }
  }
}

The device answers with PlaybackResponse (see below).


Command: ActivateAudioTrack

Purpose

This command is used to activate a specific Audio Track for the media being played. Upon receipt, the server must set the active Audio Track to the one identified by the TrackID in the Track catalog for the streaming media. If the TrackID does not exist in the Track catalog, OR does not correspond to the streaming media OR no media is being streamed at the time of receipt of this command, the server will return an error status of INVALID_ARGUMENT.

Command Identity

FieldValue
Command ID12
Command hex0x0C
Command nameActivateAudioTrack
Directionclient → server
ConformanceAT
Responsestatus
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0TrackIDtrackIDstringMmax length 32—
1AudioOutputIndexaudioOutputIndexuint8 (nullable)AT—This value is the index field of the OutputInfoStruct from the OutputList attribute (from the AudioOutput cluster) and indicates which audio output the Audio Track should be played on. This field is absent for Text Tracks and only present for Audio Tracks.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1286,
    "command_name": "ActivateAudioTrack",
    "payload": {
      "trackID": "example"
    }
  }
}

Command: ActivateTextTrack

Purpose

This command is used to activate a specific Text Track for the media being played. Upon receipt, the server must set the active Text Track to the one identified by the TrackID in the Track catalog for the streaming media. If the TrackID does not exist in the Track catalog, OR does not correspond to the streaming media OR no media is being streamed at the time of receipt of this command, the server returns an error status of INVALID_ARGUMENT.

Command Identity

FieldValue
Command ID13
Command hex0x0D
Command nameActivateTextTrack
Directionclient → server
ConformanceTT
Responsestatus
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0TrackIDtrackIDstringMmax length 32—

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1286,
    "command_name": "ActivateTextTrack",
    "payload": {
      "trackID": "example"
    }
  }
}

Command: DeactivateTextTrack

Purpose

This command is used to deactivate a specific Text Track for the media being played. If a Text Track is active (i.e. being displayed), upon receipt of this command, the server must stop displaying it.

Command Identity

FieldValue
Command ID14
Command hex0x0E
Command nameDeactivateTextTrack
Directionclient → server
ConformanceTT
Responsestatus
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": 1286,
    "command_name": "DeactivateTextTrack",
    "payload": {}
  }
}

Cluster 1286 Events

IDHexEventPriorityConformanceDescription
00x00StateChangedinfoOIf supported, this event is generated when there is a change in any of the supported attributes of the Media Playback cluster.

Event 0 — StateChanged

If supported, this event is generated when there is a change in any of the supported attributes of the Media Playback cluster.

IDFieldTypeConformanceMeaning
0CurrentStatePlaybackStateEnumMIndicates the updated playback state as defined by the CurrentState attribute, and has the same constraint as that attribute.
1StartTimeepoch-usASIndicates the updated start time as defined by the StartTime attribute, and has the same constraint as that attribute. This field value is 0 when the value of the StartTime attribute is null.
2Durationuint64ASIndicates the updated duration as defined by the Duration attribute, and has the same constraint as that attribute. This field value is 0 when the value of the Duration attribute is null.
3SampledPositionPlaybackPositionStructASIndicates the updated position of playback as defined by the SampledPosition attribute, and has the same constraint as that attribute.
4PlaybackSpeedsingleASIndicates the updated speed at which the current media is being played as defined by the PlaybackSpeed attribute, and has the same constraint as that attribute.
5SeekRangeEnduint64ASIndicates the updated start of the seek range end as defined by the SeekRangeEnd attribute, and has the same constraint as that attribute. This field value is 0 when the value of the SeekRangeEnd attribute is null.
6SeekRangeStartuint64ASIndicates the updated start of the seek range start as defined by the SeekRangeStart attribute, and has the same constraint as that attribute. This field value is 0 when the value of the SeekRangeStart attribute is null.
7DataoctstrOIndicates Optional app-specific data.
8AudioAdvanceUnmutedboolAAIndicates whether audio is unmuted by the player due to a FF or REW command. This field is only meaningful when the PlaybackSpeed is present and not equal to 0 (paused) or 1 (normal playback).

SmartphoneKey Notes

  • Cluster 1286 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/1286/attribute; attribute values that the device reports as unreadable are written as n/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.