Thread

Expérimentation avec OpenThread

Thread qu’est-ce ?

Thread® est un protocole de mise en réseau basé sur IPv6, conçu pour les appareils basse consommation de l’Internet des objets dans un réseau maillé sans fil IEEE 802.15.4-2006, communément appelé WPAN (Wireless Personal Area Network). Thread est indépendant des autres protocoles de réseau maillé 802.15, tels que ZigBee, Z-Wave et Bluetooth LE.

Les principales fonctionnalités de Thread sont les suivantes:

  • Simplicité — Installation, démarrage et opération simples
  • Sécurité : tous les appareils d’un réseau Thread sont authentifiés et toutes les communications sont chiffrées
  • Fiabilité : mise en réseau du réseau maillé autoréparable, sans point de défaillance unique, et techniques à spectre étendu pour éliminer les interférences
  • Efficacité : les appareils Thread à faible consommation d’énergie peuvent dormir et fonctionner sur batterie pendant des années
  • Évolutivité : les réseaux Thread peuvent évoluer jusqu’à des centaines d’appareils

Le réseau Thread

Thread est basé sur l’IP V6, chaque appareil est donc pourvu d’une adressse IPV6 qui prend en charge la couche réseau (adressage/routage …)

Thread est aussi implémenté sur le niveau 1 sur du sans fil (2,4 GHz), sur un canal, attention la bande des 2.4 GHz est partagée avec le WiFi, le bluetooth et les … four à micro onde.

Co-existence of IEEE 802.15.4 at 2.4 GHz

Analyse spectrale; centré sur 2.445 GHz span de 20 MHz. Le signal thread est au centre, avec un span de 2 MHz.

Canal 19 Canal 19 waterfall

Pour adresser un device thread à partir d’un réseau IPV4/V6 filaire, il nous faut donc un Border router qui va permettre aux deux réseaux de communiquer (comme le routeur WiFi permet aux appareils WiFi de communiquer aves les appareilsconnecté via un câble ethernet).

Les border routers sont disponibles sur des appareils commerciaux chez Apple (Apple TV 4K 2nd Gen, HomePod 2nd gen, Home Pod Mini), Amazon Echo, Google Nest, Smart things, Nano Leaf, Aqara …

Pour rester dans la philosophie de l’expérimentation, j’ai donc choisi le ESP32 Border Routeur expressif dans sa version intégrée, il consiste d’un ESP32-S3 (CPU) et d’un ESP32-H2 (partie RF)

Homeassistant

Homeassistant possède une intégration Thread qui permet de communiquer avec un réseau Thread en IPV6.

Cette intégration permet de véhiculer les messages vers les appareils à travers le border router, on remarque que plusieurs border routeurs peuvent être définis dans l’intégration.

Openthread BR

Pour pouvoir utiliser un border router openthread il faut ajouter l’intégration openthread et la configurer. OTBR Integration

La configuration en est assez simple, il suffit de spécifier l’adresse IP (habituelement une adresse IPV4) du border routeur et de son port de communication IP.

Un fois ceci fait, il faut rajouter le Open Thread Border Routeur à l’intégration Thread (normalement détecté automatiquement).