HA-ESP HOME

Intro

Je vous invite à découvrir ESPHOME, c’est un Add-on indispensable à la création de petit système basé sur de l’ESP8266 ou 32. Ses possibilités sont nombreuses et simples à mettre en œuvre au moins sur la partie logicielle car il s’intègre parfaitement dans HA.

Installation ESPHOME

C’est un Add-on de « Home Assistant Community Add-ons » donc rien de compliqué. Aucune configuration particulière.
Cocher « Afficher dans la barre latérale »

Une fois installé et en run

Création d’un ESP.

Depuis la barre latérale lancer ESPHome.
Dans la fenêtre ESPHome, cliquez sur + en bas à droite.

Un wizard d’assistance vous invite à:

    Perso je choisis la solution par cable USB, donc « CONTINUE »

    Donner un nom à votre ESP, perso j’y intègre un rappel à son adresse IP (172 dans ce cas), puis « NEXT »

    Choisir le type d’ESP, « ESP8226 » dans ce cas, puis « NEXT »

    Voila vous avez créé votre ESP, reste à le configurer depuis la vue ESPHome:

    Cliquer sur « INSTALL »: L’ESP est installé avec une configuration par défaut

    Cliquer sur « SKIP »: Vous l’installez par la suite avec une configuration personnalisée, c’est cette option que j’uilise.

    Les trois points vous permettent de:

    • Validate: Vérifier la configuration
    • Install:  Ceci compile le firmware pour votre nœud et l’installe. L’installation se fait sans fil si vous avez activé le composant de mise à jour OTA dans votre configuration et initialisé l’ESP (voir chapitre: premier chargement). Vous pouvez également l’installer à partir de votre navigateur ou via un appareil connecté à la machine exécutant le tableau de bord ESPHome. Voir la description des trois options ci-après.
    • Clean Build Files: Effacer les fichiers précédemment compilés
    • Delete: Supprimer l’ESP.

    Dans la fenêtre principale de l’ESP:

    • Open: Ouvre une fenetre WEB embarquée (voir explications au chapitre « Page WEB intégrée »
    • Edit: ouvre un fichier .yaml dans lequel vous y retrouvez les informations précédemment saisies dans le wizard de configuration.
    • Logs:  Avec cette commande, vous pouvez afficher tous les journaux que le nœud génère. Si un périphérique USB est connecté, il tentera d’utiliser la connexion série. Sinon, il utilisera les journaux OTA intégrés.

    Codage

    Vous trouverez ci-après le code type de mes ESP:

    La partie « substitutions » vous évite d’avoir de saisir plusieurs fois la même information.

    • Le nom du device (éviter le caractère « _ » )
    • L’adresse IP fixe
    • le nom que vous retrouverez dans le « name » des entitées
    • La time zone

    Bien évidemment vous pouvez l’adapter à vos besoins. Vous trouverez des explications dans la page d’aide.

    substitutions:
      device_name: esp141-test-esp01
      adress_ip: "192.168.0.141"
      friendly_name: esp141
      time_timezone: "Europe/Paris"
      
    esphome:
      name: ${device_name}
      platform: ESP8266
      board: esp01_1m
    
    wifi:
      networks:
        - ssid: !secret wifi
          password: !secret mdpwifi
    
      reboot_timeout: 5min
      fast_connect: true
    
      manual_ip:
        static_ip: ${adress_ip}
        gateway: 192.168.0.1
        subnet: 255.255.255.0
    
    logger:
    api:
    ota:
    web_server:
      port: 80
    
    time:
      - platform: homeassistant
        timezone:  ${time_timezone} 
    
    #uart:
    #  rx_pin: GPIO3 # RX=pin 21
    #  tx_pin: GPIO1 # TX=pin 22
    #  baud_rate: 9600
    
    i2c:
      sda: GPIO00 #
      scl: GPIO02 #
      scan: true
      id: bus_a
    
    #Etat de la connection
    binary_sensor:
      - platform: status
        name: "${friendly_name} Status"
    
    switch:    
    
      - platform: restart
        name: "${friendly_name} Restart"
    
    sensor:
      - platform: htu21d
        temperature:
          name: "${device_name} Temperature"
        humidity:
          name: "${device_name} Humidité"
        update_interval: 60s
        
      - platform: wifi_signal
        name: "${friendly_name} WiFi Signal Sensor"
        update_interval: 60s
    
      - platform: uptime
        name: "${friendly_name} Uptime Sensor"
        update_interval: 60s
    
    text_sensor:
      # IP address #
      - platform: wifi_info
        ip_address:
          name: "${friendly_name} IP address"
          icon: "mdi:network-outline"
        ssid:
          name: "${friendly_name} Connected SSID"
        bssid:
          name: "${friendly_name} Connected BSSID"
      - platform: version
        id: text_sensor_version
        name: "${friendly_name} ESPHome Version"
    
    

    Le sensor htu21d est un exemple.

    Les variables « secrets » sont à créer dans un fichier spécifique accessible depuis la page principale en haut à droite.

    Premier téléchargement

    La partie la plus difficile de la configuration d’un nouvel appareil ESPHome est l’installation initiale. L’installation nécessite que votre ESP soit connecté avec un câble à un ordinateur. Les mises à jour ultérieures peuvent être installées sans fil.

    Nota: Attention au choix du cable USB: Certains ne servent qu’à charger l’appareil et donc n’ont que deux fils de raccordés (Alim+/-). Veillez à utiliser un câble « Data » avec les quatre fils (Alim+/- et data).

    • La première option concerne la mise à jour d’un ESP déja intialisé et connecté
    • La deuxieme consiste à initialiser l’ESP depuis un navigateur Edge ou Chrome
    • La troisieme consiste à initialiser un ESP depuis l’ordinateur supportant HA
    • La quatrième consiste à initialiser un ESP depuis n’importe quel PC via un UPLOADER.

    Je vous décris, ci-après, vous trouverez les trois solutions de téléchargement de la configuration initiale:

    Option 1 – Par un port USB du PC connecté à HA

    Vous pouvez également connecté votre ESP sur l’ordinateur qui vous sert à vous connecter sur HA, cependant il y a deux regles à respecter:

    • Utiliser Microsoft Edge ou Google Chrome
    • Accéder à votre HA en HTTPS

    Brancher votre ESP sur un port USB et sélectionner le dans la liste proposer par HA avant compilation et transfert.

    Option 2 – par le Port USB de votre PC Home Assistant

    Si vous en avez la possibilité, vous utilisez, dans cette solution, un port USB de l’ordinateur sur lequel est installé votre HA (un NUC dans mon cas).

    Pour être sur d’utiliser le bon port USB, je regarde les ports utilisés avant de brancher l’ESP

    Puis je regarde à nouveau une fois celui-ci branché, vous en déduirez facilement celui de l’ESP.

    le nom du port dépend de la puce de l’USB:

    Ici un ESP32
    Ici un ESP8266

    le systeme compile le programme et le téléverse dans l’ESP

    Option 3 – Téléchargement manuel

    Il permet d’initialiser l’ESP avec un fichier « .bin ».

    La compilation, normalement terminée sans erreur, vous invite, en bas à droite, au téléchargement d’un fichier « .bin » .

    Une fois le fichier « .bin » généré et téléchargé, il reste à le flasher dans l’ESP.

    Flashage du fichier

    Pour ce faire, j’utilise le logiciel gratuit «  esphome-flasher« . J’utilise la version Windows mais il existe aussi sur d’autres OS. C’est suite à un commentaire de « Dckiller » que j’ai découvert cet utilitaire, merci à lui.

    Vous choisissez le « COM » sur lequel vous avez branché votre ESP, le firmware .bin, vous lancez par « Flash ESP ».

    Une fois le Flashage terminé, la connexion est établie avec l’ESP, le log défile dans la console.

    Quitter le log, débrancher l’ESP puis brancher son alimentation.

    Après la première installation, vous n’aurez probablement plus jamais besoin d’utiliser le câble USB, car toutes les fonctionnalités d’ESPHome sont également activées à distance.

    Connecter votre appareil à Home Assistant 

    Une fois votre configuration installée sur l’ ESP et en ligne, elle sera automatiquement découverte par Home Assistant et proposée à la configuration sur votre écran d’intégrations :

    Ouvrez votre instance Home Assistant et commencez à configurer une nouvelle intégration.

    Le cas échéant vous pouvez ajouter l’ESP manuellement en cliquant sur « +Ajouter intégration » en bas à droite de l’écran, sélectionner ESP, saisir son adresse IP, laisser le port proposé par défaut et soumettez:

    Une fois intégré, vous le retrouverez dans la page des intégrations.

    Page WEB intégrée

    Depuis la page des ESP, cliquer sur OPEN, vous accédez à une page web embarquée (si vous avez déclaré « web_server port:80 » dans votre fichier de configuration).

    .

    Modification en ligne.

    Une fois l’ESP initialisé, vous pouvez modifier votre configuration et la télécharger en ligne .

    Cliquer sur « Edit », puis après modification du fichier, sur « install »

    Choisissez la première option (il faut que l’ESP soit en ligne),

    Après compilation, le nouveau fichier est transféré dans l’ESP.

    Si OK, le log va commencer à défiler, il faut attendre un peu que l’ESP redémarre.

    Conclusion

    ESPHome est très puissant et possède de nombreuses fonctionnalités qui traitées par l’ESP soulage HA. Il peut souvent amener une solution aux montages DIY qui sortent de l’ordinaire.

    5 Comments on “HA-ESP HOME”

      1. Merci pour votre commentaire et l’info sur le flasher. Je viens de le tester et effectivement il est hyper simple, je modifierai l’article en conséquence.

    1. bien le bon jour
      y at il une chance de faire fonctionné un module teleinfo et esp8266 avec un compteur linky triphasé
      merci pour vos articles et visiblement vos passions
      cordiale salutation
      nico1340

      1. Bonjour
        Oui sans problème il y a des modules teleinfo adaptés à l’esp8266 d1, et pour le triphasé je te conseille de demander auprès de ton opérateur de passer en mode standard tu aura accès à beaucoup plus de données. Dans mes articles sur le sujet, je conseille un esp32 mini mais rien ne t’empêche d’essayer avec un d1 mini, le module téléinfo est compatible avec les deux esp. Avec l’esp d1 mini, dans un premier temps supprime la gestion de la led et de l’afficheur pour voir si il fonctionne, tu pourra les ajouter par la suite.
        @+

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *