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:
@@ -1,329 +1,328 @@
|
||||
# Home Assistant ESP Screens
|
||||
|
||||
Een Home Assistant-bedieningsscherm dat je zelf indeelt. **ESP Screen Manager**
|
||||
beheert je tegels én bouwt en installeert de ESPHome-firmware vanuit Home Assistant.
|
||||
Geen blueprint, MQTT of long-lived token nodig voor normaal gebruik.
|
||||
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.
|
||||
|
||||
**Nieuw scherm? Volg de [complete installatiehandleiding](docs/EASY_SETUP.md).**
|
||||
Voor elke nieuwe gebruiker en elk nieuw apparaat maak je een eigen profiel.
|
||||
**New screen? Follow the [complete installation guide](docs/EASY_SETUP.md).**
|
||||
For every new user and every new device, you create your own profile.
|
||||
|
||||
## Ondersteunde schermen
|
||||
## Supported screens
|
||||
|
||||
| Scherm | Resolutie | Display / touch |
|
||||
| Screen | Resolution | Display / touch |
|
||||
| --- | --- | --- |
|
||||
| CYD ESP32-2432S028 | 320 × 240 | ILI9341 / resistieve XPT2046 |
|
||||
| Guition ESP32-S3-4848S040, 4 inch | 480 × 480 | ST7701S RGB / capacitieve GT911 |
|
||||
| CYD ESP32-2432S028 | 320 × 240 | ILI9341 / resistive XPT2046 |
|
||||
| Guition ESP32-S3-4848S040, 4 inch | 480 × 480 | ST7701S RGB / capacitive GT911 |
|
||||
|
||||
Gebruik deze exacte bordvarianten: gelijkende productnamen kunnen andere
|
||||
controllers of aansluitingen hebben. Wallbox-relais worden niet aangestuurd.
|
||||
De firmware en ingebouwde CLI zijn getest met **ESPHome 2026.6.2**.
|
||||
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**.
|
||||
|
||||
## Wat je kunt instellen
|
||||
## What you can configure
|
||||
|
||||
- **Tot twintig tegels**, verdeeld over maximaal vier vaste pagina's met zes
|
||||
tegels. Zoek op entiteit, apparaat of ruimte en sleep om te ordenen.
|
||||
- **Instellingen per tegel:** eigen naam, klikgedrag, een kleine slider waar
|
||||
ondersteund, of een grote waarde voor bijvoorbeeld temperatuur en verbruik.
|
||||
De grote waarde toont vanaf firmware 0.2.13 een klein domeinicoon naast de
|
||||
titel; een te lang getal wordt met puntjes afgekort, de eenheid blijft staan.
|
||||
- **Pastel achtergronden per tegel:** kies rood voor een alles-uit-script,
|
||||
groen voor alles-aan, of een andere kleur. Titel en status blijven donker en
|
||||
leesbaar. De kleur verschijnt ook in het schermvoorbeeld; **Standaard** herstelt
|
||||
de normale kleuren. Vereist firmware 0.2.10 of nieuwer. **Geen** laat de kaart
|
||||
helemaal weg: de inhoud staat dan even groot direct op de schermachtergrond
|
||||
- **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).
|
||||
- **Klok:** digitaal of analoog. De analoge klok heeft streepjes met 12, 3, 6 en 9
|
||||
en toont op een enkele tegel een kalenderblok (weekdag, dag, maand) naast de
|
||||
wijzerplaat; dubbelbreed staat de digitale tijd met datum ernaast.
|
||||
- **Lampbediening:** helderheid, regenboogkleur en wittemperatuur volgens de
|
||||
mogelijkheden van de lamp. Open de detailbediening met een lange aanraking.
|
||||
- **Meer kaarten:** climate, vacuum, fan, cover, media player, sensoren,
|
||||
select/input_select, number/input_number, schakelaars, scènes, scripts en
|
||||
buttons. Een sensor kan een historiekaart voor 1, 6 of 24 uur openen.
|
||||
- **Speciale kaarten (firmware 0.2.14+):** een **klok** (digitaal of analoog)
|
||||
als ingebouwde tegel, een **weersvoorspelling** met vijf dagen op een
|
||||
dubbelbrede kaart, een **grafiek** van de sensorgeschiedenis in de tegel,
|
||||
een **zonnebaan** (`sun.sun`: horizon met de zon tussen opkomst en
|
||||
ondergang), een **kookwekker** (`timer.*`, tikken start of pauzeert) en
|
||||
**aanwezigheid** (`person.*`). Kies ze in de kiezer als elke andere tegel of
|
||||
sleep ze direct in de schermmockup; **Dubbelbreed** is een optie voor iedere tegel.
|
||||
- **Directe bediening op dubbelbrede tegels** (firmware 0.2.19+), zoals de rijen in
|
||||
Home Assistant: temperatuur − / + of modusknoppen (klimaat), een toggle (schakelaar,
|
||||
lamp, ventilator), start/stop/dock (stofzuiger), open/stop/dicht of een
|
||||
positieschuif (zonwering), volume met dempen of vorige/play/volgende (media),
|
||||
− / + of een schuif (getallen), vorige/volgende (keuzelijst), start/pauze en
|
||||
annuleren (kookwekker) en één knop voor scènes, scripts en knoppen. Per tegel
|
||||
instelbaar; **Geen** houdt de gewone kaart.
|
||||
- **Weerkaart** met actueel weer, de komende uren en dagen inclusief regenkans of
|
||||
millimeters; **klimaatkaart** met aan/uit-knop, modus-, ventilator- en zwenkstanden.
|
||||
Scènes, scripts en knoppen tonen wanneer ze voor het laatst liepen. Een tegel die op
|
||||
Home Assistant wacht toont een klein spinnertje op een lichte laag.
|
||||
- **Bovenbalk per scherm** (firmware 0.2.32+): links de naam, rechts tot zes
|
||||
onderdelen naar keuze: de tijd, een analoge klok, de datum, of een entiteit uit
|
||||
Home Assistant met icoon, zoals temperatuur, luchtvochtigheid, verbruik, een deur
|
||||
(open/dicht), het alarm, wie er thuis is of wanneer iemand of iets het laatst
|
||||
veranderde ("5 min geleden", "Gisteren"). Zie [Bovenbalk](#bovenbalk).
|
||||
- **Scherminstellingen:** standby-tijd, normale en gedimde helderheid,
|
||||
nachturen, 24- of 12-uursklok, terug naar de hoofdpagina en optioneel swipen
|
||||
tussen pagina's.
|
||||
- **Guition-rotatie:** 0°, 90°, 180° of 270°, direct vanuit de beheerpagina.
|
||||
De native LVGL-rotatie draait beeld en touch samen. De CYD behoudt zijn vaste
|
||||
oriëntatie en eigen kalibratie.
|
||||
- **Inspector:** controleer entiteiten, status en configuratie in ESP Screens.
|
||||
Actiefeedback laat zien dat een opdracht onderweg is.
|
||||
- **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. A sensor can open a history card for 1, 6, or 24 hours.
|
||||
- **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.
|
||||
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.
|
||||
- **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.
|
||||
- **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.
|
||||
|
||||
Functies hangen af van de mogelijkheden die Home Assistant voor een entiteit
|
||||
meldt. De app moet blijven draaien om de schermen van actuele gegevens te voorzien.
|
||||
Features depend on the capabilities Home Assistant reports for an entity.
|
||||
The app must keep running to keep the screens supplied with current data.
|
||||
|
||||
Vanaf firmware **0.2.12** toont lang indrukken op een switch een grote
|
||||
schakelaar. Een korte tik schakelt direct; de uitstand krijgt een grijs icoon.
|
||||
De feedback stopt zodra Home Assistant de gewijzigde stand meldt, met een
|
||||
minimum van 150 ms voor switches. Tegels met een mini-slider behouden hun
|
||||
icoon; op CYD staan het icoon en tekstblok verticaal gecentreerd.
|
||||
From firmware **0.2.12**, a long press on a switch shows a large
|
||||
toggle. A short tap switches immediately; the off state gets a gray icon.
|
||||
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 vanuit een automatisering
|
||||
## Alert from an automation
|
||||
|
||||
Elk scherm heeft de actie **`esphome.<scherm>_show_alert`** (firmware 0.2.31+). Die legt
|
||||
een kaart over het hele scherm, wekt het scherm en houdt de backlight op de normale
|
||||
helderheid tot iemand op **Oké** tikt. In een automatisering:
|
||||
Every screen has the action **`esphome.<screen>_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.keuken_scherm_show_alert
|
||||
action: esphome.kitchen_screen_show_alert
|
||||
data:
|
||||
title: "Iemand belt aan"
|
||||
subtitle: "Deur 3, achterkant"
|
||||
title: "Someone is at the door"
|
||||
subtitle: "Door 3, back"
|
||||
icon: doorbell
|
||||
color: orange
|
||||
button_text: "Ik kom"
|
||||
button_text: "Coming"
|
||||
timeout: 0
|
||||
flash: true
|
||||
```
|
||||
|
||||
- **`title`** en **`subtitle`**: een titel op één regel (te lang krijgt puntjes) en een
|
||||
toelichting die over meerdere regels loopt. Leeg mag; een lege titel wordt "Melding".
|
||||
- **`icon`**: een naam uit de tegelkiezer, zoals `doorbell`, `bell`, `alert-outline`,
|
||||
`lock`, `door-open`, `motion-sensor`, `smoke-detector`, `water-alert`, `mailbox`, `car`
|
||||
of `account`. `mdi:doorbell` en de hex-codepoint (`F12E6`) mogen ook, zolang het glyph
|
||||
in de firmware zit. Onbekend geeft de waarschuwingsdriehoek.
|
||||
- **`color`**: `red`, `orange`, `yellow`, `green`, `mint`, `blue`, `purple`, `pink` of
|
||||
`gray`, dezelfde pasteltinten als de tegels. Leeg geeft de witte kaart.
|
||||
- **`button_text`**: de tekst op de knop; leeg is "Oké".
|
||||
- **`timeout`**: seconden waarna de kaart vanzelf verdwijnt; `0` is tot de knop, hoe lang
|
||||
dat ook duurt. De knop sluit de kaart altijd direct, ook met een timeout. Standby en
|
||||
nachtstand wachten zolang de kaart staat.
|
||||
- **`flash`**: `true` laat de backlight vier keer knipperen bij binnenkomst.
|
||||
- **`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 opent de knop **Alerts** een cheatsheet met per scherm de exacte actienaam,
|
||||
een voorbeeld om te plakken, alle velden, iconen en kleuren. Home Assistant vraagt alle zeven velden; laat een veld leeg (`""`, `0`, `false`) als je het
|
||||
niet gebruikt. Een nieuwe alert vervangt de huidige. Elk einde meldt zich als event
|
||||
**`esphome.screen_alert`** met `action` (`ok`, `timeout`, `replaced` of `remote`), `title`,
|
||||
`screen` en het `device_id` dat Home Assistant toevoegt, zodat een automatisering op Oké
|
||||
kan wachten. **`esphome.<scherm>_dismiss_alert`** haalt de kaart op afstand weg.
|
||||
In ESP Screens, the **Alerts** button 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.<screen>_dismiss_alert`** clears the card remotely.
|
||||
|
||||
## Installeren vanuit Home Assistant
|
||||
## Installing from Home Assistant
|
||||
|
||||
### Heb ik ESPHome nodig?
|
||||
### Do I need ESPHome?
|
||||
|
||||
**Je hoeft de aparte ESPHome Device Builder-app niet te installeren.**
|
||||
ESP Screen Manager bevat de ESPHome-CLI al en kan zelf firmware bouwen,
|
||||
via USB installeren en later draadloos via OTA bijwerken.
|
||||
**You don't need to install the separate ESPHome Device Builder app.**
|
||||
ESP Screen Manager already includes the ESPHome CLI and can build firmware itself,
|
||||
install it via USB, and later update it wirelessly over OTA.
|
||||
|
||||
**Je moet het geflashte scherm wel koppelen via de ESPHome-integratie in HA.**
|
||||
Die koppeling staat onder **Instellingen → Apparaten & diensten**, niet in de
|
||||
appwinkel. Voeg daar het ontdekte apparaat toe. Verschijnt het niet automatisch,
|
||||
kies dan **Integratie toevoegen → ESPHome** en vul het IP-adres van het scherm in.
|
||||
Gebruik bij een sleutelvraag de `api.encryption.key` uit je eigen apparaat-YAML
|
||||
en geef het apparaat toestemming om Home Assistant-acties uit te voeren.
|
||||
**You do need to pair the flashed screen via the ESPHome integration in HA.**
|
||||
That pairing lives under **Settings → Devices & services**, not in the
|
||||
App store. Add the discovered device there. If it doesn't appear automatically,
|
||||
choose **Add integration → ESPHome** and enter the screen's IP address.
|
||||
If asked for a key, use the `api.encryption.key` from your own device YAML,
|
||||
and grant the device permission to perform Home Assistant actions.
|
||||
|
||||
| Onderdeel | Nodig? | Waarvoor? |
|
||||
| Component | Needed? | What for? |
|
||||
| --- | --- | --- |
|
||||
| ESP Screen Manager-app | Ja, voor deze installatieroute | Firmware installeren, tegels beheren en actuele gegevens naar het scherm sturen |
|
||||
| ESPHome Device Builder-app | Nee, optioneel | Alternatieve editor en firmware-installatie; dezelfde CLI zit al in ESP Screens |
|
||||
| ESPHome-integratie in HA | Ja, koppel ieder scherm | De verbinding tussen Home Assistant en het fysieke scherm |
|
||||
| ESP Screen Manager app | Yes, for this installation route | Installing firmware, managing tiles, and sending current data to the screen |
|
||||
| ESPHome Device Builder app | No, optional | Alternative editor and firmware installer; the same CLI is already in ESP Screens |
|
||||
| ESPHome integration in HA | Yes, pair every screen | The connection between Home Assistant and the physical screen |
|
||||
|
||||
Een verse installatie zonder ESPHome Device Builder werkt dus ook. Als er nog
|
||||
geen ESPHome `secrets.yaml` bestaat, vraagt onze wizard de wifi eenmalig en
|
||||
bewaart die lokaal. Bestaande wifi-secrets worden hergebruikt. API- en OTA-sleutels
|
||||
worden per nieuw scherm aangemaakt en blijven in het eigen apparaatprofiel.
|
||||
So a fresh installation without ESPHome Device Builder also works. If there's
|
||||
no ESPHome `secrets.yaml` yet, our wizard asks for Wi-Fi once and
|
||||
stores it locally. Existing Wi-Fi secrets are reused. API and OTA keys
|
||||
are generated per new screen and stay in that device's own profile.
|
||||
|
||||
### Stap voor stap
|
||||
### Step by step
|
||||
|
||||
Voor Home Assistant OS met Apps/Add-ons op **aarch64 of amd64**:
|
||||
For Home Assistant OS with Apps/Add-ons on **aarch64 or amd64**:
|
||||
|
||||
1. Open de appwinkel en voeg deze repository toe:
|
||||
1. Open the App store and add this repository:
|
||||
`https://github.com/MaxGramser/homeassistant_espscreen`.
|
||||
2. Installeer **ESP Screen Manager**, start de app en open **ESP Screens**.
|
||||
ESPHome Device Builder is optioneel: de ESPHome-CLI zit al in deze app.
|
||||
3. Sluit het scherm met een USB-datakabel aan op de **Home Assistant-machine**
|
||||
en kies **Nieuw scherm**: CYD of Guition, een naam, de USB-poort en
|
||||
**Installeren**. Ontbreekt wifi in de ESPHome `secrets.yaml`, dan vraagt het
|
||||
venster die eenmalig en zet ESP Screens alleen de ontbrekende regels erin.
|
||||
Het profiel met unieke API- en OTA-sleutels komt in de ESPHome-map; de build
|
||||
en de flash lopen in hetzelfde venster (een eerste build duurt op een
|
||||
Raspberry enkele minuten). Elk scherm krijgt zijn eigen profiel.
|
||||
4. **CYD:** doorloop de kalibratie op het scherm. **Guition:** gebruikt GT911
|
||||
zonder resistieve kalibratie. Koppel daarna het ontdekte ESPHome-apparaat in
|
||||
**Instellingen → Apparaten & diensten** met de API-sleutel die het venster
|
||||
na de installatie toont (kopieerknop). Geef het apparaat toestemming om
|
||||
Home Assistant-acties uit te voeren.
|
||||
5. Selecteer het scherm in ESP Screens, kies je tegels en klik
|
||||
**Opslaan & naar scherm**. Test vervolgens de fysieke bediening.
|
||||
2. Install **ESP Screen Manager**, start the app, and open **ESP Screens**.
|
||||
ESPHome Device Builder is optional: the ESPHome CLI is already in this app.
|
||||
3. Connect the screen with a USB data cable to the **Home Assistant machine**
|
||||
and choose **New screen**: CYD or Guition, a name, the USB port, and
|
||||
**Install**. If Wi-Fi is missing from the ESPHome `secrets.yaml`, the window
|
||||
asks for it once and ESP Screens only adds the missing lines. The profile
|
||||
with unique API and OTA keys goes into the ESPHome folder; the build
|
||||
and flash run in the same window (a first build takes a few minutes on a
|
||||
Raspberry Pi). Each screen gets its own profile.
|
||||
4. **CYD:** go through the calibration on the screen. **Guition:** uses GT911
|
||||
without resistive calibration. Then pair the discovered ESPHome device in
|
||||
**Settings → Devices & services** using the API key the window
|
||||
shows after installation (copy button). Grant the device permission to
|
||||
perform Home Assistant actions.
|
||||
5. Select the screen in ESP Screens, choose your tiles, and click
|
||||
**Save & send to screen**. Then test the physical controls.
|
||||
|
||||
Je kunt later vanuit **Firmware & USB → Wifi / OTA** nieuwe firmware installeren.
|
||||
Gebruik voor een bestaand scherm altijd het bestaande profiel; opnieuw een
|
||||
installatieprofiel aanmaken genereert nieuwe sleutels.
|
||||
You can install new firmware later from **Firmware & USB → Wi-Fi / OTA**.
|
||||
For an existing screen, always use the existing profile; creating a new
|
||||
installation profile generates new keys.
|
||||
|
||||
## Tegels en kleuren aanpassen
|
||||
## Customizing tiles and colors
|
||||
|
||||
Klik een tegel in het schermvoorbeeld. Kies bij **Pastel achtergrond** een kleur,
|
||||
zoals rood of groen. Pas eventueel de naam, klikactie, mini-slider of grote
|
||||
waarde aan. Klik **Opslaan & naar scherm** om de wijzigingen toe te passen.
|
||||
Dit vereist na de eerste ondersteunende firmware-update geen nieuwe flash.
|
||||
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.
|
||||
|
||||
Een kleur is een vaste keuze voor die tegel: hij blijft dus bijvoorbeeld rood
|
||||
wanneer je het alles-uit-script gebruikt. De entiteitsstatus en actiefeedback
|
||||
blijven afzonderlijk zichtbaar.
|
||||
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.
|
||||
|
||||
## Bovenbalk
|
||||
## Top bar
|
||||
|
||||
Bovenaan de editor staat per scherm de **Bovenbalk**: links de naam, rechts tot
|
||||
zes onderdelen. **+ Toevoegen** biedt de tijd, een analoge klok en de datum (die
|
||||
tellen op het scherm zelf door, ook zonder Home Assistant), suggesties uit je eigen
|
||||
huis (temperatuur en verbruik uit de ruimte van het scherm, het weer, aantal thuis,
|
||||
zon op en onder) en een zoekveld voor elke entiteit, ook een telefoon
|
||||
(`device_tracker`), een slot, het alarmpaneel of `zone.home`. Sleep de onderdelen
|
||||
om de volgorde te wijzigen; tik erop om ze in te stellen:
|
||||
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:
|
||||
|
||||
- **Wat laten zien:** de status zoals Home Assistant hem schrijft (21,3 °C, 65%,
|
||||
1.249 W, Open/Dicht, Thuis/Weg, Afwezig), of **Laatst gewijzigd**: "Zojuist",
|
||||
"5 min geleden", "Gisteren". Een tijdstempel-sensor telt ook vooruit ("Over 2 uur").
|
||||
- **Icoon:** automatisch zoals Home Assistant (een open deur krijgt een open
|
||||
deur-icoon), een eigen icoon uit de lijst of geen icoon.
|
||||
- **Tonen:** altijd, of **alleen als actief**: het onderdeel verschijnt pas als het
|
||||
aan, open, thuis of meer dan 0 is. Handig voor een open deur of een draaiende
|
||||
wasmachine. Actieve onderdelen kleuren zoals in Home Assistant (open deur amber,
|
||||
alarm ingeschakeld groen, alarm afgegaan rood).
|
||||
- **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).
|
||||
|
||||
Het schermvoorbeeld tekent de balk met dezelfde letters en regels als het scherm:
|
||||
alle waarden op één lijn met de naam, iconen op cijferhoogte, gelijke afstanden.
|
||||
Past niet alles naast de naam, dan krijgt de naam puntjes en laat het scherm de
|
||||
voorste onderdelen weg; de editor markeert die met strepen. Oudere firmware toont
|
||||
tot de update alleen de naam en de tijd (als die in de balk staat).
|
||||
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).
|
||||
|
||||
## Updates en behoud van je instellingen
|
||||
## Updates and keeping your settings
|
||||
|
||||
| Wijziging | Actie |
|
||||
| Change | Action |
|
||||
| --- | --- |
|
||||
| Tegels, namen, kleuren, volgorde of scherminstellingen | Opslaan in ESP Screens; geen firmwareflash |
|
||||
| Nieuwe versie van de beheerpagina | ESP Screen Manager updaten in de HA-appwinkel |
|
||||
| Nieuwe functie op het fysieke scherm | Knop **Bijwerken** bij het scherm (badge *Update x.y.z*), of het vinkje **Elke nacht automatisch bijwerken** |
|
||||
| Tiles, names, colors, order, or screen settings | Save in ESP Screens; no firmware flash |
|
||||
| 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 the **Update automatically every night** checkbox |
|
||||
|
||||
Elke appversie hoort bij één firmwareversie. Na een app-update toont de lijst
|
||||
per scherm of er nieuwere firmware is. **Bijwerken** bouwt het eigen profiel
|
||||
met de ingebouwde CLI, installeert draadloos en wacht tot het scherm terug is.
|
||||
Met het vinkje gebeurt dat 's nachts vanzelf, één scherm tegelijk; een
|
||||
mislukking stopt de ronde en geeft een melding in Home Assistant. Firmware
|
||||
0.2.17+ meldt daarvoor zelf apparaatnaam en IP-adres; een ouder scherm vraagt
|
||||
eenmalig het IP-adres. Handmatig kan nog steeds via Firmware & USB → Wifi / OTA.
|
||||
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 Firmware & USB → Wi-Fi / OTA.
|
||||
|
||||
De eigen YAML en wifi/API/OTA-instellingen blijven in de ESPHome-configmap.
|
||||
Tegelindelingen en opties staan in de permanente appdata. CYD-kalibratie en
|
||||
schermvoorkeuren blijven op het apparaat opgeslagen. Updates vervangen deze
|
||||
gebruikersgegevens niet. Maak wel normale Home Assistant-back-ups en bewaar je
|
||||
apparaatprofielen; een app verwijderen of flashgeheugen wissen is geen update.
|
||||
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.
|
||||
|
||||
**Zuinig, ook met veel schermen (0.2.39 / firmware 0.2.33).** De app stuurt een
|
||||
scherm alleen de tegel die veranderde, als één actie
|
||||
(`esphome.<apparaatnaam>_screen_message`) in plaats van blokjes in een tekstveld.
|
||||
Elke twee minuten volgt een kleine ping met de revisie van de indeling; meldt het
|
||||
scherm dat die niet klopt (na een herstart bijvoorbeeld), dan komt alles opnieuw.
|
||||
Grafieken van sensortegels komen uit de statistieken van Home Assistant, in één
|
||||
vraag voor alle schermen. Oudere firmware blijft werken via het tekstveld en de
|
||||
volledige herhaling per twee minuten. De diagnostische sensor `Uptime` is
|
||||
vervangen door het tijdstempel `Opgestart`.
|
||||
**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.<device_name>_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.
|
||||
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.
|
||||
|
||||
Zie [releasegeschiedenis](screen_manager/CHANGELOG.md) en
|
||||
[releases en protocolcompatibiliteit](docs/RELEASING.md).
|
||||
See the [release history](screen_manager/CHANGELOG.md) and
|
||||
[releases and protocol compatibility](docs/RELEASING.md).
|
||||
|
||||
**Voor wie zelf publiceert:** elke push naar GitHub is een release. Verhoog dan
|
||||
altijd ook de add-onversie in `screen_manager/config.yaml` en zet de wijziging in
|
||||
de CHANGELOG, anders biedt de HA-appwinkel geen update aan. Een wijziging aan het
|
||||
scherm krijgt daarnaast een nieuwe `SCREEN_FIRMWARE_VERSION` in beide bordprofielen.
|
||||
**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.
|
||||
|
||||
## Handleidingen en hulp bij installatie
|
||||
## Guides and installation help
|
||||
|
||||
- [Complete installatie vanuit ESP Screens](docs/EASY_SETUP.md)
|
||||
- [Guition-hardware, montage en rotatie](docs/GUITION.md)
|
||||
- [CYD-kalibratie en USB-diagnose](docs/CALIBREREN.md)
|
||||
- [Fysieke acceptatietest](docs/ACCEPTATIE.md)
|
||||
- [Instructies voor developers en LLM's](AGENTS.md)
|
||||
- [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)
|
||||
- [Physical acceptance test](docs/ACCEPTANCE.md)
|
||||
- [Instructions for developers and LLMs](AGENTS.md)
|
||||
|
||||
Geef een developer of LLM een schone kopie van deze repository en bijvoorbeeld:
|
||||
Give a developer or LLM a clean copy of this repository and, for example:
|
||||
|
||||
> Lees AGENTS.md, README.md en docs/EASY_SETUP.md. Help me dit CYD- of
|
||||
> Guition-scherm via USB op mijn Home Assistant te installeren. Identificeer
|
||||
> het bord en gebruik mijn bestaande profiel als dat er al is. Begeleid
|
||||
> kalibratie, HA-koppeling, tegelkeuze en fysieke tests. Houd sleutels lokaal
|
||||
> en geef aan welke controles werkelijk zijn uitgevoerd.
|
||||
> 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.
|
||||
|
||||
Een build bewijst niet dat fysieke touch of het paneelbeeld goed is. De eigenaar
|
||||
moet het beeld controleren en de gevraagde tikken uitvoeren.
|
||||
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.
|
||||
|
||||
<details>
|
||||
<summary>Oudere handmatige CYD-installatie via een computer</summary>
|
||||
<summary>Older manual CYD installation via a computer</summary>
|
||||
|
||||
Onderstaande route gebruikt het oudere handmatige profiel met maximaal tien
|
||||
tegels. De positiebeperkingen hiervan gelden niet voor de twintig runtime-tegels
|
||||
van ESP Screen Manager. Gebruik voor nieuwe installaties bij voorkeur de route
|
||||
hierboven; de handmatige instructies blijven beschikbaar voor onderhoud.
|
||||
The route below uses the older manual profile with up to ten
|
||||
tiles. Its position constraints don't apply to ESP Screen Manager's twenty
|
||||
runtime tiles. For new installations, prefer the route
|
||||
above; the manual instructions remain available for maintenance.
|
||||
|
||||
# CYD Home Assistant-bedieningsscherm
|
||||
# CYD Home Assistant control screen
|
||||
|
||||
Van een nieuwe **ESP32-2432S028 met ILI9341 + XPT2046** naar een gekalibreerd
|
||||
Home Assistant-scherm, via USB. Met lichtbediening, scènes/scripts, climate,
|
||||
vacuum, maximaal tien tegels en vaste pagina's. Bij maximaal zes tegels
|
||||
verdwijnt de paginering. Standby begint standaard na tien minuten.
|
||||
From a fresh **ESP32-2432S028 with ILI9341 + XPT2046** to a calibrated
|
||||
Home Assistant screen, over USB. With light control, scenes/scripts, climate,
|
||||
vacuum, up to ten tiles, and fixed pages. With six tiles or fewer,
|
||||
pagination disappears. Standby starts after ten minutes by default.
|
||||
|
||||
**Handmatige installatie via de computer:** je hoeft geen Home Assistant-token te maken
|
||||
of een ESPHome-add-on te installeren om via de computer te flashen.
|
||||
**Manual installation via a computer:** you don't need to create a Home Assistant token
|
||||
or install an ESPHome add-on to flash from a computer.
|
||||
|
||||
## Met een LLM of developer werken
|
||||
## Working with an LLM or developer
|
||||
|
||||
Geef de uitgepakte map en deze opdracht:
|
||||
Give it the unpacked folder and this prompt:
|
||||
|
||||
> Lees eerst AGENTS.md en README.md. Begeleid mij bij een nieuwe installatie
|
||||
> op een ESP32-2432S028 die via USB is aangesloten, met mijn eigen Home
|
||||
> Assistant. Controleer het bord, de seriële poort en de Python-omgeving.
|
||||
> Maak een lokaal device.yaml-profiel; gebruik geen bestaande persoonlijke
|
||||
> entiteiten of paneelkalibratie. Doorloop USB-kalibratie, HA-koppeling,
|
||||
> tegelconfiguratie en de acceptatietest. Vraag mij om fysieke tikken wanneer
|
||||
> nodig. Houd sleutels en wachtwoorden in lokale bestanden en rapporteer
|
||||
> welke controles echt zijn uitgevoerd.
|
||||
> First read AGENTS.md and README.md. Guide me through a new installation
|
||||
> on an ESP32-2432S028 connected via USB, with my own Home
|
||||
> Assistant. Check the board, the serial port, and the Python environment.
|
||||
> Create a local device.yaml profile; don't use any existing personal
|
||||
> entities or panel calibration. Walk through USB calibration, HA pairing,
|
||||
> tile configuration, and the acceptance test. Ask me for physical taps when
|
||||
> needed. Keep keys and passwords in local files, and report
|
||||
> which checks were actually carried out.
|
||||
|
||||
De begeleider kan de code en logs lezen, maar kan het fysieke scherm niet
|
||||
vanzelf zien. Jij controleert het beeld en voert de gevraagde tikken uit.
|
||||
The assistant can read the code and logs, but can't see the physical screen
|
||||
on its own. You check the display and perform the requested taps.
|
||||
|
||||
## 1. Benodigdheden controleren
|
||||
## 1. Check what you need
|
||||
|
||||
- Het bedoelde bord: ESP32-2432S028, 320×240, **ILI9341-display en resistieve
|
||||
XPT2046-touch**. Er bestaan borden met bijna dezelfde naam en een andere
|
||||
schermcontroller. Deze handleiding garandeert die varianten niet.
|
||||
- Een USB-**datakabel** en een computer met macOS, Linux of Windows.
|
||||
- Python **3.11–3.14**, internet voor de eerste build en enkele GB vrije ruimte.
|
||||
De versiegrens komt uit het geteste ESPHome-pakket; gebruik geen Python 3.15.
|
||||
- Een 2,4GHz-wifinetwerk; Home Assistant moet het bord via het netwerk kunnen
|
||||
bereiken. Houd het wifiwachtwoord lokaal beschikbaar.
|
||||
- Toegang tot Home Assistant om entiteiten te kiezen en ESPHome toe te voegen.
|
||||
- The intended board: ESP32-2432S028, 320×240, **ILI9341 display and resistive
|
||||
XPT2046 touch**. Boards exist with almost the same name and a different
|
||||
display controller. This guide doesn't cover those variants.
|
||||
- A USB **data cable** and a computer running macOS, Linux, or Windows.
|
||||
- Python **3.11–3.14**, internet access for the first build, and a few GB of free space.
|
||||
The version limit comes from the tested ESPHome package; don't use Python 3.15.
|
||||
- A 2.4GHz Wi-Fi network; Home Assistant must be able to reach the board over
|
||||
the network. Keep the Wi-Fi password available locally.
|
||||
- Access to Home Assistant to choose entities and add ESPHome.
|
||||
|
||||
Gebruik bij voorkeur één aangesloten ESP-bord tegelijk. Noteer de variant en
|
||||
het MAC-adres uit de boot-/uploadlogs. `home-like.yaml` en `buttons.yaml` uit
|
||||
het oorspronkelijke project zijn **niet** de startersconfiguratie voor dit bord.
|
||||
Preferably keep only one ESP board connected at a time. Note the variant and
|
||||
the MAC address from the boot/upload logs.
|
||||
|
||||
## 2. De werkomgeving installeren
|
||||
## 2. Set up the work environment
|
||||
|
||||
Kloon [de repository](https://github.com/MaxGramser/homeassistant_espscreen)
|
||||
of pak de starter-ZIP uit. Open een terminal **in de codefolder**. Alle opdrachten hieronder
|
||||
worden vanuit die folder uitgevoerd.
|
||||
Clone [the repository](https://github.com/MaxGramser/homeassistant_espscreen)
|
||||
or unpack the starter ZIP. Open a terminal **in the code folder**. All commands below
|
||||
are run from that folder.
|
||||
|
||||
macOS/Linux:
|
||||
|
||||
@@ -343,9 +342,9 @@ python -m pip install --upgrade pip
|
||||
python -m pip install -r requirements.txt
|
||||
```
|
||||
|
||||
Als PowerShell activeren blokkeert, gebruik rechtstreeks
|
||||
`.\.venv\Scripts\python.exe` in plaats van `python`; een systeemwijziging is
|
||||
niet nodig. Controleer daarna:
|
||||
If activating PowerShell is blocked, use
|
||||
`.\.venv\Scripts\python.exe` directly instead of `python`; no system change is
|
||||
needed. Then check:
|
||||
|
||||
```sh
|
||||
python --version
|
||||
@@ -353,97 +352,97 @@ python -m esphome version
|
||||
python -m serial.tools.list_ports
|
||||
```
|
||||
|
||||
Verwacht **ESPHome 2026.6.2**. Deze repo bevat een aangepaste touchdriver die
|
||||
met deze versie is getest. Upgrade niet stilzwijgend tijdens een installatie.
|
||||
Zie ook de [officiële ESPHome-installatiehandleiding](https://esphome.io/install/).
|
||||
Expect **ESPHome 2026.6.2**. This repo includes a custom touch driver that's
|
||||
tested against this version. Don't silently upgrade during an installation.
|
||||
See also the [official ESPHome installation guide](https://esphome.io/install/).
|
||||
|
||||
Noteer de poort: bijvoorbeeld `/dev/cu.usbserial-130` op macOS,
|
||||
`/dev/ttyUSB0` op Linux of `COM3` op Windows. Verderop staat `<USB_POORT>`;
|
||||
vervang dat steeds door de werkelijke poort, zonder punthaken.
|
||||
Note the port: for example `/dev/cu.usbserial-130` on macOS,
|
||||
`/dev/ttyUSB0` on Linux, or `COM3` on Windows. Further down, `<USB_PORT>`
|
||||
appears; always replace it with the actual port, without angle brackets.
|
||||
|
||||
## 3. Een eigen apparaatprofiel maken
|
||||
## 3. Create your own device profile
|
||||
|
||||
Kies een unieke naam, bijvoorbeeld `display-keuken`:
|
||||
Choose a unique name, for example `display-kitchen`:
|
||||
|
||||
```sh
|
||||
python tools/new_device.py --name display-keuken --friendly-name "Display keuken"
|
||||
python tools/new_device.py --name display-kitchen --friendly-name "Display kitchen"
|
||||
```
|
||||
|
||||
Dit maakt drie lokale bestanden en overschrijft niets:
|
||||
This creates three local files and overwrites nothing:
|
||||
|
||||
| Bestand | Wat je erin aanpast |
|
||||
| File | What you edit in it |
|
||||
|---|---|
|
||||
| `device.yaml` | Apparaatnaam, ruimte, tegels en gedrag |
|
||||
| `calibration.yaml` | Kalibratie van dit ene fysieke paneel; de wizard schrijft dit |
|
||||
| `secrets.yaml` | Wifi, API-encryptiesleutel, OTA- en fallbackwachtwoord |
|
||||
| `device.yaml` | Device name, room, tiles, and behavior |
|
||||
| `calibration.yaml` | Calibration for this one physical panel; the wizard writes this |
|
||||
| `secrets.yaml` | Wi-Fi, API encryption key, OTA and fallback password |
|
||||
|
||||
De sleutels worden uniek gegenereerd. Vul in `secrets.yaml` alleen jouw
|
||||
`wifi_ssid` en `wifi_password` in. Laat de gegenereerde sleutels staan en
|
||||
bewaar dit bestand bij je eigen configuratie. Deel het niet mee in de ZIP.
|
||||
De API-encryptiesleutel heb je later nodig bij de HA-koppeling; kopieer die
|
||||
lokaal uit het bestand, niet via een openbare chat.
|
||||
The keys are generated uniquely. In `secrets.yaml`, only fill in your
|
||||
`wifi_ssid` and `wifi_password`. Leave the generated keys as they are and
|
||||
keep this file with your own configuration. Don't include it in the ZIP.
|
||||
You'll need the API encryption key later for HA pairing; copy it
|
||||
locally from the file, not through a public chat.
|
||||
|
||||
Bestaan deze bestanden al? Werk in een nieuwe kopie van de map voor een nieuw
|
||||
scherm. Wis de sleutels/kalibratie van een werkend scherm niet.
|
||||
Do these files already exist? Work in a new copy of the folder for a new
|
||||
screen. Don't erase the keys/calibration of a working screen.
|
||||
|
||||
`device.yaml` importeert de basis en jouw kalibratie. Het overschrijft ook
|
||||
**alle verborgen tegelposities**, zodat die geen entiteiten van iemand anders
|
||||
blijven volgen. Begin met de zes voorbeeldtegels. `DIRECT_ACTIONS: "false"`
|
||||
voorkomt directe HA-aansturing tijdens de eerste installatie. Maak in deze
|
||||
fase nog geen HA-automations die op de actie-sensor reageren.
|
||||
`device.yaml` imports the base configuration and your calibration. It also overwrites
|
||||
**all hidden tile positions**, so they don't keep tracking someone else's
|
||||
entities. Start with the six example tiles. `DIRECT_ACTIONS: "false"`
|
||||
prevents direct HA control during the initial installation. At this
|
||||
stage, don't yet create HA automations that react to the action sensor.
|
||||
|
||||
## 4. Eerste USB-flash en kalibratie
|
||||
## 4. First USB flash and calibration
|
||||
|
||||
Controleer eerst de configuratie (ESPHome schermt secrets standaard af):
|
||||
First check the configuration (ESPHome masks secrets by default):
|
||||
|
||||
```sh
|
||||
python -m esphome config device.yaml
|
||||
```
|
||||
|
||||
Flash de kalibratiemodus, die zonder HA-verbinding werkt:
|
||||
Flash calibration mode, which works without an HA connection:
|
||||
|
||||
```sh
|
||||
python -m esphome -s CALIBRATION_ON_BOOT true run device.yaml --device <USB_POORT>
|
||||
python -m esphome -s CALIBRATION_ON_BOOT true run device.yaml --device <USB_PORT>
|
||||
```
|
||||
|
||||
De eerste build kan meerdere minuten duren. Na upload verschijnen vijf
|
||||
kruisjes op een donker scherm. `run` blijft logs tonen: stop **alleen de
|
||||
loglezer met Ctrl+C** voordat je de kalibratiewizard start. Het bord blijft aan.
|
||||
The first build can take several minutes. After uploading, five
|
||||
crosshairs appear on a dark screen. `run` keeps showing logs: stop **only the
|
||||
log reader with Ctrl+C** before starting the calibration wizard. The board stays on.
|
||||
|
||||
Volg nu [docs/CALIBREREN.md](docs/CALIBREREN.md): per doel worden drie tikken
|
||||
verzameld, de vier hoeken bepalen de correctie en het midden is een
|
||||
onafhankelijke controle. Daarna flash je de uitkomst en meet je opnieuw.
|
||||
**Kopieer nooit de meetwaarden van een ander paneel.**
|
||||
Now follow [docs/CALIBRATING.md](docs/CALIBRATING.md): three taps are
|
||||
collected per target, the four corners determine the correction, and the center is an
|
||||
independent check. Then you flash the result and measure again.
|
||||
**Never copy the measurements from another panel.**
|
||||
|
||||
## 5. Home Assistant koppelen
|
||||
## 5. Pair with Home Assistant
|
||||
|
||||
Na een geslaagde kalibratie flash je de normale modus:
|
||||
After a successful calibration, flash the normal mode:
|
||||
|
||||
```sh
|
||||
python -m esphome run device.yaml --device <USB_POORT>
|
||||
python -m esphome run device.yaml --device <USB_PORT>
|
||||
```
|
||||
|
||||
Controleer in de logs de wifi-IP, stabiele boot en apparaatnaam. Ctrl+C sluit
|
||||
de loglezer. Het scherm moet nu de normale tegelpagina tonen.
|
||||
Check the logs for the Wi-Fi IP, a stable boot, and the device name. Ctrl+C closes
|
||||
the log reader. The screen should now show the normal tile page.
|
||||
|
||||
1. Open in HA **Instellingen → Apparaten & diensten**.
|
||||
2. Kies het ontdekte ESPHome-apparaat, of **Integratie toevoegen → ESPHome**.
|
||||
3. Gebruik `display-keuken.local` of het IP-adres uit de logs; API-poort **6053**.
|
||||
4. Vul de `api_encryption_key` uit je lokale `secrets.yaml` in als daarom wordt gevraagd.
|
||||
5. Controleer of de apparaatnaam klopt en de status online wordt.
|
||||
6. Open de opties/configuratie van deze ESPHome-integratie en schakel
|
||||
**Allow the device to perform Home Assistant actions** in.
|
||||
1. In HA, open **Settings → Devices & services**.
|
||||
2. Choose the discovered ESPHome device, or **Add integration → ESPHome**.
|
||||
3. Use `display-kitchen.local` or the IP address from the logs; API port **6053**.
|
||||
4. Enter the `api_encryption_key` from your local `secrets.yaml` if asked.
|
||||
5. Check that the device name is correct and the status becomes online.
|
||||
6. Open this ESPHome integration's options/configuration and enable
|
||||
**Allow the device to perform Home Assistant actions**.
|
||||
|
||||
De precieze vertaling/plaats van de optie verschilt per HA-versie. Zie de
|
||||
[officiële integratiehandleiding](https://www.home-assistant.io/integrations/esphome).
|
||||
De HA-integratie verbindt met het bord; de ESPHome Device Builder/add-on is
|
||||
optioneel en is een andere functie.
|
||||
The exact wording/location of this option varies by HA version. See the
|
||||
[official integration guide](https://www.home-assistant.io/integrations/esphome).
|
||||
The HA integration connects to the board; the ESPHome Device Builder/add-on is
|
||||
optional and is a separate feature.
|
||||
|
||||
## 6. Eigen tegels instellen
|
||||
## 6. Configure your own tiles
|
||||
|
||||
Volg [docs/TEGELS.md](docs/TEGELS.md). Verzamel de echte entity-ID's in HA,
|
||||
controleer ondersteunde attributen/acties en pas `device.yaml` aan. Gebruik
|
||||
korte titels. Als je alles hebt gecontroleerd:
|
||||
Follow [docs/TILES.md](docs/TILES.md). Collect the real entity IDs in HA,
|
||||
check supported attributes/actions, and edit `device.yaml`. Use
|
||||
short titles. Once you've checked everything:
|
||||
|
||||
```yaml
|
||||
substitutions:
|
||||
@@ -451,52 +450,52 @@ substitutions:
|
||||
TILE_COUNT: "6"
|
||||
```
|
||||
|
||||
Dit zijn wijzigingen in de **bestaande** substitutions-map, geen tweede map
|
||||
onderaan het bestand. Bouw en flash opnieuw met `run device.yaml`. De tegels
|
||||
volgen daarna de werkelijke HA-status. Een actieve API-verbinding alleen
|
||||
bewijst nog niet dat een actie door HA is toegestaan.
|
||||
These are changes in the **existing** substitutions map, not a second map
|
||||
at the bottom of the file. Build and flash again with `run device.yaml`. The tiles
|
||||
will then follow the real HA state. An active API connection alone
|
||||
doesn't prove that HA has been granted permission for actions.
|
||||
|
||||
## 7. Opleveren en testen
|
||||
## 7. Handover and testing
|
||||
|
||||
Voer [docs/ACCEPTATIE.md](docs/ACCEPTATIE.md) uit. Dat omvat een onafhankelijke
|
||||
touchmeting, beide pagina's indien aanwezig, lange druk, sliders, climate,
|
||||
vacuum, werkelijke HA-status en de juiste actie-effecten. De ingebouwde
|
||||
renderproef stuurt zelf geen HA-apparaten aan:
|
||||
Run through [docs/ACCEPTANCE.md](docs/ACCEPTANCE.md). That covers an independent
|
||||
touch measurement, both pages if present, long press, sliders, climate,
|
||||
vacuum, real HA state, and the correct action effects. The built-in
|
||||
render test doesn't control any HA devices itself:
|
||||
|
||||
```sh
|
||||
python diagnostics/run_ui_test.py --host display-keuken.local --name display-keuken
|
||||
python diagnostics/run_ui_test.py --host display-kitchen.local --name display-kitchen
|
||||
```
|
||||
|
||||
Bewaar bij deze persoon: `device.yaml`, `calibration.yaml`, `secrets.yaml`, de
|
||||
meetbestanden, de gebruikte ESPHome-versie en een kort opleverrapport.
|
||||
Voor later bijwerken kun je USB blijven gebruiken of OTA gebruiken:
|
||||
Keep with this person: `device.yaml`, `calibration.yaml`, `secrets.yaml`, the
|
||||
measurement files, the ESPHome version used, and a short handover report.
|
||||
For later updates you can keep using USB or use OTA:
|
||||
|
||||
```sh
|
||||
python -m esphome run device.yaml --device display-keuken.local
|
||||
python -m esphome run device.yaml --device display-kitchen.local
|
||||
```
|
||||
|
||||
Verander naam/API-sleutel niet zonder ook de HA-koppeling bij te werken.
|
||||
Bij storing: [docs/PROBLEMEN.md](docs/PROBLEMEN.md).
|
||||
Don't change the name/API key without also updating the HA pairing.
|
||||
For troubleshooting: [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md).
|
||||
|
||||
## Deze code aan de volgende persoon geven
|
||||
## Handing this code to the next person
|
||||
|
||||
Gebruik de exporteur in plaats van je hele werkmap te kopiëren:
|
||||
Use the exporter instead of copying your entire working folder:
|
||||
|
||||
```sh
|
||||
python tools/export_bundle.py --output dist/cyd-starter.zip
|
||||
```
|
||||
|
||||
De ZIP bevat de code, lokale fonts, licenties, handleidingen en neutrale
|
||||
voorbeelden. De basisdefaults worden voor de ontvanger geneutraliseerd.
|
||||
Geen `secrets.yaml`, eigen `device.yaml`, metingen, logs, `.git`, `.esphome`,
|
||||
Python-omgeving of firmwarebackups. De exporteur weigert een bestaande ZIP
|
||||
te overschrijven; kies bij een nieuwe versie een andere bestandsnaam.
|
||||
The ZIP contains the code, local fonts, licenses, guides, and neutral
|
||||
examples. The base defaults are neutralized for the recipient.
|
||||
No `secrets.yaml`, personal `device.yaml`, measurements, logs, `.git`, `.esphome`,
|
||||
Python environment, or firmware backups. The exporter refuses to overwrite an
|
||||
existing ZIP; choose a different filename for a new version.
|
||||
|
||||
De originele basis is van
|
||||
The original base is from
|
||||
[akuehlewind/ESPHome-touch-display-mount](https://github.com/akuehlewind/ESPHome-touch-display-mount).
|
||||
Project-, ESPHome-driver- en fontlicenties staan respectievelijk in `LICENSE`,
|
||||
`components/xpt2046/LICENSE` en `fonts/`. Historische borddiagnose staat in
|
||||
[CYD_STABILITY.md](CYD_STABILITY.md); volg voor een **nieuwe** installatie de
|
||||
handleidingen hierboven.
|
||||
Project, ESPHome driver, and font licenses are in `LICENSE`,
|
||||
`components/xpt2046/LICENSE`, and `fonts/` respectively. Historical board diagnostics are in
|
||||
[CYD_STABILITY.md](CYD_STABILITY.md); for a **new** installation, follow the
|
||||
guides above.
|
||||
|
||||
</details>
|
||||
|
||||
Reference in New Issue
Block a user