Retrieving energy data from dali2 D4i memory bank (202) of a luminare
Firstly, not all DALI-2 control gear support energy data part 252. As of today, there are 1318 DALI-2 control gear and only 232 of them support energy data part 252 (memory bank 202). In general you would need to check that your gear is one of the listed ones, but D4i certification means it must have energy data support.
If we look at the possible reasons for no response to WRITE MEMORY LOCATION (DTR1, DTR0, data) then there are the following possibilities (from IEC62386-102 11.7.16)

the addressed memory bank or location is not implemented

&quot;writeEnableState&quot; is DISABLED

the addressed memory bank is lockable and the memory bank is locked
for writing

the addressed memory location is not writeable

the addressed memory location is beyond the last implemented memory
location in the bank


You are selecting memory bank 202 using DTR1 and location 0x02 with DTR0. Your ENABLE WRITE MEMORY command is sent broadcast so you are selecting all control gear for writing. Beware this will result in collisions in responses if you have multiple gear connected and powered up on your bus. Unless you can guarantee that only a single gear will be connected to your controller you should not use ENABLE WRITE MEMORY with broadcast addressing. Single luminaires can contain multiple control gear - either because of the number of lamps or because of emergency gear.
Note that ENABLE WRITE MEMORY is a Send Twice command; it is not clear from your description that you are sending it twice within 75ms as per IEC62386-101 Table 17.
The definition of the Lock Byte at address 0x02 is that the memory type is RAM-RW so it should be writable. However, all the other addresses in that memory bank are either ROM or NVM-RO (read only). I would think that you should get a response to the WRITE MEMORY LOCATION (DTR1, DTR0, data) for address 0x02 only, but it might be not responding because that value 0x55 (Unlock) is not valid because you can't write to any other location in that bank.
Latching, for multi-byte reading so that the value is consistent, requires value 0xAA in the lock byte, not 0x55 (unlock), as per clause 9.2.3
It would be helpful to confirm that you can read non-zero values for locations 0x00 to 0x03 in that memory bank, as single bytes which don't require the latching mechanism, and would prove the memory bank is otherwise readable.