✅ Installer ESPHome sur Home Assistant et créer votre première configuration

licence

ESPHome est un firmware alternatif pour des appareils existant comme SonOff, BlitzWolf, etc, mais aussi des esp8266, esp32, etc.
Via ces derniers, il est possible de créer des objets DIY très facilement sans le codage qu’impose Arduino par exemple.

Il y a d’autres concurrents à ESPHome, comme EasyESP , Tasmota, etc, mais ESPHome est vraiment très bien intégré à Home Assistant et ne nécessite pas d’autres addons.

Niveau requis

  • Débutant / Intermédiaire / Avancé

Matériels nécessaires / Matériels utilisés / Prérequis

  • HA avec Superviseur : (article écrit sous la version 0.117.6)
  • Version de l’Add-on : V 1.14.4.

Installation de l’add-on

Suivre l’article sur comment ajouter un add-on officiel puis rechercher ESPHome pour la version stable.

Si vous souhaitez la version Dev, il fudrat Suivre l’article sur comment ajouter un addons non officiel puis ajouter la source suivante GitHub - esphome/hassio: ESPHome Hass.io addon files, une fois ajouté rechercher l’addon nommé EspHome.
Cliquer sur INSTALL il n’y pas de réglages particulier.

L’extension ESPhome n’a pas vocation à rester allumé en permanence elle sert simplement à créer vos configurations de matériels et vous permet de les modifier et envoyer en OTA.
C’est pour cela que je vous conseille de décocher Start on boot.

Notre premier matériel.

Pour cet article, j’ai choisie un ESP 32 Vroom bien-sur certaines commandes seront à adapter à votre matériel.

Configuration du Wifi.

Nous allons régler une bonne fois pour toute votre WiFi dans secret Editor (identique au fichier secret.yaml) comme ça vous pouvez partager vos configurations sans informations personnelles.

Dans la fenêtre ESPHome, cliquer sur les trois points en haut à droite puis sélectionner Secrets Editor

ESPHome_Secrets_Editor
Ensuite dans la fenêtre qui s’ouvre, remplir comme dans le fichier secrets.yaml de Home Assistant.

Il est possible de l’éditer directement depuis File Editor ou VSCode, par exemple, dans ce dossier /config/esphome/secrets.yaml accessible via samba.

Ajouter un matériel et créer son fichier binaire.

NOTA : Nous allons d’abord créer un fichier contenant seulement les informations de connexion. Cela nous permet de connecter rapidement notre appareil puis d’upload le firmware modifié directement en Wifi (Over The Air).
C’est ma manière de fonctionner mais vous pouvez tout rentrer d’un coup.

Toujours depuis l’interface ESPHome, cliquer sur ESPHome_Ajout_Materiel , puis sur BEGIN.

Donnez lui un nom (que des minuscules, chiffres et sans espace), puis sélectionner le type (ici Generic ESP32)

Dans WiFi & Updates vous pouvez :

  • Rentrer vos informations Wifi en brut (accessible dans votre code) ou !secret wifi_ssid et !secret wifi_mdp.
  • Configurer un code qui vous sera demandé lors des mise ajour via OTA de vos matériels.

    Cliquer sur CONTINUE puis SUBMIT.

Rafraîchir votre page puis cliquer sur Edit de votre matériel puis vérifier les informations.

Si vous avez rentrer les informations Wifi via Secrets Editor il faudra supprimer les «  ».

ESPHome_Edit

Une fois votre code bon, cliquer sur SAVE, CLOSE puis VALIDATE.

Une fois validé, cliquer sur ... en haut à droite de votre device puis cliquer sur Compile.
ESPHome_Materiel_Compile

La compilation peut prendre un peu de temps en fonction du type de machine sur laquelle tourne votre ESPHome.

Une fois compilé cliquer sur DOWNLOAD BINARY.

Le flashage.

Une fois votre fichier récupéré, nous allons passez au démontage (si nécessaire) et au flashage.

NOTA : Il est possible de brancher votre appareil à flasher sur votre installation Home Assistant et de le flasher via votre ESPHome, mais chez moi ce n’est pas reconnu de suite. Je vais donc flasher via ESPHome Flasher plus simple et plus accessible en fonction de l’emplacement de votre installation.

Récupérer la version compatible avec votre système puis lancez la.
Sélectionner le port de votre matériel une fois banché, puis votre fichier de configuration et cliquer sur Flash ESP.
Une fois terminé, il affichera les logs de votre matériel.

Il se peut que votre matériel ne soit pas reconnu, dans ce cas il faudra télécharger les drivers.

Au moment du flash, en fonction de votre matériel, il peut y avoir une manipulation a faire pour autoriser le flash (dans mon cas rester appuyé sur le bouton boot). Cette manipulation n’est plus requise par la suite lors des mises à jour OTA.

Normalement si tout s’est bien passé, vous devriez voir une nouvelle détection dans Home Assistant.
Home_Assistant_NotificationsHome_Assistant_New_Devices_DiscoveredHome_Assistant_Integration_Esphome

Cliquer sur CONFIGURER puis SOUMETTRE, sélectionner une pièce puis TERMINER.
Vous avez maintenant, dans Configuration, `Intégrations’ la liste des différents matériels sous ESPHome.

ESPHome_Integration_Gonfigurer
ESPHome-Integration_SuccessESPHome_Integration_Ajouter

Je vous laisse cliquer dessus, mais actuellement il n’y a aucune remonté d’information (normal, nous avons seulement configurer l’accès).

Mettre à jour le code.

Une fois votre matériel flashé et connecté à ESPHome, il va falloir intégrer le code complet permettant de se servir de votre matériel.

Rendez vous dans ESPHome, vérifier que votre matériel est bien connecté puis faites EDIT. Coller votre code ou celui qui vous est donné dans les articles, remplacer bien les infos de connexion Wifi par les vôtres au besoin.

Valider votre configuration, si elle est OK alors cliquer sur UPLOAD,

Il va compiler et envoyer le fichier directement par Wi-Fi puis redémarrer votre appareil.

Une fois reconnecté, dans Configuration, Intégrations, ESPHome cliquer sur votre matériel mis a jour, vous devriez voir vos nouveaux capteurs.

ESPHome_Integration_Nouveau_Capteur

Ajouter quelques capteurs utiles.

Il peut y avoir quelques informations importantes ou utiles, comme par exemple, le statu, la qualité du signal, le redémarrage distance, depuis combien de temps il est allumé, etc etc.

Voici les configurations associées, a vous de faire votre choix.

    binary_sensor:
    # statut
      - platform: status
        name: "Statut"

    sensor:
    # Qualité du signal
      - platform: wifi_signal
        name: "Signal Wifi"
        update_interval: 60s
    # Temps de fonctionnement
      - platform: uptime
        name: "Allumé depuis (s)"
        id: uptime_sec
       
    switch:
    # Bouton de redémarrage
      - platform: restart
        name: "Redémarrage"

    # Transformation des secondes en jours
    text_sensor:
      - platform: template
        name: "Allumé depuis (j)"
        lambda: |-
          int seconds = (id(uptime_sec).state);
          int days = seconds / (24 * 3600);
          seconds = seconds % (24 * 3600); 
          int hours = seconds / 3600;
          seconds = seconds % 3600;
          int minutes = seconds /  60;
          seconds = seconds % 60;
          return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
        icon: mdi:clock-start
        update_interval: 60s

Interface

Pour afficher vos capteurs nouvellement créés, allez sur votre matériel, une interface réunissant tous les capteurs de votre matériel vous est proposée. Cliquer sur Ajouter à Lovelace UI.

ESPHome_Entites

Voila le résultat sur votre interface.
ESPHome_Carte_Automatique

Conclusion

Cet articles n’est pas le plus complet mais il vous permet de créer votre premier projet DIY et permet d’aborder les bases.

ESPHome permet vraiment d’intégrer simplement des objets fait maison.

Nous en verrons quelques un ensemble mais n’hésitez pas à proposer les vôtres.

Une question, un problème

Besoin d'aide ? Cliquez ici !

Annexes

Vos sources

Suivi des modifications

  • 01/02/2021 : Passage en article officiel (:hacf_tuto: ) @Clemalex
  • 02/12/2020 : Mise à jour pour V2 @McFly
  • 13/05/2020 : Création de l’article @McFly
1 J'aime

2 messages ont été scindés en un nouveau sujet : Commentaires Article ESPHome