https://github.com/infinitel8p/weather-forecast
weather-forecast, a simple weather dashboard
https://github.com/infinitel8p/weather-forecast
dashboard raspberry-pi weather weather-dashboard weather-forecast weather-station
Last synced: about 1 month ago
JSON representation
weather-forecast, a simple weather dashboard
- Host: GitHub
- URL: https://github.com/infinitel8p/weather-forecast
- Owner: infinitel8p
- Created: 2022-07-11T16:34:56.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2026-04-10T03:42:13.000Z (3 months ago)
- Last Synced: 2026-04-16T10:43:54.111Z (2 months ago)
- Topics: dashboard, raspberry-pi, weather, weather-dashboard, weather-forecast, weather-station
- Language: Astro
- Homepage:
- Size: 2.42 MB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# weather-forecast
weather-forecast is a simple weather dashboard that retrieves data from OpenWeatherMap.
The project is built for a Raspberry Pi 5" screen. It includes a custom 3d-printed case with stand.
- Optimized for 800x480 resolution.
- If you're viewing on a 1920x1080 monitor, zoom the browser to **200%** to approximate the intended element sizes on the Pi display.
#### Contents:
- [weather-forecast](#weather-forecast)
- [Contents:](#contents)
- [How to setup:](#how-to-setup)
- [High-contrast mode](#high-contrast-mode)
- [3D-printed case](#3d-printed-case)
- [Hardware](#hardware)
## How to setup:
1. Clone the repository
```shell
git clone https://github.com/infinitel8p/weather-forecast.git
```
2. Navigate into the project directory
```shell
cd weather-forecast
```
3. Setup the environment variables in `.env` file
- `OPENWEATHERMAP_API_KEY` — Your OpenWeatherMap API key (used for all weather data and geocoding)
- `OPENWEATHERMAP_API_VERSION` — The API tier to use:
- `3.0` (default) — [One Call API 3.0](https://openweathermap.org/api/one-call-3) (paid subscription)
- `2.5` — [One Call API 2.5](https://openweathermap.org/api/one-call-api) (legacy paid subscription)
- `free` — Free tier using the standard [Weather](https://openweathermap.org/current) + [Forecast](https://openweathermap.org/forecast5) endpoints (no UV index, 3-hour forecast intervals instead of hourly)
- `LANGUAGE` — UI language: `en` (default) for English or `de` for German. Also affects weather descriptions from the API and date/time formatting.
> [!Note]
> Choose the API version based on your OpenWeatherMap subscription. The `free` option allows you to run the dashboard without a paid subscription, but with limited features and less granular forecast data.
4. Install the dependencies
```shell
npm install
```
5. Start the development server
```shell
npm run dev
```
## High-contrast mode
For small or low-quality screens (like the Raspberry Pi 5" touchscreen), a high-contrast variant of the day theme is available. Append `?hc` to the URL to activate it:
```
http://localhost:4321/?hc
http://localhost:4321/setup?hc
```
This increases text contrast, makes cards more opaque, deepens borders, and strengthens the geometric background elements for better readability. The night theme is unaffected.
## 3D-printed case

The case is designed to fit a Raspberry Pi 5" screen. The design files are available on MakerWorld.
- [MakerWorld](https://makerworld.com/de/models/1438574-weather-dashboard-raspberry-pi-5-screen#profileId-1496923)
## Hardware
- Raspberry Pi 4
- 5" HDMI screen such as [this one](https://www.amazon.de/Elecrow-Aufl%C3%B6sung-Touchscreen-Monitor-Raspberry/dp/B013JECYF2)