Découvrir l’univers ESP32

Ca progresse !
Essais réussis avec plusieurs capteurs :

  • DTH22 Temp/hum
  • buzzer KY-012
  • capteur effet Hall KY-024 (sortie analogique OK, numétique ON/OFF NOK) - pb de librairies lors de la compil mais effectivement sur ESPHome ce capteur semble ne plus être supporté.
  • relay ky-019 Il a fonctionné une fois - clac -…et puis plus rien …Pb tension alim ? J’ai eu peur d’avoir cramé mon ESP (appel courant) mais apparemment il marche toujours
    J’attends ma prochaine livraison ALI pour tester un écran
    En tout cas c’est assez fun comme occupation :blush:

En compilant pour tester un module ky-038 microphone j’ai ce type de warning (extrait) :

In file included from src/esphome/components/adc/adc_sensor.h:9,
                 from src/esphome/components/adc/adc_sensor_esp32.cpp:3:
/data/cache/platformio/packages/framework-espidf/components/esp_adc/deprecated/include/esp_adc_cal.h:17:2: warning: #warning "legacy adc calibration driver is deprecated, please migrate to use esp_adc/adc_cali.h and esp_adc/adc_cali_scheme.h" [-Wcpp]
   17 | #warning "legacy adc calibration driver is deprecated, please migrate to use esp_adc/adc_cali.h and esp_adc/adc_cali_scheme.h"
      |  ^~~~~~~
In file included from src/esphome/components/adc/adc_sensor.h:10:
/data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/adc.h:19:2: warning: #warning "legacy adc driver is deprecated, please migrate to use esp_adc/adc_oneshot.h and esp_adc/adc_continuous.h for oneshot mode and continuous mode drivers respectively" [-Wcpp]
   19 | #warning "legacy adc driver is deprecated, please migrate to use esp_adc/adc_oneshot.h and esp_adc/adc_continuous.h for oneshot mode and continuous mode drivers respectively"
      |  ^~~~~~~

Quelle est la signification ?

Le driver est obsolète avec ESP-IDF v5

essayer avec ce PR, ajoute les lignes:

external_components:
  - source: github://pr#7942
    refresh: 30s
    components:
      - adc

Merci ! :+1:
Plus d’erreur de compilation. J’ai bien une entité créée dans ESPHome avec un valeur en V ? qui change en fonction du bruit :


Ensuite sans doute un peu difficile à exploiter…
Peux-tu m’expliquer les quelques lignes de code que tu m’as données, juste pour comprendre ?
J’ai des durées de compilation (GREEN) qui sont très longues, plus de 10 minutes juste pour tester ce composant.

Peut-on accélérer le process ? Quand j’ai commencé à jouer avec l’ESP32 on m’avait dit que c’était long la première fois mais ensuite plus rapide.
J’ai regardé pour compiler sur le PC en installant ESPHome pour PC mais pas encore franchi le pas…

Je n’utilise que HA pour flasher, avec esp-idf c’est plus long qu’avec arduino pour moi aussi.

Bob

external_components: permet d’utiliser un composant externe a ESPHome, qui n’est pas inclus dans ESPHome.
La source est un PR ( Pull request ) dans le GitHub de ESPHome, qui n’est pas encore ajouté dans ESPHome. Mais tu peux l’utiliser avec ces lignes que je t’ai mise.

C’est normal avec un green, c’est long. Avec mon RPI4 c’est pareil avec esp-idf, il faut un bon 10min.
Si tu as un PC plus puissant que le Green, ca sera plus rapide.
C’est ce que j’utilise avec un mini-pc, car je peux plus compiler mon Atom-echo pour un voice-assistant sur mon RPI4 ( il plante et reboot tout seul ). J’ai installer ESPHome sur mon Windows 11 sur le mini-pc.

J’ai utiliser ce tuto pour l’installer sur mon mini-pc

ou tu as la doc sur le site esphome:
https://esphome.io/guides/installing_esphome


Je compile sur le mini-pc et ca fais la mise a jour du ESP par OTA :grin:

Merci pour les éléments sur l’installation ESPHome sur PC.
Je vais regarder cela en détail, même si dans les premiers messages dans la discussion Découvrir l’EPS32 on m’avait averti que c’était un peu compliqué
Et si tu utilises ESPHome hors HA, comment fais-tu pour récupérer les entités créées dans HA, comme c’est le cas si on réalise tout avec les outils intégrés ?
Update : en réfléchissant on compile hors HA et on obtient le fichier à charger, mais on flash dans ESPHome intégré à HA . C’est ça ?
Si je veux dédier un mini PC pour ça (voir pour en faire ma machine future pour héberger HA), pour des durées de compilation acceptables, quel type de proc ? (je pense que de toute façon même avec une machine assez basique il doit y avoir un gros gap avec la GREEN ?)

Non, sur ESPHome sur un pc, ça compile le firmware et l’uploader sur le ESP par OTA ( en wifi ).
Il faut bien sûr déjà avoir un esp flasher avec esphome et l’OTA configurer.
Sinon, tu peux flasher ton esp avec le câble USB.
À la fin de la compilation du firmware, tu as le choix en uploader le firmware par USB ou OTA.
Si pas de cable USB brancher, sa upload directe par OTA

Pour utiliser ESPHome sur PC, ce n’est pas compliquer. Tu installes ESPHome sur le PC et j’utilise l’invite de commande pour taper la commande pour compiler

Ta juste à mettre ton fichier YAML ( du firmware ) dans un dossier et taper :
esphome run tonfirmware.yaml.

la commande run fait tout ça d’un coup :

  • Valide la configuration
  • Compile un firmware
  • Télécharge le firmware (via OTA ou USB)
  • Démarre la vue du journal

Tu as les explications des commandes possibles pour esphome sur pc:

Mon minipc est un N95 avec 8Go de RAM, ça met le même temps à compiler que mon RPI4 4Go :rofl:
C’est juste qu’il a plus de RAM que mon RPI4, qui est trop limite pour compiler certain firmware ( il me reste 2GO/4 de libre sur mon RPI4).

Pour utiliser ESPhome sur un PC, tu peux aussi lancer le dashbord pour avoir exactement la même façon de faire qu’avec le module complementaire de HA, afin d’éviter de devoir taper des lignes de commandes à chaque fois que tu veux recompiler.

Une fois ESPHome installé sur le PC il suffit de lancer

epshome dashboard [chemin vers le repertoire de travail]

Par exemple si tu as un dossier C:\esphome qui contient les yaml de tes projets tu lances simplement

esphome dashboard c:\esphome

Une fois que c’est lancé, tu laisses la fenetre dans laquelle ça tourne, et dans ton navigateur favoris (mais avec Chrome ou Edge c’est plus pratique puisque ça permet de flasher les ESP directement depuis le navigateur) tu vas à l’adresse http:\localhost:6052
et tu retrouves un dashboard tout pareil qu’avec ESPhome dans HA, avec les mêmes options et possibilités.

Merci !
Je viens de parcourir un paquet de vidéos YT et la mise en place me semble assez claire.
J’avais juste peur d’une interaction avec le fonctionnement de mon PC W11 mais visiblement ça a l’air bien ségrégé.
Il me reste une question. OK pour tout le process d’écriture du code yaml, de sa compilation, du chargement du firmware et du suivi d’exécution dans la console web.
A la fin ESP configuré OK.
Mais ensuite comment je récupère dans HA les entités I/O de mon nouvel objet ?

ça se fait tout seul, a partir du moment où tu as la section « api: » (avec ou sans clé) dans ton code yaml, la découverte HA ferra son boulot.

Première tentative pour compiler sr mon PC…
J’ai installé Python,wheel, Esphome
Fichier yaml très simple :


esp32:
  board: esp32dev
  framework:
    type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
- platform: esphome

wifi: 
  ssid: xxxxxxxxxxxxx
  password: xxxxxxxxxxxxxxx

captive_portal:


web_server:
  port: 80



switch:
  - platform: gpio
    name: "LEDG"
    pin: 13
    id: ledG
  - platform: gpio
    name: "LEDY"
    pin: 12
    id: ledY
  - platform: gpio
    name: "LedR"
    pin: 14
    id:  ledR

Logs dans l’invite de commande après lancement run (désolé c’est un peu long…) :

*C:\Users\gauvr>esphome run testesphome.yaml*
*INFO ESPHome 2025.5.1*
*INFO Reading configuration testesphome.yaml...*
*WARNING GPIO12 is a strapping PIN and should only be used for I/O with care.*
*Attaching external pullup/down resistors to strapping pins can cause unexpected failures.*
*See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins*
*INFO Generating C++ source...*
*INFO Core config, version or integrations changed, cleaning build files...*
*INFO Cloning https://github.com/espressif/esp-protocols.git@mdns-v1.8.2*
*Traceback (most recent call last):*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\site-packages\esphome\git.py", line 20, in run_git_command*
*    ret = subprocess.run(cmd, cwd=cwd, capture_output=True, check=False)*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\subprocess.py", line 554, in run*
*    with Popen(*popenargs, **kwargs) as process:*
*         ~~~~~^^^^^^^^^^^^^^^^^^^^^^*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\subprocess.py", line 1039, in __init__*
*    self._execute_child(args, executable, preexec_fn, close_fds,*
*    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*
*                        pass_fds, cwd, env,*
*                        ^^^^^^^^^^^^^^^^^^^*
*    ...<5 lines>...*
*                        gid, gids, uid, umask,*
*                        ^^^^^^^^^^^^^^^^^^^^^^*
*                        start_new_session, process_group)*
*                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\subprocess.py", line 1551, in _execute_child*
*    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,*
*                       ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^*
*                             # no special security*
*                             ^^^^^^^^^^^^^^^^^^^^^*
*    ...<4 lines>...*
*                             cwd,*
*                             ^^^^*
*                             startupinfo)*
*                             ^^^^^^^^^^^^*
*FileNotFoundError: [WinError 2] Le fichier spécifié est introuvable*

*The above exception was the direct cause of the following exception:*

*Traceback (most recent call last):*
*  File "<frozen runpy>", line 198, in _run_module_as_main*
*  File "<frozen runpy>", line 88, in _run_code*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Scripts\esphome.exe\__main__.py", line 7, in <module>*
*    sys.exit(main())*
*             ~~~~^^*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\site-packages\esphome\__main__.py", line 1083, in main*
*    return run_esphome(sys.argv)*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\site-packages\esphome\__main__.py", line 1070, in run_esphome*
*    rc = POST_CONFIG_ACTIONS[args.command](args, config)*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\site-packages\esphome\__main__.py", line 513, in command_run*
*    exit_code = write_cpp(config)*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\site-packages\esphome\__main__.py", line 214, in write_cpp*
*    return write_cpp_file()*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\site-packages\esphome\__main__.py", line 232, in write_cpp_file*
*    writer.write_cpp(code_s)*
*    ~~~~~~~~~~~~~~~~^^^^^^^^*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\site-packages\esphome\writer.py", line 339, in write_cpp*
*    copy_src_tree()*
*    ~~~~~~~~~~~~~^^*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\site-packages\esphome\writer.py", line 305, in copy_src_tree*
*    copy_files()*
*    ~~~~~~~~~~^^*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\site-packages\esphome\components\esp32\__init__.py", line 869, in copy_files*
*    repo_dir, _ = git.clone_or_update(*
*                  ~~~~~~~~~~~~~~~~~~~^*
*        url=component[KEY_REPO],*
*        ^^^^^^^^^^^^^^^^^^^^^^^^*
*    ...<3 lines>...*
*        submodules=component[KEY_SUBMODULES],*
*        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*
*    )*
*    ^*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\site-packages\esphome\git.py", line 67, in clone_or_update*
*    run_git_command(cmd)*
*    ~~~~~~~~~~~~~~~^^^^^*
*  File "C:\Users\gauvr\AppData\Local\Programs\Python\Python313\Lib\site-packages\esphome\git.py", line 22, in run_git_command*
*    raise cv.Invalid(*
*    ...<2 lines>...*
*    ) from err*
*voluptuous.error.Invalid: git is not installed but required for external_components.*
*Please see https://git-scm.com/book/en/v2/Getting-Started-Installing-Git for installing git*

*C:\Users\gauvr>*

J’ai fait quoi comme erreur ? :kissing:

il te faut GIT, a installer sur ton PC.
tu avais l’explication dans l’erreur:

Installation sous Windows

Il existe plusieurs façons d’installer Git sur Windows. La version officielle est disponible en téléchargement sur le site web de Git. Rendez-vous simplement sur https://git-scm.com/download/win et le téléchargement démarrera automatiquement.

https://github.com/git-for-windows/git/releases/download/v2.49.0.windows.1/Git-2.49.0-64-bit.exe

En lisant les logs je pensais bien qu’il manquait quelque chose mais je préférais avoir la confirmation par un PRO ! :+1:
Ca marche impeccable et temps de compli divisé par 15 !
Pour moi qui fait plein d’essais avec plein de sensors, ça change la vie :grinning:
Question : tous ces logiciels chargés pour faire fonctionner ESPHome PC, ils sont uniquement déclenchés par la cde dans l’invite ? Rien ne tourne en tâche de fond ?

oui, rien en tache de fond.

Je continue mon exploration avec un capteur acheté sur Amazon qui devrait me permettre de faire quelque chose d’utile avec mon ESP32, à savoir le détecteur de présence LD2410-C.
Intégration sans problème et ça fonctionne parfaitement : :yum:


Juste à bien comprendre toutes les informations délivrées par le capteur.
Bon pour mon utilisation Presence detected devrait suffir !
Je voulais aller plus loin et voir s’il y avait des réglages possibles. J’ai installé sur mon S24+ Android l’application du fournisseur. Il a détecté immédiatement en Bluetooth le capteur…mais pas plus. L’appli n’arrive pas à s’y connecter, même en mettant le smartphone à quelques cm du capteur. :worried:
En tout cas encore merci pour tous les conseils qui m’ont accompagné pendant cette mini aventure de la découverte de l’EPS32 ! :clap: :+1:
Ma prochaine étape : parcourir les forums et YT pour trouver des bonnes idées d’utilisation (avec quand même la seule contrainte du fil à la patte pour alimenter ce type de DIY device)

Tu trouveras des informations de configuration du LD2410 sur ce sujet

Bonjour,
@geoay dans la version de juin de HA tu auras une « cartographie » des appareils Bluetooth :wink: comme tu peux l’avoir pour le Zigbee.

Bob

Cool comme nouveauté :smiley:

Oui, je vais peut être plus + utiliser, pour l’instant j’ai juste le même tag Bluetooth que toi @WarC0zes mais que je ne l’utilise pas, je vais reprendre un peu le sujet avec mes 15 ESP32 :rofl:

Bob