XBee ZigBee networks ZigBee application layers: in depth
XBee/XBee-PRO ZigBee RF Modules User Guide 37
Application Support Sublayer (APS)
The APS layer in ZigBee adds support for application profiles, cluster IDs, and endpoints.
Application profiles
Application profiles specify various device descriptions including required functionality for various devices. The 
collection of device descriptions forms an application profile. Application profiles can be defined as “Public” or 
“Private” profiles. Private profiles are defined by a manufacturer whereas public profiles are defined, developed, 
and maintained by the ZigBee Alliance. Each application profile has a unique profile identifier assigned by the 
ZigBee Alliance. 
Examples of public profiles include:
 Home automation
 Smart energy
 Commercial building automation
The Smart Energy profile, for example, defines various device types including an energy service portal, load 
controller, thermostat, in-home display, and so forth. The Smart Energy profile defines required functionality for 
each device type. For example, a load controller must respond to a defined command to turn a load on or off. By 
defining standard communication protocols and device functionality, public profiles allow interoperable ZigBee 
solutions to be developed by independent manufacturers. 
Digi XBee ZB firmware operates on a private profile called the Digi Drop-In Networking profile. However, the API 
firmware in the module can be used in many cases to talk to devices in public profiles or non-Digi private profiles. 
See API operation on page 108 for details.
Clusters
A cluster is an application message type defined within a profile. Clusters are used to specify a unique function, 
service, or action. For example, the following are some clusters defined in the home automation profile:
 On/off - used to switch devices on or off (lights, thermostats, and so forth.)
 Level control - used to control devices that can be set to a level between on and off
 Color control - controls the color of color capable devices.
Each cluster has an associated 2-byte cluster identifier (cluster ID). The cluster ID is included in all application 
transmissions. Clusters often have associated request and response messages. For example, a smart energy 
gateway (service portal) might send a load control event to a load controller in order to schedule turning on or off 
an appliance. Upon executing the event, the load controller would send a load control report message back to 
the gateway.
Devices that operate in an application profile (private or public) must respond correctly to all required clusters. 
For example, a light switch that will operate in the home automation public profile must correctly implement the 
On/Off and other required clusters in order to interoperate with other home automation devices. The ZigBee 
Alliance has defined a ZigBee Cluster Library (ZCL) that contains definitions or various general use clusters that 
could be implemented in any profile.
XBee modules implement various clusters in the Digi private profile. In addition, the API can be used to send or 
receive messages on any cluster ID (and profile ID or endpoint). See Explicit Addressing ZigBee Command frame 
on page 119 for details.
Endpoints
The APS layer includes supports for endpoints. An endpoint can be thought of as a running application, similar to 
a TCP/IP port. A single device can support one or more endpoints. Each application endpoint is identified by a 1-
byte value, ranging from 1 to 240. Each defined endpoint on a device is tied to an application profile. A device