Matter devices are unavailable

Just to follow up on this point: the problems occur daily, and they are not limited to this particular device or manufacturer.
image
image
image
And this does not even include all the red warning triangles I regularly see in the Homey app on my iPhone. Many of those temporary dropouts are never recorded because the affected devices are not used in a Flow at that exact moment.

This leads to another important question: why does Homey still not provide a proper diagnostic log for device availability?

A serious smart-home controller should record when a device becomes unavailable, when it reconnects, how long the outage lasted and, where possible, the suspected cause. Without such information, users are expected to troubleshoot recurring radio and connectivity problems almost blindly.

Instead, Homey often only shows a red triangle for a short time and then acts as if nothing happened once the device reconnects. That makes systematic diagnosis unnecessarily difficult and also allows the scale of the problem to remain largely invisible.

It isn’t uncomfortable.

There may still be underlying network conditions playing a role here. The ZBT-2 differs from Homey Pro in several important ways: 1) it runs in Thread-only mode rather than Multi-PAN, as Homey Pro does, 2) it uses a different chipset, and 3) it has a completely different antenna setup.

Of course, it could simply turn out that the ZBT-2 is better suited to this particular environment. If that’s the case; great, it may well be the better solution here.

The reason I want to keep this topic focused, as previous moderators have also mentioned, is that we don’t want it to turn into a Homey vs. Home Assistant discussion. There’s nothing wrong with sharing experiences with either platform when they’re relevant to troubleshooting, but let’s keep the discussion centered on the issue that was originally raised: Matter devices becoming unavailable.

Ever seen that with Google Home, Alexa, SmartThings, Hue? I don’t know of any smarthome controller that can give the suspected cause of an issue or how long an outage lasted beyond just “The device is unreachable, is it plugged in?”.

In fact, Homey apps can provide an custom error message. Not the case for Matter devices, but I mostly use Cloud connected devices, and in my apps I actually have multiple error messages. For example, with my app HomeWizard Link, the light bulbs can either be offline because “The HomeWizard server is unreachable”, “The Link appears to be unreachable. Are both the power and internet LED lit up solid blue?” and “The light bulb is unreachable, is it powered?”. So Homey apps can provide the cause of an issue to some extent. That’s just not possible for Matter devices since those are all standardized, which means that custom error messages are not possible since the same implementation is used for many devices.

Fair warning before you scroll: I’ve never been good at keeping things short :sweat_smile: :joy: If you only read one part, make it the numbers.

I’ve spent the last few days measuring my own Thread network properly, because I wanted to put numbers next to the claims in this thread rather than impressions. Sharing the results here, including the parts that don’t support my own position.

Setup: Home Assistant OS, OTBR add-on 2.16.8 (Thread 1.3), Matter Server 9.1.0. The radio is an SLZB-MR3 (EFR32MG24) running as a networked Thread RCP, so the Thread radio is dedicated hardware and the OTBR runs as its own add-on container. Channel 15. 27 Matter devices, 21 of them over Thread, and 12 distinct RLOC16 exchanged frames with the border router during the measurement hour. The whole thing averages under 1% CPU, so none of this is about throwing hardware at the problem. It’s about which radio does what.

Getting to a frame count was harder than it should be. There is no ot-ctl on the HAOS host shell, no OpenThread Prometheus exporter and no Thread MAC counter entities in HA. There is a /diagnostics endpoint on the OTBR REST API that returns per-node macCounters, which I found afterwards and is arguably the better route, but nothing in either UI surfaces any of it. What I ended up doing was raising otbr_log_level to debug and counting spinel STREAM_RAW frames in Loki. Either way the point stands: on neither platform can a normal user see how busy their own Thread network is without going well off the supported path.

60-minute MAC baseline

Measured at the border router Value
Frames transmitted (on air) 1,222
Frames received 3,550
Total 4,772 (79.5/min, 1.33/s)
Busiest minute 166
Quietest minute 52
IPv6 datagrams 4,168 (69.5/min)
Dropped 90
TX timeouts / RCP failures 0 / 0

Important limitation: this counts frames this border router itself sent or received. It excludes link-layer ACKs, CSMA backoff and MAC retries, which the RCP handles without telling the host, and CRC-failed frames, which it drops outright. More importantly it excludes traffic between other pairs of nodes. The radio filters by PAN ID and destination address, so a poll from a sleepy device to a parent that isn’t me never appears at all. Only 12 of my Thread nodes showed up as radio neighbours. Real channel occupancy across the mesh is therefore meaningfully higher than 80/min, and this is not apples-to-apples with a figure taken from a sniffer or from another point in the stack.

28 days at normal log level

From the OTBR log Value
“Dropping IPv6 UDP msg” entries 41,003 (~¼ of my whole OTBR log)
Rate flat at ~1/min, every single day
16 July, two devices went offline drop rate unchanged

That last row is the interesting one. A noisy log tells you something is unresolved; it doesn’t tell you the network is failing. Worth remembering before anyone’s logs get used as a diagnosis.


@Doekse @Pascal_Nohl one observation for both of you, since it cuts across what you have each been arguing.

On the “more than 900 Thread messages per minute” figure: my own rate is ~80/min. But the more useful comparison is per device. 900 across 50 devices is roughly 18/min each, against 6.6/min per node across the 12 nodes my border router actually exchanges frames with. That’s a per-device difference, not simply a device-count difference.

And more to the point: 900/min is 15 frames a second. At 250 kbps with typical Thread frame sizes, that lands somewhere around 1-4% channel occupancy. A 2.4 GHz channel is not congested at 4%. So I’m genuinely unsure raw message rate is the mechanism here at all, and I’d be careful about treating it as one.

The question I’d rather ask is Pascal’s from #186: what kind of messages were those? Real application-level reports, Thread routing traffic, or retries of messages that had already failed? If it’s largely retries, the number is a symptom rather than a cause. And for what it’s worth Doekse, the second finding in that same report, the radio channel access errors pointing at 2.4 GHz interference, strikes me as the more interesting of the two.


One more thing worth putting on the record, and it cuts against my own setup.

Moving didn’t make my problems disappear. It changed which ones I have. The Zigbee side of my SLZB-MR3 still wedges every few weeks and needs a power-cycle. That’s a coordinator firmware problem rather than an architecture one, but it’s real and I live with it. I’m not sitting here with a perfect system, and I don’t believe one exists.

What I did do is stop being surprised by it. I’ve built Grafana alerts for the three failure modes I know about: the Zigbee coordinator’s SRSP stall, the border router going silent, and the crash-loop where the supervisor watchdog quietly gives up after ten retries. None of that makes the faults go away. It means I hear about them within a minute or two, instead of finding out because a light didn’t respond.

What did change is that I can see it. Close to 60 million Zigbee log lines have passed through my logging stack since I set it up at the start of April, and I still go through them. That visibility is the thing I wanted on the HP23 and never had, which is exactly Pascal’s point.

And here is what separate radios actually bought me. Every time the Zigbee coordinator has wedged, the longest well over an hour, the Thread radio on the same board, same host, same power, same Ethernet, kept forwarding Matter traffic without a single failure. The lights never noticed. And when the Thread side had its own bad day in July, Zigbee ran clean throughout.

That’s the property I’d point at. Not “dedicated radios are faster”. Dedicated radios fail separately. On one shared radio, whatever takes it down takes both protocols with it, by construction. For something that runs the lights in a house, that isolation may end up mattering more than throughput ever will.


@Doekse first, genuinely, thank you for the depth you have brought into this thread. Your diagnostics, your own setup description and your observations have been really interesting reading in here for me.

And thank you for #202 in particular. You listed three differences between the ZBT-2 and Homey Pro: Thread-only mode rather than Multi-PAN, a different chipset, and a different antenna design. Plenty of people in here have circled that question, Pascal not least, who asked back in #186 whether the multiprotocol design might be missing packets and causing retries. But it carries a different weight coming from Athom than it does from those of us on the outside. Multi-PAN is the shared radio. That is the whole thing, in one word.

That raises a question I’d genuinely like the answer to: does Homey Pro run Multi-PAN even when no Zigbee devices are paired to it? If Multi-PAN is a mode rather than a load, then someone who has moved Zigbee elsewhere is still paying for a radio that spends part of its time serving a PAN with nothing on it. And if that’s the case, being able to switch a Homey Pro into Thread-only mode, giving up the internal Zigbee radio (which several of us have already done in practice), would be a very different offer than “buy the next box”.

Which is why I want to be clear about one thing: my HP23 isn’t faulty. It was never an RMA case, and I never asked for one. The unit does exactly what it was designed to do. That matters because Pascal already put it well in #97: buying a new one with the same hardware and the same problems is unrealistic. If Multi-PAN versus Thread-only is the real difference, then he’s right, and a newer box on the same shared radio isn’t a fix for it. My argument has always been with the design, not with the hardware I own.

And I should be upfront about where that leaves me. I don’t run Homey any more, so I have nothing at stake in this, and anyone reading should weigh my opinion accordingly. I’m still in this thread because I’d like to see Homey get better, not because I have something to settle.

So the offer is open to everyone here, Athom included: if the measurements, the method or the queries behind them are of any use to you, take them. Ask me and I’ll share whatever I have.


@deejayreissue thank you for sharing your move, and I’d like to say clearly that I’d prefer it stays in this thread. Someone running the comparison in their own house and posting the result is about the most useful thing that can happen in a thread like this, whichever way the result falls. That’s worth encouraging.

Your case also matters more than mine, and here is why. You don’t have Zigbee devices on Homey at all. Your Zigbee lives on a separate Hue Bridge Pro on CH25, Homey on CH20, and as I understand your setup, no other border routers. You cleaned up your network properly, WiFi on CH1 at 20MHz, removed the router that sat above the stack. And 50 Thread devices ran flawlessly for nine months until v13.3.

And here is where your case stops being a counter-example to mine and becomes the cleanest evidence in this thread.

If Multi-PAN is a mode rather than a load, which is how I read Doekse’s #202, then Homey Pro was time-slicing its radio between two PANs on your setup as well, even with zero Zigbee devices paired to it. You removed everything that could be blamed: no Zigbee traffic, no other border routers by your own account, a clean channel plan, clean WiFi, the upstream router gone. What was left was the radio mode itself. And it still wasn’t stable.

I could never have produced that test. I moved Zigbee to a separate coordinator and moved off Homey at the same time, so my result has two variables in it. Yours has one.

I’d also note that you removed the Eve and the IKEA plugs and the problems stayed. And the 17 Aqara devices you kept are bulbs rather than plugs. They’re mains-powered, so they’re rx-on-when-idle and don’t poll at all.

Worth saying too: with my device count I have never been able to stress it the way you have. You were running roughly twice the Thread devices I am, so your setup surfaces things mine simply never will, which makes me wonder whether the HP2x starts struggling to keep up with itself once the network gets big enough.

Your 30-second, zero-failure commissioning on the ZBT-2, against sometimes up to five attempts for a battery-powered device on Homey, is the comparison I’d most like to see someone at Athom look at properly. Commissioning reliability isn’t a mesh-load story at all.


@Pascal_Nohl your point in #201 about the missing availability log is the one I’d underline hardest, and my measurements are an accidental proof of it.

Look at what it took to get to a single traffic number: raising a log level, grepping spinel frames out of Loki and normalising by hand, on a platform far more open than Homey. A red triangle that clears itself keeps the true scale of the problem invisible.

@smarthomesven raised a fair objection to this in #203, and I’d split it in two. The “when and how long” part is already solved on my side. Home Assistant’s recorder keeps every state change, so I can pull up any device and read off exactly when it went unavailable, when it came back and how long it was gone, down to the second. The default is ten days, and I’ve raised mine to 90. That isn’t exotic, it’s on by default and it’s one line of config. The “suspected cause” part is the one nobody does, and I wouldn’t blame any vendor for that, because it is genuinely hard. But “when and how long” is the part you actually troubleshoot with, and that’s the gap.

Most people won’t dig through 41,000 log lines, and shouldn’t have to. I happen to enjoy it, but that’s a hobby, not a diagnostic strategy. The recording should come from the platform.

On the off-topic question (#200): I’m with you. Removing the comparison removes the control group.


One last thing @Doekse and this is a question, not a proposal. Would Athom be OK with us forming a small community of practice around this, a Teams call or whatever shared medium suits people, for those of us who have actually been through it? It wouldn’t need to be hosted by Athom, and it isn’t about me running anything. But it shouldn’t happen without your blessing either, so I’d rather ask. :slightly_smiling_face: Happy to take it to its own thread so this one stays focused.

And if you made it all the way down here: congratulations, and thank you :tada: :confetti_ball: I did warn you at the top.

No vendor supports the outage duration either. Google Home, Alexa, Smartthings, Homey, Hue, Tuya, HomeWizard, ThirdReality, none of them have this feature.

If ever there was an example of someone burying their head in the sand.

So it could be better at penetrating thick brick walls, which are commonplace in UK period properties. That may be a factor, but it also raises the possibility that Homey Pro (“the world’s most advanced smart home hub”) isn’t very futureproof.

I’ll take your word on those eight, I haven’t tested them myself. But notice which platform isn’t on your list :slightly_smiling_face:

Home Assistant has no outage-duration feature either. It just keeps every state change, and the duration falls out of that by itself. Nobody had to build it. That’s the difference: the others treat it as a feature to design, when it’s really just a consequence of not throwing the history away.

Which is why SHS is interesting. Once it’s a real option with third-party radios, it’s self-hosted anyway, so let people reach the data on the host, Docker or otherwise. Then the duration comes for free and nobody has to build a diagnostics UI at all.

@ulrikb First up, thank you for the elaborate research and post. Very much appreciated!

This is exactly the kind of contribution I was hoping to see here: actual measurements, comparisons and observations that we can discuss and learn from, rather than going around in circles with “but why this?” and “why that?”. So genuinely, thanks for putting the time into this.

There are a couple of things I’d like to clarify though.

Homey Pro indeed runs the Silicon Labs radio in Multi-PAN mode, allowing Zigbee and Thread to coexist on the same radio. We don’t dynamically switch the radio between Zigbee-only, Thread-only and Multi-PAN depending on whether Zigbee devices are present.

I do want to make one important distinction here: running Multi-PAN doesn’t necessarily mean that the available radio bandwidth is permanently divided between Zigbee and Thread, regardless of actual traffic. They share the same radio and therefore the same radio resources, but that isn’t quite the same thing as saying that an otherwise idle Zigbee PAN continuously consumes a fixed portion of the available airtime.

That said, your comparison with a dedicated Thread radio is absolutely interesting, especially the isolation aspect you describe. With separate radios, a failure or issue affecting one radio doesn’t inherently affect the other protocol. That’s a perfectly valid architectural advantage.

Regarding diagnostics, I also understand the point you and @Pascal_Nohl are making.

Yes, being able to browse through a full set of raw chipset, OTBR or protocol logs can be fun and incredibly useful for the people who know what they’re looking at. But for everyone who doesn’t, it can also be very confusing and potentially lead to completely wrong conclusions. We’d rather have people reach out, and we can lend a hand in figuring out what is going wrong. That’s why we have a support team and why I like to hang out here.

The Homey Developer Tools already provide quite a bit of information here, including when devices connect and disconnect (Matter → ⋮ next to a Thread device → Thread Network Information). That can be very useful for establishing a timeline and identifying patterns.

Determining why a device became unavailable is obviously a different matter. That can involve anything from the device itself, routing and network conditions to interference or issues further down in the radio/protocol stack, and isn’t something we can necessarily derive from a simple disconnect event.

For Thread specifically, the Thread Diagnostics app can provide quite a bit of additional insight as well.

And just to add some personal experience here: Thread hasn’t been flawless for me either.

For example, my Motionblinds blinds tend to drop off the Thread network every couple of days. When that happens, however, they’re not just unavailable in Homey. They’re gone from Google Home as well as the Home Assistant instance I have running. In my case, it seems to be related to the sleep/wake behaviour of the blinds, as sending a command using the 433 MHz remote wakes them up and suddenly makes them available over Thread again.

And my own environment certainly isn’t an RF-clean laboratory either. I live right in a city centre with tens of Wi-Fi networks around me (80 devices on my own network), probably even more Bluetooth devices, and both of my direct neighbours are running Philips Hue networks as well. There’s quite a lot happening in the 2.4 GHz spectrum around here.

Yes, that is absolutely frustrating, but unfortunately, it’s also the reality sometimes.

That’s obviously a very different situation from what is being investigated in this topic, but I mention it because Thread as an ecosystem is still something I personally encounter quirks with as well. I simply haven’t experienced these kinds of issues with my Zigbee and Z-Wave networks, which have generally been extremely stable.

Lastly, I really want to stress that I’d like to keep the discussion here civil and respectful. We’re here to have a healthy technical conversation, share experiences and hopefully learn something from each other’s findings.

@deejayreissue; I’d really like you to stop with these types of comments. They aren’t helping anybody move the discussion forward, and I don’t appreciate them one bit.

It’s absolutely fine to disagree with me, challenge what I’m saying or compare experiences between Homey, Home Assistant or other platforms when that helps us understand what’s happening. In fact, comparisons like the one @ulrikb has made here can be genuinely useful. But let’s do that based on the technical arguments and findings rather than making comments about each other.

As said earlier: In the end, there’s a smart home platform for everyone, and that’s perfectly fine. Let’s use the different platforms, setups and experiences represented here to help figure out what’s actually happening, rather than turning those differences into a competition.

And of course! It’s always fun and useful to do these kinds of things. That’s what the Forum is for, but a get-together or Teams call can definitely be helpful as well if people are up for it.

As for me, I’ll probably stick to the Forum. My girlfriend still likes to see me in my spare time as well :wink:

Sorry to disagree but in simple terms i feel this is on topic. It again highlights that another user has matter/thread issues and that its not the devices at fault. We all seem to have much better experience with another platform handling the Thread side of things. I agree this should not become a comparison and that any detail about how each one works should move to another topic BUT we don’t wsnt to lose the point that Thread is the issue and that people have had to Move to other platforms.

As i said earlier, support told me they could not help and to ask The forum, it feels as if Athom dont have the answers and that Matter and Thread are half baked ideas.

Would actually be nice for Someone to address the issue! If support are not willing or able to do that with logs and diagnotics and questioning, im sorry but what hope do we have?

The point is, Home Assistant seems to be the resolve and steady option. Surely thats not Athoms desire?

Sure this isnt without its faults at all and I agree more technical analysis will help, but that swings me back around to the reply that support gave me - surely they are the ones who should be taking a dive into whats going on

@Doekse: A few months ago a user posted in this topic information on a firmware update from Silicon Labs (manufacturer of the Zigbee/Thread radio in the recent Homey Pro models).

That update apparently is focussed on fixing (communication) issues in a multi-PAN setup, like in Homey Pro.

I am not sure about the relevance and validity of that information. However, are your colleagues looking into this update and whether it might also help in improving the Matter-over-Thread issue this topic is about?

This thread completely has lost its usefullness. Nobody else is going to read this thread where a handfull of people are bickering with @Doekse for days on end and going round in circles.

I suggest starting a new thread called “Matter devices are unavailable with Homey hardware” and limit the discussion to actually try to solve the issues some people have using Homey hardware with Matter. People that want to continue talking about / comparing Home Assistant can keep on going in this thread.

:grinning_face:

You’re missing the point of those HA comparisons: to rule out that the issues with devices becoming unavailable in Homey is not related to specific devices, it’s very useful to know that those same devices work fine in different environments. It rules out (-ish) that the issue is with the devices themselves.

Yes. But we know that already. The devices work with Home Assistant and they have an issue with Homey. So lets concentrate on finding out what the issues are and stop going on about Home Assistant.

It seems quite relevant to me to see what the differences are between HA and Homey when it comes to Matter/Thread, and if those differences could explain the issues for Homey. I mean, it’s not that we have a plethora of logfiles from our Homey’s that we could let some random LLM explain to use.

I am not saying that the fact that it works with HA and not Homey is irrelevant. We established already that this is the case and there is no point in repeating this time and time again.

Technically speaking, I don’t think broad Homey vs. Home Assistant comparisons are particularly useful in this context.

What we’re actually comparing is Homey Pro, using an EFR32MG21 running in Multi-PAN mode, against Home Assistant running Matter.js on a plethora of possible hardware, radio chipsets, firmware versions, and antenna configurations.

That makes it difficult to draw conclusions at the platform level. If a particular Home Assistant setup performs better or worse, that is certainly useful information, but it doesn’t necessarily tell us why. The difference could be in the Thread radio, chipset, firmware, antenna design, Multi-PAN vs. dedicated Thread operation, network topology, or any number of environmental factors.

So I think comparisons are most useful when we make them as specific as possible: which hardware and radio are being used, how they are configured, and under what network conditions. Otherwise, “Homey vs. Home Assistant” risks simplifying what is really a comparison between two very different technical implementations :wink:

Fair enough, but from what I’ve been reading in this thread, it seems that Athom has no idea what’s causing these issues so users are also grasping at straws.

One thing that was mentioned was a particular set of devices from different brands that were generating a number of messages that was apparently potentially overwhelming for Homey, and from what I gather, those same devices handled by a different platform were no cause for issues. This seems to me like it’s valuable information, regardless of the specifics.

Is 900 messages per minute really a problem for Homey? Could Homey be causing these devices to generate that amount of messages? Could be worth investigating. Set up a few ESP32C6’s as Matter over Thread end devices, make them generate a bunch of messages, see what happens. Then do the same with Matter over WiFi, see if that changes anything.

It begs the question, why hasn’t Athom run closed door testing using Homey SHS and Third Party thread antennas (or built their own) to simulate a pure Thread only environment with a large number of devices. They’ve had early versions of SHS behind closed doors for the best part of a year already.

IMHO if the next generation Homey device can’t get Thread right, then it will be bad news for their long term ambitions in the space, especially as Apple are going all in on Thread and about to release the much anticipated HomePod at a time when people are switching in their millions from Windows and Android over to the iOS and MacOS ecosystem, for a variety of reasons.

Companies like IKEA (and now Phillips Hue) aren’t going to walk away from Thread and other companies will look to compete at those price points, which will lead to more and more use cases such as mine with high density Thread only smart homes.