Zigbee - removing old bindings to rejoin to new coordinator

I need to be able to remove old bindings from a Zigbee end device using a commissioning button.

Probably these are in the UICR, but I cannot see anywhere how to delete them

Can someone explain how to clear old bindings from the binding/routing tables on an nRF52840

Regards

Rob

  • Hi Rob,

    If you simply want to remove a binding between two endpoints you can send an Unbind_req to remove the binding table entry. You can do this with zb_zdo_unbind_req().

    If you instead want the device to leave the network you can send a Mgmt_Leave_req. This is usually sent from a device requesting that another device leave the network, but the device can also send it to itself by setting the device address to its own address. For this you can use zdo_mgmt_leave_req(). This command can also be used if you want the device to leave its current parent and rejoin the same network under a different parent. In that case, you must remember to set the rejoin field of the leave request to 1 (for example req->rejoin = ZB_TRUE).

    You can also reset the device such that it is in much the same state as when it left the factory. This will make the device leave the network and erase all Zigbee persistent data. This is done using zb_bdb_reset_via_local_action().

    Best regards,

    Marte

Related