Put ESP Screens in English and keep layouts when entity IDs change (0.2.40)

Everything a user sees or reads is now English: both boards' labels,
status replies and logs, the ESP Screens editor and Alerts cheatsheet,
and the README and guides (docs/TILES.md, CALIBRATING.md, ACCEPTANCE.md
and TROUBLESHOOTING.md replace the Dutch file names). Labels follow
Home Assistant's own English names (Heat/Cool modes, Heating/Cooling
actions, Away, Returning to dock, weather conditions), dates use English
abbreviations and the top bar writes numbers the English way. Docs use
HA 2026.9's menu names (Settings -> Apps, App store, Settings -> Tools).
Unused legacy files (home-like.yaml, buttons.yaml, a.out) are removed.

Firmware 0.2.34 names its entities in English. Home Assistant registers
a renamed ESPHome entity under a new entity ID, so the inbox
text.<screen>_tegelinstellingen becomes text.<screen>_tile_settings and
the layout stored under the old ID would be lost. The manager now
recognises the screen by its device, during a run or after a restart,
and moves its layout and update history along; the Update button and
the nightly round follow the screen through the rename. Screens that
still run 0.2.33 or older keep working: both languages are matched.

Main is the only release branch from now on.

Tested on a Home Assistant Yellow (HA 2026.9.1) with both bench boards:
see docs/TEST_RESULTS_0240.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Max Gramser
2026-09-15 02:08:43 +02:00
parent f60eed3ff6
commit 3e959b3df9
87 changed files with 5049 additions and 11167 deletions
+53 -53
View File
@@ -1,66 +1,66 @@
# Upgrade bestaand CYD-paneel naar runtime 0.2.7
# Upgrading an existing CYD panel to runtime 0.2.7
Bord: ESP32-2432S028, ESP32-D0WD-V3; MAC b0:cb:d8:e7:bd:7c.
Bestaande identiteit CYD 2.8in Display / cyd-2432s028 behouden. USB-poort werd
vooraf met esptool geïdentificeerd; Guition zat op een andere USB-poort.
Board: ESP32-2432S028, ESP32-D0WD-V3; MAC b0:cb:d8:e7:bd:7c.
Kept the existing identity CYD 2.8in Display / cyd-2432s028. The USB port was
identified beforehand with esptool; the Guition was on a different USB port.
Eigen profiel: genegeerd easy-cyd-device.yaml, met de bestaande lokale
calibration.yaml en API/OTA/wifi-secretverwijzingen. Een back-up van de eerste
64 KiB (partitie/configuratieruimte) is lokaal opgeslagen. Een volledige snelle
uitlezing gaf een seriële fout; de volledige langzame uitlezing is afgebroken.
Dit is dus geen volledige oude-firmwareback-up. USB-upload op 115200 geslaagd;
verdere correctie via de geverifieerde OTA-host.
Own profile: gitignored easy-cyd-device.yaml, with the existing local
calibration.yaml and API/OTA/Wi-Fi secret references. A backup of the first
64 KiB (partition/configuration space) is stored locally. A full fast
read gave a serial error; the full slow read was aborted.
So this is not a complete old-firmware backup. USB upload at 115200 succeeded;
further correction via the verified OTA host.
De bestaande affine kalibratie is eenmalig in preference-key 0x43594403 gezet.
Daarna gebruikt het definitieve profiel de standaard opstart en bestaande NVS.
The existing affine calibration was written once into preference key 0x43594403.
After that, the final profile uses the standard boot and existing NVS.
## Tijdens de upgrade gevonden
## Found during the upgrade
Een tijdelijk on_boot-list in het lokale migratieprofiel verving het on_boot-
object van het pakket. Daardoor ontbrak de normale UI-initialisatie en crashte
het begin van de renderdiagnose. De tijdelijke import is verwijderd nadat de
kalibratie was opgeslagen. In de definitieve gegenereerde C++ zijn runtime-bind,
light_controls::setup en screen_calibration::setup weer aanwezig. De volledige
renderdiagnose slaagt daarna (tien paginacontroles en vijftig overlays).
Gebruik dit tijdelijke migratieprofiel niet voor toekomstige flashes.
A temporary on_boot list in the local migration profile replaced the package's
on_boot object. As a result, the normal UI initialization was missing and
the start of the render diagnostic crashed. The temporary import was removed after the
calibration had been saved. In the final generated C++, runtime-bind,
light_controls::setup, and screen_calibration::setup are present again. The full
render diagnostic then passes (ten page checks and fifty overlays).
Don't use this temporary migration profile for future flashes.
HA ontdekte de nieuwe Tegelinstellingen-entity zonder nieuwe API-sleutel. De oude
tien entiteiten zijn overgezet; daarna heeft de gebruiker de indeling gewijzigd.
Die actuele indeling is behouden. Swipe is aan, standby 600 seconden. Bij maximaal
zes tegels blijft de paginering verborgen.
HA discovered the new Tegelinstellingen entity without a new API key. The old
ten entities were carried over; the user then changed the layout.
That current layout is preserved. Swipe is on, standby 600 seconds. With six
tiles or fewer, pagination stays hidden.
Definitieve build: ESPHome 2026.6.2, 2026-09-12 17:50:49 +0200,
config_hash=0x0a15a59f, broncommit a14a66f.
Final build: ESPHome 2026.6.2, 2026-09-12 17:50:49 +0200,
config_hash=0x0a15a59f, source commit a14a66f.
## Verificatie
## Verification
- Definitieve build en OTA-upload geslaagd; identiteit en firmwareversie via de
versleutelde API gecontroleerd.
- Renderdiagnose: tien geslaagde paginacontroles, vijftig overlaycycli en
`Light sliders: PASS`. De diagnose gebruikte de toen ingestelde twee tegels;
dit is geen fysieke swipecontrole van vier pagina's.
- Home Assistant en ESP Screen Manager melden het paneel online met versie 0.2.7.
Wijzigingen van de gebruiker in de tegelindeling blijven behouden.
- Bestaande kalibratie hergebruikt; tijdens deze upgrade is geen nieuwe
onafhankelijke fysieke kalibratiemeting uitgevoerd.
- Final build and OTA upload succeeded; identity and firmware version checked
via the encrypted API.
- Render diagnostic: ten successful page checks, fifty overlay cycles, and
`Light sliders: PASS`. The diagnostic used the two tiles configured at the time;
this is not a physical swipe check of four pages.
- Home Assistant and ESP Screen Manager report the panel online with version 0.2.7.
The user's changes to the tile layout are preserved.
- Existing calibration reused; no new independent physical calibration
measurement was performed during this upgrade.
De 0.2.7-observatie is vijftien minuten voltooid met een levende API-respons elke
dertig seconden, zonder herstart of verbindingsverlies. Vrij geheugen circa
111–119 kB. Door fysieke bediening werd tien minuten onafgebroken inactiviteit
niet bereikt; standby/ontwaken is in deze observatie niet bevestigd.
The 0.2.7 observation ran for fifteen minutes complete, with a live API response every
thirty seconds, with no restart or connection loss. Free memory around
111–119 kB. Because of physical use, ten minutes of uninterrupted inactivity
was not reached; standby/wake was not confirmed in this observation.
## Vervolg: tekstlayout 0.2.8
## Follow-up: text layout 0.2.8
De eigenaar meldde vervolgens afvallende titels, te vroeg afgekorte ondertitels
en een overlappende mini-slider. Stabiliteit alleen bevestigt dus niet de
bruikbaarheid van de layout. De titels hadden geen expliciete breedte en de
ondertitel nam de inhoudsbreedte van de titel over. De compacte kaart had daarnaast
onvoldoende verticale ruimte voor de extra slider.
The owner then reported titles running off the edge, subtitles truncated too early,
and an overlapping mini-slider. So stability alone doesn't confirm the
layout's usability. The titles had no explicit width, and the
subtitle inherited the title's content width. The compact card also had
insufficient vertical space for the extra slider.
Runtime 0.2.8 begrenst beide regels op de beschikbare inhoudsbreedte, vergroot die
bij een verborgen icoon en reserveert op de CYD aparte ruimte voor de schuif.
De renderdiagnose controleert nu de echte LVGL-coördinaten op afkapping buiten het
vak en overlapping van tekstregels/slider. Met de actuele vier tegels, waaronder
een lamp met mini-slider: tien paginacontroles en vijftig overlaycycli geslaagd.
De slidertest slaagt ook. Fysieke bevestiging van de nieuwe layout staat nog open.
De vijftien minuten hierboven gelden voor 0.2.7, niet voor deze vervolgbuild.
Runtime 0.2.8 bounds both lines to the available content width, expands that
when an icon is hidden, and reserves separate space for the slider on the CYD.
The render diagnostic now checks the real LVGL coordinates for clipping outside the
box and overlap between text lines/slider. With the current four tiles, including
a light with a mini-slider: ten page checks and fifty overlay cycles passed.
The slider test also passes. Physical confirmation of the new layout is still open.
The fifteen minutes above apply to 0.2.7, not to this follow-up build.