My smart home is a jumble of different brands, which is fine because it runs through Home Assistant on a mini PC. That gives me control over everything no matter which ecosystem it was designed to work with, and I could even add custom-made sensors if I wanted to.
It also means I need an app on my phone to see what's going on with my smart home, but I'd rather have an always-on smart display. The problem is that I don't like the current crop of LCD smart displays, and I'm not sure if they'd run Home Assistant anyways as they're locked to Google or Amazon's ecosystem. But I do have an old Kindle, and the E Ink screen on that is what we're going to use.
Boox finally built the e-reader Kindle Scribe promised but never delivered
E Ink is much better on an open platform
Home Assistant doesn't have a native Kindle app
But that doesn't matter when the community has options
Home Assistant's best feature isn't automation. Well, except for a few Echo Dots, because kiddo loves using those to change lighting conditions. I've got the app on every E Ink device I own that runs Android, but I also have some Kindles that I never use anymore, and I'd rather reuse those than throw them away.
The problem is that the hardware inside Kindles is barely competent enough to run the e-reader portion, and they use ancient WebKit standards that the modern web has progressed past. The Kindle hacking and Home Assistant communities have significant overlap, and have created ways to get the HA dashboard onto the Kindle screen.
Home Assistant
- OS
- Windows, macOS, Linux
- iOS compatible
- Yes
Hacking the Kindle into a smart home dashboard took some time
But the results were worth it
If you want to turn an old Kindle into a Home Assistant dashboard, you'll need to jailbreak it first. Without this step, you won't be able to add custom software to the device, or any number of other cool upgrades. Like adding Tailscale to pull new books off your home server, which is one of the favorite customizations I've made to mine already.
We're going to be using the Kindle SmartHome Dashboard project for this, mainly because it was designed for Paperwhite, which is the model family I own. But also because it works with the rest of my infrastructure, as I can put the proxy on the device that's running my Home Assistant instance.
Installing the WebSocket proxy
The project I'm using has a WebSocket proxy to translate the old WebSocket API that Kindle uses into something Home Assistant can read. I thought about how to best run this on the device I'm currently using for Home Assistant, and turning the WebSocket proxy into a Docker container felt the best way.
Inside the websocket-proxy folder I copied config.sample.json to config.json and filled in:
-
homeassistant.wsUrl— your HA URL, e.g.http:// -
homeassistant.accessToken— a long-lived access token from HA (Profile → Security → Long-lived access tokens) -
kindle-display.accessToken— any random string you invent; the Kindle will use it to authenticate to the proxy
Then I transferred this to /volume1/docker/kindle-proxy/ and created the following docker compose file in the same folder:
services:
kindle-proxy:
image: node:20-alpine
container_name: kindle-smarthome-proxy
working_dir: /app
volumes:
- /volume1/docker/kindle-proxy:/app
command: sh -c "npm install && node main.js"
ports:
- "4365:4365"
restart: unless-stopped
Running that through Container Manager as a project got it working, and I verified this through the logs. Also, I went and added that port to the firewall exclusions, so it's reachable on my local network but nowhere else. That's fine, as the Kindle I'm using isn't going to leave the house.
Installing the Kindle dashboard extension
Inside the folder that's going on the Kindle as a KUAL extension, I needed to change a couple of things in the JavaScript config file. The proxy_ip is the IP of the box I'm running the WebSocket proxy on, and the access_token is a random string I created when setting that up. I put in longitude and latitude, so the weather can display correctly, and changed the calendar entries to the ones that match my HA.
var DEBUG_MODE = true;
var WS_URL = 'ws://
And a few more things needed to be changed overall, mainly swapping the language to English from German, upscaling to fit the 7th gen Paperwhite I own, and adjusting Home Assistant entities to the ones that my instance uses. But it didn't take that long, especially as I have Claude, able to read my Home Assistant via MCP, and the time was well spent.
Kindle SmartHome Dashboard
E Ink is the best smart home screen
Kindles and other battery-powered devices make control easy
The main problem I have with most smart displays is that LCDs are difficult to read from across the room. That alone makes them unusable for me, and I default to using voice commands most of the time as a result.
E Ink has no such issue, at least if the font and icons are designed to be large enough to be readable. What's more, it's viewable even in the brightest sunlight, something that no other display type can handle.
The only reason I can think of that the large smart home manufacturers haven't used E Ink yet is that the screens are relatively expensive, which is why your Kindle is subsidized by advertising screensavers (and by you buying books from Amazon and nowhere else). It's not that Amazon doesn't have the screens or the knowledge, but there is no commercial benefit to them for making an Echo Show with E Ink.
The best display for a home server isn't a monitor, it's an E Ink screen
Reduce your energy consumption whlle monitoring your server
Reusing an old Kindle as a smart home display is fantastic upcycling
Using your old Kindle as a smart display is one of the many inventive, and genuinely useful projects that you can use it for. While many jailbreak their devices to get away from Amazon's software updates (or lack of them on older devices), that's the tip of the iceberg.
