Home Assistant : Contrôler un ESP32 via ESPHome en moins de 20 minutes

Dans mon appartement, j'ai cherché un moyen de contrôler mon interphone à distance. Je me suis dit que c'était peut-être l'occasion d'utiliser ESPHome, une solution permettant de contrôler des cartes ESP32 sans fil.

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 :

  1. Allez dans Paramètres > Modules complémentaires > Boutique des modules complémentaires ;
  2. Cherchez ESPHome Device Builder dans la liste ;
    Liste des modules complémentaires
    Liste des modules complémentaires
  3. Cliquez sur Installer, puis Démarrer une fois l’installation terminée.
    Page de gestion du module
    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 :

  1. Cliquez sur + New Device ;
  2. 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
    Ajout d'un microcontrôleur
  3. 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.

État des microcontrôleurs
État des microcontrôleurs

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.

Menu de l'ESP
Menu de l'ESP

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.

Journaux de l'installation
Journaux de l'installation

Ressources

Vous trouverez plusieurs informations sur la documentation d'ESPHome pour Home Assistant.


Valentin LORTET

Cet article vous a plu ? N'hésitez pas à le partager :

Découvrir d'autres articles