diff --git a/components/images/openthread.png b/components/images/openthread.png new file mode 100644 index 0000000000..517410baa4 Binary files /dev/null and b/components/images/openthread.png differ diff --git a/components/openthread.rst b/components/openthread.rst new file mode 100644 index 0000000000..8470c652d6 --- /dev/null +++ b/components/openthread.rst @@ -0,0 +1,65 @@ +OpenThread Component +===================== + +.. seo:: + :description: Instructions for setting up OpenThread component. + :image: openthread.png + +`Thread `__ is a low-power mesh networking standard for IoT devices. The low-power aspect is important for battery-powered smart home devices. However, it’s also low-bandwidth, making it ideal for applications that don’t send a lot of data, like switches or motion sensors. + +Thread uses the same RF technology as Zigbee (IEEE 802.15.4) but provides IP connectivity similar to Wi-Fi. Unlike Zigbee, Thread by itself does not allow controlling devices: It is just a communication protocol. To control the Thread devices, a higher-level protocol is required: Matter or Apple HomeKit or `ESPHome API `__ . + +The purpose of this component is to allow ESPHome nodes to communicate over a Thread network. It permits the state of sensors and binary sensors to be send to Home Assistant via 6LoWPAN packets. This OpenThread component relies on `OpenThread `__ which is an open-source implementation of Thread. + +.. note:: + + You will need a `Thread border router `__ to connect your node to a Thread network. + + +Usage +----- +This component requires an ESP32 (ESP32-C6 or ESP32-H2 because they have Thread radio chip) and the use of +ESP-IDF. + +.. code-block:: yaml + + # Example ESP-IDF configuration for ESP32-C6-DevKitM-1 board + esp32: + board: esp32-c6-devkitm-1 + variant: esp32c6 + framework: + type: esp-idf + version: "5.3.1" + platform_version: 6.8.1 + +.. _config-openthread: + + +Configuration examples +---------------------- + +This example show how to configure Thread Dataset for a node. + +.. code-block:: yaml + + # Example OpenThread component configuration + network: + enable_ipv6: true + + openthread: + channel: 13 + network_name: OpenThread-8f28 + network_key: dfd34f0f05cad978ec4e32b0413038ff + panid: 0x8f28 + extpanid: d63e8e3e495ebbc3 + pskc: c23a76e98f1a6483639b1ac1271e2e27 + +Configuration variables: + +- **channel** (int): Channel number from 11 to 26 +- **network_name** (string): A human-readable Network Name +- **network_key** (string): OpenThread network key +- **panid** (string): 2-byte Personal Area Network ID (PAN ID) +- **extpanid** (string): 8-byte Extended Personal Area Network ID (XPAN ID) +- **pskc** (string): PSKc is used to authenticate an external Thread Commissioner to a Thread network + diff --git a/images/openthread.png b/images/openthread.png new file mode 100644 index 0000000000..7eac8f2b9f Binary files /dev/null and b/images/openthread.png differ diff --git a/index.rst b/index.rst index a90547b783..6dd78b4139 100644 --- a/index.rst +++ b/index.rst @@ -207,6 +207,7 @@ Network Protocols WireGuard, components/wireguard, wireguard_custom_logo.svg, dark-invert StatsD, components/statsd, connection.svg, dark-invert UDP, components/udp, udp.svg + OpenThread, components/openthread, openthread.png Bluetooth/BLE -------------