I forgot to mention one thing specific to fans. As I understand it, in this case the smartthings hub is on a lower floor.
So that means signal has to go up through the floor past the fan casing and then reach the receiving antenna on the device.
I understand that you have run the antenna out of the fan canopy so it’s just flat on the ceiling, right?
Even so, I’ll bet that there are times when the signal is blocked by the fan blade and times when it is not. Just depending on where the fan stops or if the fan is moving.
Imagine that one person is sitting in a chair in the room with the fan looking up at the antenna. And there is a tiny display on the antenna that is displaying A letter of the alphabet.
Now imagine that there is another person on the floor below, where the hub is, and they are holding a flashlight and they are shining the light up through A hole in the floor towards the fan.
There will be moments when the letter on the display is very easy to read, because the light is hitting it straight on. But there will be other moments when the letter will be almost impossible to read, because the fan blade is blocking the light.
And if the fan is moving, the situation is constantly changing.
That’s what’s going on when you’re trying to get signal between the zigbee antenna on the fan controller and the hub down below. It can be really tricky, and can lead to intermittent failures. (Moving fans are almost always included on exams in college network engineering classes. )
If the fan blades are metal, the problem is 50 times worse.
Anyway, another thing to consider is whether you need to bounce signal sideways in order to try to get it to the fan antenna.
You may need to do some experimenting to find the best positioning for a repeater to get signal to the fan. Just one of those things.