AI··5 min read

I Let a Grok Bot Pair the IKEA Switch I Did Not Have Time For

I failed once at pairing an IKEA BILRESA to Home Assistant, then got too busy to debug it. Grok Bot has its own desktop and browser, so I pointed it at my HA URL. A few hours of troubleshooting later, the remote actually worked.

I have been curious about Grok Bot for a while, mostly because it is not just another chat window that throws commands at you and waits for you to go do the work. It has its own computer, with a real desktop and a real browser, which means it can open the same pages you already use, click through them, and talk to you about what it is looking at. You can watch it move around a dashboard the way you would watch a friend share their screen.

That last part is what made me want to try it on Home Assistant. My setup is reachable over a URL I already trust, and I had a job sitting in the back of my mind that I never finished: pairing an IKEA BILRESA, the cheap dual-button remote, so it would toggle the plug on my study desk. IKEA sells it as a Matter device, I tried to get it onto Home Assistant once, and I did not get it over the line. After that I got busy, the remote went back in a drawer, and I told myself I would sit down on a quieter weekend and actually figure it out.

I never got that quieter weekend. What I did get was the thought that if Grok Bot can sit in a browser on its own machine, I could point it at my Home Assistant endpoint and let it work from the same dashboard I would have used. I was not expecting it to magically know IKEA remotes. I just did not want to spend another evening reading pairing threads when I already had a UI in front of me that someone else could click through.

So I asked it to try.

What surprised me was how ordinary the conversation felt. I told it what I wanted, it went and looked, and it came back with what the screen actually showed instead of a generic tutorial. We started with Matter, because that is how the remote is sold, and we got far enough into pairing that it felt like it should have worked. Then it died. The box I run Home Assistant on does not do IPv6 the way Matter wants, and there is nothing an assistant can flip on this particular host to fix that. So we stopped, talked through it, and tried a different path, the same way I would have with a person sitting next to me.

These remotes still have a hidden Zigbee mode if you factory reset them and tap the pairing button eight times. I did the physical part. Grok Bot turned pairing on in Zigbee2MQTT and watched the interview come in. The remote showed up, but Home Assistant treated it as unsupported even though the button presses were already landing on MQTT. In other words the hardware was fine; the software just did not know what to call it.

Newer Zigbee2MQTT already understands this remote, so the obvious move was to update the add-on. That update would not pull on this machine, so the bot wrote a small local converter instead. The first version of the file loaded and then quietly did nothing, which is a very Home Assistant kind of failure, and the second version stuck. The UI finally labelled it as a BILRESA, and I renamed it to something I would actually recognise later.

I still had leftover junk from the first failed attempt sitting in the device list. The dashboard was being slow, I got impatient, and I deleted that leftover myself and told the bot to keep going. I will be honest about that: when the UI is laggy, watching an agent click through it is not instant. It did not ruin the session. It just meant I grabbed the mouse for one ugly cleanup and we kept talking.

Then the automation we wrote did not fire, and for a minute it looked like we had wasted the evening on a remote that only looked paired. The YAML was not the problem. The MQTT broker on the box had fallen over, which is the kind of thing you only notice after you have already blamed the remote, the converter, and yourself. Grok Bot found it, restarted the broker from the Home Assistant terminal, and the next button press turned the study desk off. I turned the lamp back on after we tested it, which is a very specific kind of victory.

Either button on the remote toggles that plug now. I watched the bot move through integrations, Thread, Zigbee2MQTT, the add-on logs, and the automation editor, and I did not have to narrate every click. I also did not have to leave my evening to go hunting through forum posts I had already skimmed once and forgotten.

I still did the parts that only I can do. I signed into Home Assistant; the bot never typed my password. I pressed the remote. I deleted the leftover device when I got tired of waiting. I renamed the new one and confirmed the lamp actually went off. Grok Bot did the looking: Matter and Thread, the pairing screens, the converter, the automation, the dead broker. It could not press the physical button, and it could not fix the IPv6 limit on this host. That split is what made the whole thing feel useful rather than magical. I kept the hands-on bits. It burned the hours I would have spent staring at a settings page.

The last time I tried this, I bounced off it and put the remote away. This time I talked for a few hours and left with a working switch. That is days of weekend debugging I did not do, and a very particular headache I am happy to skip: the one where you know the answer is already on a screen you have open, and you just cannot see it yet.

This class of job is a good fit for Grok Bot. If the work lives behind a URL you already trust, and the assistant has a real browser on a real desktop, you can troubleshoot with it the way you would with a friend who is sharing their screen. You talk, you try something, it fails, you try the next thing, and at some point the lamp goes off when you hit the button.

The remote is on the desk now. That is enough of a review for me.

1,072 words · post 01 of 08