General and node management98 — Scenes Management

Matter Cluster 98 — Scenes Management

Matter Cluster 98 (0x0062) Scenes Management: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 98 — Scenes Management Cluster

Matter Cluster 98, also written as 0x0062, is the Scenes Management Cluster. The Scenes Management cluster provides attributes and commands for setting up and recalling scenes. Each scene corresponds to a set of stored values of specified attributes for one or more clusters on the same end point as the Scenes Management cluster. In most cases scenes are associated with a particular group identifier.

Cluster Identity

FieldValue
Cluster ID decimal98
Cluster ID hex0x0062
Cluster nameScenes Management
Cluster revision (Matter 1.6.1)1
Roleapplication
ScopeEndpoint
PICS codeS
Typical endpoint1

Revision history

RevisionChange
1Based on the ZCL Scenes Cluster, Updated the Cluster ID to 0x0062, the name to Scenes Management, removed the provisional status; Removed attributes SceneCount, CurrentScene, CurrentGroup, SceneValid, and NameSupport; Removed Explicit, TableSize and FabricScenes features; Removed EnhancedAddScene, EnhancedAddSceneResponse, EnhancedViewScene, EnhancedViewSceneResponse; TransitionTime field changed milliseconds in AddScene, ViewSceneResponse and RecallScene

Shadow Path Format

Cluster 98 values in the device shadow use this format:

endpoint_id / 98 / attribute_id

Example:

{
  "1/98/1": 1
}
PartMeaning
1Endpoint ID
98Scenes Management cluster
1SceneTableSize attribute

Cluster 98 Features

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

BitCodeFeatureConformanceMeaning
0SNSceneNamesOThe ability to store a name for a scene

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


Data Types

CopyModeBitmap (bitmap)

BitNameConformanceMeaning
0CopyAllScenesMCopy all scenes in the scene table

AttributeValuePairStruct (struct)

This data type indicates a combination of an identifier and the value of an attribute.

FieldNameTypeConformanceConstraintMeaning
0AttributeIDattribute-idM——
1ValueUnsigned8uint8O——
2ValueSigned8int8O——
3ValueUnsigned16uint16O——
4ValueSigned16int16O——
5ValueUnsigned32uint32O——
6ValueSigned32int32O——
7ValueUnsigned64uint64O——
8ValueSigned64int64O——

ExtensionFieldSetStruct (struct)

This data type indicates for a given cluster a set of attributes and their values.

FieldNameTypeConformanceConstraintMeaning
0ClusterIDcluster-idM——
1AttributeValueListlist of AttributeValuePairStructMdescIndicates a set of attributes and their values which are stored as part of a scene.

SceneInfoStruct (struct) — fabric-scoped

FieldNameTypeConformanceConstraintMeaning
0SceneCountuint8M—Indicates the number of scenes currently used in the server's Scene Table on the endpoint where the Scenes Management cluster appears.
1CurrentSceneuint8MdescIndicates the scene identifier of the scene last invoked on the associated fabric.
2CurrentGroupgroup-idM—Indicates the group identifier of the scene last invoked on the associated fabric, or 0 if the scene last invoked is not associated with a group.
3SceneValidboolM—Indicates whether the state of the server corresponds to that associated with the CurrentScene and CurrentGroup fields of the SceneInfoStruct they belong to.
4RemainingCapacityuint8Mmax 253Indicates the remaining capacity of the Scene Table on this endpoint for the accessing fabric.

Cluster 98 Attributes

Cluster 98 defines 3 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
00x0000DoNotUseXR (read: view)——
10x0001SceneTableSizeuint16MR (read: view)——
20x0002FabricSceneInfolist of SceneInfoStructMR (read: view, fabric-scoped)——

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; 1 for a Matter 1.6.1 device.

Attribute Details

Attribute 0 / 0x0000 — DoNotUse

Path example:

1/98/0

No condensed specification text is available for DoNotUse; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Type
ConformanceX
AccessR (read: view)

Example:

{
  "1/98/0": 0
}

Attribute 1 / 0x0001 — SceneTableSize

Path example:

1/98/1

Indicates the number of entries in the Scene Table on this endpoint. This is the total across all fabrics; note that a single fabric cannot use all those entries. The minimum size of this table, (i.e., the minimum number of scenes to support across all fabrics per endpoint) is 16, unless a device type in which this cluster is used, defines a larger value in the device type definition.

PropertyValue
Typeuint16
ConformanceM
AccessR (read: view)
Constraintdesc

Example:

{
  "1/98/1": 1
}

Attribute 2 / 0x0002 — FabricSceneInfo

Path example:

1/98/2

Indicates a list of fabric scoped information about scenes on this endpoint. The number of list entries for this attribute must NOT exceed the number of supported fabrics by the device.

PropertyValue
Typelist of SceneInfoStruct
ConformanceM
AccessR (read: view, fabric-scoped)
Constraintdesc

Each entry is a SceneInfoStruct (see Data Types).

Example:

{
  "1/98/2": []
}

Cluster 98 Commands

Cluster 98 has 8 client-to-server commands and 7 responses.

IDHexCommandDirectionConformanceResponseDescription
00x00AddSceneclient → serverMAddSceneResponseThis command is used to add a new scene.
00x00AddSceneResponseserver → clientM—This command is sent in response to the AddScene command.
10x01ViewSceneclient → serverMViewSceneResponseThis command returns the details for the requested scene.
10x01ViewSceneResponseserver → clientM—This command is sent in response to the ViewScene command.
20x02RemoveSceneclient → serverMRemoveSceneResponseThis command removes the specified scene.
20x02RemoveSceneResponseserver → clientM—This command is sent in response to the RemoveScene command.
30x03RemoveAllScenesclient → serverMRemoveAllScenesResponseThis command removes all scenes for the specified GroupID.
30x03RemoveAllScenesResponseserver → clientM—This command is sent in response to the RemoveAllScenes command.
40x04StoreSceneclient → serverMStoreSceneResponseThis command will create a new entry for the requested scene.
40x04StoreSceneResponseserver → clientM—This command is sent in response to the StoreScene command.
50x05RecallSceneclient → serverMstatusThis command will cause the specified scene to be recalled.
60x06GetSceneMembershipclient → serverMGetSceneMembershipResponseThis command can be used to get the used scene identifiers within a certain group, for the endpoint that implements this cluster.
60x06GetSceneMembershipResponseserver → clientM—This command is sent in response to the GetSceneMembership command.
640x40CopySceneclient → serverOCopySceneResponseThis command allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair.
640x40CopySceneResponseserver → clientCopyScene—This command is sent in response to the CopyScene command.

AcceptedCommandList

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

endpoint_id / 98 / 65529
{
  "1/98/65529": [
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    64
  ]
}

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

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

Purpose

This command is used to add a new scene. It is not mandatory for an extension field set to be included in the command for every cluster on that endpoint that has a defined extension field set. Extension field sets may be omitted, including the case of no extension field sets at all.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameAddScene
Directionclient → server
ConformanceM
ResponseAddSceneResponse
Access(invoke: manage, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——
1SceneIDsceneIDuint8Mmax 254—
2TransitionTimetransitionTimeuint32Mmax 60000000Indicates the transition time of the scene, measured in milliseconds.
3SceneNamesceneNamestringMmax length 16Indicates the name of the scene.
4ExtensionFieldSetStructsextensionFieldSetStructslist of ExtensionFieldSetStructMdescThis field must contains the list of extension fields.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 98,
    "command_name": "AddScene",
    "payload": {
      "groupID": 1,
      "sceneID": 1,
      "transitionTime": 0,
      "sceneName": "example",
      "extensionFieldSetStructs": []
    }
  }
}

The device answers with AddSceneResponse (see below).


Command: AddSceneResponse

Purpose

This command is sent in response to the AddScene command.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameAddSceneResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0StatusstatusstatusMdescThis field is set according to the Effect on Receipt section for AddScene command.
1GroupIDgroupIDgroup-idM——
2SceneIDsceneIDuint8Mmax 254—

Command: ViewScene

Purpose

This command returns the details for the requested scene.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameViewScene
Directionclient → server
ConformanceM
ResponseViewSceneResponse
Access(invoke: operate, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——
1SceneIDsceneIDuint8Mmax 254—

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 98,
    "command_name": "ViewScene",
    "payload": {
      "groupID": 1,
      "sceneID": 1
    }
  }
}

The device answers with ViewSceneResponse (see below).


Command: ViewSceneResponse

Purpose

This command is sent in response to the ViewScene command.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameViewSceneResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0StatusstatusstatusMdescThis field is set according to the Effect on Receipt section for ViewScene command.
1GroupIDgroupIDgroup-idM——
2SceneIDsceneIDuint8Mmax 254—
3TransitionTimetransitionTimeuint32Status = statusmax 60000000This field is set to the corresponding field in the Scene Table entry.
4SceneNamesceneNamestringStatus = statusmax length 16This field is set to the corresponding field in the Scene Table entry.
5ExtensionFieldSetStructsextensionFieldSetStructslist of ExtensionFieldSetStructStatus = status—This field is set to the corresponding field in the Scene Table entry.

Command: RemoveScene

Purpose

This command removes the specified scene.

Command Identity

FieldValue
Command ID2
Command hex0x02
Command nameRemoveScene
Directionclient → server
ConformanceM
ResponseRemoveSceneResponse
Access(invoke: manage, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——
1SceneIDsceneIDuint8Mmax 254—

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 98,
    "command_name": "RemoveScene",
    "payload": {
      "groupID": 1,
      "sceneID": 1
    }
  }
}

The device answers with RemoveSceneResponse (see below).


Command: RemoveSceneResponse

Purpose

This command is sent in response to the RemoveScene command.

Command Identity

FieldValue
Command ID2
Command hex0x02
Command nameRemoveSceneResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0StatusstatusstatusMdescThis field is set according to the Effect on Receipt section for RemoveScene command.
1GroupIDgroupIDgroup-idM——
2SceneIDsceneIDuint8Mmax 254—

Command: RemoveAllScenes

Purpose

This command removes all scenes for the specified GroupID.

Command Identity

FieldValue
Command ID3
Command hex0x03
Command nameRemoveAllScenes
Directionclient → server
ConformanceM
ResponseRemoveAllScenesResponse
Access(invoke: manage, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 98,
    "command_name": "RemoveAllScenes",
    "payload": {
      "groupID": 1
    }
  }
}

The device answers with RemoveAllScenesResponse (see below).


Command: RemoveAllScenesResponse

Purpose

This command is sent in response to the RemoveAllScenes command.

Command Identity

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

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0StatusstatusstatusMdescThis field is set according to the Effect on Receipt section for RemoveAllScenes command.
1GroupIDgroupIDgroup-idM——

Command: StoreScene

Purpose

This command will create a new entry for the requested scene.

Command Identity

FieldValue
Command ID4
Command hex0x04
Command nameStoreScene
Directionclient → server
ConformanceM
ResponseStoreSceneResponse
Access(invoke: manage, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——
1SceneIDsceneIDuint8Mmax 254—

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 98,
    "command_name": "StoreScene",
    "payload": {
      "groupID": 1,
      "sceneID": 1
    }
  }
}

The device answers with StoreSceneResponse (see below).


Command: StoreSceneResponse

Purpose

This command is sent in response to the StoreScene command.

Command Identity

FieldValue
Command ID4
Command hex0x04
Command nameStoreSceneResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0StatusstatusstatusMdescThis field is set according to the Effect on Receipt section for StoreScene command.
1GroupIDgroupIDgroup-idM——
2SceneIDsceneIDuint8Mmax 254—

Command: RecallScene

Purpose

This command will cause the specified scene to be recalled.

Command Identity

FieldValue
Command ID5
Command hex0x05
Command nameRecallScene
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: operate, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——
1SceneIDsceneIDuint8Mmax 254—
2TransitionTimetransitionTimeuint32 (nullable)Omax 60000000Indicates the transition time of the scene, measured in milliseconds.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 98,
    "command_name": "RecallScene",
    "payload": {
      "groupID": 1,
      "sceneID": 1
    }
  }
}

Command: GetSceneMembership

Purpose

This command can be used to get the used scene identifiers within a certain group, for the endpoint that implements this cluster.

Command Identity

FieldValue
Command ID6
Command hex0x06
Command nameGetSceneMembership
Directionclient → server
ConformanceM
ResponseGetSceneMembershipResponse
Access(invoke: operate, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 98,
    "command_name": "GetSceneMembership",
    "payload": {
      "groupID": 1
    }
  }
}

The device answers with GetSceneMembershipResponse (see below).


Command: GetSceneMembershipResponse

Purpose

This command is sent in response to the GetSceneMembership command.

Command Identity

FieldValue
Command ID6
Command hex0x06
Command nameGetSceneMembershipResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0StatusstatusstatusMdescThis field is set according to the Effect on Receipt section for GetSceneMembership command.
1Capacitycapacityuint8 (nullable)M—This field contains the remaining capacity of the Scene Table of the server (for all groups for the accessing fabric).
2GroupIDgroupIDgroup-idM——
3SceneListsceneListlist of uint8Status = status—If the status is not SUCCESS then this field is omitted, else this field contains the identifiers of all the scenes in the Scene Table with the corresponding Group ID.

Command: CopyScene

Purpose

This command allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair.

Command Identity

FieldValue
Command ID64
Command hex0x40
Command nameCopyScene
Directionclient → server
ConformanceO
ResponseCopySceneResponse
Access(invoke: manage, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ModemodeCopyModeBitmapMdescThis field contains the information of how the scene copy is to proceed. The CopyAllScenes bit of the Mode indicates whether all scenes are to be copied.
1GroupIdentifierFromgroupIdentifierFromgroup-idM—Indicates the identifier of the group from which the scene is to be copied. Together with the SceneIdentifierFrom field, this field uniquely identifies the scene to copy from the Scene Table.
2SceneIdentifierFromsceneIdentifierFromuint8Mmax 254Indicates the identifier of the scene from which the scene is to be copied. Together with the GroupIdentifierFrom field, this field uniquely identifies the scene to copy from the Scene Table.
3GroupIdentifierTogroupIdentifierTogroup-idM—Indicates the identifier of the group to which the scene is to be copied. Together with the SceneIdentifierTo field, this field uniquely identifies the scene to copy to the Scene Table.
4SceneIdentifierTosceneIdentifierTouint8Mmax 254Indicates the identifier of the scene to which the scene is to be copied. Together with the GroupIdentifierTo field, this field uniquely identifies the scene to copy to the Scene Table.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 98,
    "command_name": "CopyScene",
    "payload": {
      "mode": 0,
      "groupIdentifierFrom": 1,
      "sceneIdentifierFrom": 1,
      "groupIdentifierTo": 1,
      "sceneIdentifierTo": 1
    }
  }
}

The device answers with CopySceneResponse (see below).


Command: CopySceneResponse

Purpose

This command is sent in response to the CopyScene command.

Command Identity

FieldValue
Command ID64
Command hex0x40
Command nameCopySceneResponse
Directionserver → client (response)
ConformanceCopyScene

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0StatusstatusstatusMdescThis field is set according to the Effect on Receipt section for the CopyScene command.
1GroupIdentifierFromgroupIdentifierFromgroup-idM—This field is set to the same values as in the corresponding fields of the received CopyScene command.
2SceneIdentifierFromsceneIdentifierFromuint8Mmax 254This field is set to the same values as in the corresponding fields of the received CopyScene command.

Cluster 98 Events

Cluster 98 defines no events.


SmartphoneKey Notes

  • Cluster 98 is present on SmartphoneKey devices or hubs today. See Matter Bridge Clusters — Detailed Reference and Matter Device Attributes & Commands for the values the bridge actually reports.
  • Shadow paths follow endpoint/98/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.