# Ikea BILRESA rotary. Any better ideas of doing this?

**URL:** <https://community.homey.app/t/ikea-bilresa-rotary-any-better-ideas-of-doing-this/160268>\
**Category:** Devices\
**Created:** [October 2, 2026, 11:45am UTC](https://community.homey.app/t/ikea-bilresa-rotary-any-better-ideas-of-doing-this/160268 "2026-10-02T11:45:31Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Articate](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/articate/32/57311_2.png) [@Articate](https://community.homey.app/u/Articate)\
**Post date:** [October 2, 2026, 11:45am UTC](https://community.homey.app/t/ikea-bilresa-rotary-any-better-ideas-of-doing-this/160268/1 "2026-10-02T11:45:31Z")

</div>

![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/1/5/1508ad349dcd523c09570e8d7be9a81d0562d056.png)

So, this works, but.. man..

It seems the device or Homey buffers up to 18 clicks and then releases it, or releases it after a small delay with no input. So if you rotate it for a while, then stop, you’ll get 18 → 18 → 18 → … → n (where n is the remainder). My best idea is to capture all into a variable, and on variable change, change the relative dimming the value of the variable. (Gotta check if 18 → 18 counts as a change, too).

This is ugly. Anyone with better implementation or better ideas?

---

<div class="post-metadata">

**Author:** ![Peter\_Kawa](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peter_kawa/32/173848_2.png) [@Peter\_Kawa](https://community.homey.app/u/Peter_Kawa)\
**Post date:** [October 2, 2026, 12:33pm UTC](https://community.homey.app/t/ikea-bilresa-rotary-any-better-ideas-of-doing-this/160268/2 "2026-10-02T12:33:13Z")

</div>

Can you show all “When” cards for that device, please?  
There must be one making sense I’d expect.

> [@Articate](#):
>
> Gotta check if 18 → 18 counts as a change, too

Not with Homey logic cards…

Make sure to use Better Logic variables. These provide for a When “Variable is _set_” card, which triggers when the same value is written to it:

 ![Screenshot_20261002_142801_Ecosia](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/4/e/4e6bc6301cd124f221bf0ddbe26c4b174b1f6c88.jpeg)

Homey logic lacks such card:

 ![Screenshot_20261002_142859_Homey](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/1/8/18977d7e36daceb1eea7773eb3522690f94f56f5.jpeg)

---

<div class="post-metadata">

**Author:** ![Articate](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/articate/32/57311_2.png) [@Articate](https://community.homey.app/u/Articate)\
**Post date:** [October 3, 2026, 10:58am UTC](https://community.homey.app/t/ikea-bilresa-rotary-any-better-ideas-of-doing-this/160268/3 "2026-10-03T10:58:24Z")

</div>

Yeah, I already use Better Logic, so I’ll make that swap, that’s a good suggestion.

Here are all When cards (and I’ve double checked that there are no variables or And or Then cards):

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/8/c/8c58a016291a382e4e06281b20454bf0c6a8d49e.jpeg)

The “ was pressed” is triggered once per “buffer release” (so continuous rotation gives 1 “clicked” per 18 clicks, whereas the “ was pressed times” set to 1 time, only triggers if the actual released buffer was just 1.

---

<div class="post-metadata">

**Author:** ![Paul\_Nas](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/paul_nas/32/80581_2.png) [@Paul\_Nas](https://community.homey.app/u/Paul_Nas)\
**Post date:** [October 3, 2026, 11:11am UTC](https://community.homey.app/t/ikea-bilresa-rotary-any-better-ideas-of-doing-this/160268/4 "2026-10-03T11:11:04Z")

</div>

If you’re increasing or decreasing something based on the rotating of the scroll wheel, why not just check for “1 up rotary was pressed” and then increase something based on that? You can set a relative dim value for lights (add 10% dim level each time you rotate the scroll wheel up one click) for instance, or you can increase and decrease numerical variables:

Logic: `calculate <numerical variable> as {{<numerical variable> + 1}}`

---

<div class="post-metadata">

**Author:** ![Articate](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/articate/32/57311_2.png) [@Articate](https://community.homey.app/u/Articate)\
**Post date:** [October 3, 2026, 11:16am UTC](https://community.homey.app/t/ikea-bilresa-rotary-any-better-ideas-of-doing-this/160268/5 "2026-10-03T11:16:25Z")

</div>

Well, mostly because then I can rather use the new two button remotes from IKEA instead of this. I could then just “when button long pressed” and start dimming up. If the rotary doesn’t work to continuously dim, it’s essentially wasted to have one.

---

<div class="post-metadata">

**Author:** ![Paul\_Nas](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/paul_nas/32/80581_2.png) [@Paul\_Nas](https://community.homey.app/u/Paul_Nas)\
**Post date:** [October 3, 2026, 11:27am UTC](https://community.homey.app/t/ikea-bilresa-rotary-any-better-ideas-of-doing-this/160268/6 "2026-10-03T11:27:02Z")

</div>

I use it as a dim button for 2 dimmable lights (one Zigbee and one Matter) and to “dim” the volume om my TV (through IR). Works a treat. Continue to rotate it up → the light (or volume) will continue to dim up. The same for down, obviously. And I press the scroll wheel for on/off (or, in case of the TV: mute). For the TV I also added long press (pause/resume) and double press (on/off).

There’s only a slight lag of maybe 1/10 sec which is not too annoying.

---

<div class="post-metadata">

**Author:** ![Articate](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/articate/32/57311_2.png) [@Articate](https://community.homey.app/u/Articate)\
**Post date:** [October 3, 2026, 11:40am UTC](https://community.homey.app/t/ikea-bilresa-rotary-any-better-ideas-of-doing-this/160268/7 "2026-10-03T11:40:30Z")

</div>

It’s a good point. The 18 click buffer already means there’s delay, since something only happens once every 18 clicks if you rotate continiously (which takes some time). I’ll continue exploring. Didn’t work as seamless as I hoped Thread+Matter could provide

---

<div class="post-metadata">

**Author:** ![Paul\_Nas](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/paul_nas/32/80581_2.png) [@Paul\_Nas](https://community.homey.app/u/Paul_Nas)\
**Post date:** [October 3, 2026, 11:55am UTC](https://community.homey.app/t/ikea-bilresa-rotary-any-better-ideas-of-doing-this/160268/8 "2026-10-03T11:55:51Z")

</div>

I have a battery powered dimmer-remote from Robb (Zigbee) which directly reports the dim level, so you can just set the absolute dim level directly based on a change of the dim level of the remote. Which sounds easier, but it’s the exact same number of cards. Just a different method. The only advantage is that it responds quicker to a quick rotation: if you want the light at 100%, just give if a mighty shove and it’s at 100% immediately. I wouldn’t want that for the TV volume though…

Also, the way this was implemented, you can use this for things that need a value outside of 0-100 which I can’t do with that dimmer remote. Here’s my simple flow:

 ![Scherm­afbeelding 2026-10-03 om 13.53.06](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/f/3/f360d482fc591627a093569a53956976309691b1.png)

---

<div class="post-metadata">

**Author:** ![Peter\_Kawa](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peter_kawa/32/173848_2.png) [@Peter\_Kawa](https://community.homey.app/u/Peter_Kawa)\
**Post date:** [October 3, 2026, 1:20pm UTC](https://community.homey.app/t/ikea-bilresa-rotary-any-better-ideas-of-doing-this/160268/9 "2026-10-03T13:20:47Z")

</div>

Yeah, this card

 ![Screenshot_20261003_145157_Ecosia](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/6/9/6982fa4839b3cbec82b1078421c01baa30a18c85.jpeg)

should have a tag available like this card below has; In that case the “dialed” number (1~18) will be available in (Adv.) Flows as tag to use in connected card(s)

 ![Screenshot_20261003_145218_Ecosia](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/1/b/1b27ba2d1197f10f8db4d3763e21130ce3c86e37.jpeg)

Then, this would be possible:  
To dim a light, with the range from 0 - 1, you can use the balue of a numvar per logic calculation card with the expression

```auto
{{ round ( [tag with dialed number] * 0.05555 ,2 ) }}

```

as dim value in the light card itself  
(the “round (x,2)” mathjs expression rounds the result to 2 digits)  
min:  
1 \* 0.05555 = 0.05  
max:  
18 \* 0.05555 = 0.99

Ex:

 ![Screenshot_20261003_151936_Homey](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/8/9/89cd685bd80092d6be51779b221356ec5db734ad.jpeg)

Maybe you can discuss adding a tag to the dial card with the app developer

---

<div class="post-metadata">

**Author:** ![Articate](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/articate/32/57311_2.png) [@Articate](https://community.homey.app/u/Articate)\
**Post date:** [October 3, 2026, 1:49pm UTC](https://community.homey.app/t/ikea-bilresa-rotary-any-better-ideas-of-doing-this/160268/10 "2026-10-03T13:49:37Z")

</div>

Yeah, I’m very curious about the limitations that go into the up-to-18-clicks-per-event. But a naive approach like waiting for the scrolling to stop would prevent anything happening along the way. A poll rate where you send how many clicks have gone into the last period could tell you how fast someone’s rotating and give easy acceleration too. I can see if I can make a suggestion to the app dev
