Temporary solution to enable real-time multi_press_ongoing events for Matter button devices (e.g., IKEA BILRESA scroll wheel) until PR #159045 is merged into Home Assistant Core.
⚠️ Note: This is a temporary workaround based on unmerged commits in PR 159045 from @phoffmeister. Once that PR is merged and you update to a Home Assistant version that includes it, you should remove this custom component.
Home Assistant's Matter integration currently only emits button events after all presses are complete (e.g., multi_press_1, multi_press_2, multi_press_complete). This causes poor responsiveness for scroll wheel devices like the IKEA BILRESA.
This custom component monitors Matter initial_press events and emits multi_press_ongoing events in real-time as presses happen, providing immediate feedback for scroll wheel actions.
- ✅ Working for me (tested with IKEA BILRESA on HAOS 2026.1.3)
⚠️ Not extensively tested - may have edge cases or compatibility issues- 🔄 Temporary solution - will be replaced by official PR #159045
-
Clone this repository into your Home Assistant configuration directory:
cd /config git clone https://github.com/andrewfoster/ha-matter-multi-press.git -
Restart Home Assistant
If you prefer manual installation:
-
Copy files to your Home Assistant config:
# Copy custom component cp -r custom_components/matter_multi_press /config/custom_components/ # Copy blueprint cp blueprints/automation/jhol-byte/Ikea_bilresa_scroll_wheel_v2.yaml /config/blueprints/automation/jhol-byte/
-
Restart Home Assistant
- Go to Settings → Automations & Scenes → Blueprints
- Find "Ikea_bilresa_scroll_wheel_v2"
- Click Create Automation
- Configure:
- Select your BILRESA remote device
- Enable "Use real-time ongoing events"
- Configure scroll wheel targets (lights/media players)
- Set dim step percentages
You should also be able to use the ongoing events in custom automations (untested):
automation:
- alias: "BILRESA Real-time Control"
trigger:
- platform: event
event_type: "event.bilresa_ch1_scroll_right_multi_press_ongoing"
action:
- service: light.turn_on
target:
entity_id: light.living_room
data:
brightness_step_pct: "{{ trigger.event.data.press_count * 5 }}"The component emits events with this format:
event_type: event.<device_name>_multi_press_ongoing
data:
entity_id: event.bilresa_ch1_scroll_right
press_count: 3
event_type: multi_press_ongoing