ESPEasy : Auto Discovery

Bonjour,

Mon retour d’expérience

Générer des messages MQTT Auto Discovery pour une reconnaissance automatique des mes cateurs (Température / Humidité / Pression atmosphérique)

Ma configuration

[center]

System Information


version core-2026.1.3
installation_type Home Assistant OS
dev false
hassio true
docker true
container_arch amd64
user root
virtualenv false
python_version 3.13.11
os_name Linux
os_version 6.12.67-haos
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.5
Stage running
Available Repositories 2850
Downloaded Repositories 3
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 17.1
update_channel stable
supervisor_version supervisor-2026.03.0
agent_version 1.8.1
docker_version 29.1.3
disk_total 28.6 GB
disk_used 9.0 GB
nameservers 192.168.1.1, 2a02:842a:2ef:8201::1
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons File editor (5.8.0), ESPHome Device Builder (2026.1.5), Z-Wave JS (0.29.1), Mosquitto broker (6.5.2), Terminal & SSH (10.0.2), Get HACS (1.3.1)
Dashboards
dashboards 4
resources 1
views 2
mode storage
Network Configuration
adapters lo (disabled), enp1s0 (enabled, default, auto), hassio (disabled), docker0 (disabled), veth8a25c6c (disabled), veth1037ac9 (disabled), veth2914a56 (disabled), vethab737d5 (disabled), veth7bb966f (disabled), veth6794469 (disabled), vetheb1b6a1 (disabled), vethd0c2475 (disabled), veth1fce8ca (disabled), vethdaa7f29 (disabled)
ipv4_addresses lo (127.0.0.1/8), enp1s0 (192.168.1.90/24), hassio (172.30.32.1/23), docker0 (172.30.232.1/23), veth8a25c6c (), veth1037ac9 (), veth2914a56 (), vethab737d5 (), veth7bb966f (), veth6794469 (), vetheb1b6a1 (), vethd0c2475 (), veth1fce8ca (), vethdaa7f29 ()
ipv6_addresses lo (::1/128), enp1s0 (2a02:842a:2ef:8201:1a0d:f057:4bcc:780d/64, fe80::f29f:32bf:9b64:3599/64), hassio (fd0c:ac1e:2100::1/48, fe80::50fb:43ff:fe37:fbc5/64), docker0 (fe80::9c6b:adff:fe81:a78/64), veth8a25c6c (fe80::64cd:cff:fe2e:c94e/64), veth1037ac9 (fe80::80c3:51ff:fed8:a08e/64), veth2914a56 (fe80::3cf1:7dff:fef7:ab87/64), vethab737d5 (fe80::cc30:9eff:fed4:5141/64), veth7bb966f (fe80::5cfb:30ff:fe45:302a/64), veth6794469 (fe80::580f:34ff:fe44:707c/64), vetheb1b6a1 (fe80::d492:d0ff:fe74:4e87/64), vethd0c2475 (fe80::89f:5eff:feb1:c6e8/64), veth1fce8ca (fe80::70ac:c1ff:fec2:6c96/64), vethdaa7f29 (fe80::a0d4:94ff:fee4:a92a/64)
announce_addresses 192.168.1.90, 2a02:842a:2ef:8201:1a0d:f057:4bcc:780d, fe80::f29f:32bf:9b64:3599
Recorder
oldest_recorder_run 4 mars 2026 à 13:28
current_recorder_run 15 mars 2026 à 08:57
estimated_db_size 132.81 MiB
database_engine sqlite
database_version 3.49.2
[/center]

Mon capteur GY-21P est sous ESPEasy:
Firmware : ESP_Easy_mega_20260108_normal_ESP8266_4M1M.bin
Flash : esptool.py -p /dev/ttyUSB0 write_flash 0x00000 ESP_Easy_mega_20260108_normal_ESP8266_4M1M.bin
En le sauvegardant, j’ai une version que je peux re-installer à l’identique en cas de panne de mon module esp8266

Pour la configuration ESPEasy , il y plein de tuto je passe rapidement:

A partir de là il y a deux solutions:
1 - Déclarer chaque capteur dans la section mqtt de configuration.yaml
2 - Envoyer des messages d’Auto Discovery

J’ai choisi l’option 2 et après avoir pas mal galéré, c’est magique:
Rules Set 1 :

On MQTT#Connected Do
  // <discovery_prefix>/<component>/<object_id>/config,<json_config>
  Publish, homeassistant/sensor/%sysname%_temperature/config,'{ "name": "%sysname%_temperature","unique_id" : "%sysname%_temperature", "icon": "mdi:thermometer","state_topic":"Weather/SI7021/Temperature","device_class":"temperature","unit_of_measurement": "°C"}'
  Publish, homeassistant/sensor/%sysname%_humidity/config,'{ "name": "%sysname%_humidity","unique_id" : "%sysname%_humidity", "icon": "mdi:water-percent","state_topic":"Weather/SI7021/Humidity","device_class":"humidity","unit_of_measurement": "%"}'
  Publish, homeassistant/sensor/%sysname%_pressure/config,'{ "name": "%sysname%_pressure","unique_id" : "%sysname%_pressure", "icon": "mdi:gauge","state_topic":"Weather/BMP280/Pressure","device_class":"pressure","unit_of_measurement": "hPa"}'
Endon

  • Re démarrer ESPEasy pour que l’envoi des 3 messages soit effectué
  • Pour chaque capteur le static_topic doit pointer sur la valeur de chaque capteur
  • Il est impératif de déclarer « unique_id » (identique au name) pour pouvoir attribuer ce capteur à une pièce
  • Faites une petite vérification avec MQTT Explorer de vos 3 messages dans homeassistant
  • Retained doit être activé
  • Le json dans la partie droite doit être correctement décodé et colorié (si ce n’est pas le cas, le json est mal formatté : vérifier les guillements, les virgules, les deux points)

Et après si comme moi vous avez conservé la Vue d’ensemble en mode automatique, les 3 capteurs apparaissent tout seul dans la partie Capteur sans aucune configuration de Home Assistant

Bon usage

1 « J'aime »

Bonjour @dugolf
je n’utilise pas ESPEasy mais ESPHome et les capteurs remontent tout seul dans HA, il doit y avoir une subtilité que je n’ai pas saisi dans ton message non ?

Bob

Bonjour,
@dugolf Merci pour ce retour, j’ai passé un peu de temps sur le sujet et je n’ai pas réussi, le message de autodecovery était tronqué. Je réessaierai à l’occasion.
@Bob, pour les anciens de domoticz ou autre, on utilisait espeasy qui est vraiment bien fait et avec une interface graphique et des rules. Depuis je suis passé sur esphome mais il y a un mois, j’ai fait un projet d’un écran dans mon van et je suis repassé sous espeasy pour ce cas précis (gestion de l’heure en autonomie, accès à l’interface en itinérance, gestion de mon écran nextion…)
Esphome est parfaitement adapté à home assistant mais les lambda et la config ne sont pas très facile à appréhender pour les nouveaux et surtout sans tout refaire, le temps de la migration, on peut jongler avec plusieurs domotiques. D’ailleurs je n’ai jamais basculé ma sonde extérieure qui remontent directement sous HA et mon magic mirror.

Vous avez parfaitement vu la subtilité. C’est Auto Discovery sans ESPHome.
Ce sont deux firmware différents avec chacun ses qualités et ses défauts.
Et puis j’ai des ESPEasy, ils fonctionnent, pourquoi changer ?

Dans le même style, j’ai un RfLink avec des capteurs de température / humidité en 433MHZ

  • Ils consomment très peu
  • Peuvent fonctionner sur batterie
  • Et ils sont auto découvert par Home Assistant : Rien à configurer (sauf peut-être les exclusions pour ne pas avoir les capteurs du voisin !!!)

Bref le moins possible de configuration pour avoir un système domotique qu’on oublie et qui se relance tous seul en cas de coupure de courant …

Hello

Merco pour ta contribution, très instructif

Par contre, je ne saisi pas le lien entre tes devices dans ESP easy et ton rules set
Tu les identifies avec le nom du device ESP easy et state topic ?

exemple device BMP280 : « state_topic »:"Weather/BMP280/….

Merci pour ton aide j’essaie de reconstrure le schéma

oui, par le Nom, car c’est lui qui est la racine du message MQTT.

Le message d’auto discovery contient le static_topic qui donne à home assistant toutes les informations pour récupérer la valeur du capteur.
Coté home assistant il n’y a plus rien à faire, le capteur apparaît tout seul.

Super tuto, surtout pour moi qui ne jure que par ESP Easy :wink: