Description
When writing attributes to certain Zigbee end-devices (e.g. Aqara, Sonoff, and Linptech/Moes), the device responds with a ZCL global command Write Attributes Response (cmdId 0x04).
However, the zigbee-clusters library logs this frame as:
unknown_command_received:4 (or similar error stack)
According to the Zigbee Cluster Library (ZCL) specification, command ID 0x04 is a standard, profile-wide (global) command:
- Command ID:
0x04
- Name:
Write Attributes Response
- Payload: Sequence of Attribute Status Records (e.g.,
0x00 for SUCCESS)
Since this is a standard global ZCL command returned in response to writeAttributes operations, the framework should internally intercept and handle (or discard) this command gracefully instead of bubbling it up as an unhandled or unknown command.
Steps to Reproduce
- Execute
device.writeAttributes(cluster, { attribute: value }) on a device that explicitly acknowledges attribute writes with a ZCL Write Attributes Response.
- Observe debug logs.
Expected Behavior
The frame should be treated as a standard ZCL acknowledgement and parsed/logged silently, rather than raising unknown_command_received.
Description
When writing attributes to certain Zigbee end-devices (e.g. Aqara, Sonoff, and Linptech/Moes), the device responds with a ZCL global command
Write Attributes Response(cmdId0x04).However, the
zigbee-clusterslibrary logs this frame as:unknown_command_received:4(or similar error stack)According to the Zigbee Cluster Library (ZCL) specification, command ID
0x04is a standard, profile-wide (global) command:0x04Write Attributes Response0x00for SUCCESS)Since this is a standard global ZCL command returned in response to
writeAttributesoperations, the framework should internally intercept and handle (or discard) this command gracefully instead of bubbling it up as an unhandled or unknown command.Steps to Reproduce
device.writeAttributes(cluster, { attribute: value })on a device that explicitly acknowledges attribute writes with a ZCL Write Attributes Response.Expected Behavior
The frame should be treated as a standard ZCL acknowledgement and parsed/logged silently, rather than raising
unknown_command_received.