No worries, I’ll try to give a step by step rundown of how I did it for ZHA using the resources I linked above.
-
Make sure you really are running the SP-EUC01 (lumi.plug.maeu01) (not the square US version) and keep in mind that although mine came out fine, applying this modified firmware can brick your plug! Do this at your own risk!
-
Download or build the modified firmware version 32 zip from this comment https://github.com/Koenkk/zigbee2mqtt/issues/13903#issuecomment-1244720072 , the download and build instructions are collapsed (little
icon).
Reason: Downgrades are normally not accepted by the plug so this modification tricks the plug into thinking this is a newer version (Just header information, if successful it will report version 32, meaning you can still “upgrade” it back to 41)
-
Unzip the download and upload it to a new directory inside HA, I placed my .ota file inside of the /config/zigpy_ota
directory I created
-
Modify your configuration.yaml file to include the following:
Required: (change the otau_directory if you chose a different directory)
zha:
zigpy_config:
ota:
otau_directory: /config/zigpy_ota
Optional but recommended:
logger:
default: info
logs:
homeassistant.components.zha: debug
zigpy: debug
-
Restart home assistant
-
If logging has been configured:
-
If you have a terminal via ssh or UI addon use cat /config/home-assistant.log | egrep 'zigpy.ota|zigpy.util|zigpy.*OTA'
to check previous progress or tail -f /config/home-assistant.log | egrep 'zigpy.ota|zigpy.util|zigpy.*OTA'
to tail new messages which might be related to the ota update.
-
If you don’t have a terminal you can check the full logs in Settings > System > Logs > Load full logs and search for “OTA” or “zigpy” but there might be a lot of unrelated messages.
If you see many lines ending in some increasing progress value the update started by itself. Skip step 7.
If the update didn’t start by itself (and mine didn’t either) see step 7.
- Manually start the update for each plug: (You can keep the logs open)
7.1 Navigate to the plug and inside the Zigbee info copy the IEEE number
7.2 Issue the following command in Developer Tools > Services: (replace the ieee)
service: zha.issue_zigbee_cluster_command
data:
ieee: 12:34:56:78:12:34:56:78
endpoint_id: 1
cluster_type: out
command_type: client
cluster_id: 25
command: 0
args:
- 0
- 100
Check the logs again, the ota update should now slowly transfer to the plug. If you didn’t enable logs wait half an hour, the transfer is pretty slow.
-
After the update mine started to flash red and I had to repair them again (the same way one initially pairs them) but home assistant will recognize them as your existing plugs so your automations shouldn’t be impacted.
-
Cleanup: Remove or comment out (#) the logging configuration if you don’t want your logs to be spammed by zha and zigpy messages. Remove or move the .ota file so HA doesn’t try to automatically update your plugs in the future since technically the .ota firmware version will always be greater than the reported firmware version.
That’s it! On the plug’s device page you can check “Manager zigbee device” > Clusters > Ota > current_file_version > Read attribute and it should now report 32 
Hopefully Aqara will fix this issue in the future via some official firmware update but until then I hope my guide helps! 