Files
homeassistant_espscreen/AGENTS.md
T
Max Gramser 3f6889f750 Let every screen choose its top bar: clocks, date and entities (0.2.38)
The name stays on the left; up to six items go on the right: the time, an
analog clock, the date, or a Home Assistant entity with its icon, showing its
state or how long ago it changed, always or only while active. The add-on
formats entity text in Dutch and sends it as op: header right after the layout
to firmware 0.2.32+; older firmware keeps the clock of show_clock, which now
follows the clock item.

The firmware draws every value in one font on the name's baseline, centres
icons and the dial on the digit height and measures gaps between glyph ink, so
the bar looks even; the editor's mockup uses Roboto and the same integer rules.
tools/render_topbar.py renders the real LVGL code on a computer (ESPHome host +
SDL2). The editor's section buttons are gone.

Firmware 0.2.32 for both boards.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 18:38:49 +02:00

5.0 KiB
Raw Blame History

Easy Setup en releases

De voorkeursroute voor nieuwe gebruikers is docs/EASY_SETUP.md: ESP Screen Manager plus remote ESPHome-pakketten. Geen token of blueprint nodig. Tegels staan in de permanente add-ondata; wifi/API/OTA blijven in de eigen ESPHome-YAML. Lees docs/RELEASING.md voordat je updates publiceert. Main distribueert beide borden. Elke push naar GitHub is een release: verhoog dan ook altijd de add-onversie in screen_manager/config.yaml (met CHANGELOG-regel), anders ziet HA geen update. Genereer packages met tools/generate_packages.py; bewerk ze niet handmatig. Runtime-modus ondersteunt alle kaarten op alle twintig posities. De positiebeperkingen hieronder gelden uitsluitend voor de oude handmatige profielen. Behoud gegevensschema, protocolcompatibiliteit, unieke sleutels en CYD-preferences. Test updates met bestaande gegevens. Publiceer geen onbekende opslagversie zonder migratie. Productie-Ingress heeft geen long-lived token of publieke poort nodig.

Guition-branch

De Guition 4848S040 heeft een apart profiel guition-4848s040.yaml met 480×480, ST7701S RGB en GT911. Lees docs/GUITION.md. Gebruik de eigen lokale guition-device.yaml; neem geen CYD-layout of XPT2046-kalibratie over. Controleer touch met tools/verify_gt911.py en houd de CYD-regressies groen. Configureer geen wallbox-relais als onderdeel van displayondersteuning.

Werkinstructies voor LLM's en developers

Dit project bedient een ESP32-2432S028 met ILI9341 + XPT2046 (320×240, LVGL 90°). Lees README.md en docs/ voordat je installeert. De eigenaar kan fysiek tikken; een agent kan dat niet vervangen door softwarecoördinaten.

Een nieuw scherm installeren

  1. Identificeer USB-poort en bordvariant. Gebruik ESPHome 2026.6.2 met Python 3.11–3.14. Controleer eerst of er lokale configuratie bestaat.
  2. Maak in een verse kopie met tools/new_device.py een eigen device.yaml, calibration.yaml, secrets.yaml. Overschrijf nooit een werkend profiel. Laat de eigenaar wifi lokaal invullen. Toon geen sleutels in logs/chat.
  3. Flash device.yaml met de CLI-substitutie CALIBRATION_ON_BOOT=true. Het geïsoleerde scherm heeft vijf kruisjes en werkt zonder HA.
  4. Volg docs/CALIBREREN.md: geleide USB-capture, fit, flash, nieuwe capture, onafhankelijke verify. Vraag fysieke tikken per doel. Wacht op bevestiging dat het meetscherm werkelijk zichtbaar is; een geslaagde build is geen flash.
  5. Flash zonder die override. Koppel de eigen HA via de ESPHome-integratie. Lees echte entity-ID's en ondersteunde attributen; verzin geen entiteiten.
  6. Configureer alle gebruikte tegels volgens docs/TEGELS.md. De vacuumkaart zit op positie 6. Posities 8/10 hebben geen volledige slider/climatebinding. Test geen echte apparaat-acties zonder toestemming van de eigenaar.
  7. Doorloop docs/ACCEPTATIE.md en rapporteer werkelijk uitgevoerde tests, beperkingen en de geobserveerde stabiliteitsduur.

Code en regressies

  • Houd basishardware en UI in home-like-2432s028.yaml; eigen gegevens horen in de genegeerde lokale profielen. home-like.yaml is een ander oud profiel.
  • Behoud vaste pagina's, verborgen navigatie bij maximaal zes tegels en minimaal 600 seconden standaard-standby. Geen vrij scrollen herintroduceren zonder touch-/navigatieregressies fysiek te testen.
  • Behoud touchfilter en eventguard vóór acties; kalibratie verwerkt gefilterde fysieke ADC-waarden. Zet de affine correctie niet dubbel in driver en UI.
  • Kalibratiewizard veronderstelt swap_xy=false, mirror_x=true, mirror_y=false en LVGL 90°. Een gewijzigde oriëntatie vereist ook nieuwe projectie/tests.
  • Run Python-tests, beide C++-tests en ESPHome-validatie/build bij codewijzigingen. Firmwaretests en hardwareacceptatie zijn verschillende controles.
  • diagnostics/run_ui_test.py rendert zonder HA-acties; raak tijdens die test het scherm niet aan. Gebruik --name voor de verwachte apparaatidentiteit. diagnostics/send_layout.py zet een demo-indeling met alle kaarttypen op een scherm via de API-inbox (geen HA-acties); de manager herstelt de echte indeling binnen ~25 s. Guition: capture_ui.py bewaart de LVGL-render als PNG. Zonder scherm: tools/render_topbar.py rendert de echte bovenbalkcode van beide borden via ESPHome host + SDL2 naar .esphome/render-topbar/out/sheet.png.
  • Deel via tools/export_bundle.py of Git. Stage geen secrets, metingen, binaries, logs, buildcache of lokale apparaatprofielen.
  • Geen automatische firmware-upload naar een willekeurige aangesloten poort. Bij meerdere borden eerst de bedoelde poort vaststellen.
  • Profielen met dezelfde DEVICE_NAME (Easy Setup en handmatig) delen .esphome/build/<naam>. Compileer of upload ze nooit gelijktijdig; controleer in het uploadlog het pad van firmware.bin en daarna de compileertijd via device_info. Een verkeerd profiel haalt het scherm uit ESP Screen Manager.

Historische diagnose is achtergrond, geen bewijs dat een nieuw paneel goed werkt. Maak tijdens onboarding geen claims over niet-uitgevoerde fysieke tests.