Zigbee ZCL scene helper

Note

Support for Zigbee R22 has been deprecated in nRF Connect SDK v2.8.0 and it will be removed in one of the future releases, following the deprecation policy. As a result, the nRF52833, nRF52840 and nRF5340 SoCs are not recommended for new Zigbee designs. Experimental support for Zigbee R23 is available for the nRF54L Series as an nRF Connect SDK Add-on.

The Zigbee ZCL scene helper library provides a set of functions that implement the callbacks required by the ZCL scene cluster in the application. You can use this library to implement these mandatory callbacks and save the configured scenes in the non-volatile memory. For this purpose, it uses Zephyr’s Settings subsystem.

This library is capable of recalling attribute values for the following ZCL clusters:

  • On/off

  • Level control

  • Window covering

If you are implementing clusters that are not included in this list, you must implement their logic manually instead of using this library.

Configuration

To enable the Zigbee ZCL scene helper library, set the CONFIG_ZIGBEE_SCENES Kconfig option.

Because the library uses Zephyr’s Settings subsystem, the application must call the following functions for the library to work correctly:

You must implement these functions in the following manner:

  • settings_subsys_init() must be called before zcl_scenes_init()

  • settings_load() must be called after zcl_scenes_init()

  • zcl_scenes_cb() must be called in the ZCL device callback:

    static void zcl_device_cb(zb_bufid_t bufid)
    {
       zb_zcl_device_callback_param_t  *device_cb_param =
          ZB_BUF_GET_PARAM(bufid, zb_zcl_device_callback_param_t);
       switch (device_cb_param->device_cb_id) {
       ...
       default:
          if (zcl_scenes_cb(bufid) == ZB_FALSE) {
                device_cb_param->status = RET_ERROR;
          }
          break;
       }
    }
    

Setting the CONFIG_ZIGBEE_SCENES option allows you to configure the following library-specific Kconfig options:

To configure the logging level of the library, use the CONFIG_ZIGBEE_SCENES_LOG_LEVEL Kconfig option.

API documentation

Header file: include/zigbee/zigbee_zcl_scenes.h
Source file: subsys/zigbee/lib/zigbee_scenes/zigbee_zcl_scenes.c
Zigbee ZCL scenes helper library.