Use M100 hub as Thread Border Router with Smartthings Hub v2

Here are options for IPv6 prefix. I’d have to change “6rd tunnel” to “Manual” to gain access to the setting, at which point the rest needs to be specified, too.

I can view IPv6 addresses, but as far as I can tell any device I inspect only has an IPv4 address. Some light research suggests that my ISP doesn’t really do native IPv6.

FWIW I tried just enabling 6rd tunnel with “Automatic” but it didn’t change anything. I’ll try some IPv6 manual settings.

I’m not entirely sure, but from what I’ve read, the Linksys Velop MX4200 unfortunately doesn’t support setting a local ULA IPv6 prefix. This means you are completely dependent on your ISP to provide a functional GUA prefix. Alternatively, you could either run your own dedicated DHCPv6 server on your network or consider buying a different router.

Hmm, well my phone does show an IPv6 address in it’s status. And the router I have is designed to work with HomeKit (which I don’t have, but it’s a promising sign). So I think I have a local IPv6 connection? How can I test that outside of Aqara?

If I run ifconfig on my Mac terminal, I get an inet6 address starting in fe80::

Exactly, that is a link-local address. However, for Matter over Thread to work, you need either a GUA or a ULA prefix.

That’s all helpful, thanks.

So, I had an old Eero router lying around, and it has a Thread radio built in. I tried connecting my MSC-1 via Smartthings again, and it prompted me for the Thread network broadcast by the Eero. I selected it, it asked for a network key, which I had because Eero doesn’t hide it. I put that key in, and it connected instantly without issue. It took 30 seconds from start to finish.

Obviously, this doesn’t clear up the IPv6 issue, but it does show that the MSC-1 works, and that Smartthings will work on Thread when given the right information.

I reset the MSC-1. For good measure, I tried to see if Smartthings would detect it as a new device, and it did, but I canceled that setup to keep the device addable elsewhere.

I then reset the M100 (10 button pushes, red light), with the intention of seeing if I could get this all working with a router proven to work with Thread. Curiously, the Thread network broadcast by the M100 after reset was the same Thread network as before. I would expect it to create a brand new one. I paired the M100 fine to my Aqara app, but still had the same issues with connecting the Child Device. So, I created a new Thread network, deleted the old one, and tried again.

Same issue.

At this point, I think at least half the problem is the M100 doesn’t work very well. If I can create a Thread network with an Eero, and join a Thread device to it using Smartthings and the network key, I should theoretically be able to use that same router to make the Aqara Thread network happen.

So, unless there is an aha in here somewhere, I’m just going to send it back. Thanks for your help to this point!

Hi, I don’t have an M100. Check if there is a way to change the channel in the settings (similar to M3). Look for this section in the settings.


Your Eero test is actually very telling.

Eero doesn’t just act as a Thread Border Router, it also manages IPv6 and routing in a way that fully supports Matter. It essentially provides a complete, self-contained environment.

The Aqara M100, on the other hand, relies much more on your existing network. For Matter over Thread to work reliably, proper IPv6 routing between Thread and your LAN is required.

If your router only provides link-local addresses fe80:: and no usable IPv6 prefix, the M100 may not be able to bridge Thread devices correctly.

However, I cannot rule out the possibility that, in addition to the network issues, Aqara’s Matter over Thread implementation is not working correctly with the MSC-1.

I mean, wouldn’t the Eero provide that for the Aqara device, too? I replaced my old router with the Eero, and had the same issues. That’s why I think the Aqara device just isn’t reliable.

If you run the “ifconfig” command in the Mac Terminal, do you only see the one IPv6 address that starts with fe80::, or are there others as well?

And as I said, I can’t rule out the possibility that, in addition to the network issues, Aqara’s Matter over Thread implementation isn’t working properly with the MSC-1.

I was having the identical problem to OP. I have a Smartthings Hub v2, which, while it supports Matter, does not support Matter over Thread, hence I bought the M100 as a cheap way to get Thread support.

But no matter what I tried, the M100 would not add my device (an Ikea dual button in my case). But if I tried to add it via Smartthings I was asked for the 32-character key. Strangely this key is not visible in the Aqara app, etc, so seemingly there is no way forward.

However, I have now got this working perfectly by obtaining the 32-character key via the Home Assistant app on my iPhone. In the HA app, go to the main menu on the left and then Settings > Companion app > Debugging > Thread. It will ask for permissions to access network, so allow. Then press on the thread network from the list. It will then show you the fabled 32-character key along with other info.

Once I entered this in Smartthings it connected and set it up perfectly, and hasn’t failed since so far (I did this a few days ago).

Luckily I have Home Assistant so this was easy enough, but there may be other apps/methods of doing this if you don’t have it. Note that there’s an Android version of the Home Assistant app too, but I haven’t tried it. It’s essentially reading it from your phone’s keychain, so any app, etc that can do that should be enough.

3 Likes