Design rationale
Unofficial preview — structured from the tempest-inky README.
Fixed geometry#
Categorical colour#
Colour is categorical, never decorative — hue carries condition, height carries quantity. On the ten-day forecast, bar height is temperature and bar fill is the day's condition, with a 0 °C reference line added when freezing falls inside the visible range. On the 12-hour precipitation chart, blue bars mean snow and green bars mean rain, plotted against a fixed 0–100 % scale so an empty chart reads as dry rather than broken.
Adaptive refresh and stale-data handling#
| Behavior | Detail |
|---|---|
| Refresh schedule | Every 15 minutes normally, every 10 minutes when rain is likely in the next hour, and every 30 minutes overnight (22:00–06:00). A systemd timer ticks every 5 minutes and main.py decides whether a refresh is actually due. |
| Stale data | If a fetch fails, the last good reading is redrawn with a STALE marker instead of wiping the panel. |
| Network resilience | Waits up to 2 minutes for WiFi before fetching. |
| API retry | Up to 3 attempts with exponential backoff on failure. |
| Hang protection | systemd kills the process after 5 minutes. |
See it running → covers the systemd service that drives this schedule day to day.