Cameras1360 — Zone Management

Matter Cluster 1360 — Zone Management

Matter Cluster 1360 (0x0550) Zone Management: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 1360 — Zone Management Cluster

Matter Cluster 1360, also written as 0x0550, is the Zone Management Cluster. This cluster provides an interface to manage regions of interest, or Zones, which can be either manufacturer or user defined. This cluster also defines a Trigger, which is a set of conditions and timing that apply to a Zone and allow for events to be generated or the triggering state to be used by other clusters such as Push AV Stream Transport Cluster.

Cluster Identity

FieldValue
Cluster ID decimal1360
Cluster ID hex0x0550
Cluster nameZone Management
Cluster revision (Matter 1.6.1)1
Roleapplication
ScopeEndpoint
PICS codeZONEMGMT
Typical endpoint1

Revision history

RevisionChange
1Initial version of the Zone Management cluster

Shadow Path Format

Cluster 1360 values in the device shadow use this format:

endpoint_id / 1360 / attribute_id

Example:

{
  "1/1360/1": 1
}
PartMeaning
1Endpoint ID
1360Zone Management cluster
1MaxZones attribute

Cluster 1360 Features

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

BitCodeFeatureConformanceMeaning
0TWODCARTTwoDimensionalCartesianZoneOSupports Two Dimensional Cartesian Zones
1PERZONESENSPerZoneSensitivity[TWODCART]Supports a sensitivity value per Zone
2USERDEFINEDUserDefined[TWODCART]Supports user defined zones
3FOCUSZONESFocusZones[USERDEFINED]Supports user defined focus zones

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


Data Types

ZoneEventStoppedReasonEnum

ValueNameConformanceMeaning
0ActionStoppedMIndicates that whatever triggered the Zone event has stopped being detected.
1TimeoutMIndicates that the max duration for detecting triggering activity has been reached.

ZoneEventTriggeredReasonEnum

ValueNameConformanceMeaning
0MotionMZone event triggered because motion is detected

ZoneSourceEnum

ValueNameConformanceMeaning
0MfgMIndicates a Manufacturer defined Zone.
1UserMIndicates a User defined Zone.

ZoneTypeEnum

ValueNameConformanceMeaning
0TwoDCARTZoneMIndicates a Two Dimensional Cartesian Zone

ZoneUseEnum

This data type is derived from enum8, and is used to indicate intended Zone usage.

ValueNameConformanceMeaning
0MotionMIndicates Zone is intended to detect Motion
1PrivacyMIndicates Zone is intended to protect privacy
2FocusFOCUSZONESIndicates Zone provides a focus area

TwoDCartesianVertexStruct (struct)

This struct is used to encode a point on the 2 Dimensional Cartesian Plane for the TwoDCartesianZone feature.

FieldNameTypeConformanceConstraintMeaning
0Xuint16M—This field represents the position of the vertex along the horizontal (x) axis.
1Yuint16M—This field represents the position of the vertex along the vertical (y) axis.

TwoDCartesianZoneStruct (struct)

This struct is used to encode all information needed to define a TwoDCartesianZone.

FieldNameTypeConformanceConstraintMeaning
0NamestringMmax length 32The Name field is a string representing the name of the Zone.
1UseZoneUseEnumM—The Use field is a Zone Use Enum representing the purpose of the Zone.
2Verticeslist of TwoDCartesianVertexStructM3 to 12 entriesThe Vertices field is a list of vertices of type TwoDCartesianVertexStruct.
3ColorstringOallowed: 7, 9Indicates the color, in RGB or RGBA, used for attaching a color to the Zone definition and is a purely informational value to help in uniformly presenting Zones in User Interfaces and may be ignored.

ZoneInformationStruct (struct)

This struct is used to encode basic information about a Zone without containing the specifics of how the zone is defined.

FieldNameTypeConformanceConstraintMeaning
0ZoneIDZoneIDM——
1ZoneTypeZoneTypeEnumM—Indicates the zone type which defines the Zone.
2ZoneSourceZoneSourceEnumM—Indicates the source of the Zone.
3TwoDCartesianZoneTwoDCartesianZoneStructTWODCART & ZoneType = TwoDCARTZone—Indicates the detailed information for the TwoDCartesianZone.

ZoneTriggerControlStruct (struct)

This struct is used to encode a set of values for controlling the generation of ZoneTriggered and ZoneStopped events from the Node. Zone events can be triggered due to many underlying reasons, such as a motion sensor on the device, and this is intended to be manufacturer-specific.

FieldNameTypeConformanceConstraintMeaning
0ZoneIDZoneIDM——
1InitialDurationelapsed-sM1 to 65535Indicates the initial duration in seconds after triggering activity is first detected before the Node could generate a ZoneStopped event.
2AugmentationDurationelapsed-sMmax InitialDurationIndicates the duration in seconds that the TriggerDetectedDuration value is to be extended by if the triggering activity is still detected during this period.
3MaxDurationelapsed-sMmin InitialDurationIndicates the maximum duration in seconds after the initial triggering activity detection that additional triggering activity will be detected.
4BlindDurationelapsed-sM—Indicates the duration in seconds after a ZoneStopped event is generated that the Node must NOT generate any ZoneTriggered events.
5Sensitivityuint8PERZONESENS1 to SensitivityMaxIndicates the per-zone sensitivity of the underlying zone triggering detection mechanism.

Cluster 1360 Attributes

Cluster 1360 defines 7 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
00x0000MaxUserDefinedZonesuint8USERDEFINEDR (read: view)——
10x0001MaxZonesuint8MR (read: view)——
20x0002Zoneslist of ZoneInformationStructMR (read: view)persisted—
30x0003Triggerslist of ZoneTriggerControlStructMR (read: view)persisted—
40x0004SensitivityMaxuint8MR (read: view)——
50x0005Sensitivityuint8!PERZONESENSR/W (read: view, write: operate)persisted—
60x0006TwoDCartesianMaxTwoDCartesianVertexStructTWODCARTR (read: view)——

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 — MaxUserDefinedZones

Path example:

1/1360/0

This attribute specifies the maximum number of user-defined zones that can be supported by the Node. This value is manufacturer-defined.

PropertyValue
Typeuint8
ConformanceUSERDEFINED
AccessR (read: view)
Constraintmin 5

Example:

{
  "1/1360/0": 5
}

Attribute 1 / 0x0001 — MaxZones

Path example:

1/1360/1

This attribute specifies the maximum number of zones allowed to created. This value is the sum of the number of predefined Mfg Zones, and MaxUserDefinedZones, if supported. This value is manufacturer-defined.

PropertyValue
Typeuint8
ConformanceM
AccessR (read: view)
Constraintmin 1

Example:

{
  "1/1360/1": 1
}

Attribute 2 / 0x0002 — Zones

Path example:

1/1360/2

This attribute specifies all currently defined zones as a list of ZoneInformationStruct. Use the commands from this cluster to add, update or remove entries.

PropertyValue
Typelist of ZoneInformationStruct
ConformanceM
AccessR (read: view)
Qualitiespersisted
Constraint0 to MaxZones entries

Each entry is a ZoneInformationStruct (see Data Types).

Example:

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

Attribute 3 / 0x0003 — Triggers

Path example:

1/1360/3

This attribute specifies all currently defined triggers controlling the generation of ZoneTriggered and ZoneStopped events and is a list of ZoneTriggerControlStruct. To add an entry use CreateOrUpdateTrigger. To remove an entry use RemoveTrigger.

PropertyValue
Typelist of ZoneTriggerControlStruct
ConformanceM
AccessR (read: view)
Qualitiespersisted
Constraint0 to MaxZones entries

Each entry is a ZoneTriggerControlStruct (see Data Types).

Example:

{
  "1/1360/3": []
}

Attribute 4 / 0x0004 — SensitivityMax

Path example:

1/1360/4

This attribute specifies the hardware specific value for the number of supported sensitivity levels. This value is manufacturer defined. If the PerZoneSensitivity feature is supported, the value of this attribute determines valid values for the Sensitivity field in ZoneTriggerControlStruct; if the PerZoneSensitivity feature is not supported, the value of this attribute determines valid values for the Sensitivity Attribute. Implementations require two to ten levels of sensitivity control in order to ensure that there is some user-level customization of the Trigger.

PropertyValue
Typeuint8
ConformanceM
AccessR (read: view)
Constraint2 to 10

Example:

{
  "1/1360/4": 2
}

Attribute 5 / 0x0005 — Sensitivity

Path example:

1/1360/5

This attribute specifies the sensitivity of the underlying zone triggering detection mechanism if the PerZoneSensitivity features is not supported. The higher the value the more sensitive the detection. The actual meaning of the values is implementation specific.

PropertyValue
Typeuint8
Conformance!PERZONESENS
AccessR/W (read: view, write: operate)
Qualitiespersisted
Constraint1 to SensitivityMax

Example:

{
  "1/1360/5": 1
}

Attribute 6 / 0x0006 — TwoDCartesianMax

Path example:

1/1360/6

This attribute specifies the maximum X and Y points that are allowed for TwoD Cartesian Zones. If this cluster is on the same endpoint as Camera AV Stream Management Cluster, these values is equal to the value of SensorWidth - 1 and SensorHeight - 1 from the VideoSensorParams attribute.

PropertyValue
TypeTwoDCartesianVertexStruct
ConformanceTWODCART
AccessR (read: view)

Value is a TwoDCartesianVertexStruct struct (see Data Types).

Example:

{
  "1/1360/6": {
    "x": 1,
    "y": 1
  }
}

Cluster 1360 Commands

Cluster 1360 has 5 client-to-server commands and 1 response.

IDHexCommandDirectionConformanceResponseDescription
00x00CreateTwoDCartesianZoneclient → serverTWODCART & USERDEFINEDCreateTwoDCartesianZoneResponseThis command must create and store a TwoD Cartesian Zone.
10x01CreateTwoDCartesianZoneResponseserver → clientTWODCART & USERDEFINED—This command is generated in response to a CreateTwoDCartesianZone command.
20x02UpdateTwoDCartesianZoneclient → serverTWODCART & USERDEFINEDstatusThe UpdateTwoDCartesianZone must update a stored TwoD Cartesian Zone.
30x03RemoveZoneclient → serverUSERDEFINEDstatusThis command must remove the user-defined Zone indicated by ZoneID.
40x04CreateOrUpdateTriggerclient → serverMstatusThis command is used to create or update a Trigger for the specified motion Zone.
50x05RemoveTriggerclient → serverMstatusThis command must remove the Trigger for the provided ZoneID.

AcceptedCommandList

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

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

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

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

Purpose

This command must create and store a TwoD Cartesian Zone.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameCreateTwoDCartesianZone
Directionclient → server
ConformanceTWODCART & USERDEFINED
ResponseCreateTwoDCartesianZoneResponse
Access(invoke: manage)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ZonezoneTwoDCartesianZoneStructM—The Zone field is a TwoDCartesianZoneStruct representing all information required to define the TwoD Cartesian Zone.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1360,
    "command_name": "CreateTwoDCartesianZone",
    "payload": {
      "zone": {
        "name": "example",
        "use": 0,
        "vertices": [],
        "color": "example"
      }
    }
  }
}

The device answers with CreateTwoDCartesianZoneResponse (see below).


Command: CreateTwoDCartesianZoneResponse

Purpose

This command is generated in response to a CreateTwoDCartesianZone command.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameCreateTwoDCartesianZoneResponse
Directionserver → client (response)
ConformanceTWODCART & USERDEFINED

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ZoneIDzoneIDZoneIDM——

Command: UpdateTwoDCartesianZone

Purpose

The UpdateTwoDCartesianZone must update a stored TwoD Cartesian Zone.

Command Identity

FieldValue
Command ID2
Command hex0x02
Command nameUpdateTwoDCartesianZone
Directionclient → server
ConformanceTWODCART & USERDEFINED
Responsestatus
Access(invoke: manage)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ZoneIDzoneIDZoneIDM——
1ZonezoneTwoDCartesianZoneStructM—The Zone field is a TwoDCartesianZoneStruct representing updated Zone information.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1360,
    "command_name": "UpdateTwoDCartesianZone",
    "payload": {
      "zoneID": 0,
      "zone": {
        "name": "example",
        "use": 0,
        "vertices": [],
        "color": "example"
      }
    }
  }
}

Command: RemoveZone

Purpose

This command must remove the user-defined Zone indicated by ZoneID.

Command Identity

FieldValue
Command ID3
Command hex0x03
Command nameRemoveZone
Directionclient → server
ConformanceUSERDEFINED
Responsestatus
Access(invoke: manage)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ZoneIDzoneIDZoneIDM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1360,
    "command_name": "RemoveZone",
    "payload": {
      "zoneID": 0
    }
  }
}

Command: CreateOrUpdateTrigger

Purpose

This command is used to create or update a Trigger for the specified motion Zone.

Command Identity

FieldValue
Command ID4
Command hex0x04
Command nameCreateOrUpdateTrigger
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: manage)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0TriggertriggerZoneTriggerControlStructM—This field is a ZoneTriggerControlStruct representing all information required to define the Trigger conditions.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1360,
    "command_name": "CreateOrUpdateTrigger",
    "payload": {
      "trigger": {
        "zoneID": 0,
        "initialDuration": 1,
        "augmentationDuration": 1,
        "maxDuration": 1
      }
    }
  }
}

Command: RemoveTrigger

Purpose

This command must remove the Trigger for the provided ZoneID.

Command Identity

FieldValue
Command ID5
Command hex0x05
Command nameRemoveTrigger
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: manage)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ZoneIDzoneIDZoneIDM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1360,
    "command_name": "RemoveTrigger",
    "payload": {
      "zoneID": 0
    }
  }
}

Cluster 1360 Events

IDHexEventPriorityConformanceDescription
00x00ZoneTriggeredinfoMThis event is generated when a Zone is first triggered.
10x01ZoneStoppedinfoMThis event is generated when either the TriggerDetectedDuration value is exceeded by the TimeSinceInitialTrigger value or the MaxDuration value is exceeded by the TimeSinceInitialTrigger value.

Event 0 — ZoneTriggered

This event is generated when a Zone is first triggered.

IDFieldTypeConformanceMeaning
0ZoneZoneIDMThis field contains the ZoneID of the Zone that triggered.
1ReasonZoneEventTriggeredReasonEnumMIndicates why the zone was triggered.

Event 1 — ZoneStopped

This event is generated when either the TriggerDetectedDuration value is exceeded by the TimeSinceInitialTrigger value or the MaxDuration value is exceeded by the TimeSinceInitialTrigger value.

IDFieldTypeConformanceMeaning
0ZoneZoneIDMThis field contains the ZoneID of the Zone that stopped.
1ReasonZoneEventStoppedReasonEnumMIndicates why the zone stopped triggering.

SmartphoneKey Notes

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