Home Assistant wall screen for the M5Stack Tab5 (ESP32-P4), built with ESPHome and LVGL. Home Assistant pushes, the tablet never polls. Screen in 7 languages (FR, EN, DE, NL, ES, IT, TR). Local wake word, weather, climate, rooms of devices, plants, 8 offline games. Web installer. Made with AI.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
M5Stack Tab5 — Home Assistant wall screen with ESPHome and LVGL
This page is also the home page of the website, with a menu, a search and every page in English or French: axellum.github.io/M5-Tab5-ESPHome-LVGL.檢視完整 README ↗This page is also the home page of the website, with a menu, a search and every page in English or French: axellum.github.io/M5-Tab5-ESPHome-LVGL.
A Home Assistant wall screen that runs natively on the M5Stack Tab5 (ESP32-P4). No browser, no polling: Home Assistant pushes what changed, and the screen redraws only that, in C++ with LVGL. Local "Okay Nabu" wake word, 15-day forecast, climate, lights, plants, energy, music, cameras, TV remote, alarm clock — and 8 offline games, in seven languages. Twenty-one themes, light or dark, chosen from Home Assistant. It is my everyday screen, shared in case it is useful to someone. It also runs, as an experiment, on a 7-inch Waveshare board.
Install from the browser · Installation guide · User manual · Try it without Home Assistant · Discussions
A personal project exploring what's possible when AI writes all the code. Built with Antigravity, DeepSeek, MiniMax, Z.ai, Claude, and Cursor — not a single line typed by hand. I am more the architect than the author.
ℹ️ In development: A worldwide weather and natural hazard API (Vigie API) is currently being built to power this screen and Home Assistant, accompanied by a public web portal (vigie.auxfilsdesidees.fr) and a standalone weather display requiring no HA server (Vigie Display). See Related Projects.
A single page (1280×720 on the Tab5, 1024×600 on the Waveshare 7B): windows open with a tap, a long press or a swipe — each of them is in the user manual.
What the screen was first made for: seeing at a glance whether rain is coming before leaving. Both panels join the rotation of the central card only when there is something to show. Renders of the firmware with demo data: moderate rain in 10 minutes, an orange warning.
Without compiling, since 3.0: a Tab5, a USB-C cable that carries data, Chrome or Edge on a computer, and Home Assistant. The installation guide takes you through seven steps:
config folder of Home Assistant, add one line to configuration.yaml, restart. Or, from 3.7.0, let HACS install them and update them in one click.Where things are set. Once the tablet is in Home Assistant (step 4), everything is done there with the mouse, in two places. The « Tab5 · » lists hold your sources: weather, calendars, phone, music players, tracked sensors (step 5). One automation made from the blueprint holds your home: the rooms and their tiles, the climate, the temperatures, the energy sensors, the cameras, what the zones of the home screen show and what each tap and long press does (step 6). Every field is optional, with a help sentence in French and English, and a change reaches the screen at once, without a flash. The tablet's own settings (theme, language, brightness, alarm clock) are on the tablet and on its device page.
Updates then go through Home Assistant, in this order: the Home Assistant files first (in one click with HACS, otherwise by hand), then the firmware, from its « Firmware » entity (updates). Over the air, the tablet only accepts a firmware signed with the project key. Every setting — theme, light or dark, language, alarm clock, screen to show: tablet settings. To change the firmware yourself: build your own.
Just want to see it running first? The demo mode pushes demo data to a flashed tablet with a small script: no Home Assistant, nothing left to clean up.
| Display chip (sticker on the back) | Units made | Status |
|---|---|---|
| ST7123 | 14 Oct 2025 → 28 Apr 2026 | ✅ Supported — the author's device, in daily use (default) |
| ST7121 | from 28 Apr 2026 | ✅ Runs on another user's unit since October 2026: display, touch and wake word (Discussion #278); the author has none — add tab5_ecran: st7121 to Tab5/user_entities.yaml |
| ILI9881C + GT911 touch | 9 May 2025 → 14 Oct 2025 | 🧪 Compiles, untested — add tab5_ecran: ili9881c to Tab5/user_entities.yaml |
| Waveshare ESP32-P4 7B (another board: 7-inch, 1024×600) | — | ✅ Supported — runs on the author's board since 14 Oct 2026, the games not adapted to its screen and left out by default; install it from the browser (from 3.9.0) or build it with tab5_carte: waveshare-7b and ESPHome 2026.9.1 or newer (Waveshare 7B) |
"Compiles, untested": the CI builds this variant on every display change, and the install page offers it, but this firmware has not been run on that chip yet. The ST7121 is built the same way, and has run on a user's unit since October 2026. How to identify your unit, and the ST7121 reports: hardware revisions. Tried one? → Discussions.
▶ Demo video on YouTube (voice, touch, TV remote, climate — provisional cut, July 2026), and an animated tour of the screens in the default theme, drawn by the firmware itself on a PC with demo data:
Twenty-one themes, each light or dark: colours, shapes (radius, borders, shadows) and the fonts of the clock, the date and the titles. Six of them on the home screen, drawn by the firmware itself on a PC with demo data: two show a room's devices, the four others a different alert on the central card.
Energy (optional): up to four pages from the sensors picked in the blueprint (solar energy). Here the flows right now, the line as thick as the power; then the day's sun and forecast, the production, and the month's balance in kWh. Render with demo data; it runs at a user's home with real panels.
The tablet in Home Assistant — the dashboard written for your entities by step 7:
Every screen, each in a different theme — drawn by the firmware itself on a PC, with demo data; the games stay dark whatever the theme:
| Home: rain in the next hour (Bento, light) | The whole house (Relief doux, light) |
|---|---|
| Quick-action wheel (Néon calme, dark) | Lights (Bonbon, light) |
|---|---|
| Climate (Platine et or, dark) | Shutters (Terre cuite, light) |
|---|---|
| Plant sensors (Sorbet, light) | Energy, the flows right now (Ultraviolet, dark) |
|---|---|
| Temperature history (Almanach imprimé, light) | Monthly calendar (Zen Sumi, dark) |
|---|---|
| Alarm clock (Graphite, dark) | Voice assistant (Obsidienne, dark) |
|---|---|
| TV remote (Signalisation, light) | Settings (Capsule, light) |
|---|---|
| Music (Almanach, light) | Cameras, a still image each (Craie et ardoise, dark) |
|---|---|
| Tracked sensors (Béton brut, light) | Local AI server (Ardoise, dark) |
|---|---|
| Arcade: the game menu (Pixel, dark) | Roi Noir: chess with an engine on the tablet |
|---|---|
| Coureur d'Or: Lode Runner style | Arcanoïde: a breakout played by tilting |
|---|---|
The games are experimental, first-pass code written by AI to see what LVGL and C++ can do on an ESP32-P4: they work, they are not polished (the eight consoles, in French).
Every page is in English and French: install, use, set up, fix, understand how it is built — the full list is on the documentation page.
In this repository: AGENTS.md for AI coding agents, CARTOGRAPHIE_TAB5.md (every file and dependency), Tab5/README.md (the ESPHome files and the Home Assistant services), HomeAssistant_Config/README.md (the packages), CONTRIBUTING.md and the CHANGELOG.md.
SECURITY.md.CONTRIBUTING.md and the code of conduct.Thanks to @husyildiz, whose ideas, tests and reports in discussion #278 brought the step-by-step install page, the Turkish screen, the weather outside France, the original battery, the Energy popup for solar panels and the weather picked in the blueprint.
Thanks also to Jiuhai (@poonjh), who builds Tab5 devices on ESP-IDF: the questions and notes on the schematic in discussion #369 corrected the pages on the Wi-Fi co-processor and on power, and the notes are summed up in the hardware reference.
English or French, both are welcome.
Having heard a lot about AI for coding, I wanted to see for myself what it could do. My old Nextion screen (mostly weather, already on ESPHome and Météo-France) was starting to feel dated, so I replaced it: a lot more home automation, on a far more capable display, with AI writing the code from end to end. Why a screen, what it had to do, and how it grew: the story.
This project is part of a personal exploration of what AI tools can produce when given full authorship of a technical project. The code, the architecture decisions, and most of this documentation were generated by AI (Antigravity/Gemini, DeepSeek, MiniMax, Z.ai, Claude, Cursor). My role was to set the goal, test, reject, and steer — more architect than line-by-line author. The goal was never to ship a polished product — it was to learn, to see where AI helps and where it gets stuck, and to share what came out of it.
If something in the code is weird, it might be an AI quirk. If something works surprisingly well, same answer.
→ More context: docs/related_projects.md
Cette page est aussi l'accueil du site, avec un menu, une recherche et chaque page en français ou en anglais : axellum.github.io/M5-Tab5-ESPHome-LVGL/fr/.
Un écran mural Home Assistant qui tourne nativement sur le M5Stack Tab5 (ESP32-P4). Pas de navigateur, pas de polling : Home Assistant pousse ce qui a changé, et l'écran ne redessine que ça, en C++ avec LVGL. Mot d'activation « Okay Nabu » en local, prévisions à 15 jours, clim, lumières, plantes, énergie, musique, caméras, télécommande TV, réveil — et 8 jeux hors ligne, en sept langues. Vingt et un thèmes, clairs ou sombres, au choix depuis Home Assistant. C'est mon écran de tous les jours, partagé au cas où il serve à quelqu'un. Il tourne aussi, à l'essai, sur une carte Waveshare de 7 pouces.
Installer depuis le navigateur · Guide d'installation · Notice d'utilisation · Essayer sans Home Assistant · Discussions
Un projet personnel pour voir ce que donne l'IA quand elle écrit tout le code. Construit avec Antigravity, DeepSeek, MiniMax, Z.ai, Claude et Cursor — pas une ligne tapée à la main. J'en suis plus l'architecte que l'auteur.
ℹ️ En cours de développement : Une API météo et alertes mondiales (Vigie API) est actuellement développée pour alimenter cet écran et Home Assistant, complétée par un portail web (vigie.auxfilsdesidees.fr) et un écran météo autonome sans serveur HA (Vigie Display). Voir Projets associés.
Une seule page (1280×720 sur le Tab5, 1024×600 sur la Waveshare 7B) : les fenêtres s'ouvrent d'un appui, d'un appui long ou d'un glissement — chacune est dans la notice d'utilisation.
Ce pour quoi l'écran a d'abord été fait : voir d'un coup d'œil s'il va pleuvoir avant de partir. Les deux panneaux n'entrent dans la rotation de la carte centrale que s'il y a quelque chose à montrer. Rendus du firmware avec des données de démonstration : pluie modérée dans 10 minutes, vigilance orange.
Sans compiler, depuis la 3.0 : une Tab5, un câble USB-C qui transmet les données, Chrome ou Edge sur un ordinateur, et Home Assistant. Le guide d'installation tient en sept étapes :
config de Home Assistant, ajoutez une ligne à configuration.yaml, redémarrez. Ou, depuis la 3.7.0, laissez HACS les installer et les mettre à jour en un clic.Où se règle quoi. Une fois la tablette dans Home Assistant (étape 4), tout se fait là, à la souris, en deux endroits. Les listes « Tab5 · » gardent vos sources : météo, agendas, téléphone, lecteurs de musique, capteurs suivis (étape 5). Une automatisation créée depuis le blueprint garde votre maison : les pièces et leurs tuiles, la clim, les températures, les capteurs d'énergie, les caméras, ce que montrent les zones de l'accueil et ce que fait chaque appui et appui long (étape 6). Tous les champs sont facultatifs, avec une phrase d'aide en français et en anglais, et un changement arrive aussitôt à l'écran, sans flash. Les réglages de la tablette elle-même (thème, langue, luminosité, réveil) sont sur la tablette et sur sa page d'appareil.
Les mises à jour passent ensuite par Home Assistant, dans cet ordre : les fichiers Home Assistant d'abord (en un clic avec HACS, sinon à la main), puis le firmware, par son entité « Firmware » (mises à jour). Par le réseau, la tablette n'accepte qu'un firmware signé par la clé du projet. Chaque réglage — thème, clair ou sombre, langue, réveil, écran à afficher : réglages de la tablette. Pour modifier le firmware vous-même : compiler le vôtre.
Envie de le voir tourner d'abord ? Le mode démo pousse des données de démonstration vers une tablette flashée avec un petit script : sans Home Assistant, rien à nettoyer ensuite.
| Puce écran (autocollant au dos) | Appareils fabriqués | Statut |
|---|---|---|
| ST7123 | du 14/10/2025 au 28/04/2026 | ✅ Prise en charge — la tablette de l'auteur, utilisée tous les jours (défaut) |
| ST7121 | depuis le 28/04/2026 | ✅ Tourne chez un autre utilisateur depuis octobre 2026 : écran, tactile et mot d'activation (discussion #278) ; l'auteur n'en a pas — ajouter tab5_ecran: st7121 dans Tab5/user_entities.yaml |
| ILI9881C + tactile GT911 | du 09/05/2025 au 14/10/2025 | 🧪 Compile, non testée — ajouter tab5_ecran: ili9881c dans Tab5/user_entities.yaml |
| Waveshare ESP32-P4 7B (une autre carte : 7 pouces, 1024×600) | — | ✅ Prise en charge — tourne sur la carte de l'auteur depuis le 14/10/2026, les jeux non adaptés à son écran et absents par défaut ; à installer depuis le navigateur (dès la 3.9.0) ou à compiler avec tab5_carte: waveshare-7b et ESPHome 2026.9.1 au moins (Waveshare 7B) |
« Compile, non testée » : la CI compile cette variante à chaque changement de l'écran, et la page d'installation la propose, mais ce firmware n'a encore jamais tourné sur cette puce. La ST7121 est compilée de la même façon, et tourne chez un utilisateur depuis octobre 2026. Comment identifier votre appareil, et les retours sur la ST7121 : révisions matérielles. Vous en avez essayé une ? → Discussions.
▶ Vidéo de démo sur YouTube (voix, tactile, télécommande TV, clim — version provisoire, juillet 2026), et un tour animé des écrans dans le thème par défaut, dessinés par le firmware lui-même sur un PC, avec des données de démonstration :
Vingt et un thèmes, chacun clair ou sombre : couleurs, formes (rayons, bordures, ombres) et polices de l'heure, de la date et des titres. Six d'entre eux sur l'accueil, dessinés par le firmware lui-même sur un PC, avec des données de démonstration : deux montrent les appareils d'une pièce, les quatre autres une alerte différente sur la carte centrale.
Énergie (facultatif) : jusqu'à quatre pages, d'après les capteurs choisis dans le blueprint (énergie solaire). Ici les flux en direct, chaque ligne aussi épaisse que la puissance ; puis le soleil et la prévision du jour, la production, et le bilan du mois en kWh. Rendu avec des données de démonstration ; il tourne chez un utilisateur avec de vrais panneaux.
La tablette dans Home Assistant — le tableau de bord écrit pour vos entités par l'étape 7 :
Chaque écran dans un thème différent — dessinés par le firmware lui-même sur un PC, avec des données de démonstration ; les jeux restent sombres quel que soit le thème :
| Accueil : la pluie dans l'heure (Bento, clair) | Toute la maison (Relief doux, clair) |
|---|---|
| Roue d'actions (Néon calme, sombre) | Lumières (Bonbon, clair) |
|---|---|
| Clim (Platine et or, sombre) | Volets (Terre cuite, clair) |
|---|---|
| Capteurs de plantes (Sorbet, clair) | Énergie, les flux en direct (Ultraviolet, sombre) |
|---|---|
| Historique des températures (Almanach imprimé, clair) | Calendrier du mois (Zen Sumi, sombre) |
|---|---|
| Réveil (Graphite, sombre) | Assistant vocal (Obsidienne, sombre) |
|---|---|
| Télécommande TV (Signalisation, clair) | Réglages (Capsule, clair) |
|---|---|
| Musique (Almanach, clair) | Caméras, une image fixe chacune (Craie et ardoise, sombre) |
|---|---|
| Capteurs suivis (Béton brut, clair) | Serveur IA local (Ardoise, sombre) |
|---|---|
| Arcade : le menu des jeux (Pixel, sombre) | Roi Noir : des échecs avec un moteur sur la tablette |
|---|---|
| Coureur d'Or : façon Lode Runner | Arcanoïde : un casse-briques joué en inclinant la tablette |
|---|---|
Les jeux sont expérimentaux, un premier jet écrit par l'IA pour voir ce que LVGL et le C++ peuvent faire sur un ESP32-P4 : ils marchent, sans être finis (les huit consoles).
Chaque page est en français et en anglais : installer, se servir de la tablette, la régler, réparer, comprendre comment elle est faite — la liste complète est sur la page de la documentation.
Dans ce dépôt : AGENTS.md pour les agents de code IA (en anglais), CARTOGRAPHIE_TAB5.md (chaque fichier et ses dépendances), Tab5/README.md (les fichiers ESPHome et les services Home Assistant), HomeAssistant_Config/README.md (les packages), CONTRIBUTING.md et le CHANGELOG.md.
SECURITY.md.CONTRIBUTING.md et le code de conduite.Merci à @husyildiz, dont les idées, les essais et les retours dans la discussion #278 ont amené la page d'installation pas à pas, l'écran en turc, la météo hors de France, la batterie d'origine, le popup Énergie pour les panneaux solaires et la météo choisie dans le blueprint.
Merci aussi à Jiuhai (@poonjh), qui construit des appareils sur Tab5 avec ESP-IDF : ses questions et ses notes sur le schéma dans la discussion #369 ont corrigé les pages sur le co-processeur Wi-Fi et sur l'alimentation, et ces notes sont résumées dans la référence matérielle.
Anglais ou français, les deux sont bienvenus.
Ayant beaucoup entendu parler de l'IA pour le codage, j'ai voulu voir par moi-même ce qu'elle donnait. Mon vieil écran Nextion (plutôt météo, déjà avec ESPHome et Météo-France) commençait à dater : je l'ai renouvelé, avec bien plus de domotique, sur un écran bien plus puissant, et avec l'IA qui écrit le code de bout en bout. Pourquoi un écran, ce qu'il devait faire, et comment il a grandi : l'histoire.
Ce projet fait partie d'une exploration personnelle de ce que les outils IA peuvent produire quand on leur laisse la pleine paternité d'un projet technique. Le code, les décisions d'architecture et la plupart de cette documentation ont été générés par des IA (Antigravity/Gemini, DeepSeek, MiniMax, Z.ai, Claude, Cursor). Mon rôle : définir le but, tester, refuser, orienter — plus architecte qu’auteur ligne à ligne. Le but n’a jamais été un produit fini — c’était d’apprendre, de voir où l’IA aide et où elle coince, et de partager ce qui en est sorti.
Si quelque chose dans le code est bizarre, c'est peut-être un quirk d'IA. Si quelque chose marche étonnamment bien, même réponse.
→ Plus de contexte : docs/related_projects.md