Blue VZM35-SN Fan Switch Not Remembering Previous Setting

I removed and re-added all my VZM35-SN switches in Home Assistant today…

I did this because the new InovelliVZM35SNv7 quirk has speed controls built into the controls in Home Assistant, instead of having to build my own fan templates. Fantastic.


As you can see in the image above, the new quirk has two controls. The fan control has 3 speeds, while the light control is a binary on/off switch.

There is just one problem I am having with this. If I set my fan to “low”, then turn the fan off, turning the fan on using the fan control toggle will ALWAYS turn the fan on at “medium” speed. It ignores that my previous setting was at “low”. Oddly enough, if I turn the fan on using the light control toggle, it does remember my previous setting and turns on at “low”.

Basically, the issue is the fan control toggle is not working properly.

Doing some more testing… and yes, no matter what the previous setting, if you turn on the fan remotely from Home Assistant (not using the physical switch), it turns on at “medium” speed. There is no way to turn the fan on at “low” or “high” when using the fan toggle. When using Google Assistant as well, it starts at medium; because Google Assistant routes through Home Assistant.

This is currently the default for all of ZHA fan type devices. I’m not sure of the reasoning for that but it’s isolated to ZHA and isn’t seen elsewhere.

For a workaround, do you usually control the device from the device page or a dashboard? If you click that icon instead of the toggle, it should bring up the speeds for you to pick from. If you have this on the dashboard, I’d recommend a custom card (I use the fan-percent-button-row one, but there are several), that lets you choose the specific speed from the start. I don’t have a workaround on the voice part though unfortunately, have to tell it to speed up/slow down.

I see now, when I hit the toggle it sends the following data:

{
  'level': 128,
  'transition_time': 0
}

So it doesn’t matter what settings I have on the switch, it always sets the level to 128. Is there any way to stop this without disabling the entity completely and repacing it with a custom template once again? I was hoping to get rid of the redundant templates with the new v7 quirk… and it does everything it needs to do now, except for this one issue.

You could migrate to Zigbee2MQTT, it doesn’t have this problem (but will be some level of effort to repair everything to it). I talked a little bit in this thread as to why I would recommend switching.

I used MQTT when I was on Zwave… I hated it.
I like ZHA. Hopefully there is a fix coming soon for the issue.