SIA 180 Thermal Comfort
Quellcode: github.com/NousWorksHQ/sia180-thermal-comfort
// ÜBERSICHT & ZWECK
Das SIA 180 Thermal Comfort Tool visualisiert den thermischen Raumkomfort gemäss dem Schweizer Standard SIA 180:2014 (Wärme- und Feuchteschutz, Raumklima). Es richtet sich an Architekten, Bauphysiker und alle, die den Komfort in Gebäuden analysieren und kommunizieren müssen.
Die App beantwortet die Frage: Liegt die Raumtemperatur in einem Gebäude innerhalb der Komfortgrenzen, die der Standard SIA 180 vorgibt?
Hintergrund: SIA 180 definiert Komfortgrenzen abhängig vom 48-Stunden-Mittel der Aussentemperatur. Damit werden sowohl Heiz- als auch Kühlgrenzen adaptiv – je nach Aussenklima gelten unterschiedliche Anforderungen. Diese Norm ist für die Schweizer Bauwirtschaft verbindlich relevant.
// TECHNISCHER AUFBAU
Stack
| Technologie | Version | Rolle |
|---|---|---|
| Python | ≥ 3.9 | Laufzeitumgebung |
| pandas | ≥ 2.0 | Datenverarbeitung, CSV-Import |
| numpy | ≥ 1.24 | Numerische Berechnungen |
| plotly | ≥ 5.18 | Interaktive Browser-Visualisierung |
Architektur
Das Projekt ist als Python-Bibliothek mit vier Kern-Funktionen aufgebaut:
sia180-thermal-comfort/├── requirements.txt├── example.py # Lauffähiges Beispiel mit Demo-Daten└── [modulname].py # Kern-Bibliothek ├── parse_room_temp_csv() # Raumtemperaturen einlesen ├── parse_outdoor_temp_csv() # Aussentemperaturen einlesen ├── compute_comfort_data() # 48h-Mittel & Komfortgrenzen berechnen └── plot_sia180() # Plotly-Chart generierenBerechnungslogik:
- Aussentemperaturen werden zu einem gleitenden 48-Stunden-Mittel aggregiert
- Gegen diesen Wert werden drei Grenzlinien aus SIA 180 berechnet:
- Heiz-Sollwert (untere Komfortgrenze)
- Passive Kühlgrenze
- Aktive Kühlgrenze
- Raumtemperaturpunkte werden gegen diese Grenzen geplottet
- Datenpunkte werden nach Jahreszeit eingefärbt (Winter, Frühling, Sommer, Herbst)
CSV-Format
Die App erwartet strukturierte CSV-Dateien. Das Format ist im Repository dokumentiert.
# Raumtemperatur-CSV (vereinfacht)timestamp;room_temp_C2024-01-01 00:00;21.32024-01-01 01:00;21.1...
# Aussentemperatur-CSV (vereinfacht)timestamp;outdoor_temp_C2024-01-01 00:00;-2.1...// INSTALLATION & NUTZUNG
- Python 3.9 oder neuer
- pip (Python-Paketmanager)
python3 --version # sollte ≥ 3.9 ausgebenpip --versiongit clone https://github.com/NousWorksHQ/sia180-thermal-comfort.gitcd sia180-thermal-comfort
# Abhängigkeiten installieren:pip install -r requirements.txtpython example.pyDas Beispiel erzeugt einen interaktiven Plotly-Chart im Browser mit Demo-Daten.
from sia180 import ( parse_room_temp_csv, parse_outdoor_temp_csv, compute_comfort_data, plot_sia180)
room_df = parse_room_temp_csv('mein_raum.csv')outdoor_df = parse_outdoor_temp_csv('aussentemp.csv')comfort = compute_comfort_data(room_df, outdoor_df)
fig = plot_sia180(comfort)fig.show() # Browser-Vorschaufig.write_html('output.html') # Als Datei speichern// BESONDERHEITEN & ENTSCHEIDUNGEN
Normbindung: Die Komfortgrenzen sind direkt aus dem Text der Norm SIA 180:2014 abgeleitet. Alle Berechnungen sind nachvollziehbar und referenzieren die jeweiligen Normabschnitte.
Plotly statt Matplotlib: Die Wahl von Plotly ermöglicht interaktive Charts im Browser – Nutzer können zoomen, einzelne Datenpunkte hovern und Saisonen ein-/ausblenden. Das erleichtert die Kommunikation der Ergebnisse in Berichten und Präsentationen.
Pandas ≥ 2.0: Das Projekt nutzt bewusst die aktuelle pandas-API (keine veralteten .append()-Methoden). Dies minimiert Deprecation-Warnungen und ist zukunftssicher.
MIT-Lizenz: Das Tool kann frei in kommerzielle Analyseprojekte eingebunden werden.