Revision as of 09:56, 4 March 2022 by Registered User
Under construction.png Coming soon

1. Introduction

Binding in ZigBee allows an endpoint on one node to be connected to one or more endpoints on another node. Instead of sending multiple unicast requests, application only sends one single request to Zigbee stack. Binding mechanism is provided by the APS layer, so that the application can set up bindings using binding tables. Binding is a one way action. Each device has its own binding table. The binding table maps a source address and source endpoint to one or more destination addresses and endpoints.

The BDB provides Find and Bind method to automate the creation of bindings. This method may have some limitations that will be discussed later.

Binding Mapping
connectivity bind.png

2. How to configure Binding?

Bindings are pre-configured source-to-destination addresses. They can be configured either locally or remotely. Local binding is to be used for client cluster commands. Remote binding is to be typically used for attribute reporting.

2.1. Local configuration

Bindings must be configured in the binding table using the ZbApsmeBindReq().
ZbApsmeBindReq parameter shall be set as follow:

  • srcExtAddr: local client Extended Address
  • dst.extAddr: remote server Extended Address

2.2. Remote configuration

Bindings may also be configured from a remote node using the ZbZdoBindReq().
ZbZdoBindReq parameter shall be set as follow:

  • srcExtAddr: remote server Extended Address
  • dst.extAddr: client Extended Address
  • target: remote server Short Address

3. Find and Bind

Finding and binding mechanism is a semi-automated method to create bindings. It can be triggered automatically if the bdbCommissioningMode is set to BDB_COMMISSION_MODE_FIND_BIND. However, Finding and binding can be started manually from the application by calling ZbStartupFindBindStart() on all endpoints, or calling ZbStartupFindBindStartEndpoint() from a specific endpoint.
Remote binding is only performed for below clusters:

  • Alarm
  • SE Messaging
  • Poll Control

The Find and Bind is based on Identify cluster. The picture below describes how an initiator (normally client) can create binding with one or more targets (normally server) using Find and Bind method.

F&B method
Connectivity Find and Bind.png

An application that describes how to use the Finding and Binding feature is available. This demonstration uses both ways to start F&B : automatic on Router1, and manual on Router2.

F&B Demo
Connectivity F&B Demo.png

The Find and Bind mechanism has several limitations regarding customer needs. One of them is that Find and Bind can only bind local client clusters to remote server clusters. In some cases, the opposite way (server to client) is needed.

4. Reporting attribute configuration from server side

In order to configure attribute reporting on a cluster server, cluster client shall send a ZCL Configure Reporting to server. This can be achieved through ZbZclAttrReportConfigReq API.
Reporting configuration is set remotely by client. Default attribute reporting configuration can be either set in attributes list or configured later on using ZbZclAttrReportConfigDefault.

ZCL Configure Reporting can be sent from client application using either dedicated addressing or binding. It only depends if client application is aware of server address (Short or Extended one). If client application is not aware of server address, it can trigger a Finding & Binding procedure first to find Zigbee devices embedding matching server clusters. In such a case, address type of config.dst.mode shall be set to ZB_APSDE_ADDRMODE_NOTPRESENT instead of ZB_APSDE_ADDRMODE_SHORT or ZB_APSDE_ADDRMODE_EXT.