[Edge] IKEA RODRET, SOMRIG and SYMFONISK Gen 2 Button Edge Driver

I’ve been creating drivers for the modern IKEA buttons that were not supported yet, namely RODRET, SOMRIG and SYMFONISK gen 2 remote. Also the new STYRBAR version in another thread. Extended the support to TRADFRI on/off and 5-button so you can use the custom features and hopefully make it work in new firmware versions.

Features:

  • RODRET supports 4 actions by default: pushed / held for both buttons. Custom tweaks add Toggled Up on release and configurable 6x Multi-Tap emulation for 10 more actions.

  • SOMRIG supports 6 actions by default: pushed / held / double-tap for both buttons. Custom settings add Toggled Up on release. Fast-tap mode minimizes single-tap delay. Multi-Tap emulation adds up to 6x tap for 8 additional actions (it isn’t the best button for multi-taps though).

  • SYMFONISK gen 2 features are in this comment, watch out for the repeating Held, the driver can suppress it via settings. Also adds multi-tap for most buttons.

  • Modern STYRBAR features are in this thread, it is published as standalone driver so people with old versions can use other drivers without the driver fighting for the fingerprint match.

  • TRADFRI on/off & 5-button features are in this comment. Should work with modern 24.x firmwares too.

The driver should autoupdate. If you were using the very first version, the RODRET is probably not reporting battery every 6 hours and you’ll have to pair it again.

The channel:

Setup tricks:

  • The buttons can be tough to pair. If it’s not recognized as “RODRET Button” or “SOMRIG Button” or “SYMFONISK Button” delete the device and try again. If buttons don’t work, delete it and try again. Might take few retries.

  • Delete the device if it was added as a Zigbee Thing or buttons didn’t work. Press the button on the back four times to start the pairing process, place it near the hub for best results. Wait four or five seconds and then scan devices.

  • After installing the driver, the hub might ignore the custom driver and insist on using Zigbee Thing. In that case wait a few minutes, maybe even hours, and try again.

Custom features:

The driver includes many custom features or tweaks to add functionality as a result of feedback received in this thread as well as personal use cases. When technically possible, buttons support Toggled Up on release, multi-tap emulation for double-tap up to 6x-tap and auto-fire on hold.

Some custom features are exclusive to the behaviour of each device, for instance Fast Tap in SOMRIG to trigger on first press and avoid delays, the AnyArrow component in STYRBAR to make arrows a bit more useful, or the Held repetition suppression and rate limiter in SYMFONISK.

Toggled up on release makes the button useful to control smart blinds or act as dimmer with lights supporting continuous brightness change start and stop.

Multi-Tap emulation supports double, triple and up to sextuple tap:

Auto-fire on hold emulation, described here, makes the driver repeat the Held event while the button is held. Useful for volume control, increasing virtual counters to switch scenes or change brightness levels if the driver supports incremental steps.

Fast tap for SOMRIG
Somrig has a native 1 second delay in the single tap because it waits for a potential double tap. However, it actually sends a event for the initial press, so the driver can trigger the single-tap on first press instead of waiting for the confirmation of the type, effectively disabling hold and double-tap but making it lightning fast. I find it useful when you want one button to toggle lights and want immediate response.

There are more custom features or enhancements discussed in the thread.

Notes:
Like all the new battery powered Ikea devices, it’s recommended to use the LADDA AAA 1.2V rechargeable batteries.

Credits and implementation details (old text):

I wrote this section before adding custom tweaks, STYRBAR or SYMFONISK support. Currently, the driver, as you can see in the source code, has more than minimal changes to the stock ones: all the handlers are new as well as the multi-tap, auto-fire and other custom tweaks to handle specific behaviours. It’s been quite the journey!

The driver is based on the stock zigbee-button that supports Tradfri with as minimal changes as possible to support the buttons and all the unrelated stuff removed so it’s not bloated (it only matches those two buttons).

The Rodret is actually a Tradfri on/off switch with other fingerprint and a new line to bind the Level cluster in the do_configure (no need to use the Identify cluster or refresh for binding). @Chewbarker already had a working source which encouraged me to create the driver and publish it so others could install it.

The Somrig wasn’t on the plans but felt it was a good opportunity to give back a little to the community since there was no driver for it. This hubitat driver by Dan Danache was a magnificent source to learn the details (two bindings to 0xFC80 cluster, one in endpoint 1, the other in 2, handle commands 0x01 for initial press, 0x03 for single tap, 0x02 for held and 0x06 for double tap, with the source endpoint being the button number like in the shinasystems button edge subdriver).

The battery reporting fix is thanks to @Mariano_Colmenarejo Vallhorn motion sensor driver (which I use for my sensor by the way so ¡muchas gracias, eres muy grande!). Both for the correct binding line to the PowerConfiguration cluster and the fact that buttons also send a percentage value double than the real.

So, thanks to the community for all the great work and hope these drivers are useful for you. Fingers crossed it won’t break because I’m a complete noob when it comes to SmartThings Edge drivers (as you can see here, no shame LOL).

Changelog:
20240331: Added Held rate limiter to SYMFONISK and a ghost tap detector to SOMRIG
20240322: Added support for TRADFRI on/off and TRADFRI 5-button
20240317: Added SYMFONISK Gen 2 remote support
20240311: Added Toggled-Up and Multi-Tap tweaks to SOMRIG
20240310: Added Multi-Tap tweak to RODRET
20240307: Added Toggled Up tweak to RODRET
20240305: Added custom labels for the buttons and fixed typos
20240302: Added Fast Tap tweak for SOMRIG
20240229: Added SOMRIG support and fixed battery reporting in RODRET
20240227: First version with RODRET support

10 Likes

Looks interesting!

Try as I might though, I cannot find justification for yet more battery-operated remote controls around the house. It’s so much easier to say “alexa, turn the torchiere purple fifty percent” or “alexa, turn the kitchen blue” than to have to go find the lost remote control.

You can have both of course if you’d like, or if you’re organized about your remotes it’s probably a great thing.

2 Likes

I’ve been using voice assistants less and less, now I prefer pure automations with sensors if possible or just buttons in specific places (for instance, one reachable from the bed is great to toggle sleep mode or wake up at night).

These ones are nice because they’re 7€, can get them in a store near here and use rechargeable AAA batteries (like the Vallhorn motion sensor, not the best but it’s 10€), although I don’t like the loud clicks (and don’t know if the driver will work fine in the long term, just bought it yesterday).

They’re also the failsafe if the SmartThings cloud suffers an outage, or my own connection, since you can’t control devices otherwise (automations can be local, but control from phones or assistants is cloud based).

Edit: Actually, Alexa can work offline for Matter devices (and Zigbee, but there’s no multi-admin there)

1 Like

Some people are unable to vocalize, or have days when their voices are slurred. (A common issue for ALS patients, for example.)

At our house, while voice is preferred for most tasks, we also have some button devices, both for Visiting health aides who may not have time or inclination to learn voice commands, and so my service dog can do some tasks.

not my dog, but mine knows the same task.

If more than one person share a bedroom, buttons can be useful to keep from waking the other one up. (Or to keep from waking up the dog. :wink: ) this also applies to controls in a nursery. :hatching_chick:

Many people prefer not to use voice controls for arming/disarming security systems, or unlocking exterior doors.

Choice is good. :sunglasses:

2 Likes

Thank you! Managed to add my rodret finally. Any chance to get the same driver to work with SOMRIG also? :wink:

1 Like

Thanks! I’m glad you found it useful :grin:

While the RODRET is basically a TRADFRI on/off switch, the SOMRIG is a different beast despite the similar appearence. I looked at this hubitat driver by the same guy, for starters it uses a different cluster (0xFC80), has different commands (0x03 pushed, 0x02 held and 0x06 double tap) plus you have to check the endopoints to see which button was pressed. Might have more differences.

Looks like it’s going to be much time-consuming and I’ve already procrastinated enough for now :sweat_smile: Never say never though!

1 Like

Thanks for that New User of the Month badge, really made my day! :star_struck:

Couple days ago I added IKEA SOMRIG support but, to be honest, I hated that button :sweat_smile: It takes forever to trigger the single tap because it waits a whole second should you press it twice to trigger the double tap instead.

Turns out now is my favourite button! I’m getting more comfortable with the Edge API and added some tweaks to the settings because the delay was driving me mad when turning on a light.

Now you can prioritize response time for any of the buttons so it triggers as soon as it gets the initial event (you know it’s been pressed but not the type of press). That means long press or double tap actions won’t work because they are ignored but it is lightning fast :grin:

In my use case I have the first button with fast tap enabled to toggle lights (single tap action) and then the second button to run three actions (single/double/hold) where latency is not that important. That’s still 4 actions like the RODRET but more flexibility.

4 Likes

March 5th: I’ve published a minor update to fix a typo and add meaningful labels to the profile:

  • For the RODRET it displays [ I ] and [ O ] so you know which button is Button1 and Button2.

  • For SOMRIG, it displays [ · ] and [ · · ] to match the symbols on the device.

They’ve been working great so far by the way, I like these buttons! Specially the SOMRIG since I added the fast tap tweak. It’s less “clicky” than the RODRET and I like the included translucent cover to print your labels and place them underneath if you want.

4 Likes

Thanks! I have a dumb question though. What are the four events for the RODRET? I want to use it to control smart blinds. I can detect both pressed and released for both buttons, so I can start the blinds moving when pressed, then stop the blinds moviywgen released?

How does dimming work with RODRET?

1 Like

@mocelet Thanks for drivers. Both RODRET and SOMRIG paired on first try. I can see pressed, held and douple pressed on SOMRIG and it works perfect without any changes in settings. On RODRET I can see pressed and held, and it works only as button. I don’t see dimmer part. Can that be added as option to change both but6to to have pressed, and instead of held to be used as dimmer, respectfully increase for held “I” and decrease for held "O”? RODRET supposed to be dimmer, and that could be used in automation to mirror dimming to bulbs. Or third opinion could be what other user asked in the post above, to use it as to Open and Close blinds, same as old Ikea blinds controller.

1 Like

@martincmartin @milandjurovic71

Thanks for the comments! They work as buttons indeed, just like the old TRADFRI remote or the TRADFRI on/off switch work with official SmartThings drivers. In fact the driver is based on those.

The RODRET supports, for each button, single tap and long press (4 actions) while the SOMRIG adds double tap (hence the 6 actions).

I’m quite new at SmartThings so can’t give you a technical reason of why they didn’t support the dimming features in the drivers for TRADFRI, maybe it’s too complex or there’s something in the API that prevents it. Hopefully someone with more experience around here can enlighten us.

@mocelet this stock SmartThings driver is actually rendering Ikea dimmer as remote dimmer. I have that one and Sengled remote dimmer, and they have dimming capabilities. I like your driver and it works great. I am just suggesting if is possible to add intended functionality.

Here is the link to stock driver that might help with this device. You can look at fingerprints.

1 Like

Thanks, I’ve seen that code, feels completely different to all the other ones more similar to the RODRET. They are dimmers too yet dimming is not implemented.

I’m afraid I can’t add dimming support for the device, it’s not a simple modification but pretty much creating a whole new driver.

Is there any driver with dimming support for the old TRADFRI on/off switch? It would be better to ask them to add the fingerprint of the RODRET and the binding to Level cluster.

Edit: @milandjurovic71 I’ve been doing some tests, I can see the problem now and why Samsung didn’t implement the dimming feature in IKEA buttons. It’s not easy, maybe it’s not even doable.

The round ikea dimmer updates the state as you turn it, I believe it even sends the brightness level. Sengled also sends periodic updates to step brightness up or down while you have the button pressed.

However, the TRADFRI on/off switch or the RODRET only generate one event at the beginning of the “hold” and another one when you release the button. Using the stock dimmer driver, it will just increment/decrement one step of 10%, and that’s all because there are no events while being pressed.

3 Likes

Thank you for looking into this :grinning:

2 Likes

Is it possible to expose the “pressed” and “released” events? For the blinds, that’s enough, as we can send “open” when pressed, then “pause” when released. The blinds will continue to open on their own, they don’t need any messages to continue gradually opening.

You’re going to like this, it’s already live but may take 12 hours to auto-update :grin:

The RODRET doesn’t tell which button was released so I thought main was a good fit for it. Now you can add the pause action on the Toggled up and the open or close in the Held of each button.

I’ve been testing it changing colors of a light and it looks reliable and fast.

Hopefully I didn’t break anything adding the update, in that case let me know :sweat_smile:

I can tell you that both remotes are fast, instant.
Even my wife started using them.

2 Likes

Awesome! Thank you!

2 Likes

No problem! Let me know if it works fine with those blinds!

I’ve updated the first post with all the features and rewritten some parts, also explicitly describing the actions supported so thanks for the feedback!

1 Like

@mocelet Big, big thanks for creating a driver for RODRET. I’ve been waiting for this for quite some time.
Unfortunately I was disappointed to see that it wasn’t working for me when I tried to setup my RODRET.

I’M getting this error below. Any idea what could be causing this?

2 Likes