Home Assistant : Contrôler un ESP32 via ESPHome en moins de 20 minutes
ESP32, ESPHome, késako ?
Les microcontrôleurs ESP32 sont des microcontrôleurs avec Wi-Fi et Bluetooth intégré.
ESPHome est un outil qui va permettre de programmer et contrôler ces cartes à distance et notamment :
- activer des composants (relais, interrupteurs, LEDs...) ;
- récupérer des données depuis des capteurs (température, humidité, présence...),
- …
C’est une porte d’entrée parfaite pour l’automatisation DIY (Do It Yourself).
Prérequis
Dans mon article, j'utilise l'intégration ESPHome pour Home Assistant. Avant de commencer, assurez-vous d’avoir :
- Une instance Home Assistant fonctionnelle, avec un accès à Internet pour installer les modules ;
- Une carte ESP32 avec un port USB pour le premier flash du firmware ;
- Un ordinateur avec un navigateur compatible avec l’API Web Serial (comme Google Chrome ou Microsoft Edge) pour téléverser le firmware ESPHome ;
- Un câble USB pour relier la carte à l'ordinateur pour le premier flash.
Installation d’ESPHome dans Home Assistant
Commencez par installer le module complémentaire ESPHome :
- Allez dans
Paramètres
>Modules complémentaires
>Boutique des modules complémentaires
; - Cherchez
ESPHome Device Builder
dans la liste ;Liste des modules complémentaires - Cliquez sur
Installer
, puisDémarrer
une fois l’installation terminée.Page de gestion du module
Vous pouvez également configurer le module pour qu’il se mette à jour automatiquement ou apparaisse dans la barre latérale de Home Assistant.
Personnellement, je n'ai pas activé le lancement automatique. Le plugin sert à intégrer et configurer les ESP32, mais une fois fait, ils fonctionneront même avec le plugin arrêté.
Intégration de l’ESP32 à ESPHome
Bonne et mauvaise nouvelle :
- La mauvaise : pour le premier flash du firmware, vous devez utiliser un navigateur compatible avec l’API Web Serial (Chrome ou Edge) ;
- La bonne : une fois le firmware installé, les mises à jour se feront ensuite sans fil (Over The Air), depuis n’importe quel navigateur.
Branchez maintenant votre ESP32 en USB à votre ordinateur.
Dans l’interface d’ESPHome :
- Cliquez sur
+ New Device
; - Donnez-lui un nom et entrez les informations de votre réseau Wi-Fi (SSID et mot de passe) si cela est demandé (première configuration) ;
Ajout d'un microcontrôleur - Suivez les instructions pour flasher l'ESP32 avec le firmware.
Si votre navigateur n’est pas compatible, ESPHome vous proposera un fichier .bin
à télécharger, que vous pourrez ensuite flasher via le site officiel ESPHome (https://web.esphome.io) dans un navigateur compatible.
Une fois le flash terminé, votre ESP32 redémarre et se connecte à votre Wi-Fi. Il devrait apparaître en ligne dans l’interface ESPHome sous quelques secondes.

Ajout de l’appareil dans Home Assistant
Retournez dans Home Assistant, et vous verrez une notification vous proposant d’ajouter un nouvel appareil découvert sur le réseau. Cliquez sur Ajouter, et votre ESP32 apparaîtra dans la liste des appareils.
Pour l’instant, aucun capteur ni action n’est encore configuré. Passons à la suite pour enrichir ses fonctionnalités.
Configuration de base du module
Pour configurer les actions de votre carte, il faut appuyer sur Edit
sur votre composant.
Vous devriez trouver une configuration similaire à celle-ci :
(yaml)1esphome: 2 name: mon_esp32 3 friendly_name: mon_esp32 4 5esp32: 6 board: esp32dev 7 framework: 8 type: arduino 9 10# Enable logging 11logger: 12 13# Enable Home Assistant API 14api: 15 encryption: 16 key: "key" 17 18ota: 19 - platform: esphome 20 password: "password" 21 22wifi: 23 ssid: !secret wifi_ssid 24 password: !secret wifi_password 25 26 # Enable fallback hotspot (captive portal) in case wifi connection fails 27 ap: 28 ssid: "Test Fallback Hotspot" 29 password: "password" 30 31captive_portal:
Vous avez alors la possibilité d'adapter la configuration, par exemple en retirant le portail captif en cas de souci.
Ajout de capteurs et contrôleurs
Nous allons donc ajouter trois capteurs et contrôleurs à notre carte :
(yaml)1# Capteur de disponibilité (uptime) 2sensor: 3 - platform: uptime 4 name: "ESP32 Uptime" 5 6# Lecture d’un niveau logique sur la GPIO 12 7binary_sensor: 8 - platform: gpio 9 pin: GPIO12 10 name: "Entrée GPIO12" 11 device_class: connectivity 12 13# Contrôle d’une sortie sur GPIO 14 14switch: 15 - platform: gpio 16 pin: GPIO14 17 name: "Sortie GPIO14"
Pour sauvegarder les modifications, il faut alors cliquer sur SAVE
.
Téléversement
Pour installer la configuration sur l'ESP, il faut cliquer sur le menu, puis Install
.

Si tout ce passe bien, vous devriez voir les journaux de l'installation apparaître. L'ESP32 devrait alors redémarrer et prendre en compte les modifications.

Ressources
Vous trouverez plusieurs informations sur la documentation d'ESPHome pour Home Assistant.
― Valentin LORTET