FYI, victorigualada wrote a step-by-step guide in the Home Assistant community forum on all the elaborated steps currently needed for an end-user to manually apply a custom Zigbee OTA firmware image to a device in the ZHA integration if there is not an OTA provider in zigpy: