The compatibility matrix, and the gap between yes and tested
Parts 8 and 9 walked you through commissioning with Apple Home, Google Home and Amazon Alexa one controller at a time. This part pulls back and asks a bigger question: across all five ecosystems Matter Hub can reach — Apple Home, Google Home, Alexa, Aqara Home and SmartThings — which of the 52 Matter device types in Stable v2.0.55 actually works where? The answer is not a single yes-or-no. It is a matrix with four possible marks per cell, a set of rules for which mark you are allowed to write, and a method for building your own evidence instead of trusting a marketing page. None of it replaces testing on your own network. All of it stops you from guessing.
“Matter support” is not one question
Matter Hub can map a Home Assistant domain onto a Matter device type. That is one fact. Whether a given controller accepts the bridge, whether it shows the endpoint, whether it offers commands, whether it subscribes to state changes, and whether it supports whatever newer Matter version it needs — those are five separate facts, and Apple Home, Google Home, Alexa, Aqara Home and SmartThings answer each of them differently. All five speak Matter. None of them give you the same interface or the same cluster coverage once you actually commission a device.
| Term | Plain English | In one line |
|---|---|---|
| Matter device type | a category label | One of 52 fixed identifiers, such as door_lock or fan, that Matter Hub can map an entity onto |
| Cluster | one capability | A specific feature inside a device type — on/off, color, brightness — that a controller may or may not read |
| Bridge | the thing being shared | The Matter Hub bridge instance that presents your entities to a controller as a fabric of endpoints |
| Fabric | one controller's membership | The relationship one controller has with a bridge once it has commissioned it, covered in Part 8 |
| Evidence mark | the matrix's verdict | One of four labels — yes, partial, no, unknown — this chapter defines below |
The matrix later in this part is a planning starting point, not a certification. It combines what Matter Hub v2.0.55's mappings can reach, the feature manifest, and each ecosystem's own published device-type list. It does not combine test results from your specific hub, your specific firmware, or your specific home — only you can produce those.
unknown, not yes.Four marks, and the evidence each one actually requires
Every cell in the matrix carries exactly one of four marks. They are not a scale from bad to good — they are four different claims about what evidence exists, and mixing them up is how a “probably fine” guess turns into a written promise nobody checked.
| Mark | What it means | What you still have to do |
|---|---|---|
| yes | The controller's own public material lists this Matter type or basic capability, and Matter Hub has a mapping path for it | Test discovery, basic commands, state reporting and a restart yourself. This is not a guarantee of full cluster support |
| partial | Only some sub-types, commands or UI elements are present; a newer platform version or a workaround is needed; or the bridge-specific evidence is thin | Record exactly what is missing, and split off a controller-specific bridge if you need to |
| no | A pinned source explicitly excludes it, or the dedicated flag manifest marks that controller as no | Do not try to turn a no into a yes by resetting the fabric or re-commissioning |
| unknown | The official material is not enough to confirm this bridge-and-type combination, and there is no controlled test evidence either | Test at small scale and report it conservatively. Do not write it up as supported or unsupported |
The matrix works at the basic-device-type level, not the individual-cluster level. A light's on/off may be yes while its color or its transition effects are still partial; a vacuum may be partial overall while room cleaning and progress reporting stay unknown. When a type covers several clusters like that, the rule is to record the more conservative mark for the row, not the more flattering one.
A yes in this matrix is the item on the restaurant's own menu — the kitchen says it can make this dish. It is not the plate that arrives at your table. You only find out whether it was cooked the way you needed once you have actually ordered it, on your own network, on your own controller version. That is why every single yes in this chapter still comes with the same instruction: test it yourself.
flowchart TD A["Official material for this controller,
for one specific Matter device type"] --> B{"Is the type or basic
capability listed at all?"} B -->|"not listed anywhere"| U["Unknown"] B -->|"listed"| C{"Does Matter Hub v2.0.55
have a mapping path for it?"} C -->|"no mapping path"| U C -->|"a mapping exists"| D{"Does a pinned source or the
flag manifest exclude it?"} D -->|"explicit exclusion"| N["No"] D -->|"no exclusion found"| E{"Are advanced features, the UI,
or the platform version still limited?"} E -->|"limited in some way"| P["Partial"] E -->|"basic path fully covered"| Y["Yes"]
Apply these three limits before you even look at a controller
Before a single controller enters the picture, three layers already narrow what any mark in this matrix can honestly claim.
| Layer | Baseline for this guide | Effect on the matrix |
|---|---|---|
| Release channel | Home Assistant Matter Hub Stable v2.0.55, at an exact pinned commit; the add-on pinned to a mirror commit | Nothing from Alpha, Testing or a later feature set is allowed into any row |
| Product maturity | Standard bridges and most existing mappings are Stable; several entities in Server Mode, the Camera and Security plugins, and some Matter 1.4 types are experimental inside Stable | Even where a controller supports the type, an experimental product path still cannot be written up as a settled promise |
| Controller support | Follows each vendor's own official supported-devices and Matter documentation; most controller cells in the upstream manifest are unknown | Without type-by-type evidence, the cell stays unknown — it is never promoted to yes on the strength of a marketing page |
Think of three separate inspections on the same building, not one. The architect's stamped plan is the release channel — it says what was actually built. Whether that particular room passed final inspection is product maturity — the whole building can be signed off while one room is still marked experimental. Whether the fire marshal in your specific district has approved it is controller support. Passing one inspection does not waive the other two, and a glossy brochure from the developer is not any of the three.
flowchart LR A["Release channel:
Stable v2.0.55,
one pinned commit"] --> B["Product maturity:
standard bridges are Stable,
some types stay experimental"] B --> C["Controller support:
each vendor's own
official device list"] C --> D["The mark you actually
write in the matrix"]
A yes in the matrix never overrides maturity. A newer version of a controller's own app may add support for some newer Matter type, but if Matter Hub's mapping for that type is still experimental inside the Stable channel, the honest recommendation is still a small trial. It runs the other way too: a fully settled Matter Hub mapping does not make a controller add UI for it on its own.
The controller compatibility matrix for all 52 Matter overrides
Every row below matches one of the 52 MatterDeviceType identifiers in v2.0.55. Apple Home, Google Home, Alexa and Aqara Home follow the pinned picker snapshot; SmartThings follows its own compatibility document at the same version. A no appears only where the pinned v2.0.55 compatibility matrix, or a controller's own official type list, gives explicit evidence of exclusion — one failed commissioning attempt on your own network does not turn an unknown into a no.
| Matter override identifier | Apple Home | Google Home | Alexa | Aqara Home | SmartThings |
|---|---|---|---|---|---|
air_purifier | no | yes | yes | yes | unknown |
air_quality_sensor | no | yes | yes | yes | unknown |
dishwasher | no | no | unknown | unknown | yes |
basic_video_player | no | no | no | yes | unknown |
battery_storage | no | no | no | yes | unknown |
carbon_monoxide_sensor | partial | no | partial | yes | unknown |
color_temperature_light | yes | yes | yes | yes | yes |
contact_sensor | yes | yes | yes | yes | yes |
dimmable_light | yes | yes | yes | yes | yes |
dimmable_plugin_unit | yes | no | yes | yes | yes |
door_lock | yes | partial | yes | yes | yes |
doorbell | no | no | no | no | yes |
electrical_meter | no | yes | no | unknown | yes |
electrical_sensor | no | no | unknown | unknown | yes |
electrical_utility_meter | no | no | no | unknown | yes |
evse | no | no | no | yes | unknown |
extended_color_light | yes | yes | yes | yes | yes |
fan | no | yes | yes | yes | partial |
flow_sensor | no | yes | no | unknown | unknown |
formaldehyde_sensor | no | no | partial | yes | unknown |
generic_switch | partial | no | yes | unknown | unknown |
humidifier_dehumidifier | unknown | no | yes | unknown | unknown |
humidity_sensor | yes | yes | yes | yes | yes |
light_sensor | yes | yes | yes | unknown | yes |
mode_select | no | no | no | unknown | unknown |
motion_sensor | yes | yes | yes | yes | unknown |
nitrogen_dioxide_sensor | no | no | partial | yes | unknown |
occupancy_sensor | partial | yes | yes | yes | yes |
on_off_light | yes | yes | yes | yes | yes |
on_off_plugin_unit | yes | yes | yes | yes | yes |
on_off_switch | yes | yes | yes | yes | yes |
mounted_on_off_control | no | no | no | yes | yes |
ozone_sensor | no | no | partial | yes | unknown |
pm1_sensor | no | no | partial | yes | unknown |
pressure_sensor | no | yes | no | yes | yes |
pump | no | yes | no | yes | unknown |
rain_sensor | no | no | no | yes | unknown |
radon_sensor | no | no | partial | yes | unknown |
robot_vacuum_cleaner | yes | yes | yes | yes | unknown |
robotic_lawn_mower | yes | unknown | yes | unknown | unknown |
smoke_co_alarm | yes | no | yes | yes | yes |
solar_power | no | no | unknown | unknown | yes |
speaker | no | yes | no | yes | unknown |
temperature_sensor | yes | yes | yes | yes | yes |
thermostat | yes | yes | yes | yes | yes |
tvoc_sensor | no | no | partial | yes | unknown |
water_heater | no | no | unknown | yes | unknown |
water_heater_management | no | no | unknown | unknown | unknown |
water_freeze_detector | no | no | no | yes | unknown |
water_leak_detector | yes | no | yes | yes | unknown |
water_valve | no | no | no | yes | unknown |
window_covering | yes | yes | yes | yes | yes |
on_off_switch means it is presented as a Matter On/Off Light, not as a native switch tile. The row that actually names a wall-control switch is mounted_on_off_control, which is a different identifier entirely. “Can be presented” in this table is not the same claim as “the UI calls it what the identifier calls it.”flowchart TD A["A physical wall switch
you want to bridge"] --> B{"Which Matter device type
do you map it to?"} B -->|"on_off_switch"| C["Shown as an On/Off Light tile.
Yes on all five controllers"] B -->|"mounted_on_off_control"| D["Shown as an actual switch tile.
Yes only on Aqara Home
and SmartThings"]
There is also a controller-specific flag worth knowing by name: alexaPreserveBrightnessOnTurnOn is yes for Alexa and no for Apple Home and Google Home. That is flag-level support inside a light type, not a no for the whole type — a different thing again from any of the four marks above.
What to reasonably expect from all five ecosystems
- Apple Home — the Home app and a home hub provide the Matter controller, and the basic types are where you build your baseline. Verify sensor cards, events, vacuums and any newer type against your own Apple platform version. For No Response, check IPv6, mDNS, sessions and subscriptions first.
- Google Home — follow Google's own supported device types and its list of compatible hubs. The optimized template is a Matter Hub starting configuration, not a Google certification. A Google room and an HA area are not the same object, even when they share a name.
- Alexa — use
5540for the first bridge you commission. The figure of about80–100devices is upstream practical planning, not a hard ceiling anyone has measured. Cover-as-light, brightness preservation and the vacuum flags are workarounds, so keep them confined to an Alexa-only bridge. - Aqara Home — Aqara's own public list covers many types, and v2.0.55 does carry Aqara-specific quirks. The matrix marks a basic type yes where a source backs it, but a type that is not listed stays unknown, and none of it promises full Matter Hub support for every type Aqara ships.
- SmartThings — the official documentation lists Matter support and compatible hubs, but how a third-party bridge's device types and clusters actually get presented still depends on the platform and the driver. Verify at small scale first, and do not write “SmartThings supports Matter” up as “SmartThings supports all of Matter Hub.”
One thing holds across all five: a controller's account, its rooms, its names, its automations and its sharing permissions are independent of every other controller's. Multi-fabric, covered in Part 8, lets several fabrics manage the same bridge — it does not sync the management data of five separate ecosystems with each other.
Seven steps to your own compatibility evidence
The matrix above tells you where official evidence exists. It cannot tell you what happens on your own hub, your own firmware, your own home. Building that evidence is a small, repeatable routine.
-
Step 1
List what you need, not every entity you have
List, by room and device type, the devices you genuinely want to operate from each controller. Mark which are safety-sensitive, which are read-only state, and which need advanced features. Keep internal identifying data out of the record.
-
Step 2
Apply the official limits, one ecosystem at a time
Go through the official Matter documentation from Apple, Google, Amazon, Aqara and SmartThings one at a time. Mark anything unlisted or vaguely described as unknown. Do not extrapolate from your experience with a different brand's implementation.
-
Step 3
Build a minimal core bridge
Add only low-risk types — lights and switches, typically — for which every target controller already has basic evidence. Back it up, then onboard your first fabric.
-
Step 4
Add fabrics one at a time
Reopen the commissioning window for each controller and add a single one. Once it is done, verify display, commands, state and behavior after a restart, and neither share nor keep the pairing data afterward.
-
Step 5
Test one special type at a time
Add one representative cover, fan, sensor or vacuum, and record each feature as yes, partial, no or unknown for your own setup. “Commissioning succeeded” on its own is not a result worth recording.
-
Step 6
Split bridges according to the evidence you found
If one controller needs a different device type or a different flag, create a dedicated bridge for it. Do not let, for example, the Alexa cover-as-light workaround contaminate cover semantics on Apple Home and Google Home.
-
Step 7
Retest after every version upgrade
Controller firmware, a controller's app, or a Matter Hub update can each change the matrix on their own. Keep the version number and the date with every result you record — but never record fabric IDs, node IDs, or any live network data.
A shared core bridge, or one bridge per controller
| Strategy | When it fits | Upside | Risk |
|---|---|---|---|
| One shared core bridge | A small number of basic lights and switches, already verified on each controller | One set of endpoints, a simple HA filter, every fabric sees the same state | A workaround needed for one controller can affect all of them — the blast radius is larger |
| Split by controller | Alexa needs cover-as-light, or Aqara Home and SmartThings only accept a smaller subset | You choose types, flags, scale and maintenance windows independently | You may expose the same HA entity twice, which confuses people and can create automation races |
| Split by type | Vacuums, covers, locks, sensors and new Matter types need isolating | A special type that fails does not drag basic lighting down with it, and test evidence stays clear | More bridges, more ports and more commissioning to manage |
| Split by area | A large home, or a small office, needs to limit both blast radius and controller scale | Naming and ownership stay clear, and each bridge carries fewer endpoints | Devices that span areas, and room naming, need one consistent rule across bridges |
Do not put the same entity on a shared bridge and a controller-specific bridge at once, unless you are testing that deliberately and can live with duplicate cards and races. If you must duplicate it, verify with one device that is not safety-critical first, and name the source of each card clearly.
Four triggers for splitting a bridge
- Type trigger — the same Matter device type is partial or unknown on one controller, and it slows down or blocks discovery for the whole bridge.
- Semantics trigger — you need a workaround, such as cover-as-light or a simplified vacuum on/off, that changes the UI on other controllers too.
- Scale trigger — you are close to a controller's practical capacity, or onboarding, restart and subscription delays are climbing noticeably. Alexa's roughly
80–100is a planning signal, so split before it becomes a problem, not after. - Risk trigger — locks, security devices, experimental plugins and new Matter types should not share a blast radius with your core lighting.
Before you split, back up and export a configuration summary that contains no secrets. Exclude the target entities from the original bridge's filter, then settle how the old accessories will be handled on the controller side. Do not delete, reset, create a new bridge and join five fabrics all in one sitting — every stage needs a fallback point you can actually verify.
flowchart TD A["A shared core bridge,
already in production"] --> B{"Type trigger: is one Matter
type partial or unknown,
and slowing the whole bridge?"} B -->|"yes"| S["Split off a
dedicated bridge"] B -->|"no"| C{"Semantics trigger: does a
workaround change the UI
on other controllers?"} C -->|"yes"| S C -->|"no"| D{"Scale trigger: getting close
to a controller's practical
device ceiling?"} D -->|"yes"| S D -->|"no"| E{"Risk trigger: locks, security,
or an experimental plugin
on this bridge?"} E -->|"yes"| S E -->|"no"| K["Keep it on the
shared bridge"]
The pitfalls that actually happen across five controllers
| Symptom | Likely cause | What to do |
|---|---|---|
| The bridge works in Apple Home but Aqara Home cannot see it | Nothing wrong with Apple's fabric; the Aqara combination is genuinely unproven | Keep the Apple fabric and do not reset. Mark the Aqara combination unknown, cross-check the Aqara hub model, region and firmware, then try a dedicated bridge holding one basic light and nothing else |
| SmartThings commissions successfully but very little works | The device type is only partially presented by SmartThings' driver | Mark that device type partial and compare SmartThings' official Matter support against the UI and driver you actually got. Record commands and state separately rather than claiming overall support |
| An Alexa workaround makes the Apple Home types look wrong | A semantics conflict on a bridge shared between the two | Roll that flag back and test it on an Alexa-only bridge instead. Do not delete the Apple fabric to accommodate Alexa |
| Google Home has control, Apple Home only shows state | A cluster gap between the two controllers on that device type | Mark the command layer partial and cross-check which clusters Apple Home supports, and on which platform version. Compare against a basic device of the same type first; do not change every mapping at once |
| Discovery slows across the whole bridge after a new type is added | The new special type is dragging down the shared bridge's endpoint complexity | Roll back the last batch of filter and mapping changes, then split the special type off onto its own bridge. Check controller scale and endpoint complexity; do not use a reset to wipe out your evidence |
| You cannot tell whether to write no or unknown | The distinction is being lost under pressure to have an answer | Write unknown when there is no explicit official exclusion and no controlled failure evidence. One failure in your environment usually only proves it failed there — that is not enough to declare a blanket no for the whole controller |
The Aqara hub supports Matter — does that mean full support for a Matter Hub bridge?
If the SmartThings site lists a device type, can I mark it yes?
Will multi-fabric make all five controllers show exactly the same thing?
Is a yes in the matrix a product guarantee?
How do I record an experimental feature that lives inside Stable?
Pinned-version and official controller sources
Every mark in this chapter traces back to one of the sources below, pinned at the same commit v2.0.55 uses. Official pages change as each ecosystem ships new versions; wherever the pinned upstream and a controller's own type list cannot jointly confirm something, this chapter leaves it partial or unknown rather than guessing forward.
- v2.0.55 Controller Compatibility Matrix
- Home Assistant domains supported in v2.0.55
- v2.0.55 bridge flags and controller-specific settings
- Pinned Stable add-on configuration
- Apple: Pair and manage Matter accessories
- Google: Supported Matter device types
- Amazon Alexa: Matter support
- Aqara's official Matter documentation
- SmartThings' official Matter documentation
Where to go from here
Five controllers now know how to read your bridge. The next question is whether the bridge itself is staying well.
Part 11 opens the Operations part of this guide: day-to-day bridge operations — restarting, updating and recovering a bridge without breaking every fabric attached to it — and then the health and topology views that tell you whether your Matter network is actually behaving, before a controller ever has to tell you something is wrong.
Open the full guidePart 10 of the Home Assistant Matter Hub Complete Guide series on the Apporo blog.
Adapted from the Home Assistant Matter Hub Complete Guide, produced by WoowTech and released under CC BY 4.0. This adaptation is published by Apporo under the same licence.
Light · Air · Water · Control · apporo