Read Manufacturer Specific ZigBee Cluster Attribute SmartThings

I am working with a SmartThings Multipurpose Sensor connected to a nRF52840-DK running the ZigBee CLI as a coordinator.  I am able to have the sensor join the network and I can interact with all of the ZigBee defined clusters but I can't seem to interact with the manufacturing specific cluster.  As you can see below the device has 1 endpoint and supports the following device type and clusters.

> zdo active_ep 0xad65
> src_addr=AD65 ep=1 

Done

zdo simple_desc_req 0xad65 1
> src_addr=0xAD65 ep=1 profile_id=0x0104 app_dev_id=0x402 app_dev_ver=0x0 in_clusters=0x0000,0x0001,0x0003,0x0020,0x0402,0x0500,0x0B05,0xFC02 out_clusters=0x0003,0x0019 

Done

I am trying to read the accelerometer values from the sensor which are stored in the 0xFC02 cluster.  I gathered this from the SmartThings developer site.  Every time I try and read the attribute I get an error. 

zcl attr read 0xad65 1 0xFC02 0x0104 0x0010
> Error: status 134

I noticed on the developer site that when they read and write the 0xFC02 cluster they also include a manufacture code, see line 404 on the developer link. I tried using the manufacture code in place of the profile ID but that didn't work as the request just times out.

zcl attr read 0xad65 1 0xFC02 0x1241 0x0010
> Error: request timed out.

How do I include this code in the CLI or the Zboss stack?

Parents
No Data
Reply
  • Hi,

    "Error: status 134" means that the attribute you tried to read is unsuported (unknown). You should double check if the attribute ID is correct.

    Best regards,

    Marjeris

    NB: You can also see this error message in the Read Attribute response if you see at a sniffer trace, for example using our nRFSniffer for 802.15.4. Try reading the attribute ID 0x0000 instead as this is the commond attribute ID for the first attribute in a cluster. If that does not work you should try to search in the Smarthings code to see if you find the right attribute ID.

Children
  • Thank you for the response but unfortunately it didn't help me to interact with the manufacturing specific cluster.

    After some hours of Google foo, reading the ZCL document from the Alliance, and the nRF Zigbee SDK files I found that to read a manufacturer specific cluster the ZCL frame has different values see ZCL doc. sections 2.4.1.1.2 and 2.4.1.2.

    In the SDK there are several macros in

    zb_zcl_commands.h
    that are used to build ZCL frames but the stack lacks prebuilt ones to access manufacturer specific clusters.  Do you know of any reason why?

    Best Regards,

    Darren

Related