IKEA finally retired the TRÅDFRI line. I actually stocked up on the way out: I grabbed 4 of the TRÅDFRI 1100-lumen bulb and button combos on clearance for $6.99 each, and every one of them paired to Zigbee and worked great straight out of the box. No tricks, no power-cycle rituals, nothing. That’s the bar I went in with.
The replacement is the KAJPLATS series. The bulbs look great and ship with IKEA’s new direction: Matter over Thread. I wanted to like the Matter setup. After fighting with it for a while I gave up and added mine to my existing Zigbee2MQTT mesh instead, and that’s been working great ever since. Here’s everything I ran into.
Matter over Thread went badly
My setup isn’t exotic. I’ve got HomePod Minis acting as Thread border routers, and I set the KAJPLATS bulb down inches away from one of them while pairing. There was no reason this should have been hard.
Pairing through Apple Home directly just failed. So did adding it as a Matter device through Home Assistant’s Matter integration. I power cycled the HomePods, started over from scratch, and eventually got the bulb to join Apple Home, except it showed up as unavailable and stayed that way. It was paired and confirmed and doing absolutely nothing.
There’s also a channel problem. Apple Home put Thread on channel 25 and gives you no way to change it, and my Zigbee mesh already lives on channel 25. If you run Home Assistant’s own Matter server with something like the ZBT-2 as your Thread border router, you can pick the channel yourself, but when the HomePods are in charge you’re stuck. So now I had two protocols fighting over the same slice of RF with nothing I could do about it.
Matter is supposed to make smart home gear just work together. What I got was silent failures and a bulb that paired fine and then sat there dead. It might get better. It hasn’t yet.
The bulbs still speak Zigbee
IKEA doesn’t put this on the box: these bulbs still have Zigbee support in the firmware. You just have to wake it up with a specific power cycle sequence. Cycling the power 6 times does a factory reset. Cycling it 12 times switches the bulb into Zigbee pairing mode, and from there it shows up in Zigbee2MQTT like any other IKEA bulb.
You’ll know it worked when the bulb flashes white. That flash means it’s in Zigbee pairing mode and hunting for a coordinator.
Pairing it to Zigbee2MQTT
Factory reset the bulb first
Reset the bulb before you try anything else. I skipped this the first time because mine had been paired to Apple Home and I assumed deleting it from the app was enough. It wasn’t. The bulb still believed it was paired to something, and the 12-cycle Zigbee script did nothing until I wiped it first.
Here’s the full YAML for the reset script: kajplats_factory_reset.yaml
Run it and watch for the 3-blink white flash, which is how you know the reset took.
One thing that tripped me up: let the script finish completely and give the bulb a few seconds to settle before you move on. I fired off the 12-cycle Zigbee script too soon after the reset on my first try and nothing happened, because the bulb hadn’t fully booted back up yet. Wait at least 5 seconds after that white blink before you run the Zigbee mode script.
Turn on permit join in Z2M
Open Zigbee2MQTT and turn on permit join, either globally or scoped to your coordinator, before you run the next script.
Run the 12-cycle Zigbee mode script
Counting out 12 power cycles by hand with the right timing is miserable, so I let a smart plug and a Home Assistant script do it for me.
In Home Assistant, go to Settings > Automations & Scenes > Scripts and create a new script. Swap switch.YOUR_PLUG_HERE for your own plug’s entity ID.
The snippet below is abbreviated and won’t work as-is. The full script YAML is in this GitHub gist: kajplats_zigbee_mode.yaml. Copy that one and drop in your plug’s entity ID.
alias: KAJPLATS Zigbee Mode
description: Power cycles the bulb 12 times to switch KAJPLATS into Zigbee pairing mode
icon: mdi:zigbee
mode: single
sequence:
- action: switch.turn_on
target:
entity_id: switch.YOUR_PLUG_HERE
- delay:
milliseconds: 500
- action: switch.turn_off
target:
entity_id: switch.YOUR_PLUG_HERE
- delay:
milliseconds: 1500
# This is not the full script. Copy the complete version from the gist linked above.
- action: switch.turn_on
target:
entity_id: switch.YOUR_PLUG_HERE
The timing that worked for me was 500ms on, 1500ms off, repeated 12 times, and leaving the plug on at the end.
Screw the bulb in, let it glow normally, then run the script. Watch for the white flash when it finishes. The bulb should land in Z2M within about 30 seconds.
The Zigbee2MQTT device page for KAJPLATS is worth a bookmark for the supported features and known quirks.
Once it’s in Z2M
After it pairs, the KAJPLATS acts like any normal IKEA bulb in Zigbee2MQTT. You get full brightness and color temperature, and on the RGBW variant you get full color too. The one catch is that OTA updates don’t work over Zigbee on this bulb, so if you ever need to update the firmware you’d have to move it back over to a Thread hub temporarily. That’s a minor annoyance, and a small price next to the Matter experience.
Here’s mine in a paper floor lamp, first at a normal warm white and then driven to full color, all from Zigbee2MQTT:


Same KAJPLATS bulb, same Z2M control: warm white, then full RGB. No Thread and no Matter involved.
The BILRESA button that comes with it
My KAJPLATS kit came with an IKEA BILRESA E2489 dual-button remote, the whole thing for $14.99, which looks like a steal. Per the Zigbee2MQTT device page the remote does support Zigbee mode, but the sequence to get there is way fussier than the bulb. You hold the pair button for 10 seconds, press it 4 times to kick off Touchlink, then press it 8 more times to actually drop into Zigbee pairing mode, with specific LED states you’re supposed to catch at each stage.
I put real time into it and could not get it to stick. For now I’ve given up and I’m just controlling the KAJPLATS from Home Assistant automations directly. If you’ve gotten the E2489 paired, leave a comment and tell me what I was doing wrong.
Where I landed
The KAJPLATS is a good bulb at a classic IKEA price, and the hidden Zigbee mode means it joins the mesh you already have. Matter over Thread is clearly where IKEA wants to go, but if you’re on Zigbee2MQTT today, twelve power cycles is all it takes to skip the whole thing.