Locks, closures, HVAC and lighting514 — Fan Control

Matter Cluster 514 — Fan Control

Matter Cluster 514 (0x0202) Fan Control: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 514 — Fan Control Cluster

Matter Cluster 514, also written as 0x0202, is the Fan Control Cluster. This cluster specifies an interface to control the speed of a fan.

Cluster Identity

FieldValue
Cluster ID decimal514
Cluster ID hex0x0202
Cluster nameFan Control
Cluster revision (Matter 1.6.1)6
Roleapplication
ScopeEndpoint
PICS codeFAN
Typical endpoint1

Revision history

RevisionChange
1Mandatory global ClusterRevision attribute added
2New data model format and notation; Percent, speed and motion settings; General cleanup
3Addition of AirflowDirection and Step command
4Change conformance for FanModeSequenceEnum
5Clarified attribute usage, added conformance column
6Removed Zigbee related elements, removed P quality

Shadow Path Format

Cluster 514 values in the device shadow use this format:

endpoint_id / 514 / attribute_id

Example:

{
  "1/514/0": 0
}
PartMeaning
1Endpoint ID
514Fan Control cluster
0FanMode attribute

Cluster 514 Features

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

BitCodeFeatureConformanceMeaning
0SPDMultiSpeedO0-SpeedMax Fan Speeds
1AUTAutoOAutomatic mode supported for fan speed
2RCKRockingORocking movement supported
3WNDWindOWind emulation supported
4STEPStepOStep command supported
5DIRAirflowDirectionOAirflow Direction attribute is supported

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


Data Types

AirflowDirectionEnum

ValueNameConformanceMeaning
0ForwardMAirflow is in the forward direction
1ReverseMAirflow is in the reverse direction

FanModeEnum

ValueNameConformanceMeaning
0OffMFan is off
1LowOFan using low speed
2Medium[value]Fan using medium speed
3HighMFan using high speed
4OnD—
5AutoAUTFan is using auto mode
6SmartDFan is using smart mode

FanModeSequenceEnum

ValueNameConformanceMeaning
0OffLowMedHigh[!AUT]Fan is capable of off, low, medium and high modes
1OffLowHigh[!AUT]Fan is capable of off, low and high modes
2OffLowMedHighAuto[AUT]Fan is capable of off, low, medium, high and auto modes
3OffLowHighAuto[AUT]Fan is capable of off, low, high and auto modes
4OffHighAuto[AUT]Fan is capable of off, high and auto modes
5OffHigh[!AUT]Fan is capable of off and high modes

StepDirectionEnum

ValueNameConformanceMeaning
0IncreaseMStep moves in increasing direction
1DecreaseMStep moves in decreasing direction

RockBitmap (bitmap)

BitNameConformanceMeaning
0RockLeftRightMIndicate rock left to right
1RockUpDownMIndicate rock up and down
2RockRoundMIndicate rock around

WindBitmap (bitmap)

BitNameConformanceMeaning
0SleepWindMIndicate sleep wind
1NaturalWindMIndicate natural wind

Cluster 514 Attributes

Cluster 514 defines 12 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
00x0000FanModeFanModeEnumMR/W (read: view, write: operate)persisted—
10x0001FanModeSequenceFanModeSequenceEnumMR (read: view)——
20x0002PercentSettingpercentMR/W (read: view, write: operate)nullable—
30x0003PercentCurrentpercentMR (read: view)——
40x0004SpeedMaxuint8SPDR (read: view)——
50x0005SpeedSettinguint8SPDR/W (read: view, write: operate)nullable—
60x0006SpeedCurrentuint8SPDR (read: view)——
70x0007RockSupportRockBitmapRCKR (read: view)——
80x0008RockSettingRockBitmapRCKR/W (read: view, write: operate)——
90x0009WindSupportWindBitmapWNDR (read: view)——
100x000AWindSettingWindBitmapWNDR/W (read: view, write: operate)——
110x000BAirflowDirectionAirflowDirectionEnumDIRR/W (read: view, write: operate)——

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

Attribute Details

Attribute 0 / 0x0000 — FanMode

Path example:

1/514/0

Indicates the current speed mode of the fan. This attribute is set to one of the values in FanModeEnum supported by the server as indicated in the FanModeSequence attribute. The Low value is supported if and only if the FanModeSequence attribute value is less than 4. The Medium value is supported if and only if the FanModeSequence attribute value is 0 or 2.

PropertyValue
TypeFanModeEnum
ConformanceM
AccessR/W (read: view, write: operate)
Qualitiespersisted
Constraintdesc

Values (FanModeEnum):

ValueNameMeaning
0OffFan is off
1LowFan using low speed
2MediumFan using medium speed
3HighFan using high speed
4On—
5AutoFan is using auto mode
6SmartFan is using smart mode

Example:

{
  "1/514/0": 0
}

Attribute 1 / 0x0001 — FanModeSequence

Path example:

1/514/1

This attribute indicates the fan speed ranges that is supported by the server.

PropertyValue
TypeFanModeSequenceEnum
ConformanceM
AccessR (read: view)

Values (FanModeSequenceEnum):

ValueNameMeaning
0OffLowMedHighFan is capable of off, low, medium and high modes
1OffLowHighFan is capable of off, low and high modes
2OffLowMedHighAutoFan is capable of off, low, medium, high and auto modes
3OffLowHighAutoFan is capable of off, low, high and auto modes
4OffHighAutoFan is capable of off, high and auto modes
5OffHighFan is capable of off and high modes

Example:

{
  "1/514/1": 0
}

Attribute 2 / 0x0002 — PercentSetting

Path example:

1/514/2

Indicates the speed setting for the fan with a value of 0 indicating that the fan is off and a value of 100 indicating that the fan is set to run at its maximum speed. If the FanMode attribute is set to Auto, the value of this attribute is set to null. This attribute may be written to by a client to indicate a new fan speed. If a client writes null to this attribute, the attribute value must NOT change.

PropertyValue
Typepercent
ConformanceM
AccessR/W (read: view, write: operate)
Qualitiesnullable
Constraintmax 100

Example:

{
  "1/514/2": 1
}

Attribute 3 / 0x0003 — PercentCurrent

Path example:

1/514/3

Indicates the actual currently operating fan speed, or zero to indicate that the fan is off. There may be a temporary mismatch between the value of this attribute and the value of the PercentSetting attribute due to other system requirements or constraints that would not allow the fan to operate at the requested setting. For example, if the value of this attribute is currently 50%, and the PercentSetting attribute is newly set to 25%, the value of this attribute may stay above 25% for a period necessary to dissipate internal heat, maintain product operational safety, etc.

PropertyValue
Typepercent
ConformanceM
AccessR (read: view)
Constraintmax 100

Example:

{
  "1/514/3": 1
}

Attribute 4 / 0x0004 — SpeedMax

Path example:

1/514/4

Indicates the maximum value to which the SpeedSetting attribute can be set.

PropertyValue
Typeuint8
ConformanceSPD
AccessR (read: view)
Constraint1 to 100

Example:

{
  "1/514/4": 1
}

Attribute 5 / 0x0005 — SpeedSetting

Path example:

1/514/5

Indicates the speed setting for the fan. This attribute may be written by a client to indicate a new fan speed. If the FanMode attribute is set to Auto, the value of this attribute is set to null. The server must support all values between 0 and SpeedMax.

PropertyValue
Typeuint8
ConformanceSPD
AccessR/W (read: view, write: operate)
Qualitiesnullable
Constraintmax SpeedMax

Example:

{
  "1/514/5": 1
}

Attribute 6 / 0x0006 — SpeedCurrent

Path example:

1/514/6

Indicates the actual currently operating fan speed, or zero to indicate that the fan is off. There may be a temporary mismatch between the value of this attribute and the value of the SpeedSetting attribute due to other system requirements or constraints that would not allow the fan to operate at the requested setting. For example, if the value of this attribute is currently 5, and the SpeedSetting attribute is newly set to 2, the value of this attribute may stay above 2 for a period necessary to dissipate internal heat, maintain product operational safety, etc.

PropertyValue
Typeuint8
ConformanceSPD
AccessR (read: view)
Constraintmax SpeedMax

Example:

{
  "1/514/6": 1
}

Attribute 7 / 0x0007 — RockSupport

Path example:

1/514/7

This attribute is a bitmap that indicates the rocking motions that are supported by the server. If this attribute is supported by the server, at least one bit is set in this attribute.

PropertyValue
TypeRockBitmap
ConformanceRCK
AccessR (read: view)
Constraintmin 1

Bits (RockBitmap):

BitNameMeaning
0RockLeftRightIndicate rock left to right
1RockUpDownIndicate rock up and down
2RockRoundIndicate rock around

Example:

{
  "1/514/7": 0
}

Attribute 8 / 0x0008 — RockSetting

Path example:

1/514/8

This attribute is a bitmap that indicates the currently active fan rocking motion setting. Each bit only be set to 1, if the corresponding bit in the RockSupport attribute is set to 1, otherwise a status code of CONSTRAINT_ERROR is returned. If a combination of supported bits is set by a client, and the server does not support the combination, the lowest supported single bit in the combination is set and active, and all other bits indicates zero. For example: If RockUpDown and RockRound are both set, but this combination is not possible, then only RockUpDown becomes active.

PropertyValue
TypeRockBitmap
ConformanceRCK
AccessR/W (read: view, write: operate)
Constraintdesc

Bits (RockBitmap):

BitNameMeaning
0RockLeftRightIndicate rock left to right
1RockUpDownIndicate rock up and down
2RockRoundIndicate rock around

Example:

{
  "1/514/8": 0
}

Attribute 9 / 0x0009 — WindSupport

Path example:

1/514/9

This attribute is a bitmap that indicates what wind modes are supported by the server. If this attribute is supported by the server, at least one bit is set in this attribute.

PropertyValue
TypeWindBitmap
ConformanceWND
AccessR (read: view)
Constraintmin 1

Bits (WindBitmap):

BitNameMeaning
0SleepWindIndicate sleep wind
1NaturalWindIndicate natural wind

Example:

{
  "1/514/9": 0
}

Attribute 10 / 0x000A — WindSetting

Path example:

1/514/10

This attribute is a bitmap that indicates the current active fan wind feature settings. Each bit only be set to 1, if the corresponding bit in the WindSupport attribute is set to 1, otherwise a status code of CONSTRAINT_ERROR is returned. If a combination of supported bits is set by a client, and the server does not support the combination, the lowest supported single bit in the combination is set and active, and all other bits indicates zero. For example: If Sleep Wind and Natural Wind are set, but this combination is not possible, then only Sleep Wind becomes active.

PropertyValue
TypeWindBitmap
ConformanceWND
AccessR/W (read: view, write: operate)
Constraintdesc

Bits (WindBitmap):

BitNameMeaning
0SleepWindIndicate sleep wind
1NaturalWindIndicate natural wind

Example:

{
  "1/514/10": 0
}

Attribute 11 / 0x000B — AirflowDirection

Path example:

1/514/11

Indicates the current airflow direction of the fan. This attribute may be written by a client to indicate a new airflow direction for the fan. This attribute is set to one of the values in the AirflowDirectionEnum table.

PropertyValue
TypeAirflowDirectionEnum
ConformanceDIR
AccessR/W (read: view, write: operate)

Values (AirflowDirectionEnum):

ValueNameMeaning
0ForwardAirflow is in the forward direction
1ReverseAirflow is in the reverse direction

Example:

{
  "1/514/11": 0
}

Cluster 514 Commands

Cluster 514 has 1 client-to-server command and 0 responses.

IDHexCommandDirectionConformanceResponseDescription
00x00Stepclient → serverSTEPstatusThis command indirectly changes the speed-oriented attributes of the fan in steps rather than using the speed-oriented attributes, FanMode, PercentSetting, or SpeedSetting, …

AcceptedCommandList

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

endpoint_id / 514 / 65529
{
  "1/514/65529": [
    0
  ]
}

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

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

Purpose

This command indirectly changes the speed-oriented attributes of the fan in steps rather than using the speed-oriented attributes, FanMode, PercentSetting, or SpeedSetting, directly. This command supports, for example, a user-operated and wall-mounted toggle switch that can be used to increase or decrease the speed of the fan by pressing the toggle switch up or down until the desired fan speed is reached. How this command is interpreted by the server and how it affects the values of the speed-oriented attributes is implementation specific. For example, a fan supports this command, and the value of the FanModeSequence attribute is 0.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameStep
Directionclient → server
ConformanceSTEP
Responsestatus
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0DirectiondirectionStepDirectionEnumM—Indicates whether the speed-oriented attributes increase or decrease to the next step value.
1WrapwrapboolO—Indicates if the speed-oriented attributes wrap between highest and lowest step value.
2LowestOfflowestOffboolO—Indicates that the fan being off (FanMode = Off, PercentSetting = 0, or SpeedSetting = 0) is included as a step value.

Direction values (StepDirectionEnum): 0 = Increase, 1 = Decrease

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 514,
    "command_name": "Step",
    "payload": {
      "direction": 0
    }
  }
}

Cluster 514 Events

Cluster 514 defines no events.


SmartphoneKey Notes

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