As part of the Dell Edge Gateway IoT-Ready Solutions, IOTech provides a Zigbee Device Service. This allows Edge Xpert to read data from, and issue commands to, Zigbee devices.

The Zigbee Device Service is designed for the Dell 3002 Gateway. It can be used with any devices that are compliant with Zigbee 3.0.


The Dell 3002 Gateway uses an older firmware version on the Zigbee Module, which must be upgraded to the version used in the latest Zigbee stack. Edge Xpert includes a script that checks the version of the firmware on the Dell Gateway, and updates it automatically if necessary.

The Zigbee Device Service integrates the Zigbee 3.0 protocol into Edge Xpert. For further information on Zigbee, refer to the Zigbee Alliance website.

The Edge Xpert Zigbee Device Service uses version 6.5.1 of the EmberZNet Zigbee Protocol Stack Software, which is also known as the EmberZnet SDK. The EmberZnet SDK is a proprietary implementation of the Zigbee 3.0 specification.

The Zigbee Device Service supports the following key features:

  • Sending a read attributes command to a Zigbee device, requesting the value of a specific attribute for a specific cluster
  • Returning the value from Zigbee using the REST API
  • Sending a write attributes command to a Zigbee device, providing the value of a specific attribute for a specific cluster
  • Sending a command id command to a Zigbee device if the CommandID attribute is present in the attribute list for the deviceResource in the device profile

The Zigbee Device Service supports the following data types:

  • Boolean
  • String
  • UInt8, UInt16, UInt32, UInt64
  • Int8, Int16, Int32, Int64
  • Float32
  • Float64

The Zigbee Device Service requires access to a Zigbee Network Co-Processor (NCP) module with the following:

  • ezsp version 0x07 stack type 0x02
  • The path set in ZIGBEE_MODULE environment variable

When the Zigbee Device Service starts up, it checks whether the NCP module is connected to a Zigbee network. If it is not, the Device Service forms and joins a new network using a random channel and PAN ID and opens the network for unsecured pre-configured key joins.


The Zigbee Device Service can be embedded with Edge XRT. For further information on implementing Edge XRT with a Device Service, see Edge XRT.

Zigbee Attributes

The device profile defines what resources are available on a particular device. Ensure that the following profile attributes are defined in the YAML file:

Required Profile Attributes
Attribute Description
Format The format of the data sent using a PUT command
ClusterID The identifier of the cluster that contains the attribute to read or write to
AttributeID The identifier of the attribute we want to read from or write to
AttributeType Required only if writing a value. The type of the attribute
CommandID The identifier of the command to send. This attribute can only be used with a put request. If the attribute is in the attribute list of the device profile, the specified command is sent instead of the write attributes command

For further information on these attributes, refer to the Zigbee 3.0 specification.

Zigbee Examples

The following examples illustrate how the Zigbee Device Service can be used:

These examples assume that the Edge Xpert services are running with at least the --xpert-manager and --device-zigbee parameters. A suitable command would be as follows:

edgexpert up --xpert-manager --device-zigbee


All examples require a physical Zigbee device connected to a compatible gateway.