Bilresa Scrollwheel Zigbee Z2M

:building_construction: Blueprint: IKEA Bilresa - Wheel Control

This blueprint provides an extremely responsive and “analog” control experience for the IKEA Bilresa rotary dimmer via Zigbee2MQTT. It was specifically engineered to overcome the lag found in standard blueprints and to prevent critical errors.

:sparkles: Features

• Analog Feeling: Every single impulse from the wheel is processed instantly, allowing for a buttery-smooth dimming experience.

• End-Stop Fix: Resolves the known issue where the wheel stops sending signals once it reaches the absolute maximum (100%) or minimum (1%).

• Stability: Includes a micro-delay (30ms) and an optimized logic structure to prevent multicast group commands.

• Flexible Actions: Complete freedom to define custom actions for the button (On/Off) behind the wheel and rotation. The last button below the wheel is not supported.

:gear: Recommended Configuration

To achieve the best results, configure your Rotation Actions (Right/Left) as follows:

  1. Select the service Light: Turn on (light.turn_on).

  2. Enable Brightness step (e.g., 10% or 15%).

  3. Crucial: Set the Transition time manually to 0.7s (using the YAML view)

  4. Enter the name of your remote in „MQTT Name“

English:

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

1 Like

Thanks for you work. Try this this evening.

1 Like

Ok try but nothing happen. Button and Scrollwheel don’t do anything. It’s ok in z2m.

Maybe I don’t understand what I have to put in Rad MQTT Name ? I try zigbee2mqq/mymqqtfolderdevicemane or juste mymqqtfolderdevicemane

The entity name of your remote in Z2M.
The name of my Remote is Bilresa Wheel so I have to enter Bilresa Wheel. I added the Blueprint now in english maybe it is more clear.

Ok maybe I miss something :

My device :

My automation :

But nothing happen.

My mqtt topic is zigbee2mqtt/BILRESA

What is in the Z2M log when you press the button or turn the wheel? Are there any signals from the remote?

I could use the remote first time after a restart of HA.
Before I got no signals from the remote.

Yes its ok in Z2m and in my test automation

Think an issue with :

  • platform: mqtt
    topic: “zigbee2mqtt/{{ (controller_name if controller_name else ‘Bilresa Wheel’) }}”

Okay I See the problem, try this updated version please :wink:

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

It’s now ok for on and off but there is an issue with scrollwheel :
Erreur : UndefinedError: ‘homeassistant.helpers.template.Wrapper object’ has no attribute ‘action_brightness_delta’

Got this yaml :

action: light.turn_on
metadata: {}
target:
  entity_id: light.hue_color_lamp_1_3
data:
  transition: 0.7
  brightness_step_pct: 14

It sounds that your bilresa dos not send a action_brightness_delta value.
Could you send a Screenshot of your Z2M log when you turn the wheel?

See that in state :

That in log when I go one side and other side :

[24/01/2026 13:17:33] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika', payload '{"action":"brightness_move_to_level","action_group":21658,"action_level":87,"action_transition_time":0.1,"battery":68,"identify":null,"last_seen":"2026-01-24T12:17:34.924Z","linkquality":108}'
[24/01/2026 13:17:33] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika/action', payload 'brightness_move_to_level'
[24/01/2026 13:17:33] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika', payload '{"action":"brightness_move_to_level","action_group":21658,"action_level":101,"action_transition_time":0.1,"battery":68,"identify":null,"last_seen":"2026-01-24T12:17:35.231Z","linkquality":108}'
[24/01/2026 13:17:33] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika/action', payload 'brightness_move_to_level'
[24/01/2026 13:17:34] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika', payload '{"action":"brightness_move_to_level","action_group":21658,"action_level":171,"action_transition_time":0.1,"battery":68,"identify":null,"last_seen":"2026-01-24T12:17:35.959Z","linkquality":108}'
[24/01/2026 13:17:34] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika/action', payload 'brightness_move_to_level'
[24/01/2026 13:17:34] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika', payload '{"action":"brightness_move_to_level","action_group":21658,"action_level":null,"action_transition_time":0.1,"battery":68,"identify":null,"last_seen":"2026-01-24T12:17:36.001Z","linkquality":172}'
[24/01/2026 13:17:34] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika/action', payload 'brightness_move_to_level'
[24/01/2026 13:17:35] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika', payload '{"action":"brightness_move_to_level","action_group":21658,"action_level":null,"action_transition_time":0.1,"battery":68,"identify":null,"last_seen":"2026-01-24T12:17:37.012Z","linkquality":132}'
[24/01/2026 13:17:35] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika/action', payload 'brightness_move_to_level'
[24/01/2026 13:17:46] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika', payload '{"action":"brightness_move_to_level","action_group":21658,"action_level":null,"action_transition_time":0.1,"battery":68,"identify":null,"last_seen":"2026-01-24T12:17:48.096Z","linkquality":108}'
[24/01/2026 13:17:46] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika/action', payload 'brightness_move_to_level'
[24/01/2026 13:17:47] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika', payload '{"action":"brightness_move_to_level","action_group":21658,"action_level":null,"action_transition_time":0.1,"battery":68,"identify":null,"last_seen":"2026-01-24T12:17:49.130Z","linkquality":108}'
[24/01/2026 13:17:47] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika/action', payload 'brightness_move_to_level'
[24/01/2026 13:17:48] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika', payload '{"action":"brightness_move_to_level","action_group":21658,"action_level":null,"action_transition_time":0.1,"battery":68,"identify":null,"last_seen":"2026-01-24T12:17:50.189Z","linkquality":112}'
[24/01/2026 13:17:48] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika/action', payload 'brightness_move_to_level'
[24/01/2026 13:17:50] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika', payload '{"action":"brightness_move_to_level","action_group":21658,"action_level":199,"action_transition_time":0.1,"battery":68,"identify":null,"last_seen":"2026-01-24T12:17:51.630Z","linkquality":108}'
[24/01/2026 13:17:50] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika/action', payload 'brightness_move_to_level'
[24/01/2026 13:17:50] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika', payload '{"action":"brightness_move_to_level","action_group":21658,"action_level":157,"action_transition_time":0.1,"battery":68,"identify":null,"last_seen":"2026-01-24T12:17:51.762Z","linkquality":104}'
[24/01/2026 13:17:50] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika/action', payload 'brightness_move_to_level'
[24/01/2026 13:17:50] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika', payload '{"action":"brightness_move_to_level","action_group":21658,"action_level":101,"action_transition_time":0.1,"battery":68,"identify":null,"last_seen":"2026-01-24T12:17:52.095Z","linkquality":108}'
[24/01/2026 13:17:50] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika/action', payload 'brightness_move_to_level'
[24/01/2026 13:17:53] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika', payload '{"action":"brightness_move_to_level","action_group":21658,"action_level":1,"action_transition_time":0.1,"battery":68,"identify":null,"last_seen":"2026-01-24T12:17:52.748Z","linkquality":108}'
[24/01/2026 13:17:53] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/BILRESA Mika/action', payload 'brightness_move_to_level'

In Z2M documentation, the device has only those action :slight_smile:

Yeah, you are right… but why I got this log? :sweat_smile:

I got these states:

I will try to change the code, so the Automation will only react to Action_level

Just and another one and same thing :

Same firmware : 1.8.5

I set the simulated brightness to this value:

If it is activated it should add the State action_brightness_delta.

I fogot, that I have activated it :sweat_smile:

1 Like

OK everything is alright. Thanks !

1 Like

This works perfect.
I put a little nok on it so the wheel turns easily arround whitout any pressure.

1 Like