Matter Cluster 1361 — Camera AV Stream Management
Matter Cluster 1361 (0x0551) Camera AV Stream Management: attributes, commands, events, data types, shadow paths and bridge payload examples.
Matter Cluster 1361 — Camera AV Stream Management Cluster
Matter Cluster 1361, also written as 0x0551, is the Camera AV Stream Management Cluster.
This cluster is used to allow clients to manage, control, and configure various audio, video, and snapshot streams on a camera. Broadly, this cluster would be used to: 1. Create and manage all streams on the camera. 2.
Cluster Identity
| Field | Value |
|---|---|
| Cluster ID decimal | 1361 |
| Cluster ID hex | 0x0551 |
| Cluster name | Camera AV Stream Management |
| Cluster revision (Matter 1.6.1) | 2 |
| Role | application |
| Scope | Endpoint |
| PICS code | AVSM |
| Typical endpoint | 1 |
Revision history
| Revision | Change |
|---|---|
| 1 | Initial release |
| 2 | Add attribute ImageRotationDiscreteAngles |
Shadow Path Format
Cluster 1361 values in the device shadow use this format:
endpoint_id / 1361 / attribute_id
Example:
{
"1/1361/6": 1
}
| Part | Meaning |
|---|---|
1 | Endpoint ID |
1361 | Camera AV Stream Management cluster |
6 | MaxContentBufferSize attribute |
Cluster 1361 Features
The FeatureMap attribute (1/1361/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 | ADO | Audio | O | Audio Streams supported |
| 1 | VDO | Video | O | Video Streams supported |
| 2 | SNP | Snapshot | O | Snapshot Streams supported |
| 3 | PRIV | Privacy | O | Privacy supported |
| 4 | SPKR | Speaker | [ADO] | Speaker supported |
| 5 | ICTL | ImageControl | [VDO | SNP] | Image control supported |
| 6 | WMARK | Watermark | [VDO | SNP] | Watermark supported |
| 7 | OSD | OnScreenDisplay | [VDO | SNP] | OSD supported |
| 8 | STOR | LocalStorage | O | Local Storage available |
| 9 | HDR | HighDynamicRange | [VDO | SNP] | High Dynamic Range supported |
| 10 | NV | NightVision | [VDO | SNP] | Night Vision mode supported |
Example: FeatureMap = 0 means no optional feature is enabled; 2047 means every feature listed above is enabled.
Data Types
AudioCodecEnum
This data type provides an enumeration of the audio codecs supported by the camera.
| Value | Name | Conformance | Meaning |
|---|---|---|---|
| 0 | OPUS | M | Open source IETF standard codec. |
| 1 | AAC-LC | O | Advanced Audio Coding codec-Low Complexity |
ImageCodecEnum
This data type provides an enumeration of the image codecs supported by the camera.
| Value | Name | Conformance | Meaning |
|---|---|---|---|
| 0 | JPEG | M | JPEG image codec. |
| 1 | HEIC | O | HEIC image codec. |
TriStateAutoEnum
This data type is derived from enum8 and is used for tri-state settings on a device, where a setting can be in one of three states, i.e., On, Off, or Automatic.
| Value | Name | Conformance | Meaning |
|---|---|---|---|
| 0 | Off | M | Off |
| 1 | On | M | On |
| 2 | Auto | M | Automatic Operation |
TwoWayTalkSupportTypeEnum
This data type provides an enumeration of the different modes of bi-directional audio communication that are supported by the camera.
| Value | Name | Conformance | Meaning |
|---|---|---|---|
| 0 | NotSupported | M | Two-way Talk support is absent. |
| 1 | HalfDuplex | M | Audio in one direction at a time. |
| 2 | FullDuplex | M | Audio in both directions simultaneously. |
VideoCodecEnum
This data type provides an enumeration of the video codecs supported by the camera.
| Value | Name | Conformance | Meaning |
|---|---|---|---|
| 0 | H264 | M | Advanced Video Coding (H.264) codec. |
| 1 | HEVC | O | High efficiency Video Coding (H.265) codec. |
| 2 | VVC | O | Versatile Video Coding (H.266) codec. |
| 3 | AV1 | O | AOMedia Video 1 codec. |
AVMetadataStruct (struct)
This struct is used to encode the metadata generated by the device and is included by the various transports that handle audio and video streams. When encoded in TLV binary format and placed inside other standards, this is represented using the RFC8141 compliant string urn:csa:matter:av-metadata.
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 1 | UTCTime | epoch-us (nullable) | M | — | — |
| 2 | MotionZonesActive | list of ZoneID | O | min 1 entries | This field represents the list of Motion Zones that are currently triggered. |
| 3 | BlackAndWhiteActive | bool | O | — | Indicates if the sensor is currently active in black and white only mode. |
| 4 | UserDefined | octstr | O | max length 256 | This field is an octet string representing arbitrary format user defined metadata attached. |
AudioCapabilitiesStruct (struct)
This struct is used to express the audio capabilities of the camera.
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | MaxNumberOfChannels | uint8 | M | min 1 | Indicates the maximum number of channels supported by an audio stream from the camera. |
| 1 | SupportedCodecs | list of AudioCodecEnum | M | min 1 entries | Indicates the list of audio codecs from AudioCodecEnum that are supported by the camera. |
| 2 | SupportedSampleRates | list of uint32 | M | min 1 entries | Indicates the list of sample rates that are supported by the audio stream from the camera expressed in Hz, e.g., (48000, 32000, 16000). |
| 3 | SupportedBitDepths | list of uint8 | M | min 1 entries | Indicates the list of bit depths that are supported by the audio stream, e.g., (16-bit, 24-bit). |
AudioStreamStruct (struct)
This struct is used to capture all constituent parameters of an audio stream in order to fully characterize it.
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | AudioStreamID | AudioStreamID | M | — | — |
| 1 | StreamUsage | StreamUsageEnum | M | — | Indicates the usage of stream as described in StreamUsageEnum. |
| 2 | AudioCodec | AudioCodecEnum | M | — | Indicates the type of audio codec being used by the corresponding audio stream as described in AudioCodecEnum. |
| 3 | ChannelCount | uint8 | M | 1 to 8 | Indicates the number of independent channels or tracks being used by the corresponding audio stream. e.g., 1 for mono, 2 for stereo |
| 4 | SampleRate | uint32 | M | min 1 | Indicates the audio sample rate, in hertz (Hz). |
| 5 | BitRate | uint32 | M | min 1 | Indicates the target bit rate in bits per second of the audio stream. |
| 6 | BitDepth | uint8 | M | allowed: 8, 16, 24, 32 | Indicates the bit depth (8, 16, 24 or 32 bits) of the audio stream. |
| 7 | ReferenceCount | uint8 | M | — | Indicates the number of entities currently using this audio stream. |
RateDistortionTradeOffPointsStruct (struct)
This struct is used to define a set of parameters of the hardware video encoder that alter the rate distortion trade-off points. The points are expressed as the minimum bitrate and resolution for each supported codec type.
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | Codec | VideoCodecEnum | M | — | Indicates the type of video codec based on the supported VideoCodecEnum types. |
| 1 | Resolution | VideoResolutionStruct | M | — | Indicates the resolution in pixels for a specific rate distortion trade-off point. |
| 2 | MinBitRate | uint32 | M | min 1 | Indicates the minimum bitrate for a specific rate distortion trade-off point expressed as bits per second. |
SnapshotCapabilitiesStruct (struct)
This struct is used to define the set of parameters that characterize a snapshot image that is used to build a snapshot stream.
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | Resolution | VideoResolutionStruct | M | — | Indicates the resolution in pixels of the snapshot image. |
| 1 | MaxFrameRate | uint16 | M | min 1 | Indicates the maximum frame rate in frames per second of the snapshot stream. |
| 2 | ImageCodec | ImageCodecEnum | M | — | Indicates the format of the snapshot image, e.g., JPEG, as specified in ImageCodecEnum. |
| 3 | RequiresEncodedPixels | bool | M | — | Indicates if this entry requires using any resources from the available MaxEncodedPixelRate. |
| 4 | RequiresHardwareEncoder | bool | RequiresEncodedPixels = true | — | Indicates if this entry requires using a hardware encoder and thus needs to be considered when determining overall stream allocation resources. |
SnapshotStreamStruct (struct)
This struct is used to capture all constituent parameters of a snapshot stream in order to fully characterize it.
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | SnapshotStreamID | SnapshotStreamID | M | — | — |
| 1 | ImageCodec | ImageCodecEnum | M | — | Indicates the type of image codec being used by the corresponding snapshot stream as described in ImageCodecEnum. |
| 2 | FrameRate | uint16 | M | min 1 | Indicates the frame rate as frames per second of the snapshot stream. |
| 3 | MinResolution | VideoResolutionStruct | M | — | Indicates the minimum resolution for the corresponding snapshot stream. |
| 4 | MaxResolution | VideoResolutionStruct | M | — | Indicates the maximum resolution for the corresponding snapshot stream. |
| 5 | Quality | uint8 | M | 1 to 100 | Indicates a generic quality metric (integer between 1 and 100) as an input parameter to the image codec. |
| 6 | ReferenceCount | uint8 | M | — | Indicates the number of entities currently using this snapshot stream. |
| 7 | EncodedPixels | bool | M | — | Indicates if this entry counts in the system encoded pixel rate calculation. |
| 8 | HardwareEncoder | bool | M | — | Indicates if one of the system hardware encoders is used by this snapshot stream. |
| 9 | WatermarkEnabled | bool | WMARK | — | This field indicates the status of an applied watermark for the specific snapshot stream. |
| 10 | OSDEnabled | bool | OSD | — | — |
VideoResolutionStruct (struct)
This object defines the resolution parameters in pixels which can be used for defining the resolutions of different video streams.
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | Width | uint16 | M | min 1 | Indicates the width, in number of pixels, for a frame. |
| 1 | Height | uint16 | M | min 1 | Indicates the height, in number of pixels, for a frame. |
VideoSensorParamsStruct (struct)
This struct is used to define a video sensor and its characteristics.
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | SensorWidth | uint16 | M | min 64 | Indicates the practical width of the video sensor in pixels. |
| 1 | SensorHeight | uint16 | M | min 64 | Indicates the practical height of the video sensor in pixels. |
| 2 | MaxFPS | uint16 | M | min 1 | — |
| 3 | MaxHDRFPS | uint16 | HDR | 1 to MaxFPS | — |
VideoStreamStruct (struct)
This struct is used to capture all constituent parameters of a video stream in order to fully characterize it.
| Field | Name | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|
| 0 | VideoStreamID | VideoStreamID | M | — | — |
| 1 | StreamUsage | StreamUsageEnum | M | — | Indicates the usage of the stream as described in StreamUsageEnum. |
| 2 | VideoCodec | VideoCodecEnum | M | — | Indicates the type of video codec being used by the corresponding video stream as described in VideoCodecEnum. |
| 3 | MinFrameRate | uint16 | M | 1 to MaxFrameRate | Indicates the minimum frame rate in frames per second for the corresponding video stream. |
| 4 | MaxFrameRate | uint16 | M | min 1 | Indicates the maximum frame rate in frames per second for the corresponding video stream. |
| 5 | MinResolution | VideoResolutionStruct | M | — | Indicates the minimum resolution for the corresponding video stream. |
| 6 | MaxResolution | VideoResolutionStruct | M | — | Indicates the maximum resolution for the corresponding video stream. |
| 7 | MinBitRate | uint32 | M | 1 to MaxBitRate | Indicates the minimum bitrate for the corresponding video stream in bits per second. |
| 8 | MaxBitRate | uint32 | M | min 1 | Indicates the maximum bitrate for the corresponding video stream in bits per second. |
| 9 | KeyFrameInterval | uint16 | M | 0 to 65500 | Indicates the duration in milliseconds before a regular key-frame is generated. |
| 10 | WatermarkEnabled | bool | WMARK | — | This field indicates the status of an applied watermark for the specific video stream. |
| 11 | OSDEnabled | bool | OSD | — | — |
| 12 | ReferenceCount | uint8 | M | — | Indicates the number of entities currently using this video stream. |
Cluster 1361 Attributes
Cluster 1361 defines 42 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 | MaxConcurrentEncoders | uint8 | VDO | SNP | R (read: view) | — | — |
| 1 | 0x0001 | MaxEncodedPixelRate | uint32 | VDO | SNP | R (read: view) | — | — |
| 2 | 0x0002 | VideoSensorParams | VideoSensorParamsStruct | VDO | R (read: view) | — | — |
| 3 | 0x0003 | NightVisionUsesInfrared | bool | NV | R (read: view) | — | — |
| 4 | 0x0004 | MinViewportResolution | VideoResolutionStruct | VDO | R (read: view) | — | — |
| 5 | 0x0005 | RateDistortionTradeOffPoints | list of RateDistortionTradeOffPointsStruct | VDO | R (read: view) | — | — |
| 6 | 0x0006 | MaxContentBufferSize | uint32 | M | R (read: view) | — | — |
| 7 | 0x0007 | MicrophoneCapabilities | AudioCapabilitiesStruct | ADO | R (read: view) | — | — |
| 8 | 0x0008 | SpeakerCapabilities | AudioCapabilitiesStruct | SPKR | R (read: view) | — | — |
| 9 | 0x0009 | TwoWayTalkSupport | TwoWayTalkSupportTypeEnum | SPKR | R (read: view) | — | — |
| 10 | 0x000A | SnapshotCapabilities | list of SnapshotCapabilitiesStruct | SNP | R (read: view) | — | — |
| 11 | 0x000B | MaxNetworkBandwidth | uint32 | M | R (read: view) | — | — |
| 12 | 0x000C | CurrentFrameRate | uint16 | VDO | R (read: view) | — | — |
| 13 | 0x000D | HDRModeEnabled | bool | HDR | R/W (read: manage, write: manage) | persisted | — |
| 14 | 0x000E | SupportedStreamUsages | list of StreamUsageEnum | M | R (read: view) | — | — |
| 15 | 0x000F | AllocatedVideoStreams | list of VideoStreamStruct | VDO | R (read: view) | persisted | — |
| 16 | 0x0010 | AllocatedAudioStreams | list of AudioStreamStruct | ADO | R (read: view) | persisted | — |
| 17 | 0x0011 | AllocatedSnapshotStreams | list of SnapshotStreamStruct | SNP | R (read: view) | persisted | — |
| 18 | 0x0012 | StreamUsagePriorities | list of StreamUsageEnum | M | R (read: view) | persisted | — |
| 19 | 0x0013 | SoftRecordingPrivacyModeEnabled | bool | PRIV | R/W (read: view, write: operate) | persisted | — |
| 20 | 0x0014 | SoftLivestreamPrivacyModeEnabled | bool | PRIV | R/W (read: view, write: operate) | persisted | — |
| 21 | 0x0015 | HardPrivacyModeOn | bool | O | R (read: view) | — | false |
| 22 | 0x0016 | NightVision | TriStateAutoEnum | NV | R/W (read: manage, write: manage) | persisted | — |
| 23 | 0x0017 | NightVisionIllum | TriStateAutoEnum | [NV] | R/W (read: manage, write: manage) | persisted | — |
| 24 | 0x0018 | Viewport | ViewportStruct | VDO | R/W (read: manage, write: manage) | persisted | — |
| 25 | 0x0019 | SpeakerMuted | bool | SPKR | R/W (read: manage, write: manage) | persisted | — |
| 26 | 0x001A | SpeakerVolumeLevel | uint8 | SPKR | R/W (read: manage, write: manage) | persisted | — |
| 27 | 0x001B | SpeakerMaxLevel | uint8 | SPKR | R (read: manage) | — | — |
| 28 | 0x001C | SpeakerMinLevel | uint8 | SPKR | R (read: manage) | — | — |
| 29 | 0x001D | MicrophoneMuted | bool | ADO | R/W (read: manage, write: manage) | persisted | — |
| 30 | 0x001E | MicrophoneVolumeLevel | uint8 | ADO | R/W (read: manage, write: manage) | persisted | — |
| 31 | 0x001F | MicrophoneMaxLevel | uint8 | ADO | R (read: manage) | — | — |
| 32 | 0x0020 | MicrophoneMinLevel | uint8 | ADO | R (read: manage) | — | — |
| 33 | 0x0021 | MicrophoneAGCEnabled | bool | [ADO] | R/W (read: manage, write: manage) | persisted | true |
| 34 | 0x0022 | ImageRotation | uint16 | [ICTL] | R/W (read: manage, write: manage) | persisted | — |
| 35 | 0x0023 | ImageFlipHorizontal | bool | [ICTL] | R/W (read: manage, write: manage) | persisted | false |
| 36 | 0x0024 | ImageFlipVertical | bool | [ICTL] | R/W (read: manage, write: manage) | persisted | false |
| 37 | 0x0025 | LocalVideoRecordingEnabled | bool | VDO & STOR | R/W (read: manage, write: manage) | persisted | — |
| 38 | 0x0026 | LocalSnapshotRecordingEnabled | bool | SNP & STOR | R/W (read: manage, write: manage) | persisted | — |
| 39 | 0x0027 | StatusLightEnabled | bool | O | R/W (read: manage, write: manage) | persisted | true |
| 40 | 0x0028 | StatusLightBrightness | ThreeLevelAutoEnum | O | R/W (read: manage, write: manage) | persisted | — |
| 41 | 0x0029 | ImageRotationDiscreteAngles | uint16 | P, [ClusterRevision >= 2 & ICTL & !ImageRotation] | R/W (read: manage, write: manage) | persisted | 0 |
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; 2 for a Matter 1.6.1 device. |
Attribute Details
Attribute 0 / 0x0000 — MaxConcurrentEncoders
Path example:
1/1361/0
Indicates the maximum number of concurrent encoders supported by the camera.
| Property | Value |
|---|---|
| Type | uint8 |
| Conformance | VDO | SNP |
| Access | R (read: view) |
Example:
{
"1/1361/0": 1
}
Attribute 1 / 0x0001 — MaxEncodedPixelRate
Path example:
1/1361/1
Indicates the maximum data rate in encoded pixels per second that the camera can produce given the hardware encoder resources it has. This value is manufacturer specified. If the camera supports Snapshots and requires hardware encoder resources to produce those Snapshots, then this attribute is present, and a manufacturer specific value is present in each SnapshotCapabilities MaxFrameRate entry that requires hardware resources to produce.
| Property | Value |
|---|---|
| Type | uint32 |
| Conformance | VDO | SNP |
| Access | R (read: view) |
Example:
{
"1/1361/1": 1
}
Attribute 2 / 0x0002 — VideoSensorParams
Path example:
1/1361/2
Indicates the set of video sensor parameters for the camera. These include the video sensor dimensions, its frame rate and HDR capabilities.
| Property | Value |
|---|---|
| Type | VideoSensorParamsStruct |
| Conformance | VDO |
| Access | R (read: view) |
Value is a VideoSensorParamsStruct struct (see Data Types).
Example:
{
"1/1361/2": {
"sensorWidth": 64,
"sensorHeight": 64,
"maxFPS": 1,
"maxHDRFPS": 1
}
}
Attribute 3 / 0x0003 — NightVisionUsesInfrared
Path example:
1/1361/3
Indicates if the night vision mode is infrared based or not. A value of TRUE indicates infrared mode with a cut filter being used. A value of FALSE indicates color is used. When infrared is active and the resulting content is in black and white, the BlackAndWhiteActive field inside any produced AVMetadataStruct is TRUE.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | NV |
| Access | R (read: view) |
Example:
{
"1/1361/3": true
}
Attribute 4 / 0x0004 — MinViewportResolution
Path example:
1/1361/4
Indicates the minimum resolution (width and height) in pixels that the camera allows for its viewport. The choice of the minimum viewport width and height is, typically, directed towards maintaining the best image quality (reduced distortion) for a given size of the video sensor, for different camera functions, e.g., digital zoom. Furthermore, the minimum viewport size and the video sensor size also dictate the upscaling capabilities and requirements of the image processor.
| Property | Value |
|---|---|
| Type | VideoResolutionStruct |
| Conformance | VDO |
| Access | R (read: view) |
Value is a VideoResolutionStruct struct (see Data Types).
Example:
{
"1/1361/4": {
"width": 1,
"height": 1
}
}
Attribute 5 / 0x0005 — RateDistortionTradeOffPoints
Path example:
1/1361/5
This attribute lists the set of rate distortion trade-off points between resolution, frame rate and bitrate for each supported hardware encoder.
| Property | Value |
|---|---|
| Type | list of RateDistortionTradeOffPointsStruct |
| Conformance | VDO |
| Access | R (read: view) |
Each entry is a RateDistortionTradeOffPointsStruct (see Data Types).
Example:
{
"1/1361/5": []
}
Attribute 6 / 0x0006 — MaxContentBufferSize
Path example:
1/1361/6
Indicates the maximum size of the content buffer in bytes. This buffer holds the compressed and/or raw content for audio/video pre-roll, queued transmissions, the current frame for each snapshot stream, and the metadata context for recording events. For devices which support more than one encoder, the device must evenly allocate this buffer space amongst all streams that utilize pre-roll content such as the Push AV Stream Transport Cluster.
| Property | Value |
|---|---|
| Type | uint32 |
| Conformance | M |
| Access | R (read: view) |
Example:
{
"1/1361/6": 1
}
Attribute 7 / 0x0007 — MicrophoneCapabilities
Path example:
1/1361/7
Indicates the audio capabilities of the microphone in terms of the codec used, supported sample rates and the number of channels.
| Property | Value |
|---|---|
| Type | AudioCapabilitiesStruct |
| Conformance | ADO |
| Access | R (read: view) |
Value is a AudioCapabilitiesStruct struct (see Data Types).
Example:
{
"1/1361/7": {
"maxNumberOfChannels": 1,
"supportedCodecs": [],
"supportedSampleRates": [],
"supportedBitDepths": []
}
}
Attribute 8 / 0x0008 — SpeakerCapabilities
Path example:
1/1361/8
Indicates the audio capabilities of the speaker in terms of the supported codecs, sample rates, and the number of channels when a speaker is present.
| Property | Value |
|---|---|
| Type | AudioCapabilitiesStruct |
| Conformance | SPKR |
| Access | R (read: view) |
Value is a AudioCapabilitiesStruct struct (see Data Types).
Example:
{
"1/1361/8": {
"maxNumberOfChannels": 1,
"supportedCodecs": [],
"supportedSampleRates": [],
"supportedBitDepths": []
}
}
Attribute 9 / 0x0009 — TwoWayTalkSupport
Path example:
1/1361/9
Indicates the type of two-way talk support the device has, e.g., NotSupported, HalfDuplex, or FullDuplex.
| Property | Value |
|---|---|
| Type | TwoWayTalkSupportTypeEnum |
| Conformance | SPKR |
| Access | R (read: view) |
Values (TwoWayTalkSupportTypeEnum):
| Value | Name | Meaning |
|---|---|---|
| 0 | NotSupported | Two-way Talk support is absent. |
| 1 | HalfDuplex | Audio in one direction at a time. |
| 2 | FullDuplex | Audio in both directions simultaneously. |
Example:
{
"1/1361/9": 0
}
Attribute 10 / 0x000A — SnapshotCapabilities
Path example:
1/1361/10
Indicates the list of supported snapshot capabilities the device has. This list is a set of entries for image codec, resolution, maximum frame rate, hardware encoder, and encoded pixels.
| Property | Value |
|---|---|
| Type | list of SnapshotCapabilitiesStruct |
| Conformance | SNP |
| Access | R (read: view) |
Each entry is a SnapshotCapabilitiesStruct (see Data Types).
Example:
{
"1/1361/10": []
}
Attribute 11 / 0x000B — MaxNetworkBandwidth
Path example:
1/1361/11
Indicates the maximum network bandwidth in bits per second that the device would consume for the transmission of its media streams.
| Property | Value |
|---|---|
| Type | uint32 |
| Conformance | M |
| Access | R (read: view) |
Example:
{
"1/1361/11": 1
}
Attribute 12 / 0x000C — CurrentFrameRate
Path example:
1/1361/12
Indicates the current logical frame rate of the sensor in frames per second.
| Property | Value |
|---|---|
| Type | uint16 |
| Conformance | VDO |
| Access | R (read: view) |
Example:
{
"1/1361/12": 1
}
Attribute 13 / 0x000D — HDRModeEnabled
Path example:
1/1361/13
No condensed specification text is available for HDRModeEnabled; use the type, conformance and constraint below together with the cluster description above.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | HDR |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
Example:
{
"1/1361/13": true
}
Attribute 14 / 0x000E — SupportedStreamUsages
Path example:
1/1361/14
Indicates the list of Stream Usages that are supported by the camera. Manufacturers provides a usages list that is appropriate to their product. If a usage is found in this list, then it can be used in the StreamUsagePriorities attribute. The ordering and values of this list must match the values found in StreamUsagePriorities after a factory reset.
| Property | Value |
|---|---|
| Type | list of StreamUsageEnum |
| Conformance | M |
| Access | R (read: view) |
Example:
{
"1/1361/14": []
}
Attribute 15 / 0x000F — AllocatedVideoStreams
Path example:
1/1361/15
Indicates the list of allocated video streams on the device.
| Property | Value |
|---|---|
| Type | list of VideoStreamStruct |
| Conformance | VDO |
| Access | R (read: view) |
| Qualities | persisted |
Each entry is a VideoStreamStruct (see Data Types).
Example:
{
"1/1361/15": []
}
Attribute 16 / 0x0010 — AllocatedAudioStreams
Path example:
1/1361/16
Indicates the list of allocated audio streams on the device.
| Property | Value |
|---|---|
| Type | list of AudioStreamStruct |
| Conformance | ADO |
| Access | R (read: view) |
| Qualities | persisted |
Each entry is a AudioStreamStruct (see Data Types).
Example:
{
"1/1361/16": []
}
Attribute 17 / 0x0011 — AllocatedSnapshotStreams
Path example:
1/1361/17
Indicates the list of allocated snapshot streams on the device.
| Property | Value |
|---|---|
| Type | list of SnapshotStreamStruct |
| Conformance | SNP |
| Access | R (read: view) |
| Qualities | persisted |
Each entry is a SnapshotStreamStruct (see Data Types).
Example:
{
"1/1361/17": []
}
Attribute 18 / 0x0012 — StreamUsagePriorities
Path example:
1/1361/18
Indicates a list of the video stream usages represented in a ranked order of their priorities, starting with Index 0 having the stream usage type with the highest priority. See Resource Management and Stream Priorities for further details. Only usages found in the SupportedStreamUsages attribute can be included. To change the contents, use the SetStreamPriorities command.
| Property | Value |
|---|---|
| Type | list of StreamUsageEnum |
| Conformance | M |
| Access | R (read: view) |
| Qualities | persisted |
Example:
{
"1/1361/18": []
}
Attribute 19 / 0x0013 — SoftRecordingPrivacyModeEnabled
Path example:
1/1361/19
This attribute indicates the current value of the soft privacy mode for transports using the Stream Usage types Recording and Analysis. A value of TRUE indicates that delivery of video frames and audio samples from any streams to these transports is skipped. A value of TRUE also indicates that no new transports using these stream usage values can be created or started. When FALSE, these transports can be resumed or started, and have video frames and audio samples delivered.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | PRIV |
| Access | R/W (read: view, write: operate) |
| Qualities | persisted |
Example:
{
"1/1361/19": true
}
Attribute 20 / 0x0014 — SoftLivestreamPrivacyModeEnabled
Path example:
1/1361/20
This attribute indicates the current value of the soft privacy mode for transports using the Stream Usage type LiveView. A value of TRUE indicates that delivery of video frames and audio samples from any streams to these transports is skipped. A value of TRUE also indicates that no new transports using this stream usage type can be created or started. When FALSE, these transports can be resumed or started, and have video frames and audio samples delivered.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | PRIV |
| Access | R/W (read: view, write: operate) |
| Qualities | persisted |
Example:
{
"1/1361/20": true
}
Attribute 21 / 0x0015 — HardPrivacyModeOn
Path example:
1/1361/21
This attribute indicates the current value of the hard privacy mode for all streams. This is controlled via a physical button or switch, potentially. A value of TRUE indicates that all streams are currently paused. When FALSE, the streams may resume if they are not already paused by their corresponding soft privacy mode.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | O |
| Access | R (read: view) |
| Default | false |
Example:
{
"1/1361/21": true
}
Attribute 22 / 0x0016 — NightVision
Path example:
1/1361/22
This attribute indicates the currently selected Night Vision mode. A value of Off means the device will never activate its Night Vision mode of operation. A value of On means the Night Vision mode of operation is always active. A value of Auto means the device will automatically move between active and inactive based on the light level it detects.
| Property | Value |
|---|---|
| Type | TriStateAutoEnum |
| Conformance | NV |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
Values (TriStateAutoEnum):
| Value | Name | Meaning |
|---|---|---|
| 0 | Off | Off |
| 1 | On | On |
| 2 | Auto | Automatic Operation |
Example:
{
"1/1361/22": 0
}
Attribute 23 / 0x0017 — NightVisionIllum
Path example:
1/1361/23
This attribute indicates the currently selected the Night Vision Illumination mode. A value of Off means the device will never activate its built-in Night Vision Illumination. A value of On means the built-in Night Vision Illumination is always active. A value of Auto means the device will automatically enable its built-in Night Vision Illumination based on the light level it detects.
| Property | Value |
|---|---|
| Type | TriStateAutoEnum |
| Conformance | [NV] |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
Values (TriStateAutoEnum):
| Value | Name | Meaning |
|---|---|---|
| 0 | Off | Off |
| 1 | On | On |
| 2 | Auto | Automatic Operation |
Example:
{
"1/1361/23": 0
}
Attribute 24 / 0x0018 — Viewport
Path example:
1/1361/24
This attribute is a ViewportStruct representing the viewport to apply to all streams. The coordinate values represent the upper left corner and lower right corner coordinates of the source rectangle on the sensor. The coordinate values are within the two-dimensional Cartesian plane of size SensorWidth and SensorHeight (See VideoSensorParamsStruct in the VideoSensorParams) with the origin (0,0) being the upper left corner, positive X and Y values moving right and down across the Cartesian plane respectively, and (SensorWidth, SensorHeight) being the lower right corner.
| Property | Value |
|---|---|
| Type | ViewportStruct |
| Conformance | VDO |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
Example:
{
"1/1361/24": 0
}
Attribute 25 / 0x0019 — SpeakerMuted
Path example:
1/1361/25
This attribute indicates whether the speaker is currently muted or not. A value of TRUE indicates that the speaker has been muted and must not play anything. A value of FALSE indicates that the Speaker is enabled.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | SPKR |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
Example:
{
"1/1361/25": true
}
Attribute 26 / 0x001A — SpeakerVolumeLevel
Path example:
1/1361/26
This attribute indicates the current volume level of the speaker.
| Property | Value |
|---|---|
| Type | uint8 |
| Conformance | SPKR |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
| Constraint | SpeakerMinLevel to SpeakerMaxLevel |
Example:
{
"1/1361/26": 100
}
Attribute 27 / 0x001B — SpeakerMaxLevel
Path example:
1/1361/27
This attribute indicates the maximum value of the SpeakerVolumeLevel that can be assigned.
| Property | Value |
|---|---|
| Type | uint8 |
| Conformance | SPKR |
| Access | R (read: manage) |
| Constraint | SpeakerMinLevel to 254 |
Example:
{
"1/1361/27": 100
}
Attribute 28 / 0x001C — SpeakerMinLevel
Path example:
1/1361/28
This attribute indicates the minimum value of the SpeakerVolumeLevel that can be assigned.
| Property | Value |
|---|---|
| Type | uint8 |
| Conformance | SPKR |
| Access | R (read: manage) |
| Constraint | max SpeakerMaxLevel |
Example:
{
"1/1361/28": 100
}
Attribute 29 / 0x001D — MicrophoneMuted
Path example:
1/1361/29
This attribute indicates whether the microphone is currently muted or not. A value of TRUE indicates that the microphone has been muted. In this state, the microphone data is replaced with all 0 bits, representing silence. A value of FALSE indicates that the microphone is On and is capable of transmitting audio.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | ADO |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
Example:
{
"1/1361/29": true
}
Attribute 30 / 0x001E — MicrophoneVolumeLevel
Path example:
1/1361/30
This attribute indicates the current gain or volume level of the microphone.
| Property | Value |
|---|---|
| Type | uint8 |
| Conformance | ADO |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
| Constraint | MicrophoneMinLevel to MicrophoneMaxLevel |
Example:
{
"1/1361/30": 100
}
Attribute 31 / 0x001F — MicrophoneMaxLevel
Path example:
1/1361/31
This attribute indicates the maximum value of the MicrophoneVolumeLevel that can be assigned.
| Property | Value |
|---|---|
| Type | uint8 |
| Conformance | ADO |
| Access | R (read: manage) |
| Constraint | MicrophoneMinLevel to 254 |
Example:
{
"1/1361/31": 100
}
Attribute 32 / 0x0020 — MicrophoneMinLevel
Path example:
1/1361/32
This attribute indicates the minimum value of the MicrophoneVolumeLevel that can be assigned.
| Property | Value |
|---|---|
| Type | uint8 |
| Conformance | ADO |
| Access | R (read: manage) |
| Constraint | max MicrophoneMaxLevel |
Example:
{
"1/1361/32": 100
}
Attribute 33 / 0x0021 — MicrophoneAGCEnabled
Path example:
1/1361/33
No condensed specification text is available for MicrophoneAGCEnabled; use the type, conformance and constraint below together with the cluster description above.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | [ADO] |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
| Default | true |
Example:
{
"1/1361/33": true
}
Attribute 34 / 0x0022 — ImageRotation
Path example:
1/1361/34
This attribute indicates the amount of clockwise rotation in degrees that the image has been subjected to. This attribute may be present if the underlying hardware allows for arbitrary angle rotation within the full 360 degree range. If this attribute is not present, then discrete angle rotation may be supported via the ImageRotationDiscreteAngles. A value of 0 means no rotation has been applied.
| Property | Value |
|---|---|
| Type | uint16 |
| Conformance | [ICTL] |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
| Constraint | max 359 |
Example:
{
"1/1361/34": 1
}
Attribute 35 / 0x0023 — ImageFlipHorizontal
Path example:
1/1361/35
This attribute indicates whether the image has been flipped horizontally or not. A value of TRUE indicates that the image has been flipped horizontally.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | [ICTL] |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
| Default | false |
Example:
{
"1/1361/35": true
}
Attribute 36 / 0x0024 — ImageFlipVertical
Path example:
1/1361/36
This attribute indicates whether the image has been flipped vertically or not. A value of TRUE indicates that the image has been flipped vertically.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | [ICTL] |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
| Default | false |
Example:
{
"1/1361/36": true
}
Attribute 37 / 0x0025 — LocalVideoRecordingEnabled
Path example:
1/1361/37
This attribute indicates whether local storage based video recording is enabled. A value of TRUE indicates that local storage based video recording has been enabled.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | VDO & STOR |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
Example:
{
"1/1361/37": true
}
Attribute 38 / 0x0026 — LocalSnapshotRecordingEnabled
Path example:
1/1361/38
This attribute indicates whether local storage based snapshot recording is enabled. A value of TRUE indicates that local storage based snapshot recording has been enabled.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | SNP & STOR |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
Example:
{
"1/1361/38": true
}
Attribute 39 / 0x0027 — StatusLightEnabled
Path example:
1/1361/39
This attribute indicates whether the status light has been enabled or not. A value of TRUE indicates the status light has been enabled. When enabled, the camera may use it for visual signaling purposes to indicate various states of the camera.
| Property | Value |
|---|---|
| Type | bool |
| Conformance | O |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
| Default | true |
Example:
{
"1/1361/39": true
}
Attribute 40 / 0x0028 — StatusLightBrightness
Path example:
1/1361/40
This attribute indicates the brightness level of the status light.
| Property | Value |
|---|---|
| Type | ThreeLevelAutoEnum |
| Conformance | O |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
Example:
{
"1/1361/40": 0
}
Attribute 41 / 0x0029 — ImageRotationDiscreteAngles
Path example:
1/1361/41
This attribute indicates the amount of clockwise rotation in specific angles of 0, 90, 180, and 270 degrees. This attribute is used by cameras that do not have the capability of full arbitrary rotation angles that can be set via the ImageRotation attribute. Note that the ImageFlipHorizontal and the ImageFlipVertical attributes only allow for a lateral inversion or mirror reflection of the image along the horizontal and/or vertical axes. A value of 0 means no rotation has been applied.
| Property | Value |
|---|---|
| Type | uint16 |
| Conformance | P, [ClusterRevision >= 2 & ICTL & !ImageRotation] |
| Access | R/W (read: manage, write: manage) |
| Qualities | persisted |
| Constraint | allowed: 0, 90, 180, 270 |
| Default | 0 |
Example:
{
"1/1361/41": 1
}
Cluster 1361 Commands
Cluster 1361 has 10 client-to-server commands and 4 responses.
| ID | Hex | Command | Direction | Conformance | Response | Description |
|---|---|---|---|---|---|---|
| 0 | 0x00 | AudioStreamAllocate | client → server | ADO | AudioStreamAllocateResponse | This command must allocate an audio stream on the camera and return an allocated audio stream identifier. |
| 1 | 0x01 | AudioStreamAllocateResponse | server → client | ADO | — | This command is sent by the camera in response to the AudioStreamAllocate command, carrying the newly allocated or re-used audio stream identifier. |
| 2 | 0x02 | AudioStreamDeallocate | client → server | ADO | status | This command must deallocate an audio stream on the camera, corresponding to the given audio stream identifier. |
| 3 | 0x03 | VideoStreamAllocate | client → server | VDO | VideoStreamAllocateResponse | This command must allocate a video stream on the camera and return an allocated video stream identifier. |
| 4 | 0x04 | VideoStreamAllocateResponse | server → client | VDO | — | This command is sent by the camera in response to the VideoStreamAllocate command, carrying the newly allocated or re-used video stream identifier. |
| 5 | 0x05 | VideoStreamModify | client → server | VDO & WMARK | OSD | status | This command is used to modify a stream specified by the VideoStreamID. |
| 6 | 0x06 | VideoStreamDeallocate | client → server | VDO | status | This command must deallocate a video stream on the camera, corresponding to the given video stream identifier. |
| 7 | 0x07 | SnapshotStreamAllocate | client → server | SNP | SnapshotStreamAllocateResponse | This command must allocate a snapshot stream on the device and return an allocated snapshot stream identifier. |
| 8 | 0x08 | SnapshotStreamAllocateResponse | server → client | SNP | — | This command is sent by the device in response to the SnapshotStreamAllocate command, carrying the newly allocated or re-used snapshot stream identifier. |
| 9 | 0x09 | SnapshotStreamModify | client → server | SNP & WMARK | OSD | status | This command is used to modify a stream specified by the VideoStreamID. |
| 10 | 0x0A | SnapshotStreamDeallocate | client → server | SNP | status | This command must deallocate an snapshot stream on the camera, corresponding to the given snapshot stream identifier. |
| 11 | 0x0B | SetStreamPriorities | client → server | M | status | This command must set the relative priorities of the various stream usages on the camera. |
| 12 | 0x0C | CaptureSnapshot | client → server | SNP | CaptureSnapshotResponse | This command returns a Snapshot from the camera. |
| 13 | 0x0D | CaptureSnapshotResponse | server → client | SNP | — | This command is sent by the device in response to the CaptureSnapshot command, carrying the requested snapshot. |
AcceptedCommandList
The AcceptedCommandList attribute lists the command IDs the endpoint actually implements:
endpoint_id / 1361 / 65529
{
"1/1361/65529": [
0,
2,
3,
5,
6,
7,
9,
10,
11,
12
]
}
Before sending a Cluster 1361 command, check that the command ID exists in endpoint/1361/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": 1361,
"command_name": "AudioStreamAllocate",
"payload": {},
"timed_request_timeout_ms": 1000
}
}
For Cluster 1361, always use "cluster_id": 1361. 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: AudioStreamAllocate
Purpose
This command must allocate an audio stream on the camera and return an allocated audio stream identifier.
Command Identity
| Field | Value |
|---|---|
| Command ID | 0 |
| Command hex | 0x00 |
| Command name | AudioStreamAllocate |
| Direction | client → server |
| Conformance | ADO |
| Response | AudioStreamAllocateResponse |
| Access | (invoke: manage) |
Payload Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | StreamUsage | streamUsage | StreamUsageEnum | M | allowed: Recording, Analysis, LiveView | Indicates the usage of the stream (Recording, LiveView, etc) that this allocation is for. |
| 1 | AudioCodec | audioCodec | AudioCodecEnum | M | — | Indicates the type of Codec used by the allocated stream. |
| 2 | ChannelCount | channelCount | uint8 | M | 1 to 8 | Indicates the number of channels used by the allocated stream, e.g., Mono (1), Stereo (2), etc. |
| 3 | SampleRate | sampleRate | uint32 | M | min 1 | Indicates the sampling rate of the audio stream in Hz. Typical values would be 48000 (48 kHz), 32000 (32 kHz) or 16000 (16 kHz). |
| 4 | BitRate | bitRate | uint32 | M | min 1 | Indicates the bitrate of the specified audio codec in bits per second. The default bitrate may vary based on the type of device and codec. |
| 5 | BitDepth | bitDepth | uint8 | M | allowed: 8, 16, 24, 32 | Indicates the number of bits of information (8, 16, 24 or 32 bits) used to represent each sample of the audio signal. |
AudioCodec values (AudioCodecEnum): 0 = OPUS, 1 = AAC-LC
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1361,
"command_name": "AudioStreamAllocate",
"payload": {
"streamUsage": 0,
"audioCodec": 0,
"channelCount": 1,
"sampleRate": 1,
"bitRate": 1,
"bitDepth": 1
}
}
}
The device answers with AudioStreamAllocateResponse (see below).
Command: AudioStreamAllocateResponse
Purpose
This command is sent by the camera in response to the AudioStreamAllocate command, carrying the newly allocated or re-used audio stream identifier.
Command Identity
| Field | Value |
|---|---|
| Command ID | 1 |
| Command hex | 0x01 |
| Command name | AudioStreamAllocateResponse |
| Direction | server → client (response) |
| Conformance | ADO |
Response Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | AudioStreamID | audioStreamID | AudioStreamID | M | — | — |
Command: AudioStreamDeallocate
Purpose
This command must deallocate an audio stream on the camera, corresponding to the given audio stream identifier.
Command Identity
| Field | Value |
|---|---|
| Command ID | 2 |
| Command hex | 0x02 |
| Command name | AudioStreamDeallocate |
| Direction | client → server |
| Conformance | ADO |
| Response | status |
| Access | (invoke: manage) |
Payload Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | AudioStreamID | audioStreamID | AudioStreamID | M | — | — |
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1361,
"command_name": "AudioStreamDeallocate",
"payload": {
"audioStreamID": 0
}
}
}
Command: VideoStreamAllocate
Purpose
This command must allocate a video stream on the camera and return an allocated video stream identifier.
Command Identity
| Field | Value |
|---|---|
| Command ID | 3 |
| Command hex | 0x03 |
| Command name | VideoStreamAllocate |
| Direction | client → server |
| Conformance | VDO |
| Response | VideoStreamAllocateResponse |
| Access | (invoke: manage) |
Payload Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | StreamUsage | streamUsage | StreamUsageEnum | M | allowed: Recording, Analysis, LiveView | Indicates the usage of the stream (Recording, LiveView, etc) that this allocation is for. |
| 1 | VideoCodec | videoCodec | VideoCodecEnum | M | — | Indicates the type of codec used by the allocated video stream. |
| 2 | MinFrameRate | minFrameRate | uint16 | M | 1 to MaxFrameRate | Indicates the minimum frame rate in frames per second of the allocated video stream. |
| 3 | MaxFrameRate | maxFrameRate | uint16 | M | min 1 | Indicates the maximum frame rate in frames per second of the allocated video stream. |
| 4 | MinResolution | minResolution | VideoResolutionStruct | M | — | Indicates the minimum resolution of the allocated video stream. |
| 5 | MaxResolution | maxResolution | VideoResolutionStruct | M | — | Indicates the maximum resolution of the allocated video stream. |
| 6 | MinBitRate | minBitRate | uint32 | M | 1 to MaxBitRate | Indicates the minimum bitrate in bits per second of the allocated video stream. |
| 7 | MaxBitRate | maxBitRate | uint32 | M | min 1 | Indicates the maximum bitrate in bits per second of the allocated video stream. |
| 8 | KeyFrameInterval | keyFrameInterval | uint16 | M | 0 to 65500 | Indicates the duration in milliseconds before a regular key-frame is generated. See KeyFrameInterval for further details. |
| 9 | WatermarkEnabled | watermarkEnabled | bool | WMARK | — | Indicates whether a watermark can be applied on the video stream. A value of TRUE means that watermarking has been enabled for that stream. |
| 10 | OSDEnabled | osdEnabled | bool | OSD | — | — |
VideoCodec values (VideoCodecEnum): 0 = H264, 1 = HEVC, 2 = VVC, 3 = AV1
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1361,
"command_name": "VideoStreamAllocate",
"payload": {
"streamUsage": 0,
"videoCodec": 0,
"minFrameRate": 1,
"maxFrameRate": 1,
"minResolution": {
"width": 1,
"height": 1
},
"maxResolution": {
"width": 1,
"height": 1
},
"minBitRate": 1,
"maxBitRate": 1,
"keyFrameInterval": 0
}
}
}
The device answers with VideoStreamAllocateResponse (see below).
Command: VideoStreamAllocateResponse
Purpose
This command is sent by the camera in response to the VideoStreamAllocate command, carrying the newly allocated or re-used video stream identifier.
Command Identity
| Field | Value |
|---|---|
| Command ID | 4 |
| Command hex | 0x04 |
| Command name | VideoStreamAllocateResponse |
| Direction | server → client (response) |
| Conformance | VDO |
Response Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | VideoStreamID | videoStreamID | VideoStreamID | M | — | — |
Command: VideoStreamModify
Purpose
This command is used to modify a stream specified by the VideoStreamID.
Command Identity
| Field | Value |
|---|---|
| Command ID | 5 |
| Command hex | 0x05 |
| Command name | VideoStreamModify |
| Direction | client → server |
| Conformance | VDO & WMARK | OSD |
| Response | status |
| Access | (invoke: manage) |
Payload Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | VideoStreamID | videoStreamID | VideoStreamID | M | — | — |
| 1 | WatermarkEnabled | watermarkEnabled | bool | [WMARK] | — | Indicates whether a watermark can be applied on the video stream. A value of TRUE means that watermarking has been requested for that stream. |
| 2 | OSDEnabled | osdEnabled | bool | [OSD] | — | — |
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1361,
"command_name": "VideoStreamModify",
"payload": {
"videoStreamID": 0
}
}
}
Command: VideoStreamDeallocate
Purpose
This command must deallocate a video stream on the camera, corresponding to the given video stream identifier.
Command Identity
| Field | Value |
|---|---|
| Command ID | 6 |
| Command hex | 0x06 |
| Command name | VideoStreamDeallocate |
| Direction | client → server |
| Conformance | VDO |
| Response | status |
| Access | (invoke: manage) |
Payload Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | VideoStreamID | videoStreamID | VideoStreamID | M | — | — |
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1361,
"command_name": "VideoStreamDeallocate",
"payload": {
"videoStreamID": 0
}
}
}
Command: SnapshotStreamAllocate
Purpose
This command must allocate a snapshot stream on the device and return an allocated snapshot stream identifier.
Command Identity
| Field | Value |
|---|---|
| Command ID | 7 |
| Command hex | 0x07 |
| Command name | SnapshotStreamAllocate |
| Direction | client → server |
| Conformance | SNP |
| Response | SnapshotStreamAllocateResponse |
| Access | (invoke: manage) |
Payload Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | ImageCodec | imageCodec | ImageCodecEnum | M | — | Indicates the type of image codec to be used by the allocated snapshot stream as described in ImageCodecEnum. |
| 1 | MaxFrameRate | maxFrameRate | uint16 | M | min 1 | Indicates the maximum frame rate in frames per second of the allocated snapshot stream. |
| 2 | MinResolution | minResolution | VideoResolutionStruct | M | — | Indicates the minimum resolution of the allocated snapshot stream. |
| 3 | MaxResolution | maxResolution | VideoResolutionStruct | M | — | Indicates the maximum resolution of the allocated snapshot stream. |
| 4 | Quality | quality | uint8 | M | 1 to 100 | Indicates a codec quality metric(integer between 1 and 100) for the allocated snapshot stream. |
| 5 | WatermarkEnabled | watermarkEnabled | bool | WMARK | — | Indicates whether a watermark can be applied on the snapshot stream. A value of TRUE means that watermarking has been requested for that stream. |
| 6 | OSDEnabled | osdEnabled | bool | OSD | — | — |
ImageCodec values (ImageCodecEnum): 0 = JPEG, 1 = HEIC
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1361,
"command_name": "SnapshotStreamAllocate",
"payload": {
"imageCodec": 0,
"maxFrameRate": 1,
"minResolution": {
"width": 1,
"height": 1
},
"maxResolution": {
"width": 1,
"height": 1
},
"quality": 1
}
}
}
The device answers with SnapshotStreamAllocateResponse (see below).
Command: SnapshotStreamAllocateResponse
Purpose
This command is sent by the device in response to the SnapshotStreamAllocate command, carrying the newly allocated or re-used snapshot stream identifier.
Command Identity
| Field | Value |
|---|---|
| Command ID | 8 |
| Command hex | 0x08 |
| Command name | SnapshotStreamAllocateResponse |
| Direction | server → client (response) |
| Conformance | SNP |
Response Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | SnapshotStreamID | snapshotStreamID | SnapshotStreamID | M | — | — |
Command: SnapshotStreamModify
Purpose
This command is used to modify a stream specified by the VideoStreamID.
Command Identity
| Field | Value |
|---|---|
| Command ID | 9 |
| Command hex | 0x09 |
| Command name | SnapshotStreamModify |
| Direction | client → server |
| Conformance | SNP & WMARK | OSD |
| Response | status |
| Access | (invoke: manage) |
Payload Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | SnapshotStreamID | snapshotStreamID | SnapshotStreamID | M | — | — |
| 1 | WatermarkEnabled | watermarkEnabled | bool | [WMARK] | — | Indicates whether a watermark can be applied on the video stream. A value of TRUE means that watermarking has been requested for that stream. |
| 2 | OSDEnabled | osdEnabled | bool | [OSD] | — | — |
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1361,
"command_name": "SnapshotStreamModify",
"payload": {
"snapshotStreamID": 0
}
}
}
Command: SnapshotStreamDeallocate
Purpose
This command must deallocate an snapshot stream on the camera, corresponding to the given snapshot stream identifier.
Command Identity
| Field | Value |
|---|---|
| Command ID | 10 |
| Command hex | 0x0A |
| Command name | SnapshotStreamDeallocate |
| Direction | client → server |
| Conformance | SNP |
| Response | status |
| Access | (invoke: manage) |
Payload Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | SnapshotStreamID | snapshotStreamID | SnapshotStreamID | M | — | — |
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1361,
"command_name": "SnapshotStreamDeallocate",
"payload": {
"snapshotStreamID": 0
}
}
}
Command: SetStreamPriorities
Purpose
This command must set the relative priorities of the various stream usages on the camera. The camera then bases its allocation of resources for each stream allocation based on the order of these stream priorities. In order to avoid the complexity of dynamically changing the configurations of currently active streams, this command must NOT be invoked when there are allocated streams. If changes are required while streams are allocated, all existing streams would need to be deallocated before invoking this command.
Command Identity
| Field | Value |
|---|---|
| Command ID | 11 |
| Command hex | 0x0B |
| Command name | SetStreamPriorities |
| Direction | client → server |
| Conformance | M |
| Response | status |
| Access | (invoke: admin) |
Payload Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | StreamPriorities | streamPriorities | list of StreamUsageEnum | M | desc | The StreamPriorities field contains a list of stream usages in decreasing order of stream priorities, starting at index 0 of the list, with no duplicate values allowed, and only containing entries found in SupportedStreamUsages. |
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1361,
"command_name": "SetStreamPriorities",
"payload": {
"streamPriorities": []
}
}
}
Command: CaptureSnapshot
Purpose
This command returns a Snapshot from the camera.
Command Identity
| Field | Value |
|---|---|
| Command ID | 12 |
| Command hex | 0x0C |
| Command name | CaptureSnapshot |
| Direction | client → server |
| Conformance | SNP |
| Response | CaptureSnapshotResponse |
| Access | (invoke: operate) |
Payload Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | SnapshotStreamID | snapshotStreamID | SnapshotStreamID (nullable) | M | — | — |
| 1 | RequestedResolution | requestedResolution | VideoResolutionStruct | M | — | The RequestedResolution field is a VideoResolutionStruct representing the preferred resolution of the snapshot. |
Bridge Command Example
{
"message_id": "1",
"command": "device_command",
"args": {
"endpoint_id": 1,
"cluster_id": 1361,
"command_name": "CaptureSnapshot",
"payload": {
"snapshotStreamID": 0,
"requestedResolution": {
"width": 1,
"height": 1
}
}
}
}
The device answers with CaptureSnapshotResponse (see below).
Command: CaptureSnapshotResponse
Purpose
This command is sent by the device in response to the CaptureSnapshot command, carrying the requested snapshot.
Command Identity
| Field | Value |
|---|---|
| Command ID | 13 |
| Command hex | 0x0D |
| Command name | CaptureSnapshotResponse |
| Direction | server → client (response) |
| Conformance | SNP |
Response Fields
| ID | Field | Payload key | Type | Conformance | Constraint | Meaning |
|---|---|---|---|---|---|---|
| 0 | Data | data | octstr | M | — | The Data field is an octet string representing the image data. |
| 1 | ImageCodec | imageCodec | ImageCodecEnum | M | — | The ImageCodec field is an ImageCodecEnum representing the codec used to encode the image. This must match the value found in the corresponding allocated snapshot stream and is provided for convenience. |
| 2 | Resolution | resolution | VideoResolutionStruct | M | — | The Resolution field is a VideoResolutionStruct representing the resolution of the supplied image. |
ImageCodec values (ImageCodecEnum): 0 = JPEG, 1 = HEIC
Cluster 1361 Events
Cluster 1361 defines no events.
SmartphoneKey Notes
- Cluster 1361 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/1361/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.