From 8971ab07e1824798c7e1ad3576aad1a382aa1f22 Mon Sep 17 00:00:00 2001 From: Max Gramser Date: Thu, 17 Sep 2026 08:37:57 +0200 Subject: [PATCH] Keep the README to the pitch, the pictures and the install, and move the rest to README_EXTENDED The README had grown into the full documentation. It now opens with a short why, what and how, shows the screens and ESP Screens in pictures, and keeps the installation steps. Every card, setting, alert and update detail moves unchanged to README_EXTENDED.md. The license now names Max Gramser; the README credits Adrian Kuehlewind's ESPHome-touch-display-mount, where the first version started. The unused background images from that project are gone. Co-Authored-By: Claude Opus 5 --- AGENTS.md | 2 +- LICENSE | 2 +- README.md | 481 +++++--------------------- README_EXTENDED.md | 392 +++++++++++++++++++++ images/smartdisplay_background.png | Bin 49781 -> 0 bytes images/smartdisplay_background_90.png | Bin 56953 -> 0 bytes 6 files changed, 480 insertions(+), 397 deletions(-) create mode 100644 README_EXTENDED.md delete mode 100644 images/smartdisplay_background.png delete mode 100644 images/smartdisplay_background_90.png diff --git a/AGENTS.md b/AGENTS.md index 9dcdb4c..daec794 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -24,7 +24,7 @@ Don't configure wallbox relays as part of display support. # Working instructions for LLMs and developers This project drives an ESP32-2432S028 with ILI9341 + XPT2046 (320×240, -LVGL 90°). Read README.md and docs/ before installing. The owner can +LVGL 90°). Read README.md, README_EXTENDED.md and docs/ before installing. The owner can physically tap; an agent cannot replace that with software coordinates. ## Installing a new screen diff --git a/LICENSE b/LICENSE index 17e05d4..ce18867 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 Adrian Kuehlewind +Copyright (c) 2026 Max Gramser Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 0616e3e..0b28e2a 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,85 @@ # Home Assistant ESP Screens -A Home Assistant control screen that you lay out yourself. **ESP Screen Manager** -manages your tiles and builds and installs the ESPHome firmware from Home Assistant. -No blueprint, MQTT, or long-lived token needed for normal use. - -**New screen? Follow the [complete installation guide](docs/EASY_SETUP.md).** -For every new user and every new device, you create your own profile. -

The Guition 4-inch screen on a table: the second page with scenes and scripts, the robot vacuum and a table lamp with a brightness slider The vacuum card on the Guition: start cleaning, return to dock, find my robot and the suction power

+ +**A touch screen for every room that you lay out yourself, and manage from Home Assistant.** + +**Why.** Your phone is in the other room and a tablet on the wall is expensive. 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. + +**What.** Firmware for two affordable panels, the 2.8-inch CYD and the 4-inch Guition, with up to +twenty tiles over four pages: lights, climate, blinds and curtains, the vacuum, media, the weather, +history graphs, clocks and timers. An automation can put an alert on every screen when someone rings +the bell. + +**How.** ESP Screen Manager is an app inside Home Assistant. It flashes a new screen over USB, updates +it over Wi-Fi and sends it your tiles. Changing a screen is pick, drag and **Save & send to screen**: +no reflash, no YAML to write, no blueprint, MQTT or token. + +**[Install it](#installing-from-home-assistant)** · [Full reference](README_EXTENDED.md) · [What's new](screen_manager/CHANGELOG.md) + +## On the screen + +

+ Guition 4-inch screen: an analog clock with the date, a temperature graph, the weather forecast, a lamp and presence + Double-width tiles with direct control: the heating setpoint, a dimmer and the Sonos volume + An energy graph, the robot vacuum, a coffee machine, a fan and a good-night script with pastel backgrounds +

+

+ Weather card: current weather, the coming hours and the coming days with chance of rain + Climate card: the target temperature between big minus and plus keys, the mode keys, and fan and swing choices + Light control: color, color temperature and brightness +

+

+ Vacuum card: docked and charging, start and dock, the cleaning mode vacuum, vac and mop or mop, suction and water + Cover card for a venetian blind: its battery, the position slider with the blind hanging from the top, the tilt slider over slats, and open, stop and close + A finger on the history graph: the top of the card shows the average of that hour and its time, the graph stays as it is +

+

Tap a tile to switch it, hold it for the full card. Keys and sliders right on the tile, pastel colors, a clock, the weather and history you can read with a finger. Rendered from the firmware's own LVGL code with a demo home.

+

+ CYD 2.8-inch screen: the weather forecast, a kitchen timer, the coffee machine, a lamp and power usage as a large value + Second CYD page: Sonos volume, presence, a scene and an energy graph + The weather card on the CYD: current weather, the coming hours and the coming days +

+

+ The CYD with heating mode keys, playback keys for the radio and a ceiling fan's speed slider + The vacuum card on the CYD: state, battery and charging, clean and dock, the cleaning mode, suction and water + The history card on the CYD: power over 24 hours with its highest and lowest moment, an axis in watts and clock times +

+

The same cards on the 2.8-inch CYD, 320 × 240.

+ +## Managed from Home Assistant +

ESP Screens in Home Assistant: the screens on the left, the top bar and tiles of the selected screen on the right

-

A Guition ESP32-S3-4848S040 at home, and the ESP Screens page in Home Assistant with a demo home.

+

ESP Screens, a page in Home Assistant: every screen on the left, its top bar and tiles on the right.

+

+ Choosing tiles: every page in the screen preview, next to the entity picker with filters + Tile settings: name, icon, display, width, direct control, tap action and pastel background +

+

Search your home, drop a tile on the preview, tap it for its name, width, control and color. Save, and the screen has it.

+

+ Add to the top bar: the time, an analog clock, the date and suggestions from your own home + Settings in ESP Screens: New screen and Firmware & USB, the firmware updates, the Alerts cheatsheet, and the Claude skill +

+

A top bar built from your own home, firmware updates over Wi-Fi (every night if you like), and a skill so Claude can rearrange your screens.

-## Supported screens +## Alerts + +

+ An alert on the Guition: someone is at the door, with a Coming button + The Alerts cheatsheet in ESP Screens: the action name of every screen, ready to copy +

+

Someone at the door? One action in an automation wakes the screen and shows it, on one screen or all of them. How alerts work.

+ +## Installing from Home Assistant + +### Which screen | Screen | Resolution | Display / touch | | --- | --- | --- | @@ -27,258 +90,6 @@ Use these exact board variants: similar-looking product names can have different controllers or connectors. Wallbox relays are not controlled. The firmware and built-in CLI are tested with **ESPHome 2026.6.2**. -

- Guition 4-inch screen: an analog clock with the date, a temperature graph, the weather forecast, a lamp and presence - Double-width tiles with direct control: the heating setpoint, a dimmer and the Sonos volume - An energy graph, the robot vacuum, a coffee machine, a fan and a good-night script with pastel backgrounds -

-

- CYD 2.8-inch screen: the weather forecast, a kitchen timer, the coffee machine, a lamp and power usage as a large value - Second CYD page: Sonos volume, presence, a scene and an energy graph - The weather card on the CYD: current weather, the coming hours and the coming days -

-

Guition 4-inch, 480 × 480 (top) and CYD 2.8-inch, 320 × 240 (bottom), rendered from the firmware's own LVGL code with a demo home.

- -## What you can configure - -- **Up to twenty tiles**, spread across up to four fixed pages of six - tiles each. Search by entity, device, or room, and drag to reorder. -- **Per-tile settings:** a custom name, click behavior, a small slider where - supported, or a large value for things like temperature and power usage. - From firmware 0.2.13, the large value shows a small domain icon next to the - title; a number that's too long is truncated with an ellipsis, the unit stays visible. -- **Pastel backgrounds per tile:** choose red for an all-off script, - green for all-on, or any other color. The title and status stay dark and - readable. The color also appears in the screen preview; **Default** restores - the normal colors. Requires firmware 0.2.10 or newer. **None** drops the card - entirely: the content then sits at the same size directly on the screen background - (firmware 0.2.16). -- **Clock:** digital or analog. The analog clock has tick marks at 12, 3, 6, and 9 - and, on a single tile, shows a calendar block (weekday, day, month) next to the - dial; double-width shows the digital time with the date beside it. -- **Light control:** brightness, rainbow color, and white temperature according to - the light's capabilities. Open the detailed control with a long touch. -- **More cards:** climate, vacuum, fan, cover, media player, sensors, - select/input_select, number/input_number, switches, scenes, scripts, and - buttons. -- **Special cards (firmware 0.2.14+):** a **clock** (digital or analog) - as a built-in tile, a **weather forecast** with five days on a - double-width card, a **graph** of the sensor history in the tile, - a **sun path** (`sun.sun`: horizon with the sun between sunrise and - sunset), a **timer** (`timer.*`, tapping starts or pauses it), and - **presence** (`person.*`). Pick them in the picker like any other tile, or - drag them straight into the screen mockup; **Double-width** is an option for every tile. -- **Direct control on double-width tiles** (firmware 0.2.19+), like the rows in - Home Assistant: temperature − / + or mode buttons (climate), a toggle (switch, - light, fan), start/stop/dock (vacuum), open/stop/close or a - position slider (cover), volume with mute or previous/play/next (media), - − / + or a slider (numbers), previous/next (select), start/pause and - cancel (timer), and a single button for scenes, scripts, and buttons. Configurable - per tile; **None** keeps the regular card. -- **Weather card** with current weather, the coming hours and days including chance of - rain or millimeters; **climate card** with an on/off button, mode, fan, and swing settings. - The target temperature sits big between − / + keys with one row of mode keys below; the - Guition shows fan and swing right away on a card of their own, the CYD behind ···. -- **Vacuum card** with the state, battery and charging, start and dock, and how the robot - cleans: **vacuum, vacuum and mop, or mop only** for robots that offer a cleaning mode in - Home Assistant (such as Roborock), then suction and water. Only the rows the chosen mode - uses are shown (app 0.2.46 / firmware 0.2.39). - Scenes, scripts, and buttons show when they last ran. A tile that's waiting on - Home Assistant shows a small spinner on a light overlay. -- **Cover card** for blinds, curtains, shutters, and garage doors, like Home Assistant's own: - a tall position slider on which the blind hangs from the top, a tilt slider over slats for - venetian blinds, open, stop, and close, and the battery of a battery-powered blind - (such as Motionblinds). A cover shows only what it supports (app 0.2.58 / firmware 0.2.50). -- **History card** for sensors, numbers, binary sensors, people, and switches, the way Home - Assistant shows history: a line with an axis in round steps and clock times for numbers, - with the highest and lowest moment, and a timeline with the time in each state for on/off, - home and away, and a status. Choose **1 hour**, **24 hours**, or **1 week**; hold a finger on - the graph to read the value and time of that moment at the top (app 0.2.59 / firmware 0.2.51). -- **Top bar per screen** (firmware 0.2.32+): the name on the left, up to six - items of your choice on the right: the time, an analog clock, the date, or an - entity from Home Assistant with an icon, such as temperature, humidity, power usage, a door - (open/closed), the alarm, who's home, or when something or someone last - changed ("5 min ago", "Yesterday"). See [Top bar](#top-bar). -- **Screen settings:** standby time, normal and dimmed brightness, - night hours, 24- or 12-hour clock, return to the home page, and optional swiping - between pages. Change them in ESP Screens, where they apply at once, or on the screen - itself. With firmware 0.2.49+ the screen keeps them, and every one of them is also an - entity in Home Assistant, so an automation can switch **Night mode** or **Auto standby** - (firmware 0.2.41+), for example to keep a screen on while someone is home, and - wake a screen or put it to sleep with its **Wake** and **Sleep** buttons (firmware 0.2.45+). - See [Wake and sleep](#wake-and-sleep-from-an-automation). -- **Settings on the screen itself** (firmware 0.2.44+): hold the top bar for about a - second and a half and the screen opens its own settings page — brightness, night, - the clock, swiping, rotation, and what this screen is (name, IP address, firmware, - whether Home Assistant is connected, and Restart). Changes show up in ESP Screens - within a second. See [Settings on the screen](#settings-on-the-screen). -- **Guition rotation:** 0°, 90°, 180°, or 270°, directly from the management page. - Native LVGL rotation turns the display and touch together. The CYD keeps its fixed - orientation and its own calibration. -- **Inspector:** check entities, status, and configuration in ESP Screens. - Action feedback shows that a command is on its way. - -

- Double-width tiles with direct control: heating mode keys with heat selected, previous, pause and next for the Sonos, and a ceiling fan's speed slider - Power and humidity as large values, a lamp and a fan with a small slider on the tile, and an all-off script and a welcome-home scene with red and green backgrounds and when they last ran - A digital clock with the date, a pasta timer with pause and cancel, the outside temperature as a large value, and garden lights that are off -

-

- The CYD with heating mode keys, playback keys for the radio and a ceiling fan's speed slider - The CYD with power and humidity as large values, a lamp and a fan with small sliders, and red and green scene tiles - The CYD with a digital clock, previous and next for the house mode, and start, stop and dock for the robot vacuum -

-

What a tile can do: keys and sliders on double-width tiles, previous and next for a choice, large values, small sliders, pastel colors, a clock and a timer.

-

- Weather card: current weather, the coming hours and the coming days with chance of rain - Climate card: the target temperature between big minus and plus keys, the mode keys, and fan and swing choices - Light control: color, color temperature and brightness -

-

- Vacuum card: docked and charging, start and dock, the cleaning mode vacuum, vac and mop or mop, suction and water - Fan card: the speed as a tall slider with the fan in it - Curtains with open, stop and close, a kitchen timer counting down, a scene and the sun path -

-

- Cover card for a venetian blind: its battery, the position slider with the blind hanging from the top, the tilt slider over slats, and open, stop and close - Cover card for curtains: the position slider and the sideways open, stop and close keys - Cover card for a garage door that only opens and closes: its icon and the open, stop and close keys, close disabled while it is closed -

-

- History card for a temperature: the value now, the highest and lowest moment with their times, a line over 24 hours with an axis in degrees and clock times, and keys for 1 hour, 24 hours and 1 week - A finger on the history graph: the top of the card shows the average of that hour and its time, the graph stays as it is - History card for a person over a week: home, away and the zones they were in, with the time in each -

-

- The vacuum card on the CYD: state, battery and charging, clean and dock, the cleaning mode, suction and water - The climate card on the CYD: the target temperature with big minus and plus keys and one row of mode keys - The cover card on the CYD: the position and tilt sliders with their values beside them, the battery, and open, stop and close -

-

- The history card on the CYD: power over 24 hours with its highest and lowest moment, an axis in watts and clock times - A finger on the CYD's history graph: the average of that hour and its time at the top - The door's history on the CYD: a timeline over 24 hours with the time open and closed -

- -Features depend on the capabilities Home Assistant reports for an entity. -The app must keep running to keep the screens supplied with current data. - -A short tap on a switch switches immediately; the off state gets a gray icon. A long press -opens its history card with the toggle at the top right (firmware 0.2.51+). -The feedback stops as soon as Home Assistant reports the changed state, with a -minimum of 150 ms for switches. Tiles with a mini-slider keep their -icon; on the CYD, the icon and text block are vertically centered. - -## Alert from an automation - -

- An alert on the Guition: someone is at the door, with a Coming button - The Alerts cheatsheet in ESP Screens: the action name of every screen, ready to copy -

- -Every screen has the action **`esphome._show_alert`** (firmware 0.2.31+). It places -a card over the entire screen, wakes the screen, and keeps the backlight at normal -brightness until someone taps **OK**. In an automation: - -```yaml -action: esphome.kitchen_screen_show_alert -data: - title: "Someone is at the door" - subtitle: "Door 3, back" - icon: doorbell - color: orange - button_text: "Coming" - timeout: 0 - flash: true -``` - -- **`title`** and **`subtitle`**: a single-line title (truncated with an ellipsis if too long) and an - explanation that wraps across multiple lines. Empty is allowed; an empty title becomes "Notification". -- **`icon`**: a name from the tile picker, such as `doorbell`, `bell`, `alert-outline`, - `lock`, `door-open`, `motion-sensor`, `smoke-detector`, `water-alert`, `mailbox`, `car`, - or `account`. `mdi:doorbell` and the hex codepoint (`F12E6`) also work, as long as the glyph - is included in the firmware. Unknown falls back to the warning triangle. -- **`color`**: `red`, `orange`, `yellow`, `green`, `mint`, `blue`, `purple`, `pink`, or - `gray` — the same pastel shades as the tiles. Empty gives the white card. -- **`button_text`**: the text on the button; empty is "OK". -- **`timeout`**: seconds after which the card disappears on its own; `0` means it waits for the button, - however long that takes. The button always closes the card immediately, even with a timeout. Standby and - night mode wait as long as the card is showing. -- **`flash`**: `true` makes the backlight blink four times when the alert arrives. - -In ESP Screens, **Settings → Alerts** opens a cheatsheet with the exact action name for each screen, -a ready-to-paste example, and all fields, icons, and colors. Home Assistant asks for all seven fields; leave a field empty (`""`, `0`, `false`) if you -don't use it. A new alert replaces the current one. Every end is reported as the event -**`esphome.screen_alert`** with `action` (`ok`, `timeout`, `replaced`, or `remote`), `title`, -`screen`, and the `device_id` that Home Assistant adds, so an automation can wait for OK. -**`esphome._dismiss_alert`** clears the card remotely. - -### All screens at once - -From app 0.2.45, one event reaches every screen that is online, screens you add later included. -ESP Screen Manager passes it on to each screen's `show_alert` action. The fields are the same; -the ones you leave out stay empty: - -```yaml -actions: - - event: esp_screens_show_alert - event_data: - title: "Mail!" - subtitle: "There is post in the mailbox" - icon: mailbox - color: orange - timeout: 0 - flash: true -``` - -**`esp_screens_dismiss_alert`** clears the alert on every screen. The app has to be running -for these two events; the per-screen actions work without it. - -### Ask Claude - -Use Claude Code in Home Assistant? **Settings → Claude → Install for Claude Code** writes an -ESP Screens skill to `/homeassistant/.claude/skills/esp-screens`, so Claude knows the events, the -tile settings and every field, color and icon. Then ask, for example: "Put the vacuum on the living -room screen", "Give the living room lights a brightness slider and make that tile wide", "Move the -vacuum to page 1" or "Show an alert on all my screens when the mailbox is full." Claude reads what a -screen shows from `sensor.esp_screens_` and asks before it changes anything. **Download for -claude.ai** gives the same skill as a zip to upload in Claude under Customize → Skills. Nothing is -written until you press the button. - -

- Settings in ESP Screens: New screen and Firmware & USB, the firmware updates, the Alerts cheatsheet, and the Claude skill -

- -## Wake and sleep from an automation - -Every screen has two buttons in Home Assistant (firmware 0.2.45+). An automation presses them -with the `button.press` action: - -- **`button._wake`** does what a tap does: a screen in standby lights up, and the standby - time starts counting again. On a screen that is already on, only the count starts again. -- **`button._sleep`** puts the screen in standby right away, the same as when the standby - time runs out, and also works with **Auto standby** off. The screen stays in standby until someone - taps it, **Wake** is pressed or an alert comes in; switching Auto standby off doesn't end it. An alert - that is showing closes (reported as `remote`). - -Neither button saves anything on the screen, so an automation may press them as often as it likes, -on every motion too. That is the difference with the **Auto standby** switch, which is a setting. -To reach several screens at once, list their buttons: - -```yaml -actions: - - action: button.press - target: - entity_id: - - button.kitchen_screen_sleep - - button.living_room_screen_sleep -``` - -Don't target an area or a device with `button.press`: that presses every other button there too, -the Wake and Sleep of the same screen included. - -## Installing from Home Assistant - ### Do I need ESPHome? **You don't need to install the separate ESPHome Device Builder app.** @@ -338,142 +149,22 @@ You can install new firmware later from **Settings → Firmware & USB → Wi-Fi For an existing screen, always use the existing profile; creating a new installation profile generates new keys. -## Customizing tiles and colors +The [complete installation guide](docs/EASY_SETUP.md) walks through every step in more detail. -Click a tile in the screen preview. Under **Pastel background**, choose a color, -such as red or green. Optionally adjust the name, click action, mini-slider, or large -value. Click **Save & send to screen** to apply the changes. -After the first supporting firmware update, this requires no new flash. +## More -

- Tile settings: name, icon, display, width, direct control, tap action and pastel background - The result on the screen: a double-width Heating tile with temperature − and + -

-

The settings of the Heating tile, and that tile on the screen: double-width with temperature − / +.

+- **[Full reference](README_EXTENDED.md):** every card and setting, alerts and wake/sleep from an + automation, the top bar, the settings page on the screen, and how updates keep your settings. +- [Guition hardware, mounting, and rotation](docs/GUITION.md) · + [CYD calibration and USB diagnostics](docs/CALIBRATING.md) · + [Troubleshooting](docs/TROUBLESHOOTING.md) · + [Release history](screen_manager/CHANGELOG.md) -A color is a fixed choice for that tile: it stays red, for example, -even when you run the all-off script. The entity status and action feedback -stay separately visible. +## Credits and license -## Top bar +The very first version started from Adrian Kuehlewind's +[ESPHome-touch-display-mount](https://github.com/akuehlewind/ESPHome-touch-display-mount). +Little of that code is left, but his repository has 3D-printable desk, under-desk, wall and flush +mounts for the CYD. -At the top of the editor, each screen has its **Top bar**: the name on the left, up to -six items on the right. **+ Add** offers the time, an analog clock, and the date (which -keep ticking on the screen itself, even without Home Assistant), suggestions from your own -home (temperature and power usage from the screen's room, the weather, how many people are home, -sunrise and sunset), and a search field for any entity, including a phone -(`device_tracker`), a lock, the alarm panel, or `zone.home`. Drag the items -to change their order; tap one to configure it: - -- **What to show:** the state as Home Assistant writes it (21.3 °C, 65%, - 1,249 W, Open/Closed, Home/Away, Armed away), or **Last changed**: "Just now", - "5 min ago", "Yesterday". A timestamp sensor can also count forward ("In 2 hours"). -- **Icon:** automatic, matching Home Assistant (an open door gets an open- - door icon), a custom icon from the list, or no icon. -- **Show:** always, or **only when active**: the item only appears when it's - on, open, home, or greater than 0. Handy for an open door or a running - washing machine. Active items are colored like in Home Assistant (open door amber, - alarm armed green, alarm triggered red). - -

- Add to the top bar: the time, an analog clock, the date and suggestions from your own home - The top bar on the screen: outdoor temperature, people at home and the time -

- -The screen preview draws the bar with the same letters and rules as the screen: -all values on one line with the name, icons aligned to digit height, equal spacing. -If not everything fits next to the name, the name gets an ellipsis and the screen drops the -leading items; the editor marks those with dashes. Until updated, older firmware shows -only the name and the time (if that's in the bar). - -## Settings on the screen - -Everything you would want to change while standing in front of the panel is on the screen -itself (firmware 0.2.44+). Tiles, the top bar and the pages stay in ESP Screens, where you -have a mouse. - -**Opening it:** hold the top bar — the strip with the screen's name and the clock — until the -blue line along the top edge is full, about a second and a half. Letting go early cancels. -Rather have a button? Put the built-in **Settings** card on a page like any other tile. From -Home Assistant, `esphome._open_settings` opens it too (`page` 0 menu, 1 Brightness, -2 Night, 3 Screen, 4 This screen, -1 closes it). - -| Group | What is on it | -|---|---| -| Brightness | Brightness, Auto standby, Standby after, Standby brightness | -| Night | Night mode, Starts, Ends, Night brightness | -| Screen | 12/24-hour clock, back to page 1 by itself and after how long, also on standby, swiping between pages, rotation (boards that turn) | -| This screen | Name, IP address, firmware version, Home Assistant connected, Restart | - -Tap a toggle to flip it, `-` and `+` to change a number or a time — hold them and a time walks -whole hours — and tap a chip like the clock to cycle it. Every change is saved on the screen, -takes effect at once, and appears in ESP Screens within a second, so both sides always show -the same value. The **Screen settings** cards in ESP Screens have the same rows. - -**In Home Assistant** (firmware 0.2.49+), every setting is an entity on the screen's device, under -*Configuration*: `number._normal_brightness`, `switch._night_mode`, -`time._night_starts`, `switch._24_hour_clock`, `select._rotation` on a -Guition, and the rest. An automation, the settings page and ESP Screens all change the same value, -and setting a value the screen already has costs nothing. The full list is in -[docs/SETTINGS.md](docs/SETTINGS.md#who-owns-a-setting). - -## Updates and keeping your settings - -| Change | Action | -| --- | --- | -| Tiles, names, colors, or order | Save in ESP Screens; no firmware flash | -| Screen settings | Change them in ESP Screens (they apply at once), on the screen, or on their entities in Home Assistant | -| New version of the management page | Update ESP Screen Manager in the HA App store | -| New feature on the physical screen | The **Update** button on the screen (badge *Update x.y.z*), or **Update automatically every night** under Settings | - -Every app version belongs to one firmware version. After an app update, the list -shows per screen whether newer firmware is available. **Update** builds that screen's own profile -with the built-in CLI, installs it wirelessly, and waits until the screen is back. -With the checkbox enabled, that happens automatically at night, one screen at a time; a -failure stops the round and posts a notification in Home Assistant. Firmware -0.2.17+ reports its own device name and IP address for this; an older screen asks -for the IP address once. You can still do it manually via Settings → Firmware & USB → Wi-Fi / OTA. - -The device's own YAML and Wi-Fi/API/OTA settings stay in the ESPHome config folder. -Tile layouts and options live in the app's persistent data. CYD calibration and -screen preferences stay stored on the device. Updates don't replace this -user data. Do still make normal Home Assistant backups and keep your -device profiles; removing an app or wiping flash memory is not an update. - -**Efficient, even with many screens (0.2.39 / firmware 0.2.33).** The app sends a -screen only the tile that changed, as a single action -(`esphome._screen_message`) instead of chunks in a text field. -Every two minutes, a small ping follows with the layout revision; if the -screen reports that it doesn't match (after a restart, for example), everything is resent. -Firmware 0.2.49+ answers that ping, and a new layout, directly, so a screen that still -lacks a tile gets it again after 30 seconds instead of two minutes. -Graphs on sensor tiles come from Home Assistant's statistics, in one -query for all screens. Older firmware still works via the text field and the -full resend every two minutes. The diagnostic sensor `Uptime` has been -replaced by the `Last boot` timestamp. - -See the [release history](screen_manager/CHANGELOG.md) and -[releases and protocol compatibility](docs/RELEASING.md). - -**If you publish your own fork:** every push to GitHub is a release. Always also -bump the add-on version in `screen_manager/config.yaml` and log the change in -the CHANGELOG, otherwise the HA App store won't offer an update. A change to the -screen also gets a new `SCREEN_FIRMWARE_VERSION` in both board profiles. - -## Guides and installation help - -- [Complete installation from ESP Screens](docs/EASY_SETUP.md) -- [Guition hardware, mounting, and rotation](docs/GUITION.md) -- [CYD calibration and USB diagnostics](docs/CALIBRATING.md) -- [Instructions for developers and LLMs](AGENTS.md) - -Give a developer or LLM a clean copy of this repository and, for example: - -> Read AGENTS.md, README.md, and docs/EASY_SETUP.md. Help me install this CYD or -> Guition screen via USB on my Home Assistant. Identify -> the board and use my existing profile if one already exists. Guide me through -> calibration, HA pairing, tile selection, and physical tests. Keep keys local, -> and state which checks were actually carried out. - -A successful build doesn't prove the physical touch or panel image is correct. The owner -must check the display and perform the requested taps. +ESP Screens is MIT licensed, see [LICENSE](LICENSE). diff --git a/README_EXTENDED.md b/README_EXTENDED.md new file mode 100644 index 0000000..2101ee7 --- /dev/null +++ b/README_EXTENDED.md @@ -0,0 +1,392 @@ +# ESP Screens: the full reference + +The [README](README.md) shows what ESP Screens is and how to install it. This page has the rest: +every card and setting, what an automation can do with a screen, the top bar, the settings page +on the screen itself, and how updates work. + +- [What you can configure](#what-you-can-configure) +- [Alert from an automation](#alert-from-an-automation) +- [Wake and sleep from an automation](#wake-and-sleep-from-an-automation) +- [Customizing tiles and colors](#customizing-tiles-and-colors) +- [Top bar](#top-bar) +- [Settings on the screen](#settings-on-the-screen) +- [Updates and keeping your settings](#updates-and-keeping-your-settings) +- [Guides and installation help](#guides-and-installation-help) + +## What you can configure + +- **Up to twenty tiles**, spread across up to four fixed pages of six + tiles each. Search by entity, device, or room, and drag to reorder. +- **Per-tile settings:** a custom name, click behavior, a small slider where + supported, or a large value for things like temperature and power usage. + From firmware 0.2.13, the large value shows a small domain icon next to the + title; a number that's too long is truncated with an ellipsis, the unit stays visible. +- **Pastel backgrounds per tile:** choose red for an all-off script, + green for all-on, or any other color. The title and status stay dark and + readable. The color also appears in the screen preview; **Default** restores + the normal colors. Requires firmware 0.2.10 or newer. **None** drops the card + entirely: the content then sits at the same size directly on the screen background + (firmware 0.2.16). +- **Clock:** digital or analog. The analog clock has tick marks at 12, 3, 6, and 9 + and, on a single tile, shows a calendar block (weekday, day, month) next to the + dial; double-width shows the digital time with the date beside it. +- **Light control:** brightness, rainbow color, and white temperature according to + the light's capabilities. Open the detailed control with a long touch. +- **More cards:** climate, vacuum, fan, cover, media player, sensors, + select/input_select, number/input_number, switches, scenes, scripts, and + buttons. +- **Special cards (firmware 0.2.14+):** a **clock** (digital or analog) + as a built-in tile, a **weather forecast** with five days on a + double-width card, a **graph** of the sensor history in the tile, + a **sun path** (`sun.sun`: horizon with the sun between sunrise and + sunset), a **timer** (`timer.*`, tapping starts or pauses it), and + **presence** (`person.*`). Pick them in the picker like any other tile, or + drag them straight into the screen mockup; **Double-width** is an option for every tile. +- **Direct control on double-width tiles** (firmware 0.2.19+), like the rows in + Home Assistant: temperature − / + or mode buttons (climate), a toggle (switch, + light, fan), start/stop/dock (vacuum), open/stop/close or a + position slider (cover), volume with mute or previous/play/next (media), + − / + or a slider (numbers), previous/next (select), start/pause and + cancel (timer), and a single button for scenes, scripts, and buttons. Configurable + per tile; **None** keeps the regular card. +- **Weather card** with current weather, the coming hours and days including chance of + rain or millimeters; **climate card** with an on/off button, mode, fan, and swing settings. + The target temperature sits big between − / + keys with one row of mode keys below; the + Guition shows fan and swing right away on a card of their own, the CYD behind ···. +- **Vacuum card** with the state, battery and charging, start and dock, and how the robot + cleans: **vacuum, vacuum and mop, or mop only** for robots that offer a cleaning mode in + Home Assistant (such as Roborock), then suction and water. Only the rows the chosen mode + uses are shown (app 0.2.46 / firmware 0.2.39). + Scenes, scripts, and buttons show when they last ran. A tile that's waiting on + Home Assistant shows a small spinner on a light overlay. +- **Cover card** for blinds, curtains, shutters, and garage doors, like Home Assistant's own: + a tall position slider on which the blind hangs from the top, a tilt slider over slats for + venetian blinds, open, stop, and close, and the battery of a battery-powered blind + (such as Motionblinds). A cover shows only what it supports (app 0.2.58 / firmware 0.2.50). +- **History card** for sensors, numbers, binary sensors, people, and switches, the way Home + Assistant shows history: a line with an axis in round steps and clock times for numbers, + with the highest and lowest moment, and a timeline with the time in each state for on/off, + home and away, and a status. Choose **1 hour**, **24 hours**, or **1 week**; hold a finger on + the graph to read the value and time of that moment at the top (app 0.2.59 / firmware 0.2.51). +- **Top bar per screen** (firmware 0.2.32+): the name on the left, up to six + items of your choice on the right: the time, an analog clock, the date, or an + entity from Home Assistant with an icon, such as temperature, humidity, power usage, a door + (open/closed), the alarm, who's home, or when something or someone last + changed ("5 min ago", "Yesterday"). See [Top bar](#top-bar). +- **Screen settings:** standby time, normal and dimmed brightness, + night hours, 24- or 12-hour clock, return to the home page, and optional swiping + between pages. Change them in ESP Screens, where they apply at once, or on the screen + itself. With firmware 0.2.49+ the screen keeps them, and every one of them is also an + entity in Home Assistant, so an automation can switch **Night mode** or **Auto standby** + (firmware 0.2.41+), for example to keep a screen on while someone is home, and + wake a screen or put it to sleep with its **Wake** and **Sleep** buttons (firmware 0.2.45+). + See [Wake and sleep](#wake-and-sleep-from-an-automation). +- **Settings on the screen itself** (firmware 0.2.44+): hold the top bar for about a + second and a half and the screen opens its own settings page — brightness, night, + the clock, swiping, rotation, and what this screen is (name, IP address, firmware, + whether Home Assistant is connected, and Restart). Changes show up in ESP Screens + within a second. See [Settings on the screen](#settings-on-the-screen). +- **Guition rotation:** 0°, 90°, 180°, or 270°, directly from the management page. + Native LVGL rotation turns the display and touch together. The CYD keeps its fixed + orientation and its own calibration. +- **Inspector:** check entities, status, and configuration in ESP Screens. + Action feedback shows that a command is on its way. + +

+ Double-width tiles with direct control: heating mode keys with heat selected, previous, pause and next for the Sonos, and a ceiling fan's speed slider + Power and humidity as large values, a lamp and a fan with a small slider on the tile, and an all-off script and a welcome-home scene with red and green backgrounds and when they last ran + A digital clock with the date, a pasta timer with pause and cancel, the outside temperature as a large value, and garden lights that are off +

+

+ The CYD with heating mode keys, playback keys for the radio and a ceiling fan's speed slider + The CYD with power and humidity as large values, a lamp and a fan with small sliders, and red and green scene tiles + The CYD with a digital clock, previous and next for the house mode, and start, stop and dock for the robot vacuum +

+

What a tile can do: keys and sliders on double-width tiles, previous and next for a choice, large values, small sliders, pastel colors, a clock and a timer.

+

+ Weather card: current weather, the coming hours and the coming days with chance of rain + Climate card: the target temperature between big minus and plus keys, the mode keys, and fan and swing choices + Light control: color, color temperature and brightness +

+

+ Vacuum card: docked and charging, start and dock, the cleaning mode vacuum, vac and mop or mop, suction and water + Fan card: the speed as a tall slider with the fan in it + Curtains with open, stop and close, a kitchen timer counting down, a scene and the sun path +

+

+ Cover card for a venetian blind: its battery, the position slider with the blind hanging from the top, the tilt slider over slats, and open, stop and close + Cover card for curtains: the position slider and the sideways open, stop and close keys + Cover card for a garage door that only opens and closes: its icon and the open, stop and close keys, close disabled while it is closed +

+

+ History card for a temperature: the value now, the highest and lowest moment with their times, a line over 24 hours with an axis in degrees and clock times, and keys for 1 hour, 24 hours and 1 week + A finger on the history graph: the top of the card shows the average of that hour and its time, the graph stays as it is + History card for a person over a week: home, away and the zones they were in, with the time in each +

+

+ The vacuum card on the CYD: state, battery and charging, clean and dock, the cleaning mode, suction and water + The climate card on the CYD: the target temperature with big minus and plus keys and one row of mode keys + The cover card on the CYD: the position and tilt sliders with their values beside them, the battery, and open, stop and close +

+

+ The history card on the CYD: power over 24 hours with its highest and lowest moment, an axis in watts and clock times + A finger on the CYD's history graph: the average of that hour and its time at the top + The door's history on the CYD: a timeline over 24 hours with the time open and closed +

+ +Features depend on the capabilities Home Assistant reports for an entity. +The app must keep running to keep the screens supplied with current data. + +A short tap on a switch switches immediately; the off state gets a gray icon. A long press +opens its history card with the toggle at the top right (firmware 0.2.51+). +The feedback stops as soon as Home Assistant reports the changed state, with a +minimum of 150 ms for switches. Tiles with a mini-slider keep their +icon; on the CYD, the icon and text block are vertically centered. + +## Alert from an automation + +

+ An alert on the Guition: someone is at the door, with a Coming button + The Alerts cheatsheet in ESP Screens: the action name of every screen, ready to copy +

+ +Every screen has the action **`esphome._show_alert`** (firmware 0.2.31+). It places +a card over the entire screen, wakes the screen, and keeps the backlight at normal +brightness until someone taps **OK**. In an automation: + +```yaml +action: esphome.kitchen_screen_show_alert +data: + title: "Someone is at the door" + subtitle: "Door 3, back" + icon: doorbell + color: orange + button_text: "Coming" + timeout: 0 + flash: true +``` + +- **`title`** and **`subtitle`**: a single-line title (truncated with an ellipsis if too long) and an + explanation that wraps across multiple lines. Empty is allowed; an empty title becomes "Notification". +- **`icon`**: a name from the tile picker, such as `doorbell`, `bell`, `alert-outline`, + `lock`, `door-open`, `motion-sensor`, `smoke-detector`, `water-alert`, `mailbox`, `car`, + or `account`. `mdi:doorbell` and the hex codepoint (`F12E6`) also work, as long as the glyph + is included in the firmware. Unknown falls back to the warning triangle. +- **`color`**: `red`, `orange`, `yellow`, `green`, `mint`, `blue`, `purple`, `pink`, or + `gray` — the same pastel shades as the tiles. Empty gives the white card. +- **`button_text`**: the text on the button; empty is "OK". +- **`timeout`**: seconds after which the card disappears on its own; `0` means it waits for the button, + however long that takes. The button always closes the card immediately, even with a timeout. Standby and + night mode wait as long as the card is showing. +- **`flash`**: `true` makes the backlight blink four times when the alert arrives. + +In ESP Screens, **Settings → Alerts** opens a cheatsheet with the exact action name for each screen, +a ready-to-paste example, and all fields, icons, and colors. Home Assistant asks for all seven fields; leave a field empty (`""`, `0`, `false`) if you +don't use it. A new alert replaces the current one. Every end is reported as the event +**`esphome.screen_alert`** with `action` (`ok`, `timeout`, `replaced`, or `remote`), `title`, +`screen`, and the `device_id` that Home Assistant adds, so an automation can wait for OK. +**`esphome._dismiss_alert`** clears the card remotely. + +### All screens at once + +From app 0.2.45, one event reaches every screen that is online, screens you add later included. +ESP Screen Manager passes it on to each screen's `show_alert` action. The fields are the same; +the ones you leave out stay empty: + +```yaml +actions: + - event: esp_screens_show_alert + event_data: + title: "Mail!" + subtitle: "There is post in the mailbox" + icon: mailbox + color: orange + timeout: 0 + flash: true +``` + +**`esp_screens_dismiss_alert`** clears the alert on every screen. The app has to be running +for these two events; the per-screen actions work without it. + +### Ask Claude + +Use Claude Code in Home Assistant? **Settings → Claude → Install for Claude Code** writes an +ESP Screens skill to `/homeassistant/.claude/skills/esp-screens`, so Claude knows the events, the +tile settings and every field, color and icon. Then ask, for example: "Put the vacuum on the living +room screen", "Give the living room lights a brightness slider and make that tile wide", "Move the +vacuum to page 1" or "Show an alert on all my screens when the mailbox is full." Claude reads what a +screen shows from `sensor.esp_screens_` and asks before it changes anything. **Download for +claude.ai** gives the same skill as a zip to upload in Claude under Customize → Skills. Nothing is +written until you press the button. + +

+ Settings in ESP Screens: New screen and Firmware & USB, the firmware updates, the Alerts cheatsheet, and the Claude skill +

+ +## Wake and sleep from an automation + +Every screen has two buttons in Home Assistant (firmware 0.2.45+). An automation presses them +with the `button.press` action: + +- **`button._wake`** does what a tap does: a screen in standby lights up, and the standby + time starts counting again. On a screen that is already on, only the count starts again. +- **`button._sleep`** puts the screen in standby right away, the same as when the standby + time runs out, and also works with **Auto standby** off. The screen stays in standby until someone + taps it, **Wake** is pressed or an alert comes in; switching Auto standby off doesn't end it. An alert + that is showing closes (reported as `remote`). + +Neither button saves anything on the screen, so an automation may press them as often as it likes, +on every motion too. That is the difference with the **Auto standby** switch, which is a setting. +To reach several screens at once, list their buttons: + +```yaml +actions: + - action: button.press + target: + entity_id: + - button.kitchen_screen_sleep + - button.living_room_screen_sleep +``` + +Don't target an area or a device with `button.press`: that presses every other button there too, +the Wake and Sleep of the same screen included. + +## Customizing tiles and colors + +Click a tile in the screen preview. Under **Pastel background**, choose a color, +such as red or green. Optionally adjust the name, click action, mini-slider, or large +value. Click **Save & send to screen** to apply the changes. +After the first supporting firmware update, this requires no new flash. + +

+ Tile settings: name, icon, display, width, direct control, tap action and pastel background + The result on the screen: a double-width Heating tile with temperature − and + +

+

The settings of the Heating tile, and that tile on the screen: double-width with temperature − / +.

+ +A color is a fixed choice for that tile: it stays red, for example, +even when you run the all-off script. The entity status and action feedback +stay separately visible. + +## Top bar + +At the top of the editor, each screen has its **Top bar**: the name on the left, up to +six items on the right. **+ Add** offers the time, an analog clock, and the date (which +keep ticking on the screen itself, even without Home Assistant), suggestions from your own +home (temperature and power usage from the screen's room, the weather, how many people are home, +sunrise and sunset), and a search field for any entity, including a phone +(`device_tracker`), a lock, the alarm panel, or `zone.home`. Drag the items +to change their order; tap one to configure it: + +- **What to show:** the state as Home Assistant writes it (21.3 °C, 65%, + 1,249 W, Open/Closed, Home/Away, Armed away), or **Last changed**: "Just now", + "5 min ago", "Yesterday". A timestamp sensor can also count forward ("In 2 hours"). +- **Icon:** automatic, matching Home Assistant (an open door gets an open- + door icon), a custom icon from the list, or no icon. +- **Show:** always, or **only when active**: the item only appears when it's + on, open, home, or greater than 0. Handy for an open door or a running + washing machine. Active items are colored like in Home Assistant (open door amber, + alarm armed green, alarm triggered red). + +

+ Add to the top bar: the time, an analog clock, the date and suggestions from your own home + The top bar on the screen: outdoor temperature, people at home and the time +

+ +The screen preview draws the bar with the same letters and rules as the screen: +all values on one line with the name, icons aligned to digit height, equal spacing. +If not everything fits next to the name, the name gets an ellipsis and the screen drops the +leading items; the editor marks those with dashes. Until updated, older firmware shows +only the name and the time (if that's in the bar). + +## Settings on the screen + +Everything you would want to change while standing in front of the panel is on the screen +itself (firmware 0.2.44+). Tiles, the top bar and the pages stay in ESP Screens, where you +have a mouse. + +**Opening it:** hold the top bar — the strip with the screen's name and the clock — until the +blue line along the top edge is full, about a second and a half. Letting go early cancels. +Rather have a button? Put the built-in **Settings** card on a page like any other tile. From +Home Assistant, `esphome._open_settings` opens it too (`page` 0 menu, 1 Brightness, +2 Night, 3 Screen, 4 This screen, -1 closes it). + +| Group | What is on it | +|---|---| +| Brightness | Brightness, Auto standby, Standby after, Standby brightness | +| Night | Night mode, Starts, Ends, Night brightness | +| Screen | 12/24-hour clock, back to page 1 by itself and after how long, also on standby, swiping between pages, rotation (boards that turn) | +| This screen | Name, IP address, firmware version, Home Assistant connected, Restart | + +Tap a toggle to flip it, `-` and `+` to change a number or a time — hold them and a time walks +whole hours — and tap a chip like the clock to cycle it. Every change is saved on the screen, +takes effect at once, and appears in ESP Screens within a second, so both sides always show +the same value. The **Screen settings** cards in ESP Screens have the same rows. + +**In Home Assistant** (firmware 0.2.49+), every setting is an entity on the screen's device, under +*Configuration*: `number._normal_brightness`, `switch._night_mode`, +`time._night_starts`, `switch._24_hour_clock`, `select._rotation` on a +Guition, and the rest. An automation, the settings page and ESP Screens all change the same value, +and setting a value the screen already has costs nothing. The full list is in +[docs/SETTINGS.md](docs/SETTINGS.md#who-owns-a-setting). + +## Updates and keeping your settings + +| Change | Action | +| --- | --- | +| Tiles, names, colors, or order | Save in ESP Screens; no firmware flash | +| Screen settings | Change them in ESP Screens (they apply at once), on the screen, or on their entities in Home Assistant | +| New version of the management page | Update ESP Screen Manager in the HA App store | +| New feature on the physical screen | The **Update** button on the screen (badge *Update x.y.z*), or **Update automatically every night** under Settings | + +Every app version belongs to one firmware version. After an app update, the list +shows per screen whether newer firmware is available. **Update** builds that screen's own profile +with the built-in CLI, installs it wirelessly, and waits until the screen is back. +With the checkbox enabled, that happens automatically at night, one screen at a time; a +failure stops the round and posts a notification in Home Assistant. Firmware +0.2.17+ reports its own device name and IP address for this; an older screen asks +for the IP address once. You can still do it manually via Settings → Firmware & USB → Wi-Fi / OTA. + +The device's own YAML and Wi-Fi/API/OTA settings stay in the ESPHome config folder. +Tile layouts and options live in the app's persistent data. CYD calibration and +screen preferences stay stored on the device. Updates don't replace this +user data. Do still make normal Home Assistant backups and keep your +device profiles; removing an app or wiping flash memory is not an update. + +**Efficient, even with many screens (0.2.39 / firmware 0.2.33).** The app sends a +screen only the tile that changed, as a single action +(`esphome._screen_message`) instead of chunks in a text field. +Every two minutes, a small ping follows with the layout revision; if the +screen reports that it doesn't match (after a restart, for example), everything is resent. +Firmware 0.2.49+ answers that ping, and a new layout, directly, so a screen that still +lacks a tile gets it again after 30 seconds instead of two minutes. +Graphs on sensor tiles come from Home Assistant's statistics, in one +query for all screens. Older firmware still works via the text field and the +full resend every two minutes. The diagnostic sensor `Uptime` has been +replaced by the `Last boot` timestamp. + +See the [release history](screen_manager/CHANGELOG.md) and +[releases and protocol compatibility](docs/RELEASING.md). + +**If you publish your own fork:** every push to GitHub is a release. Always also +bump the add-on version in `screen_manager/config.yaml` and log the change in +the CHANGELOG, otherwise the HA App store won't offer an update. A change to the +screen also gets a new `SCREEN_FIRMWARE_VERSION` in both board profiles. + +## Guides and installation help + +- [Complete installation from ESP Screens](docs/EASY_SETUP.md) +- [Guition hardware, mounting, and rotation](docs/GUITION.md) +- [CYD calibration and USB diagnostics](docs/CALIBRATING.md) +- [Instructions for developers and LLMs](AGENTS.md) + +Give a developer or LLM a clean copy of this repository and, for example: + +> Read AGENTS.md, README.md, and docs/EASY_SETUP.md. Help me install this CYD or +> Guition screen via USB on my Home Assistant. Identify +> the board and use my existing profile if one already exists. Guide me through +> calibration, HA pairing, tile selection, and physical tests. Keep keys local, +> and state which checks were actually carried out. + +A successful build doesn't prove the physical touch or panel image is correct. The owner +must check the display and perform the requested taps. diff --git a/images/smartdisplay_background.png b/images/smartdisplay_background.png deleted file mode 100644 index 3fb678f960c928e5cf79aed1bf4858559eb83650..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49781 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®R 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

!l2dm_*le>opUkkB1m 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%0A|G`d6>s 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

*9sC|K&mO^=TBJJTu$D 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 m^ORe9Y9QLJ{P3fHkN*#jI9;a=TsH#%0000