WeatherFlow is a modern, Dockerized Python solution that effortlessly transfers your Personal Weather Station (PWS) data from Weather Underground to multiple platforms including Windy and idokep.hu. Leverage the power of APIs and cloud computing to ensure your weather station's data is accurately reflected on multiple platforms, where it can contribute to global and regional weather monitoring.
This project is built with scalability and flexibility in mind, allowing you to configure update intervals and station-specific details with ease. Whether you're a tech enthusiast, a data geek, or a professional meteorologist, WeatherFlow is your go-to solution for seamless weather data integration.
- Dockerized for Simplicity: Run in a containerized environment for consistent performance across platforms
- Multi-Platform Support: Send data to both Windy and idokep.hu simultaneously
- Modular Architecture: Clean, maintainable codebase with separate modules for each provider
- Configurable Update Intervals: Set your own data update frequency (Windy minimum: 5 minutes)
- Robust Error Handling: Comprehensive logging and error handling for reliability
- Scalable: Easily deploy multiple instances for managing multiple PWS stations
weatherflow/
βββ src/
β βββ __init__.py
β βββ config.py # Configuration management
β βββ main.py # Application entry point
β βββ providers/
β βββ __init__.py
β βββ weather_underground.py # WU data fetcher
β βββ windy.py # Windy publisher
β βββ idokep.py # Idokep.hu publisher
βββ docker-compose.yml
βββ Dockerfile
βββ requirements.txt
βββ readme.md
-
Clone the Repository:
git clone https://github.com/LavX/weatherflow.git cd weatherflow -
Configure Environment Variables: Update the
docker-compose.ymlwith your own values:environment: # Required - Weather Underground - WU_PWS_ID=your_pws_id_here - WU_API_KEY=your_weather_underground_api_key_here # Required - Windy - WINDY_API_KEY=your_windy_api_key_here - WINDY_STATION_ID=0 # General settings - UPDATE_INTERVAL=300 # Optional - Idokep.hu - IDOKEP_ENABLED=false - IDOKEP_USER=your_idokep_username - IDOKEP_PASS=your_idokep_password - IDOKEP_STATION_TYPE=PWS - IDOKEP_PRO=false - IDOKEP_UTC=1
-
Build and Run:
docker-compose up -d --build
-
Check Logs:
docker-compose logs -f
| Variable | Description |
|---|---|
WU_PWS_ID |
Your Weather Underground PWS station ID |
WU_API_KEY |
Your Weather Underground API key |
WINDY_API_KEY |
Your Windy API key |
WINDY_STATION_ID |
Your Windy station ID (default: 0) |
| Variable | Description | Default |
|---|---|---|
UPDATE_INTERVAL |
Update interval in seconds | 300 (5 minutes) |
| Variable | Description | Default |
|---|---|---|
IDOKEP_ENABLED |
Enable idokep.hu integration | false |
IDOKEP_USER |
Your idokep.hu username | - |
IDOKEP_PASS |
Your idokep.hu password | - |
IDOKEP_STATION_TYPE |
Station type (e.g., PWS, WS2305, Netatmo) |
PWS |
IDOKEP_PRO |
Use pro.idokep.hu for data archiving | false |
IDOKEP_UTC |
Time format: 1 = UTC, 0 = Central European |
1 |
WeatherFlow supports sending weather data to idokep.hu, a popular Hungarian weather service.
- Register at idokep.hu (basic registration is sufficient)
- For data archiving, register at pro.idokep.hu
| Parameter | Description | Unit |
|---|---|---|
hom |
Temperature | Β°C |
rh |
Relative humidity | % |
harmatpont |
Dewpoint | Β°C |
szelirany |
Wind direction | degrees |
szelero |
Wind speed | m/s |
szellokes |
Wind gust | m/s |
p |
Sea-level pressure | hPa |
uv |
UV index | - |
csap1h |
1-hour precipitation | mm |
- Temperature/Dewpoint 0Β°C: Automatically reported as 0.1Β°C (idokep.hu API limitation)
- Time Format: Default is UTC (
IDOKEP_UTC=1). Set to0for Central European local time - Pro vs Regular: Use
IDOKEP_PRO=truefor pro.idokep.hu with data archiving
- Weather Underground: PWS Dashboard
- Windy: PWS on Windy
# Build and start
docker-compose up -d --build
# View logs
docker-compose logs -f
# Stop service
docker-compose down
# Restart service
docker-compose restart# Install dependencies
pip install -r requirements.txt
# Set environment variables
export WU_PWS_ID=your_pws_id
export WU_API_KEY=your_api_key
export WINDY_API_KEY=your_windy_key
# ... other variables
# Run
python -m src.main- Python 3.14+
- requests >= 2.32.5
Licensed under the MIT License - see LICENSE file for details.
Questions? Open an issue or reach out via GitHub.
WeatherFlow - Delivering precise and reliable weather data across platforms βοΈπ§οΈπ€οΈ
Crafted with β€οΈ by LavX