Exposing multi-button switch to HomeKit

I’ve got a hue dimmer switch that is connected through zigbee2mqtt -> mqtt broker > HA > HomeKit.

Prior to using zigbee2mqtt, the switch would show up like this. One switch would contain 4 distinct buttons that could be mapped to scenes and entity state changes.

I’m having trouble replicating this setup with Home Assistant’s HomeKit component. My current approach is to do something like this:

binary_sensor:
  - platform: mqtt
    name: 'switch1.on-press'
    device_class: light
    state_topic: 'zigbee2mqtt/0x00'
    availability_topic: 'zigbee2mqtt/bridge/state'
    value_template: '{{ value_json.action }}'
    payload_on: 'on-press'
    payload_off: ''
  - platform: mqtt
    name: 'switch1.off-press'
    device_class: light
    state_topic: 'zigbee2mqtt/0x00'
    availability_topic: 'zigbee2mqtt/bridge/state'
    value_template: '{{ value_json.action }}'
    payload_on: 'off-press'
    payload_off: ''

…etc (+2 more buttons). I need to create four distinct binary sensors for each possible on/off state of the switch. This translates into HomeKit as occupancy sensors, which I can then use for scene triggering. It kinda works, but it’s really annoying to use and fairly unintuitive. I have a decent number of switches, and repeating this process for all of them is frustrating.

Is there a better approach that I’m missing? Possibly a way to get a multi-button switch?

1 Like

Did you ever find an answer to this?

1 Like

Sorry for the super late reply. I don’t believe I ever did — I just switched to Homebridge. :wink:

There is no solution to this problem?