Bonjour,
J’ai une grosse incompréhension suite à cette mise à jour.
En 2025.7.0, j’ai fait la mise à jour du serveur, et la mise à jour des devices sans aucun soucis.
Mes trucs sont maintenant stable, donc je ne modifie pas les configurations, je met juste à jour de temps en temps pour ne pas avoir un trop gros saut à faire, et louper des breaking change.
Donc la je vais pour updater vers la .1 comme j’avais fait la .0 quelques heures avant… Le lxc ok, mais j’ai un device qui ne veut pas.
RAM: [== ] 18.9% (used 62064 bytes from 327680 bytes)
Flash: [==========] 107.9% (used 1979204 bytes from 1835008 bytes)
Error: The program size (1979204 bytes) is greater than maximum allowed (1835008 bytes)
💡 TIP: Your ESP32 with Arduino framework has run out of flash space.
To fix this, switch to the ESP-IDF framework which is more memory efficient:
1. In your YAML configuration, modify the framework section:
esp32:
framework:
type: esp-idf
2. Clean build files and compile again
Note: ESP-IDF uses less flash space and provides better performance.
Some Arduino-specific libraries may need alternatives.
Ok, donc pas de soucis de flash en 7.0, la 7.1 prends plus de place. Pourquoi pas.
Je fais ce qu’on me dit, je change dans framework mon « arduino » par « esp-idf », et clean, compile again.
Et j’ai des erreurs en pagaille…
/root/.platformio/packages/toolchain-xtensa-esp-elf/xtensa-esp-elf/include/c++/13.2.0/bits/basic_string.h:176:7: note: candidate expects 2 arguments, 1 provided
/root/config/esp-conso-chauffage.yaml:221:113: error: could not convert '{<expression error>}' from '<brace-enclosed initializer list>' to 'esphome::optional<std::__cxx11::basic_string<char> >'
221 | return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
| ^
| |
| <brace-enclosed initializer list>
C’est visiblement lié à cette partie la du yaml
# Transformation des secondes en jours
text_sensor:
- platform: template
name: "Allumé depuis (j)"
lambda: |-
int seconds = (id(uptime_sec).state);
if (seconds == 0) {
seconds = 1;
}
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
icon: mdi:clock-start
update_interval: 300s
Ca se compile sur Arduino, pas sur esp-idf. Donc je suis un peu perdu…
Au delà de ça, le seul intéret est que ça me permettait de mettre simplement l’info dans un button-card.
Mais je récupère aussi l’uptime en secondes dans une autre entité. J’avais fait ça parce que je n’avais pas trouvé comment la formater dans mon button card, mais peut-être que ça serai plus simple de faire comme ça.
