Matter Clusters
Matter cluster attributes, device info fields, and supported commands for SmartphoneKey Matter devices.
Matter Cluster Documentation
What is Matter?
Matter is a smart-device interoperability standard. Instead of every vendor inventing a completely different device data model, Matter defines a common structure so controllers, apps, hubs, and cloud systems can understand devices in a predictable way.
The most important building blocks are:
- Node: the full physical device on the network.
- Endpoint: a functional part of the device. One physical product can expose multiple endpoints.
- Cluster: a group of related features or properties. Think of a cluster as a topic area, such as Door Lock, Battery, or Temperature Measurement.
- Attribute: one specific value inside a cluster, such as
LockStateorBatVoltage. - Command: an action you can send to a cluster, such as lock/unlock for a lock device.
How to read the table
- Endpoint tells you which functional part of the device the row belongs to.
- Cluster gives the human-readable cluster name followed by its numeric ID in parentheses, for example
Basic Information (40). - Attribute is the exact property exposed by the cluster.
- Path uses the format
endpoint/cluster/attributeand is shown as inline code.
Detailed meaning, value semantics, and examples for each attribute are in the expandable cards under each table.
Important beginner note
A cluster is not the same thing as a device type.
For example, the Boolean State cluster only gives a true/false value. That value can mean very different things depending on the endpoint device type:
- for a contact sensor, it may mean open/closed
- for a leak sensor, it may mean leak/no leak
So Matter data must always be interpreted using both:
- the cluster and attribute
- the endpoint role / device type context
Device info data
This section documents values reported by Matter device clusters. These fields are data attributes used for inventory, state shadows, diagnostics, power status, and sensor readings. They are not commands.
Root device / system information
These rows describe the overall device identity and diagnostic/network-management information. They are important for inventory, troubleshooting, and support, but they do not directly control the main user-facing lock function.
| Endpoint | Cluster | Attribute | Path |
|---|---|---|---|
| 0 | Basic Information (40) | VendorName | 0/40/1 |
| 0 | Basic Information (40) | ProductName | 0/40/3 |
| 0 | Basic Information (40) | HardwareVersionString | 0/40/8 |
| 0 | Basic Information (40) | SoftwareVersionString | 0/40/10 |
| 0 | Basic Information (40) | ManufacturingDate/DateCode | 0/40/11 |
| 0 | Basic Information (40) | SerialNumber | 0/40/15 |
| 0 | Basic Information (40) | VendorID | 0/40/2 |
| 0 | Basic Information (40) | ProductURL | 0/40/14 |
| 0 | General Diagnostics (51) | UpTime | 0/51/2 |
| 0 | General Diagnostics (51) | TotalOperationalHours | 0/51/3 |
| 0 | General Diagnostics (51) | BootReason | 0/51/4 |
| 0 | Thread Network Diagnostics (53) | NeighborTable | 0/53/7 |
| 0 | Thread Network Diagnostics (53) | RoutingRole | 0/53/1 |
| 0 | Thread Network Diagnostics (53) | NetworkName | 0/53/2 |
| 0 | Wi-Fi Network Diagnostics (54) | RSSI | 0/54/4 |
| 0 | ICD Management (70) | IdleModeDuration | 0/70/0 |
| 0 | ICD Management (70) | ActiveModeDuration | 0/70/1 |
| 0 | ICD Management (70) | ActiveModeThreshold | 0/70/2 |
| 0 | ICD Management (70) | UserActiveModeTriggerHint | 0/70/6 |
| 0 | ICD Management (70) | UserActiveModeTriggerInstruction | 0/70/7 |
Field details
VendorName — Human-readable vendor name. Example: "SmartphoneKey Systems Inc". String value. This is not an enum. It is the vendor display name reported by the device, so different manufacturers return different text.
ProductName — Human-readable product name. Example: "SmartphoneKey Reader". String value. This is the product/model display name exposed by the node, not a device-type enum.
HardwareVersionString — Hardware version string. Example: "release". String value. Usually a human-readable hardware revision, board revision, or release label. Treat as vendor-defined text.
SoftwareVersionString — Software/firmware version string. Example: "1.26.1+1". String value. Usually firmware/software version. Use as text because vendors may include semantic versions, build metadata, or custom labels.
ManufacturingDate/DateCode — Manufacturing date or date code supplied by the device. Example: "20250903". String/date-code value. Format is vendor-provided. In this export it looks like YYYYMMDD, but do not assume all devices use the same format.
SerialNumber — Serial number string. Example: "11064672519639222187". String value. Physical serial number. It may look numeric but should be stored as text to avoid losing leading zeros or formatting.
VendorID — Vendor identifier. Example: 4619. Numeric vendor identifier assigned through the Matter/CSA vendor ID process. Store as number, but display can also be useful in hex for engineering logs.
ProductURL — Product URL if implemented. Example: "". String URL value when implemented. Empty string means the device did not provide a product/support URL.
UpTime — Current uptime. Example: 588758. Numeric duration in seconds. Means the device has been up for 588,758 seconds since last boot. A sudden low value usually means the node rebooted recently.
TotalOperationalHours — Total operational hours. Example: 163. Numeric duration in hours. Means the device reports 163 total operational hours. This value is cumulative if the device persists it.
BootReason — Reason for most recent boot. Example: 6. Enum value. Common Matter meanings include 0 = Unspecified, 1 = PowerOnReboot, 2 = BrownOutReset, 3 = SoftwareWatchdogReset, 4 = HardwareWatchdogReset, 5 = SoftwareUpdateCompleted, 6 = SoftwareReset. Here 6 means software-triggered reset/reboot.
NeighborTable — Neighbor table entries. Example: [{"averageRssi": -25, ...}] or simplified as [-25]. Table/list value. Each entry describes a Thread neighbor. RSSI values are normally negative dBm: closer to 0 is stronger; around -25 is very strong, -50 is good, -70 is weak.
RoutingRole — Current Thread routing role. Example: 6. Enum value describing Thread role. Typical values are role-like states such as disabled, detached, child/end device, router, leader, or border-router-capable role depending on implementation/spec version. Use this mainly for diagnostics, not business state.
NetworkName — Thread network name. Example: "OpenThread-952e". String value. Thread network name. It should match the expected Thread mesh if the device joined the correct network.
RSSI — Received signal strength indicator. Example: nan. Numeric RSSI in dBm when reported. Wi-Fi RSSI is usually negative: closer to 0 is stronger. nan, null, or missing usually means Wi-Fi is not used or the device does not report it.
IdleModeDuration — Idle mode duration for ICD behavior. Example: 300. Numeric duration in seconds. For ICD devices this is the idle-mode interval where the device may sleep or be less immediately reachable.
ActiveModeDuration — Active mode duration for ICD behavior. Example: 300. Numeric duration in milliseconds in Matter ICD definitions. It describes how long the device stays in active mode after wake/active behavior before returning to idle behavior.
ActiveModeThreshold — Threshold for entering active mode. Example: 300. Numeric threshold in milliseconds. Used by ICD behavior to decide active-mode timing/responsiveness. Larger values usually keep the device responsive longer but can affect battery.
UserActiveModeTriggerHint — Hint describing how to trigger active mode. Example: 4381. Bitmap/bitmask value. Each bit hints a possible user action that can wake or activate the device. Decode as flags, not as a single plain number. Pair with UserActiveModeTriggerInstruction for human-readable instructions.
UserActiveModeTriggerInstruction — Instruction text for user-triggered active mode. Example: "Restart the application". String value. Human-readable instruction for how a user can trigger active mode. This is directly displayable text if needed.
Door lock / access control
These rows describe the access-control behavior of the device. This is the most business-critical group for teams working with door-entry logic, credentials, remote operations, and physical security behavior.
| Endpoint | Cluster | Attribute | Path |
|---|---|---|---|
| 1 | Door Lock (257) | LockState | 1/257/0 |
| 1 | Door Lock (257) | NumberOfTotalUsersSupported | 1/257/17 |
| 1 | Door Lock (257) | NumberOfPINUsersSupported | 1/257/18 |
| 1 | Door Lock (257) | NumberOfCredentialsSupportedPerUser | 1/257/23 |
| 1 | Door Lock (257) | AutoRelockTime | 1/257/27 |
| 1 | Door Lock (257) | SoundVolume | 1/257/28 |
| 1 | Door Lock (257) | LEDSettings | 1/257/41 |
| 1 | Door Lock (257) | AutoRelockBehavior | 1/257/43 |
| 1 | Door Lock (257) | WrongCodeEntryLimit | 1/257/48 |
| 1 | Door Lock (257) | UserCodeTemporaryDisableTime | 1/257/49 |
| 1 | Door Lock (257) | RequirePINforRemoteOperation | 1/257/51 |
Battery / power source
These rows describe how the device is powered and whether maintenance may be needed. This is especially important for field support teams and for platforms that need to show battery health.
| Endpoint | Cluster | Attribute | Path |
|---|---|---|---|
| 1 | Power Source (47) | Status | 1/47/0 |
| 1 | Power Source (47) | BatVoltage | 1/47/11 |
| 1 | Power Source (47) | BatPercentRemaining | 1/47/12 |
| 1 | Power Source (47) | BatChargeLevel | 1/47/14 |
| 1 | Power Source (47) | BatReplacementNeeded | 1/47/15 |
| 1 | Power Source (47) | BatReplacementDescription | 1/47/19 |
| 1 | Power Source (47) | BatReplacementNeededLevel | 1/47/24 |
| 1 | Power Source (47) | BatQuantity | 1/47/25 |
Humidity sensor
These rows show environmental humidity sensing data. Even though the main product is a reader/lock-oriented device, this export also exposes humidity measurement information on one endpoint.
| Endpoint | Cluster | Attribute | Path |
|---|---|---|---|
| 1 | Relative Humidity Measurement (1029) | MeasuredValue | 1/1029/0 |
MeasuredValue — Current relative humidity measured value. Example: 3011. Numeric measured humidity in hundredths of a percent. Convert with value / 100, so 3011 means 30.11% RH.
Occupancy / presence sensor
These rows show whether the endpoint currently detects occupancy or presence. This is typically used by automation and monitoring systems rather than by core lock workflows.
| Endpoint | Cluster | Attribute | Path |
|---|---|---|---|
| 1 | Occupancy Sensing (1030) | Occupancy | 1/1030/0 |
Occupancy — Current occupancy/presence state. Example: 0. Bitmap value. Bit 0 indicates occupied/presence detected. 0 means no occupancy detected; 1 means occupied. Future/additional bits may represent more sensing modes.
Contact sensor interpretation
This section isolates the Boolean State row that is documented as a contact/door-sensor style interpretation. It is separated on purpose to show that Boolean State needs device-type context.
| Endpoint | Cluster | Attribute | Path |
|---|---|---|---|
| 1 | Boolean State (69) | StateValue | 1/69/0 |
StateValue — Binary state value. For this door sensor it maps to open/closed contact state. Example: true. Boolean value. For a contact sensor endpoint, map with endpoint context: commonly true = open/contact active, false = closed/inactive, but verify with the specific device behavior.
Water leak sensor interpretation
This section isolates the Boolean State row that is documented as a water-leak interpretation. It is separated on purpose to show that the same Boolean State cluster can represent a completely different real-world condition.
| Endpoint | Cluster | Attribute | Path |
|---|---|---|---|
| 1 | Boolean State (69) | StateValue | 1/69/0 |
Binary state value. On this interpretation it maps to water leak state because the endpoint reports Water Leak Detector. Example: false. Boolean value. For a water leak detector endpoint, true normally means leak detected/alarm active; false means no leak detected.
Temperature sensor
These rows show temperature measurement data from the endpoint that reports temperature. As with humidity, the raw value normally needs conversion before end-user display.
| Endpoint | Cluster | Attribute | Path |
|---|---|---|---|
| 2 | Temperature Measurement (1026) | MeasuredValue | 2/1026/0 |
MeasuredValue — Current temperature measured value. Example: 2591. Numeric measured temperature in hundredths of a degree Celsius. Convert with value / 100, so 2591 means 25.91 °C.
Supported commands
This section documents command capabilities. These fields describe what the device can accept as actions. In Matter, command support is normally discovered from the global AcceptedCommandList attribute, path format endpoint/cluster/65529.
Use this section separately from Device info data:
- Device info data = attributes reported by the device, for example
0/40/1,1/257/0, or1/47/12. - Supported commands = actions the device/cluster accepts, for example
LockDoor,UnlockDoor,GetUser, or general commissioning commands.
Matter command capability fields
Matter exposes command capability through global cluster attributes. In the endpoint/cluster/attribute format, the most important command-capability paths are:
| Attribute ID | Hex | Attribute Name | Meaning |
|---|---|---|---|
| 65529 | 0xFFF9 | AcceptedCommandList | List of command IDs that this exact cluster server accepts. Use this to decide whether your bridge/API can send a command. |
| 65528 | 0xFFF8 | GeneratedCommandList | List of command IDs that this cluster may generate as responses/events. Useful for command-response handling, but not the main capability check. |
Example path: 0/49/65529 means endpoint 0, cluster 49, attribute 65529. That tells you which commands the Network Commissioning cluster accepts on endpoint 0.
General endpoint 0 commands for all Matter device types
Endpoint 0 is the root/system endpoint. These commands are not lock-specific. They are common Matter system, commissioning, diagnostics, security, and fabric-management capabilities. Any device type may expose some of these clusters depending on what it supports.
| Path | Endpoint | Cluster ID | Cluster Name | Accepted Command IDs | Decoded Commands | What this means |
|---|---|---|---|---|---|---|
0/48/65529 | 0 | 48 / 0x0030 | General Commissioning | [0, 2, 4] | 0 / 0x00 = ArmFailSafe2 / 0x02 = SetRegulatoryConfig4 / 0x04 = CommissioningComplete | Device supports the standard commissioning safety flow. These commands are used while adding the device to a Matter fabric. |
0/49/65529 | 0 | 49 / 0x0031 | Network Commissioning | [0, 3, 4, 6, 8] | 0 / 0x00 = ScanNetworks3 / 0x03 = AddOrUpdateThreadNetwork4 / 0x04 = RemoveNetwork6 / 0x06 = ConnectNetwork8 / 0x08 = ReorderNetwork | Device supports network commissioning operations. Because this list has AddOrUpdateThreadNetwork and not Wi-Fi network commands, this looks like Thread commissioning capability. |
0/50/65529 | 0 | 50 / 0x0032 | Diagnostic Logs | [0] | 0 / 0x00 = RetrieveLogsRequest | Controller can request diagnostic logs from the device if the device has logs available. |
0/51/65529 | 0 | 51 / 0x0033 | General Diagnostics | [0, 1] | 0 / 0x00 = TestEventTrigger1 / 0x01 = TimeSnapshot | Device supports diagnostic commands. These are mainly useful for testing, certification, troubleshooting, and time snapshot diagnostics. |
0/53/65529 | 0 | 53 / 0x0035 | Thread Network Diagnostics | [0] | 0 / 0x00 = ResetCounts | Controller can reset Thread diagnostic counters. This is diagnostics-only and does not control the main device function. |
0/60/65529 | 0 | 60 / 0x003C | Administrator Commissioning | [0, 1, 2] | 0 / 0x00 = OpenCommissioningWindow1 / 0x01 = OpenBasicCommissioningWindow2 / 0x02 = RevokeCommissioning | Device can open or revoke a commissioning window. This is used for adding another controller/admin or putting the device back into commissioning mode. |
0/62/65529 | 0 | 62 / 0x003E | Operational Credentials | [0, 2, 4, 6, 7, 9, 10, 11] | 0 / 0x00 = AttestationRequest2 / 0x02 = CertificateChainRequest4 / 0x04 = CSRRequest6 / 0x06 = AddNOC7 / 0x07 = UpdateNOC9 / 0x09 = UpdateFabricLabel10 / 0x0A = RemoveFabric11 / 0x0B = AddTrustedRootCertificate | Device supports Matter fabric/security certificate operations. These commands are used during commissioning, fabric setup, multi-admin, and operational credential management. |
0/63/65529 | 0 | 63 / 0x003F | Group Key Management | [0, 1, 3, 4] | 0 / 0x00 = KeySetWrite1 / 0x01 = KeySetRead3 / 0x03 = KeySetRemove4 / 0x04 = KeySetReadAllIndices | Device supports group key management for secure Matter group communication. This is not a user-facing device action. |
For bridge implementation, these endpoint 0 command lists should usually be treated as system capabilities. They are useful for commissioning, diagnostics, network setup, and fabric administration, but they should not be exposed as normal user commands like lock/unlock, temperature read, or leak state.
Door Lock cluster supported commands
The Door Lock cluster has a command set for lock operation, user/PIN/RFID management, schedules, credentials, logs, and Aliro reader configuration. Important: a real lock may support only a subset of these commands. To know what one exact device supports, read the standard AcceptedCommandList global attribute for cluster 257 on the lock endpoint, for example path 1/257/65529 when using the endpoint/cluster/attribute format.
For python-matter-server / bridge usage, commands are normally sent to cluster 257 on the lock endpoint, usually endpoint 1. In your AWS IoT payload, the bridge should resolve device_uuid -> node_id, then send the command with node_id, endpoint_id, cluster command name, and command-specific args.
| Command ID | Hex | Command Name | Area | What it does | Typical args / value details |
|---|---|---|---|---|---|
| 0 | 0x00 | LockDoor | Lock operation | Locks the door. | Usually no args. Some locks may require PINCode if RequirePINforRemoteOperation is true. Result should be checked because the command can fail if the lock is unavailable, blocked, already moving, or requires extra credential data. |
| 1 | 0x01 | UnlockDoor | Lock operation | Unlocks the door. | Usually no args, unless the lock requires a PIN for remote operation. Security-sensitive command. Your API should treat it as a controlled remote operation and log who/what triggered it. |
| 2 | 0x02 | Toggle | Lock operation | Toggles between locked and unlocked state. | Usually no args. Not recommended for cloud/API workflows when exact desired state matters, because result depends on current physical state. Prefer LockDoor or UnlockDoor for deterministic behavior. |
| 3 | 0x03 | UnlockWithTimeout | Lock operation | Unlocks the door temporarily, then the lock should relock after timeout. | Common arg: timeout or timeoutInSeconds depending on SDK binding. Value is a duration, normally seconds. Use when you want temporary access instead of permanent unlock. |
| 4 | 0x04 | GetLogRecord | Audit/logs | Reads one log record from the lock audit log if supported. | Common arg: logIndex. Used for troubleshooting/audit history. Many consumer locks may not implement full log retrieval. |
| 5 | 0x05 | SetPINCode | Legacy PIN management | Creates or updates a PIN code in a legacy PIN slot. | Typical args include userIndex, userStatus, userType, pinCode. This is older PIN-specific API. Newer locks may prefer SetUser plus SetCredential. |
| 6 | 0x06 | GetPINCode | Legacy PIN management | Reads PIN information for a user/slot if supported. | Typical arg: userIndex. Some devices intentionally do not return secret PIN material for security reasons, even if the command exists. |
| 7 | 0x07 | ClearPINCode | Legacy PIN management | Clears one PIN code/user PIN slot. | Typical arg: userIndex. Use carefully because it removes access for that PIN slot. |
| 8 | 0x08 | ClearAllPINCodes | Legacy PIN management | Clears all PIN codes. | Usually no args. Dangerous bulk operation. Should be protected in backend/API because it can remove all PIN-based access. |
| 9 | 0x09 | SetUserStatus | Legacy user management | Sets the status for a user record. | Typical args: userIndex, userStatus. User status values are enum-like, commonly available/enabled/disabled style states depending on Matter version. |
| 10 | 0x0A | GetUserStatus | Legacy user management | Reads the status for a user record. | Typical arg: userIndex. Useful to check if a user slot is active/enabled before setting credentials. |
| 11 | 0x0B | SetWeekDaySchedule | Scheduling | Sets a recurring weekly access schedule for one user. | Typical args include weekDayIndex, userIndex, daysMask, startHour, startMinute, endHour, endMinute. Used for repeating access windows like weekdays 09:00-17:00. |
| 12 | 0x0C | GetWeekDaySchedule | Scheduling | Reads a recurring weekly schedule. | Typical args: weekDayIndex, userIndex. Returns schedule fields when present. |
| 13 | 0x0D | ClearWeekDaySchedule | Scheduling | Clears one recurring weekly schedule. | Typical args: weekDayIndex, userIndex. Removes that schedule window only, not necessarily the user or credential. |
| 14 | 0x0E | SetYearDaySchedule | Scheduling | Sets a one-time/date-range schedule for one user. | Typical args include yearDayIndex, userIndex, localStartTime, localEndTime. Used for temporary date-based access windows. |
| 15 | 0x0F | GetYearDaySchedule | Scheduling | Reads a date-range schedule. | Typical args: yearDayIndex, userIndex. Returns start/end time when present. |
| 16 | 0x10 | ClearYearDaySchedule | Scheduling | Clears one date-range schedule. | Typical args: yearDayIndex, userIndex. Removes that temporary schedule. |
| 17 | 0x11 | SetHolidaySchedule | Scheduling | Sets a holiday schedule / exception schedule. | Typical args include holidayIndex, localStartTime, localEndTime, operatingModeDuringHoliday. Used to change lock behavior during special calendar periods. |
| 18 | 0x12 | GetHolidaySchedule | Scheduling | Reads a holiday schedule. | Typical arg: holidayIndex. Returns holiday schedule information if supported and configured. |
| 19 | 0x13 | ClearHolidaySchedule | Scheduling | Clears one holiday schedule. | Typical arg: holidayIndex. Removes that holiday exception. |
| 20 | 0x14 | SetUserType | Legacy user management | Sets the type/category of a user. | Typical args: userIndex, userType. User type may represent unrestricted user, schedule-restricted user, programming user, etc., depending on supported enum values. |
| 21 | 0x15 | GetUserType | Legacy user management | Reads the type/category of a user. | Typical arg: userIndex. Useful for understanding how a user slot is configured. |
| 22 | 0x16 | SetRFIDCode | Legacy RFID management | Creates or updates an RFID credential in a legacy RFID slot. | Typical args include userIndex, userStatus, userType, rfidCode. Older RFID-specific API; newer devices may use generic SetCredential. |
| 23 | 0x17 | GetRFIDCode | Legacy RFID management | Reads RFID credential information if supported. | Typical arg: userIndex. Devices may avoid returning secret credential material. |
| 24 | 0x18 | ClearRFIDCode | Legacy RFID management | Clears one RFID credential. | Typical arg: userIndex. Removes RFID access for that slot/user. |
| 25 | 0x19 | ClearAllRFIDCodes | Legacy RFID management | Clears all RFID credentials. | Usually no args. Dangerous bulk operation; should be admin-only. |
| 26 | 0x1A | SetUser | User management | Creates or updates a modern Door Lock user record. | Typical args include userIndex, userName, userUniqueID, userStatus, userType, credentialRule. This is the modern user API used before/with credentials. |
| 27 | 0x1B | GetUser | User management | Reads one modern Door Lock user record. | Typical arg: userIndex. Response can include userName, userUniqueID, userStatus, userType, credentialRule, credentials list, and fabric indexes. In your project this is useful because userName can be used as stable identity when available. |
| 29 | 0x1D | ClearUser | User management | Clears one modern user record. | Typical arg: userIndex. Removes the user and may also affect credentials linked to that user depending on device behavior. |
| 34 | 0x22 | SetCredential | Credential management | Adds or updates a credential such as PIN, RFID, fingerprint, face, Aliro, or other supported credential type. | Typical args include operationType, credential, credentialData, userIndex, userStatus, userType. The credential structure normally contains credentialType and credentialIndex. |
| 36 | 0x24 | GetCredentialStatus | Credential management | Checks whether a credential slot exists/has data and who it belongs to. | Typical arg: credential with credentialType and credentialIndex. Useful before writing or clearing credentials. |
| 38 | 0x26 | ClearCredential | Credential management | Clears one credential, or a credential matching the provided credential structure. | Typical arg: credential. Use carefully because it removes access for that credential. |
| 39 | 0x27 | UnboltDoor | Lock operation | Retracts/unbolts the door when the device supports a separate unbolt action. | Usually no args or optional PIN depending on lock policy. Not all locks distinguish UnlockDoor and UnboltDoor. |
| 40 | 0x28 | SetAliroReaderConfig | Aliro / reader config | Configures Aliro reader behavior on compatible locks/readers. | Args are Aliro-specific reader configuration fields. Only supported by devices with Aliro reader capability. Treat as advanced/vendor/ecosystem feature. |
| 41 | 0x29 | ClearAliroReaderConfig | Aliro / reader config | Clears Aliro reader configuration. | Usually no args or Aliro-specific selector depending on implementation. Only supported by Aliro-capable devices. |
Door Lock command support check
Door Lock command support is separate from the general endpoint 0 system commands above. Do not assume every Matter lock supports every command listed above. The practical support check is:
| Path | Attribute | What it tells you | Example / Value Details |
|---|---|---|---|
1/257/65529 | AcceptedCommandList | Commands this specific lock accepts on endpoint 1, cluster 257. | Example: [0, 1, 26, 27, 29, 34, 36, 38] means this lock supports LockDoor, UnlockDoor, SetUser, GetUser, ClearUser, SetCredential, GetCredentialStatus, and ClearCredential. Use this list to decide which API buttons/functions to expose. |
1/257/65528 | GeneratedCommandList | Responses/events generated by this cluster for commands, depending on implementation. | Useful for command/response handling, but AcceptedCommandList is the main one for deciding whether a command can be sent. |
Matter Device Types Mapping
Source of Truth
Matter device types are read from the Matter Descriptor cluster:
<endpoint>/29/0
Where:
29 = Descriptor cluster
0 = DeviceTypeList attribute
python-matter-server returns the value in decimal form:
"1/29/0": [
{
"0": 21,
"1": 1
}
]
Meaning:
"0" = Matter Device Type ID
"1" = Device Type Revision
The official Matter SDK data model publishes the Matter 1.5 device type ID map in connectedhomeip/data_model/1.5/device_types/device_type_ids.json.
Source:
Bridge Rules
device_info shadow
The device_info shadow stores the numeric Matter device type under the real Matter path.
Example for Contact Sensor:
{
"1/29/0": 21
}
Do not write this custom field to device_info:
{
"device_type": "contact_sensor"
}
Composite Sensor Rules
Some physical devices expose multiple sensor endpoints.
Example:
770 = Temperature Sensor
775 = Humidity Sensor
The bridge combines them into:
temperature_humidity_sensor
The device_info shadow still stores only one selected numeric Matter path, for example:
{
"1/29/0": 770
}
But internal bridge type and AWS IoT Thing Type become:
temperature_humidity_sensor
Complete Matter Device Type List
| Decimal value | Matter Device Type | Bridge Internal Type |
|---|---|---|
10 | Door Lock | lock |
11 | Door Lock Controller | door_lock_controller |
14 | Aggregator | aggregator |
15 | Generic Switch | switch |
17 | Power Source | power_source |
18 | OTA Requestor | ota_requestor |
19 | Bridged Node | bridged_node |
20 | OTA Provider | ota_provider |
21 | Contact Sensor | contact_sensor |
22 | Root Node | root_node |
23 | Solar Power | solar_power |
24 | Battery Storage | battery_storage |
25 | Secondary Network Interface | secondary_network_interface |
34 | Speaker | speaker |
35 | Casting Video Player | casting_video_player |
36 | Content App | content_app |
39 | Mode Select | mode_select |
40 | Basic Video Player | basic_video_player |
41 | Casting Video Client | casting_video_client |
42 | Video Remote Control | video_remote_control |
43 | Fan | fan |
44 | Air Quality Sensor | air_quality_sensor |
45 | Air Purifier | air_purifier |
64 | Irrigation System | irrigation_system |
65 | Water Freeze Detector | water_freeze_detector |
66 | Water Valve | water_valve |
67 | Water Leak Detector | water_leak_detector |
68 | Rain Sensor | rain_sensor |
69 | Soil Sensor | soil_sensor |
112 | Refrigerator | refrigerator |
113 | Temperature Controlled Cabinet | temperature_controlled_cabinet |
114 | Room Air Conditioner | room_air_conditioner |
115 | Laundry Washer | laundry_washer |
116 | Robotic Vacuum Cleaner | robotic_vacuum_cleaner |
117 | Dishwasher | dishwasher |
118 | Smoke CO Alarm | smoke_co_alarm |
119 | Cook Surface | cook_surface |
120 | Cooktop | cooktop |
121 | Microwave Oven | microwave_oven |
122 | Extractor Hood | extractor_hood |
123 | Oven | oven |
124 | Laundry Dryer | laundry_dryer |
144 | Network Infrastructure Manager | network_infrastructure_manager |
145 | Thread Border Router | thread_border_router |
256 | On/Off Light | on_off_light |
257 | Dimmable Light | dimmable_light |
259 | On/Off Light Switch | on_off_light_switch |
260 | Dimmer Switch | dimmer_switch |
261 | Color Dimmer Switch | color_dimmer_switch |
262 | Light Sensor | light_sensor |
263 | Occupancy Sensor | occupancy_sensor |
266 | On/Off Plug-in Unit | on_off_plug |
267 | Dimmable Plug-In Unit | dimmable_plug |
268 | Color Temperature Light | color_temperature_light |
269 | Extended Color Light | extended_color_light |
271 | Mounted On/Off Control | mounted_on_off_control |
272 | Mounted Dimmable Load Control | mounted_dimmable_load_control |
304 | Joint Fabric Administrator | joint_fabric_administrator |
320 | Intercom | intercom |
321 | Audio Doorbell | audio_doorbell |
322 | Camera | camera |
323 | Video Doorbell | video_doorbell |
324 | Floodlight Camera | floodlight_camera |
325 | Snapshot Camera | snapshot_camera |
326 | Chime | chime |
327 | Camera Controller | camera_controller |
328 | Doorbell | doorbell |
514 | Window Covering | window_covering |
515 | Window Covering Controller | window_covering_controller |
560 | Closure | closure |
561 | Closure Panel | closure_panel |
574 | Closure Controller | closure_controller |
769 | Thermostat | thermostat |
770 | Temperature Sensor | temperature_sensor |
771 | Pump | pump |
772 | Pump Controller | pump_controller |
773 | Pressure Sensor | pressure_sensor |
774 | Flow Sensor | flow_sensor |
775 | Humidity Sensor | humidity_sensor |
777 | Heat Pump | heat_pump |
778 | Thermostat Controller | thermostat_controller |
1292 | Energy EVSE | energy_evse |
1293 | Device Energy Management | device_energy_management |
1295 | Water Heater | water_heater |
1296 | Electrical Sensor | electrical_sensor |
1297 | Electrical Utility Meter | electrical_utility_meter |
1298 | Meter Reference Point | meter_reference_point |
1299 | Electrical Energy Tariff | electrical_energy_tariff |
1300 | Electrical Meter | electrical_meter |
2112 | Control Bridge | control_bridge |
2128 | On/Off Sensor | on_off_sensor |