New Ikea tradfri Shortcut Button?

As everyone knows, IKEA TRADFRI Shortcut Button works as a LOCAL button when using built-in “zigbee-button” DTH,
and it’s extremely fast.

It first pairs as a “Thing”, because the fingerprint is not yet registered in ST server, but you can change the device type into ‘Zigbee Button’ in ST IDE.

However, when we use this device with the default zigbee-button DTH, we can only use ‘pushed’ event. This device is capable of sending ‘held’ event, but it’s not supported with default device handler.

The reason why ‘held’ event is not recognized in ST with default device hander is…

When this IKEA button is released, a packet with clusterInt == 0x0008, command == “07” is sent from the device.
But in the zigbee-button built-in DTH, only clusterInt == 0x0008, command == “03” is recognized as button release command.
(see line 179 of the source code)
SmartThingsPublic/zigbee-button.groovy at master · SmartThingsCommunity/SmartThingsPublic (github.com)

So I have modified original zigbee-button DTH to support the IKEA Shortcut Button.

I also added that button number is 1 in the initialize() function, and added fingerprint of the button.

If you should use ‘held’ event with this device, you could use my DTH,
BUT, if you use my DTH, it works as CLOUD device.

I hope this change is applyed in the built-in zigbee-button DTH, so that we could use this button LOCAL with ‘held’ event supported.

Addendum)
And I don’t know why… but sometimes the button does not work right after the paring.
It usually starts working after changing the group(room) of the device.

I think that invokes updated() method of the dth, and that might be the reason. (I’m not sure though.)

9 Likes