The application layer (APL) in ZigBee stack is designed to host user specific applications. In the ZigBee standard APL also contains interfaces to network layers that substantially simplify application development and spare the need for implementation of any complex networking features. All packets originated from APL and exchanged between ZigBee applications are differentiated by several important identifiers. Application profiles are designed to unify data exchange on the application level. A profile is assigned to a specific application area and includes agreements on device types, messaging formats, actions and other functions to be used in a certain application. All profiles can be classified as public or private. Public profiles are specified by the ZigBee Alliance in order to provide interoperability between devices from different manufacturers. Private profiles are designed by vendors and used for custom applications that cannot be realized under standard profiles. Clusters are application messages defined within each application profile. Each cluster specifies attributes to be transmitted inside the message corresponding to a specific functional process. For example controlling on/off light switches and controlling light dimmers are different clusters in the same Home Automation (HA) profile.