Specifications
XBee®/XBee‐PRO®SERFModules
©2009DigiInternational,Inc. 41
Discovery
After a device has joined and been authenticated, typically service discovery follows. The following
example describes the hierarchy and order of discovery among nodes, endpoints, and clusters.
Node
Endpoint(s)
Profile Id
SE Device Id
Cluster(s)
Attributes(s)
Command(s)
A node has an extended 64-bit MAC address and a short 16-bit NWK address. A node may support
one or more endpoints.
Each endpoint is described by a Profile Id (0x0109 for Smart Energy), a SE Device ID, and a set of
clusters.
Each cluster may be a server or a client-side type of that cluster. Generally the server side holds
the attributes and responds to commands issued by a client side cluster. The client side issues
commands to get and set the attributes.
To discover a device or service in the network, a Match_Desc_req ([4],2.4.3.1.7) is broadcast to
find a node (or nodes) which supports a desired Profile ID (0x0109 for Smart Energy) with a set of
input and output cluster ids. The response contains the short NWK address of the node, and a list
of the endpoints which match the descriptor.
The extended MAC address of the node may be obtained by sending an IEEE address request,
using the short NWK address of the target node.
An Explicit Addressing ZigBee Command Frame (0x11), addressed by (node/endpoint/cluster),
carrying a General Command Frame ([3], 2.4) as payload, is used to discover, read, and write the
attributes of a cluster.
Discovery Examples
The following information provides abbreviated examples of discovery with reference links for
obtaining information about nodes, endpoints, clusters, and attributes. The examples are given in
hierarchical order.
Node Discovery Example
One can obtain information about a node by unicasting a Node_Desc_req command. It is
addressed to cluster 0x0002, and carries a 16-bit NWK address as payload.
In response one would receive a Node_Desc_rsp response. It will be addressed as cluster 0x8002,
and carry as payload a: Status (1), 16-bit NWK address (2), and a node descriptor.
The node descriptor describes the node type, whether complex or user descriptors are available,
the frequency band it uses, capabilities of its MAC layer, its manufacturer's code, a server mask,
and descriptor capabilities. The node type tells if it is a Coordinator, Router, or End Device type.
The server mask tells if the node is hosting a Trust Center. The descriptor capabilities tell if it can
serve up an active endpoint list and/or an extended simple descriptor list.
Active Endpoint Example
One can obtain a list of endpoints supported on a node by unicasting an Active_EP_req command .
It is addressed to cluster 0x0005, and carries a 16-bit NWK address as payload.
In response one would receive an Active_EP_rsp response ([4], 2.4.4.1.6.1). It will be addressed
as cluster 0x8005, and carry as payload a: Status(1), 16-bit NWK address(2), an active endpoint
count(1), and an active endpoint list.
Knowing the active endpoint list of a node, one can then make simple descriptor requests on each
endpoint (see next section).