Previous Topic

Next Topic

Book Contents

Book Index

ZCL Metadata Overview

The ZigBee Cluster Library (ZCL) is a repository for cluster functionality created by the ZigBee Alliance. Any developer building a new device application should use the ZCL to find relevant cluster functionality that can be reused and extended if necessary.

The ZCL Specification consists of the ZCL Foundation, a set of elements that apply across the entire library (such as frame structures, attribute access commands and data types), and a number of sets of clusters.

Clusters that are generally useful across many application domains are included in the General set. Clusters that are intended for use mainly in specific application domains are grouped together in domain-oriented sets.

For more information, pelase refer to the the ZigBee Cluster Library Specification available from the ZigBee Alliance.

Definitions:

** In some cases however these roles are swapped (e.g. Smart Energy - Load Control, Home Automation - Power Profile), the most common scenario is when the server-side of a cluster sends output notifications to the client about changes of its attributes.

Constrains and Rules

There are a few constraints and rules according to the ZigBee ZCL Specifications which must be kept in mind when describing ZCL clusters and profiles with ZCL Metadata:

Supported Profiles and Clusters

The ZigBee Module provides extensions to the built-in ZCL metadata for the following sets of clusters and profiles:

Cluster Inheritance

Before Zigbee 3.0 and Bosch Gateway Software SDK 9.2 it was possible to have only one version of cluster description obtainable by its ID. In Zigbee 3.0, ZCL R6 Cluster revisions were introduced. Each cluster description is assigned a revision - the one of the specification that it is defined in.

Another form of cluster variation is by deriving one cluster from another. An example is the Level Control cluster. There is a base Level Control Cluster with id 0x0008, Level Control for Lighting - a derived cluster with the same ID but with changes in the specification and Pulse Width Modulation with id 0x001c derived from base 0x0008.

In both cases - introducing a new cluster revision or derived cluster, the changes can vary: this might be adding a new attribute or command, changed description, removed functionality. Overall a great part of the cluster definition of the parent stays the same in the new revision or derived version.

The XML representation aligns with this idea. In the case of a new revision the parent cluster can be pointed by specifying its revision. In the case of a base-derived relationship the base cluster ID and its revision can be specified.