Mise à jour esp32

Normal, un code lambda différente de arduino > esp-idf

text_sensor:
  - platform: template
    id: lite_uptime
    name: Uptime
    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;
      if ( days ) {
        return { (to_string(days) +"d " + to_string(hours) +"h " + to_string(minutes) +"m "+ to_string(seconds) +"s ").c_str() };
      } else if ( hours ) {
        return { (to_string(hours) +"h " + to_string(minutes) +"m "+ to_string(seconds) +"s ").c_str() };
      } else if ( minutes ) {
        return { (to_string(minutes) +"m "+ to_string(seconds) +"s ").c_str() };
      } else {
        return { (to_string(seconds) +"s ").c_str() };
      }

en gros c’est string qui passe en to_string

J’ai à plusieurs reprises vu des tutos avec un switch pour un restart, mais je pense pour ma part qu’un button est plus approprié, car il n’a qu’un état possible.

Ce qui donne :

button:
# Bouton de redémarrage
  - platform: restart
    name: "Redémarrage"
    entity_category: "diagnostic"
1 « J'aime »

oui, toute façon le switch se met en on puis off.

Les deux sont possibles

Effectivement, ça passe beaucoup mieux !

Merci encore @WarC0zes

1 « J'aime »

Est-ce que pour celui-ci j’ai besoin de faire une mise à jour ?

Je ne vois pas le bloc esp32 et son framework…

packages:
  esphome.bluetooth-proxy: github://esphome/firmware/bluetooth-proxy/esp32-generic.yaml@main

esphome:
  name: esp32-bluetooth-proxy-34a990
  name_add_mac_suffix: false
  friendly_name: Xiaomi MiFlower Max

met a jour le lien du firmware sur le dépot, tu utilises l’ancien qui n’est plus mis a jour

packages:
  esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic/esp32-generic.yaml@main

pas besoin de spécifier le esp32, il est inclus dans le package

1 « J'aime »

Bonjour @WarC0zes ,

Malgré toutes mes modestes tentatives, cet esp32-bluetooth-proxy refuse les mises à jour. Il reste désespérément en 2025.10.5
J’avais bien changé le lien du firmware sans succès. Dois-je aussi modifier le code en ajoutant ces lignes ?

esp32:
  variant: esp32
  framework:
    type: esp-idf

Merci pour ton aide,

Voici le code actuel :

packages:
  esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic/esp32-generic.yaml@main

esphome:
  name: esp32-bluetooth-proxy-34a990
  name_add_mac_suffix: false
  friendly_name: Xiaomi MiFlower Max

api:
  encryption:
    key: KS2fWESCySxxxxxxxxd53jqwx8U=

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

captive_portal:

switch:
  - platform: gpio
    name: "Led bleu"
    id: led
    pin: 2

binary_sensor:
  - platform: gpio
    pin:
      number: 32
      inverted: true
      mode:
        input: true
        pullup: true
    name: "Capteur Pluie"

web_server:
  port: 80

Et le log :

INFO ESPHome 2025.11.1
INFO Reading configuration /config/esphome/esp32-bluetooth-proxy-34a990.yaml...
WARNING GPIO2 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 Starting log output from esp32-bluetooth-proxy-34a990.local using esphome API
INFO Successfully resolved esp32-bluetooth-proxy-34a990.local in 1.458s
INFO Successfully connected to esp32-bluetooth-proxy-34a990 @ 192.168.1.22 in 0.005s
INFO Successful handshake with esp32-bluetooth-proxy-34a990 @ 192.168.1.22 in 0.107s
[14:04:41.374][I][app:185]: ESPHome version 2025.10.5 compiled on Nov 12 2025, 14:37:06
[14:04:41.379][C][wifi:679]: WiFi:

Hello,

à mon sens il faut supprimer le package en idf

et rien d’autre à ajouter le BT proxy est dorénavant activé par défaut

enfin en théorie il y a aussi le

esp32_ble_tracker:

et

 bluetooth_proxy:
 active: false

pour le désactiver

cdt

C’est quoi, le package en idf ?

Re,

tu supprimes juste les 2 lignes et tu fais la maj, mais il faut le passer en idf

substitutions:
  name: esp-ventilation-rack2-pi
  friendly_name: esp-ventilation-rack2-pi

esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}
api:
  encryption:
    key: xxx

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

bluetooth_proxy:
  active: false

cdt

Bonjour,
mais c’est quoi l’erreur quand tu veux mettre a jour ?
je ne suis pas devin.

Regarde pour mon Atom lite en Bluetooth proxy, je n’ai pas spécifié esp32:, ça le récupère automatiquement dans le YAML du package.

C’est que précisément il n’y avait pas de message !
Quand il propose l’upgrade, je la lance et plusieurs minutes après, il revient dans le même état…

Je viens d’essayer une install après avoir désactivé le web server, j’ai lu qq part que ça prenait de la mémoire…
Ce que je comprends mal avec espHome d’une manière plus générale, c’est qu’il passe 10 min à compiler pour dire ensuite qu’il ne peut pas se connecter ! Il ne peut pas vérifier la connexion avant
?

Bref, est-ce que ça ne viendrait pas du fait que je fais les connexions en wifi (mon esp est sous la terrasse du jardin, pas pratique à démonter…) ?

Voici le log après l’install

Tu compiles esphome avec quelle machine ?

Un Apple M4 Max

Pour mémoire, j’ai 4 autres esp qui ont bien été mis à jour en esp-idf en WiFi
Il n’y a que celui-ci en Bluetooth qui fait des caprices…

Cdt

ok, ce n’est pas un problème de puissance de machine :sweat_smile:
Ça peut être un souci de wifi, trop limite. J’ai vu cette solution, mais je ne sais pas si ça sera bon :
utiliser power_save_mode: HIGH dans la partie wifi:

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

Non, surtout avec 64 Go de RAM ! :joy:

Bon, j’essaie avec le power_save_mode: HIGH

Mais j’ai vu ça aussi (traduit), mais ça a bien marché en WiFi pour les autres…

Tu étais en framework arduino en 2025.10.5 ?
tu as changé en framework esp-idf pour mettre en 2025.11.0 ?

Non, j’ai simplement remplacé la ligne du package que tu m’avais passée

Re,

Et un petit clean build files?

avant l’install

cdt

De mémoire j’avais fait…