(EDIT please use the built in generic handler with the new app. This was designed for the classic app and is no longer necessary.)

It’s been a while since I’ve been on here. Just bought some of these blinds in the UK and found that the zigbee window shades handler not working quite right. So I’ve created a custom handler and icons for my own use but thought I’d share here if anyone else would find it useful.

Edit: I had some status updating issues with one set of these blinds which I paired to the network far from the hub. I recommend pairing very close to the hub (few cm away) to avoid these issues.

Edit: Battery Level added. Will appear after first refresh.


Any particular requirements to get them paired to the hub?

Nope, just hold down the two buttons on the smartblind itself for 5seconds+ to perform a factory reset. Once the lights extinguish they will pulsate and you can pair with the hub as per usual. I’ve tried to add a fingerprint to the handler so in theory it will autodetect the device correctly if you preinstall my handler. I’ve not been able to test this as I have everything set up already.

1 Like

Can the blinds become part of automations, e.g, open them in the „good morning“ routine?

Yes, but i’ve found the smartthings routines unreliable for some time now. I don’t use them much anymore and rely on webcore for most location mode activities.


Thanks! One more question, if you don’t mind: Is everything I need to talk to the Smartthings hub included in the Fyrtur package or do I also need the 30€ Trådfri gateway?

No need to have the tradfri gatway

Hi - Thanks for putting this together, I have imported the device handler and added my blind (fingerprint works, the blind auto discovered correctly), its works well with the maximum length limit that is set via the button (double tap blind buttons to limit length) and this is reported back to the app.

The only issue I have is that since re-pairing the remote it’s stopped working (blind reporting back to SmartThings). Anyone else got both smarthings and remote working with the blind?

ps. routines work, there is an option to open blinds and this blind shows up.

Came here to post my own modified DH from the same source & found you beat me to it :slight_smile:

Like your icon set vs the others. I couldn’t decided which was was more “natural” having it at 100% for open or closed but decided that fitting in with other smart blinds probably made sense.

Going to have a look at the button handler next, I think from reading some threads over at Deconz that if you can configure the cluster value on the button it should send commands to the blinds directly (I think!)

Anyway for what its worth & to compare notes here was my handler…


Oh also on the signal issues, I still installed & paired the Tradfri repeater in the same room as the blinds & that seems to help for signal & responsiveness…


Thanks! I spent a fair amount of time designing the icons as smartthings had nothing I’d want to use. Keep us posted re the button investigation. I saw something similar, we probably read the same article.

1 Like

Great work @a4refillpad !

I’m really pleased you done this as I’ve just installed 10 of these with 2 more to go.

The button support will be amazing too, as this will be a deal breaker with my wife.

Also… Will this still work with Google Assistant integration? I paired one one my blinds with ST a few days ago using the generic DH as a test but then I could no longer make the the blind available to Google via the Google smart app.

Reading up a bit more on this it seems that a widow shade is not considered the same as a blind by Google.


1 Like

I suspect the remote works as a direct ZigBee connection and the blind cannot belong to two different networks at the same time. @JDRoberts is more knowledgeable on matters such as these from what recall from years past.

It’s true that a zigbee network using the profiles that SmartThings supports can only have one primary coordinator. But once we get to the 3.0 (or ZLL), it is possible to add a remote that becomes a parallel means of control. Typically you have to do it by first adding everything to smartthings, even if the remote only shows up as a “thing,“ which is what gets them all on the same network. And then linking the blinds and the remote. But I don’t know for sure on this one.

From reading about what people have discovered about the button it doesnt seem to work like the 5 button where as you say it can send commands direct to its “target”. This remote once added to the network won’t seak or match to a blind. It looks like it uses the zigbee “grouping” settings where you tell it the target ID of the other devices it should control and then when you press a button it sends the commands to thos Ids a bit like the zwave associations behavior.


I’m not feeling very well today, but I’ll try to look into the device specs later this week.

1 Like

Just for interest, I hadn’t realised that ST/Ikea had figured out a proper device handler for the Tradfri puck controller (the one with 5 buttons…). Previously I had these paired direct to a bulb so only up/down & centre was working.

I’ve just tested and now with the one puck mounted in a room & a bit of webcore magic I can have left & right also control the blind up/down. It’s not as fast as before as processing needs to happen via the cloud but is a neat temporary solution while the blind button control is pending.

These blinds don’t work with routines for some reason… it’s the only reason I have them paired with SmartThings.

They are checking in every 10 mins and manual control via the ‘thing’ section works fine but routines fire off and nothing happens at all.

Any ideas?

Issue seems to be that a routine passes the value to the DH as a string which then failes.

Solution is to simply cast the variable specifically into an integer & then it works.

I’ve updated my handler above & tested it workes as expected, but in a4’s DH if you go to line 162 & change it from:

def setLevel(data, rate = null) {
log.info “setLevel()”


def setLevel(data, rate = null) {
data = data.toInteger()
log.info “setLevel()”

This should help, only thing now might be that you’ll find the values are inverted so you need to set it closed to be open!

1 Like

Good spot, but surely the routines simply call the open or close functions rather than pass an integer? Why would it do that?