Feature Request: Expose a Virtual Fan entity when the config button is in fan control mode

You might be able to do this right now, if you’re using Zigbee2MQTT and Home Assistant and you do something like this: Blue Series On/Off - Change Device Type in Home Assistant (Zigbee2MQTT) | Inovelli Help Center. There’s a bit more of an explanation of how the configuration works in How to make VZM30-SN report as a fan (or at least a switch) to Home Assistant from Zigbee2MQTT? - #5 by jones3.hardy. At least, that’s what I could glean from it, as it’s poorly documented in the Zigbee2MQTT documentation.

I don’t have a Fan Canopy module setup right now (too lazy to install it). But I do use the configuration button for some lights that are bound to it. When you press it, it generates more stuff for the MQTT discovery payload. Specifically, it’ll add something like this:

homeassistant:
  device_automation:
    "<ieee-address-of-the-device>":
      action_config_single: ...

So, I think you might get away with adding something like this to your Zigbee2MQTT configuration:

devices:
  "<ieee-address-of-the-device>":
    homeassistant:
      action_config_single:
        object_id: fan
        type: fan
      fan:
        state_topic: zigbee2mqtt/<friendly-name-for-the-fan-canopy-module>
        state_value_template: "{{ value_json.<whatever-the-fan-state-is> }}"

I don’t know if that’s actually correct, or if I’m (still) misunderstanding the Zigbee2MQTT configuration. But, you’ll want to fill in the stuff that’s in angle brackets. You might need to also set other things under devices.<ieee-address-of-the-device>.homeassistant.fan, like availability, command_topic, or anything else; since it’s referring to a different device, so the defaults might not work properly.