Skip to content

bigg1812/smard-bacnet-gateway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SMARD-BACnet Gateway

Strompreise aus dem Internet direkt in die Gebäudeautomation bringen.

Dieses Tool holt automatisch Day-Ahead Strompreise von der öffentlichen API der Bundesnetzagentur (SMARD) und schreibt sie via BACnet/IP in einen Gebäudeautomations-Controller.

                                          ┌─────────────────┐
 ┌────────────┐   Internet    ┌────────┐  │  BACnet         │
 │  SMARD API │ ─────────────►│ Python │──│  Controller     │
 │  (Bundes-  │  Strompreise  │ Skript │  │  (z.B. EBcon)   │
 │  netzagen- │  EUR/MWh      │        │  │                 │
 │  tur)      │               │  PC    │  │  AV:1000 = 11.67│
 └────────────┘               └────────┘  │  AV:1001 = 8.42 │
                                          │  AV:1002 = 7.35  │
                                          │  ...             │
                                          └─────────────────┘

Was macht das Tool?

  1. Ruft Strompreise ab von der SMARD-Plattform der Bundesnetzagentur
  2. Schreibt den aktuellen Preis in ein konfigurierbares Analog Value (z.B. AV:1000)
  3. Schreibt 24 Stundenpreise für morgen in aufeinanderfolgende AVs (z.B. AV:1001 bis AV:1024)
  4. Schreibt einen Status in ein weiteres AV (z.B. AV:1025) als Watchdog

Die Preise stehen dann im Controller für Steuerungsprogramme zur Verfügung – z.B. um ein BHKW, Wärmepumpen oder Batteriespeicher zu optimieren.

Schnellstart

Detaillierte Anleitung mit Screenshots: Siehe setup_guide/

# 1. Repository herunterladen
git clone https://github.com/DEIN-NAME/smard-bacnet-gateway.git
cd smard-bacnet-gateway

# 2. Python-Umgebung einrichten
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

# 3. Konfiguration anpassen (IP-Adressen und AV-Nummern!)
notepad config\einstellungen.ini

# 4. Verbindung testen
python src/verbindungstest.py

# 5. Strompreise abrufen
python src/strompreis_bacnet.py

Voraussetzungen

Was Mindestanforderung
Betriebssystem Windows 10/11 oder Windows Server
Python 3.10 oder neuer
Controller Jeder BACnet/IP Controller
Netzwerk PC und Controller im selben Subnetz
Internet Für SMARD-API (HTTPS)

Projektstruktur

smard-bacnet-gateway/
├── README.md                   ← Diese Datei
├── LICENSE                     ← MIT Lizenz
├── requirements.txt            ← Python-Abhängigkeiten
├── config/
│   └── einstellungen.ini       ← Alle Einstellungen (MUSS angepasst werden!)
├── src/
│   ├── strompreis_bacnet.py    ← Hauptskript
│   └── verbindungstest.py      ← Verbindungstest
├── setup_guide/
│   ├── 01_VORBEREITUNG.md      ← Was du brauchst
│   ├── 02_INSTALLATION.md      ← Schritt-für-Schritt Installation
│   ├── 03_CONTROLLER_EINRICHTEN.md ← AVs im Controller anlegen
│   ├── 04_ERSTER_TEST.md       ← Testen ob alles funktioniert
│   └── 05_AUTOMATISIERUNG.md   ← Windows Task einrichten
└── logs/
    └── strompreis.log          ← Wird automatisch erstellt

Konfiguration

⚠️ WICHTIG: Vor der ersten Nutzung MUSS die Datei config/einstellungen.ini angepasst werden!

📖 Detaillierte Schritt-für-Schritt-Anleitung: KONFIGURATION.md

Die Konfigurationsdatei enthält Platzhalter, die du durch deine echten Werte ersetzen musst:

[netzwerk]
controller_ip = 192.168.1.100   ← Ersetze durch IP deines Controllers
local_ip      = 192.168.1.50    ← Ersetze durch IP deines PCs

[bacnet_objekte]
av_aktuell      = 1000          ← Ersetze durch deine AV-Instanznummern
av_morgen_start = 1001          ← (26 aufeinanderfolgende AVs benötigt)
av_morgen_ende  = 1024
av_status       = 1025

[einheiten]
faktor = 0.1                    ← 0.1 = ct/kWh, 1.0 = EUR/MWh

Du benötigst:

  • ✅ Die IP-Adresse deines BACnet-Controllers
  • ✅ Die IP-Adresse des PCs auf dem das Skript läuft
  • ✅ 26 freie AV-Instanznummern im Controller

Wo finde ich diese Informationen? → Siehe KONFIGURATION.md

SMARD-Datenquelle

Die Daten stammen von SMARD – der Strommarkt-Plattform der Bundesnetzagentur. Die API ist öffentlich zugänglich, kostenlos und benötigt keinen API-Key.

Verfügbare Daten (Auszug)

Typ Filter-ID Beschreibung
Strompreise
4169 Day-Ahead Großhandelspreis
5078 Intraday Durchschnitt
Erzeugung
4068 Photovoltaik
4067 Wind Onshore
1225 Wind Offshore
4071 Erdgas
Verbrauch
410 Netzlast (Gesamt)
4359 Residuallast

Die vollständige Liste steht in der einstellungen.ini.

Fehlerbehebung

Symptom Ursache Lösung
Verbindungstest: Timeout Firewall Schritt 4
"Keine Preise für morgen" Vor 13:00 ausgeführt Um 13:30 nochmal starten
Port belegt Vorherige Instanz läuft Prozess beenden oder Port ändern
AV ändert sich nicht Höhere Priority aktiv Priority Array im Controller prüfen
Preis = -1.0 im Controller Kein SMARD-Preis für diese Stunde Normal an manchen Feiertagen

Lizenz

MIT License – siehe LICENSE

Datenquelle

SMARD – Strommarktdaten
Bundesnetzagentur, öffentlich zugänglich.

Anpassungen für dein Projekt

Bevor du das Repository verwendest, passe folgende Dateien an:

  1. config/einstellungen.ini – Alle IP-Adressen und AV-Nummern
  2. setup_guide/02_INSTALLATION.md – Pfade falls du einen anderen Installationsort wählst
  3. setup_guide/05_AUTOMATISIERUNG.md – Task Scheduler Pfade anpassen

About

SMARD-BACnet Gateway - Strompreise in die Gebäudeautomation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages