I have a setup which is working with ZigBee Home Automation profile. From one side I have device which is acting as a gateway and management panel. From another side - XBee S2C SMT module which is configured according to ZigBee HA requirements, and which I need to use as a thermostat. I can successfully join module to the network. But than coordinator sends simple descriptor request and module automatically replies with next packet:
Why it replies with Application Profile ID: Application Profile ID: [0x0105] ZigBee Building Automation and Application Device ID: [0x0001] Generic: Level Control Switch? How can I configure required device descriptions? If I need to send this frames via UART, then how to disable automatic resonse?
It is already as requested (AP = 0x01, AO = 0x0B). I have no problem with receiving and sending packets. But it seems that XBee FW already contains APL layer implemented, because it replies to simple descriptor request from coordinator with simple descriptor response automatically. But I need to know how to configure descriptor in FW, or, otherwise, to block it from replying automatically for the purpose to manage with host MCU.
I am not sure you can configure or modify that part of it. But they should be able to pull for active end points which I believe will be sent out the UART thus allowing for your processor to respond along with the radios active end points.
I think it will not work this way. Because Active Endpoints Response and Simple Descriptor Response have ZDP Transaction Sequence Number which should match with number in request. System doesnโt expect 2 responses with the same number from one device.
Is this a limitation of particular model/FW of XBee module? I donโt see much info regarding ZigBee HA with XBee S2C at the forum and Internet.
Are you sure we are talking about the same thing? The ZDO request I am referring to is the Query Active End points which is something that a processor should receive and respond to.
Yes, I am talking about Active Endpoints Request which is used as example in section Sending ZigBee Device Objects (ZDO) commands with the API of ZigBee RF Modules user guide.
I am not sure that you understood me well. What exactly should I reproduce? In case of 2 XBee I am in control what and where I want to send. Active Endpoints Request is not sent automatically. And when I send Active Endpoints Request from ZC to ZED like:
No data at UART interface. As I understand Active Endpoints Request is sent to 0x00 by default. I donโt know if it is determined by ZigBee standard or I can modify it. Of course, in case of 2 XBee devices I can send Active Endpoints Request to 0xE8 (where UART is), but I am not in control of 3rd party device. I cannot force it pull data from different desired endpoint.
In original network with 3rd party coordinator configured with HA profile the sequence of pairing is following (for simplicity will use ZED for XBee module and ZC for 3rd party coordinator):
ZED sends Beacon Request
ZC replies with Beacon
ZED sends Association Request
ZC replies with Association Response
ZC sends Transport Key
ZED sends Device Announce
ZC sends Active Endpoints Request
ZED replies Active Endpoints Response
ZC sends Node Descriptor Request
ZED replies with Node Descriptor Response
ZC sends Simple Descriptor Request
ZED replies with Node Descriptor Response (with Profile ID 0x0105 and Device ID 0x001)
In this case all communication is done without involving host MCU for ZED.
What I was saying is that if you send the same active end point request from another XBee module to the same end point, what happens? Do you see the same response? If so, then you need to notify Digi Technical Support.
As you can see from my reply above, it sends the same response. By the way, if Iโve tried to send Active Endpoints Request to the destination endpoints 0x00 and 0xE8. Only in second case I see this request frame at UART interface of ZED. AO is set to 7 in both cases. Does it mean that passthru mode doesnโt work?
I can :). I found that frames are not passed through in case of setting AO to 7 (Same as 3, plus supported ZDO request passthru). And this option is not documented. However, it is available in XCTU 6.2.0. With AO = 3 (Same as 1, plus unsupported ZDO request passthru) incoming frames are passed to the UART. For the reference AO = 1 means Received RF data formatted as Explicit Rx-Indicator.