Using ESPHome

ESPHome et thread

Voiçi la configuration utilisée pour la programmation du ESP32-C6.

Quelques remarques:

Les section esphome, esp32 et api sont nécessaires

  • esphome définit la configuration d’esphome particulière à l’appareil, eg. le nom de l’appareil, la configuration de la compilation (compile_process_limit: 1, mon homeassistant étant sous raspberry pi 3, il est nécessaire de limiter a une thread la compilation pour éviter la saturation de la mémoire)
  • esp32 les caractéristiques du board utilisé, dans le cas de thread les esp32 C6 et H2 dev kits sont reconnus (quoique le H2 n’apparait pas dans les propositions de la mise en place d’un nouvel appareil),
  • Comme Device, j’ai utilisé un esp32-C6 qui intègre un LED RGB et un cqpteur de température interne (CPU).
  • la section openthread définit la configuration du réseau openthread dans lequel l’appareil doit être intégré. Pour cela il faut le tlv du réseau, ce TLV (Type Length Value) contient les information nécessaire pour rejoindre le réseau et échanger des données avec les autres appareils du réseau (Obtention du TLV), Obtenir le TLV

Essai de ESPHome trhead et ESP32-C6

Cette configuratio permettra de commander la LED RGB a partir d’HA et d’obtenir les infos thread ainsi que la témpérature du CPU.

Configuration ESPHome:

esphome:
name: esp32c6
friendly_name: OpenThread
    #raspberry pi 3 pour éviter des problème de mémoire lors de la compilation
    #limiter le nombre de thread de compilation à 1, mon raspberry pi 3 n'ayant pas assez de mémoires
    compile_process_limit: 1

#configuration du module esp
esp32:
    board: esp32-c6-devkitm-1
    flash_size: 4MB
    variant: ESP32C6
    framework:
        type: esp-idf

#Enable logging
logger:

#Enable Home Assistant API
api:
    encryption:
        key: "Votre Clé d'encryption"

#thread fonctionne en IPv6
network:
    enable_ipv6: true

#le capteur de température du CPU va fournir des données

sensor:
- platform: internal_temperature
    name: "Internal Temperature"

#wifi:
#le WiFi n'est pas configuré pour n'utiliser que la connexion thread
#ssid: "SSID"
#password: "Mot de passe wifi"

#Valeur OpenThread TLV obtenue de l'intégration homeassistant

openthread:
    tlv: 0e08000000000001000000030000124a0300000e35060004001fffe00208014be7ffb4e740a10708fd823dfaeff4a69a05107ff06edd67ede1de0eae341a0faa49a8030f4f70656e5468726561642d32306332010220c20410cd85d1613637a40ea4717dade5ca6f050c0402a0f7f8

#capteurs texte avec les infos thread
text_sensor:
    - platform: openthread_info
        ip_address:
        name: "IP Address"
        channel:
        name: "Channel"
        role:
        name: "Device Role"
        rloc16:
        name: "RLOC16"
        ext_addr:
        name: "Extended Address"
        eui64:
        name: "EUI64 Interface ID"
        network_name:
        name: "Network Name"
        network_key:
        name: "Network Key"
        pan_id:
        name: "PAN ID"
        ext_pan_id:
        name: "Extended PAN ID"
#configurer la LED RGB interne avec des effets dynamiques
light:
    - platform: esp32_rmt_led_strip
        rgb_order: GRB
        pin: GPIO8
        num_leds: 1
        chipset: WS2812
        id: status_led
        name: "Light"
        icon: "mdi:led-outline"
        default_transition_length: 0.25s
        effects:
        - random:
        - flicker:
        - addressable_rainbow:

Après compilation et installation sur le module esp32-C6 (procédure habituelle ESPHOME), celui ci se connecte au routeur de bordure et apparait dans HomeAssistant dans les devices d’ESPHOME.

Device ESPHOME

Les information disponibles sont bien indiquées par le device;

Info device

Et peuvent être placées dans une carte

Carte