How maxgramser/homeassistant_espscreen works
Home Assistant ESP Screens combines an ESP Screen Manager app, a browser-based screen editor and firmware for touch panels. The main workflow is: an administrator configures a screen in the editor, saves and sends its layout through the manager, and the panel renders Home Assistant data and dispatches tile actions. The README also documents firmware installation and updates, alerts, camera cards, history, and on-screen settings. Some backend and firmware modules are represented by their exact tree paths; their internal wiring is not inferred where excerpts were unavailable.
Main entry points: server.py Manager server · smart_display.h Display runtime · runtime_tiles.h Tile rendering · store.ts Editor state
Components 25
Screen editor
- Editor app
web/src/App.vue - Editor state
web/src/store.ts - Layout model
web/src/model/layout.ts - Drag editing
web/src/drag.ts - Layout view
web/src/components/LayoutView.vue - Editor API
web/src/api.ts
HA manager
- Manager server
screen_manager/app/server.py - HA integration
screen_manager/app/core.py - Entity catalogue
screen_manager/app/ha_catalogue.py - Alert handling
screen_manager/app/alert_layout.py - Camera feeds
screen_manager/app/camera_feed.py - History cards
screen_manager/app/history_card.py - Firmware management
screen_manager/app/firmware.py - App updates
screen_manager/app/updates.py
Panel firmware
- Display runtime
components/smart_display/smart_display.h - Tile rendering
components/smart_display/runtime_tiles.h - Runtime model
components/smart_display/runtime_model.h - Screen settings
components/smart_display/settings_screen.h - Camera card
components/smart_display/camera_view.h - History view
components/smart_display/history_view.h
Touch input
- Touch driver
components/xpt2046/touchscreen/xpt2046.cpp - Screen input
components/smart_display/screen_input.h
Other components
- Administrator
- Home Assistant
- ESP touch panel
Connections 26
- Administrator → Editor app: edits screens
- Editor app → Editor state: selects view
- Layout view → Layout model: arranges tiles
- Drag editing → Layout model: previews placement
- Drag editing → Editor state: updates layout
- Editor state → Editor API: requests API
- Editor API → Manager server: sends layout
- Manager server → HA integration: uses HA data
- Manager server → Entity catalogue: loads entities
- Home Assistant → Manager server: provides states and actions
- Manager server → Alert handling: handles alerts
- Manager server → Camera feeds: serves camera feeds
- Manager server → History cards: provides history data
- Manager server → Firmware management: manages firmware
- Manager server → App updates: checks updates
- Firmware management → ESP touch panel: installs firmware
- Manager server → ESP touch panel: sends layout and updates
- ESP touch panel → Display runtime: runs firmware
- Display runtime → Tile rendering: renders tiles
- Tile rendering → Runtime model: reads screen model
- Tile rendering → Home Assistant: dispatches tile actions
- Display runtime → Screen settings: offers settings
- Display runtime → Camera card: renders camera
- Display runtime → History view: renders history
- Touch driver → Screen input: reports touch
- Screen input → Display runtime: routes input