I wanted to document what finally worked for my IKEA ALPSTUGA E2495 after repeated Matter commissioning failures.
My original goal was a Home Assistant-only setup. I did not intend to use Google Home or the Nest Hub for the final configuration. I only tried Google Home as a diagnostic step after several failed attempts to commission the device through Home Assistant.
The core issue turned out to be a mismatch between the Thread network preferred by Home Assistant and the one preferred by my Pixel.
Setup
- IKEA ALPSTUGA, (E2495)
- Home Assistant Yellow
- Home Assistant Connect ZBT-2 dedicated to Thread
- Separate radio used for Zigbee
- Home Assistant OS 18.0
- Home Assistant Core 2026.7.4
- Home Assistant Companion app 2026.7.4-full
- OpenThread Border Router app 3.0.2
- ZBT-2 firmware: OpenThread RCP 2.7.2.0
- Matter Server add-on 9.1.0
- Matter Server 1.3.1 / matter.js 0.17.7-alpha
- Pixel 9 Pro
- Android 17
- Google Play services 26.26.34
- Nest Hub Max
Initial symptoms
Commissioning failed in several different ways depending on the phone or tablet:
- Android: “Failed generating device credentials”
- Android: “Can’t reach device”
- iPad: “Unable to Add Accessory – Pairing Failed”
- Another Android tablet: “Can’t find device”
At one point, Android specifically displayed:
Checking connectivity to Thread network NEST-PAN-E2C7
However, the Home Assistant ZBT-2 was operating a different network:
ha-thread-d721 — Home Assistant/ZBT-2
NEST-PAN-E2C7 — Nest Hub Max
The ALPSTUGA was physically in the same room as the ZBT-2, but that did not help because the phone was trying to use a different Thread network during commissioning.
Key diagnostic clue
In the Home Assistant Companion app, I went to:
Settings → Companion app → Troubleshooting → Sync Thread credentials
The app reported:
Home Assistant and this device prefer different networks
Device prefers: NEST-PAN-E2C7
Here, “this device” referred to the Pixel, not the ALPSTUGA.
At the time:
- Home Assistant preferred
ha-thread-d721
- The Pixel preferred
NEST-PAN-E2C7
This explained why Android’s Matter commissioning flow kept referring to the Nest-created Thread network while the Home Assistant ZBT-2 was operating a separate HA-created network.
Why I tried Google Home
I did not originally want to use Google Home for this sensor. I tried it mainly to determine whether the ALPSTUGA hardware, QR code or Bluetooth commissioning path was defective.
Google Home accepted the ALPSTUGA setup, which suggested that the device, QR code and initial Bluetooth communication were functional.
However, the ALPSTUGA immediately appeared offline in Google Home and never became usable there.
I moved it directly beside the Nest Hub Max and rebooted it, but it still remained offline.
The Google Home attempt was therefore not the final solution. Its main value was confirming that the device could get through initial commissioning and clarifying that the Nest-created Thread network was the one Android preferred.
What did not work
Simply making NEST-PAN-E2C7 the preferred Thread network in Home Assistant did not move the already-configured Home Assistant OTBR onto that network.
Using Reset border router also did not produce the expected result. The ZBT-2 remained associated with the previous HA network, and another inactive ha-thread-* credential entry appeared.
I stopped resetting it at that point.
What finally worked
First, I made NEST-PAN-E2C7 the preferred network in:
Settings → Thread
I then did the following:
- Uninstalled the OpenThread Border Router app.
- Selected the option to remove the app’s data.
- Confirmed that
NEST-PAN-E2C7 was still the preferred Thread network.
- Reinstalled the OpenThread Border Router app.
- Configured it to use the ZBT-2.
- Started OTBR and waited a few minutes.
- Returned to the Thread integration page.
At that point, NEST-PAN-E2C7 showed two border routers:
- Nest Hub Max
- Home Assistant OpenThread Border Router/ZBT-2
The ZBT-2 had successfully joined the same Thread network as the Nest Hub.
The old inactive ha-thread-* credential entries were still visible. I left them alone rather than trying to clean them up immediately.
Clean ALPSTUGA commissioning
The ALPSTUGA was still offline in Google Home, so I then:
- Removed the ALPSTUGA from Google Home.
- Held the ALPSTUGA settings button for approximately ten seconds.
- Waited for it to restart and begin pulsing white.
- Opened the Home Assistant Companion app on the Pixel.
- Accepted Android’s “Set up your device” prompt.
- Scanned the ALPSTUGA Matter QR code.
- Selected Home Assistant when Android asked which app to use.
Commissioning then progressed through:
- Connecting to device
- Generating credentials
- Connected
- Adding device
It completed successfully, and the ALPSTUGA sensor data appeared in Home Assistant.
Firmware update
The device initially had firmware:
- Installed: 1.0.13
- Available: 1.0.26
The Matter OTA update from 1.0.13 to 1.0.26 also completed successfully through Home Assistant.
Main takeaway
In my case, the important mismatch was between the Thread network preferred by Home Assistant and the one preferred by the Pixel:
- Home Assistant/ZBT-2 initially used
ha-thread-d721
- The Pixel’s Android Thread credentials preferred
NEST-PAN-E2C7
The Nest Hub helped indirectly because it had created the Thread network Android already preferred. Google Home itself was not used for the final pairing, and the ALPSTUGA never worked there.
The eventual fix was to make NEST-PAN-E2C7 preferred in Home Assistant and reinstall OTBR so the ZBT-2 joined that same network. Once the Nest Hub and ZBT-2 appeared as border routers under NEST-PAN-E2C7, I removed the failed Google Home pairing, factory-reset the ALPSTUGA and commissioned it directly through Home Assistant.
An HA-only Thread network may also have worked if I had been able to make Android consistently prefer and use the HA-created dataset. I did not retest that route after the shared Nest/HA Thread network began working.
This may not explain every ALPSTUGA pairing failure, but it is worth checking the output of:
Companion app → Troubleshooting → Sync Thread credentials
If Home Assistant and the phone prefer different Thread networks, that mismatch may be the underlying issue.
TL;DR: My Pixel preferred the Nest-created Thread network (NEST-PAN-E2C7), while Home Assistant’s ZBT-2 was running a separate HA Thread network. Matter commissioning kept failing because Android and HA were using different Thread networks. I made the Nest network preferred in HA, uninstalled and reinstalled the OTBR app so the ZBT-2 joined that network, then removed the failed Google Home pairing, factory-reset the ALPSTUGA, and commissioned it directly through Home Assistant.