All docs

Docs/bilresa-scroll-wheel.yaml

IKEA BILRESA Scroll Wheel - 3 Light Presets

automation · HA 2025.7.0+ · 24 inputs

Flexible light control for the IKEA BILRESA scroll wheel remote via Matter. Created by @0libote GitHub: https://github.com/0libote/HA-BPs Setup is top-down: pick the 9 remote event entities, pick the lights for each preset, then tune the shared wheel and colour feel once. Each of the three physical BILRESA presets can: - Control its own set of lights. - Be disabled. - Duplicate another preset's lights and colours. - Share one brightness step, range and transition. - Share one centre-button layout (Tap = Colour / Hold = Power, or reversed). - Use its own ordered colour list with Home Assistant's RGB colour picker. - Reorder colours by dragging them in the blueprint editor. Presets 2 and 3 duplicate Preset 1 by default, so a single room works after configuring Preset 1 only. Switch a preset to a custom profile when it should control different lights or cycle different colours. Wheel movement uses Matter's totalNumberOfPressesCounted value, so a quick multi-detent spin is applied as one larger brightness change. Brightness is clamped to the configured minimum and maximum. Scrolling right while the preset's lights are off turns them on at the minimum brightness. Tapping for colour while off turns them on with the first colour. Updating from an older version resets per-preset tuning to the new shared Wheel and Colour settings. Re-check those once after updating. Important Matter limitation: If the BILRESA itself aborts an over-limit multi-press sequence and sends no completed event, a blueprint cannot recover that missing movement.

Manual import URL: https://github.com/0libote/HA-BPs/blob/main/blueprints/bilresa-scroll-wheel.yaml

Setup guide

IKEA BILRESA Scroll Wheel

IKEA BILRESA Scroll Wheel

![Import blueprint](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2F0libote%2FHA-BPs%2Fblob%2Fmain%2Fblueprints%2Fbilresa-scroll-wheel.yaml)

Manual import URL:

https://github.com/0libote/HA-BPs/blob/main/blueprints/bilresa-scroll-wheel.yaml

This blueprint turns the three physical BILRESA presets into light profiles with one shared wheel feel. Each preset keeps its own lights and ordered colour list, or duplicates another preset. Brightness step, range, transitions and the centre-button layout are shared so there is far less to tune.

Presets 2 and 3 duplicate Preset 1 by default, so a single room works after configuring Preset 1 only.

Before you start

Configure

Scrolling right while a preset's lights are off turns them on at the minimum brightness. Colour while off turns them on with the first colour.

Fast wheel movement uses Matter's totalNumberOfPressesCounted value. If the device itself aborts an over-limit multi-press and publishes no completed event, Home Assistant has no movement for the blueprint to recover.

Updating from an older version resets per-preset tuning to the new shared Wheel and Colour settings. Re-check those once after updating.

Troubleshooting

View the YAML

Input reference

Every field, default and selector — generated from the YAML at build time.

Remote buttons remote · open by default
InputSelectorDefault
Preset 1 - Right / Brighter
button_1
Preset 1 scroll-right event entity.
entity "event.bilresa_unused_preset_1_button_1"
Preset 1 - Left / Dimmer
button_2
Preset 1 scroll-left event entity.
entity "event.bilresa_unused_preset_1_button_2"
Preset 1 - Centre Push
button_3
Preset 1 centre/push event entity.
entity "event.bilresa_unused_preset_1_button_3"
Preset 2 - Right / Brighter
button_4
Preset 2 scroll-right event entity.
entity "event.bilresa_unused_preset_2_button_4"
Preset 2 - Left / Dimmer
button_5
Preset 2 scroll-left event entity.
entity "event.bilresa_unused_preset_2_button_5"
Preset 2 - Centre Push
button_6
Preset 2 centre/push event entity.
entity "event.bilresa_unused_preset_2_button_6"
Preset 3 - Right / Brighter
button_7
Preset 3 scroll-right event entity.
entity "event.bilresa_unused_preset_3_button_7"
Preset 3 - Left / Dimmer
button_8
Preset 3 scroll-left event entity.
entity "event.bilresa_unused_preset_3_button_8"
Preset 3 - Centre Push
button_9
Preset 3 centre/push event entity.
entity "event.bilresa_unused_preset_3_button_9"
Lights and presets lights · open by default
InputSelectorDefault
Preset 1 Mode
preset_1_mode
select "custom"
Preset 1 Lights
preset_1_lights
Lights controlled by this preset. Ignored when disabled.
entity []
Preset 2 Mode
preset_2_mode
select "duplicate_preset_1"
Preset 2 Lights
preset_2_lights
Ignored when duplicating Preset 1 or when disabled.
entity []
Preset 3 Mode
preset_3_mode
select "duplicate_preset_1"
Preset 3 Lights
preset_3_lights
Ignored when duplicating another preset or when disabled.
entity []
Wheel and centre button wheel · collapsed by default
InputSelectorDefault
Brightness Per Wheel Detent
brightness_step
Percentage changed for each reported wheel detent.
number 10
Minimum Brightness
brightness_min
Scrolling left will never go below this percentage.
number 1
Maximum Brightness
brightness_max
Scrolling right will never go above this percentage.
number 100
Brightness Transition
brightness_transition
number 0.2
Centre Button Behaviour
centre_layout
select "tap_colour_hold_power"
Colours colours · collapsed by default
InputSelectorDefault
Preset 1 Colours to Cycle
preset_1_colour_presets
object [{"name":"Warm White","colour":[255,166,87]},{"name":"Soft White","colour":[255,
Preset 2 Colours to Cycle
preset_2_colour_presets
Ignored when duplicating Preset 1.
object []
Preset 3 Colours to Cycle
preset_3_colour_presets
Ignored when duplicating another preset.
object []
Colour Transition
colour_transition
number 0.5

Source

Full blueprint — also on GitHub.

blueprint:
  name: IKEA BILRESA Scroll Wheel - 3 Light Presets
  author: 0libote
  description: |
    Flexible light control for the IKEA BILRESA scroll wheel remote via Matter.

    Created by @0libote
    GitHub: https://github.com/0libote/HA-BPs

    Setup is top-down: pick the 9 remote event entities, pick the lights for
    each preset, then tune the shared wheel and colour feel once.

    Each of the three physical BILRESA presets can:
    - Control its own set of lights.
    - Be disabled.
    - Duplicate another preset's lights and colours.
    - Share one brightness step, range and transition.
    - Share one centre-button layout (Tap = Colour / Hold = Power, or reversed).
    - Use its own ordered colour list with Home Assistant's RGB colour picker.
    - Reorder colours by dragging them in the blueprint editor.

    Presets 2 and 3 duplicate Preset 1 by default, so a single room works after
    configuring Preset 1 only. Switch a preset to a custom profile when it
    should control different lights or cycle different colours.

    Wheel movement uses Matter's totalNumberOfPressesCounted value, so a quick
    multi-detent spin is applied as one larger brightness change. Brightness is
    clamped to the configured minimum and maximum. Scrolling right while the
    preset's lights are off turns them on at the minimum brightness. Tapping
    for colour while off turns them on with the first colour.

    Updating from an older version resets per-preset tuning to the new shared
    Wheel and Colour settings. Re-check those once after updating.

    Important Matter limitation:
    If the BILRESA itself aborts an over-limit multi-press sequence and sends no
    completed event, a blueprint cannot recover that missing movement.

  domain: automation
  source_url: https://github.com/0libote/HA-BPs/blob/main/blueprints/bilresa-scroll-wheel.yaml

  homeassistant:
    min_version: 2025.7.0

  input:

    # ============================================================
    # REMOTE
    # ============================================================
    remote:
      name: Remote buttons
      icon: mdi:remote
      collapsed: false
      description: |
        The 9 BILRESA event entities, three per physical preset. On the device
        page, identify right/brighter, left/dimmer and centre push for each
        preset and confirm they update when the control is used.
      input:

        button_1:
          name: Preset 1 - Right / Brighter
          description: Preset 1 scroll-right event entity.
          default: event.bilresa_unused_preset_1_button_1
          selector:
            entity:
              filter:
                - domain: event

        button_2:
          name: Preset 1 - Left / Dimmer
          description: Preset 1 scroll-left event entity.
          default: event.bilresa_unused_preset_1_button_2
          selector:
            entity:
              filter:
                - domain: event

        button_3:
          name: Preset 1 - Centre Push
          description: Preset 1 centre/push event entity.
          default: event.bilresa_unused_preset_1_button_3
          selector:
            entity:
              filter:
                - domain: event

        button_4:
          name: Preset 2 - Right / Brighter
          description: Preset 2 scroll-right event entity.
          default: event.bilresa_unused_preset_2_button_4
          selector:
            entity:
              filter:
                - domain: event

        button_5:
          name: Preset 2 - Left / Dimmer
          description: Preset 2 scroll-left event entity.
          default: event.bilresa_unused_preset_2_button_5
          selector:
            entity:
              filter:
                - domain: event

        button_6:
          name: Preset 2 - Centre Push
          description: Preset 2 centre/push event entity.
          default: event.bilresa_unused_preset_2_button_6
          selector:
            entity:
              filter:
                - domain: event

        button_7:
          name: Preset 3 - Right / Brighter
          description: Preset 3 scroll-right event entity.
          default: event.bilresa_unused_preset_3_button_7
          selector:
            entity:
              filter:
                - domain: event

        button_8:
          name: Preset 3 - Left / Dimmer
          description: Preset 3 scroll-left event entity.
          default: event.bilresa_unused_preset_3_button_8
          selector:
            entity:
              filter:
                - domain: event

        button_9:
          name: Preset 3 - Centre Push
          description: Preset 3 centre/push event entity.
          default: event.bilresa_unused_preset_3_button_9
          selector:
            entity:
              filter:
                - domain: event

    # ============================================================
    # LIGHTS
    # ============================================================
    lights:
      name: Lights and presets
      icon: mdi:lightbulb-group
      collapsed: false
      description: |
        Pick which lights each preset controls. Duplicating reuses that
        preset's lights and colour list. Disabled presets do nothing.
      input:

        preset_1_mode:
          name: Preset 1 Mode
          default: custom
          selector:
            select:
              mode: dropdown
              options:
                - label: Custom profile
                  value: custom
                - label: Disabled
                  value: disabled

        preset_1_lights:
          name: Preset 1 Lights
          description: Lights controlled by this preset. Ignored when disabled.
          default: []
          selector:
            entity:
              multiple: true
              filter:
                - domain: light

        preset_2_mode:
          name: Preset 2 Mode
          default: duplicate_preset_1
          selector:
            sel
… (truncated — see GitHub for full file)