← Back to Portfolio
Persönliches ProjektN/AN/A

Mehrzonen-Heizungsmanagementsystem

Loading...

Ein produktionsreifes Mehrzonen-Gebäudeheizungsmanagementsystem, das Heizung über mehrere Gebäudezonen mit Modbus TCP-Protokoll simuliert und steuert. Das System verfügt über verteilte Zonen-Simulatoren, einen zentralen FastAPI-Steuerungsserver mit intelligenter Planung, wetterbewusster Optimierung und umfassender Datenprotokollierung. Dieses Projekt demonstriert industrielle Automatisierungsmuster, Protokoll-Integration und skalierbare Gebäudemanagementsystem-Architektur. (GitHub)

Architekturübersicht

Das System implementiert eine verteilte Steuerungsarchitektur mit Zonen-Level-Geräten und zentralisierter Intelligenz:

1. Zonen-Simulatoren (Modbus TCP-Server)

  • Zweck: Simuliert individuelle Thermostat-Geräte für jede Gebäudezone
  • Funktionalität:
    • Modbus TCP-Server: Jede Zone läuft ein unabhängiges Python-Skript, das Modbus-Register exponiert
    • Exponierte Register:
      • Aktuelle Temperatur (nur lesen)
      • Ziel-/Sollwert-Temperatur (lesen/schreiben)
      • Belegungsstatus (nur lesen)
      • Heizungszustand (EIN/AUS, nur lesen)
    • Simulationslogik:
      • Temperaturschwankungen basierend auf Heizungszustand und Außenbedingungen
      • Belegungsänderungen (simulierte Anwesenheits-/Abwesenheitsmuster)
      • Heizungsreaktion auf Sollwertänderungen
    • HTTP-Status-Reporting: Sendet periodisch Zonen-Status (Sensorwerte, Zustand) an zentralen Server via REST API
    • Modbus-Protokoll: Branchenübliches Modbus TCP/IP für Gebäudeautomatisierungs-Kompatibilität

2. Zentraler Steuerungsserver (FastAPI)

  • Framework: FastAPI für hochperformante Async-API-Endpoints
  • API-Endpoints:
    • POST /zones/{zone_id}/data: Empfängt Status-Updates von Zonen-Simulatoren
    • GET /zones/{zone_id}: Abfrage aktuellen Zonen-Status und Konfiguration
    • GET /zones/{zone_id}/history: Abruf historischer Zonendaten
    • GET /zones: Liste aller Zonen und ihrer aktuellen Zustände
    • POST /zones/{zone_id}/setpoint: Manuell Zieltemperatur setzen (Override)
  • Datenpersistenz:
    • SQLAlchemy ORM für Datenbankabstraktion
    • SQLite-Datenbank speichert:
      • Zonen-Konfigurationen (ID, Name, Standort)
      • Sensorwerte (Zeitstempel, Temperatur, Belegung)
      • Steuerungsbefehle (Sollwertänderungen, Zeitstempel)
      • Historische Trends zur Analyse
  • Datenbankschema: Normalisierte Tabellen für Zonen, Werte und Befehle mit Foreign-Key-Beziehungen

3. Intelligente Steuerungslogik (APScheduler)

  • Planungsframework: APScheduler für periodische Task-Ausführung
  • Steuerungsschleife (Geplante Aufgabe):
    • Frequenz: Läuft in konfigurierbaren Intervallen (z.B. alle 5 Minuten)
    • Datensammlung:
      • Ruft aktuellen Status von allen Zonen via Datenbank ab
      • Ruft Wettervorhersagedaten von externer API ab
    • Entscheidungslogik:
      • Belegungsbasiert: Höherer Sollwert für belegte Zonen, niedriger für unbelegte
      • Wetter-adaptiv: Passt Sollwerte basierend auf Außentemperatur an
      • Energieoptimierung: Reduziert Heizung in unbelegten Zonen
      • Komfortoptimierung: Hält komfortable Temperaturen in belegten Zonen
    • Modbus-Kommunikation:
      • Liest aktuelle Zieltemperaturen von Zonengeräten via Modbus TCP
      • Vergleicht mit berechneten optimalen Sollwerten
      • Schreibt neue Sollwerte zu Zonen, wenn Anpassung nötig
    • Befehlsprotokollierung: Protokolliert alle Steuerungsentscheidungen mit Zeitstempeln und Begründung

4. Modbus TCP-Client

  • Bibliothek: pymodbus oder ähnliche Python-Modbus-Bibliothek
  • Funktionalität:
    • Stellt TCP-Verbindungen zu Zonen-Simulatoren her
    • Liest Holding-Register (aktuelle Temp, Sollwert, Belegung, Heizungszustand)
    • Schreibt Holding-Register (Zieltemperatur-Updates)
    • Fehlerbehandlung für Verbindungsausfälle und Timeouts
    • Verbindungspooling für effiziente Multi-Zonen-Kommunikation

5. Wetter-Integration

  • Externe API: Wetterservice (z.B. OpenWeatherMap, WeatherAPI.com)
  • Verwendete Daten:
    • Außentemperatur
    • Vorhersagedaten für prädiktive Steuerung
  • Integration: HTTP-Requests via Python Requests-Bibliothek
  • Caching: Wetterdaten gecacht, um API-Aufrufe zu reduzieren

Technologie-Stack

Backend-Framework

  • FastAPI: Modernes, schnelles Python-Web-Framework mit automatischer OpenAPI-Dokumentation
  • Async/Await: Non-blocking I/O für gleichzeitige Zonen-Kommunikation
  • Pydantic-Modelle: Datenvalidierung und Serialisierung

Industrielle Protokolle

  • Modbus TCP/IP: Branchenübliches Protokoll für Gebäudeautomatisierung und industrielle Steuerung
  • pymodbus: Python-Bibliothek für Modbus-Kommunikation (Client und Server)
  • Protokoll-Vorteile:
    • Weitgehend unterstützt von HVAC-Geräten
    • Standardisierte Register-Mapping
    • Zuverlässige industrielle Kommunikation

Task-Planung

  • APScheduler: Advanced Python Scheduler für periodische und Cron-ähnliche Tasks
  • Features:
    • Cron-Style-Planung
    • Intervall-basierte Ausführung
    • Job-Persistenz (optional)
    • Verteilte Planungsunterstützung

Datenbank & ORM

  • SQLite: Leichtgewichtige eingebettete Datenbank (kann für Produktion auf PostgreSQL upgraden)
  • SQLAlchemy: Python ORM für Datenbankoperationen
  • Alembic: Datenbank-Migrations-Tool (falls verwendet)
  • Vorteile:
    • ACID-Compliance
    • Relationale Datenintegrität
    • Abfrageoptimierung
    • Einfache Migration zu Produktionsdatenbanken

Externe Services

  • Wetter-API: REST API für Echtzeit- und Vorhersage-Wetterdaten
  • Requests-Bibliothek: HTTP-Client für API-Aufrufe

Entwicklungstools

  • Python-Logging: Strukturiertes Logging für Debugging und Monitoring
  • Umgebungsvariablen: Konfigurationsverwaltung
  • Type Hints: Python-Typ-Annotationen für bessere Codequalität

System-Workflow

1. Initialisierungsphase

  • Zentraler Server startet FastAPI-Anwendung
  • Datenbank initialisiert mit Zonen-Konfigurationen
  • APScheduler startet Steuerungsschleifen-Job
  • Zonen-Simulatoren starten Modbus TCP-Server
  • Zonen registrieren sich bei zentralem Server via HTTP

2. Kontinuierlicher Betrieb

  • Zonen-Reporting:
    • Zonen senden periodisch Status-Updates an zentralen Server
    • Updates beinhalten: Temperatur, Belegung, Heizungszustand
    • Daten in SQLite-Datenbank gespeichert
  • Steuerungsschleife (Alle N Minuten):
    • APScheduler triggert Steuerungslogik
    • System ruft neueste Zonendaten aus Datenbank ab
    • Ruft aktuelle Wetterbedingungen ab
    • Berechnet optimale Sollwerte für jede Zone
    • Liest aktuelle Sollwerte von Zonen via Modbus
    • Vergleicht und aktualisiert Sollwerte falls nötig
    • Protokolliert alle Steuerungsentscheidungen
  • Modbus-Kommunikation:
    • Zentraler Server verbindet sich mit jeder Zone via Modbus TCP
    • Liest aktuelle Zustandsregister
    • Schreibt neue Sollwert-Register, wenn Anpassungen nötig

3. Zonen-Reaktion

  • Zonen empfangen Sollwert-Updates via Modbus
  • Heizungssysteme passen sich an, um neuen Sollwert zu erreichen
  • Temperatur ändert sich allmählich basierend auf Heizungskapazität
  • Aktualisierter Status im nächsten Zyklus gemeldet

Setup & Konfiguration

Voraussetzungen

  • Python 3.8+
  • pip Paketmanager
  • Netzwerkverbindung für Wetter-API

Installation

# Repository klonen git clone https://github.com/padawanabhi/building_heating_management_system.git cd building_heating_management_system # Virtuelle Umgebung erstellen python3 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # Abhängigkeiten installieren pip install -r requirements.txt # Umgebungsvariablen konfigurieren # .env-Datei erstellen mit: # WEATHER_API_KEY=your_api_key # DATABASE_URL=sqlite:///heating_system.db

System ausführen

# Terminal 1: Zonen-Simulatoren starten (mehrere Instanzen für mehrere Zonen) python zone_simulator.py --zone-id 1 --port 5020 python zone_simulator.py --zone-id 2 --port 5021 # Terminal 2: Zentralen Steuerungsserver starten python main.py # oder: uvicorn app:app --reload

Potenzielle Verbesserungen & Erweiterungen

1. Erweiterte Steuerungsalgorithmen

  • Model Predictive Control (MPC): Vorhersage zukünftiger Temperaturen und Optimierung von Sollwerten
  • Reinforcement Learning: Lernen optimaler Steuerungsstrategien durch Versuch und Irrtum
  • Fuzzy Logic Control: Umgang mit Unsicherheit und ungenauen Eingaben
  • PID-Controller: Pro-Zone-PID-Steuerung für präzise Temperaturregelung
  • Maschinelles Lernen: Vorhersage von Belegungsmustern und Vorheizen von Zonen

2. Skalierbarkeitsverbesserungen

  • Datenbank-Upgrade: Migration von SQLite zu PostgreSQL für Produktion
  • Message Queue: Hinzufügen von RabbitMQ oder Kafka für asynchrone Zonen-Kommunikation
  • Microservices: Aufteilen in separate Services (Zonen-Manager, Scheduler, API-Gateway)
  • Load Balancing: Verteilung der Zonen-Kommunikation über mehrere Worker
  • Caching-Layer: Redis für häufig abgerufene Zonendaten

3. Protokollverbesserungen

  • Modbus RTU-Support: Hinzufügen von seriellem Modbus für direkte Hardware-Verbindungen
  • BACnet-Integration: Branchenübliches Gebäudeautomatisierungsprotokoll
  • MQTT-Integration: Hinzufügen von MQTT für Cloud-Konnektivität und Remote-Monitoring
  • OPC UA: Moderner industrieller Kommunikationsstandard
  • REST API-Erweiterung: Umfassende REST API für alle Operationen

4. Benutzeroberfläche & Visualisierung

  • Web-Dashboard: React/Vue.js-Frontend für Echtzeit-Monitoring
  • Mobile App: Native oder PWA für mobile Steuerung
  • Historische Analytik: Erweiterte Diagramme und Trend-Analyse
  • Energie-Dashboards: Echtzeit-Energieverbrauchs-Tracking
  • Zonen-Karten: Visuelles Gebäudelayout mit Zonen-Status-Overlay
  • Alert-System: E-Mail/SMS-Benachrichtigungen für Anomalien

5. Energieoptimierung

  • Demand Response: Integration in Versorgungsunternehmen-Demand-Response-Programme
  • Time-of-Use-Optimierung: Anpassung basierend auf Strompreisen
  • Belegungslernen: ML-Modelle zur Vorhersage von Belegungsmustern
  • Prädiktive Vorheizung: Vorheizen von Zonen vor geplanter Belegung
  • Energiekosten-Tracking: Echtzeit-Kostenberechnung und Budget-Management

6. Integration & Interoperabilität

  • Building Management Systems (BMS): Integration mit bestehenden BMS-Plattformen
  • Smart Home-Plattformen: Home Assistant, OpenHAB, Domoticz
  • Cloud-Plattformen: AWS IoT, Azure IoT, Google Cloud IoT
  • API-Gateway: Bereitstellung standardisierter APIs für Drittanbieter-Integrationen
  • Webhooks: Event-getriebene Benachrichtigungen an externe Systeme

7. Monitoring & Observability

  • Prometheus-Metriken: System-Gesundheit, Zonen-Status, Steuerungsschleifen-Performance
  • Grafana-Dashboards: Echtzeit-Visualisierung und Alerting
  • Distributed Tracing: Verfolgung von Requests über Zonen und Services
  • Strukturiertes Logging: JSON-Logs für besseres Parsing und Analyse
  • Health Checks: Automatisiertes System- und Zonen-Gesundheits-Monitoring

8. Sicherheit & Compliance

  • Modbus-Sicherheit: Modbus über TLS für verschlüsselte Kommunikation
  • Authentifizierung: JWT-Tokens für API-Zugang
  • Autorisierung: Rollenbasierte Zugriffskontrolle (RBAC)
  • Audit-Logging: Umfassendes Audit-Trail aller Steuerungsaktionen
  • Netzwerksicherheit: VPN, Firewall-Regeln, Netzwerksegmentierung
  • Datenverschlüsselung: Verschlüsselung sensibler Daten im Ruhezustand

9. Erweiterte Features

  • Multi-Gebäude-Unterstützung: Heizung über mehrere Gebäude hinweg verwalten
  • Zonen-Gruppierung: Zonen für koordinierte Steuerung gruppieren
  • Zeitplan-Management: Zeitbasierte Zeitpläne mit Override-Fähigkeiten
  • Wartungsmodus: Temporäres Deaktivieren von Zonen für Wartung
  • Fehlererkennung: Automatische Erkennung von Sensor-/Geräteausfällen
  • Backup-Heizung: Fallback-Strategien für Geräteausfälle

10. Produktions-Deployment

  • Docker-Containerisierung: Containerisierung aller Komponenten
  • Docker Compose: Multi-Container-Orchestrierung
  • Kubernetes: Für großflächige Deployments
  • CI/CD-Pipeline: Automatisierte Tests und Deployment
  • High Availability: Redundanz und Failover-Mechanismen
  • Backup & Recovery: Automatisierte Datenbank-Backups

Anwendungsfälle

  • Kommerzielle Gebäude: Bürogebäude, Einzelhandelsflächen, Lagerhäuser
  • Wohnkomplexe: Wohngebäude, Eigentumswohnungen
  • Industrielle Einrichtungen: Fabriken, Lagerhäuser mit Klimakontrollbedarf
  • Bildungseinrichtungen: Schulen, Universitäten mit mehreren Gebäuden
  • Gesundheitseinrichtungen: Krankenhäuser, Kliniken mit präziser Klimakontrolle
  • Forschung & Entwicklung: Testen von Steuerungsalgorithmen und Optimierungsstrategien

Hauptvorteile

  • Skalierbarkeit: Einfaches Hinzufügen neuer Zonen ohne größere Architekturänderungen
  • Protokoll-Standard: Modbus gewährleistet Kompatibilität mit bestehenden HVAC-Geräten
  • Intelligente Steuerung: Wetter- und belegungsbewusste Optimierung
  • Datengetrieben: Historische Daten ermöglichen Analyse und kontinuierliche Verbesserung
  • Produktionsreif: FastAPI, SQLAlchemy und APScheduler sind bewährte Technologien
  • Erweiterbar: Modulares Design ermöglicht einfaches Hinzufügen neuer Features

(View on GitHub)

Follow Me