Hi Support Team,
I want to remove a device from the network without any bother if it is online or power off. How to clear device-specific information from the stack. so the coordinator itself not allowed to rejoin that device again in network.
Issue Description: Currently, Zigbee Coordinator is sending management leave request but there is device power off due to not leave and also coordinator not getting leave confirmation. so once the device again powers up and it has rejoined the Zigbee network successfully.
Solved! Go to Solution.
Hi Kanji,
You could use the API ZPS_bAplZdoTrustCenterRemoveDevice
This function can be used by the Trust Centre to delete a node in its information base.
Regards,
Mario
Hi Kanji,
The Install code can be used to create the link key used to authenticate a node into a centralized security network and pass the network key to the node. The install code and derived link key protect the network key with high security.
In other words, in your case, the node that was power off and then power on has the network key. It can enter the network again.
Regards,
Mario
Hi @mario_castaneda ,
If I removed the link key using this API ZPS_teStatus ZPS_eAplZdoRemoveLinkKey( uint64 u64IeeeAddr) then also device again enter in a network.
Thanks & Regards,
Kanji.
Hi,
The device should receive the leave command when it is power on. Otherwise, the device doesn't erase the network information.
You could change the network key to avoid that the device rejoins the network.
Regards,
Mario
Hi @mario_castaneda ,
You could change the network key to avoid that the device rejoins the network.
Here, we have two scenarios happening:
scenario-1:
The coordinator doesn't remove end devices in that case, we can expect to device rejoin successfully. In case a device goes offline then it should be back online.
scenario-2:
The coordinator has removed the specific device and that time device is powered off. so definitely it will not leave the network. whenever the device again powered it has joined the successful network.
As per your feedback, If we removed the network key on every power cycle then scenario-1 will be failed. Am I right?
Thanks & Regards,
Kanji.
Hi,
As per your feedback, If we removed the network key on every power cycle then scenario-1 will be failed. Am I right?
Yes, you are right. In Scenario-2, you could implement a polling routine, and be sure that if the device comes back you could send the leave command again.
Is the node a SED?
Regards,
Mario
Hi Kanji,
Is it possible that you could print out the vDisplayNWKKey and the vDisplayAPSTable before and after calling the ZPS_bAplZdoTrustCenterRemoveDevice API?
Also, what is the response that you are seeing in the sniffer log when the SED power on?
Regards,
Mario
IEEE Address 0x158d0001930330
PanID 0x7f4c
CurRadioChannel 0x0f
Transmit Power 0x08
NWK KEY: 30 75 b6 c3 2c 41 12 6f e8 cd 2e db 64 19 0a 07
Hi Kanji,
You could use the API ZPS_bAplZdoTrustCenterRemoveDevice
This function can be used by the Trust Centre to delete a node in its information base.
Regards,
Mario
Hi @mario_castaneda , Stil I am getting issue while leave request send to device. Unfortuantely device is powered off after powered up device then again successfully device rejoin even I have removed device info from the trust center using this ZPS_bAplZdoTrustCenterRemoveDevice().
@mario_castaneda , I appreciate your effort and quick resolution. Thank you so much man!!!
Hi Kanji,
I hope you are doing great.
As the device is power off or could be in sleep mode, the device won't receive any data.
The parent will try to reach the device 3 times, and if the case of a leave command, the parent will erase the information from the routing table. Unfortunately, the SED has the Zigbee network key and it could rejoin again without any issue.
So, you have to change the Zigbee network key or poll for the data request to send the leave request again.
You could look at the B.2 Sending Data to Sleeping End Devices and B.2.1 Acknowledged Data Transmission to Sleeping End Device
https://www.nxp.com/docs/en/user-guide/JN-UG-3048.pdf
Regards,
Mario
Hi @mario_castaneda ,
Actually, I want to intentionally remove the device from the coordinator Zigbee stack. that means I wanna clear that device-specific stuff from the stack so next time it will not able to communicate with Zigbee coordinator.
i.e:
B.3 Clearing Stack Context Data Before a Rejoin
- suppose to be a device is powered off and a leave request sent to the device, but it was not able to respond and not leave from the network. Instead, if we can remove device-specific things from the coordinator stack then definitely CO itself not allowed further communication with that specific device. It is one kind of leave perform at the coordinator side. Is this possible to do that? so which kind of information remove/delete in the coordinator so we can achieve it.
FYI: We are using install code based link key security level.