Zigbee brightness cluster attribute and cluster

Hello,

Using v1.9.1 nrfConnect and the Coordinator example on a nrf52840 -DK.

From Nordic docs:


I think I may be miss interpreting Zigbee Cluster spec...

Below is example of an RGB light bulb I'm trying to change brightness on but can't get it to change.
(I tried many different ways too long to list)

#1  Based on below cluster info etc. can you give example of ZCL commend format to set brightness to 50%?
We can use "move to level" to 50%. I believe range is 0x000 - 0xfe if I read it right?

I can turn same bulb on/off by sending on/off command. 
zcl cmd 0xcf3e 01 0x0006 0x01 --- ON, as example.

But I can't read the attribute showing on/off status? Am i missing some setting in Kconfig?
I tried including profile id 0x0104 also since my default is HA.

#2  Can you me show ZCL command example of how to read this?


From Nordic doc: 
zcl attr read h:dst_addr d:ep h:cluster [-c] h:profile h:attr_id


PS: I looked at other tickets but looks like my issue is much simpler.

Thank you, Jorgen

  • Thanks Andreas!

    Examples would be great on the payload format for lighting in general with short explanation of range parameters.
    It would save a lot of dev time....:)

    Since lighting control is such a common requirement an appnote with examples on this topic would be extremely useful or even a "real" lighting controller design example. 
    There are many ways to dim a light and change color etc.
    Some implementations (step vs. move to level as example) has impact on real-time response as well as flooding network with messages and instead using broadcast group etc. depending on how many lightbulbs are on the network.
    Just some food for thought...

    Cheers, Jorgen

  • Hi again Jorgen,

    I took another look into the ZigBee Cluster Library (version 7) and found something that I hope will clarify how to use the command

    For the step command: zcl cmd 0x8041 10 0x0008 0x02 -l 00A01400

    we have that the long payload 00A01400 is formated as 0x00 0xA0 0x14 0x00.

    • Here 0x00 = "step mode" which says to step up

    • 0xA0 = "step size", which is to be changed by 160 (0xA0 = 160)
    • 0x14 = "transition time", which is stated as "The Transition time field specifies the time that SHALL be taken to perform the step, in tenths of a seconds
    • 0x00 = "option", which is just 0 since its not used

    These can be seen in chapter 5.2.2.3.6 in the specification

    I hope this clarifies this command for you! 

    Kind regards,
    Andreas

  • Thanks Andreas, 

    I was able to step up and down now!

    If I step too many times down or up and device is all the way to it's upper or lower limit already I get error msg saying="request pool is full, wait a little".

    Can you tell me what causes this error?

    I should not have to keep track of where I am on the step scale for a device, right?
    It should just reject or do nothing if I keep stepping beyond full/lowest brightness, please confirm.

    The "request pool..." error does not clear unless I push reset on eval brd and then I have to restart stack.
    So it's probably related to Nordic FW.
    Is there a way to clear this message with command?

    Thanks again!
    Jorgen

  • Hi Jorgen,


    I will see if I can dig up an explaination to this, however it might take some time (again due to vacation).

    My immediate thought is that the request pool only either has room for a given amount of orders (fixed bit number of orders can be held at a given time), or that the limit has been overstepped. Does the error clear if you step down after reaching the upper limit?

    Kind regards,
    Andreas

  • Andreas,
    No problem we have other things to work on .
    I believe once first error is generated it does not matter if I step down when at high limit or if I'm at low limit and step up. I will confirm this.
    ( "waiting" does not help) 
    Thx, Jorgen

Related