Revision as of 14:33, 21 February 2022 by Registered User

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. 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?

Binding 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 triggered automatically if the ZB_BDB_CommissioningMode 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 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.