From 4752c8d746bd847ca51a06c764b2b4af644c35f1 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Wed, 26 Apr 2023 14:18:16 +0200 Subject: [PATCH] Improve matter documentation (#27136) Co-authored-by: Vinalti Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Co-authored-by: Stefan Agner Co-authored-by: Franck Nijhof --- source/_integrations/matter.markdown | 273 +++++++++++------- .../matter/matter_thread_infographic.webp | Bin 0 -> 55090 bytes 2 files changed, 166 insertions(+), 107 deletions(-) create mode 100644 source/images/integrations/matter/matter_thread_infographic.webp diff --git a/source/_integrations/matter.markdown b/source/_integrations/matter.markdown index df427facef1..dcab06ce586 100644 --- a/source/_integrations/matter.markdown +++ b/source/_integrations/matter.markdown @@ -7,11 +7,11 @@ ha_category: - Lock - Sensor - Switch -ha_release: '2022.12' +ha_release: "2022.12" ha_iot_class: Local Push ha_config_flow: true ha_codeowners: - - '@home-assistant/matter' + - "@home-assistant/matter" ha_domain: matter ha_platforms: - binary_sensor @@ -23,62 +23,101 @@ ha_platforms: ha_integration_type: integration --- -The Matter integration allows you to control Matter devices on your local WiFi or Thread network. +The Matter integration allows you to control Matter devices on your local Wi-Fi or {% term Thread %} network. -Matter is [the new standard for home automation](https://en.wikipedia.org/wiki/Matter_(standard)) which has just been released. It is in the process of being adopted by the tech industry. Matter is a local protocol, device control is done without the need of any cloud. You can use a Matter compatible device with Home Assistant without having to connect to a vendor specific cloud. +
+The integration is marked BETA: Both the Matter standard itself and its implementation within Home Assistant are in a early stage. You may run into compatibility issues and/or other bugs. +
-Matter devices are available using either WiFi based communication or [Thread](/integrations/thread/), both are supported by Home Assistant. Bluetooth is used for adding new devices to your Matter network. +# What is Matter? -Home Assistant only supports control of Matter devices. Home Assistant is not a bridge itself and it cannot turn devices within Home Assistant into Matter compatible devices. +Matter is [the new standard for home automation](), which has been released recently. It is in the process of being adopted by the tech industry. Matter is a local protocol. Device control is done without the need of any cloud. From a technical perspective, you can use a Matter-compatible device with Home Assistant without connecting to a vendor-specific cloud. However, some vendors may require you to set up an account before you can enable Matter. -At this time there are only a few devices available that are compatible with the standard and some of them require you to join a beta/developer program. It is to be expected that more devices will hit the market during the 2nd quarter of 2023 and beyond. +Unlike the radio based protocols we're already familiar with in the IoT landscape, like Zigbee and Z-Wave, Matter uses standard IP-based communication. Matter is not a radio protocol, but a control protocol that runs on top of the existing network infrastructure, using your existing Wi-Fi/Ethernet routers and Thread. -

-Both the Matter standard itself and its implementation within Home Assistant are in a very early stage where only the basics are working and/or breaking changes can still happen. Using it in production is not recommended yet until it matures a bit more. -

+Home Assistant is a so-called _controller_, it can control Matter based devices. Other examples of Matter controllers are the Google Nest speakers, Apple HomePods, and a SmartThings Station. -One of the great features of Matter is the so called _Multi Fabric_ feature: you can join the same device to multiple controllers. For example: add it to Google Home, Apple Home, and Home Assistant at the same time. +## Bridge devices -For devices where Home Assistant provides a native integration (with local API), Matter may not be the best option. Matter, being a universal standard, might not have the nitty-gritty features that come with a product specific protocol. A good example is Philips Hue: the communication over Matter only provides the basic controls over lights, the official integration brings all Hue unique features like (dynamic) scenes, entertainment mode, etc. +One of the great things about Matter is that you can have both Wi-Fi and Thread based devices on the same controller. +Next to actual devices (like actors or sensors), you will also see bridges. The bridge connects the network over Ethernet or Wi-Fi and bridges multiple devices into a Matter network. A great example is the Philips Hue V2 bridge, which is a Zigbee hub and a Matter bridge. This bridge exposes all Zigbee devices already connected to the bridge as Matter devices on the network. Also, Aqara, SwitchBot, and IKEA have launched such Hub devices. -

-The Matter protocol relies on (local) IPv6 and mDNS (multicast traffic) which should be able to travel freely in your network. Matter devices (and any Thread Border routers) must be on the same LAN/VLAN as Home Assistant. Implementations like mDNS reflectors usually do more harm than good. -

+
+Home Assistant, as a Matter controller, only supports **control** of Matter devices. Home Assistant is not a bridge itself and it cannot turn existing devices within Home Assistant into Matter compatible devices. +
+ +## Thread + +Matter goes hand-in-hand with (but is not the same as) [Thread](), which is a low power Radio mesh networking techology. Much like Zigbee, but with the key difference that it is _IP-addressable_, making it the perfect companion transport for Matter. + +Thread devices become directly addressable by Matter controllers (such as Home Assistant) thanks to the use of so-called Thread Border Routers, which are in fact just devices that are both within your network and have a Thread chip builtin and thus act as a "router" between the Thread radio signal and your local network. These border routers (you will probably end up having multiple of them in your house) make sure that your Thread-based devices are reachable on your regular network and thus can be controlled with Matter. Examples of Thread Borders routers are the Apple TV 4K, HomePod (gen 2 or Mini), and the Google Nest Hub V2, so devices that you may already own. Besides that, all kind of other border routers are available, built-in to hardware appliances or software solutions based on OpenThread Border Router, such as the add-on we provide to use with the built-in Zigbee/Thread chip of the [Home Assistant Yellow](/yellow/) or the [Home Assistant SkyConnect](/skyconnect/) dongle. + +To use any Thread-based devices on a Matter controller, you need to have at least one Thread Border router device within range of the device. +More info about Thread and diagnosing Thread networks and Border routers, see the [Thread](/integrations/thread/) integration. + +
+Many devices that (will) hit the market will use Thread for radio communication and Matter as a control protocol, but this is not guaranteed. For example, Thread-based devices are available that only support Apple HomeKit or some vendor-specific communication protocol. There are also a few cases where you need to apply for a (beta) firmware update on the device to enable Matter as a communication protocol. Therefore, do not assume Matter support when you see a Thread logo when looking for devices. Please be sure to look for the *Matter* logo itself (on either Wi-Fi/Ethernet-based devices or Thread) or any other confirmation by the manufacturer that the device supports Matter. +
+ +## Bluetooth + +Most (if not all) Matter-compliant devices will also have a Bluetooth chip onboard, this is to ease commissioning (a somewhat technical term for adding a device to your controller). Bluetooth will not be used to control a device but only to pair it after unboxing or factory resetting. The Home Assistant controller uses the Home Assistant Companion app to do commissioning, so you can bring your phone close to the device you want to commission. The controller will then send your network credentials to your device over Bluetooth in the commissioning process. If that succeeds, the device will communicate over its native interface, meaning Wi-Fi, Ethernet, or Thread. + +
+Although your Home Assistant server might have a Bluetooth adapter on board that the controller can use to commission devices, we choose not to utilize that adapter. Mainly to prevent issues with the built-in Bluetooth integration but also because it makes more sense to bring your mobile devices close to the Matter device you'd like to commission. +
+ +## Multi fabric: join to multiple controllers + +One of the great features of Matter is the so-called _Multi Fabric_ feature: you can join the same device to multiple controllers. For example, simultaneously add it to Google Home, Apple Home, and Home Assistant. The standard describes that each device should be able to at least support 5 different fabrics simultaneously. + +For devices where Home Assistant provides a native integration (with local API), Matter may not be the best option. Matter, being a universal standard, might not have the nitty-gritty features that come with a product-specific protocol. A good example is Philips Hue: the communication over Matter only provides the basic controls over lights, while the official [Hue integration](/integrations/hue) brings all Hue unique features like (dynamic) scenes, entertainment mode, etc. + +![image](/images/integrations/matter/matter_thread_infographic.webp) + +Image taken from [this excellent article by The Verge](https://www.theverge.com/23165855/thread-smart-home-protocol-matter-apple-google-interview) about Matter that shows the landcape of Matter, Thread, Border routers and bridges in a nice visualized way. {% include integrations/config_flow.md %} -_If you run Home Assistant Container, Home Assistant Core, or you don’t want to use the built-in Matter Server add-on, please see the [advanced installation instructions](#advanced-installation-instructions)._ +For communicating with Matter devices, the Home Assistant integration runs its own "Matter controller" in a separate process which will be launched as an add-on. This add-on runs the controller software and connects your Matter network (called Fabric in technical terms) and Home Assistant. The Home Assistant Matter integration connects to this server via a WebSocket connection. + +The only supported configuration (for now) for the Matter integration is by running the officially provided Home Assistant Matter add-on. Running the [Matter server](https://github.com/home-assistant-libs/python-matter-server) by any other means is at your own risk and is currently not officially supported. ## Current state of the integration -While the support for Matter is evolving, we will regularly update the Matter integration with new features or device support. Because it might be hard to track what's supported and what not, we list the current state here and try to update this information as often as possible. +While the support for Matter is evolving, we will regularly update the Matter integration with new features or device support. Because it might be hard to track what's supported and what's not, we list the current state here and try to update this information regularly. -Platform support in Home Assistant is currently limited to switches, lights, and (binary) sensors. The light platform is limited to _on/off_ and _brightness_ control only, support for _color_ and _color temperature_ control will be added soon. +Supported platforms (device types): -### Known issues +- Binary sensor: We have so far tested door/window sensors and motion sensors, but others will probably work too. +- Climate: Support for thermostat devices is in development now. +- Cover: Has been implemented, but support for a tilt feature is still missing. +- Lights: All features (in the Matter specification) should be supported, including color control, etc. +- Locks: Basic lock control has been implemented, but not all devices and features are supported yet. +- Sensor: We have tested Illuminance and temperature sensors, but others will probably work too. +- Switch: Powerplugs should work (note: no support for energy metering yet in Matter). -- Support for bridges (e.g. Hue bridge) is NOT working yet. Please do not try to add a bridge as it will break the integration. -- Door/window sensors show up reversed (closed instead of open) +Note that a single Matter device can exist on multiple platforms. For example, a Motion sensor also has a temperature sensor and an illuminance sensor on board. -_Both issues will be fixed in Home Assistant 2023.3._ +If you own a (bridged) Matter device and you are missing controls for this device, create an issue on [GitHub](https://github.com/home-assistant/home-assistant.io) and make sure to post your Integration diagnostics there. In some cases, we can easily extend the existing platform support based on your diagnostics dump. ## Adding Matter devices to Home Assistant -Each Matter network is called a fabric. Each home automation controller that controls Matter devices has its own fabric. You can add devices directly to the fabric of your Home Assistant instance, or share them from another fabric (ie Google, Apple) to Home Assistant's fabric. We're going to explore all these options below. +Each Matter network is called a fabric. Each home automation controller that controls Matter devices has its own "fabric". You can add devices directly to the fabric of your Home Assistant instance, or share them from another fabric (ie Google, Apple) to Home Assistant's fabric. We're going to explore all these options below. ### Add a device using the iOS Companion app This will use the Bluetooth connection of your phone to add the device. -1) Open The Home Assistant app on your phone. -2) Go to Settings, Devices & Services. -3) On the Devices tab, press the `Add device` button. -4) Choose `Add Matter device` as the top of the list. -5) Scan the QR-code of the Matter device with your phone camera or press `More options...` to manually enter the Commission code. -6) Press the `Add to Home Assistant` button which will start the commissioning process which may take up to a few minutes. -7) If you're adding a test board or beta device you might get a prompt about an Uncertified Accessory". In this dialog press `Add Anyway`. -8) Once prompted you can enter a custom Accessory Name, this is just an internal reference and not visible in Home Assistant so you can type whatever you like here. -9) Once the process is complete and you pressed the `Done` button, you are redirected to the Device within Home Assistant and its ready for use. +1. Open The Home Assistant app on your phone. +2. Go to {% my integrations title="**Settings** > **Devices & Services**" %}. +3. On the **Devices** tab, press the **Add device** button. +4. Choose **Add Matter device** at the top of the list. +5. Scan the QR-code of the Matter device with your phone camera or press **More options...** to manually enter the Commission code. +6. Select the **Add to Home Assistant** button which will start the commissioning process which may take up to a few minutes. +7. If you're adding a test board or beta device, you might get a prompt about an "Uncertified Accessory". In this dialog, select **Add Anyway**. +8. Once prompted, you can enter a custom **Accessory Name**, this is just an internal reference and not visible in Home Assistant. You can type whatever you like here. +9. Once the process is complete and you pressed the **Done** button, you are redirected to the device within Home Assistant. It is ready for use. @@ -86,14 +125,14 @@ This will use the Bluetooth connection of your phone to add the device. This will use the Bluetooth connection of your phone to add the device. -1) Open The Home Assistant app on your phone. -2) Go to Settings, Devices & Services. -3) On the Devices tab, press the `Add device` button. -4) Choose `Add Matter device` as the top of the list. -5) Scan the QR-code of the Matter device with your phones camera or press the `Setup without QR-code` button to manually enter the Commission code. -6) The process will start adding the device which takes up to a few minutes. -7) If you're adding a test board (e.g. ESP32 running the example apps) and commissioning fails, you might need to take some actions in the Google Developer console, have a look at any instructions for your test device. -8) Once the process is complete and you pressed the `Done` button, you are redirected to the Device within Home Assistant and its ready for use. +1. Open The Home Assistant app on your phone. +2. Go to {% my integrations title="**Settings** > **Devices & Services**" %}. +3. On the **Devices** tab, press the **Add device** button. +4. Choose **Add Matter device** as the top of the list. +5. Scan the QR-code of the Matter device with your phones camera or select the **Setup without QR-code** button to manually enter the commission code. +6. The process will start adding the device which takes up to a few minutes. +7. If you're adding a test board (e.g. ESP32 running the example apps) and commissioning fails, you might need to take some actions in the Google Developer console, have a look at any instructions for your test device. +8. Once the process is complete and you pressed the **Done** button, you are redirected to the device within Home Assistant. It is ready for use. @@ -101,9 +140,9 @@ This will use the Bluetooth connection of your phone to add the device. This method will allow you to select a Matter device from Apple Home and share it to Home Assistant. The result is that the device can be controlled from both Apple Home and Home Assistant at the same time. -1) Find your device in Apple Home and press the jogwheel to edit it. In the page with detailed descriptions and settings for the device, scroll all the way down and press the button `Turn On Pairing Mode`. -2) You are now given a Setup code, copy this to the clipboard. -3) Follow the [Add a device using the iOS Companion app](#add-a-device-using-the-ios-companion-app) directions above to add the device to Home Assistant where you paste the code you just received from Apple Home. +1. Find your device in Apple Home and press the jogwheel to edit it. In the page with detailed descriptions and settings for the device, scroll all the way down and press the button **Turn On Pairing Mode**. +2. You are now given a Setup code, copy this to the clipboard. +3. Follow the [Add a device using the iOS Companion app](#add-a-device-using-the-ios-companion-app) directions above to add the device to Home Assistant where you paste the code you just received from Apple Home. @@ -111,94 +150,114 @@ This method will allow you to select a Matter device from Apple Home and share i This method will allow you to share a device that was added to Google Home to Home Assistant. The result is that the device can be controlled from both Google Home and Home Assistant at the same time. -1) Open the device in Google Home and press the settings button (jog wheel) in the top right. -2) Click `Linked Matter apps and services`. -3) Press the button `Link apps and services` to link the device to Home Assistant. -4) Choose Home Assistant from the list, you are redirected to the Home Assistant Companion app now. Press `Add device`. -5) Your device will now be added to Home Assistant. When the process finishes, you're redirected to the device page in Home Assistant. +1. Open the device in Google Home and press the settings button (jog wheel) in the top right. +2. Click **Linked Matter apps and services**. +3. Press the button **Link apps and services** to link the device to Home Assistant. +4. Choose Home Assistant from the list, you are redirected to the Home Assistant Companion app now. Press **Add device**. +5. Your device will now be added to Home Assistant. When the process finishes, you're redirected to the device page in Home Assistant. -## Device specific instructions +

+At this time it is not yet possible to share a device from Home Assistant to another platform. This feature should be added after the Matter SDK 1.1 is released. +

-Because availability of actual Matter devices is sparse and proper HOWTO documentation even more, we provide a few step by step instructions for devices we have currently tested. +## Experiment with Matter using a ESP32 dev board -### TP-Link Tapo P125M (power plug) - -This device runs Matter out of the box, so you can add it directly to the controller(s) of your choice! - -Look for the M addition in the model name, a device without the M (regular P125) is not Matter compliant. This device is available in the US only. - -[TP-Link Tapo P125M on Amazon](https://amzn.to/3RILJah) - -### ESP32 dev board running Matter example app - -This is the most convenient and easy way to start playing with Matter. We have [prepared a page for you](https://nabucasa.github.io/matter-example-apps/) where you can easily flash Matter firmware to a supported ESP32 development board. We actually recommend the M5 Stamp C3 device running the Lightning app. +You do not yet have any Matter-compatible hardware but you do like to try it out or maybe create your own DIY Matter device? We have [prepared a page for you](https://nabucasa.github.io/matter-example-apps/) where you can easily flash Matter firmware to a supported ESP32 development board. We recommend the M5 Stamp C3 device running the Lightning app. NOTE for Android users: You need to follow the instructions at the bottom of the page to add the test device to the Google developer console, otherwise commissioning will fail. iOS users will not have this issue but they will get a prompt during commissioning asking if you trust the development device. -1) Make sure you are using the Google Chrome or Microsoft Edge browser. -2) Open https://nabucasa.github.io/matter-example-apps/ -3) Attach the ESP32 device using an USB cable. -4) Click the radiobutton next to the example you like to setup, in case of an M5 Stamp, click `Lightning app for M5STAMP C3`. -5) Press `Connect`. -6) In the popup dialog that appears choose the correct serial device, in most cases this will be something like "cu-usbserial" or alike. -7) Click `Install Matter Lightning app example` and let it install the firmware on the device, this will take a few minutes. -8) Once the device is flashed with the Matter firmware, connect to the device again but this time choose `Logs & console`. -9) You are presented with a console interface where you see live logging of events. This is actually an interactive shell where you can type commands. For a list of all commands, type `matter help` and press enter. -10) To add the device, we need the QR code. In the console type in `matter onboardingcodes ble` and copy/paste the URL in your browser. -11) Use the QR code to add the device using one of the above instructions on your phone, e.g. using the Home Assistant Companion app. +1. Make sure you use Google Chrome or Microsoft Edge browser. +2. Open https://nabucasa.github.io/matter-example-apps/ +3. Attach the ESP32 device using a USB cable. +4. Select the radio button next to the example you like to set up, in case of an M5 Stamp, click **Lightning app for M5STAMP C3**. +5. Select **Connect**. +6. In the popup dialog that appears, choose the correct serial device. This will usually be something like "cu-usbserial" or alike. +7. Click **Install Matter Lightning app example** and let it install the firmware on the device. This will take a few minutes. +8. Once the device is flashed with the Matter firmware, connect to the device again but this time choose **Logs & console**. +9. You are presented with a console interface where you see live logging of events. This is an interactive shell where you can type commands. For a list of all commands, type **matter help** and press enter. +10. To add the device, we need the QR code. In the console, type in `matter onboardingcodes ble` and copy/paste the URL into your browser. +11. Use the QR code to add the device using one of the above instructions on your phone, e.g. using the Home Assistant Companion app. + +## Known working devices + +Because the availability of actual Matter devices (and their documentation) is sparse, we provide a list of all known working devices that are tested by the Home Assistant Matter developers and/or the community to help you find the device you need. Note: The list below is ordered alphabetically, and some links contain affiliate links. + +Did you test a device that is not listed below? It would be greatly appreciated if you share your experience either on the Matter discord channel or contribute a PR (or suggestion) to this documentation page so you can help others, thanks in advance! + +### Aqara M2 Hub + +- Bridges Aqara (Zigbee) devices connected to the hub to Matter. +- You need to enable Matter support/firmware in the Aqara app. +- You will need an Aqara (cloud) account and the app before you can use Matter. +- See [this Aqara landingpage](https://www.aqara.com/en/article-1583275073188196352.html) for more information, including what devices are bridged. +- Thermostat devices (climate platform) are not supported yet (but are currently in development). +- Device events, for example for the wall rockers and Cube, are not supported. ### Eve Energy (power plug), Eve Door & Window (contact sensor), Eve Motion (motion sensor) -1) Look for the Thread logo on the box to ensure you have the new device which is compatible with Matter. -2) The Eve device runs on HomeKit by default, you will need an iOS device to set it up out of the box. -3) The Eve device uses Thread for communication, therefore you will need to have a Thread Border Router configured in your network setup, such as the Apple TV 4K (2021/2022), Homepod Mini, or Homepod V2. -4) You need to join the [Eve Beta program here](https://www.evehome.com/en/meet-matter) and wait for instructions per email. -5) Update the firmware of your Eve device using the Eve beta app to Matter. -6) During the update process the Eve app will create a new QR code for you to save somewhere safe. This QR code is required when you want to add the device to a Matter controller. The normal QR code attached to the device will no longer work! -7) During the upgrade process, the Eve app will join the device to Apple Home using Matter. -8) Confirm that the device is working properly within Apple Home. -9) Follow our instructions above to share the device from Apple Home to Home Assistant. +- If you see a Matter logo on the box, the device runs Matter already and you can add it to HA immediately. +- If there is a Thread logo, you need to install the Matter firmware using the Eve app. +- No Matter logo and no Thread logo on the box? The device is not Matter compatible. +- The energy metering feature of the Eve plug will not work in Home Assistant (Apple only feature). +- Eve has just released official Matter support so ignore any documentation about the beta program. -Once the initial firmware upgrade to Matter is complete, the device can also be paired to non-Apple based Thread networks, like Google Home or later Home Assistant's own Thread implementation based on OTBR but you do need an Apple ecosystem running (iOS phone + Border router) for the first time setup. +[Eve Energy on Amazon](https://amzn.to/3YuO62P) +[Eve Door & Window on Amazon](https://amzn.to/3RIU6ml) +[Eve Motion on Amazon](https://amzn.to/3jDujiP) -- [Eve Energy on Amazon](https://amzn.to/3YuO62P) -- [Eve Door & Window on Amazon](https://amzn.to/3RIU6ml) -- [Eve Motion on Amazon](https://amzn.to/3jDujiP) +### Nanoleaf Matter bulbs and Lightstrips + +- Although the products work great once commissioned, multiple users have reported that commissioning them can be a bit difficult and requires some patience and multiple resets or optimizations to your home network. +- Check the [Nanoleaf Matter infopage](https://nanoleaf.me/en-EU/integration/matter/) for all supported products and instructions. + +### Philips Hue (V2) Bridge + +The Philips Hue V2 bridge supports Matter since a recent update (the beta program closed, it is now officially available). You can enable Matter support from the Hue app after which you can commission it to Home Assistant and other fabrics. + +- Binding the Hue bridge to Home Assistant does not make sense because you will lose functionality over the default Hue integration in Home Assistant, such as button press events and (dynamic) scenes. +- You will need a Hue/Signify (cloud) account and the app before you can use Matter. +- Device events for example for dimmer remotes are not supported. +- Only basic control of lights is supported, no scenes, events, effects etc. + +### TP-Link Tapo P125M (power plug) + +- Look for the M addition in the model name, a device without the M (regular P125) is not Matter compliant. +- This device is available in the US only. + +[TP-Link Tapo P125M on Amazon](https://amzn.to/3RILJah) ## Troubleshooting -### I do not see the option to add a Matter device in the settings -We've added the option to **Add a Matter device** from the **Settings**>**Devices** in a recent version of the Home Assistant frontend, available from version 2023.3 and upwards or if you're running the Home Assistant nightly channel. If you are on a previous version of Home Assistant, you should see a button **Configure** on the Matter integration card within **Settings**>**Devices & Services**>**Integrations**. Click that **Configure** button and you should be able to see the **Commission** button on the Companion app. +### General recommendations + +- Using Thread-based Matter devices in Home Assistant requires Home Assistant OS (version 10 and above) because of kernel patches to solve routing issues. Not using HAOS (and thus the official Matter add-on) is at your own risk. + +- To use Thread devices you will need a Thread Network with at least one Thread Border Router in your network nearby the Thread device(s). Apple users need for example the Apple TV 4K or the HomePod Mini, while Google users need a Nest Hub V2. Use the Thread integration in Home Assistant to diagnose your Thread network(s). + +- Start simple and work from there, keep your network easy and add for example an ESP32 test device. Once that works, move on to the next step or more devices. + +- Realize that you are an early adopter, both on the hardware side and on the software (controller) side so you may run into compatibility issues or features that are still missing. Report any issues you may find and help out others if you find a workaround or tested a device. + +- Make sure IPv6 (multicast) traffic travels freely from your network to the Home Assistant host. There is no requirement to have an IPv6-enabled internet connection or DHCPv6 server. However, IPv6 support has to be enabled (it's enabled by default on Home Assistant OS). ### I do not see the button "Commission using the Companion app" + This button will only be visible within the Home Assistant Companion App (so not in the browser) and your device meets all requirements for Matter support. + - For iOS, minimum version is iOS 16 (minimal 16.3 is preferred) and the most recent version of the HA companion app. - For Android, minimum version is 8.1 and the most recent version of both the Google Home app and the (full) HA Companion app, downloaded from the app store. ### When I'm trying to commission using the Android app, I get an error stating "Matter is currently unavailable" -See above, make sure your device meets all requirements to support Matter. Update Android to the latest version and the Google Home and Home Assistant Companion app. To quickly verify if your device meets all requirements to support Matter, on your Android device go to **Settings**>**Google**>**Devices & Sharing**. There should be an entry there for **Matter devices**. + +See above, make sure your device meets all requirements to support Matter. Update Android to the latest version and the Google Home and Home Assistant Companion app. To quickly verify if your device meets all requirements to support Matter, on your Android device, go to **Settings** > **Google** > **Devices & Sharing**. There should be an entry there for **Matter devices**. + +Some users have reported that uninstalling and reinstalling the Google Home app fixed this issue for them. +Also see this [extended troubleshooting guide](https://developers.home.google.com/matter/verify-services) from Google. ### Unable to commission devices, it keeps giving errors or stops working randomly -We've seen cases (e.g. on UniFi hardware) where IPv6 derived from the Internet Provider causes issues with the discovery of Matter devices. Keep this in mind when you experience issues trying to add or control Matter devices. Protocols like Matter are designed for regular residential network setups and do not play nice with enterprise solutions like VLAN's, Multicast filtering, and IGMP snooping. To avoid issues, try to keep your network as simple and flat as possible. -## Advanced installation instructions +The Matter protocol relies on (local) IPv6 and mDNS (multicast traffic) which should be able to travel freely in your network. Matter devices that use Wi-Fi (including Thread Border routers) must be on the same LAN/VLAN as Home Assistant. Matter devices that only use Thread must be joined to Thread networks for which there is at least one border router connected to the Home Assistant LAN. -If you are using Home Assistant Container, Home Assistant Core, or you don't want to use the built-in Matter Server add-on, you will need to run the Matter Server yourself, to which the Matter integration will connect. - -### Running Matter Server - -This application provides the connection between your Matter network (called Fabric in technical terms) and Home Assistant. The Home Assistant Matter integration connects to this server via a websocket connection. You need to run the Matter Server before you can use the integration. - -There are multiple ways to run the server: - -**Option 1: The official Matter Server add-on, as described above** - -_This option is only available for Home Assistant OS (the recommended installation type) and Home Assistant Supervised installations._ - -**Option 2: Run the Matter server yourself** - -This option is considered a very advanced setup and only for experienced users. You can find instructions on how to run the Matter Server in the [project repository](https://github.com/home-assistant-libs/python-matter-server). - -_Disclaimer: Some links on this page are affiliate links._ +Investigate your network topology if you experience any issues with discovering devices (like the initial commission keeps failing) or if devices become unavailable randomly. For instance, a setting on your router or Wi-Fi access point to "optimize" multicast traffic can harm the (discovery) traffic from Matter devices. Keep this in mind when you experience issues trying to add or control Matter devices. Protocols like Matter are designed for regular residential network setups and do not play nicely with enterprise networking solutions like VLANs, Multicast filtering, and IGMP snooping. Try to keep your network as simple and flat as possible to avoid issues. diff --git a/source/images/integrations/matter/matter_thread_infographic.webp b/source/images/integrations/matter/matter_thread_infographic.webp new file mode 100644 index 0000000000000000000000000000000000000000..b4bc57284a3e898d1e6f0760dc87198a800a0677 GIT binary patch literal 55090 zcmd42bC_gbwk?{rZQH7}ZQHK2ZQHi(O54t?wC$`)+qhZ%>pp$Y>F#^~dEa|4;){s6 zW~{yTj)ghL7;A^3gs3RhG5~;@h@iZxJi9s+0002N*DDtkKpg}?LP$uS0qCm;0K_05 zEGPnm003ZZ548Ubzbr~T8`fB)|PT7ojNb8z~q_4f5*GB$BE0ssJH__8fso$S8+fLUKQilOD-?7Ba; zgR-K~mw)ifhWq}Pz3|62{L4Q0V>^8Ph_5<#f9ik#n+*i<$2R=S#`$AAnYjHqFMyD( zox6kicQYpfCI$uu0s&)NLlXiecSk1^YexbJ8zWl>J6i_>CllkZx_@2YpQ8W}|El<> z$0!&%IM^xw=KX*0?aw&;)!ePZ-})C2ZStSKf1b$5*}>)SB|so%0D%8n`JZiMVE_Qg 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 z

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

jn9$v=^OW`@>4cv8e9@n)vhYF`_wDaVfZMw@ z6<pxxO2ru70$QYL z%hpV-5K3z+ZYpv$C&1&T-;)1ro+J;9PrL&fw4aEan^rEH0&%G!Mj%?_QK-y2wfTlX z@(hgLb(>Yl0$YPK08A2#=*#xA264;z$P4hYY3%*~*vq%1?>!o7DoU%9?}YrAw*sht z>xGh+`{*1$FV~82nV5zu%;}o3&jb716 zXy04jo7gaO2r<^Oj=^FzHcDoZUx+%9ExWrv6bWwIO=xUDm^LdErM?R9S_CY>dGMZu zC_I1EVf5u%DSK@Sur{kGXZKP_rcg#o_pJ#%v?uGIrW5$u26Xc~^N^7pP%6)f!Kxbk ziEWZ8y34*>!Fz)3C&XUY!Gzi!^&bO;J)mY6A1K}+lIiQ7eA@#DN4^Ddsbie`Oy&o( zSas4WJZ#CAV{+JObV}Iqc*cl{PR9rEKm;+0Nd~8o9RPSgXBil>%2}B#LG`;eJm+zr z(F#G(*t9$Gv@I9^SA9{vqG^h$W3Kg$1*YzNY~K&bo0AX4+ZrIdL-;Qg)+DE$S6OEY zi>Eq2aMB^uQun5Zn>f8Qk>Ko^WLMqoN%MhnfjN83Vs6Y;Vk}3@tj?KPX<~nG!|zVZ z1Mdu#e#zeaG#GaGLSB03nctRhK}!jb(i(Qp}A8Jyll}FwP%`?>@qRv)zwxI zshU4dE6&o9jgFhlRO%uXz<>h#LB|n=1ps9fBa%pe;?F21vu<*PbWQN*hgDR62c(Wt z{r)|J)2UnaQTn<3gck0Qt)42U6>Bf6=4{dYa-rk6&5*oB`_1t9=hx0|}>_8&0#t?yaSr zmgRjJmBAfY{ljZsG{SrMO-4to`q1*|gC8V`VWeHXY^I(Vp^J?dPTda({QG>?&0aQa zzhu=j<9k#6m4^_rtBb$b7pqsTr)Adu^=C_W`NS8tj0`{+l>{TW$j7e;_dg+juttS4 zRQmP9k^X?Q6E?b@$4`0cXt>L(O$B?C0}#R|ZTIss{pfWL15hKVQnDoeRYjZaH3LS_ zHN;o2iZuK}NidcUM%X$5OJF7DP?tgjSOjQ^s&$ulw0l?CYsHCzZj>Woml3LFGvyJ|$GaFSlfgi*2wO`~UVcgWy;9Ai|e;%DIQtgxVYy{9jZDKm&Q&J*-jtbM!KT04{5K)n?4z7i z;-`06w>5z%XBWu6wKn>OEOF%>&P|l=Pv!fq^Skh>Jn&^NZmO+>Uf8L?D}PoV7u>X0 zjRAcgTL(kNcz5hj0=Pr4%9t%SG9LV2!@A74Ll}AvG?{}&cJFQ$z4O~0hz<56v*|L9 z9P}qHoIgp45Q{lS@mRjMg$}RV0a$2c;linq-jsOgIo}r*a{hOpP}}kIva%xY%BMJF z=*|pJ67*Al;l?G;USZh4FxoUU?Z3Rl;|2Q+)9$Z}m%6>D5~Vu_J&+I0B%+qr4iYgg^eVv==PxXc_VL3cgl8hn z12e`&c@c#B#A*Rfz0?s31P(F?~B0BZ|oytda#1jH=BAqf@H81^p#l*22?zS&7OiM`>j? z8PuWu5|*^H1XT`D^!k^+;%<~@@D_D}3!xEP!o|=eaL%`;YyKOyojt(_RY;_>_PJb+CU8tDt9m9juwl1dUTtYv858S1=kCgI zLssvgDdHD+chNTyzDjsRJF{y=sh-DzTIHVfC%B0g@cE>AD@(ewt$Uo3kSfRQA7<

wTkusTt^<+nUR~7{)uJ?|vE6^nEooCs?MTe~;We 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