[RELEASE] IKEA window roller blinds

Hi all

I have been using this great driver for years know and had great stability.
But since i did a firmware update on my Fyrtur, it has been acting weird.
Sometime it works and sometimes it just won't move?

So i grabbed a fresh copy of @a4refillpad's driver (Thx again) and only made the "divide by 2" change in the code (Thx @craigspree), and then repaired my blind.
The log gives me this during pairing:

dev:1272025-03-30 14:22:46.133debugdescription:- catchall: 0000 0006 00 00 0040 00 9252 00 00 0000 00 00 02FDFF040101190000
dev:1272025-03-30 14:19:34.892debugupdateFinalState: 100
dev:1272025-03-30 14:19:33.875debugattr: 33, value: B6, descValue: 91
dev:1272025-03-30 14:19:33.872debugdescription:- read attr - raw: 92520100010A210020B6, dni: 9252, endpoint: 01, cluster: 0001, size: 0A, attrId: 0021, encoding: 20, command: 01, value: B6
dev:1272025-03-30 14:19:31.878debugundefined lastLevel
dev:1272025-03-30 14:19:31.875debuglevelEventHandle - currentLevel: 100 lastLevel: 100
dev:1272025-03-30 14:19:31.871debugattr: 8, value: 00, descValue: 0, FYRTUR block-out roller blind
dev:1272025-03-30 14:19:31.865debugdescription:- read attr - raw: 92520101020A08002000, dni: 9252, endpoint: 01, cluster: 0102, size: 0A, attrId: 0008, encoding: 20, command: 01, value: 00
dev:1272025-03-30 14:19:30.852inforefresh()
dev:1272025-03-30 14:19:27.835debugattr: 33, value: B6, descValue: 91
dev:1272025-03-30 14:19:27.832debugdescription:- read attr - raw: 92520100010A210020B6, dni: 9252, endpoint: 01, cluster: 0001, size: 0A, attrId: 0021, encoding: 20, command: 01, value: B6
dev:1272025-03-30 14:19:25.835debugnewlevel: null currentlevel: 100 lastlevel: -155
dev:1272025-03-30 14:19:25.825debuglevelEventHandle - currentLevel: 100 lastLevel: -155
dev:1272025-03-30 14:19:25.821debugattr: 8, value: 00, descValue: 0, FYRTUR block-out roller blind
dev:1272025-03-30 14:19:25.818debugdescription:- read attr - raw: 92520101020A08002000, dni: 9252, endpoint: 01, cluster: 0102, size: 0A, attrId: 0008, encoding: 20, command: 01, value: 00
dev:1272025-03-30 14:19:24.812inforefresh()
dev:1272025-03-30 14:19:20.791debugdescription:- catchall: 0104 0001 01 01 0040 00 9252 00 00 0000 07 01 00
dev:1272025-03-30 14:19:19.796debugnewlevel: null currentlevel: -155 lastlevel: 100
dev:1272025-03-30 14:19:19.792debuglevelEventHandle - currentLevel: -155 lastLevel: 100
dev:1272025-03-30 14:19:19.787debugattr: 8, value: FF, descValue: 255, FYRTUR block-out roller blind
dev:1272025-03-30 14:19:19.783debugdescription:- read attr - raw: 92520101020A080020FF, dni: 9252, endpoint: 01, cluster: 0102, size: 0A, attrId: 0008, encoding: 20, command: 01, value: FF
dev:1272025-03-30 14:19:18.772debugdescription:- catchall: 0000 8021 00 00 0040 00 9252 00 00 0000 00 00 1300
dev:1272025-03-30 14:19:16.760debugdescription:- catchall: 0104 0102 01 01 0040 00 9252 00 00 0000 07 01 00
dev:1272025-03-30 14:19:14.759debugdescription:- catchall: 0000 8021 00 00 0040 00 9252 00 00 0000 00 00 1100
dev:1272025-03-30 14:19:12.733debugattr: 33, value: 64, descValue: 50
dev:1272025-03-30 14:19:12.729debugdescription:- read attr - raw: 92520100010A21002064, dni: 9252, endpoint: 01, cluster: 0001, size: 0A, attrId: 0021, encoding: 20, command: 01, value: 64
dev:1272025-03-30 14:19:10.709debugdescription:- catchall: 0000 0013 00 00 0040 00 9252 00 00 0000 00 00 8152920B1B32FEFFE20A6880
dev:1272025-03-30 14:19:10.281inforefresh()
dev:1272025-03-30 14:19:10.279debugConfiguring Reporting and Bindings.
dev:1272025-03-30 14:19:10.277infoconfigure()
dev:1272025-03-30 14:14:07.605debugdescription:- catchall: 0000 0006 00 00 0040 00 8025 00 00 0000 00 00 02FDFF040101190000
dev:1272025-03-30 14:13:44.456debugupdateFinalState: 100
dev:1272025-03-30 14:13:43.449debugattr: 33, value: B6, descValue: 91
dev:1272025-03-30 14:13:43.446debugdescription:- read attr - raw: 80250100010A210020B6, dni: 8025, endpoint: 01, cluster: 0001, size: 0A, attrId: 0021, encoding: 20, command: 01, value: B6
dev:1272025-03-30 14:13:41.448debugundefined lastLevel
dev:1272025-03-30 14:13:41.444debuglevelEventHandle - currentLevel: 100 lastLevel: 100
dev:1272025-03-30 14:13:41.441debugattr: 8, value: 00, descValue: 0, FYRTUR block-out roller blind
dev:1272025-03-30 14:13:41.435debugdescription:- read attr - raw: 80250101020A08002000, dni: 8025, endpoint: 01, cluster: 0102, size: 0A, attrId: 0008, encoding: 20, command: 01, value: 00
dev:1272025-03-30 14:13:41.223inforefresh()

And Configure gives me:

dev:1272025-03-30 14:24:20.810debugdescription:- catchall: 0104 0001 01 01 0040 00 9252 00 00 0000 07 01 00
dev:1272025-03-30 14:24:18.792debugdescription:- catchall: 0000 8021 00 00 0040 00 9252 00 00 0000 00 00 2500
dev:1272025-03-30 14:24:16.780debugdescription:- catchall: 0104 0102 01 01 0040 00 9252 00 00 0000 07 01 00
dev:1272025-03-30 14:24:14.765debugdescription:- catchall: 0000 8021 00 00 0040 00 9252 00 00 0000 00 00 2300
dev:1272025-03-30 14:24:13.770debugupdateFinalState: 100
dev:1272025-03-30 14:24:12.757debugattr: 33, value: B6, descValue: 91
dev:1272025-03-30 14:24:12.754debugdescription:- read attr - raw: 92520100010A210020B6, dni: 9252, endpoint: 01, cluster: 0001, size: 0A, attrId: 0021, encoding: 20, command: 01, value: B6
dev:1272025-03-30 14:24:10.754debugundefined lastLevel
dev:1272025-03-30 14:24:10.751debuglevelEventHandle - currentLevel: 100 lastLevel: 100
dev:1272025-03-30 14:24:10.748debugattr: 8, value: 00, descValue: 0, FYRTUR block-out roller blind
dev:1272025-03-30 14:24:10.742debugdescription:- read attr - raw: 92520101020A08002000, dni: 9252, endpoint: 01, cluster: 0102, size: 0A, attrId: 0008, encoding: 20, command: 01, value: 00
dev:1272025-03-30 14:24:10.494inforefresh()
dev:1272025-03-30 14:24:10.492debugConfiguring Reporting and Bindings.
dev:1272025-03-30 14:24:10.490infoconfigure()

Does this look correct?
I see some lines with: undefined lastLevel and some weird negative "lastLevel":

newlevel: null currentlevel: 100 lastlevel: -155
levelEventHandle - currentLevel: 100 lastLevel: -155

If i press Open (the blind is stuck in closed state at the moment) the log show this, but nothing happens:

dev:1272025-03-30 14:25:47.407debugupdateFinalState: 100
dev:1272025-03-30 14:25:46.391debugattr: 33, value: B6, descValue: 91
dev:1272025-03-30 14:25:46.387debugdescription:- read attr - raw: 92520100010A210020B6, dni: 9252, endpoint: 01, cluster: 0001, size: 0A, attrId: 0021, encoding: 20, command: 01, value: B6
dev:1272025-03-30 14:25:44.387debugundefined lastLevel
dev:1272025-03-30 14:25:44.385debuglevelEventHandle - currentLevel: 100 lastLevel: 100
dev:1272025-03-30 14:25:44.378debugattr: 8, value: 00, descValue: 0, FYRTUR block-out roller blind
dev:1272025-03-30 14:25:44.375debugdescription:- read attr - raw: 92520101020A08002000, dni: 9252, endpoint: 01, cluster: 0102, size: 0A, attrId: 0008, encoding: 20, command: 01, value: 00
dev:1272025-03-30 14:25:44.195inforefresh()
dev:1272025-03-30 14:25:39.343debugdescription:- catchall: 0104 0102 01 01 0040 00 9252 00 00 0000 0B 01 0000
dev:1272025-03-30 14:25:39.174infohardOpen()
dev:1272025-03-30 14:25:39.147infoopen()

I see it calls hardOpen() just after open() - is that correct?
It also shows undefined lastLevel again.

Does anyone have some tips for things to try, to get the blind working again?
Is it possible to downgrade the firmware to an earlier version?

Any help is really appreciated..!

// Kenneth

Have you tried resetting and re-pairing the blinds? When mine fall of the mesh every few months it takes a day or two of pairing attempts to get them back on the hub. Lots of times it will seem like it paired but doesn’t finish completely.

I can tell it paired properly because the blind will go down and back up 1cm by itself after the pairing successfully completes. Until I see the blind do that up/down dance, I know it’s not paired even if the light stops blinking.

It can be a pain and makes me feel like I’m going mad, but eventually they pair and stay solid for a while. I wrote about it here last year: The IKEA Fyrtur shade pairing dance of madness

Thx for the suggestion @craigspree..

Unfortunately i have tried this many times, both with device discovery turned on before resetting and after the initial reset (pressing both buttons on the blinds).
It sometimes gives me a very short movement when pairing, but not the "up/down dance" that it used to.
Starting to think it's the motor that's gone on early retirement.. :expressionless:

1 Like

I've got a number of PRAKTLYSING zigbee shades that are working pretty well once you get them paired. However, I just bought a few new ones, and they appear to have a different version of firmware (117C-1187-24040013). They work but the battery level seems to be incorrect (appear to be 2X actual - 186-192%). Is there an easy way to fix this?

Also, is there anyway to update the firmware to get them on the same release? There's no update firmware button like I see with some other zigbee devices.

I answered my own questions. Upon searching this thread more thoroughly, I found how to fix the battery level issue with the simple edit detailed above.

The firmware update was a little more difficult. I tried following the procedures outlined in other forum posts, but had no luck in getting the upgrades to happen. I ended up buying an ikea dirigera hub to do the updates.

What seemed to work was pairing the shades to the ikea hub by just resetting them (not touching the hubitat in any way) and pairing with the new hub. The firmware updates start on the ikea hub in a few minutes and don't take long at all. When that's finished, I reset the shade and started pairing on HE. It recognized it as the previously paired shade. The last step was to change the device driver to the modified (for the battery display) and do a configure. Everything seems to work just fine.

The only thing is that the old firmware version is still displayed on the device info page but the ikea hub showed the current one before the final reset.