An e-ink home dashboard — where home automation meets software craftsmanship
2024
The dashboard in real use
Building something genuinely useful, from scratch. From an everyday frustration to a finished product on the wall.
01.The Problem
It always starts with a small annoyance.
"Oh, we have dinner at a friend's place tomorrow? I'd completely forgotten..." I have a shared calendar on my phone, sure — but I don't look at it all the time.
"Don't you think it's cold in the house?" Hold on, let me grab my phone to check...
All that data already existed. The real problem wasn't a lack of information. It was the absence of a single synthesis point — always visible, always up-to-date, requiring zero interaction.
02.The Concept
The idea: a passive dashboard placed somewhere you walk past every day, showing everything you need at a glance.
An e-ink screen was the obvious choice. No harsh backlight in the morning, near-zero power consumption, and perfect readability in any light — like paper, but connected.
The target content was clear from the start: — Today's weather and the next few hours' forecast — Real-time temperatures for each room — The week's upcoming calendar events — The shopping list — Products expiring in the next 3 days (via my Anti-Gaspi web app) — Upcoming train departures (shown only on weekday mornings)
One glance. Zero interaction.
03.The Hardware
The display is a Waveshare 7.5-inch screen with two-color output (black and red), mounted on a Raspberry Pi Zero W that runs the entire system continuously.
This type of display has one defining characteristic: it only draws power during a refresh. Between updates, the image stays on screen with no power at all. It's the opposite of a conventional screen — and that's exactly what you want for something designed to disappear into the background.
The main constraint is its refresh time, which takes a few seconds. It's not a screen for dynamic content. And that's precisely why it's perfect for a dashboard.
The enclosure was 3D-printed to fit the screen and Raspberry Pi seamlessly.
The enclosure was 3D-printed to fit the screen and Raspberry Pi perfectly.
Rear view of the enclosure
04.The Software
The software challenge was making the system reliable, responsive, and maintainable — not just functional.
The first architectural decision was to separate two responsibilities that should never be coupled: communicating with the user and driving the screen. Refreshing an e-ink display takes several seconds. If the system had to wait for rendering to complete before responding, it would be unusable during that time. The solution: a web server that responds immediately, and a background process that handles rendering via a queue.
This decoupling, simple as it sounds, is what makes the system robust: if rendering fails, the server keeps running. If the rendering process restarts, it picks up where it left off. Each component can be monitored, restarted, or updated independently.
The dashboard itself is composed like a printed layout: two columns, careful typography, weather icons. On weekday mornings, the bottom of the right column automatically switches to transport information — a context-aware behavior that captures the spirit of the project perfectly: showing what's relevant, at the right time.
Web interface login page
Web interface homepage
Web interface configuration page
05.Connectivity
This project doesn't live in isolation. It's part of a broader home automation ecosystem — and that's where it really comes into its own.
Home Assistant is the nervous system of the house. It centralizes data from all sensors and manages automations. The e-ink dashboard is a consumer within that ecosystem: it reads temperatures, the shopping list — without ever modifying them.
The other data comes from several sources: weather from the official Météo-France API, the calendar from a CalDAV server, train schedules from the Île-de-France Mobilités API, and expiring products from my Anti-Gaspi web app API.
But the relationship with Home Assistant is bidirectional. Because the dashboard exposes its own API, any home automation can trigger a screen refresh. Arriving home, a shopping list update, a fixed morning time, pressing a physical button: the screen becomes a reactive actor in the ecosystem, not just a passive display.
Diagram of interactions between the dashboard and external services
This project captures my favorite way of working: starting from a real everyday friction and building a tangible solution end to end. This dashboard isn't some home automation revolution. But it's been running on its own for 2 years, and it let me explore the intersection of hardware, 3D printing, and asynchronous software architecture. That's what drives me at heart: turning a constraint into a finished product — one that's useful, and knows how to stay out of the way.