Skip to Content

Hand the same bridge to Google Home, then to Alexa

same bridge, two rulebooks
Matter Hub Guide · Part 9

Hand the same bridge to Google Home, then to Alexa

Part 8 walked one bridge into Apple Home. This part walks a bridge into Google Home, and a second one — or the same one, carefully — into Amazon Alexa. Both are Matter controllers, not copies of your Home Assistant account, and each one comes with its own quirks: Google Home reads a template and a profile that sound like the same setting and are not, and Alexa will only finish its very first commissioning on one specific port. Neither rule is optional, and neither is obvious until you have hit it once.

5540
The UDP port a Matter Hub bridge must already be running on before Alexa can complete its first commissioning. On any other port, the join rolls back
80–100
Bridged devices upstream gives as a practical planning range for one Alexa controller — not a Matter limit, and not a promise
4
Alexa-only compatibility flags covered here. Each is a workaround for one Alexa quirk, not an upgrade for every controller
Two controllers, one bridge

A controller builds its own devices. It does not import your Home Assistant account

Home Assistant Matter Hub maps the entities you choose into a Matter bridge. What happens next depends entirely on who commissions that bridge. Google Home takes it into Google's Matter fabric and builds Google devices out of the Matter device types and clusters the bridge declares. Alexa does the same for its own fabric. Neither one understands your Home Assistant Dashboard, your areas, or your automations — they only ever see what the bridge exposes as Matter.

That is why the word "sync" causes so much confusion in both apps. A Matter subscription is the mechanism that keeps a device's on/off state, its brightness, its sensor reading flowing between Home Assistant and the controller, in both directions, for as long as the fabric exists. The room a device sits in, the name it is given, and the voice alias it answers to are a completely different kind of data — they live inside that controller's own app, and nothing in the Matter subscription carries them back to Home Assistant.

In plain terms

It is the difference between a shared thermostat reading and a nickname you gave someone in your own phone. The reading updates on its own, on both ends, the moment it changes. The nickname is something you typed into your phone; the other person's phone never sees it, and saying their name out loud again does not make their phone learn it either. Google Home's rooms and display names, and Alexa's rooms and Alexa-side names, are nicknames. The HA state on the device is the shared reading.

Google HomeShips a bridge template called Google Home Optimized and, separately, a controller profile called Google Home. They are not the same setting, and picking one does not pick the other — the concept section below spells out why that trips people up.
Amazon AlexaOnly completes its very first commissioning against a bridge already running on port 5540. Try it on any other port and the join itself rolls back partway through, which is the single most common reason a first Alexa attempt fails for no visible reason.

This part covers Google Home and Alexa back to back, the same order the upstream documentation follows for Stable 2.0.55. Part 8 covered Apple Home; Part 10 lines all three controllers up side by side once you have been through each one individually.

Read every version claim in three layers, not one. Matter Hub's release channel, the maturity of a given feature inside that channel, and what Google or Amazon actually publish as supported are three separate facts. This chapter is pinned to Matter Hub Stable v2.0.55 and the matching Stable add-on. It does not describe Alpha, Testing, or a newer callback architecture, and a feature flag existing in Matter Hub is never proof that Google or Amazon certifies the result.
Before you open either app

The checklist that saves you a wasted commissioning window

Both apps fail in the same handful of ways when the network underneath them is not ready. Go through the relevant table before you open a pairing screen, not after the first attempt times out.

Google Home checklist

PrerequisiteHow to checkRisk if you skip it
Google Home appUpdated, signed in to the Google account you intend to use, and you can add a device to the target home.You join the wrong home, or you lack admin rights on it.
Google hub / Thread border routerCross-check Google's own supported-hub list; the Matter Hub bridge itself runs over your local network and is not a Thread end device.Remote access and the long-term connection turn unstable, or you diagnose a Thread problem on a plain Ethernet or Wi-Fi bridge by mistake.
IPv6 and mDNSYour phone, the Google hub, and Matter Hub can reach each other over local IPv6, and multicast discovery works between them.Nothing is ever found, or the join times out, or the device goes offline right after.
Bridge contentsThe bridge is running, and Devices plus the filter preview hold only the entities you actually expect.A successful join drags in a pile of unsupported or duplicate devices along with the ones you wanted.
Persistence backupThe data path of the Stable add-on or container is backed up and survives a restart.A lost identity leaves Google Home holding both an old and a new copy of the same bridge.

Alexa checklist

PrerequisiteRequired checkIf it fails
Alexa app / accountUpdated, signed in to the target Amazon account, and you can manage the right Home.Fix the account and the home first. Do not open a commissioning window yet.
Compatible EchoConfirmed against Amazon's own Matter documentation that this Echo can act as a Matter controller.Do not assume support just because it is an Alexa device that talks.
Port of the first bridgeThe bridge you plan to hand to Alexa first is running on 5540, and nothing else holds that port.Stop creating a second bridge to work around it. Work out what holds 5540 and which bridge takes priority instead.
Local networkThe Echo, your phone, and Matter Hub can discover each other over local IPv6 and mDNS.Fix the VLAN, multicast, and network interfaces. Do not set up port forwarding as a substitute.
Scale and contentsStart with a small number of basic types, well under the practical range, previewed in Devices and the filter.Split the bridge or exclude unsupported types rather than exposing all of Home Assistant in one attempt.
IPv6 and mDNS are the one line item both tables share. Neither Google Home nor Alexa discovers a Matter Hub bridge without local multicast service discovery working between the phone, the controller's hub, and the machine Matter Hub runs on. If you only fix one thing before your first attempt with either ecosystem, fix that.
Commissioning to Google Home

A template, a profile, and a decision that is still made by five other things

Stable 2.0.55 gives you two Google-flavored settings that look interchangeable and are not. Google Home Optimized is a bridge template: it turns on including all entities, plus autoForceSync, battery mapping, humidity mapping, and pressure mapping. Google Home is a controller profile: the same set of flags, plus autoComposedDevices. You can pick the template on a new bridge and the profile at commissioning time independently — choosing one never chooses the other for you.

flowchart TD
  T["Google Home Optimized
a bridge template"] --> F["What Google Home
actually renders"] P["Google Home
a controller profile"] --> F Filt["The filter"] --> F Map["Entity Mapping"] --> F Types["Matter device types
Google publishes as supported"] --> F
Five arrows, one resultFive separate boxes feed the single result box on the right. The template and the profile are only two of the five; the filter, the entity mapping, and Google's own published device-type support are the other three. Turning on the template alone never guarantees the profile is also active, and neither of them alone decides what shows up.

Neither setting is a Google certification and neither is permanent. Both are starting points you can revisit.

  1. Step 1

    Choose the template and the profile separately

    Give a new bridge the Google Home Optimized template, then pick the Google Home profile on its own at the controller step. Read the flags each one turns on before you rely on the name. Do not infer full compatibility from either label alone, and do not assume selecting one selects the other.

  2. Step 2

    Narrow the filter

    Start with a small number of basic lights, switches, or plugs. Exclude unavailable entities, diagnostic entities, and any type you have not personally verified yet.

  3. Step 3

    Preview the mapping

    Check the Matter device type, the name, and the failure reason for each entity, one at a time, in Entity Mapping. A template does not turn a device type Google cannot render yet into a usable card.

  4. Step 4

    Save, start, and set your baseline before touching Google Home

    Start the bridge and confirm the HA state is correct inside Matter Hub itself first. Only then move to Google Home commissioning. Once it is onboarded, avoid flipping several profiles or flags at once — you will not know which change did what.

  5. Step 5

    Freeze the configuration for the session

    Use Bridges and Devices in Matter Hub to confirm the target bridge is running with a short entity list. While the pairing window is open, leave the port, network interface, filters, name, and mappings untouched.

  6. Step 6

    Scan, add, and stay in the foreground

    Open the bridge's pairing area and let the Google Home app scan the local QR code directly — never photograph it, forward it, or write down the manual pairing data. In the app, start Add device, choose Matter-enabled device or whatever your version calls that entry, confirm you are joining the target home, and keep the phone on the local network with no VPN change until it finishes. Do not restart the Google hub, Matter Hub, or the router mid-flow. If it times out, check first whether a fabric was created anyway before you try again.

  7. Step 7

    Assign a room and name, then verify both directions

    Follow the app's prompts to assign the first devices to a room; tidy the rest room by room afterward if there are many. Use short, unique names that do not collide with a room name or with a name you already used in another ecosystem. Then operate one low-risk device from Google Home and watch HA update, operate it from HA and watch Google Home update. If control works but the state stays stuck on an old value, look at the subscription rather than commissioning again. Only expand once it survives a Matter Hub restart and a day of normal use.

Success baseline before you build anything bigger. Start with one basic light or switch. Confirm Google Home can show it, control it, and receive HA state changes, and that an ordinary Matter Hub restart never quietly adds a second copy of it. That baseline is worth more than a fast, unverified bulk import.

Rooms, names, and sync belong to Google, not to HA

Once a device is commissioned, five kinds of data behave differently, and mixing them up is the single most common source of "why didn't that sync" questions.

DataWhere it is managedCross-system sync?
HA entity stateHome Assistant, reported through the Matter Hub mapping and the Matter subscription.Verify it flows both ways — but this never copies HA history or the Dashboard itself.
Google display nameThe Google Home app.Not guaranteed to write back to HA, and it does not sync to Apple Home or Alexa automatically.
Google roomInside that Google home.Not the same object as an HA area; adding a second fabric never copies rooms across.
Voice aliasName resolution inside Google Assistant / Home.Avoid homophones and duplicates by hand; do not try to fix this by editing an HA entity_id.
Adding or removing an endpointThe Matter Hub bridge structure.Controllers can react differently to a dynamic bridge change. Test before you make a bulk edit.

Saying "Sync my devices" to the Google ecosystem is a cloud-account-link command, and device discovery on a Matter fabric is a different mechanism entirely. If a new endpoint refuses to appear, check the bridge structure and how the controller handles a dynamic change to bridged endpoints before you repeat that voice command a third time.

Use Google's own device-type list to set your expectations

Google's official documentation of which Matter device types it supports is the first layer of evidence for what its controller can actually do. A type that is not on that list, that only exists in a newer Matter specification, or that needs a particular cluster should be recorded as unknown or partial — never as supported just because Matter Hub is able to map it.

  • Rooms are not assigned automatically. Stable 2.0.55 does send the HA area name through the FixedLabel cluster, but Google Home does not currently read it to assign a room. You still assign rooms by hand in the app.
  • Standalone ModeSelect has no control UI. Google's published device-type list has no entry for a standalone ModeSelect, so the app shows generic information with no options control. The Modes feature inside the cloud Google Assistant is a separate, non-Matter path.
  • Covers cannot be a Google Home automation action. WindowCovering gives basic control, but the pinned upstream documentation records that no action is available when you pick an action in Google's own Automation feature. Use an HA automation or a voice routine instead.
  • A robot vacuum is only partly supported. Basic start and stop work; room selection and cleaning modes vary by Google version. A card appearing is not proof of full support.
  • Newer Matter 1.4 types — water heater, energy override, and similar — may be marked no or unknown on Google's list. If Matter Hub's own side marks them experimental, disclose that separately rather than folding the two facts into one.
Record evidence in one consistent format. For every device type, note discovery, the card itself, commands, state, advanced features, and recovery after a restart, each as its own line. Where you have no official documentation and no hands-on test, write "unknown" rather than filling the gap with a guess.
Alexa's port 5540 rule

Why the first Alexa commissioning has to land on port 5540

The pinned v2.0.55 documentation states this plainly: after Alexa completes its AddNOC step against a bridge on any other port, the commissioning rolls back anyway. Only a bridge currently running on 5540 can finish Alexa's first commissioning. In practice, that means keeping one core Alexa bridge permanently on UDP 5540 and onboarding a small, deliberate set of devices to it. Other controllers are free to join bridges on other ports, or to join that same core bridge as an additional fabric later.

flowchart TD
  A["The bridge you are about
to hand to Alexa"] --> B{"Is this the first bridge
Alexa will ever commission?"} B -->|"no, a fabric already exists"| C["Alexa can join it as an
additional fabric, on any port"] B -->|"yes, this is the first"| D{"Is it running on
port 5540 right now?"} D -->|"yes"| E["AddNOC completes.
Commissioning succeeds"] D -->|"no"| F["AddNOC rolls back.
Move the core bridge to 5540 first"]
Three endings, and only one of them is a failureThe chain forks twice. Answering that a fabric already exists ends immediately at "join as an additional fabric." Answering that this is the first bridge leads into the port question, which itself ends at either "commissioning succeeds" or "AddNOC rolls back." Reaching the rollback needs both "yes, first bridge" and "not on 5540" together — neither answer alone gets you there.

Keep the three rules apart in your head, because it is easy to blur them into one vague sense that "Alexa is fussy." Port 5540 solves first-commissioning compatibility, nothing else. The practical device count in the next section is a planning range, not a port rule. And the compatibility flags after that fix specific UI and command differences — they do not touch the port at all. Do not let one of the three explain a failure that actually belongs to another.

  • 5540 is a local Matter service port. Never forward it to the internet, and never expose it publicly to "help" Alexa find the bridge from outside.
  • If two bridges on the same host both want 5540, do not let them fight over it. Decide up front which one is the core Alexa bridge.
  • Changing the port after commissioning adds real risk. Back up first, assess every existing fabric, and pick a maintenance window — do not swap ports casually to run a quick test.
  • Treat a "not on 5540" warning as an Alexa-specific compatibility risk first. It does not mean your other controllers are about to fail too.
Do not. Do not set up public port forwarding, share the pairing QR code outside your household, or expose the local admin interface just so Alexa can "find" the bridge from somewhere else. Commissioning belongs on a trusted local network, full stop, for every controller in this series — Alexa's port rule does not change that boundary, it just makes the local-network requirement easier to trip over by accident.
In plain terms

It is the difference between a delivery that only accepts a package at the front door, and one that will take it round the back too once you already have an account with them. The very first parcel has to go through the front door — port 5540 — or the courier turns around. Once that first delivery has succeeded and you are a known customer, later parcels through other doors are fine. Trying the back door on delivery one just gets the whole thing sent back.

Alexa scale and flags

About 80–100 devices, and four flags built for Alexa's blind spots

Where the upstream documentation gives about 80–100 bridged devices as practical controller-scale guidance for Alexa, read it as a planning range. It is not a guaranteed figure, not an exact hard limit, and not the theoretical maximum number of endpoints Matter Hub itself can build. Real capacity depends on the Echo model and its software, how complex each endpoint is, the number of clusters, how many subscriptions are active, network quality, and whatever else already lives in that same Alexa home.

Scale stageApproachWhat to watch
BaselineStart with a small number of basic lights and switches.Commissioning time, how complete discovery is, and control-and-state latency.
Expand batch by batchAdd a limited number of same-kind endpoints per batch.Whether every one appears in the Alexa app, whether voice names collide, and whether subscriptions stay stable.
Close to the practical rangePlan the bridge split well before you reach the point where things break.Echo resources, recovery after a restart, and whether one error drags the rest down with it.
Past the rangeDo not cite the upstream figure as a promise. Split bridges by area or type and verify each one on its own.A multi-bridge, multi-port strategy still has to be tested against Alexa itself, not assumed to work.

Read the device count as the number of bridged devices and endpoints Alexa actually builds — not a straight conversion from your Home Assistant entity count. A single composed device can carry several endpoints, and some HA entities will not map to Matter at all. When you write results down for your own records, keep counts and types only. Never write down an internal identifier.

Four flags, each one an Alexa-specific workaround

FlagIntended behavior in Stable 2.0.55Cost / limits
Cover as dimmable lightExposes a cover that Alexa renders poorly under dimmable-light semantics instead, so on/off and percentage control work.The device type and the voice semantics stop being a curtain. Other controllers on the same bridge may also see a light, so this suits an Alexa-only bridge.
alexaPreserveBrightnessOnTurnOnKeeps a light's existing brightness when Alexa turns it on, so turning on no longer overwrites the brightness at the same time.The manifest marks it Alexa yes, Apple no, Google no. It is not a general cross-controller improvement.
vacuumOnOffGives the controller a simplified on/off control path for a robot vacuum.Not the same as full room cleaning, modes, progress, or return-to-dock. Verify Alexa support item by item.
vacuumIncludeUnnamedRoomsIncludes rooms with no usable name in the vacuum's service-area mapping.Can produce entries you cannot tell apart. Give your HA areas clean names before you turn this on.

Change one flag at a time. Keep a secret-free record of the configuration before you save, and after the restart test the Alexa app, voice control, HA state, and every other fabric on that bridge. A workaround that changes device semantics — cover-as-light most of all — suits a separate, Alexa-only bridge best. If the same bridge also serves Apple Home or Google Home, an Alexa fix can quietly break how those other controllers render the same device.

Stable does not mean Alexa supports every type it can carry. The standard bridge and the four flags above are Stable features. Server Mode, the Camera and Security plugins, and some Matter 1.4 types remain experimental inside Stable regardless. Amazon publishes its own list of supported Matter devices, and a flag existing in Matter Hub is never proof that Amazon certifies the result or that every attribute is complete.

Building and commissioning the core Alexa bridge

  1. Step 1

    Reserve 5540 and the core contents

    In Matter Hub, create or edit the bridge you will hand to Alexa first. Confirm it uses 5540 with nothing else competing for that port, and keep the filter to a small set of known basic devices.

  2. Step 2

    Run the Matter Hub preflight

    Confirm the bridge is running, that Devices shows no failed mappings, and that the underlying HA entities still respond normally. Back up the persistent data, then freeze the port, the names, and the structure for the duration of commissioning.

  3. Step 3

    Open the commissioning window

    Display this session's QR code from the target bridge. Do not screenshot it, forward it, log it, or paste manual pairing data into anything you send to Amazon support.

  4. Step 4

    Add a Matter device in the Alexa app

    Under Devices in the Alexa app, choose Add Matter device or whatever your current version calls that entry point, scan the local QR code, pick the target Home, and keep the app in the foreground.

  5. Step 5

    Let discovery finish untouched

    Once onboarding completes, let Alexa finish discovering the bridged devices on its own. Do not run Force Sync, change the filter, or restart the Echo at this point. Confirm the small baseline set has appeared before doing anything else.

  6. Step 6

    Test the app, voice, and HA state in both directions

    Operate one device from the Alexa app and one by voice, then operate one from HA and confirm Alexa updates. Record only types and results in your own notes — never an internal identifier.

  7. Step 7

    Expand in small batches, or split the bridge

    Add a few same-kind devices at a time. If you need the cover-as-light or a vacuum workaround, test it on an Alexa-only bridge first, so the semantics for your other fabrics never change underneath them.

Common pitfalls

What to check first, before you touch commissioning again

Both ecosystems fail along the same shape of diagnostic path: was the device ever mapped, is its Matter device type actually on that controller's supported list, and only then is it worth touching commissioning a second time.

flowchart TD
  A["A device you expected
is missing from the app"] --> B{"Does it appear in
Matter Hub's Devices mapping?"} B -->|"no"| C["Fix the filter or the mapping first.
The controller never even saw it"] B -->|"yes, mapping succeeded"| D{"Is that Matter device type
on the controller's own
published supported-types list?"} D -->|"not listed, or only partial"| E["Record it unknown or partial.
A Matter Hub mapping is not a promise"] D -->|"listed"| F["Compare against the practical
scale, and test it in a small batch"]
Three places this can endThe first question sends a "no" straight to fixing the mapping, which is the most common actual cause. A "yes" moves to the second question, which itself ends at one of two boxes — recording the type as unknown or partial, or moving on to a scale-and-batch test. Re-running commissioning does not appear anywhere in this diagram on purpose: none of the three endings is solved by pairing again.
ControllerSymptomWhat to do
Google HomeThe app scans but finds no device.Confirm the pairing window is still open, the bridge is running, and the phone and Google hub reach Matter Hub over IPv6/mDNS. Turn off a VPN that changes the path and retry. Never publish the pairing data anywhere.
Google HomeIt stalls at connecting or preparing the device.Keep the app in the foreground and stop making other network changes. Check whether a Google fabric already appeared in Matter Hub before you rescan — rescanning on top of an existing fabric just leaves you with duplicates.
Google HomeSome endpoints never appear.Check Devices and the filter first, then compare against Google's official supported device types. Use a basic light on the same bridge as your reference point, and test special types on their own.
Google HomeControl works, but the state lags.Compare HA against Google Home and check the session and subscription. Removing the fabric should never be your first step.
Google HomeRooms or names do not match HA.This is not a sync failure. Google's room and name are controller-side data — tidy them inside Google Home, and avoid renaming on the HA, bridge, and Google layers all at once.
Google HomeDuplicate bridges appear after a restart.Stop and do not commission again immediately. Check the persistent data and the stable identity, back up first, and only then plan a cleanup on the controller side.
AlexaA "not on 5540" warning appears.Stop the first onboarding. If no fabric exists yet, re-plan so the core bridge uses 5540. If a fabric already exists, do not swap the port outright — back up and assess the impact first.
AlexaThe app cannot find the bridge at all.Confirm the Echo actually supports Matter, the window is still open, and IPv6/mDNS works between the Echo, your phone, and Matter Hub. Never work around local discovery with public forwarding or a shared QR code.
AlexaOnly some devices are discovered.Compare Devices, the filter, and Alexa's official device-type support. Check whether you are close to the practical scale or have duplicate names, and work in batches rather than resetting everything.
AlexaA cover has no usable control.Check Alexa's native cover rendering first. If you are considering cover-as-dimmable-light, put it on an Alexa-only bridge and accept that the type becomes a light everywhere on that bridge.
AlexaBrightness jumps when a light turns on.Only enable alexaPreserveBrightnessOnTurnOn once you can reproduce Alexa overwriting brightness on turn-on. Support for this flag is Alexa yes, not a cross-platform setting.
AlexaA vacuum only has on/off, or its rooms are incomplete.Basic on/off is not full support. Cross-check the vacuum flags, your area names, and Alexa's own capabilities, recording rooms, modes, and progress separately as yes, partial, or unknown.
FAQ

The questions that come up on both ecosystems

Does the Google Home Optimized template mean Google has certified the bridge?
No. It is a Matter Hub bridge template. The Google Home controller profile is a separate setting that also turns on autoComposedDevices. Whether a device type actually renders is still decided together by the Google controller, its version, and the clusters it reads — a template name is not a certificate.
Does my Home Assistant area become a Google Home room automatically?
No. Stable 2.0.55 does send the HA area name through the FixedLabel cluster, but Google Home does not currently read it to assign a room on its own. Assign rooms by hand in the Google Home app after commissioning.
Google Home does not show a particular sensor. Can I reset it?
No. Cross-check Google's official supported types and the UI limits first, then check the mapping. A reset will not make the controller add a type it never supported; it will break the fabric instead.
Does saying "Sync my devices" repair a stuck Matter subscription?
No, treat the two as unrelated. Matter state updates depend on the session and the subscription between Matter Hub and the controller. Start from Matter Hub's own health, the HA state, and the local network, not a voice command aimed at a cloud account link.
Does Alexa commissioning have to happen on port 5540?
Per the pinned v2.0.55 documentation, yes, for the very first bridge. Only a bridge currently running on 5540 can complete Alexa's first commissioning; the safest approach is to let one core Alexa bridge hold 5540 permanently rather than switching ports often.
Is 80–100 devices a guaranteed Alexa capacity?
No. It is a practical planning range from the upstream documentation. Device complexity, the specific Echo, cluster count, network quality, and whatever else already lives in that Alexa home all change the real result.
If I turn on cover-as-dimmable-light for Alexa, does it affect Apple Home or Google Home too?
When the same bridge joins several fabrics, the other controllers can also see the device rendered as a light, because the workaround changes the underlying device semantics, not just what Alexa sees. It suits an Alexa-only bridge far better than a shared one.
Does turning on alexaPreserveBrightnessOnTurnOn help every controller?
No. The feature manifest marks this flag Alexa yes, Apple no, Google no. Turn it on only once you can reproduce the Alexa brightness problem it targets.
If Alexa shows a vacuum card, is room cleaning fully supported?
No. Verify basic start and stop, return-to-dock, modes, rooms, progress, and status separately. Mark anything you have no direct evidence for as partial or unknown rather than assuming the card implies the feature.
Does Stable mean every new Matter device type works on Google Home or Alexa?
No. Release channel, Matter Hub's own product maturity, and each controller's published support are three separate facts. Server Mode, several plugins, and some Matter 1.4 types stay experimental inside Stable regardless of which controller you point the bridge at.
Next

Where to go from here

three controllers, one table

Google Home and Alexa are commissioned. Apple Home was covered in Part 8.

Part 10 puts all three controllers side by side in one compatibility view, so you can see at a glance which device types, features, and limits belong to which ecosystem — instead of holding three separate chapters in your head at once.

Open the full guide

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

Commissioning is a relationship, not a one-time scan