Skip to Content

What Matter Hub actually does, and which direction the arrow points

one arrow, not two
Matter Hub Guide · Part 1

What Matter Hub actually does, and which direction the arrow points

Before you install anything, it helps to know what Matter Hub is actually for. This chapter sets up the vocabulary the rest of the guide leans on — bridge, endpoint, fabric, node, controller — then draws the line between Matter Hub and the Home Assistant Matter integration, because the two point in opposite directions and mixing them up is the single most common misunderstanding new readers bring to this project. It closes with the boundary between release channel, feature maturity and controller support, three facts Stable 2.0.55 keeps carefully separate.

v2.0.55
The Stable release this guide is pinned to. Alpha and Testing are separate release lines, not earlier drafts of this one
2 directions
Home Assistant entity out to an external controller is Matter Hub's job. A Matter accessory into Home Assistant is the built-in Matter integration's job — not the same direction
10 endpoints
Server Mode's ceiling: at most ten endpoints on one node, and putting several entities on a single node is called out as especially experimental
One direction, not two

Start with the traffic, not the product

Home Assistant Matter Hub — Matter Hub from here on — takes entities you already have inside Home Assistant and turns them into Matter devices, then offers those devices to Apple Home, Google Home, Amazon Alexa or any other Matter-compatible controller. It fits one specific situation: the devices are already in Home Assistant, and you also want to control them from another home interface or voice assistant. Say a living-room light is managed today by the Home Assistant Zigbee integration, and you would like to switch it from an iPhone's Home app without opening Home Assistant at all. Matter Hub sits in the middle and translates state and commands both ways.

The direction is the whole point, and it is worth stating plainly because it is easy to assume the opposite: Matter Hub is not a general-purpose controller for adding off-the-shelf Matter accessories to Home Assistant, and it does not replace the Home Assistant automation engine, its device integrations, or the official Matter integration. What it does is emulate one or more Matter bridges and expose the Home Assistant entities that pass your filter. When an external controller sends a command to a Matter endpoint, Matter Hub calls the matching Home Assistant action. When a Home Assistant state changes, Matter Hub syncs the endpoint state to match.

In plain terms

Think of it as an interpreter standing between two people at a meeting who do not share a language. One side speaks in Home Assistant's terms — entities, states, service calls. The other speaks in Matter's terms — endpoints, clusters, commands. The interpreter repeats what one side says in the other side's words. It does not decide what gets said, and it does not run the meeting. If you want to bring a third person into the room who only speaks Matter, that is a different job — onboarding, not interpreting — and it belongs to a different part of Home Assistant.

Your setupA living-room light is already managed by the Home Assistant Zigbee integration, and you want to turn it on from an iPhone without opening Home Assistant. That direction — a Home Assistant entity going out to an external controller — is what Matter Hub is for.
Not thisA Matter light bulb straight out of the box, and you want Home Assistant itself to control it. That direction — a Matter accessory coming into Home Assistant — is the built-in Home Assistant Matter integration's job, not Matter Hub's.
In one line: if the data flow is “Home Assistant entity → external Matter controller,” consider Matter Hub. If it is “Matter accessory → Home Assistant,” look at the official Home Assistant Matter integration first.

By the end of this chapter you should be able to draw your own data flow, pick a deployment shape that actually fits it, and stop collapsing three separate facts — release channel, feature maturity and controller support — into one impression of “does it work.”

From HA state to endpoint

Five parts, and a sync that runs in both directions

The Stable 2.0.55 backend is built from a small number of parts, each with one job. HomeAssistantClient connects over the Home Assistant WebSocket API and reads states, entities and the device registry. HomeAssistantActions turns an external control command into a Home Assistant service call. BridgeService handles creating, updating, starting, stopping and refreshing a bridge. BridgeStorage keeps the bridge configuration and its metadata. BridgeEndpointManager creates, updates or removes Matter endpoints according to your filter and your entity mapping — the two subjects Chapters 5 and 7 cover in depth.

LayerWhat Stable 2.0.55 is responsible forWhat you see in the UI
Home AssistantHolds the original entities, states, areas, labels and callable actionsEntity names, states and device capabilities are the mapping input
The Matter Hub backendFilters entities, maps device types, keeps state in sync and manages the bridge lifecycleThe Bridge, Devices, Health and Settings pages
Matter Server NodeEach standard bridge is a ServerNode plus an aggregator endpoint that carries many device endpointsAn external controller commissions one bridge and sees the devices under it
External controllerCompletes commissioning, stores the fabric relationship, and presents the device types it supportsThe controls inside Apple Home, Google Home, Alexa and similar apps
flowchart LR
  A["Home Assistant
entities and states"] --> B["Matter Hub backend:
filter, map, sync,
manage the bridge"] B --> C["Matter Server Node:
bridge + aggregator +
device endpoints"] C --> D["External controller:
Apple Home, Google Home,
Amazon Alexa..."]
One straight line, four boxesNothing branches in this picture on the way out. The backend box is the only place any translation happens — the Home Assistant box on the left and the controller box on the right never talk to each other directly.

State sync then runs in both directions across that same line. In one direction, a state changes in Home Assistant, Matter Hub updates the matching Behavior and cluster attributes, and a Matter subscription carries the change out to the controller. In the other, the controller writes an attribute or sends a command, and Matter Hub turns it into a Home Assistant action — the real device is still managed by its original Home Assistant integration, not by Matter Hub itself.

sequenceDiagram
  participant H as Home Assistant
  participant M as Matter Hub
  participant C as External controller
  H->>M: a tracked entity's state changes
  M->>M: update the matching cluster attributes
  M->>C: the Matter subscription carries the change out
  C->>M: controller writes an attribute or sends a command
  M->>H: Matter Hub calls the matching HA service
The same two boxes, both directionsMatter Hub sits in the middle of every arrow in this diagram; none of the three participants skips it. If the Home Assistant connection drops, the bottom arrow has nowhere reliable to land, even while the bridge process is still running.
Do not draw the responsibility line wrong. Rooms, groups, scenes and routines inside an external controller are managed by that controller. Areas and automations inside Home Assistant are still managed by Home Assistant. Matter Hub passes device information along; it does not guarantee that every vendor uses the same fields or builds the same rooms automatically on its own side.
Bridge, endpoint, fabric

Ten words the rest of this guide assumes you know

Agree on these before you read any further chapter. Every one of them shows up again, usually without a reminder of what it means.

TermWhat it means in this guideHome example
ControllerThe controlling end that commissions, manages and operates Matter nodes; the vendor decides how much it supportsThe home hub and its phone app, taken together
CommissionerThe role that runs the first join into a fabric; usually the controller app itselfYou tap “add accessory” in a phone app
NodeOne node on the Matter network, with its own identity and its own network servicesOne standard bridge is a single node to the controller
BridgeA Matter node that uses an aggregator to gather several bridged endpoints; also the main unit of configuration in Matter HubPut the office lights and plugs on one bridge
EndpointA numbered unit inside a node that stands for one device function; one HA entity may map to a single endpoint or to a composed oneA dimmable light becomes a light endpoint
Device TypeDefines whether an endpoint is a light, a plug, a lock, a sensor and so on, and which clusters it must carryThe same HA switch can appear as a plug, or as another supported type, depending on the mapping
ClusterA group of related attributes, commands and events, such as On/Off and Level ControlThe controller switches a light through the On/Off cluster
FabricA Matter administrative domain formed by a shared trust root and operational credentialsThe same bridge can join several controller fabrics
AggregatorThe special endpoint on a standard bridge that gathers the bridged devices under itThe controller finds several child devices under the bridge's root node
Entity MappingThe rule that turns an HA entity's state, capabilities and actions into a Matter device type and clusterHA light brightness maps to the Matter Level Control cluster
In plain terms

A bridge is an apartment building. The building has one street address — that is the node identity a controller commissions. The lobby directory that lists every unit is the aggregator. Each apartment is an endpoint, with its own number and its own function. And a fabric is the set of people who hold a key to the front door — several management companies can each hold their own key at the same time, which is exactly what letting one bridge join several controller fabrics means.

“One Home Assistant entity equals one physical device” is not a guarantee. Some sensors split temperature, humidity and battery level into several separate entities, and Stable 2.0.55 can compose them back into a single endpoint — the subject of Chapter 8. The other way round, one complex entity may need several endpoints before it can show all of its functions to a controller. So plan your scale from the endpoint count after mapping, not from the raw Home Assistant device count.

Matter Hub vs HA Matter

Matter Hub and the Home Assistant Matter integration point opposite ways

QuestionMatter HubHome Assistant Matter integration
Main directionExposes HA entities to external Matter controllersOnboards Matter accessories into Home Assistant
Main roleMatter bridge / Server NodeThe Matter controller integration on the Home Assistant side
Is it a general-purpose controllerNo; it does not onboard or fully manage arbitrary Matter accessoriesThe official path for managing Matter accessories in Home Assistant
Where the original state comes fromEntities you already have in Home AssistantMatter devices that have already been onboarded
Common useMake lights, plugs or sensors that live in HA appear in an external ecosystemMake native Matter lights or sensors appear inside HA
flowchart LR
  subgraph MH ["Matter Hub's direction"]
    A1["HA entity"] --> A2["Matter Hub"] --> A3["External controller"]
  end
  subgraph HM ["HA Matter integration's direction"]
    B1["Matter accessory"] --> B2["HA Matter integration"] --> B3["Home Assistant"]
  end
Two arrows, opposite endsThe top row starts inside Home Assistant and ends outside it. The bottom row starts outside Home Assistant and ends inside it. Nothing in this chapter uses one to stand in for the other — they can run at the same time, but they never trade places.

The two can coexist, but avoid exposing the same entity through both paths at once — that creates duplicate devices and command loops that are hard to trace back to their source. There is one chaining case worth naming: if a native Matter accessory is first onboarded by the Home Assistant Matter integration and then exposed by Matter Hub to a second controller, what the outside sees is an endpoint remapped by Matter Hub — not Matter Hub taking over the original accessory's fabric relationship. That kind of bridging can be useful, but its compatibility rests on three layers stacked on top of each other: the HA entity's capabilities, the Matter Hub mapping, and the target controller. “The original device supports Matter” is not, on its own, enough to conclude that every control survives the trip.

Planning tip. Start by listing the authoritative state source for each device and the external controllers that have to show it. Keep exactly one clear exposure path per device, and later troubleshooting gets a great deal easier.
Channel, maturity, support

Three facts that do not guarantee each other

This guide is pinned to Stable v2.0.55, commit 6c8e8403d488fb06d2ac02d9199b92a0b8e8dccf. Keep three separate facts apart when you read anything about a feature: which release channel it ships in, how mature that feature actually is, and whether your particular controller recognizes it. None of the three tells you the other two.

Kind of factHow to read it for Stable 2.0.55
Stable channelThe release line recommended for most users; every procedure in this guide follows this pinned version
Alpha channelUpstream says it is level with Stable at this point in time, but it remains a separate release line — that is no reason to write future Alpha behavior into Stable
Testing channelHighly unstable, and meant for development testing; its architecture and behavior are out of scope for this guide
Experimental inside StableServer Mode with several entities, the Camera Plugin, the Security Plugin, and some Matter 1.4 device types all exist in Stable, and all of them still need to be treated as experimental or verified against your own target controller
Controller supportApple, Google, Alexa, Aqara and SmartThings each support different device types; unknown is not the same as unsupported, and “not listed” is not proof it will fail
In plain terms

A passport, a visa and a border agent are three different facts, and mixing them up gets travelers turned around at the gate. The passport's issuing country is the release channel — it tells you which line of documents this one belongs to, nothing about where you can go. The visa is maturity — provisional paperwork attached to that passport, valid for some purposes and not others. Whether the border agent on duty actually accepts it is controller support, decided on the other side, one desk at a time. A stable-looking passport does not make every visa valid, and a valid visa does not make every border agent recognize it.

A standard bridge works reliably in Stable 2.0.55, but that does not mean every mapping inside it is presented the same way by every controller. Camera has a built-in plugin in Stable, yet its maturity is still experimental: the v2.0.55 documentation limits it to the SmartThings direction specifically, and flags the media path as something still to be verified. Server Mode is in Stable too, but a multi-device node on it is explicitly experimental — a node dedicated to a single robot vacuum is the more conservative way to use it.

Sketch it before you install

Six shapes to choose from, and a decision worth drawing first

ShapeWho it suitsMain limits and responsibilities
Home Assistant OS Add-onMost readers who run HA OS and want Supervisor to manage the lifecycleHA OS only; still needs a correct LAN, IPv6 and mDNS — see Chapter 2 for the pinned install details
Docker, host networkReaders who already manage their own containers, backups and updatesYou persist /data, inject the HA URL and token correctly, and maintain host networking and IPv6 yourself
Global npmAdvanced readers who can maintain a Node.js runtime, service management and a data directoryYou handle the long-running service, restarts, permissions, version pinning and backups yourself; not the default recommendation for most readers
Several standard bridgesYou want to split devices by room, by domain, or by controller-specific limitsEach bridge needs its own port; more bridges, endpoints and sync work add memory and network load
Multi-FabricYou want the same bridge to join several controllers at onceDoes not mean every controller supports the same device types; plan managing and removing fabrics separately
Server ModeA specific device that has to appear standalone, such as a vacuum under one particular controllerExperimental limits still apply inside Stable: at most ten endpoints per node, and several entities on one node is especially experimental

Matter itself depends on IPv6, mDNS and UDP. A page that loads in your browser only proves HTTP is reachable — it says nothing about whether a controller can discover or operate the Matter node behind it. Any of these can break commissioning, or turn into a “No Response” later: a VLAN between the host and the controller, AP or client isolation on the Wi-Fi, the wrong mDNS interface selected, a Docker-internal network interface standing in for the real one, or an IPv6 address with no return route. Before you deploy anything, sketch the actual network path between the Matter Hub host and the controller or home hub.

Scale is not a fixed number either. The endpoint count, how complex the device types are, the controller's own implementation, and the host's resources all affect stability together. The upstream project suggests considering a split once a bridge grows large; the low-resource guidance recommends planning conservatively from RAM and entity count. Treat both as operating guidance, not as a hard protocol ceiling that fails the instant you cross it.

flowchart TD
  A["What do you actually
want to expose?"] -->|"HA entities, out to
an external controller"| B["Good fit.
Start with one small
standard bridge"] A -->|"Matter accessories,
into Home Assistant"| C["Wrong tool.
Use the official HA
Matter integration instead"]
The same fork as the beginning of this chapterOnly one of the two branches leads anywhere inside this guide. If you land on the right-hand box, stop building bridges here and go read the Home Assistant Matter integration documentation instead.
  1. Step 1

    List the authoritative sources

    On paper, or in a document that holds no secrets, list the HA domains, areas and purposes you want to expose. Write down categories and rough counts only; do not copy access tokens, pairing data or on-site network identifiers into it.

  2. Step 2

    Mark the target controllers, and what is still unverified

    For each group of devices, mark Apple Home, Google Home, Alexa or another target, and record “does this controller support the device type I need” as a field still to be checked. Do not fill unknown in as supported.

  3. Step 3

    Confirm the direction, then set one small boundary

    Confirm that what you need really is exposure out of Home Assistant. Then plan one small standard bridge, with easy-to-verify, non-sensitive devices on it first — not everything you own at once.

  4. Step 4

    Define what “working” means before you start

    Split success into four checkpoints: the dashboard shows Home Assistant connected, the bridge is running, the endpoint count looks right, and the controller can read and write one test device. A failure then points you at one layer, instead of sending you straight to a reset.

Good fit: a stable set of HA devices at home, where a handful of everyday lights, plugs, covers or sensors should appear in an external controller too; a small office that wants one bridge per area while HA stays the single center for automation and state; the same standard bridge joining several controller fabrics, accepted with the understanding that each controller will present it a little differently.

Pilot it first: anything leaning on newer Matter 1.4 types, complex audio and video, the experimental Camera or Security plugins, Server Mode with several entities on one node, or a case that needs different controllers to treat one complex endpoint identically. All of these sit inside the Stable channel, but their maturity label is separate — verify them against non-critical devices before you depend on them.

Do not put this on Matter Hub: the full duties of a general-purpose Matter controller, port forwarding across the open internet, enterprise identity governance, multi-account RBAC or SSO, or the only control path to a safety-critical device. The HTTP Basic Auth Matter Hub offers is one optional, shared set of credentials — not a complete multi-user permission system.

In plain terms

HTTP Basic Auth here is a doorbell code, not a keycard system. One shared code either lets a visitor in or it does not, and it has no memory of who used it or when. A keycard system is a different thing entirely: it tells you who came in, and it can be set to open some doors and not others. If your plan needs to know who did what, or to limit different people to different rooms, a shared doorbell code was never going to be the right fixture.

Safety boundary. Pairing data, long-lived access tokens and Matter identity data are all sensitive. In tutorials, tickets, screenshots and repositories, use explicit placeholders only — never post live values — and do not make a factory reset your first troubleshooting step; it changes commissioning and every relationship you have with your controllers.
Questions people ask

Before you install anything

Is Matter Hub a Matter controller?
Not a general-purpose one. Stable 2.0.55's main role is a Matter bridge / Server Node that exposes Home Assistant entities to external controllers, not a tool for onboarding arbitrary Matter accessories.
If I use Matter Hub, do I still need the Home Assistant Matter integration?
They point in different directions. Use the official Matter integration to onboard native Matter accessories into HA; use Matter Hub to expose entities you already have in HA. Whether you need both depends entirely on your data flow.
Is every feature in Stable 2.0.55 production-ready?
No. Release channel and maturity have to be kept apart. Server Mode with several entities, the Camera and Security plugins, and some Matter 1.4 device types still carry experimental or controller-verification limits, even though all of them ship inside the Stable channel.
Can one bridge join several controllers?
Matter supports multi-fabric, and Matter Hub provides the flow for it, but each controller still supports a different set of device types and clusters — sharing a bridge does not make them present the devices the same way.
Should I split bridges by room or by device type?
There is no single right answer. Splitting by area is easy to reason about; splitting by domain makes it easy to apply the same mapping consistently; a controller-specific split isolates workarounds to just the controller that needs them. Verify with one small bridge first, then adjust the split for resources and compatibility as you learn where the friction actually is.
Next

Where to go from here

now put it on a host

You have the vocabulary and the direction. Chapter 2 gives you something running.

Three install methods exist for Stable 2.0.55 — the Home Assistant OS add-on, Docker, and a global npm package — and none of them is a “more complete” upgrade to the others. Chapter 2 walks through choosing one, the network and storage prerequisites they all share, and the backup-and-upgrade order that keeps a rollback possible.

Open the full guide

Part 1 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

Back up the identity, verify it works, then fix what breaks without resetting anything