Domotique custom avec ESPHome

Programmer des microcontrôleurs Arduino c’est assez facile, mais les faire parler à Home Assistant c’est plus compliqué. Mais ça c’était avant ESPHome.

ESPHome c’est un module génial qui permet de transformer des ESP (8266, 32) en dispositifs pleinement intégrés dans Home Assistant.

J’ai réalisé 4 montages en utilisant ESPHome, avec quasiment aucun code à écrire. Une fois l’installation initiale faite sur un ESP, il est possible de faire toutes les mises à jour et d’accéder aux logs via le Wifi.

Téléinformation Linky

Les compteurs Linky envoient sur une paire de fils des signaux de téléinformation qui incluent consommation instantanée et valeurs des index. Il faut un petit montage électronique pour convertir le signal, que l’on peut ensuite donner à un ESP pour décodage. Et vu qu’il existe un module téléinfo pour ESPHome, il suffit de quelques lignes de configuration pour faire remonter toutes ces belles infos dans HA et bénéficier d’enregistrements historiques et d’un tableau de bord énergie.

Dans mon cas j’ai tiré une paire blindée depuis le compteur (qui est externe à la maison) jusqu’à mon panneau dans une gaine existante, et utilisé un ESP8266 (D1 Mini) avec une antenne externe, et ça fonctionne parfaitement.

Capteurs de température, humidité, luminosité et présence

Comme première expérience j’ai combiné dans un module des capteurs DHT22, BH1750 et PIR. Tout ce petit monde étant supporté directement dans ESPHome, il suffit de 18 lignes de configuration pour que toutes les infos remontent dans HA. C’est très très fort.

A l’usage et comme mentionné la détection de présence PIR a été supplantée par les ondes millimétriques.

Ici encore un D1 Mini (ESP8266) est mis à contribution.

Contrôle Pompe A Chaleur

Là c’est un poil plus funky, je ferai probablement un article entier sur ce sujet passionnant. Ma pompe à chaleur peut recevoir en option un module Wifi pour être « connectée ». C’est bien sûr une connexion vers une app propriétaire, donc pas souhaitable.

Après pas mal de recherche, je vois que la carte Wifi échange avec la PAC en utilisant un protocole série, et que ce protocole a été rétro ingénieré (argh).

Il me faudra pas mal de temps pour d’abord faire fonctionner la liaison série (pour une bête histoire d’inversion des signaux), puis maitriser la structure des données, mais enfin ça marche.

En tordant un peu la fonction debug série de ESPHome, et en 300 lignes de code (ce qui n’est pas grand chose), je peux maintenant :

  • Mettre en marche et arrêter la PAC
  • Choisir le mode (chauffage, climatisation)
  • Déclencher le chauffage ou la climatisation avec des interrupteurs « virtuels » utilisés dans des thermostats
  • Récupérer la température mesurées par la PAC (qui est complètement fausse si la ventilation n’est pas en marche).

Je peux aller plus loin et gérer tous les détails au besoin, comme la vitesse de ventilateur (mais je préfère laisser en auto), l’inclinaison du volet, etc.

Le tout est basé sur un ESP32, un Atom light avec un module RS-232 qui donne une solution très propre, alimentée directement par la PAC en 12V.

Horloge numérique LED

Vous vous souvenez peut-être de ce montage utilisant une bande de 60 LED RGB, et bien après une version full Arduino, une version Blynk, voici sa troisième génération en ESPHome.

Super simple en fait, il suffit de créer une instance « light » pour piloter les LED, et écrire le code qui ne faite que 29 lignes, avec les fonctionnalités suivantes :

  • Synchro de temps avec HA, pas besoin de RTC ou de pile
  • Choix de couleurs depuis HA
  • Récupération de la présence et de la luminosité pour passer automatiquement en mode éco et gérer la puissance lumineuse
  • Récupération de la température pour donner un indice visuel en couleur.

J’ai conservé le NodeMCU (ESP8266) déjà connecté, aucun changement au circuit.