{"id":2746,"date":"2025-10-27T12:00:00","date_gmt":"2025-10-27T11:00:00","guid":{"rendered":"https:\/\/sascha-brockel.de\/?p=2746"},"modified":"2026-01-14T04:09:14","modified_gmt":"2026-01-14T03:09:14","slug":"set-up-thread-matter-in-home-assistant-with-docker","status":"publish","type":"post","link":"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/","title":{"rendered":"Set up Thread &amp; Matter in Home Assistant with Docker"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Attention smart home fans! If you want to network your devices in a future-proof way, there's no way around <strong>Thread<\/strong> and <strong>Matter<\/strong> over. In this article, I'll show you step by step how to do both directly in <strong>Home Assistant in Docker<\/strong> set up. In the end, you can control your smart devices reliably and across platforms.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Setting up a thread network in a completely dockerized smart home setup is terribly complex and took me months to get it right myself and would now like to offer you a guide so that you can get it right away!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For detailed instructions and explanations of all configuration options, I recommend watching the YouTube video linked below. This video goes into detail about each individual setting, providing you with comprehensive instructions on how to set everything up correctly. Any code from the video can be found in this article, so you can use it directly without having to type it out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Many smart home users often confuse <strong>Thread<\/strong> and <strong>Matter<\/strong> or think they are the same thing. In fact, they are two different but closely cooperating technologies.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title ez-toc-toggle\" style=\"cursor:pointer\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Was_ist_Thread\" >What is Thread?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Was_ist_Matter\" >What is Matter?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Zusammenspiel_von_Thread_und_Matter\" >Interaction of thread and matter<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Unterschiede_Thread_vs_Zigbee_vs_Matter_over_Wi-Fi\" >Differences: Thread vs Zigbee vs Matter over Wi-Fi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Was_ist_Home_Assistant\" >What is Home Assistant?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Unser_Setup_Home_Assistant_Docker_Matter_mit_Thread\" >Our setup: Home Assistant, Docker &amp; Matter with Thread<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Welchen_USB-Stick_verwenden_wir\" >Which USB stick do we use?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Ubersicht_So_lauft_alles_zusammen\" >Overview: How it all comes together<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Voraussetzungen\" >Requirements<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#1_Docker_Home_Assistant_in_Docker\" >1st Docker &amp; Home Assistant in Docker<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#2_Thread-kompatibler_USB-Stick\" >2. thread-compatible USB stick<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#3_Matter-fahiges_Gerat\" >3rd Matter-capable device<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#4_Zugriff_auf_deinen_Router\" >4. access to your router<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Schritt-fur-Schritt_Anleitung\" >Step-by-step instructions<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Schritt_1_Thread_USB-Stick_vorbereiten_Home_Assistant_ZBT-1\" >Step 1: Prepare threaded USB stick (Home Assistant ZBT-1)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Schritt_2_USB-Stick_in_den_Server_einstecken_und_Pfad_ermitteln\" >Step 2: Insert the USB stick into the server and determine the path<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#So_findest_du_den_USB-Stick_auf_Linux\" >How to find the USB stick on Linux<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Schritt_3_IPv6_auf_dem_Linux-Server_aktivieren\" >Step 3: Activate IPv6 on the Linux server<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Skript_fur_IPv6_Docker\" >Script for IPv6 &amp; Docker<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Erklarung_der_wichtigsten_Parameter\" >Explanation of the most important parameters<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Erklarung_Was_ist_br0_und_warum_benotigen_wir_es\" >Explanation: What is br0 and why do we need it?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#IPv6_im_Router_aktivieren\" >Activate IPv6 in the router<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Beispiel_FRITZBox_6690_Cable\" >Example: FRITZ!Box 6690 Cable<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Schritt_4_IPv6_auf_dem_Unraid-Server_aktivieren\" >Step 4: Activate IPv6 on the (Unraid) server<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#1_Vorbereitung_Docker_und_VM-Service_stoppen\" >1. preparation: Stop Docker and VM service<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#2_Netzwerkschnittstelle_anpassen\" >2. adapt the network interface<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#3_Optional_Statische_IPv6-DNS-Server_hinterlegen\" >3. optional: store static IPv6 DNS servers<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#4_Docker_und_VM-Service_wieder_starten\" >4. restart Docker and VM service<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#5_Prufen_ob_IPv6_aktiv_ist\" >5. check whether IPv6 is active<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Schritt_5_Matter_Server_Docker_Container_installieren\" >Step 5: Install Matter Server Docker Container<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#docker-composeyml_fur_den_Matter_Server\" >docker-compose.yml for the Matter server<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Wichtige_Hinweise\" >Important notes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Zusammenfassung\" >Summary<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Offizielle_Dokumentation\" >Official documentation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Warum_network_mode_host_so_wichtig_ist_%E2%80%93_mDNS\" >Why network_mode: host is so important - mDNS<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-36\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Schritt_6_Open_Thread_Border_Router_Docker_Container_installieren\" >Step 6: Install Open Thread Border Router Docker Container<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-37\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Erklarung_der_wichtigsten_Parameter-2\" >Explanation of the most important parameters<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-38\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Erklarung_der_wichtigen_Environment-Variablen\" >Explanation of the important environment variables<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-39\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Offizielle_Referenz\" >Official reference<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-40\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Schritt_7_Thread-Netzwerk_aufbauen_Form_Thread_Network\" >Step 7: Set up thread network (Form Thread Network)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-41\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#In_die_ot-ctl-Konsole_einsteigen\" >Entering the ot-ctl console<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-42\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Neues_Thread-Netzwerk_konfigurieren\" >Configure new thread network<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-43\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Was_bedeutet_das\" >What does that mean?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-44\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Schritt_8_Integrationen_in_Home_Assistant_anbinden\" >Step 8: Connect integrations in Home Assistant<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-45\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Thread-Integration_hinzufugen_ohne_Eingaben\" >Add thread integration (without inputs)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-46\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Open_Thread_Border_Router_Integration_mit_URL-Eingabe\" >Open Thread Border Router Integration (with URL input)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-47\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Matter_Integration_mit_URL-Eingabe\" >Matter Integration (with URL input)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-48\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Was_passiert_nach_der_Einrichtung\" >What happens after installation?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-49\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Schritt_9_%F0%9F%93%B1_Thread-Zugangsdaten_mit_Home_Assistant_App_synchronisieren_iOS_Android\" >Step 9: \ud83d\udcf1 Synchronize thread access data with Home Assistant app (iOS &amp; Android)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-50\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#%F0%9F%94%81_So_aktivierst_du_die_Synchronisation\" >\ud83d\udd01 How to activate synchronization:<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-51\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Schritt_10_Matter_Gerat_uber_Thread_koppeln\" >Step 10: Pair Matter device via thread<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-52\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#1_Matter-Gerat_in_HA_hinzufugen\" >1. add Matter device in HA<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-53\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#2_Mit_Smartphone_koppeln_Commissioning-Prozess\" >2. pair with smartphone (commissioning process)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-54\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#3_Gerat_joint_dem_Thread-Netzwerk\" >3rd device joint the Thread network<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-55\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Umsetzung_im_YouTube-Video\" >YouTube video implementation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-56\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#Fazit\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-57\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/#%F0%9F%94%97_Nutzliche_Links_auf_einen_Blick\" >\ud83d\udd17 Useful links at a glance<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"h-was-ist-thread\"><span class=\"ez-toc-section\" id=\"Was_ist_Thread\"><\/span>What is Thread?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Thread<\/strong> is a modern mesh network protocol that was specially developed for smart home devices. Unlike classic WLAN or Bluetooth Low Energy, Thread has some decisive advantages:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Mesh network:<\/strong> All devices (nodes) connect to each other. If a device fails, the data still finds another route.<\/li>\n\n\n\n<li><strong>Energy efficiency:<\/strong> Ideal for battery-operated sensors, as Thread consumes very little power.<\/li>\n\n\n\n<li><strong>Fast &amp; reliable:<\/strong> Devices communicate directly with each other without overloading a central hub.<\/li>\n\n\n\n<li><strong>Safe:<\/strong> Thread uses modern encryption and authenticated device connections.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Thread self-defined <strong>only<\/strong>how devices talk to each other. It does not say what the devices do or how to control them - for that you need a protocol like Matter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Practical example:<\/strong><br>You have several lights and sensors distributed throughout the house. With Thread, a motion sensor in the basement can control a light on the first floor, even if the central gateway is briefly offline. The network automatically finds the fastest route.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-was-ist-matter\"><span class=\"ez-toc-section\" id=\"Was_ist_Matter\"><\/span>What is Matter?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Matter<\/strong> is an open standard that makes devices from different manufacturers compatible. The aim is to ensure that a smart home device can be integrated \"out-of-the-box\" into any compatible system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Important points about Matter:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Manufacturer-independent:<\/strong> Philips Hue, Ikea Tradfri, Nanoleaf and others can be controlled together.<\/li>\n\n\n\n<li><strong>Platform-independent:<\/strong> Apple HomeKit, Google Home and Amazon Alexa support Matter.<\/li>\n\n\n\n<li><strong>Safe:<\/strong> Matter uses Thread, Wi-Fi or Ethernet with strong encryption.<\/li>\n\n\n\n<li><strong>Easy to set up:<\/strong> Pairing via QR code or NFC.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Matter thus defines <strong>the language<\/strong>in which devices speak, while Thread speaks the <strong>Means of transportation<\/strong> is a reliable means of transmitting this language.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Practical example:<\/strong><br>You buy a new smart socket from another manufacturer. With Matter, all you have to do is scan it and you can immediately integrate it into automations without a separate app.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Zusammenspiel_von_Thread_und_Matter\"><\/span>Interaction of thread and matter<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can imagine Thread and Matter as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Thread = street<\/strong><\/li>\n\n\n\n<li><strong>Matter = Car<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Matter is the protocol that gives the \"commands\" to devices - e.g. \"Switch on the light\". Thread is the network via which these commands are transported.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thanks to Thread, Matter messages can be forwarded between devices particularly quickly, stably and energy-efficiently. The interaction has three decisive advantages:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Reliability:<\/strong> Even with many devices in the house, automations work smoothly because Thread forms a self-healing mesh network.<\/li>\n\n\n\n<li><strong>Energy efficiency:<\/strong> Battery-operated devices such as sensors last much longer.<\/li>\n\n\n\n<li><strong>Manufacturer-independent control:<\/strong> Matter ensures that you can control devices from different manufacturers centrally via Home Assistant or other platforms.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Feature<\/th><th>Thread<\/th><th>Matter<\/th><\/tr><\/thead><tbody><tr><td><strong>Type<\/strong><\/td><td>Network protocol<\/td><td>Application protocol \/ device standard<\/td><\/tr><tr><td><strong>Task<\/strong><\/td><td>Transport data<\/td><td>Control &amp; standardize devices<\/td><\/tr><tr><td><strong>Operation<\/strong><\/td><td>Mesh, energy efficient<\/td><td>Via Thread, Wi-Fi or Ethernet<\/td><\/tr><tr><td><strong>Device control<\/strong><\/td><td>None (transportation only)<\/td><td>Yes (control, automations, scenes)<\/td><\/tr><tr><td><strong>Example<\/strong><\/td><td>Motion sensor sends signal<\/td><td>Matter switches light based on signal<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Thread and Matter are not competitors, but complement each other perfectly. Thread ensures stable, fast and energy-efficient communication between devices, while Matter ensures that all devices work together in a compatible way, regardless of manufacturer. In combination, they form the basis for a smart home that <strong>Robust, flexible and future-proof<\/strong> is.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Unterschiede_Thread_vs_Zigbee_vs_Matter_over_Wi-Fi\"><\/span>Differences: Thread vs Zigbee vs Matter over Wi-Fi<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Feature<\/th><th>Thread<\/th><th>Zigbee<\/th><th>Matter over Wi-Fi<\/th><\/tr><\/thead><tbody><tr><td><strong>Network type<\/strong><\/td><td>Mesh<\/td><td>Mesh<\/td><td>Client-Server (Wi-Fi)<\/td><\/tr><tr><td><strong>Energy consumption<\/strong><\/td><td>Very low<\/td><td>Low<\/td><td>High (Wi-Fi)<\/td><\/tr><tr><td><strong>Reach<\/strong><\/td><td>Medium (expandable with mesh)<\/td><td>Medium (mesh)<\/td><td>Depending on WLAN<\/td><\/tr><tr><td><strong>Compatibility<\/strong><\/td><td>Matter, only compatible devices<\/td><td>Manufacturer-dependent<\/td><td>Matter, only compatible devices<\/td><\/tr><tr><td><strong>Stability &amp; latency<\/strong><\/td><td>High, self-healing<\/td><td>Medium<\/td><td>Medium, depending on WLAN<\/td><\/tr><tr><td><strong>Advantage<\/strong><\/td><td>Efficient, self-healing<\/td><td>Many devices available<\/td><td>Easy to install<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>In short:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Thread is ideal for battery-powered, energy-efficient mesh devices and also the future.<\/li>\n\n\n\n<li>Zigbee is widely used, but is manufacturer-dependent and less standardized, although it is currently still the standard.<\/li>\n\n\n\n<li>Matter over Wi-Fi is simple, but consumes more energy and depends on the Wi-Fi quality.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-was-ist-home-assistant\"><span class=\"ez-toc-section\" id=\"Was_ist_Home_Assistant\"><\/span>What is Home Assistant?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Home Assistant is an open-source platform for home automation that aims to connect all devices in the home and control them centrally. It was developed to provide a unified user interface and simple, flexible control for a wide range of smart home devices from different ecosystems. Here are some points in favor of Home Assistant:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Compatibility<\/strong>Home Assistant supports thousands of devices and services from various manufacturers, including lighting, air conditioning, heating, cameras, weather sensors, voice assistants and more.<\/li>\n\n\n\n<li><strong>Local control<\/strong>Unlike many commercial smart home platforms that rely on cloud services, Home Assistant runs locally on your network. This means increased privacy and reliability, as your smart home devices work even without an active internet connection.<\/li>\n\n\n\n<li><strong>Automation and scenes<\/strong>One of the main features of Home Assistant is the ability to create complex automations and scenarios. For example, you can have lights turn on automatically when it gets dark, or turn on the heating when the temperature drops below a certain level.<\/li>\n\n\n\n<li><strong>Simple user interface<\/strong>Home Assistant offers a user-friendly interface that makes it easy to monitor and control devices. This interface is fully customizable.<\/li>\n\n\n\n<li><strong>Integration with voice assistants<\/strong>Home Assistant can be integrated with voice assistants such as Amazon Alexa or Google Assistant to enable voice-controlled control of your smart home devices.<\/li>\n\n\n\n<li><strong>Open source and community-driven<\/strong>Since Home Assistant is open source, it is supported by an active community that is constantly developing new integrations and improving existing ones.<\/li>\n\n\n\n<li><strong>Data protection and security<\/strong>As a locally running platform, Home Assistant has the advantage that the data remains within its own network. This protects privacy and increases security compared to cloud-based solutions.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">In summary, Home Assistant is a powerful and flexible solution for those who want to design their own smart home and control their devices centrally, regardless of the manufacturer or ecosystem.<\/p>\n\n\n<div class=\"atkp-container atkp-grid_3_columns-box  atkp-template-grid_3_columns\">\n            <div class=\"atkp-clearfix atkp-box-3-cols\">\n                            <div class=\"atkp-box atkp-smallbox atkp-box-3-cols-item atkp-clearfix\">\n                    <div class=\"atkp-thumb\">\n                                                    <img decoding=\"async\" class=\"atkp-image\" src=\"https:\/\/m.media-amazon.com\/images\/I\/218101KFwlL._SL160_.jpg\"\n                                 alt=\"SONOFF Zigbee 3.0 USB Dongle Plus MG24, Zigbee Gateway with EFR32MG24, Thread &amp; Zigbee USB stick, Zigbee Controller for Home Assistant or Zigbee2MQTT\"\/>\n                                            <\/div>\n                    <div class=\"atkp-content\">\n                                                    <a class=\"atkp-title\" href=\"https:\/\/www.amazon.de\/dp\/B0FMJD288B?tag=sasbro0a-21&linkCode=osi&th=1&psc=1\" rel=\"sponsored nofollow noopener\" target=\"_blank\"  title=\"Buy now at Amazon\">SONOFF Zigbee 3.0 USB Dongle Plus MG24, Zigbee Gateway with EFR32MG24, Thread &amp; Zigbee USB stick, Zigbee Controller for Home Assistant or Zigbee2MQTT*<\/a>\n                                                <div class=\"atkp-author\">by SONOFF<\/div>\n                    <\/div>\n                    <div class=\"atkp-bottom\">\n                        <div class=\"atkp-ratingbar\">\n                                                            <div class=\"atkp-rating\"><span class=\"atkp-star atkp-star-0 atkp-star-00\" title=\"0.00 of 5 stars\"><\/span><\/div>\n                                                        <div class=\"atkp-primelogo\"><\/div>\n                            <div class=\"atkp-clearfix\"><\/div>\n                        <\/div>\n                                                    <span class=\"atkp-price atkp-saleprice\">\n                                Price: \u20ac 19.90\n                                                                    <span class=\"atkp_price atkp-baseprice\"><\/span>\n                                                            <\/span>\n                                                                            <a href=\"https:\/\/www.amazon.de\/dp\/B0FMJD288B?tag=sasbro0a-21&linkCode=osi&th=1&psc=1\" rel=\"sponsored nofollow noopener\" target=\"_blank\"  title=\"Buy now at Amazon\" class=\"atkp-button\">Buy now on Amazon*<\/a>\n                        \n                        \n                                                    <span class=\"atkp-priceinfo\">Price incl. VAT, Excl. shipping<\/span>\n                                                                            <div class=\"atkp-shoplogo\">Amazon<\/div>\n                                            <\/div>\n                <\/div>\n                            <div class=\"atkp-box atkp-smallbox atkp-box-3-cols-item atkp-clearfix\">\n                    <div class=\"atkp-thumb\">\n                                                    <img decoding=\"async\" class=\"atkp-image\" src=\"https:\/\/m.media-amazon.com\/images\/I\/212zdYdMXhL._SL160_.jpg\"\n                                 alt=\"SONOFF Zigbee 3.0 &amp; Thread Dongle Lite (EFR32MG21) | USB stick coordinator for Home Assistant &amp; Zigbee2MQTT | Compact gateway with simple firmware flash function &amp; extension cable\"\/>\n                                            <\/div>\n                    <div class=\"atkp-content\">\n                                                    <a class=\"atkp-title\" href=\"https:\/\/www.amazon.de\/dp\/B0G2LTBM1M?tag=sasbro0a-21&linkCode=osi&th=1&psc=1\" rel=\"sponsored nofollow noopener\" target=\"_blank\"  title=\"Buy now at Amazon\">SONOFF Zigbee 3.0 &amp; Thread Dongle Lite (EFR32MG21) | USB stick coordinator for Home Assistant &amp; Zigbee2MQTT | Compact gateway with simple firmware flash function &amp; extension cable*<\/a>\n                                                <div class=\"atkp-author\">by SONOFF<\/div>\n                    <\/div>\n                    <div class=\"atkp-bottom\">\n                        <div class=\"atkp-ratingbar\">\n                                                            <div class=\"atkp-rating\"><span class=\"atkp-star atkp-star-0 atkp-star-00\" title=\"0.00 of 5 stars\"><\/span><\/div>\n                                                        <div class=\"atkp-primelogo\"><\/div>\n                            <div class=\"atkp-clearfix\"><\/div>\n                        <\/div>\n                                                    <span class=\"atkp-price atkp-saleprice\">\n                                Price: &euro; 24.80\n                                                                    <span class=\"atkp_price atkp-baseprice\"><\/span>\n                                                            <\/span>\n                                                                            <a href=\"https:\/\/www.amazon.de\/dp\/B0G2LTBM1M?tag=sasbro0a-21&linkCode=osi&th=1&psc=1\" rel=\"sponsored nofollow noopener\" target=\"_blank\"  title=\"Buy now at Amazon\" class=\"atkp-button\">Buy now on Amazon*<\/a>\n                        \n                        \n                                                    <span class=\"atkp-priceinfo\">Price incl. VAT, Excl. shipping<\/span>\n                                                                            <div class=\"atkp-shoplogo\">Amazon<\/div>\n                                            <\/div>\n                <\/div>\n                            <div class=\"atkp-box atkp-smallbox atkp-box-3-cols-item atkp-clearfix\">\n                    <div class=\"atkp-thumb\">\n                                                    <img decoding=\"async\" class=\"atkp-image\" src=\"https:\/\/m.media-amazon.com\/images\/I\/31kHS28+J0L._SL160_.jpg\"\n                                 alt=\"SONOFF Zigbee Gateway, ZBDongle-E 3.0 USB Dongle Plus,EFR32MG21 + CH9102F\/CP2102N Zigbee USB-Stick EFR32MG21 Coordinator for ZHA in Home Assistant or Zigbee2MQTT,Open HAB etc.\"\/>\n                                            <\/div>\n                    <div class=\"atkp-content\">\n                                                    <a class=\"atkp-title\" href=\"https:\/\/www.amazon.de\/dp\/B0B6P22YJC?tag=sasbro0a-21&linkCode=osi&th=1&psc=1\" rel=\"sponsored nofollow noopener\" target=\"_blank\"  title=\"Buy now at Amazon\">SONOFF Zigbee Gateway, ZBDongle-E 3.0 USB Dongle Plus,EFR32MG21 + CH9102F\/CP2102N Zigbee USB-Stick EFR32MG21 Coordinator for ZHA in Home Assistant or Zigbee2MQTT,Open HAB etc.*<\/a>\n                                                <div class=\"atkp-author\">by SONOFF<\/div>\n                    <\/div>\n                    <div class=\"atkp-bottom\">\n                        <div class=\"atkp-ratingbar\">\n                                                            <div class=\"atkp-rating\"><span class=\"atkp-star atkp-star-0 atkp-star-00\" title=\"0.00 of 5 stars\"><\/span><\/div>\n                                                        <div class=\"atkp-primelogo\"><\/div>\n                            <div class=\"atkp-clearfix\"><\/div>\n                        <\/div>\n                                                    <span class=\"atkp-price atkp-saleprice\">\n                                Price: \u20ac18.33\n                                                                    <span class=\"atkp_price atkp-baseprice\"><\/span>\n                                                            <\/span>\n                                                                            <a href=\"https:\/\/www.amazon.de\/dp\/B0B6P22YJC?tag=sasbro0a-21&linkCode=osi&th=1&psc=1\" rel=\"sponsored nofollow noopener\" target=\"_blank\"  title=\"Buy now at Amazon\" class=\"atkp-button\">Buy now on Amazon*<\/a>\n                        \n                        \n                                                    <span class=\"atkp-priceinfo\">Price incl. VAT, Excl. shipping<\/span>\n                                                                            <div class=\"atkp-shoplogo\">Amazon<\/div>\n                                            <\/div>\n                <\/div>\n                    <\/div>\n            <\/div>\n\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Unser_Setup_Home_Assistant_Docker_Matter_mit_Thread\"><\/span>Our setup: Home Assistant, Docker &amp; Matter with Thread<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For this setup we use <strong>Home Assistant on a server<\/strong> in one <strong>Docker container<\/strong>. This allows Home Assistant to run <strong>not as supervised version<\/strong>which means:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>We have <strong>No integrated add-ons<\/strong> like the official Matter add-on.<\/li>\n\n\n\n<li>Everything we need, we have to do ourselves in <strong>own Docker containers<\/strong> provide.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore we need in our setup:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>A Matter Server Container<\/strong><br>This container provides the Matter functionality that enables Home Assistant to control Matter devices.<\/li>\n\n\n\n<li><strong>An OpenThread Border Router Container<\/strong><br>This container connects the Thread mesh network with Home Assistant and ensures that Matter can run via Thread.<\/li>\n\n\n\n<li><strong>A thread-compatible USB stick<\/strong><br>The USB stick acts as an interface between the thread devices in the mesh and the OpenThread Border Router Container.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Welchen_USB-Stick_verwenden_wir\"><\/span>Which USB stick do we use?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For our example, we use the <strong>Home Assistant ZBT-1<\/strong> (formerly known as SkyConnect).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>This stick is <strong>Thread-compatible<\/strong> and works reliably in Docker.<\/li>\n\n\n\n<li>Note: <strong>A stick can only be used for one radio protocol at a time.<\/strong>\n<ul class=\"wp-block-list\">\n<li>This means: If you run threads about Matter, you can use the same stick <strong>not simultaneously for Zigbee<\/strong> use.<\/li>\n\n\n\n<li>If you want to use Zigbee in parallel, you need <strong>a second stick<\/strong>e.g. a Zigbee USB dongle.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ubersicht_So_lauft_alles_zusammen\"><\/span>Overview: How it all comes together<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Home Assistant Container<\/strong>\n<ul class=\"wp-block-list\">\n<li>Runs on your server<\/li>\n\n\n\n<li>Does not contain any add-ons<\/li>\n\n\n\n<li>Controls automations and devices via the Matter API<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Matter Server Container<\/strong>\n<ul class=\"wp-block-list\">\n<li>Translates the Matter commands into thread-compatible messages<\/li>\n\n\n\n<li>Connects Home Assistant to the thread mesh<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>OpenThread Border Router Container<\/strong>\n<ul class=\"wp-block-list\">\n<li>Communicates directly with the thread USB stick<\/li>\n\n\n\n<li>Establishes the thread mesh and forwards messages between Matter Server and threaded devices<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Thread-compatible USB stick (ZBT-1 \/ SkyConnect)<\/strong>\n<ul class=\"wp-block-list\">\n<li>Used exclusively for thread<\/li>\n\n\n\n<li>Establishes the connection between physical devices and the OpenThread Router Container<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-voraussetzungen\"><span class=\"ez-toc-section\" id=\"Voraussetzungen\"><\/span>Requirements<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To set up our setup successfully, you should fulfill the following requirements:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Docker_Home_Assistant_in_Docker\"><\/span>1st Docker &amp; Home Assistant in Docker<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Docker<\/strong>Docker must be installed on your server, as both Home Assistant and the required additional containers (Matter Server, OpenThread Border Router) run in it.<\/li>\n\n\n\n<li><strong>Home Assistant in Docker<\/strong>:\n<ul class=\"wp-block-list\">\n<li>We use Home Assistant as <strong>Container solution<\/strong>.<\/li>\n\n\n\n<li>Advantage: simple updates, backups and portability.<\/li>\n\n\n\n<li>Note: If you <strong>a non-Docker version<\/strong> of Home Assistant, the setup also works in principle, but the integration of the additional services then runs <strong>slightly different<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Thread-kompatibler_USB-Stick\"><\/span>2. thread-compatible USB stick<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You will need a Thread USB stick to connect the Thread mesh network to Home Assistant.<\/li>\n\n\n\n<li>Example: <strong>Home Assistant ZBT-1<\/strong> (formerly SkyConnect).<\/li>\n\n\n\n<li><strong>Important:<\/strong> A stick can only ever be <strong>a radio protocol<\/strong> operate. If you want to use Zigbee at the same time, you need <strong>a second USB stick<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_Matter-fahiges_Gerat\"><\/span>3rd Matter-capable device<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You need at least <strong>a device that supports Matter via Thread<\/strong>to be able to test the integration.<\/li>\n\n\n\n<li>Examples: Philips Hue lamps (latest generation), Nanoleaf Shapes, Eve Energy sockets.<\/li>\n\n\n\n<li>These devices form the basis for automations, scenes and smart home control via Home Assistant.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_Zugriff_auf_deinen_Router\"><\/span>4. access to your router<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For the correct setup of Thread &amp; Matter <strong>Access to your router required<\/strong>.<\/li>\n\n\n\n<li>Reasons:\n<ul class=\"wp-block-list\">\n<li>Checking the network connection and activating IPv6<\/li>\n\n\n\n<li>Ensure that Docker containers can access the network (e.g. host network mode or port shares)<\/li>\n\n\n\n<li>Required communication between Matter devices, Border Router and Home Assistant<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-schritt-fur-schritt-anleitung\"><span class=\"ez-toc-section\" id=\"Schritt-fur-Schritt_Anleitung\"><\/span>Step-by-step instructions<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Schritt_1_Thread_USB-Stick_vorbereiten_Home_Assistant_ZBT-1\"><\/span>Step 1: Prepare threaded USB stick (Home Assistant ZBT-1)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before you can use Matter via Thread, your <strong>Thread-compatible USB stick<\/strong> and flashed with the correct firmware. This step is crucial so that the stick can be used as a <strong>OpenThread Border Router<\/strong> works.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Notes on the firmware<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The firmware update via the web flasher is <strong>Only for Home Assistant SkyConnect and Home Assistant ZBT-1 devices<\/strong> available.<\/li>\n\n\n\n<li>The following are supported <strong>only devices purchased after October 20, 2024<\/strong>.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Important: Without the correct firmware, the stick <strong>Do not create a thread mesh<\/strong> and Matter devices do not respond correctly.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Provide USB stick:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use the Home Assistant ZBT-1 Stick (formerly SkyConnect).<\/li>\n\n\n\n<li>Connect the stick to a <strong>PC or laptop<\/strong> which is accessible via USB.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Select firmware:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Open the page: <a href=\"https:\/\/home-assistant-skyconnect.netlify.app\/firmware-update\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/home-assistant-skyconnect.netlify.app\/firmware-update\/<\/a><\/li>\n\n\n\n<li>Select the <strong>Current firmware version<\/strong> for the ZBT-1.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Use Web Flasher:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Write the firmware via the <strong>Silicon Labs Web Flasher<\/strong> directly in the browser on the stick.<\/li>\n\n\n\n<li>To do this, the stick must be connected to the computer.<\/li>\n\n\n\n<li>Select the desired firmware and start the flash process.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/Home-Assistant-Connect-ZBT-1-Thread-Firmware.png?ssl=1\"><img data-recalc-dims=\"1\" data-dominant-color=\"f1f2f2\" data-has-transparency=\"true\" style=\"--dominant-color: #f1f2f2;\" fetchpriority=\"high\" decoding=\"async\" width=\"568\" height=\"236\" src=\"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/Home-Assistant-Connect-ZBT-1-Thread-Firmware.png?resize=568%2C236&#038;ssl=1\" alt=\"\" class=\"wp-image-2759 has-transparency\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Schritt_2_USB-Stick_in_den_Server_einstecken_und_Pfad_ermitteln\"><\/span>Step 2: Insert the USB stick into the server and determine the path<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After the <strong>Home Assistant ZBT-1 Stick<\/strong> was prepared with the thread firmware, plug it into the <strong>Server<\/strong>on which Home Assistant is also running. In order for the containers to be able to access the stick later, you must set the <strong>Exact device name\/path<\/strong> find out.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"So_findest_du_den_USB-Stick_auf_Linux\"><\/span>How to find the USB stick on Linux<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Change to the corresponding directory:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/dev\/serial\/by-id<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Display content:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls -l<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You will then see all the connected serial devices. In our case, for example, it looks like this:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_fe6994e0f338ef119e76e3d154516304-if00-port0 -&gt; ..\/..\/ttyUSB0<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_fe6994e0f338ef119e76e3d154516304-if00-port0<\/strong> is the <strong>Name of the device<\/strong>.<\/li>\n\n\n\n<li><strong>..\/..\/ttyUSB0<\/strong> points to the actual Linux device.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You should follow this path <strong>for the subsequent Docker configuration<\/strong> as the OpenThread Border Router Container needs exactly this USB port to communicate with the stick.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you have several USB sticks, check carefully which stick should be used for Thread.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Schritt_3_IPv6_auf_dem_Linux-Server_aktivieren\"><\/span>Step 3: Activate IPv6 on the Linux server<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">So that <strong>Thread<\/strong> and <strong>Matter<\/strong> work correctly, IPv6 support is required on your server. Thread based <strong>internally to IPv6<\/strong>more precisely on <strong>6LoWPAN over IEEE 802.15.4<\/strong>. Matter uses these IPv6 addresses to reliably address devices and route data packets in the mesh.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why IPv6 is necessary:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Each Thread device requires a <strong>Unique 64-bit address<\/strong>which is provided via IPv6.<\/li>\n\n\n\n<li>Matter communication takes place via thread <strong>via IPv6 multicast<\/strong> for device discovery and automatic configuration.<\/li>\n\n\n\n<li>Without IPv6, the OpenThread Border Router cannot recognize devices and Matter cannot deliver commands correctly.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>sysctl: What is that?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>sysctl<\/code> is a Linux tool with which you can <strong>Kernel parameters at runtime<\/strong> can change.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Example: You can <strong>Activate forwarding<\/strong>i.e. the forwarding of packets between networks.<\/li>\n\n\n\n<li>You can switch IPv6 on or off, accept router advertisements or set maximum prefix lengths.<\/li>\n\n\n\n<li>Changes with <code>sysctl<\/code> apply immediately, but can be lost when restarting, which is why many users use a start script.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-skript-fur-ipv6-amp-docker\"><span class=\"ez-toc-section\" id=\"Skript_fur_IPv6_Docker\"><\/span>Script for IPv6 &amp; Docker<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In my case, I have created a script that starts my <strong>Unraid servers<\/strong> is executed. It activates IPv6 and configures the network interfaces correctly for Docker, Thread and Matter. It also outputs the configuration again to check whether it has been applied.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n#description=This script applies sysctl settings to allow Docker to use IPv6.\n#arrayStarted=true\n#name=Docker Enable IPv6\n\n# Delay before starting\nsleep 10\n\napply_sysctl_settings() {\necho \"Applying sysctl settings...\"\nsysctl -w net.ipv4.conf.all.forwarding=1\nsysctl -w net.ipv6.conf.all.disable_ipv6=0\nsysctl -w net.ipv6.conf.all.forwarding=1 # Activate IPv6 forwarding\nsysctl -w net.ipv6.conf.br0.accept_ra=2 # br0 accepts Router Advertisements\nsysctl -w net.ipv6.conf.br0.accept_ra_rt_info_max_plen=64 # Route information from the RAs can be processed\n\n#Check user script log for info\necho \"Verifying sysctl settings...\"\nsysctl net.ipv4.conf.all.forwarding\nsysctl net.ipv6.conf.all.disable_ipv6\nsysctl net.ipv6.conf.all.forwarding\nsysctl net.ipv6.conf.br0.accept_ra\nsysctl net.ipv6.conf.br0.accept_ra_rt_info_max_plen\n}\n\n#Execute script after delay...\napply_sysctl_settings<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Erklarung_der_wichtigsten_Parameter\"><\/span>Explanation of the most important parameters<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Parameters<\/th><th>Function<\/th><\/tr><\/thead><tbody><tr><td><code>net.ipv4.conf.all.forwarding=1<\/code><\/td><td>Activates IPv4 forwarding between interfaces<\/td><\/tr><tr><td><code>net.ipv6.conf.all.disable_ipv6=0<\/code><\/td><td>Switch on IPv6<\/td><\/tr><tr><td><code>net.ipv6.conf.all.forwarding=1<\/code><\/td><td>Activate IPv6 packet forwarding<\/td><\/tr><tr><td><code>net.ipv6.conf.br0.accept_ra=2<\/code><\/td><td>The interface <code>br0<\/code> Accepts Router Advertisements (RA) for automatic configuration<\/td><\/tr><tr><td><code>net.ipv6.conf.br0.accept_ra_rt_info_max_plen=64<\/code><\/td><td>Maximum prefix length for route information from RA<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Set the script <strong>so that it is executed automatically when the server is started<\/strong>e.g. via <code>\/boot\/config\/go<\/code> for Unraid or systemd-Unit for other Linux servers.<\/li>\n\n\n\n<li>Works without correct IPv6 <strong>Matter about thread not<\/strong>Devices do not appear and automations fail.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Erklarung_Was_ist_br0_und_warum_benotigen_wir_es\"><\/span>Explanation: What is br0 and why do we need it?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>br0<\/strong> is a <strong>Bridge interface<\/strong> under Linux.<\/li>\n\n\n\n<li>It connects several network interfaces with each other and is often used by Docker to integrate containers into the network.<\/li>\n\n\n\n<li>In the context of <strong>Thread &amp; Matter<\/strong> serves <code>br0<\/code> as an interface through which the <strong>OpenThread Border Router Container<\/strong> and the <strong>Matter Server Container<\/strong> communicate with your local network.<\/li>\n\n\n\n<li>IPv6 must be set to <code>br0<\/code> must be activated so that the container <strong>Receive and send IPv6 packets<\/strong> which are necessary for thread and matter communication.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>In short:<\/strong><br><code>br0<\/code> acts as a bridge between your server (Docker host), the containers and the rest of your home network. Without correct IPv6 on <code>br0<\/code> Thread devices could not be recognized via the border router.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"IPv6_im_Router_aktivieren\"><\/span>Activate IPv6 in the router<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">So that <strong>Thread about IPv6<\/strong> works, IPv6 must also be activated in your home network. Otherwise, the border router containers cannot use IPv6 addresses and Matter devices cannot be found.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Beispiel_FRITZBox_6690_Cable\"><\/span>Example: FRITZ!Box 6690 Cable<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Open the FRITZ!Box interface:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Open browser, <code>192.168.178.1<\/code> and log in.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Activate IPv6:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Go to <strong>Internet \u2192 Access data \u2192 IPv6<\/strong>.<\/li>\n\n\n\n<li>Check the box next to <strong>\"Activate IPv6 support\"<\/strong>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Check prefix assignment:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Make sure that the FRITZ! <strong>an IPv6 prefix<\/strong> distributed.<\/li>\n\n\n\n<li>Optional: Check under <strong>Home network \u2192 Network \u2192 Network settings<\/strong>that your server receives an IPv6 address from the router.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Activate Router Advertisements (RA):<\/strong>\n<ul class=\"wp-block-list\">\n<li>Thread requires Router Advertisements to obtain network information automatically.<\/li>\n\n\n\n<li>In the FRITZ!Box, RAs are automatically distributed with activated IPv6.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Testing:<\/strong>\n<ul class=\"wp-block-list\">\n<li>After activation you can check on your server:\n<ul class=\"wp-block-list\">\n<li><code>ip -6 addr show br0<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>You should see an IPv6 address, e.g. <code>fdxx:xxxx:xxxx::xxxx<\/code>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">However, you will only see the IPv6 address if your server also has IPv6 enabled! With Unraid, we also have to do this manually<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Note: For detailed visual steps there are also <strong>Video tutorials<\/strong>in which the IPv6 activation on the FRITZ!Box is shown. This is particularly helpful if you are unsure exactly which settings are required.<\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/FRITZBox-IPv6-Einstellungen-Thread-Matter.png?ssl=1\"><img data-recalc-dims=\"1\" data-dominant-color=\"e8eef3\" data-has-transparency=\"true\" style=\"--dominant-color: #e8eef3;\" decoding=\"async\" width=\"750\" height=\"466\" data-id=\"2756\" src=\"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/FRITZBox-IPv6-Einstellungen-Thread-Matter.png?resize=750%2C466&#038;ssl=1\" alt=\"FRITZBox IPv6 settings Thread Matter\" class=\"wp-image-2756 has-transparency\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/FRITZBox-IPv6-Einstellungen-Thread-Matter_1.png?ssl=1\"><img data-recalc-dims=\"1\" data-dominant-color=\"e8edf3\" data-has-transparency=\"true\" style=\"--dominant-color: #e8edf3;\" decoding=\"async\" width=\"750\" height=\"468\" data-id=\"2757\" src=\"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/FRITZBox-IPv6-Einstellungen-Thread-Matter_1.png?resize=750%2C468&#038;ssl=1\" alt=\"FRITZBox IPv6 settings Thread Matter\" class=\"wp-image-2757 has-transparency\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/FRITZBox-IPv6-Einstellungen-Thread-Matter_2.png?ssl=1\"><img data-recalc-dims=\"1\" data-dominant-color=\"e8edf2\" data-has-transparency=\"true\" style=\"--dominant-color: #e8edf2;\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"464\" data-id=\"2758\" src=\"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/FRITZBox-IPv6-Einstellungen-Thread-Matter_2.png?resize=750%2C464&#038;ssl=1\" alt=\"FRITZBox IPv6 settings Thread Matter\" class=\"wp-image-2758 has-transparency\"\/><\/a><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-schritt-4-ipv6-auf-dem-unraid-server-aktivieren\"><span class=\"ez-toc-section\" id=\"Schritt_4_IPv6_auf_dem_Unraid-Server_aktivieren\"><\/span>Step 4: Activate IPv6 on the (Unraid) server<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">So that <strong>Thread &amp; Matter<\/strong> work correctly via IPv6, IPv6 must also be activated directly on your Unraid server. We will go through this step by step.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Vorbereitung_Docker_und_VM-Service_stoppen\"><\/span>1. preparation: Stop Docker and VM service<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In Unraid, changes must be made to the network protocol, therefore <strong>Docker<\/strong> and <strong>VM service<\/strong> be stopped.<\/li>\n\n\n\n<li>Go to <strong>Settings \u2192 Docker \u2192 Stop Docker service<\/strong> and also <strong>Stop VM service<\/strong>.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Important: As long as these services are running, network changes cannot be applied correctly.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Netzwerkschnittstelle_anpassen\"><\/span>2. adapt the network interface<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In most cases, the main interface of your server is <strong>eth0<\/strong>.<\/li>\n\n\n\n<li>Go to <strong>Settings \u2192 Network \u2192 eth0<\/strong>.<\/li>\n\n\n\n<li>Position at <strong>Network protocol<\/strong> to <strong>IPv4 + IPv6<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_Optional_Statische_IPv6-DNS-Server_hinterlegen\"><\/span>3. optional: store static IPv6 DNS servers<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You can <strong>static IPv6 DNS servers<\/strong> enter, e.g. <code>2001:4860:4860::8888<\/code> (Google DNS).<\/li>\n\n\n\n<li>This is optional, but makes sense if IPv6 connections are to be reliable.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_Docker_und_VM-Service_wieder_starten\"><\/span>4. restart Docker and VM service<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>After the change, you must <strong>Docker<\/strong> and <strong>VM service<\/strong> reactivate.<\/li>\n\n\n\n<li>Go back to <strong>Settings \u2192 Docker<\/strong> and click on <strong>Start<\/strong>.<\/li>\n\n\n\n<li>Likewise for <strong>VM service<\/strong> start.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5_Prufen_ob_IPv6_aktiv_ist\"><\/span>5. check whether IPv6 is active<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pro tip: On the <strong>Page on which Docker is activated\/deactivated<\/strong>you can use the <strong>IP addresses for br0<\/strong> see.<\/li>\n\n\n\n<li>Both the <strong>IPv4 as well as the IPv6 address<\/strong> are displayed.<\/li>\n\n\n\n<li>If an IPv6 address is available, the configuration has been successfully applied.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The Unraid server is now correctly configured for IPv6 and ready to receive the <strong>OpenThread Border Router Container<\/strong> and the <strong>Matter Server Container<\/strong> to operate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Schritt_5_Matter_Server_Docker_Container_installieren\"><\/span>Step 5: Install Matter Server Docker Container<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once the USB stick has been prepared and IPv6 has been activated on the server, we can now start the <strong>Matter Server<\/strong> install in Docker. For this we use <strong>docker-compose<\/strong> for easy administration.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"docker-composeyml_fur_den_Matter_Server\"><\/span>docker-compose.yml for the Matter server<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">services:<br>  matter-server:<br>    container_name: matter-server<br>    image: ghcr.io\/home-assistant-libs\/python-matter-server:stable<br>    restart: unless-stopped<br>    network_mode: host<br>    security_opt:<br>      - apparmor:unconfined<br>    volumes:<br>      - \/mnt\/cache\/appdata\/smart-home\/matter-server:\/data<br>      - \/run\/dbus:\/run\/dbus:ro<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Wichtige_Hinweise\"><\/span>Important notes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1. <code>network_mode: host<\/code><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Why crucial:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Matter and Thread require direct access to the host's network, in particular to <strong>IPv6 multicast<\/strong> and <strong>local ports<\/strong>to discover and control devices in the thread mesh.<\/li>\n\n\n\n<li>If the container is running in standard bridge mode, packets cannot be exchanged correctly between the host and threaded devices.<\/li>\n\n\n\n<li>Therefore: <strong>All relevant containers (Home Assistant, Matter Server, OpenThread Border Router) must be in the <code>host<\/code>-mode run<\/strong>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Advantages of <code>host<\/code> for our setup:\n<ol class=\"wp-block-list\">\n<li>Full network access like the host itself<\/li>\n\n\n\n<li>IPv6 multicast works reliably<\/li>\n\n\n\n<li>Devices in the LAN\/thread mesh are recognized correctly<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">2. volumes<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>\/mnt\/cache\/appdata\/smart-home\/matter-server:\/data<\/code>\n<ul class=\"wp-block-list\">\n<li>Persistent data such as device pairings, certificates and configurations are stored here.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>\/run\/dbus:\/run\/dbus:ro<\/code>\n<ul class=\"wp-block-list\">\n<li>Access to the host's D-Bus, necessary for certain system interactions and Bluetooth.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">3. safety<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>apparmor:unconfined<\/code> allows the container to perform all necessary network operations that would otherwise be restricted by AppArmor.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Zusammenfassung\"><\/span>Summary<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create the file <code>docker-compose.yml<\/code> at a location of your choice, e.g. <code>\/mnt\/cache\/appdata\/smart-home\/matter-server\/<\/code>.<\/li>\n\n\n\n<li>Paste the above content.<\/li>\n\n\n\n<li>Start the container with :<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>docker-compose up -d<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The Matter server should then be running and able to access your network.<\/li>\n\n\n\n<li>Through the <strong>Host network mode<\/strong> it can correctly perform all IPv6 and multicast communications required for Matter over Thread.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Offizielle_Dokumentation\"><\/span>Official documentation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For all details, additional configuration options and updates, see the <strong>official documentation of the Python Matter Server on GitHub<\/strong>:<br><a href=\"https:\/\/github.com\/matter-js\/python-matter-server\/blob\/8aac9b085bbe245832bb837b6b2f22493adc7462\/docs\/docker.md\" target=\"_blank\" rel=\"noreferrer noopener\">Python Matter Server Docker Setup<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Warum_network_mode_host_so_wichtig_ist_%E2%80%93_mDNS\"><\/span>Why <code>network_mode: host<\/code> is so important - mDNS<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In addition to general network access <strong>host mode<\/strong> especially for <strong>mDNS (Multicast DNS)<\/strong> decisive.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What is mDNS?<\/strong>\n<ul class=\"wp-block-list\">\n<li>mDNS is a protocol with which devices in the local network can be <strong>automatically announce and discover their services<\/strong> can.<\/li>\n\n\n\n<li>Devices need mDNS to find each other without having to enter IP addresses manually.<\/li>\n\n\n\n<li>It works via <strong>Multicast<\/strong> to IPv4 and IPv6 so that all devices in the LAN receive the information.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Why it is necessary for Matter\/Thread:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Matter devices use mDNS to register in the network and to be recognized by the Matter server.<\/li>\n\n\n\n<li>Without direct access to the host network, mDNS packets could not reach the container.<\/li>\n\n\n\n<li>With <code>network_mode: host<\/code> the container can <strong>Receive and send multicast packets<\/strong>so that devices are found automatically.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">To summarize: <code>network_mode: host<\/code> is crucial for <strong>IPv6, multicast and mDNS<\/strong>so that the Matter server can correctly detect and control all devices in the thread mesh.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-schritt-6-open-thread-border-router-docker-container-installieren\"><span class=\"ez-toc-section\" id=\"Schritt_6_Open_Thread_Border_Router_Docker_Container_installieren\"><\/span>Step 6: Install Open Thread Border Router Docker Container<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In order for Home Assistant and the Matter server to be able to communicate with Thread devices at all, we need a <strong>OpenThread Border Router<\/strong> (OTBR). This takes on the role of a gateway between your local IP network (IPv6) and the thread mesh.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To this end, we are creating another <code>docker-compose.yml<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n    openthread:\n        image: openthread\/border-router:latest\n        container_name: openthread\n        network_mode: host\n        privileged: true\n        environment:\n            - TZ=Europe\/Berlin\n            - OT_RCP_DEVICE=spinel+hdlc+uart:\/\/\/dev\/ttyUSB0?uart-baudrate=460800\n            - OT_LOG_LEVEL=7\n            - OT_THREAD_IF=wpan0\n            - OT_INFRA_IF=br0\n            - OT_REST_LISTEN_ADDR=0.0.0.0\n            - OT_REST_LISTEN_PORT=9212\n        volumes:\n            - \/mnt\/cache\/appdata\/smart-home\/openthread:\/data:rw\n        devices:\n            - \/dev\/serial\/by-id\/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_fe6994e0f338ef119e76e3d154516304-if00-port0:\/dev\/ttyUSB0\n            - \/dev\/net\/tun:\/dev\/net\/tun\n        cap_add:\n            - NET_ADMIN\n        restart: always<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Erklarung_der_wichtigsten_Parameter-2\"><\/span>Explanation of the most important parameters<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Variable \/ setting<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td><code>network_mode: host<\/code><\/td><td>As with the Matter server, this is essential for multicast, IPv6 and mDNS. This is the only way the OTBR can be correctly visible in the network.<\/td><\/tr><tr><td><code>privileged: true<\/code><\/td><td>Allows direct access to network functions and kernel interfaces, e.g. for creating the wpan0 interface.<\/td><\/tr><tr><td><code>\/dev\/serial\/by-id\/...:\/dev\/ttyUSB0<\/code><\/td><td>Integrates the USB stick as an RCP (Radio Co-Processor). The path must match your stick exactly.<\/td><\/tr><tr><td><code>\/dev\/net\/tun<\/code><\/td><td>Necessary for creating the virtual network interface for the thread mesh.<\/td><\/tr><tr><td><code>cap_add: NET_ADMIN<\/code><\/td><td>Gives the container additional network rights, for example to create wpan0 or route management.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Erklarung_der_wichtigen_Environment-Variablen\"><\/span>Explanation of the important environment variables<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Variable<\/th><th>Function<\/th><\/tr><\/thead><tbody><tr><td><code>OT_RCP_DEVICE=spinel+hdlc+uart:\/\/\/dev\/ttyUSB0?uart-baudrate=460800<\/code><\/td><td>Defines the <strong>Thread radio module (RCP)<\/strong>. Here we talk about <strong>UART + Spinel protocol<\/strong> the connection to the USB stick is established. 460800 baud is standard for the Home Assistant ZBT-1 stick. And actually also for all other sticks.<\/td><\/tr><tr><td><code>OT_LOG_LEVEL=7<\/code><\/td><td>Sets the log level to <strong>Debug<\/strong>. Very helpful when setting up, later you can reduce it to 3 or 4.<\/td><\/tr><tr><td><code>OT_THREAD_IF=wpan0<\/code><\/td><td>Name of the interface that the container uses as <strong>Thread-Mesh Interface<\/strong> created.<\/td><\/tr><tr><td><code>OT_INFRA_IF=br0<\/code><\/td><td>Specifies which interface the OTBR uses to communicate in the local network (LAN) - here our <strong>Linux Bridge br0 with IPv6 support<\/strong>.<\/td><\/tr><tr><td><code>OT_REST_LISTEN_ADDR=0.0.0.0<\/code><\/td><td>The REST API endpoint becomes accessible to all devices in the network.<\/td><\/tr><tr><td><code>OT_REST_LISTEN_PORT=9212<\/code><\/td><td>Port for REST API. Used later for diagnostics or integration with tools.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Offizielle_Referenz\"><\/span>Official reference<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Further possible variables, advanced options and debug tools can be found in the official documentation:<br>\ud83d\udc49 <a href=\"https:\/\/openthread.io\/guides\/border-router\/build-docker\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/openthread.io\/guides\/border-router\/build-docker<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Schritt_7_Thread-Netzwerk_aufbauen_Form_Thread_Network\"><\/span>Step 7: Set up thread network (Form Thread Network)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In order for your OpenThread Border Router to create a new thread network, use the <strong>ot-ctl<\/strong>-interface (OpenThread CLI) to execute the following commands:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"In_die_ot-ctl-Konsole_einsteigen\"><\/span>Entering the ot-ctl console<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If your Border Router Container is already running, you can use <code>docker exec<\/code> open an ot-ctl session:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec -it openthread ot-ctl\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If you run OpenThread natively (not in Docker), you can directly:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ot-ctl\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In the ot-ctl console you will receive a command prompt <code>&gt;<\/code> .<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Neues_Thread-Netzwerk_konfigurieren\"><\/span>Configure new thread network<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1.<\/strong> <strong>Initialize new dataset<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The dataset contains all network parameters (channel, network name, key, etc.):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dataset init new\nDone<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This creates an \"empty\" new dataset. <a href=\"https:\/\/openthread.io\/guides\/border-router\/form-network\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2.<\/strong> <strong>Show dataset<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once the new dataset has been created, you can view it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dataset\nActive Timestamp: 1\nChannel: 15\nWake-up Channel: 16\nChannel Mask: 0x07fff800\nExt PAN ID: 39758ec8144b07fb\nMesh Local Prefix: fdf1:f1ad:d079:7dc0::\/64\nNetwork Key: f366cec7a446bab978d90d27abe38f23\nNetwork Name: OpenThread-5938\nPAN ID: 0x5938\nPSKc: 3ca67c969efb0d0c74a4d8ee923b576c\nSecurity Policy: 672 onrc 0\nDone<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This gives you all the important settings at a glance and lets you know what your network will look like later.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We are still in the <strong><code>ot-ctl<\/code> CLI<\/strong> of the container (<code>docker exec -it openthread ot-ctl<\/code>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3.<\/strong> <strong>Actively adopt dataset<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now we need to activate and start the thread network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After <code>dataset init new<\/code> has been executed, this dataset must be set to active:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dataset commit active\nDone<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This means that the Border Router saves the network configuration permanently (persisted in the container volume).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4.<\/strong> <strong>Activate interface<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The network interface is now switched on:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ifconfig up<br>Done<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Note: This creates the <strong>Thread interface <code>wpan0<\/code><\/strong> logically and brings it into the active state.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. start thread network<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>thread start\nDone<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This will take a few seconds. You can then check the status:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">state<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Once everything is running correctly, you should see one of the following roles:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Role<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td><strong>leader<\/strong><\/td><td>Your border router is the central control device of the mesh network (expected with a fresh network)<\/td><\/tr><tr><td><strong>router<\/strong><\/td><td>Acts as a forwarding node \/ route manager<\/td><\/tr><tr><td><strong>child<\/strong><\/td><td>Subordinate node (common for additional nodes)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Important:<\/strong> If \"detached\" appears \u2192 IPv6 or dataset is not correct. Then check whether <code>br0<\/code> IPv6 is active and the USB stick is correctly integrated.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6. thread interface (<code>wpan0<\/code>) on the host system<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This step will <strong>not in the <code>ot-ctl<\/code> Terminal<\/strong>but <strong>directly on the Linux host<\/strong> executed, i.e. in <strong>Unraid SSH or terminal<\/strong>. Enter the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ifconfig wpan0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If everything has been set up correctly, you will see an output similar to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wpan0: flags=4305 mtu 1280\n        inet6 fe80::3c98:89e8:ddec:bda7 prefixlen 64 scopeid 0x20\n        inet6 fd4d:b3e5:9738:3193:0:ff:fe00:fc00 prefixlen 64 scopeid 0x0\n        inet6 fd4d:b3e5:9738:3193:0:ff:fe00:f800 prefixlen 64 scopeid 0x0\n        inet6 fd4d:b3e5:9738:3193:39c4:ee02:ca9e:2b1d prefixlen 64 scopeid 0x0\n        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC)\n        RX packets 16 bytes 1947 (1.9 KiB)\n        RX errors 0 dropped 3 overruns 0 frame 0\n        TX packets 7 bytes 1152 (1.1 KiB)\n        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Was_bedeutet_das\"><\/span>What does that mean?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 <strong><code>wpan0<\/code> is visible \u2192 OpenThread Border Router has successfully created a network interface<\/strong><br>\u2705 <strong>Multiple IPv6 addresses visible \u2192 Thread mesh has received prefixes and local addresses<\/strong><br>\u2705 <strong>RX\/TX data \u2192 the interface actively sends and receives packets<\/strong> (e.g. multicast for mDNS, mesh communication)<br>\u2705 <strong>Prefix <code>fdxx:<\/code><\/strong> \u2192 this is the mesh-local prefix of your thread network<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Error check:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Will <strong>none <code>wpan0<\/code> Interface<\/strong> displayed \u2192 Container has no rights \/ <code>privileged: true<\/code> is missing or <code>\/dev\/net\/tun<\/code> not bound<\/li>\n\n\n\n<li>Only <code>inet6 fe80::...<\/code> (Link-Local) but no <code>fdxx::<\/code> Prefix \u2192 Network not started correctly \u2192 <code>thread start<\/code> or <code>dataset commit active<\/code> check<\/li>\n<\/ul>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">This means that your <strong>Thread network active at host level and IPv6-routed<\/strong>. It is precisely this visibility that is essential later on so that Home Assistant can automatically recognize the network as a <strong>\"Border router available\"<\/strong> recognizes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-schritt-8-integrationen-in-home-assistant-anbinden\"><span class=\"ez-toc-section\" id=\"Schritt_8_Integrationen_in_Home_Assistant_anbinden\"><\/span>Step 8: Connect integrations in Home Assistant<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When all of this is fulfilled, <strong>Home Assistant automatically recognizes the services via mDNS &amp; IPv6 Multicast<\/strong>. You must <strong>No manual configuration via files<\/strong> everything happens via the UI.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Thread-Integration_hinzufugen_ohne_Eingaben\"><\/span>Add thread integration (without inputs)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Home Assistant \u2192 Settings \u2192 Devices &amp; services \u2192 Add integration<\/strong><\/li>\n\n\n\n<li>Search for <strong>\"Thread\"<\/strong><\/li>\n\n\n\n<li><strong>Important:<\/strong> Here <strong>do not enter anything<\/strong>, simple <strong>add\/confirm<\/strong>.<\/li>\n\n\n\n<li>The Home Assistant then appears under <strong>Settings \u2192 Network \u2192 Thread<\/strong> the entry, but <strong>without active border router<\/strong>only as generic thread management.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u27a1 This step only activates the <strong>Thread infrastructure<\/strong> within Home Assistant, but still <strong>No connection to OTBR<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Open_Thread_Border_Router_Integration_mit_URL-Eingabe\"><\/span>Open Thread Border Router Integration (with URL input)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Add integration once again<\/strong><\/li>\n\n\n\n<li>This time <strong>\"Open Thread Border Router\"<\/strong> select<\/li>\n\n\n\n<li>Here the <strong>REST-API address must be entered manually<\/strong>:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>http:\/\/:9212\nhttp:\/\/192.168.178.29:9212<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Confirm \u2192 Home Assistant connects and reads <strong>Dataset, status &amp; role (leader\/router)<\/strong> from the OTBR.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After that <strong>in the same thread menu under Network \u2192 Thread<\/strong> an active <strong>Border router entry with device details<\/strong>. Another network is then displayed with the name <strong>OpenThread-xxxx<\/strong>. Then you have to click on the button <strong>Make preferred network<\/strong> click to activate the network.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/Thread-Border-Router-in-Home-Assistant.png?ssl=1\"><img data-recalc-dims=\"1\" data-dominant-color=\"171717\" data-has-transparency=\"true\" style=\"--dominant-color: #171717;\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"237\" src=\"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/Thread-Border-Router-in-Home-Assistant.png?resize=750%2C237&#038;ssl=1\" alt=\"\" class=\"wp-image-2763 has-transparency\"\/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Matter_Integration_mit_URL-Eingabe\"><\/span>Matter Integration (with URL input)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Add integration once again<\/strong><\/li>\n\n\n\n<li>This time <strong>\"Matter\"<\/strong> select<\/li>\n\n\n\n<li>Here the <strong>Address<\/strong> not be changed:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>ws:\/\/localhost:5580\/ws<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-was-passiert-nach-der-einrichtung\"><span class=\"ez-toc-section\" id=\"Was_passiert_nach_der_Einrichtung\"><\/span>What happens after installation?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Under <strong>Settings \u2192 Devices &amp; services \u2192 Matter Server<\/strong> you can see whether the connection has been established<\/li>\n\n\n\n<li>You get new options: <strong>\"Add Matter device\"<\/strong><\/li>\n\n\n\n<li>As soon as you have a new <strong>Matter-capable device (e.g. via thread)<\/strong> is set to pairing mode, the option to enter a pairing mode appears in Home Assistant. <strong>Scan the setup code or enter it manually<\/strong> (e.g. <code>XXX-XXX-XXX<\/code>)<\/li>\n\n\n\n<li>Home Assistant uses <strong>Matter first \u2192 then automatic thread picking<\/strong>if the device is thread-based \u2192 <strong>it asks you which thread network should be used<\/strong> (from the OTBR dataset)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-schritt-9-thread-zugangsdaten-mit-home-assistant-app-synchronisieren-ios-amp-android\"><span class=\"ez-toc-section\" id=\"Schritt_9_%F0%9F%93%B1_Thread-Zugangsdaten_mit_Home_Assistant_App_synchronisieren_iOS_Android\"><\/span>Step 9: \ud83d\udcf1 Synchronize thread access data with Home Assistant app (iOS &amp; Android)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Matter about thread works <strong>only then completely<\/strong>when <strong>your smartphone<\/strong> the <strong>Thread network credentials received from Home Assistant<\/strong>.<br>Because: <strong>The smartphone takes on the role of commissioner during pairing<\/strong> and must know the thread network in order to bring in the device.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%F0%9F%94%81_So_aktivierst_du_die_Synchronisation\"><\/span>\ud83d\udd01 How to activate synchronization:<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Open the Home Assistant app on your smartphone (iOS or Android)<\/strong><\/li>\n\n\n\n<li><strong>Profile \/ Settings \u2192 Companion app settings<\/strong><\/li>\n\n\n\n<li><strong>You will find the item under \"Troubleshooting \/ Developer tools\":<\/strong>\n<ul class=\"wp-block-list\">\n<li>\ud83d\udc49 <strong>\"Synchronize thread access data\"<\/strong> (English: <em>\"Sync thread credentials\"<\/em>)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Activate this button or start synchronization<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-schritt-10-matter-gerat-uber-thread-koppeln\"><span class=\"ez-toc-section\" id=\"Schritt_10_Matter_Gerat_uber_Thread_koppeln\"><\/span>Step 10: Pair Matter device via thread<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Example Nanoleaf Essentials E27 (QR code \/ setup code). You need to use your smartphone with the Home Assistant app.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Matter-Gerat_in_HA_hinzufugen\"><\/span>1. add Matter device in HA<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In <strong>Home Assistant \u2192 Settings \u2192 Devices &amp; services \u2192 Add device<\/strong><\/li>\n\n\n\n<li>Selection: <strong>\"Add Matter device\"<\/strong><\/li>\n\n\n\n<li>Home Assistant opens a hint and shows the options:\n<ul class=\"wp-block-list\">\n<li><strong>Scan QR code<\/strong><\/li>\n\n\n\n<li><strong>Enter setup code manually<\/strong> (<code>XXX-XXX-XXX<\/code> format)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 For the <strong>Nanoleaf Essentials<\/strong> you will find the code <strong>on the lamp holder or enclosed card<\/strong>. Alternatively, you can scan the QR code directly with the <strong>HA Companion App<\/strong> scan.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Mit_Smartphone_koppeln_Commissioning-Prozess\"><\/span>2. pair with smartphone (commissioning process)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>HA app opens camera \/ input field<\/strong><\/li>\n\n\n\n<li>Scan the <strong>Matter QR code<\/strong><\/li>\n\n\n\n<li>Confirm \u2192 Home Assistant starts the <strong>Matter picking<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-3-gerat-joint-dem-thread-netzwerk\"><span class=\"ez-toc-section\" id=\"3_Gerat_joint_dem_Thread-Netzwerk\"><\/span>3rd device joint the Thread network<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The Nanoleaf lamp now automatically connects to the OTBR (<strong>via wpan0 \/ Border Router<\/strong>)<\/li>\n\n\n\n<li>Home Assistant shows the progress:\n<ul class=\"wp-block-list\">\n<li>\u2705 Matter connection established<\/li>\n\n\n\n<li>\u2705 Device added to the thread network<\/li>\n\n\n\n<li>Services initialized<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 After a successful join, the light appears <strong>Directly in Home Assistant as a new device with Matter integration<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"youtube\"><span class=\"ez-toc-section\" id=\"Umsetzung_im_YouTube-Video\"><\/span>YouTube video implementation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n\n\n<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"How to get Thread running in Home Assistant! Matter with Thread in Docker!\" width=\"750\" height=\"422\" src=\"https:\/\/www.youtube.com\/embed\/Kb8c9mDsYe0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n<p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-fazit\"><span class=\"ez-toc-section\" id=\"Fazit\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With this setup, you have not only <strong>Matter and thread support integrated into Home Assistant<\/strong>but at the same time the basis for a <strong>Stable, fast and future-proof smart home<\/strong> created - and that completely <strong>without supervisor and add-ons<\/strong>purely via Docker.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You know now:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What Matter and Thread really mean<\/strong> and how they differ from Zigbee or WLAN<\/li>\n\n\n\n<li><strong>Why IPv6 and mDNS are indispensable<\/strong> for Matter and how to activate them cleanly at server, Docker and router level<\/li>\n\n\n\n<li>How to create a <strong>Home Assistant ZBT-1 USB stick flashes correctly on Thread<\/strong> and integrates it into the system via OTBR<\/li>\n\n\n\n<li><strong>Why the host network mode is essential<\/strong> is - not optional<\/li>\n\n\n\n<li>How to talk about <strong>Matter server, OTBR and thread integration<\/strong> link all building blocks together<\/li>\n\n\n\n<li><strong>How pairing really works - including smartphone thread sync<\/strong>which is often forgotten<\/li>\n\n\n\n<li>And finally: <strong>How to integrate a real Matter device like the Nanoleaf Essentials lamp<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 This means you are no longer reliant on manufacturer clouds, <strong>Your devices transmit locally, energy-efficiently and at lightning speed<\/strong>and you have full control - just like a real smart home deserves.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%F0%9F%94%97_Nutzliche_Links_auf_einen_Blick\"><\/span>\ud83d\udd17 Useful links at a glance<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Topic<\/th><th>Link<\/th><\/tr><\/thead><tbody><tr><td>Thread Firmware Flash for HA ZBT-1<\/td><td><a href=\"https:\/\/home-assistant-skyconnect.netlify.app\/firmware-update\/\">https:\/\/home-assistant-skyconnect.netlify.app\/firmware-update\/<\/a><\/td><\/tr><tr><td>Matter Server Docker Docs<\/td><td><a href=\"https:\/\/github.com\/matter-js\/python-matter-server\/blob\/main\/docs\/docker.md\">https:\/\/github.com\/matter-js\/python-matter-server\/blob\/main\/docs\/docker.md<\/a><\/td><\/tr><tr><td>OpenThread Border Router Guide<\/td><td><a href=\"https:\/\/openthread.io\/guides\/border-router\/build-docker\">https:\/\/openthread.io\/guides\/border-router\/build-docker<\/a><\/td><\/tr><tr><td>Network setup with OTBR<\/td><td><a href=\"https:\/\/openthread.io\/guides\/border-router\/form-network?utm_source=chatgpt.com\">https:\/\/openthread.io\/guides\/border-router\/form-network<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div id=\"jp-block-themeisle-blocks-font-awesome-icons-8c6d8bc1\" class=\"wp-block-themeisle-blocks-font-awesome-icons jp-block-themeisle-blocks-font-awesome-icons\"><span class=\"wp-block-themeisle-blocks-font-awesome-icons-container\"><a href=\"https:\/\/sascha-brockel.de\/en\/#contact\" target=\"_self\" rel=\"noopener noreferrer\"><i class=\"fas fa-business-time\"><\/i><\/a><\/span><\/div>\n\n\n\n<h4 id=\"jp-block-themeisle-blocks-advanced-heading-baa7fa4c\" class=\"wp-block-themeisle-blocks-advanced-heading jp-block-themeisle-blocks-advanced-heading-baa7fa4c jp-block-themeisle-blocks-advanced-heading ticss-116fe371\">Interested, but lack time or knowledge?<\/h4>\n\n\n\n<p id=\"jp-block-themeisle-blocks-advanced-heading-16f35f43\" class=\"wp-block-themeisle-blocks-advanced-heading jp-block-themeisle-blocks-advanced-heading-16f35f43 jp-block-themeisle-blocks-advanced-heading ticss-0e2b851d\">No problem. Contact me and we will discuss your requirements. No matter if business or private.<\/p>\n\n\n\n<div id=\"jp-block-themeisle-blocks-button-group-77e0455a\" class=\"wp-block-themeisle-blocks-button-group wp-block-buttons align-center jp-block-themeisle-blocks-button-group jp-block-buttons\">\n<div id=\"jp-block-themeisle-blocks-button-c6fb3687\" class=\"wp-block-themeisle-blocks-button wp-block-button jp-block-themeisle-blocks-button jp-block-button\"><a href=\"https:\/\/sascha-brockel.de\/en\/#contact\" target=\"_self\" rel=\"noopener noreferrer\" class=\"wp-block-button__link\"><i class=\"fas fa-fw fa-phone-volume margin-right\"><\/i><span>Contact<\/span><\/a><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Smart-Home-Fans aufgepasst! Wenn du deine Ger\u00e4te zukunftssicher vernetzen willst, f\u00fchrt kein Weg an Thread und Matter vorbei. In diesem Artikel zeige ich dir Schritt f\u00fcr Schritt, wie du beides direkt in Home Assistant in Docker einrichtest. Am Ende steuerst du deine smarten Ger\u00e4te zuverl\u00e4ssig und plattform\u00fcbergreifend. Die Einrichtung eines Thread [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2765,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":false,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[32],"tags":[46,99,28,98],"class_list":["post-2746","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-smart-home","tag-home-assistant","tag-matter","tag-smart-home","tag-thread"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.8 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Thread &amp; Matter in Home Assistant mit Docker einrichten - Sascha Brockel<\/title>\n<meta name=\"description\" content=\"Lerne, wie du Thread &amp; Matter mit Home Assistant in Docker einrichtest \u2013 Schritt-f\u00fcr-Schritt, alles in Containern, ohne VM.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Thread &amp; Matter in Home Assistant mit Docker einrichten\" \/>\n<meta property=\"og:description\" content=\"Lerne, wie du Thread &amp; Matter mit Home Assistant in Docker einrichtest \u2013 Schritt-f\u00fcr-Schritt, alles in Containern, ohne VM.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/\" \/>\n<meta property=\"og:site_name\" content=\"Sascha Brockel\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-27T11:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-14T03:09:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/pexels-photo-2881229.jpeg?fit=1880%2C1251&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1880\" \/>\n\t<meta property=\"og:image:height\" content=\"1251\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sascha Brockel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@saschabrockel\" \/>\n<meta name=\"twitter:site\" content=\"@saschabrockel\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sascha Brockel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"25 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/\"},\"author\":{\"name\":\"Sascha Brockel\",\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/#\\\/schema\\\/person\\\/3675ac2cf16fa04c60aca4dedca5c970\"},\"headline\":\"Thread &amp; Matter in Home Assistant mit Docker einrichten\",\"datePublished\":\"2025-10-27T11:00:00+00:00\",\"dateModified\":\"2026-01-14T03:09:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/\"},\"wordCount\":4309,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/#\\\/schema\\\/person\\\/3675ac2cf16fa04c60aca4dedca5c970\"},\"image\":{\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/sascha-brockel.de\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/pexels-photo-2881229.jpeg?fit=1880%2C1251&ssl=1\",\"keywords\":[\"Home Assistant\",\"Matter\",\"Smart Home\",\"Thread\"],\"articleSection\":[\"Smart Home\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/en\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/\",\"url\":\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/\",\"name\":\"Thread &amp; Matter in Home Assistant mit Docker einrichten - Sascha Brockel\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/sascha-brockel.de\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/pexels-photo-2881229.jpeg?fit=1880%2C1251&ssl=1\",\"datePublished\":\"2025-10-27T11:00:00+00:00\",\"dateModified\":\"2026-01-14T03:09:14+00:00\",\"description\":\"Lerne, wie du Thread & Matter mit Home Assistant in Docker einrichtest \u2013 Schritt-f\u00fcr-Schritt, alles in Containern, ohne VM.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/sascha-brockel.de\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/pexels-photo-2881229.jpeg?fit=1880%2C1251&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/sascha-brockel.de\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/pexels-photo-2881229.jpeg?fit=1880%2C1251&ssl=1\",\"width\":1880,\"height\":1251,\"caption\":\"Photo by Brett Sayles on Pexels.com\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/thread-matter-in-home-assistant-mit-docker-einrichten\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/sascha-brockel.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Thread &amp; Matter in Home Assistant mit Docker einrichten\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/#website\",\"url\":\"https:\\\/\\\/sascha-brockel.de\\\/\",\"name\":\"Sascha Brockel\",\"description\":\"Fortschritt kennt keine Grenzen\",\"publisher\":{\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/#\\\/schema\\\/person\\\/3675ac2cf16fa04c60aca4dedca5c970\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sascha-brockel.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/sascha-brockel.de\\\/#\\\/schema\\\/person\\\/3675ac2cf16fa04c60aca4dedca5c970\",\"name\":\"Sascha Brockel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/sascha-brockel.de\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/Brockel_Sascha_3_3zu4-Grau.png?fit=709%2C945&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/sascha-brockel.de\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/Brockel_Sascha_3_3zu4-Grau.png?fit=709%2C945&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/sascha-brockel.de\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/Brockel_Sascha_3_3zu4-Grau.png?fit=709%2C945&ssl=1\",\"width\":709,\"height\":945,\"caption\":\"Sascha Brockel\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/sascha-brockel.de\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/Brockel_Sascha_3_3zu4-Grau.png?fit=709%2C945&ssl=1\"},\"sameAs\":[\"https:\\\/\\\/sascha-brockel.de\\\/\",\"https:\\\/\\\/www.instagram.com\\\/saschabrockel\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/sascha-brockel-b20725164\\\/\",\"https:\\\/\\\/x.com\\\/saschabrockel\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCogo25FboCahP7s8--HDuIQ\"]}]}<\/script>\n<meta property=\"og:video\" content=\"https:\/\/www.youtube.com\/embed\/Kb8c9mDsYe0\" \/>\n<meta property=\"og:video:type\" content=\"text\/html\" \/>\n<meta property=\"og:video:duration\" content=\"844\" \/>\n<meta property=\"og:video:width\" content=\"480\" \/>\n<meta property=\"og:video:height\" content=\"270\" \/>\n<meta property=\"ya:ovs:adult\" content=\"false\" \/>\n<meta property=\"ya:ovs:upload_date\" content=\"2025-10-27T11:00:00+00:00\" \/>\n<meta property=\"ya:ovs:allow_embed\" content=\"true\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Set up Thread &amp; Matter in Home Assistant with Docker - Sascha Brockel","description":"Learn how to set up Thread &amp; Matter with Home Assistant in Docker - step-by-step, all in containers, without VM.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/","og_locale":"en_US","og_type":"article","og_title":"Thread &amp; Matter in Home Assistant mit Docker einrichten","og_description":"Lerne, wie du Thread & Matter mit Home Assistant in Docker einrichtest \u2013 Schritt-f\u00fcr-Schritt, alles in Containern, ohne VM.","og_url":"https:\/\/sascha-brockel.de\/en\/set-up-thread-matter-in-home-assistant-with-docker\/","og_site_name":"Sascha Brockel","article_published_time":"2025-10-27T11:00:00+00:00","article_modified_time":"2026-01-14T03:09:14+00:00","og_image":[{"width":1880,"height":1251,"url":"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/pexels-photo-2881229.jpeg?fit=1880%2C1251&ssl=1","type":"image\/jpeg"}],"author":"Sascha Brockel","twitter_card":"summary_large_image","twitter_creator":"@saschabrockel","twitter_site":"@saschabrockel","twitter_misc":{"Written by":"Sascha Brockel","Est. reading time":"25 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/#article","isPartOf":{"@id":"https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/"},"author":{"name":"Sascha Brockel","@id":"https:\/\/sascha-brockel.de\/#\/schema\/person\/3675ac2cf16fa04c60aca4dedca5c970"},"headline":"Thread &amp; Matter in Home Assistant mit Docker einrichten","datePublished":"2025-10-27T11:00:00+00:00","dateModified":"2026-01-14T03:09:14+00:00","mainEntityOfPage":{"@id":"https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/"},"wordCount":4309,"commentCount":6,"publisher":{"@id":"https:\/\/sascha-brockel.de\/#\/schema\/person\/3675ac2cf16fa04c60aca4dedca5c970"},"image":{"@id":"https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/pexels-photo-2881229.jpeg?fit=1880%2C1251&ssl=1","keywords":["Home Assistant","Matter","Smart Home","Thread"],"articleSection":["Smart Home"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/sascha-brockel.de\/en\/#organization"}},{"@type":"WebPage","@id":"https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/","url":"https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/","name":"Set up Thread &amp; Matter in Home Assistant with Docker - Sascha Brockel","isPartOf":{"@id":"https:\/\/sascha-brockel.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/#primaryimage"},"image":{"@id":"https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/pexels-photo-2881229.jpeg?fit=1880%2C1251&ssl=1","datePublished":"2025-10-27T11:00:00+00:00","dateModified":"2026-01-14T03:09:14+00:00","description":"Learn how to set up Thread &amp; Matter with Home Assistant in Docker - step-by-step, all in containers, without VM.","breadcrumb":{"@id":"https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/#primaryimage","url":"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/pexels-photo-2881229.jpeg?fit=1880%2C1251&ssl=1","contentUrl":"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/pexels-photo-2881229.jpeg?fit=1880%2C1251&ssl=1","width":1880,"height":1251,"caption":"Photo by Brett Sayles on Pexels.com"},{"@type":"BreadcrumbList","@id":"https:\/\/sascha-brockel.de\/thread-matter-in-home-assistant-mit-docker-einrichten\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/sascha-brockel.de\/"},{"@type":"ListItem","position":2,"name":"Thread &amp; Matter in Home Assistant mit Docker einrichten"}]},{"@type":"WebSite","@id":"https:\/\/sascha-brockel.de\/#website","url":"https:\/\/sascha-brockel.de\/","name":"Sascha Brockel","description":"Progress knows no boundaries","publisher":{"@id":"https:\/\/sascha-brockel.de\/#\/schema\/person\/3675ac2cf16fa04c60aca4dedca5c970"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sascha-brockel.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/sascha-brockel.de\/#\/schema\/person\/3675ac2cf16fa04c60aca4dedca5c970","name":"Sascha Brockel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2023\/10\/Brockel_Sascha_3_3zu4-Grau.png?fit=709%2C945&ssl=1","url":"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2023\/10\/Brockel_Sascha_3_3zu4-Grau.png?fit=709%2C945&ssl=1","contentUrl":"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2023\/10\/Brockel_Sascha_3_3zu4-Grau.png?fit=709%2C945&ssl=1","width":709,"height":945,"caption":"Sascha Brockel"},"logo":{"@id":"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2023\/10\/Brockel_Sascha_3_3zu4-Grau.png?fit=709%2C945&ssl=1"},"sameAs":["https:\/\/sascha-brockel.de\/","https:\/\/www.instagram.com\/saschabrockel\/","https:\/\/www.linkedin.com\/in\/sascha-brockel-b20725164\/","https:\/\/x.com\/saschabrockel","https:\/\/www.youtube.com\/channel\/UCogo25FboCahP7s8--HDuIQ"]}]},"og_video":"https:\/\/www.youtube.com\/embed\/Kb8c9mDsYe0","og_video_type":"text\/html","og_video_duration":"844","og_video_width":"480","og_video_height":"270","ya_ovs_adult":"false","ya_ovs_upload_date":"2025-10-27T11:00:00+00:00","ya_ovs_allow_embed":"true"},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/sascha-brockel.de\/wp-content\/uploads\/2025\/12\/pexels-photo-2881229.jpeg?fit=1880%2C1251&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sascha-brockel.de\/en\/wp-json\/wp\/v2\/posts\/2746","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sascha-brockel.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sascha-brockel.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sascha-brockel.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sascha-brockel.de\/en\/wp-json\/wp\/v2\/comments?post=2746"}],"version-history":[{"count":11,"href":"https:\/\/sascha-brockel.de\/en\/wp-json\/wp\/v2\/posts\/2746\/revisions"}],"predecessor-version":[{"id":2961,"href":"https:\/\/sascha-brockel.de\/en\/wp-json\/wp\/v2\/posts\/2746\/revisions\/2961"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sascha-brockel.de\/en\/wp-json\/wp\/v2\/media\/2765"}],"wp:attachment":[{"href":"https:\/\/sascha-brockel.de\/en\/wp-json\/wp\/v2\/media?parent=2746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sascha-brockel.de\/en\/wp-json\/wp\/v2\/categories?post=2746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sascha-brockel.de\/en\/wp-json\/wp\/v2\/tags?post=2746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}