2024-12-01 11:10 AM
Hi,
I have the problem, that my MCU seems to loose its connection to the network quite often (after some minutes or hours usually) and is therefore not usuable.
I would like to detect this in my Application and then trigger either a rejoin (if possible) or a normal join process and handle the rest on my coordinator.
I found this https://community.st.com/t5/stm32-mcus-wireless/stm32wb55-zigbee-network-connection-status/m-p/748031#M22281 as similar topic, but it did not work in my case. I tried the solution, but when I kick out my STM32 from the network from teh Coorinator side, the detect function does not register a network loss.
My other approach would be to use ZbZclAttrIntegerRead in a cyclic function and hope, that I can get an error code, if the Coordinator cannot be reached. Is there an example, of how to read a coordinator data or anything arbitrary with this function, and if there is an error report, when coordinator cannot be reached?
How would the call of a rejoin look like or just a new network join?
Thanks
v789
2024-12-23 09:02 AM
Hello @vh789
When Child does not receive an answer to End Device Timeout Request, a PARENT_LINK_FAILURE event is generated within Zigbee stack. Such event can be captured at application level using message filtering. Application could then trigger rejoin procedure. Sample app is attached to help you understand how to do it.
To avoid IPCC deadlock, rejoin procedure shall rescheduled outside the event notification callback using a HW timer for instance.
Best Regards.
STTwo-32
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.