{"id":43547141,"url":"https://github.com/benjaminburzan/weatherstation-epaper","last_synced_at":"2026-02-09T18:06:01.566Z","repository":{"id":334917767,"uuid":"932229580","full_name":"benjaminburzan/weatherstation-epaper","owner":"benjaminburzan","description":"Raspberry Pi weather station with Waveshare 2.13\" tri-color e-Paper display","archived":false,"fork":false,"pushed_at":"2026-01-27T21:01:31.000Z","size":190,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-28T01:22:16.277Z","etag":null,"topics":["e-paper","epaper-display","home-automation","iot","pirate-weather","python","raspberry-pi","waveshare","weather-station"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benjaminburzan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-13T15:25:47.000Z","updated_at":"2026-01-27T20:18:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/benjaminburzan/weatherstation-epaper","commit_stats":null,"previous_names":["benjaminburzan/weatherstation-epaper"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/benjaminburzan/weatherstation-epaper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benjaminburzan%2Fweatherstation-epaper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benjaminburzan%2Fweatherstation-epaper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benjaminburzan%2Fweatherstation-epaper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benjaminburzan%2Fweatherstation-epaper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benjaminburzan","download_url":"https://codeload.github.com/benjaminburzan/weatherstation-epaper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benjaminburzan%2Fweatherstation-epaper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29054054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T15:43:47.601Z","status":"ssl_error","status_checked_at":"2026-02-03T15:43:46.709Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["e-paper","epaper-display","home-automation","iot","pirate-weather","python","raspberry-pi","waveshare","weather-station"],"created_at":"2026-02-03T19:03:29.508Z","updated_at":"2026-02-03T19:03:30.082Z","avatar_url":"https://github.com/benjaminburzan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Weather Station e-Paper Display\n\n[![Python 3](https://img.shields.io/badge/Python-3-blue.svg)](https://www.python.org/)\n[![Raspberry Pi](https://img.shields.io/badge/Raspberry%20Pi-Compatible-c51a4a.svg)](https://www.raspberrypi.org/)\n[![Pirate Weather](https://img.shields.io/badge/Pirate%20Weather-API-purple.svg)](https://pirateweather.net/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n\nA Raspberry Pi weather station with a Waveshare 2.13\" tri-color e-Paper display. Shows current temperature, daily max, and weather summary.\n\n## Table of Contents\n\n- [Quick Start](#quick-start)\n- [What You Need](#what-you-need)\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Usage](#usage)\n- [Troubleshooting](#troubleshooting)\n- [File Structure](#file-structure)\n- [Credits](#credits)\n- [License](#license)\n\n---\n\n## Quick Start\n\n\u003e **TL;DR** - Get it running in 4 steps:\n\n1. **Get a free API key** from [Pirate Weather](https://pirate-weather.apiable.io/products/weather-data/plans) (10,000 requests/month free)\n2. **Clone this repo** and install dependencies (see [Installation](#installation))\n3. **Configure `.env`** with your API key and location\n4. **Run it:** `python3 weatherstation.py`\n\n---\n\n## What You Need\n\n### Hardware\n- Raspberry Pi (Zero W, 3, 4, or 5)\n- [Waveshare 2.13\" e-Paper HAT (B)](https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT_(B)_Manual) - the tri-color (black/white/red) version\n- Internet connection\n\n### Software\n- Free [Pirate Weather API key](https://pirate-weather.apiable.io/products/weather-data/plans)\n- Raspberry Pi OS or Debian-based Linux distro\n\n---\n\n## Installation\n\n### 1. Enable SPI Interface\n\n```bash\nsudo raspi-config\n# Navigate to \"Interfacing Options\" → \"SPI\" and enable it\n```\n\n### 2. Install System Dependencies\n\n```bash\nsudo apt install python3-pip python3-venv pipx git fonts-dejavu\n```\n\n### 3. Install Weather Station\n\n#### Option A: Quick Install with pipx (Recommended)\n\n```bash\npipx install \"git+https://github.com/benjaminburzan/weatherstation-epaper.git\"\npipx inject weatherstation-epaper \"git+https://github.com/waveshareteam/e-Paper.git#subdirectory=RaspberryPi_JetsonNano/python\"\n```\n\n#### Option B: Manual Setup with venv\n\n```bash\ncd ~\ngit clone https://github.com/benjaminburzan/weatherstation-epaper.git\ncd weatherstation-epaper\npython3 -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\npip install \"git+https://github.com/waveshareteam/e-Paper.git#subdirectory=RaspberryPi_JetsonNano/python\"\n```\n\n### 4. Configure Environment Variables\n\n```bash\ncp .env.example .env\nnano .env\n```\n\nAt minimum, set your `PIRATE_WEATHER_API_KEY`. See [Configuration](#configuration) for all available options.\n\n---\n\n## Configuration\n\nAll settings are configured via environment variables in your `.env` file.\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `PIRATE_WEATHER_API_KEY` | Your Pirate Weather API key | **Required** |\n| `LATITUDE` | Your location's latitude | 52.5200 (Berlin) |\n| `LONGITUDE` | Your location's longitude | 13.4050 (Berlin) |\n| `LANGUAGE` | Weather summary language ([see options](https://pirateweather.net/en/latest/API/#language)) | de |\n| `UNITS` | `si` for Celsius, `us` for Fahrenheit | si |\n| `FLIP_DISPLAY` | Set to `true` to rotate display 180° | false |\n| `UPDATE_INTERVAL_SECONDS` | How often to refresh (1800 = 30 min) | 1800 |\n| `FONT_PATH` | TrueType font file | `/usr/share/fonts/.../DejaVuSans-Bold.ttf` |\n\n---\n\n## Usage\n\n### Manual Start\n\n```bash\ncd ~/weatherstation-epaper\nsource venv/bin/activate\npython weatherstation.py\n```\n\n### Run as System Service (recommended)\n\nFor automatic startup on boot:\n\n```bash\nsudo cp weatherstation.service /etc/systemd/system/\nsudo systemctl daemon-reload\nsudo systemctl enable weatherstation\nsudo systemctl start weatherstation\n```\n\n**Check status:**\n```bash\nsudo systemctl status weatherstation\n```\n\n**View logs:**\n```bash\ntail -f /var/log/weatherstation.log\n```\n\n---\n\n## Troubleshooting\n\n### Display not updating\n\n1. Check SPI is enabled: `ls /dev/spi*`\n2. Verify wiring connections\n3. Check logs: `tail -f /var/log/weatherstation.log`\n\n### API errors\n\n1. Verify your API key: `echo $PIRATE_WEATHER_API_KEY`\n2. Check internet: `ping pirateweather.net`\n3. Ensure coordinates are valid decimal numbers\n\n### Service not starting\n\n1. Check status: `sudo systemctl status weatherstation`\n2. Verify paths in service file match your installation\n3. Ensure `.env` file exists with valid API key\n\n### Permission errors\n\n```bash\nsudo touch /var/log/weatherstation.log\nsudo chmod 666 /var/log/weatherstation.log\n```\n\n---\n\n## File Structure\n\n```\nweatherstation-epaper/\n├── weatherstation.py      # Main application\n├── weatherstation.service # Systemd service file\n├── requirements.txt       # Python dependencies\n├── .env                   # Your configuration (create from .env.example)\n├── .env.example           # Configuration template\n├── icons.json             # Weather icon unicode mapping\n├── weathericons.ttf       # Weather icons font\n└── venv/                  # Python virtual environment (created during setup)\n```\n\n---\n\n## Credits\n\n- Weather icons: [Erik Flowers Weather Icons](https://github.com/erikflowers/weather-icons)\n- Weather data: [Pirate Weather API](https://pirateweather.net/)\n- e-Paper library: [Waveshare e-Paper](https://github.com/waveshareteam/e-Paper)\n\n## License\n\nMIT License - see [LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenjaminburzan%2Fweatherstation-epaper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenjaminburzan%2Fweatherstation-epaper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenjaminburzan%2Fweatherstation-epaper/lists"}