Zigbee method for allowing user configurations?

Hello,

Working on a zigbee end device with a number of endpoints that are all behaving nicely in general but wondering what the zigbee-ish way of allowing for user config and the nRF Connect SDK support for such.

Say I have an output on the device, that we'd like to allow the user to trigger as either

  • on/off or toggle; or
  • a momentary action (on for n seconds, then back off)

The notion is that the end user gets to choose how the output will behave and if they want it to stay on 3 seconds, then go back off, they need to be able to say so (set it to toggle or momentary, and when momentary set it for 3 seconds) by configuring it through their smart hub or whatever.

How is this sort of thing done in zigbee in general and what mechanisms are in place with the NCS?

Thanks!

Parents
  • Hi Pat,

    If I understand your notion correctly, shouldn't this application logic be implemented by your development?

    For example, we already have the light bulb and switch samples from Zigbee samples — nRF Connect SDK 1.8.0 documentation (nordicsemi.com). You can modify Zigbee: Light switch to have a button send on command and send off or toggle after 3s. The delay time can also be configured through some buttons and displays. You can also do this on a smart hub. The logic is the same and totally decided by the application developers.

    Just let me know if I am wrong, we can continue the discussion.

    Best regards,

    Charlie

  • Hello Charlie, thanks for your answer.

    Yes, users will access and control device through various hubs: that's actually my point.

    What I'm understanding is that, if I want to allow for configuration beyond what a standard ZCL library cluster has, any kind of extra data exchange from end-user to device over zigbee I am supposed to

    • create an endpoint with some standards-breaking cluster(s) with IDs that won't be interpreted as something that is pre-defined, or maybe use something existing (e.g. ZB_ZCL_CLUSTER_ID_MULTI_OUTPUT) in some weird way
    • try and find attributes that kindof match what I want them to be able to set (something like an enum, something like an int or float)
    • expose this endpoint and its clusters
    • handle updates from hub in whichever way is appropriate for device

    and at this point, I could in theory receive the data, but I will then have to go to amazon, google, samsung and every single hub I want to integrate with, and get them to support my custom endpoint, one at a time?

    That seems too crazy, so I'm certain I'm missing something.

    I'm expecting there to be a way to simply expose an endpoint that lets standard hubs/apps know:

    • this EP (or cluster) is for configuration/user input
    • this is the list of attributes that may be set, their description and type (at a minimum "this attribute is 8 bit int, this other is a bool or string or ... etc")

    such that new devices are integrated into the hub/zigbee mesh without having to negotiate and customize apps with every single possible vendor.

    We can't be the first to want to expose arbitrary configuration knobs on our device, seems like a pretty run of the mill use case.  But I haven't done zigbee so am looking for an idea of how this gets done in this world, normally, and specifically how to do it with NCS.

    I hope this clarifies what I'm hoping for and that there's something basic I've missed.

    Thanks,

    Pat

  • Hi Pat,

    Except for the public profiles defined by CSA on Zigbee Cluster Library Specification, you can create your manufacturer-specific profiles to transfer the configuration or user input according to Zigbee Specification section 2.3.1.1, it describes:

    For the purposes of this technical specification, the only criterion is for profile identifiers to be unique. To that end, every profile effort must start with a request to the ZigBee Alliance for allocation of a profile identifier. Once the profile identifier is obtained, that profile identifier permits the profile designer to define the following:

    • Device descriptions

    • Cluster identifiers

    You need to join CSA for this unique profile identifier application. All the Zigbee related specifications can be downloaded from:

    Zigbee | Complete IOT Solution - CSA (csa-iot.org)

    Best regards,

    Charlie

Reply
  • Hi Pat,

    Except for the public profiles defined by CSA on Zigbee Cluster Library Specification, you can create your manufacturer-specific profiles to transfer the configuration or user input according to Zigbee Specification section 2.3.1.1, it describes:

    For the purposes of this technical specification, the only criterion is for profile identifiers to be unique. To that end, every profile effort must start with a request to the ZigBee Alliance for allocation of a profile identifier. Once the profile identifier is obtained, that profile identifier permits the profile designer to define the following:

    • Device descriptions

    • Cluster identifiers

    You need to join CSA for this unique profile identifier application. All the Zigbee related specifications can be downloaded from:

    Zigbee | Complete IOT Solution - CSA (csa-iot.org)

    Best regards,

    Charlie

Children
No Data
Related