DIYDomotiqueIoTWifi

Domotique sur ESP32: ESPEasy ou ESPHome ? (4/6)

Jusqu’à maintenant, nous avons beaucoup parlé d’ESP8266 pour la domotique. Or de nombreux articles sur internet parlent aussi de plus en plus de l’ESP32 et de son utilisation pour la domotique, en flashant ce module avec nos outils habituels comme ESPEasy par exemple.

Pourquoi choisir l’ESP32 ?

Pour ceux à qui l’anglais ne fait pas peur, voici un lien vers un article comparant les 2 puces. Que ce soit pour son BLE 4.2, ses broches sensitives ou ses performances pures, l’ESP32 est un excellent choix. Le problème réside plutôt dans l’environnement qui va avec.

Là où les outils disponibles pour l’ESP8266 nous rendent la vie plus facile, il faut accepter en choisissant l’ESP32 de trouver quelques difficultés sur le chemin. Et c’est ainsi que j’ai perdu quelques heures à essayer de flasher un ESP32 DOIT DEVKIT V1 avec ESPEasy Mega, sans succès. Ce firmware n’est à priori compatible qu’avec les modules ESP32 Lolin Lite. Evidemment, tout le monde n’en a pas un sous la main. Personnellement, j’avais acheté plusieurs ESP32 de différents types et ils sont tous inutilisables dans ce contexte, quelle déception!

Plutôt que baisser les bras et me contenter d’un ESP8266, j’ai décidé de persévérer et voilà pourquoi je vais vous parler d’ESPHome et d’ESP32 pour les utiliser dans votre installation domotique.

ESPHome

Logo esphome

Je vous invite dans un premier temps à lire le tutoriel qui vous guidera pas à pas dans l’installation. Même pour les allergiques à l’anglais, les commandes en ligne restent très simples, en 5 minutes vous aurez installé ESPHome. L’outil CLI fourni pas ESPHome se complète d’une interface graphique épurée qui reprend les bases de l’outil de commande en ligne. Je vous conseille de choisir un emplacement sur votre disque où vous stockerez tous les composants ESPHome que vous allez créer.

Ouvrez un terminal à l’emplacement de dossier et validez cette commande: esphome config/ dashboard. Le serveur ESPHome tourne et vous pouvez y accéder à l’url suivante: localhost:6052.

Interface utilisateur web ESPHome
Interface utilisateur web ESPHome

Le composant de test que j’ai créé est affiché. En haut à droite, ESPHome est capable de communiquer OTA avec les modules Wifi ou en USB selon comment vous les connectez. Pour ajouter un composant, il suffit de cliquer sur le bouton à droite, la page suivante s’affichera:

Création d'un composant ESPHome
Création d’un composant ESPHome

Le nombre de modules gérés par ESPHome est impressionnant et l’interface est vraiment simple d’emploi. Il ne reste plus qu’à dire comment ce composant sera relié à ESPHome (OTA ou USB) et terminer la procédure d’ajout. Ce composant s’affichera alors sur la page d’accueil, prêt à être configuré pour chacun des capteurs qui y seront associés. C’est là que la chose se complique un peu. Cet aspect demande un peu de lecture et de dextérité pour s’habituer à l’environnement ESPHome qui associé à l’ESP32 s’avère être très efficace en vue d’une utilisation domotique.

ESPHome un peu plus en profondeur

La première chose à faire est de créer un web server associé au module avec son adresse IP. Il suffit pour cela d’éditer le composant de la page d’accueil et un fichier de configuration .yaml va s’ouvrir. Y ajouter:

web_server:
port: 80

Dans notre navigateur préféré, tapons l’adresse IP du module et l’équivalent d’un serveur web devrait s’afficher:

Interface web server d'un composant ESPHome
Interface web server d’un composant ESPHome

On voit ici que j’ai configuré:

  • un capteur qui donne le RSSI du Wifi;
  • un bouton qui permet de redémarrer le module;
  • une information texte qui donne la version d’ESPHome.

Pour continuer, ESPHome vient avec une documentation très exhaustive et appliquée à de nombreux exemples. Bonne lecture !

Communiquer en MQTT

Je vous ai dit précédemment que configurer ESPHome est un peu plus compliqué que pour ESPEasy. Pour l’expliquer je vais prendre l’exemple du capteur RSSI, information que je souhaite envoyer à Domoticz dans le cadre de ce tutoriel. Si dans ESPEasy, il suffit de créer un contrôleur de type Domoticz MQTT, voici quelques lignes à ajouter au fichier .yaml:

mqtt:
broker: 192.168.1.xx
username: nomdutilisateur
password: motdepasse
discovery: False
birth_message:
topic: domoticz/in
payload: ESP32 est connecté!
will_message:
topic: domoticz/in
payload: ESP32 est déconnecté!

Il s’agit ici de configurer le mqtt avec les éléments habituels et de prendre en compte les spécificités de Domoticz. Puis:

sensor:
platform: wifi_signal
name: "Signal Wi-Fi"
update_interval: 600s
id: "essai"
on_value:
then:
mqtt.publish_json:
topic: domoticz/in
payload: |-
root["idx"] = 9;
root["RSSI"] = id(essai).state;
root["dtype"] = "dB";
root["nvalue"] = 0;
root["svalue"] = String(id(essai).state);

de formatter le message MQTT pour que Domoticz puisse le recevoir et donc l’associer au dispositif créé avec son idx et les éléments requis pour le JSON de Domoticz.

Conclusion

Les possibilités offertes par le couple ESP32 et ESPHome pour une installation domotique sont vraiment vastes. Cet article n’a pas la prétention d’aller plus loin dans la mesure où je découvre également ESPHome. Cela laisse entrevoir néanmoins de belles choses pour les projets à venir.

CC BY-NC-SA 4.0 Domotique sur ESP32: ESPEasy ou ESPHome ? (4/6) par MadeInFck est sous Licence Creative Commons Internationale Attribution-Pas d'utilisation Commerciale-Partage à l'identique 4.0 .

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Verified by ExactMetrics