How can I just expose the fan-entity without having the switches in Homekit? I already disabled the light and switch-entity in HA, but Homekit still sees them. If I click on the switch in Homekit they dont match with either the indicator light or physical lock.
Not sure what you’re talking about with sub entities. No entity has ‘sub entities’. Devices are comprised of entities, but an entity_id points to a single entity on a device, not the whole device. Are you sure you’re reloading homekit properly? There is an entire process to it and if you don’t follow it, old items persist. All covered in the homekit docs.
I’ve created a template fan with 3 preset stages (using two Sonoff switches) and I also have a useless set of switches in HomeKit - so I think this is a HomeBridge issue. I doubt the integration of the switches in HA via HACS or official has an impact as HK should see the entity you expose.
EDIT: read the GitHub issue and I can confirm iOS 17 is still doing this. It’s correct that the switches represent the modes and they work as intended. The issue is they aren’t labelled in a useful way.
The problem has been known for 2 years, is simply due to the HomeKit addon, it does not hand over the device as an air purifier and therefore it is only individual switches. If you give the same device with a separate instance Homebridge to the IOS device, it will be displayed cleanly. Had already opened a case including pictures, somehow it doesn’t go on.
I ran into the same issue: a Winix air purifier (winix_fan_1) gets passed to HomeKit as 1 fan and 5 switches. The solution I come up with is to create a virtual fan (winix_fan_passthru_1) that controls just the fan speed of the underlying Winix air purifier. This will lead to a plain fan in HomeKit. You may want to tweak the speed_count to fit your needs.