why Xbee S2C put its own Mac address into motion detector response frame?

When I try to read network address of a Motion detector, Xbee put its own MAC address into API frame header:
7E 00 1F 91 “00 13 A2 00 41 47 DE 6A” 00 00 00 00 80 00 00 00 01 00 00 A2 5B 30 27 C9 43 50 00 12 B4 00 F2. why?

Your motion detector is an end device. The XBee is its parent. The XBee is responding on behalf of its sleeping child. The ZDO Nwk_addr_rsp was received from the XBee so it is in the source address field. But the payload will contain the 64-bit address and 16-bit address you requested.

1 Like

Thank you for your response,Now in a similar case if Xbee was the parent of more than 1 motion sensors and payload dose not contain MAC or network address (for exapmle other ZDO frames) how we could find original responser? Another question, this is not happened for all of motion sensor’s responses, do you have any document which shows list of frames that Xbee could response behalf of its sleeping childs? Could we disable this in Xbee?

Most ZDO frames do contain the NWK address for the node in question (Match_desc_rsp, Node_desc_rsp, etc). Per the specification most of those responses can be sent by the parent on behalf of its child. In practice that would require the parent to cache all of its children’s descriptors, etc which I haven’t seen any real-world stacks implement. You will see that for Nwk_addr_rsp because it doesn’t take anything extra (all parents already know their child’s EUI-64 and network address).

This is a core underlying stack feature and not something that can be turned on/off on the XBee. I’m not aware of any specific documentation I can point you at (either for the XBee or underlying ZigBee stack) that would tell you exactly what respones will be handled by the parent. I expect it is only Nwk_addr_rsp and maybe Ieee_addr_rsp.

You should look to the core ZigBee/ZDO specification for more details. Though won’t tell you what any given stack implementation will do…