Bonjour,
Un petit document de synthèse qui permettra peut être à d’autres utilisateurs de gagner du temps . Bien sur il est recommandé de le modifier de l’enrichir…ect…bonne journée.
Guide de Structure YAML ESPHome : La « Coutume » Standard (V6)
Ce document présente la structure générique et ordonnée d’un fichier de configuration ESPHome. Cette organisation facilite la lecture, le diagnostic et la maintenance de vos objets connectés, notamment dans un environnement segmenté avec des VLANs [cite: 2].
1. Identité de l’Appareil (esphome:)
Ce bloc définit l’identité réseau de l’objet [cite: 2].
- name : Nom unique utilisé par le réseau (ex: linky-iot, sans espaces ni majuscules) [cite: 2].
- friendly_name : Nom clair qui apparaîtra dans votre interface Home Assistant [cite: 2].
2. Plateforme Matérielle (esp32: ou esp8266:)
Indique sur quel type de microcontrôleur physique le programme sera installé [cite: 2].
- board : Modèle précis de la carte (ex: esp32dev ou d1_mini) [cite: 2].
3. Connectivité Réseau (wifi:)
Élément critique pour l’intégration dans votre infrastructure VLAN [cite: 2].
- SSID / Password : Identifiants WiFi, de préférence via des !secret pour la sécurité [cite: 2].
- manual_ip : Recommandé pour les objets fixes afin de garantir l’accès à l’interface de gestion [cite: 2].
- static_ip : Adresse dans le VLAN dédié (ex: 192.168.30.XX pour l’IoT) [cite: 2].
- gateway : Adresse IP de votre routeur sur ce VLAN (ex: 192.168.30.XX) [cite: 2].
- dns1 : Généralement identique à la passerelle [cite: 2].
4. Administration et Sécurité (api:, ota:, logger:)
Outils de gestion et de surveillance à distance [cite: 2].
- api : Active la communication native et rapide avec Home Assistant [cite: 2].
- ota : Permet la mise à jour sans fil (Over-The-Air) sans branchement USB [cite: 2].
-
Sécurité Serveur Web (Interface de secours)
web_server_user: « admin »
web_server_password: « TON_MOT_DE_PASSE_WEB »
Focus : Le Logger (logger:)
Le Logger est le système de diagnostic de votre module. C’est sa « voix » [cite: 2].
- Utilité : Il transmet en temps réel ce qui se passe dans la puce (étapes de connexion, réception des données) [cite: 2].
- Niveau WARN (Orange) : Signale que quelque chose ne va pas (ex: perte WiFi temporaire) mais que l’appareil continue de fonctionner. Utile pour prévenir les pannes [cite: 2].
- Impact Processeur :
- DEBUG : Impact modéré. Utile pour les tests initiaux pour voir toutes les données [cite: 2].
- INFO : Impact faible. Idéal pour un fonctionnement quotidien normal [cite: 2].
- WARN / ERROR : Impact négligeable. Pour une stabilité maximale une fois tout réglé.
5. Configuration Matérielle Spécifique (UART, I2C, etc.)
Définit les bus de communication pour les capteurs externes (comme le bus Téléinfo pour un Linky) [cite: 2].
« Le bloc UART n’est présent que si l’appareil doit communiquer avec un capteur intelligent ou un autre processeur. Pour du pilotage de relais simple, ce bloc est omis. »
6. Les Capteurs (sensor:, binary_sensor:, etc.)
Cette section varie selon votre projet [cite: 2].
- Pour un module Linky : On configure les « tags » de téléinfo comme la puissance apparente (papp), les index d’énergie (hchp, hchc) ou l’intensité (iinst) [cite: 2].
7. Les Règles d’Or de la « Coutume » YAML
- Indentation : Toujours 2 espaces exactement pour chaque niveau. Jamais de tabulations [cite: 2].
- Ordre Logique : Système en haut (WiFi, API), Matériel au milieu, Capteurs en bas [cite: 2].
- Secrets : Déportez vos mots de passe dans le fichier secrets.yaml [cite: 2].
exemple avec un relais :
esphome:
name: relais-plouf
friendly_name: Relais plouf
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
# Configuration du Logger
logger:
level: WARN
# Enable Home Assistant API
api:
encryption:
key: !secret api_encryption_key
ota:
- platform: esphome
password: !secret ota_password
web_server:
local: true
port: 80
auth:
username: !secret web_server_user
password: !secret web_server_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.30.94
gateway: 192.168.30.1
subnet: 255.255.255.0
dns1: 192.168.30.1
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Relais-Piscine Fallback Hotspot"
password: "TXXXXXXXXXX"
captive_portal:
# Makerfabs Config
switch:
- platform: gpio
pin: 32
name: "Relay #1"
inverted: true
- platform: gpio
pin: 33
name: "Relay #2"
inverted: true
- platform: gpio
pin: 14
name: "Relay #3"
inverted: true
- platform: gpio
pin: 13
name: "Relay #4"
inverted: true
- platform: gpio
pin: 15
name: "Relay #5"
inverted: true
- platform: gpio
pin: 4
name: "Relay #6"
inverted: true
- platform: gpio
pin: 16
name: "Relay #7"
inverted: true
- platform: gpio
pin: 5
name: "Relay #8"
inverted: true