Zooz Zen32 and Smart Ceiling Fan Speed Control

Hi everyone, I’ve been using Home Assistant for about two years now, following the Insteon problems. I live in Bermuda, and it gets pretty hot in the summer, so I have ceiling fans in each room. These fans aren’t wired to a wall switch—they’re hardwired into the ceiling and controlled by pull chains. For years, I’ve been using Insteon fanLincs with their six-button scene controllers, which worked great. However, I’ve decided to move away from Insteon gear since I know the controller is likely to fail eventually. I’m now down to replacing the fanLincs with Sonoff Wi-Fi fan controllers.

My question is about the Zooz Zen32. I’ve been using them to control the fanLincs, and they work pretty well, but I’m trying to replicate how Insteon worked. Right now, I have an automation that triggers when the bottom four buttons are pushed to set the fan speed. Generally, this works fine. The main issue I’m having is syncing the scene button LED states to the fan speed. I’d like this to behave how Insteon did, where pressing “Low” turns off the other button LEDs, and the scene controller shows the current speed by which button LED is on.

I’ve tried two methods for this. The first method involves an automation that calls a script to sync the Zen32 button LEDs, turning on the active button LED and off the others. This works most of the time. The second method is creating a scene for each fan speed state, where each scene sets the Zen32 button LED for that speed to on and the others off. Another automation triggers the correct scene when a button is pushed. Again, this works most of the time.

Does anyone have any thoughts on the best method for this? Are there other options I haven’t considered? I’d really appreciate your help! Thanks in advance.