Skip to main content
PythonFlaskAPI RESTE-INKRaspberry Pi

Un tableau de bord e-ink pour la maison — quand la domotique rencontre l'artisanat logiciel

2024

Vue d'ensemble du dashboard E-ink

Le dashboard en situation réelle

Concevoir un objet utile, de A à Z. Du problème du quotidien au produit fini accroché au mur.

01.Le problème

Ça commence toujours par un détail qui agace.

« Ah nous allons un repas chez des amis demain ? Je ne me rappelais plus... » J'ai beau avoir un calendrier partagé sur mon téléphone, je ne le regarde pas tout le temps...

« Tu ne trouves pas qu'il fait froid dans la maison ? » Attends, je sors mon téléphone pour regarder...

Toutes ces données existaient. Le vrai problème n'était pas le manque d'information. C'était l'absence d'un point de synthèse, toujours visible, toujours à jour, sans avoir à interagir avec quoi que ce soit.

02.Le concept

L'idée : un tableau de bord passif, disposé dans un lieu de passage, qui affiche tout ce dont j'ai besoin en un coup d'œil.

Un écran e-ink s'est imposé comme une évidence. Pas de rétroéclairage agressif le matin, une consommation électrique quasi nulle, et une lisibilité parfaite en toutes conditions — comme du papier, mais connecté.

Le contenu cible était clair dès le départ : — La météo du jour et les prévisions pour les prochaines heures — Les températures en temps réel de chaque pièce — L'agenda de la semaine à venir — La liste de courses — Les produits qui périment dans les 3 prochains jours (via ma web app Anti-Gaspi) — Les prochains départs de trains (affichés uniquement le matin en semaine)

Un seul regard. Zéro interaction.

03.La partie hardware

L'écran choisi est un Waveshare 7.5 pouces, permettant un affichage bicolore (noir et rouge), monté sur un Raspberry Pi Zero W qui fait tourner l'ensemble du système en permanence.

Ce type d'afficheur a une particularité qui change tout : il ne consomme de l'énergie que lors des rafraîchissements. Entre deux mises à jour, l'image reste affichée sans aucune alimentation. C'est l'opposé d'un écran classique — et c'est exactement ce qu'il faut pour un objet qui doit se faire oublier.

La contrainte principale est son temps de rafraîchissement, de l'ordre de quelques secondes. Ce n'est pas un écran pour du contenu dynamique. C'est précisément pour ça qu'il convient parfaitement à un tableau de bord.

Le boîtier, quant à lui, a été réalisé en impression 3D pour s'intégrer parfaitement à l'écran et au Raspberry Pi.

Vue de côté du dashboard E-ink

Le boîtier a été réalisé en impression 3D pour s'intégrer parfaitement à l'écran et au Raspberry Pi.

Vue arrière du dashboard E-ink

Vue arrière du boitier

04.La partie software

Le défi logiciel était de rendre le système fiable, réactif et maintenable — pas juste fonctionnel.

La première décision d'architecture a été de séparer deux responsabilités qui ne doivent pas se mélanger : communiquer avec l'utilisateur et piloter l'écran. Rafraîchir un e-ink prend plusieurs secondes. Si le système attendait la fin du rendu pour répondre, il serait inutilisable pendant ce temps. La solution : un serveur web qui répond immédiatement, et un processus en arrière-plan qui traite les rendus via une file d'attente.

Ce découplage, simple en apparence, est ce qui rend le système robuste : si le rendu échoue, le serveur continue de fonctionner. Si le processus de rendu redémarre, il reprend là où il s'était arrêté. Chaque composant peut être surveillé, redémarré, ou mis à jour indépendamment.

Le tableau de bord lui-même est composé comme une mise en page imprimée : deux colonnes, une typographie soignée, des icônes météo. Le matin en semaine, le bas de la colonne de droite bascule automatiquement sur les informations de transport — un comportement contextuel qui illustre bien l'intention du projet : afficher ce qui est pertinent, au bon moment.

Page login de l'interface web

Page login de l'interface web

Homepage de l'interface web

Homepage de l'interface web

Page configuration de l'interface web

Page configuration de l'interface web

05.La connectivité

Ce projet ne vit pas en isolation. Il s'inscrit dans un écosystème domotique plus large, et c'est là qu'il prend toute sa dimension.

Home Assistant est le système nerveux de la maison. Il centralise les données de tous les capteurs et gère les automatisations. Le tableau de bord e-ink est un consommateur de cet écosystème : il lit les températures, la liste de courses — sans jamais les modifier.

Les autres données viennent de plusieurs sources : la météo depuis l'API officielle de Météo-France, le calendrier depuis un serveur CalDAV, les horaires de train depuis l'API d'Île-de-France Mobilités, et les produits périmés depuis l'API de ma web app Anti-Gaspi.

Mais la relation avec Home Assistant est bidirectionnelle. Parce que le dashboard expose lui-même une API, n'importe quelle automatisation de la maison peut déclencher un rafraîchissement de l'écran. Retour à la maison, mise à jour de la liste de courses, heure fixe le matin, pression sur un bouton physique : l'écran devient un acteur réactif de l'écosystème, pas seulement un afficheur passif.

Présentation des interactions entre le dashboard et les différents services

Présentation des interactions entre le dashboard et les différents services

Ce projet illustre ma démarche préférée : partir d'une vraie friction quotidienne pour concevoir une solution tangible de bout en bout. Ce tableau de bord n'a rien d'une révolution domotique. Mais il tourne de manière autonome depuis 2 ans, et m'a permis d'explorer l'alliance du hardware, de l'impression 3D et d'une architecture logicielle asynchrone. C'est ce qui m'anime au fond : transformer une contrainte en un produit fini, utile, et qui sait se faire oublier.