High-tech

Une liseuse devient tableau de bord pour maison connectée, sans code.

Home Assistant nécessite de composer ses tableaux de bord soi-même, carte par carte, et de les entretenir à vie. L’approche consistant à recycler une vieille liseuse ou un Kindle en tableau de bord est une piste explorée depuis longtemps par les bricoleurs de la communauté Home Assistant.

Créer ses tableaux de bord manuellement, puis les maintenir, représente un véritable obstacle dans Home Assistant, qui peut dissuader après l’installation. Au lieu de les coder, je les ai décrits et j’ai conçu un écran sur mesure.

Connecter sa maison est une étape, en avoir une vue d’ensemble est une autre, et c’est ici que le bât blesse. C’est précisément là que Home Assistant me décourageait toujours : il faut créer soi-même les tableaux de bord, carte par carte, et ensuite les maintenir à vie. J’ai vu des passionnés y passer d’innombrables week-ends. Très peu pour moi. Cette fois, plutôt que de tout coder, je les ai décrits.

Ce texte fait suite à celui publié ce matin, concernant mes débuts avec Home Assistant assistés par l’IA. Après l’épisode 1, voici l’épisode 2.

Pour aller plus loin
J’ai mis dix ans à oser Home Assistant : il m’a fallu quelques heures et une IA

L’approche n’est pas inédite dans la communauté Home Assistant : utiliser un ancien lecteur de livres électroniques ou un Kindle comme tableau de bord toujours actif est une idée que les bricoleurs explorent depuis longtemps, séduits par la très faible consommation d’énergie et l’absence de reflets de l’e-ink. La nouveauté ici réside dans le fait de confier la majorité du travail de mise en page et de codage à un assistant IA plutôt que de l’écrire soi-même.

L’idée initiale était simple : un écran dans la cuisine, allumé en permanence. J’avais un lecteur e-ink qui traînait dans un tiroir, une Boox de 10,3 pouces (j’admets qu’une ancienne tablette Android aurait largement suffi), offrant une résolution de 1 872 par 1 404 pixels, soit 227 points par pouce, en noir et blanc, sans rétroéclairage. Cet écran ne fatigue pas les yeux, consomme peu et peut afficher des informations pendant des heures. Toutefois, afficher Home Assistant sur un écran e-ink n’est pas si aisé : les couleurs virent au gris flou, les animations créent des rémanences, et l’écran s’endort de lui-même. En somme, l’écran idéal pour la cuisine se révélait également capricieux.

On a commencé par dessiner, pas par coder

Avant d’écrire la première ligne de code, nous avons esquissé l’apparence de l’écran sur papier : de grands chiffres, des lignes fines pour séparer les zones, et rien d’autre. Pas de couleur, ni d’animation, ni d’ombres. À gauche se trouve l’heure en très grand, accompagnée de la météo. À droite, une grille affichant la température dans les pièces, l’état des volets, les lumières et la consommation d’énergie. Ce croquis a servi de plan, avec l’aide de Claude Design, et le code s’est ensuite ajusté en suivant.

blank

Pour le reste, c’est assez simple. L’écran est dessiné sur une toile aux dimensions exactes de la liseuse, 1 872 par 1 404 pixels. Le programme lit l’état de la maison dans Home Assistant, peint cette toile, puis l’étire pour remplir l’écran. En tout, deux fichiers sont nécessaires : un pour l’apparence, un pour la logique.

La complexité résidait dans la finesse de l’écran. Ma Boox a une résolution de 227 points par pouce en noir et blanc, et à cette densité, elle ne parvient pas à produire un gris correct. Elle le simule en utilisant une multitude de points minuscules, ce qui entraîne un flou lorsque du texte est superposé. Nous avons donc éliminé tous les gris intermédiaires. Du noir pur sur fond blanc pur, des lignes pour séparer plutôt que des fonds grisés, et cela est devenu immédiatement net. Pour vérifier, l’assistant prenait une photo de l’écran à la taille exacte de la liseuse, mesurait chaque élément, avant de déployer. Ainsi, nous avons identifié de véritables bugs : l’heure coupée en haut, le bloc énergie sortant du cadre, des tuiles débordant sur deux lignes. Comme tout était trop petit au départ, nous avons ajouté un zoom réglable qui agrandit l’ensemble, sauf l’horloge et la température, déjà très grandes. Ce problème n’était pas le seul.

Le casse-tête, c’est de rafraîchir l’écran

Sur un écran classique, nous mettons à jour en continu sans même y penser. Sur un écran e-ink, cela n’est pas permis : chaque pixel qui change nécessite un rafraîchissement lent, accompagné d’un clignotement et qui utilise beaucoup de batterie. Il a donc fallu ajuster la fréquence de mise à jour. Nous lisons l’état de la maison une fois, puis nous mettons à jour par étapes : l’horloge à la minute, toutes les données toutes les quinze minutes, et un rechargement complet de la page toutes les quelques heures.

blank

Il restait deux détails que je n’aurais jamais découverts seul. Toutes les trente minutes, l’écran produit un bref flash, d’abord tout noir puis tout blanc, afin d’éliminer les résidus d’image que l’e-ink laisse. Un soir, l’horloge a pris du retard, parce qu’Android désactive les minuteurs lorsqu’il considère l’écran inactif : l’application envoie donc désormais un petit signal régulier pour la remettre à l’heure.

blank

Ce matin, la météo a disparu de l’écran car l’API Météo-France était hors service. J’ai depuis ajouté un système de secours : si Météo-France ne répond plus, l’affichage bascule automatiquement vers une autre source.

blank

Tout l’écran respectait cette discipline de rafraîchissement lent, sauf un bloc : celui de Sonos. En effet, la musique est la seule chose que l’on souhaite voir mise à jour à la seconde. Lorsqu’un nouveau morceau démarre dans la cuisine, la pochette, le titre et l’artiste se mettent immédiatement à jour. Pour cela, cette partie de l’écran reste connectée en direct à Home Assistant. La couverture de l’album est convertie à la volée en niveaux de gris pour s’afficher correctement en noir et blanc. De plus, l’écran est tactile : je peux taper pour mettre en pause, passer à la chanson suivante, augmenter le volume ou lancer l’une de mes playlists, sans sortir mon smartphone.

L’épreuve du réel, mesurée au pixel

Pour y parvenir, avec l’aide de Claude Code, nous avons développé une petite application Android maison, baptisée Maraudeur, pesant 600 kilo-octets et écrite en Kotlin.

blank

Son rôle est de : maintenir l’interface en plein écran, empêcher la mise en veille, recharger la page en contournant le cache et déclencher un bref flash noir et blanc pour éliminer la rémanence. L’interface développée est spécifiquement conçue pour le monochrome : de grands chiffres, des lignes fines, sans couleur ni animation. Rien de spectaculaire, mais précisément ce que l’e-ink sait afficher sans provoquer de flou.

Puis est venue l’épreuve du réel, et c’est la partie que je préfère. L’affichage est trop petit ? Nous ajoutons un zoom en redimensionnant le canevas logique de l’interface. Si cela déborde et que l’heure est coupée en haut ? Nous ajustons la mise en page pixel par pixel. Pour les vérifications, l’assistant prenait une capture de la page affichée à la résolution exacte de ma liseuse, mesurait et comparait, avant chaque déploiement.

Une maison, quatre écrans

Une fois la configuration de la cuisine réussie, le reste s’est établi presque de lui-même. La même maison a été adaptée pour une tablette couleur dans le salon, installée comme une application à part entière, en plein écran, avec les couvertures d’albums Sonos en couleur cette fois.

blank
Petit teasing des interfaces maisons que je mets en place

Ensuite, pour le smartphone, une version verticale pensée pour être utilisée d’une seule main, que l’on peut ajouter à l’écran d’accueil. Enfin, une page d’accueil unique regroupe tous ces écrans, montrant l’état de chaque service en temps réel et la feuille de route du projet.

Toute cette interface partage une identité commune : une typographie soignée, un fond noir, un seul accent cyan, et un mot de passe global pour tout déverrouiller.

Le message que je souhaite passer est que je n’ai pas appris à concevoir des interfaces, mais à les décrire à un assistant qui se charge de les créer. Nous dessinons, nous imaginons, et l’outil construit, mesure, et corrige.

Les tableaux de bord de Home Assistant sont toujours disponibles, mais ici, nous pouvons réaliser des interfaces personnalisées. Il faut cependant avoir le matériel adéquat, accepter de relire, et garder à l’esprit que l’IA a fait quelques erreurs. Je l’ai constaté en surveillant les développements.

En terme de budget, le projet reste modeste : la liseuse Boox était déjà dans un tiroir, et une ancienne tablette Android aurait suffi pour un coût bien inférieur. Le vrai investissement, ce n’est pas l’équipement, mais le temps passé à décrire, relire et corriger l’interface avec l’assistant, un temps évalué en heures (surtout lors de réflexions sous la douche), plutôt qu’en week-ends.

En conclusion, ce qui nécessitait des week-ends peut désormais se faire dans le cadre d’une conversation, et c’est peut-être le véritable changement, plus que les écrans attrayants.

Pour aller plus loin
J’ai mis dix ans à oser Home Assistant : il m’a fallu quelques heures et une IA