No description
Find a file
2026-02-11 15:47:03 +01:00
api chore: update tests to adaped to new structure 2026-02-11 15:47:03 +01:00
collectors refactor: modernize project and improve error handling and documentation 2026-02-11 15:24:26 +01:00
config refactor: modernize project and improve error handling and documentation 2026-02-11 15:24:26 +01:00
dashboard refactor: modernize project and improve error handling and documentation 2026-02-11 15:24:26 +01:00
scripts refactor: modernize project and improve error handling and documentation 2026-02-11 15:24:26 +01:00
tests chore: update tests to adaped to new structure 2026-02-11 15:47:03 +01:00
transformators refactor: modernize project and improve error handling and documentation 2026-02-11 15:24:26 +01:00
utils refactor: modernize project and improve error handling and documentation 2026-02-11 15:24:26 +01:00
.gitignore first inital commit 2026-02-11 13:00:39 +01:00
docker-compose.yaml refactor: modernize project and improve error handling and documentation 2026-02-11 15:24:26 +01:00
Dockerfile refactor: modernize project and improve error handling and documentation 2026-02-11 15:24:26 +01:00
main.py refactor: modernize project and improve error handling and documentation 2026-02-11 15:24:26 +01:00
pyproject.toml chore: update tests to adaped to new structure 2026-02-11 15:47:03 +01:00
README.md refactor: modernize project and improve error handling and documentation 2026-02-11 15:24:26 +01:00
uv.lock chore: update tests to adaped to new structure 2026-02-11 15:47:03 +01:00

Strompreis & Netz Pipeline

Automatisierte End-to-End Daten-Pipeline zur Erfassung, Analyse und Visualisierung von Strommarkt- und Wetterdaten.

🏗 Architektur (Medallion Prinzip)

Das Projekt folgt einer sauberen Data-Engineering-Struktur unter Verwendung von DuckDB und Polars:

  1. Bronze Layer (Raw): Unveränderte API-Antworten von SMARD und Bright Sky werden als historische Fakten gespeichert.
  2. Gold Layer (Combined): Transformierte, bereinigte und über Zeitstempel zusammengeführte Daten (Inner Join), die direkt für Analysen und das Dashboard bereitstehen.

🚀 Features

  • Datensammlung: Automatisiertes Abrufen von:
    • Strompreisen, Netzlast, Gesamterzeugung, Wind- & Solar-Erzeugung (SMARD API).
    • Umfassenden Wetterdaten (Temperatur, Wind, Solarstrahlung, etc. via Bright Sky API).
  • Dashboard: Interaktive Visualisierung mit Streamlit (Preise, Energiemix, Wetter-Details).
  • REST-API: FastAPI-Schnittstelle für den programmatischen Zugriff auf aktuelle Daten.
  • Orchestrierung: Vollständige Docker-Integration inklusive eines automatisierten Schedulers.

🛠 Installation & Betrieb

Mit Docker (Empfohlen)

Das gesamte System (Pipeline, API, Dashboard) wird mit einem Befehl gestartet:

docker-compose up --build
  • Dashboard: http://localhost:8501
  • API: http://localhost:8000/docs

Lokal (Entwicklung)

  1. Abhängigkeiten installieren:

    uv sync
    
  2. Pipeline manuell ausführen:

    uv run python main.py run
    
  3. Dashboard starten:

    uv run streamlit run dashboard/app.py
    

⚙️ Konfiguration

Die Konfiguration erfolgt über config/config.yaml oder Umgebungsvariablen mit dem Präfix STROM_:

  • STROM_SMARD__REGION: Region-Code (Standard: DE-LU)
  • STROM_DATABASE__PATH: Pfad zur DuckDB Datei
  • INTERVAL: Ausführungsintervall des Schedulers im Docker-Container (in Sekunden).

🧪 Tests

uv run pytest

Lizenz

MIT