M5Stack Tab5 — écran mural Home Assistant avec ESPHome et LVGL¶
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.
Pourquoi celui-ci¶
- Push uniquement, zéro polling. Home Assistant n'envoie que ce qui a changé ; la tablette ne demande jamais rien (ADR-0001).
- Se règle à la souris, dans Home Assistant. Après l'installation, pièces, tuiles, capteurs, caméras, ce que montre chaque zone et ce que fait chaque geste se choisissent dans un seul blueprint, et changer d'appareil ne demande pas de flash (vos appareils).
- La voix démarre sur l'appareil. « Okay Nabu » et un mot « Stop » pour le volet roulant sont détectés sur la tablette ; l'audio n'en sort qu'après le mot d'activation.
- Sept langues, jusque dans les détails. Français, anglais, allemand, néerlandais, espagnol, italien et turc, au choix depuis Home Assistant : menus, jeux, dates, textes envoyés par Home Assistant et briefing parlé du réveil. Traduites par une IA ; l'auteur n'a relu que le français (traductions).
- Vingt et un thèmes, clairs ou sombres. Couleurs, formes et polices de l'horloge changent aussitôt, sans redémarrer, depuis Home Assistant ou la console de la tablette ; « Auto » passe en clair au lever du soleil et en sombre à son coucher (thèmes).
- Continue de marcher quand Home Assistant ne marche plus. Horloge, réveil, jeux et console de diagnostic restent utilisables seuls.
- Beaucoup de notes et de tests. 68 décisions d'architecture (ADR), des tests hôte pour les moteurs C++ des jeux et du réveil, et une CI qui compile le firmware avec la version minimale et la dernière version d'ESPHome. Le tout écrit avec l'IA, et essayé sur de vrais écrans, un à la fois.
- Tourne sur les révisions ST7123 et ST7121 du Tab5, compile pour l'ILI9881C d'origine, et tourne, à l'essai, sur la Waveshare ESP32-P4 7B de 7 pouces.
Ce que ça fait¶
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.
- Météo — pluie dans l'heure, prévisions horaires et à 15 jours, vigilances (plus bas).
- Carte centrale — toutes les 8 s : horaires, graphe de pluie, vigilances, récap du calendrier sur 3 jours et jusqu'à 4 bandeaux poussés par Home Assistant, les alertes auxquelles vous êtes abonné ; un appui masque un bandeau, un appui long montre les 20 dernières alertes (écran d'accueil, alertes).
- Pièces — la rangée du bas : jusqu'à 10 pièces de 20 appareils (lumières, interrupteurs, volets, lecteurs multimédia, scènes, capteurs), leur nombre choisi dans Home Assistant, avec leurs noms et icônes pris dans Home Assistant (rangée du bas et pièces).
- Maison — toute la maison d'un coup d'œil, une colonne par pièce : chaque appareil avec son état, les mêmes appuis que sur sa carte, et toutes les lumières éteintes d'un appui (maison).
- Clim — modes, arc de thermostat, préréglages et flux d'air ; les commandes sont grisées, pas masquées, quand la clim est éteinte (clim).
- Lumières — les lumières de la pièce (5 au plus) : arc de luminosité avec raccourcis, 3 blancs et 12 couleurs (lumières).
- Volets — ouvrir, fermer ou une position ; pendant qu'il bouge, « Stop » dit à voix haute l'arrête tout de suite (volets).
- Plantes — jusqu'à 5 capteurs BLE, colorés selon l'humidité du sol ; un appui long montre fertilité, lumière, température et batterie (plantes).
- Télécommande TV — une télécommande Samsung plein écran : marche, croix, volume, chaînes, lecture, muet, par Home Assistant (télécommande TV).
- Voix — « Okay Nabu » détecté sur la tablette, ou un appui sur le micro ; deux assistants au choix depuis l'écran, la domotique ou la discussion (voix).
- Calendrier et réveil — un calendrier du mois calculé sur la tablette, avec horaires, fériés, vacances et rendez-vous ; un réveil avec un briefing parlé (calendrier, réveil).
- Énergie (facultatif) — ce qui circule en direct entre le soleil, la maison, le réseau et une batterie de la maison, le soleil du jour et une prévision de production apprise sur vos panneaux, la production par heure, jour et mois, et le bilan du mois en kWh, comme si le réseau était une batterie (énergie).
- Historique des températures — un appui long sur une température : sa courbe sur 24 heures, 7 ou 30 jours, avec la prévision de la météo pour la seconde (température).
- Musique — n'importe quel lecteur de Home Assistant : pochette, titre, position, lecture et volume ; un lecteur compact peut se placer à gauche de l'horloge. Des pages pour vos playlists favorites, les lecteurs de chaque pièce et, avec Music Assistant, les groupes et sa bibliothèque (musique).
- Caméras — une image fixe de chaque caméra, rafraîchie tant que la fenêtre est ouverte, rangée par pièce ; pas de vidéo (caméras).
- Suivi, frigos, serveur IA — jusqu'à six capteurs suivis (une action en bourse, une puissance…) avec leur courbe sur 24 heures ; les frigos et congélateurs comparés à leur norme, avec une alerte ; le tableau de bord d'un serveur de LLM local (suivi, frigos, serveur IA).
- Console de diagnostic — mémoire, Wi-Fi, temps de marche, volume, thème ; recharger les automatisations, redémarrer Home Assistant ou la tablette, après confirmation (console système).
- Réglages — luminosité, extinction automatique, thème, clair ou sombre, langue, sans ouvrir Home Assistant (réglages).
- 8 jeux hors ligne — expérimentaux : échecs, dames, go, casse-briques, flipper, Lode Runner, un roguelite de bille et un quiz (Arcade).
Pluie dans l'heure, vigilances¶
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.

- 9 barres, toute l'heure qui vient : une toutes les 5 minutes pendant une demi-heure, puis une toutes les 10 minutes. Plus la barre est haute et foncée, plus la pluie est forte. La phrase est écrite par la tablette, dans sa langue, et décompte les minutes toute seule.
- Source, choisie dans Home Assistant : Météo-France en France ; les radars Buienradar, DWD ou Met.no ; OpenWeatherMap ; Open-Meteo partout, sans clé, pris tout seul quand il n'y a pas Météo-France ; ou aucune, et le panneau disparaît (fournisseurs météo).

- Une icône par vigilance en cours, 4 au plus, chacune de la couleur de son niveau. La date sous l'horloge prend la couleur du niveau global de la journée.
- Source : Météo-France pour votre département ; ailleurs MeteoAlarm, le DWD ou CAP Alerts. Hors Météo-France, les vigilances n'ont été essayées qu'avec des données simulées.
Avant de commencer¶
- Une Tab5 : la puce écran ST7123 est celle de l'auteur ; la ST7121 tourne chez un autre utilisateur, l'ILI9881C d'origine est compilée mais pas essayée — voir la compatibilité matérielle. Ou une Waveshare ESP32-P4 7B (7 pouces, 1024×600) : expérimentale, sans les jeux par défaut ; son firmware s'installe aussi depuis le navigateur, dans le canal bêta pour l'instant (Waveshare 7B).
- Home Assistant 2026.8 ou plus récent. Un firmware prêt à l'emploi et signé s'installe depuis le navigateur ; pour compiler le vôtre, ESPHome ≥ 2026.9.0 (2026.9.1 pour la Waveshare).
- L'écran parle français, anglais, allemand, néerlandais, espagnol, italien ou turc, au choix depuis Home Assistant — toutes écrites par une IA comme le reste du projet ; l'auteur a relu le français, les autres ne sont pas encore relues. Seules les questions du quiz restent en français (traductions).
- La disposition est partie de la maison de l'auteur. Vous choisissez vos appareils dans Home Assistant, à la souris (un blueprint), et ce que vous n'avez pas disparaît de l'écran. Les tuiles du bas sont des pièces ; les autres zones ont une seule place chacune : la carte clim, la TV, le téléphone, deux températures, jusqu'à 5 plantes (adapter à sa maison).
- Le graphe de pluie et les vigilances sont d'abord faits pour la France (Météo-France) ; ailleurs, la pluie vient toute seule d'Open-Meteo, et d'autres services se choisissent dans Home Assistant (fournisseurs météo).
Démarrage rapide¶
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 :
- Fichiers Home Assistant : décompressez l'archive jointe à chaque release dans le dossier
configde 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. - Installer le firmware depuis la page d'installation : votre révision d'écran, le canal Stable, Connecter et installer.
- Wi-Fi : depuis la même fenêtre, par l'USB, ou avec un téléphone sur le réseau ouvert « Tab5 Fallback AP ».
- L'ajouter à Home Assistant : l'appareil ESPHome est découvert, Configurer ; Home Assistant lui donne sa clé.
- Vos sources : météo et agendas, choisis dans les listes « Tab5 · » à la souris.
- Vos appareils : l'automatisation créée depuis le blueprint, à la souris ; changer d'appareil ne demande pas de flash.
- Un tableau de bord (facultatif) : une ligne dans l'outil Modèle de Home Assistant écrit un tableau de bord pour la tablette, avec ses réglages et sa santé.
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.
Compatibilité matérielle¶
| 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) | — | 🧪 Expérimentale — tourne sur la carte de l'auteur depuis le 14/10/2026, les jeux pas encore adaptés à son écran ; à installer depuis le navigateur (canal bêta, depuis la 3.9.0-rc.6) ou à compiler avec tab5_carte: waveshare-7b et ESPHome 2026.9.1 (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.
En images¶
▶ 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).
Documentation¶
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.
Communauté¶
- Questions, idées, votre installation → Discussions (Q&A, Ideas, Show and tell, Hardware compatibility).
- Quelque chose ne marche pas ? → ouvrez une issue ; le formulaire demande votre puce écran et votre version d'ESPHome.
- Faille de sécurité → à signaler en privé, voir
SECURITY.md. - Contribuer →
CONTRIBUTING.mdet 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.
Note personnelle¶
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.
Note sur l'IA¶
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





















