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:
@@ -0,0 +1,98 @@
|
||||
# Acceptance test and handover
|
||||
|
||||
Note the date, board variant/MAC, Git commit, ESPHome version, device name, and the
|
||||
names of the two measurement files. Don't include passwords in the report.
|
||||
|
||||
## Without real HA actions
|
||||
|
||||
1. Calibrate using [CALIBRATING.md](CALIBRATING.md); flash the result and run a
|
||||
new, independent measurement with `verify`. A successful fit alone
|
||||
doesn't prove the firmware coordinates are correct.
|
||||
2. Flash normal mode. Check that the measurement screen disappears.
|
||||
3. Check every visible tile and its edges: no other tile should respond.
|
||||
Tap calmly and rapidly in succession, but expect no repeat within the
|
||||
deliberate debounce period. A swipe should not trigger a tile action afterward.
|
||||
4. With 1–6 tiles: no page button. With 7–10: repeat at least twenty times:
|
||||
Next → tile → Previous. The bottom tile should not respond to the
|
||||
page button. Open/close overlays; a tap inside one should not leak through.
|
||||
5. Run the built-in render test via the encrypted API:
|
||||
|
||||
```sh
|
||||
python diagnostics/run_ui_test.py --host display-kitchen.local --name display-kitchen
|
||||
```
|
||||
|
||||
Requires ten successful page checks, fifty overlay cycles, and progress
|
||||
from real draw callbacks. This doesn't test physical touch or HA actions.
|
||||
6. Leave the board on for at least 15 minutes. Check that it doesn't restart,
|
||||
that standby only starts after ten minutes without touch, and that the first
|
||||
tap wakes the screen without toggling a device.
|
||||
|
||||
## With Home Assistant
|
||||
|
||||
Only now enable direct actions, reflash, and choose safe test devices.
|
||||
Check every configured tile with its real HA entity:
|
||||
|
||||
- A tap performs exactly one intended action; the feedback is correct.
|
||||
- Changes from HA also appear on the screen.
|
||||
- Light slider/color, climate setpoint, and supported modes work where used.
|
||||
- Vacuum actions and speeds work where supported. Note any missing functionality.
|
||||
- After a power interruption, Wi-Fi and HA come back; name, calibration, and tiles persist.
|
||||
- After a brief Wi-Fi/HA interruption, the connection recovers without a USB flash.
|
||||
|
||||
Keep logs local only. Check for resets, watchdog messages, repeated
|
||||
connection errors, and noticeably slow components. A short render test doesn't
|
||||
prove stability over days; note the duration actually observed.
|
||||
|
||||
## Automated development checks
|
||||
|
||||
From the repo, with the Python environment active:
|
||||
|
||||
```sh
|
||||
python -m unittest discover -s tests -p 'test_*.py'
|
||||
c++ -std=c++17 -Wall -Wextra -pedantic tests/test_cyd_ui.cpp -o /tmp/test_cyd_ui
|
||||
/tmp/test_cyd_ui
|
||||
c++ -std=c++17 -Wall -Wextra -pedantic tests/test_touch_filter.cpp -o /tmp/test_touch_filter
|
||||
c++ -std=c++17 -Wall -Wextra -pedantic tests/test_light_controls.cpp -o /tmp/test_light_controls
|
||||
/tmp/test_light_controls
|
||||
/tmp/test_touch_filter
|
||||
c++ -std=c++17 -Wall -Wextra -pedantic tests/test_light_controls.cpp -o /tmp/test_light_controls
|
||||
/tmp/test_light_controls
|
||||
python -m esphome config device.yaml
|
||||
python -m esphome compile device.yaml
|
||||
```
|
||||
|
||||
The C++ commands above are for macOS/Linux with a compiler. On Windows,
|
||||
the developer can use whatever C++17 toolchain is available. Only flash the
|
||||
checked profile to the identified board.
|
||||
|
||||
## Handover report
|
||||
|
||||
```text
|
||||
Board / MAC:
|
||||
Git commit / ESPHome version:
|
||||
Device name / HA entities:
|
||||
Calibration measurement + independent verification:
|
||||
Render test:
|
||||
Physical pagination/touch/standby:
|
||||
Real HA actions:
|
||||
Observed stable duration:
|
||||
Limitations / not yet tested:
|
||||
Local profile files safely stored:
|
||||
```
|
||||
|
||||
Give the owner the three local YAML files and the measurement files through a
|
||||
suitable private channel. For a different owner, use the clean repository
|
||||
or starter ZIP, so they get their own keys and their own panel calibration.
|
||||
|
||||
## Light card
|
||||
|
||||
- RGB+white light: three sliders; RGB-only: color and brightness; white-only:
|
||||
white temperature and brightness. A plain dimmer keeps the brightness card.
|
||||
- Drag slowly across the rainbow, release, and check the physical light.
|
||||
Repeat for white temperature and brightness. Brightness keeps the color mode.
|
||||
- Reopen the card and check the received values. Test two lights with
|
||||
different temperature ranges; no value should leak from the other light.
|
||||
- The firmware render diagnostic includes `Light sliders: PASS`: twenty preview events
|
||||
per slider, exactly one commit on release, no duplicate commit, no commit
|
||||
after an aborted touch, and four capability combinations. This runs with
|
||||
swapped-in callbacks and doesn't control any real lights.
|
||||
Reference in New Issue
Block a user