Build the screens with ESPHome 2026.9 and keep its build memory in the app's own storage, give the CYD 94 KB more room, and stop a timer from counting one second too many (0.2.89)
The add-on ships ESPHome 2026.9.0: it builds an ESP32 with ESP-IDF itself and keeps a compiler cache. firmware.py gives the CLI its own storage in /data (ESPHOME_DATA_DIR /data/esphome, which the ESPHome Device Builder no longer wipes on start; ESP-IDF and ccache in /data/idf, at most 1 GB; compilers limited to the core count as PlatformIO ran them), removes the unused PlatformIO once before the first ESP-IDF build, and leaves the new folders out of backups. Firmware 0.2.75: assertion_level SILENT in every board's esp32 block, the core logs from INFO, and clock_parts() in runtime_model.h replaces sscanf. timer_left() caps a running timer at its duration (the screen's clock runs up to a second behind Home Assistant's). The packages keep min_version 2026.6.2, the top-level online_image and OTA passwords for new screens, so an add-on or Device Builder that isn't updated yet keeps building every screen; CI now builds both boards with the add-on's ESPHome and with min_version. ESP-IDF's error names stay on, and build_flags stay under platformio_options, because ESPHome 2026.9's LVGL reads only those. tools/check.sh: 478 Python tests, 19/19 C++, editor; --firmware PASS with ESPHome 2026.6.2 (CYD 87.7 %), 2026.8.1 (88.3 %) and 2026.9.0 (86.4 %, was 91.5 %). Both bench screens OTA'd and watched for half an hour; ESP Screens as a local add-on on the Yellow built both profiles (CYD 1,037 s first build, 41 s unchanged). Details: docs/TEST_RESULTS_0289.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -324,7 +324,7 @@ substitutions:
|
||||
# ============================================================
|
||||
|
||||
esphome:
|
||||
platformio_options:
|
||||
platformio_options: # not `build_flags:` yet, see packages/core.yaml
|
||||
build_flags:
|
||||
- -DLV_USE_SNAPSHOT=1
|
||||
includes:
|
||||
@@ -339,6 +339,11 @@ esp32:
|
||||
type: esp-idf
|
||||
version: recommended
|
||||
advanced:
|
||||
# ESP-IDF's assert texts (file, line and condition of every check) stay out of the firmware (0.2.75+), 49 KB on
|
||||
# the CYD: a failed assert still stops and restarts the screen, and its backtrace still points at the line.
|
||||
# Every board sets it (tests/test_easy_package.py). ESP-IDF's error names stay: without them ESPHome's own
|
||||
# error lines only say "UNKNOWN ERROR".
|
||||
assertion_level: SILENT
|
||||
execute_from_psram: true
|
||||
|
||||
psram:
|
||||
@@ -381,7 +386,7 @@ http_request:
|
||||
verify_ssl: false
|
||||
|
||||
# The top-level online_image form that ESPHome 2026.6.2 (min_version) knows; 2026.7+ still reads it and suggests
|
||||
# `image: - platform: online_image`, which this profile can use once min_version reaches 2026.7.
|
||||
# `image: - platform: online_image`, and 2027.1 drops it: move with the min_version raise (docs/RELEASING.md, 0.2.89).
|
||||
online_image:
|
||||
- id: camera_image
|
||||
url: "http://127.0.0.1/camera.bmp" # set when a camera opens
|
||||
@@ -783,7 +788,9 @@ script:
|
||||
- id: ui_self_test
|
||||
mode: single
|
||||
then:
|
||||
- logger.log: "UI_TEST START: page/overlay render stress, no HA actions"
|
||||
- logger.log:
|
||||
format: "UI_TEST START: page/overlay render stress, no HA actions"
|
||||
level: INFO # the core logs from INFO; logger.log is DEBUG by default
|
||||
- lambda: 'ESP_LOGI("ui_test", "Light sliders: %s", light_controls::self_test() ? "PASS" : "FAIL");'
|
||||
- lambda: 'id(calibration_active) = false;'
|
||||
- lvgl.page.show: home_page
|
||||
@@ -843,7 +850,9 @@ script:
|
||||
- delay: 150ms
|
||||
- lvgl.widget.hide: alert_overlay
|
||||
- lambda: 'if (!id(ui_refresh).is_running()) id(ui_refresh).execute();'
|
||||
- logger.log: "UI_TEST COMPLETE"
|
||||
- logger.log:
|
||||
format: "UI_TEST COMPLETE"
|
||||
level: INFO
|
||||
|
||||
# The two scripts that drive the backlight through set_backlight; the CYD drives it as a light action.
|
||||
- id: alert_dismiss
|
||||
|
||||
Reference in New Issue
Block a user