Hi, everyone.
I have BeyondStudio for NXP with JN-SW-4168 SDK and JN5169. I'm using a JN-AN-1201 ZigBee Intruder Alarm System application note as a base for my application.
I'm programming an IAS Zone server device with motion sensor. I need to enroll it with the coordinator that works like a CIE device and have IAS Zone client to pair with. Everything seems to be fine on the first steps and match descriptor request replies with a correct cluster ID. However when the coordinator tries to enroll with my device and sends me an auto enroll-response message with the assigned zone ID in it (as I see in the sniffer), I just don't seem to get the correct endpoint callback event with it. Neither my device replies with any IAS zone default response message.
As I understand from the ZigBee Cluster user guide, I should receive the E_ZCL_CBET_CLUSTER_CUSTOM event in my endpoint callback with the tsSM_CallBackMessage structure inside, where I can get my zone ID to complete the enrollment. But I don't seem to get any of that. Any idea why that could be happening? Maybe I need to add some settings to my IAS Zone cluster so it works with auto enroll-response enrollment method?
Side note: if I manually code in the zone ID that coordinator is sending, then everything works fine. I can finish the enrollment and send the motion events back. So the problem is only with receiving the enroll response event to get the correct zone ID and handle enrollment properly.
Hi,
Could you please to take a look at JN-UG-3103 ZigBee Cluster Library, section 26.3 Enrollment which describes the three options available for enrolment, together with the sequence of event each entails.
These values are stored in the u64IASCIEAddress and u8ZoneId attributes on the Zone device (cluster server) - see Section 26.2. In addition, once enrollment has completed, the e8ZoneState attribute is set to ‘enrolled’. Subsequently, the Zone device will only communicate with the paired CIE device.
http://www.nxp.com/documents/user_manual/JN-UG-3077.pdf?fsrch=1&sr=3&pageNum=1
Best Regards,
Mario
Hi, Mario!
Thanks for you response.
But does that mean that u64IASCIEAddress and u8ZoneId are updated automatically? As far as I understood I need to set them myself right after receiving those values from Client using eCLD_IASZoneUpdateCIEAddress() and eCLD_IASZoneUpdateZoneID() functions. And the problem here is that I don't receive the callback event from which I can read the ZoneID that was assigned to my device, even though it is being sent correctly according to packet sniffer. As I mentioned in the side note everything works when I hardcode the correct ZoneID value and set e8ZoneState to "enrolled". But that's not the proper solution since it doesn't work with any other zone ID. Where do I get the ZoneID?