Kindle Dashboard
A minimalist Python web service that renders a greyscale PNG dashboard for Kindle-sized screens.
Usage Guide
The Dashboard
- The time and battery are shown in the top-right
- The next significant rainfall window is shown in the top-left (>1 mm precipitation)
- Cloud cover is shown as a darkness band at the top of the graph
- Temperature is shown as a line graph, with the daily low and high points marked
- The temperature guide lines are spaced at 5 °C
- Sunrise and sunset are indicated subtly
- Precipitation is shown as bars at the bottom, with the peak labelled
- Precipitation guide lines are spaced every 0.2 mm
- When showers dominate rain, the precipitation bars are dotted
Depending on your online screensaver configuration, the information will be somewhat out-of-date - notably the time.
Weather data is retrieved from Open-Meteo in the forecast location's local timezone.
Quick guide to standing in rain for one hour:
- 0.1mm: you'll be dry
- 0.3mm: you'll be damp
- 0.5mm: you'll be wet
- 0.7mm: you'll be soaked
- 0.9mm: you'll be dripping
Prerequisites
- Python 3.14+
On Your Kindle
Put the dashboard on your Kindle using https://github.com/FalconFour/onlinescreensaverPW2.
Running the Server
The simplest way is using uv.
Try it out without installing: WEATHER_LATITUDE=5 WEATHER_LONGITUDE=-5 uvx kindle-dashboard.
Or, install for your user, and run from there:
uv tool install kindle-dashboard
kindle-dashboard
The server serves the dashboard image on http://127.0.0.1:42137/, by default.
There is an example systemd service file.
Configuration
HOST(default:127.0.0.1)PORT(default:42137)IMAGE_WIDTH(default:600)IMAGE_HEIGHT(default:800)RENDER_SUPERSAMPLE_SCALE(default:2)WEATHER_UPDATE_SECS(default:1800)NEXT_RAIN_GAP_TOLERANCE_HOURS(default:1; merges rain events separated by dry gaps up to this many hours)WEATHER_LATITUDE(optional; must be set together withWEATHER_LONGITUDE)WEATHER_LONGITUDE(optional; must be set together withWEATHER_LATITUDE)LOG_LEVEL(default:INFO; standard Python logging levels)LOG_SYSTEMD(optional; set1/trueto force systemd log format,0/falseto disable auto-detect)
The weather graph is shown shown if the latitude and longitude variables are set.
When JOURNAL_STREAM is present (typical under systemd), logging automatically switches to systemd-compatible output.
Development Guide
Development
uv sync
bin/fixapplies automatic linting fixes (run this first)bin/checkruns linting, type checks, and release validationbin/testruns the test suite
uv run kindle-dashboard
Build and Publish
bin/publish
Development Notes
- Precipitation bars represent the hour interval ending at the API timestamp (for example, a value at
16:00is drawn for15:00-16:00). - The Kindle Basic 7th Generation has a 16-level greyscale display.
Release files for kindle-dashboard 3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kindle_dashboard-3.tar.gz | 32.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kindle_dashboard-3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 71.4 kB
Release files / kindle_dashboard-3.tar.gz
| Download URL | kindle_dashboard-3.tar.gz |
|---|---|
| Size | 32.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2a74517a48ac216a41b53457ce77939dc6bd2f65698b24301dab2fdfd96d84a3
|
|
BLAKE2b-256 checksum How to use checksums |
d01788c62d3dff4293d0ecc320594d7e110a14f8ec2f74f5d0e928e3e2958ac6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / kindle_dashboard-3-py3-none-any.whl
| Download URL | kindle_dashboard-3-py3-none-any.whl |
|---|---|
| Size | 38.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
78a60b69362eeed8b777a20424ec41ebea84676116f88e3b16ef0840ab2517e2
|
|
BLAKE2b-256 checksum How to use checksums |
b26e274f40e88325c109bed592226d5873f0f95e2e0853fcf551f66ae00e785b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|