Your phone is in the other room, and a tablet on the wall is expensive and power hungry. A small ESP32 touch panel costs a fraction of that, sits on a table or in a wall box, and is always at hand for the lights, the heating or the vacuum. The hard part was never the hardware: it was writing ESPHome YAML and LVGL layouts for every screen, and reflashing whenever you want to change a button. Tessera removes that part completely.
Tessera is an app (add-on) that runs inside Home Assistant. It flashes a panel over USB once, and after that everything goes over Wi-Fi. You lay out the screen in a drag-and-drop editor in Home Assistant, press Save & send, and the screen has it. No reflash, no YAML to write, no blueprint, no MQTT, no long-lived token. Everything stays local through the native ESPHome API.
Tiles: lights (with colour and brightness sliders and WLED effects), climate, blinds and curtains, the robot vacuum, media players with album art, the weather, history graphs, analog and digital clocks, timers, scenes and scripts, and camera pictures.
Up to eight pages per screen, with as many tiles per page as the glass holds. A tile can take the whole page, or open another page.
Automations can push an alert to every screen, or to one, for example with the doorbell camera's picture when someone rings.
Dark mode, night brightness and standby, nine languages, and firmware updates over the air from Home Assistant.
HardwareNine boards from 2.8 to 10.1 inch, all ESP32 based:
Cheap Yellow Display ESP32-2432S028 (320 x 240, ILI9341, resistive touch), around 15 dollars
Guition ESP32-S3-4848S040 (4 inch, 480 x 480, capacitive GT911), fits an 86 mm wall box
Waveshare ESP32-S3-Touch-LCD-4.3 (800 x 480) and ESP32-S3-Touch-LCD-3.5
Guition JC8012P4A1 (10.1 inch, 1280 x 800, ESP32-P4)
Experimental: Waveshare 7 inch and 4B, Guition JC1060P470 7 inch
The 4-inch Guition is the one I use myself: bright, smooth capacitive touch, and it has been on the wall for months.
How it worksThe firmware is ESPHome with LVGL. One shared core (packages/core.yaml plus a C++ component) holds all behaviour, and every board is a thin file with only its hardware and sizes, so a new board is mostly a matter of pins and a display driver. The screen does not contain your layout at build time: the add-on sends the tiles over the ESPHome API while the screen runs, which is why changing a tile never needs a reflash. The screen reports what it can do (grid, picture support, dimming), and the add-on only offers what that board supports.
Getting started1. Add the repository to the Home Assistant app store and install ESP Screen Manager.
2. Plug the panel into your Home Assistant machine over USB and choose New screen. The app builds and flashes the firmware (or gives you the file to flash from your own computer).
3. Pair the screen through the ESPHome integration, pick your tiles, and press Save & send.
Full instructions, the list of boards and owner reports are on the website: https://tessera-maxgramser.on-forge.com
Open sourceTessera is completely free and MIT licensed: nothing to buy, no cloud, no account. Source, issues and the full reference are on GitHub: https://github.com/MaxGramser/homeassistant_espscreen
Got it running on a board? Please share which one on the website, it helps the next person pick a screen that works.







Comments