Media1292 — Application Launcher

Matter Cluster 1292 — Application Launcher

Matter Cluster 1292 (0x050C) Application Launcher: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 1292 — Application Launcher Cluster

Matter Cluster 1292, also written as 0x050C, is the Application Launcher Cluster. This cluster provides an interface for launching applications on a Video Player device such as a TV. This cluster is supported on endpoints that can launch Applications, such as a Casting Video Player device with a Content App Platform. It supports identifying an Application by global identifier from a given catalog, and launching it.

Cluster Identity

FieldValue
Cluster ID decimal1292
Cluster ID hex0x050C
Cluster nameApplication Launcher
Cluster revision (Matter 1.6.1)2
Roleapplication
ScopeEndpoint
PICS codeAPPLAUNCHER
Typical endpoint1

Revision history

RevisionChange
1Initial revision
2Addition of new states to StatusEnum

Shadow Path Format

Cluster 1292 values in the device shadow use this format:

endpoint_id / 1292 / attribute_id

Example:

{
  "1/1292/0": []
}
PartMeaning
1Endpoint ID
1292Application Launcher cluster
0CatalogList attribute

Cluster 1292 Features

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

BitCodeFeatureConformanceMeaning
0APApplicationPlatformOSupport for attributes and commands required for endpoint to support launching any application within the supported application catalogs

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


Data Types

StatusEnum

ValueNameConformanceMeaning
0SuccessMCommand succeeded
1AppNotAvailableMRequested app is not available
2SystemBusyMVideo platform unable to honor command
3PendingUserApprovalMUser approval for app download is pending
4DownloadingMDownloading the requested app
5InstallingMInstalling the requested app

ApplicationEPStruct (struct)

This specifies an app along with its corresponding endpoint.

FieldNameTypeConformanceConstraintMeaning
0ApplicationApplicationStructM——
1Endpointendpoint-noO——

ApplicationStruct (struct)

This indicates a global identifier for an Application given a catalog.

FieldNameTypeConformanceConstraintMeaning
0CatalogVendorIDuint16M——
1ApplicationIDstringM——

Cluster 1292 Attributes

Cluster 1292 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 …".

IDHexAttributeTypeConformanceAccessQualitiesDefault
00x0000CatalogListlist of uint16APR (read: view)persisted—
10x0001CurrentAppApplicationEPStructOR (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 — CatalogList

Path example:

1/1292/0

This attribute specifies the list of supported application catalogs, where each entry in the list is the Connectivity Standards Alliance-issued vendor ID for the catalog. The DIAL registry must use value 0x0000. It is expected that Content App Platform providers will have their own catalog vendor ID (set to their own Vendor ID) and will assign an ApplicationID to each Content App.

PropertyValue
Typelist of uint16
ConformanceAP
AccessR (read: view)
Qualitiespersisted

Example:

{
  "1/1292/0": []
}

Attribute 1 / 0x0001 — CurrentApp

Path example:

1/1292/1

This attribute specifies the current in-focus application, identified using an Application ID, catalog vendor ID and the corresponding endpoint number when the application is represented by a Content App endpoint. A null is used to indicate there is no current in-focus application.

PropertyValue
TypeApplicationEPStruct
ConformanceO
AccessR (read: view)
Qualitiesnullable
Constraintdesc
Defaultnull

Value is a ApplicationEPStruct struct (see Data Types).

Example:

{
  "1/1292/1": {
    "application": {
      "catalogVendorID": 1,
      "applicationID": "example"
    },
    "endpoint": 1
  }
}

Cluster 1292 Commands

Cluster 1292 has 3 client-to-server commands and 1 response.

IDHexCommandDirectionConformanceResponseDescription
00x00LaunchAppclient → serverMLauncherResponseOn receipt, the server must launch the application with optional data.
10x01StopAppclient → serverMLauncherResponseOn receipt, the server must stop the application if it is running.
20x02HideAppclient → serverMLauncherResponseOn receipt, the server must hide the application.
30x03LauncherResponseserver → clientM—This command is generated in response to LaunchApp/StopApp/HideApp commands.

AcceptedCommandList

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

endpoint_id / 1292 / 65529
{
  "1/1292/65529": [
    0,
    1,
    2
  ]
}

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

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

Purpose

On receipt, the server must launch the application with optional data. The application is either - the specified application, if the Application Platform feature is supported; - otherwise the application corresponding to the endpoint. The endpoint must launch and bring to foreground the requisite application if the application is not already launched and in foreground. The Status attribute is updated to ActiveVisibleFocus on the Application Basic cluster of the Endpoint corresponding to the launched application.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameLaunchApp
Directionclient → server
ConformanceM
ResponseLauncherResponse
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ApplicationapplicationApplicationStructAPdescThis field specifies the Application to launch.
1DatadataoctstrO—This field specifies optional app-specific data to be sent to the app. This format and meaning of this value is proprietary and outside the specification.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1292,
    "command_name": "LaunchApp",
    "payload": {
      "application": {
        "catalogVendorID": 1,
        "applicationID": "example"
      },
      "data": "AQID"
    }
  }
}

The device answers with LauncherResponse (see below).


Command: StopApp

Purpose

On receipt, the server must stop the application if it is running. The application is either - the specified application, if the Application Platform feature is supported; - otherwise the application corresponding to the endpoint. The Status attribute is updated to Stopped on the Application Basic cluster of the Endpoint corresponding to the stopped application. The Status attribute is updated on any other application whose Status may have changed as a result of this command.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameStopApp
Directionclient → server
ConformanceM
ResponseLauncherResponse
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ApplicationapplicationApplicationStructAPdescThis field specifies the Application to stop.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1292,
    "command_name": "StopApp",
    "payload": {
      "application": {
        "catalogVendorID": 1,
        "applicationID": "example"
      }
    }
  }
}

The device answers with LauncherResponse (see below).


Command: HideApp

Purpose

On receipt, the server must hide the application. The application is either - the specified application, if the Application Platform feature is supported; - otherwise the application corresponding to the endpoint. The endpoint may decide to stop the application based on manufacturer specific behavior or resource constraints if any. The Status attribute is updated to ActiveHidden or Stopped, depending on the action taken, on the Application Basic cluster of the Endpoint corresponding to the application on which the action was taken.

Command Identity

FieldValue
Command ID2
Command hex0x02
Command nameHideApp
Directionclient → server
ConformanceM
ResponseLauncherResponse
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ApplicationapplicationApplicationStructAPdescThis field specifies the Application to hide.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1292,
    "command_name": "HideApp",
    "payload": {
      "application": {
        "catalogVendorID": 1,
        "applicationID": "example"
      }
    }
  }
}

The device answers with LauncherResponse (see below).


Command: LauncherResponse

Purpose

This command is generated in response to LaunchApp/StopApp/HideApp commands.

Command Identity

FieldValue
Command ID3
Command hex0x03
Command nameLauncherResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0StatusstatusStatusEnumM—Indicates the status of the command which resulted in this response.
1DatadataoctstrO—This field specifies Optional app-specific data.

Status values (StatusEnum): 0 = Success, 1 = AppNotAvailable, 2 = SystemBusy, 3 = PendingUserApproval, 4 = Downloading, 5 = Installing


Cluster 1292 Events

Cluster 1292 defines no events.


SmartphoneKey Notes

  • Cluster 1292 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/1292/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.