Read Attributes / Read Attributes Response

Hi.

I’m using a coordinator(64bit addr - 0013A20040690f8C ) and a router devices and I’m trying to Read an Attribute (page 17 ZCL.pdf) from the router (64bit addr - 0013A20040690f8D ).

I looked to the example in PDF (page 103) and I couldn’t do it and I don’t know why.

In the XCTU I generated this frame(following the example):
7E 00 19 11 01 00 13 A2 00 40 69 0F 8D FF FE 41 42 00 00 D1 23 00 00 00 01 00 03 00 7B

I expected a Read Attributes Response Command coming back (page 18 ZCL.pdf) and I dont received.

Can someone help me?

Thanks in advance.

What firmware is installed on your module that is issuing the API frame?

Can you provide a link to the document you are reading?

1 Like

The documents:
1-http://www.digi.com/standards/smart-energy/assets/90033931_A.pdf

2-http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2011/kjb79_ajm232/pmeter/ZigBee%20Cluster%20Library.pdf

I installed the ZigBee smart energy firmware (version 3132 - coordinator and 3332 - router.
When I send the Network Address Request (Example 2 - page 57) of the first document and I received exactly what I expects.

But when I try the example of page 103 I cant receive the hardware version.

Thank you.

Did it ever occur to you that the example listed may be fictitious or an invalid frame? Sometimes frames just get filled in with data so you have an idea of how it is read or some what of an idea of what it should look like.

The description of the example:
"The following table shows how the Explicit API frame can be used to read the hardware version
attribute from a device with a 64-bit address of 0x0013A200 40401234 (unknown 16-bit address).
This example uses arbitrary source and destination endpoints. Recall the hardware version
attribute (attribute ID 0x0003) is part of the basic cluster (cluster ID 0x0000). The Read Attribute
general command ID is 0x00. "

I adapt this example to my case and I can explain all bytes:
7E start delimiter
00 19 length
11 frame type
01 frame ID
00 13 A2 00 40 69 0F 8D 64-bit destination address
FF FE 16-bit desination network address
41 source endpoint (arbitrary)
42 destinatiion endpoint (arbitrary)
00 00 cluster ID (basic cluster)
D1 23 profile ID (arbitrary)
00 broadcast radius
00 transmit options
PAYLOAD
08 frame control (binary - 01000) page 14 in Zigbee Cluster Library - document 2
01 transaction sequence number (arbitrary)
00 command ID - read attribute
03 00 attribute ID (little endian) indicate to read the hardware version - table 3.8 Zigbee Cluster Library
73 checksum

Where is the error?

The description of the example:
"The following table shows how the Explicit API frame can be used to read the hardware version
attribute from a device with a 64-bit address of 0x0013A200 40401234 (unknown 16-bit address).
This example uses arbitrary source and destination endpoints. Recall the hardware version
attribute (attribute ID 0x0003) is part of the basic cluster (cluster ID 0x0000). The Read Attribute
general command ID is 0x00. "

I adapt this example to my case and I can explain all bytes:
7E start delimiter
00 19 length
11 frame type
01 frame ID
00 13 A2 00 40 69 0F 8D 64-bit destination address
FF FE 16-bit desination network address
5E source endpoint - I received this information by ZDO command (Active Endpoints Request Response)
5E destinatiion endpoint - I received this information by ZDO command (Active Endpoints Request Response)
00 00 cluster ID - basic cluster
01 09 profile ID - I received this information by ZDO command (Simple Descriptor Request Response)
00 broadcast radius
00 transmit options
PAYLOAD
08 frame control (binary - 01000) page 14 in Zigbee Cluster Library - document 2
01 transaction sequence number (arbitrary)
00 command ID - read attribute
03 00 attribute ID (little endian) indicate to read the hardware version - table 3.8 Zigbee Cluster Library
24 checksum

The only doubt I have is in the frame control.
Where is the error?

Thank you

Try using a more up to date manual

http://ftp1.digi.com/support/documentation/90033931_F.pdf

I referred this manual in previous commentary.
I have been follow all posible manuals:
Zigbee Cluster Library
Zigbee Specification
90033963.pdf
and even the Creating a Smart Energy Device Usnig Digi’s Xbee SE RF Module

I think my problem is a small problem.
If I can execute a ZDO command (such as Active Endpoints Request) , the xbee modules are able to communicate, right?
Where is my error in my explanation stated before ?

I referred this manual in previous commentary.
I have been follow all posible manuals:
Zigbee Cluster Library
Zigbee Specification
90033963.pdf
and even the Creating a Smart Energy Device Usnig Digi’s Xbee SE RF Module

I think my problem is a small problem.
If I can execute a ZDO command (such as Active Endpoints Request) , the xbee modules are able to communicate, right?
Where is my error in my explanation stated before ?
I’ll try to find in the document that you gave to me but if you could help me…

You are referring to Revision A of that manual. I am referring to the updated Revision F of that manual.

Yes, if you can query an Active End point request, then they are communicating.
Pages 59 - 60 tell you which Cluster ID’s and End points are directly supported by the radio. I have not completely checked but I believe that the Cluster ID you are using is not supported by the radios hardware/firmware but something that would be supported by your application.

Are you telling me if I want to read the routers hardware version I need to send the basic cluster 0x0000 (read attribute 0x00 - HWversion 0x0003 ) and my application has to processing the data (sending a AT command asking for the HW version) and it send to the coordinator?

The xbee does not send the response automatically?

I issued 7E 00 15 11 01 00 13 A2 00 40 4C 2D 3E FF FE 00 00 00 00 C1 05 00 00 31 4D and got back 7E 00 15 11 01 00 13 A2 00 40 4C 2D 3E FF FE 00 00 00 00 C1 05 00 00 31 4D with a transmit status of 7E 00 07 8B 01 00 00 00 00 00 73.