Comprendre ESPHome et préparer votre premier capteur DIY ESP32 pour la domotique
ESPHome est devenu le choix privilégié pour transformer un microcontrôleur ESP32 en capteur domotique personnalisé, notamment pour les débutants initiant des projets DIY connectés. Ce framework open source simplifie l’intégration de ces microcontrôleurs avec Home Assistant, la plateforme domotique la plus populaire, en évitant toute dépendance aux services Cloud et assurant la souveraineté totale des données personnelles au sein de votre habitation. L’ESP32, microcontrôleur compact à bas prix, offre une large palette d’options de connectivité (Wi-Fi, Bluetooth), avec un excellent rapport performance-consommation qui permet des dispositifs capables de s’adapter aussi bien à l’alimentation USB qu’à la batterie grâce au mode veille profonde.
Avant de commencer votre projet, il vous faudra réunir quelques composants essentiels :
- Un microcontrôleur ESP32 avec port USB (par exemple, un ESP-Wroom-32) pour faciliter le flashage initial.
- Un capteur de base : un DHT22 ou DHT11 pour mesurer la température et l’humidité est idéal pour vos premiers pas.
- Câbles Dupont pour assurer un câblage propre sans soudure.
- Un ordinateur équipé de Home Assistant avec l’add-on ESPHome installé.
- Un câble USB Type-C ou Micro-USB selon votre module ESP32.
Le niveau requis pour ce tutoriel est débutant. Comptez environ 1 à 2 heures pour réaliser le montage matériel et la configuration logicielle. Aucune compétence avancée en électronique n’est nécessaire, mais un esprit méthodique et une attention aux détails vous garantiront un succès sans encombre.
Focus sur les microcontrôleurs ESP32 et leurs possibilités
Le cœur du projet est l’ESP32, une puce polyvalente offrant un Dual-Core à 160 MHz et une connectivité native Wi-Fi et Bluetooth. Ces caractéristiques lui permettent de collecter des données via divers capteurs et de communiquer directement avec Home Assistant. Le ESP32 dispose de nombreuses entrées/sorties (GPIO) compatibles avec une multitude de capteurs via des protocoles comme UART, SPI, I2C, ainsi que d’entrées analogiques et numériques. La carte expose ces broches, ce qui permet un branchement simple par câbles Dupont pour tester vos connexions.
Votre premier capteur, comme le DHT22, s’interface sur une ou deux broches seulement, ce qui minimise la complexité. En domotique, des capteurs supplémentaires peuvent être ajoutés par la suite, comme des modules PIR pour la détection de présence ou des capteurs de luminosité afin de créer un système complet de gestion de l’habitat.
Petit rappel : la clé de la réussite repose sur la première configuration d’ESPHome, qui se fait via des fichiers YAML simples. Ce langage de configuration vous permet d’indiquer quel composant est connecté à quel GPIO et de définir les réglages essentiels. Dès lors, un firmware personnalisé est compilé et téléversé sur l’ESP32, qui devient prêt à communiquer localement avec Home Assistant pour exploiter vos données.

Installer et configurer ESPHome sous Home Assistant : tutoriel pas à pas pour débutants
ESPHome s’intègre nativement dans Home Assistant sous forme d’add-on officiel, assurant une gestion simplifiée des composants DIY. La procédure d’installation dépend de votre environnement Home Assistant et mérite d’être prise calmement pour éviter les erreurs fréquentes.
Étape 1 : Installation d’ESPHome en mode HA OS
- Dans Home Assistant, rendez-vous dans “Paramètres” puis “Modules complémentaires”.
- Ouvrez la ‘Boutique de modules complémentaires’, recherchez “ESPHome” et cliquez sur “Installer”.
- Afin de faciliter l’accès, cochez “Afficher dans la barre latérale” et cochez “Lancer au démarrage” si vous souhaitez que l’add-on démarre automatiquement.
- Redémarrez Home Assistant afin de sécuriser la prise en compte complète de l’installation.
Après ces étapes, ESPHome apparaîtra dans la barre latérale, prêt à créer vos composants DIY personnalisés.
Étape 2 : Installation sous Home Assistant Container (Docker)
Si vous utilisez une installation Home Assistant en conteneur Docker, l’approche diffère légèrement. Vous devrez créer un conteneur dédié pour ESPHome. Par exemple, avec Portainer, créez un stack en vous référant au fichier Compose suivant :
| Service | Détail |
|---|---|
| Nom du conteneur | esphome |
| Image Docker | esphome/esphome:latest |
| Volumes | /path/to/esphome/config:/config et /etc/localtime:/etc/localtime:ro |
| Restart Policy | unless-stopped |
| Network | host |
En complément, ajoutez dans le fichier configuration.yaml de Home Assistant :
panel_iframe:
esphome:
title: 'ESPHome'
url: 'http://adresse_IP_de_votre_machine:6052/'
icon: mdi:car-esp
Cette configuration permettra d’afficher ESPHome dans la barre latérale sous forme de panneau intégré, simplifiant son utilisation quotidienne.
Étape 3 : Premiers pas avec ESPHome
- Ouvrez ESPHome depuis la barre latérale.
- Cliquez sur “New Device” et donnez un nom explicite à votre capteur, par exemple “esp-temp-salon”.
- Choisissez le microcontrôleur (“ESP32” ici) et ajoutez les informations de votre réseau Wi-Fi (SSID et mot de passe).
- Validez et laissez ESPHome créer la configuration initiale.
Vous pouvez désormais éditer ce fichier YAML pour ajouter un capteur, modifier des paramètres ou créer vos règles. ESPHome propose une documentation complète pour vous guider selon les capteurs utilisés.
Créer et flasher votre premier capteur personnalisé avec ESPHome : tutoriel technique détaillé
Le cœur de toute installation est le flashage du firmware personnalisé sur votre ESP32. Ce tutoriel vous guide en étapes claires et méthodiques.
Étape 1 : Préparation du matériel
- Connectez l’ESP32 à votre ordinateur via un câble USB.
- Assurez-vous d’avoir les pilotes USB adaptés installés si nécessaire.
- Ouvrez ESPHome et sélectionnez votre projet créé précédemment.
Étape 2 : Configurer le fichier YAML pour un capteur DHT22
Une configuration simple YAML pour un capteur température et humidité avec ESPHome ressemble à ceci :
esphome:
name: esp-temp-salon
platform: esp32
board: esp32dev
wifi:
ssid: "VotreSSID"
password: "VotreMotDePasse"
sensor:
- platform: dht
model: DHT22
pin: GPIO4
temperature:
name: "Température Salon"
humidity:
name: "Humidité Salon"
update_interval: 60s
logger:
api:
ota:
Cette configuration permet à l’ESP32 de relever la température et l’humidité toutes les 60 secondes, de transmettre ces données à Home Assistant et de recevoir des mises à jour de firmware OTA.
Étape 3 : Compilation et flashage initial
- Cliquez sur “Install” puis “Manual Download”. Le code sera compilé dans un firmware binaire.
- Utilisez l’outil ESPHome Web Installer intégré pour envoyer ce firmware à votre ESP32 via USB.
- Une fois uploadé, débranchez puis rebranchez l’ESP32 pour démarrer son firmware qui se connectera automatiquement au Wi-Fi.
La première connexion est cruciale pour valider que le capteur est fonctionnel et joignable par Home Assistant.
Étape 4 : Mise à jour OTA
Pour les opérations futures, plus besoin de connexion USB. Il suffit dorénavant de :
- Cliquer sur “Install” puis “Wirelessly”.
- Laisser ESPHome compiler puis déployer le nouveau firmware par Wi-Fi à votre ESP32 déjà connecté.
Cette méthode OTA (“Over The Air”) facilitera la maintenance de vos capteurs, notamment ceux installés en hauteur ou difficiles d’accès.
Personaliser et étendre votre capteur ESPHome : programmation YAML avancée pour projets DIY
Au-delà d’un simple capteur, ESPHome permet de personnaliser vos modules grâce à des entités supplémentaires que vous pouvez programmer en YAML, voire insérer du code C++ “lambda” pour des calculs personnalisés. Voici une astuce pour ajouter des capteurs utiles au suivi de votre ESP :
Ajouter statut, redémarrage et qualité du signal Wi-Fi
Dans votre fichier YAML, intégrez le code suivant :
binary_sensor:
- platform: status
name: "Statut ESP"
sensor:
- platform: wifi_signal
name: "Signal WiFi"
update_interval: 60s
- platform: uptime
name: "Durée de fonctionnement"
id: uptime_sec
switch:
- platform: restart
name: "Redémarrer le module"
text_sensor:
- platform: template
name: "Allumé depuis (texte)"
lambda: |-
int seconds = (id(uptime_sec).state);
int days = seconds / (24 * 3600);
seconds %= (24 * 3600);
int hours = seconds / 3600;
seconds %= 3600;
int minutes = seconds / 60;
seconds %= 60;
return { (String(days) + "d " + String(hours) + "h " + String(minutes) + "m " + String(seconds) + "s").c_str() };
update_interval: 60s
Cette configuration apporte un véritable confort : savoir si votre capteur est actif, pouvoir le redémarrer à distance et jauger la qualité de sa connexion Wi-Fi sans quitter Home Assistant.
Exemple d’ajout d’un capteur de luminosité via ADC
Si vous souhaitez incorporer la mesure de la lumière ambiante avec un photorésistor branché sur une entrée analogique, ajoutez :
sensor:
- platform: adc
pin: GPIO36
name: "Luminosité Salon"
update_interval: 60s
filters:
- lambda: return (x * 3.3 * 1000) / 4095;
unit_of_measurement: "mV"
Vous pouvez ainsi coupler différents relevés pour créer une gestion intelligente de vos éclairages selon le niveau lumineux mesuré.
Erreurs courantes et dépannage pour vos capteurs DIY ESPHome
Quel que soit votre niveau, certaines difficultés peuvent survenir lors de la conception de vos capteurs DIY avec ESPHome. Voici les plus fréquentes et comment les résoudre :
- Le firmware ne se téléverse pas via USB : vérifiez le câble USB, parfois seuls les câbles data fonctionnent, pas ceux uniquement pour la charge. Assurez-vous aussi que le bon port COM est sélectionné.
- L’ESP ne se connecte pas au Wi-Fi : contrôlez les identifiants saisies dans votre fichier YAML. Parfois, un caractère spécial peut poser problème. Vérifiez également la portée Wi-Fi et redémarrez le routeur si besoin.
- Pas de mise à jour OTA possible : assurez-vous que l’ESP est sur le même réseau local que votre machine Home Assistant. Les firewall ou isolation du réseau invité peuvent bloquer le transfert.
- Capteur DHT ne renvoie pas de données : vérifiez le câblage, notamment la résistance de pull-up sur la broche DATA (4.7 kΩ). N’utilisez pas de broches utilisées par d’autres fonctions ou une alimentation inadéquate.
- Les logs ESPHome sont vides ou inaccessibles : redémarrez le module et assurez-vous que la configuration API est bien activée dans le YAML.
Si après ces vérifications le problème persiste, il peut être pertinent de consulter des forums spécialisés comme le forum officiel de Home Assistant, Reddit ou des groupes Facebook. Pour des projets complexes ou en cas d’incertitude sur le câblage électrique, le recours à un professionnel reste la meilleure option afin de garantir la sécurité de votre domicile.
Bonnes pratiques à adopter dans vos projets ESPHome
- Utiliser un boîtier imprimé 3D ou une boîte adaptée pour protéger votre capteur de la poussière et des dommages physiques.
- Faire des sauvegardes régulières de vos fichiers YAML pour éviter toute perte lors des mises à jour.
- Nommer vos entités de façon explicite pour les retrouver rapidement dans Home Assistant.
- Tester vos scripts YAML via l’outil de validation d’ESPHome pour éviter les erreurs de syntaxe avant flashage.
- Privilégier une alimentation stable 5V via USB plutôt que des piles dans un premier temps pour éviter les coupures intempestives.

