DALI: Resetted short addresses but now ballasts not responding to COMPARE?
Your interpretation of X as no response is incorrect, the AL-DALI-HAT manual you linked to shows that X means collision on recieve. A collision occurs in DALI when multiple controlgear respond simultaneously to the same query - COMPARE is effectively a query because it requires a response. DALI is not designed for collision avoidance in the response packets, rather it is designed so that collisions can and will usually occur under these circumstances. The application has to be designed to interpret these collisions in the appropriate way. In this case, collisions mean that there are more than one controlgear with a random address below 0xFFFFFF.

The random address search routine has to change the search addresss until it gets no response, then step back up one which should produce just one clean response - at that point the gear is selected and will respond to the Program Short Address command. See the Related Questions on the right for more details.