An open API service indexing awesome lists of open source software.

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

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.


setup_light
setup_dark


index_light
index_dark

#### 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
![WhatsApp Image 2025-05-21 at 07 21 03](https://github.com/user-attachments/assets/b5b318ca-4eb3-44ab-b2b0-eb1675a0d4fa)

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)