ESPHome problème de résolution d’IP

Mon problème

Bonjour,
Je rencontre des difficultés dans la configuration de mon premier ESP32, je n’arrive pas à le connecter à un réseau Wi-Fi.
À la base je voudrais utiliser l’adonne « Hass.io Access Point » afin d’avoir un system domotique le plus indépendant possible. Ne réussissent pas à coupler mon ESP32 à ce réseau je me suis dit que ça pouvais venir de la mauvais configuration de l’adonne, j’ai donc tenté de le configurer pour le connecter à ma Freebox. Et là même problème, quand je regarde dans les log Wifi il m’indique :

« INFO Reading configuration /config/esphome/pc-power.yaml… INFO Starting log output from pc-power.local using esphome API WARNING Can’t connect to ESPHome API for pc-power.local: Error resolving IP address: [Errno -5] No address associated with hostname INFO Trying to reconnect to pc-power.local in the background »

INFO Reading configuration /config/esphome/pc-power.yaml… INFO Starting log output from pc-power.local using esphome API WARNING Can’t connect to ESPHome API for pc-power.local: Error resolving IP address: [Errno -5] No address associated with hostname INFO Trying to reconnect to pc-power.local in the background

# Your Wi-Fi SSID and password
wifi_ssid: "xxxxxx"
wifi_password: "xxxxxxxxxxxxxxx"

Je clique sur « + new device »

Je renseigne son nom : pc-power

Je lui indique que c’est un ESP32

Je clique sur « install » & « Wirelessly »

Et là à la fin de la compilation j’ai ce message
« ======================== [SUCCESS] Took 115.18 seconds ========================
INFO Successfully compiled program. INFO Resolving IP address of pc-power.local
ERROR Error resolving IP address of pc-power.local. Is it connected to WiFi? ERROR (If this error persists, please set a static IP address: WiFi Component — ESPHome) ERROR Error resolving IP address: Error resolving address with mDNS: Did not respond. Maybe the device is offline., [Errno -5] No address associated with hostname »

Pourriez vous m’aider à configurer l’ESP et comprendre mon erreur.
Je vous remercie d’avance.

Ma configuration


System Health

version core-2022.6.6
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.12
os_name Linux
os_version 5.15.32-v8
arch aarch64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.25.5
Stage running
Available Repositories 1071
Downloaded Repositories 2
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 8.2
update_channel stable
supervisor_version supervisor-2022.05.3
agent_version 1.2.1
docker_version 20.10.14
disk_total 111.1 GB
disk_used 6.2 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Samba share (9.7.0), ESPHome (2022.6.1), File editor (5.3.3), Z-Wave JS (0.1.62), Terminal & SSH (9.4.0), pigpio (1.5.1), Hass.io Access Point (0.4.3)
Dashboards
dashboards 1
resources 1
views 2
mode storage
Recorder
oldest_recorder_run 17 juin 2022, 17:13
current_recorder_run 22 juin 2022, 16:02
estimated_db_size 10.79 MiB
database_engine sqlite
database_version 3.34.1
___

Salut

Le nom que tu renseigne ici c’est le nom sur le réseau (et pas son petit nom sympa) de ton esp
On le voit dans le message d’erreur

Le nom ne correspond pas à une adresse ip, donc impossible à joindre et donc à flasher
A tous les coups, c’est son nom dans le réseau Hass.io Access Point mais pas dans celui actuel de la freebox
Accessoirement ESP vierge (ne sachant pas exactement si c’est le cas) , ça se flashe pas par le wifi

Merci de ta réponse, il me semblait que quand c’était son nom cela était son petit nom sympa.
Et ce qui me conforte dans mon raisonnement :

  • Dans l’interface cela me paraît logique qu’il apparaisse avec son petit nom et non son IP
    image

  • Il me semble aussi que « .local » se trouve derrière des noms de machines et non derrière une adresse IP.

  • Dans ce champ là si il attendrait une adresse IP je suppose que je ne pourrais pas saisir des caractères alphabétiques et mon réseau Wi-Fi Freebox est configuré pour attribuer automatiquement une adresse IP.

Et pour le moment je le flash via une connexion USB et cela fonctionne car n’arrivant pas à se connecter au wifi il se met en mode hotspot.

Lors que tu ajoutes un device dans ESPhome, les seules infos que tu saisies sont :

  • un nom (toto)
  • un type de board (espxxx)

Ce qui te crée un fichier de ce genre

esphome:
  name: toto

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "so8RMj8CGzM2sGhutbFUSPGnhSBN/ha7T+WRMTwmFdU="

ota:
  password: "638fdfa609371d31fb180d2806d012a1"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Toto Fallback Hotspot"
    password: "FnuDUotZAMtY"

captive_portal:
    

Tu vois bien que parmi ces infos, il n’y a rien qui concerne l’adresse IP de ta machine. Donc pour le joindre en WIFI c’est mort.
Dans ce cas, ESPHome utilise cette valeur comme un nom réseau (avec le .local) pour essayer de le retrouver

Donc tu n’as que 2 solutions :

  • avoir un nom réseau qui corresponde à son petit nom
  • saisir son adresse ip dans la config (ce qui impose de la connaitre à l’avance ainsi que tous le reste … se la réserver sur le DHCP ou se l’attribuer)
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: !secret toto_ip
    gateway: !secret wifi_gtw
    subnet: !secret wifi_sub
    dns1: !secret wifi_dns1

Par contre effectivement tu as raison, tu ne peux pas mettre une adresse ip lors de l’ajout
image

Si ça marche pas c’est soit que

  • tu t’es trompé dans les infos wifi
  • tu es sur un wifi en 5Ghz … il faut se limiter à du 2.4Ghz

Super merci de ta réponse extrêmement rapide.
Et très éclairante effectivement j’étais complètement à côté de la plaque je pensais qu’il était capable de récupérer l’adresse IP du DHCP…

Je crois que ce bloc va résoudre mon problème je teste tout ça demain. Et te redis ce qu’il en est

y a aucunement besoin de faire ca.
je flash mes esp avec le firmware téléchargé la premiere et ensuite c’est transparent.
je bloque meme pas l’ip dans mon routeur. ca me parait inutile pour esphome

Justement on parle d’une première fois…

c 'est possible ca ?
un esp vierge ca se connecte a aucun réseau
je vois pas comment esphome va réussir a y mettre son firmware en wifi.

Ce que tu utilise probablement c’est la découverte automatique (en flashant la version).
Cette mécanique fixe, un nom arbitraire et une config minimale se connecter au WIFI (dhcp).
Et si on change le nom à postériori le flash (over wifi) ne fonctionne plus

Bonjour cela fonctionne pour moi, ce même sans la config une IP statique. En fait ton exemple m’a permis de constater qu’il me manquait :

 hidden: true

J’ai pris l’habitude de ne pas diffuser le ssid des de mes réseaux.
Je te remercie de ton aide. Il ne me reste plus qu’à gérer un petit problème avec les GPIO. Je marque donc ce poste en résolu grâce à toi merci encore

Bonjour
Esphome utilise le protocole mdns dans ses firmwares. Ce qui permettra de joindre le device automatiquement avec le hostname device.local.

Même un simple ping sur ce nom répondra directement.

Bien sur ,il faut que le premier flash ai fonctionné correctement en usb.

1 « J'aime »

Bonjour, etant confronté au même probleme et ne trouvant pas la solution je voulais essayer ta solution mais faut le metre ou le hidden: true ? Parceque n’importe ou je le met ca fait une erreur de compilation

Même commentaire que @batcobra j’ai toujours une erreur sur je met hidden: true