HomeKit Stateless Switch support

There’s no way to use the Tradfri button, among other stateless switches with HomeKit.

I would also like this, not necessarily for Tradfri, but for any button entities in HA.

Example:

To be clear, do you both mean with the homekit integration (expose buttons from Home Assistant to an iOS device) or homekit_controller (use “Made for HomeKit” devices like the Tradfri button with Home Assistant).

homekit_controller does already (in theory) support the Tradfri button (see the docs here HomeKit Controller - Home Assistant). It’s a bit hidden away because they are stateless, so there are no entities created. But you can create automations for single press, double press and long press from the automations UI already.

As for the button integration in general, that is not supposed to export button presses via homekit. See https://github.com/home-assistant/core/issues/62935.

If this is about homekit_controller I can probably help.

I was referring to the HomeKit integration in bridge mode, so exposing HA devices/entities to HomeKit. I did see the documentation for the controller, but I don’t think that would help me.

I was hoping with the new ‘button’ entity, it might be possible. But I probably don’t understand how things are exposed or what can be exposed to HomeKit well enough

Right unfortunately you fall into the second part of my answer - its been decided that semantically this feature doesn’t make sense as part oft the button series of integrations at least.

button entities are for controlling a device from home assistant. They are outputs. We have button entities that trigger firmware update mode or trigger devices to restart. They are typically virtual only. So if you exposed a button entity from HomeAssistant to HomeKit, you’d be able to press it in HomeKit and trigger an action in HomeAssistant or on one of your devices.

This is quite different to something like a Tradfri button. Rather than an output, they are an input. So you can’t really map them to a button, which is an output.

When we added support for stateless devices like buttons and doorbells to homekit_controller, we couldn’t actually figure out a generic way to forward them to the HomeKit bridge. Because there isn’t an entity (because there is no state) and right now HomeKit bridge is kinda driven by entities.

I can’t really help with HomeKit bridge sorry. I don’t think stateless switch support has been ruled out or anything, but there just isn’t a good design for it yet. And theres always more work to do first.

1 Like

Thank you, I appreciate the explanation nonetheless!