Quick-Response Blueprint for Ikea Bilresa Scroll Wheel Remote
I created this blueprint to get the best possible performance out of the IKEA Bilresa Scroll Wheel Remote using Zigbee2MQTT.
I wasn’t happy with the response time using other methods, so I built this to make it feel responsive and smooth. Instead of triggering a new automation for every single step (which causes lag), this blueprint uses a repeat/while loop that stays alive while you scroll.
Note: While designed for the Bilresa, this may also work with similar scroll wheel remotes connected through Zigbee2MQTT.
Features:
Quick Response: Uses a continuous loop for smooth scrolling without the usual lag.
Smart Limits: Automatically detects the top and bottom limits so you never get stuck at 0% or 100%.
Interruptible: You can click the button anytime—even while scrolling—and it reacts immediately.
Universal Media Control: Uses Volume Up/Down commands for compatibility with TVs and Soundbars.
Multi-Mode: Supports Brightness, Color Temp, Color Wheel, Volume, and Climate.
How to Setup
Get Your Device Name:
Check what your device is named in Zigbee2MQTT (e.g., Office_Remote).
Configure the Blueprint:
MQTT Topic: This is pre-filled. Just replace FRIENDLY_NAME_HERE with your device name (e.g., zigbee2mqtt/Office_Remote).
Entity: Pick the Light, Media Player, or Climate entity you want to control.
Mode: Choose what you want to control (Brightness, Volume, etc.).
For Fine Tuning: If you want to adjust how “fast” or responsive the physical wheel feels, go to Zigbee2MQTT → Your Device → Settings (Specific). You can adjust the Action Interval and Delta values there to fine-tune the scroll behavior to your liking.
I am not sure whether it’s firmware related, the firmware of the remote I’m testing is 1.8.5, which firmware does your remote have?
The blueprint accesses the scroll value via payload_json.brightness. The payload my remote sends doesn’t have this field. However, just changing payload_json.brightness to payload_json.action_level addresses this issue.
Another problem I am facing is that the payload for single-pressing the button which doubles as the scroll wheel behaves strangely. It changes between "action": "on" and "action": "off" for each single-press of the scroll wheel button. I expected it to repeatedly send the “on” action, which is not the case.
With this blueprint I set the “Single on” option to toggle a light. Since the payload toggles between the “on” and “off” state when pressing the same button twice this has the effect that the light only toggles on every other click. Does your remote behave the same?
And lastly, this is just a suggestion, my use case would be to dim multiple lights at once, which doesn’t seem possible with just a single instance of this automation.
Regarding multiple lights i have not tested have you tried adding a lighting group instead of just one light entity, or edit the blueprint to add ‘multiple’ to the entity selector will allow this
Is this the remote you have or do you have tne 2 button version without scrollwheel??
When you edit the automation you should have the option to setup an action for ‘Single On’; ‘Single Off’; ‘Double On’; ‘Double Off’. Just repeat your action setup for single off as well as single on.
Its been a while but i beleive i pressed the pair button 12 times to enter Zigbee pairing mode. The device was new when i did this so i did not have to factory reset or anything so you may have to do this first by holding the pair button for 10s. It should indicate with the led flashing or changing colour.
I didn't have these earlier so I have added them now and it works better. But now after testing this I have another issue. I cannot get the full brightness range to work. If I set the light at a low setting, say below 130, I can then go maybe between 60 and 180 brightness. I can't utilize the full 0-255 range.
Hi i am not fully sure how to explain that behaviour, whats your simulated brightness interval set at? The automation does not really care what the value is between 0 and 255 as it just needs to know if your increasing or decreasing the value(wheel direction) if yoiu get to 255 simulated brightness from the payload and you continue to scroll clockwise the output to the device(LIGHT ETC) is to increase by the step value input. So if you reach 255 for example and the light is not at full brightness it should not matter we check the last value and if its the same or greater then we continue in that same direction and in turn increasing the brightness. The opposite is the case for 0 value continue to decrease the output.
If you can do a quick test? Keep scrolling the wheel clockwise and ensure you see 255 in the payload, now manually go to your light and drop it down to near 0 %. now continue scrolling clockwise what does the light do at this point?