I have this mini split controller (Mysa) that is homekit compatible. To control it locally, I added it to HA via0 “homekit devices” then exposed the entities to Homekit with bridge.
Problem is, entities are shown as 2 separates tiles, one for the turn on/off and temperature control and another one for fan speed.
If you add the device directly to homekit instead of HA, everything is under the same device :
I am very interested in learning if it’s possible to combine entities in HomeKit like this, as I’m trying to expose HA switches for Eco mode and Fan control within the same thermostat device in HomeKit.
For a “climate” entity like this, HomeKit displays controls based on the “supported_features” attribute of the entity in HA. You can view the value of this attribute by opening “Developer Tools” section in HA and viewing the climate entity in the “States” tab under “Set State”. It appears that maybe HA’s HomeKit Devices integration is reading the features differently than native Apple Home?
Unfortunately it’s kind of hard to interpret this field, since even the developer docs don’t tell you what values apply to each property you have to look at the actual code to reverse engineer the bitwise OR. If the value of supported_features is 3, for example, it means the thermostat supports TARGET_TEMPERATURE (1) and TARGET_TEMPERATURE_RANGE (2).
You can override this value (in customize.yaml) to remove supported_features from a climate entity, but I don’t know what would happen if you tried to add more features. For example, If you added FAN_MODE, it’s not clear whether HA’s climate entity has the embedded data to actually control the fan (you could always try it and see what happens).
I took a look at the “entity_config” section in the HomeKit bridge config YAML, which lets you link entities together in HomeKit — but this is mainly for linking batteries and sensors to other entities and I don’t see any options to link a fan to a thermostat. This might be a useful feature to put on the roadmap if enough people request it.
Finally, you might be able to create your own custom climate entity with the desired features, and bridge that to HomeKit, but unfortunately the generic_thermostat does not appear to support fan control either (only heat/cool settings). Based on a quick google search I did find a 3rd-party custom climate integration which might have this missing feature, so might be worth checking out.