Heizflächenauslegung (Sizing)
⚠ Richtwerte — nicht verbindlich
Die Ergebnisse dieser Seite sind Richtwerte nach vereinfachter EN 442 / EN 1264. Sie helfen einem Planer, zu prüfen, ob ein gewähltes Heizflächensystem die berechnete Heizlast prinzipiell decken kann. Sie ersetzen keine verbindliche Planung und kein Herstellerdatenblatt. Vor der Beschaffung sind die tatsächlichen Produktkennwerte zu konsultieren.
Jedes Ergebnis, das die App ausliefert — auf der Seite, im CSV-, im Excel- und im Print-Export — trägt diesen Hinweis sichtbar in sich.
Was das Feature leistet
Nachdem die DIN-EN-12831-Heizlast pro Raum berechnet ist (Φ_HL), beantwortet
die Auslegung eine einzige Frage:
Deckt die hier gewählte Heizfläche den Bedarf des Raums bei der konfigurierten Vor-/Rücklauftemperatur?
Pro Raum können mehrere Varianten parallel gehalten und verglichen werden (z.B. Heizkörper vs. FBH). Genau eine ist aktiv und landet im Protokoll.
Umfang (MVP)
| Strategie | Status | Norm-Grundlage |
|---|---|---|
| Heizkörper | ausgeliefert | EN 442 — Log-Mittel-ΔT, n-Exponent-Korrektur |
| Fußbodenheizung (FBH) | ausgeliefert | EN 1264 — q gegen Oberflächentemperatur-Grenze |
| Wandheizung | folgt | EN 1264-3 |
| Deckenheizung | folgt | EN 1264-3 |
| Handtuchheizkörper | folgt | EN 442 (n ≈ 1.1) |
Nicht ausgelieferte Strategien erscheinen im „+ Variante hinzufügen"-Menü sichtbar aber deaktiviert mit Tooltip „Noch nicht implementiert" — keine stillen Lücken, kein toter Code.
Bedienung
1. Auslegung-Tab im Raum öffnen
Jede Raumkarte der Heizlast-Seite hat zwei Tabs: Flächen (Standard) und Auslegung. Wechsel ersetzt den jeweils anderen Inhalt im DOM — so bleibt die Seite auch bei 200 Räumen übersichtlich.

Der Richtwerte-Hinweis ist immer sichtbar. Der erste Besuch synthetisiert eine Default-Variante entsprechend dem in den Presets gewählten „Bevorzugtes System" (Default: FBH).
2. Varianten vergleichen
Über „+ Variante hinzufügen" lassen sich zusätzliche Auslegungsvarianten
erzeugen. Beide werden gleichzeitig gerechnet und nebeneinander angezeigt —
mit grüner ✓-Deckung oder oranger ✗-Warnung.

Nicht-ausgelieferte Typen sind im Menü deaktiviert und tragen den Grund:

3. Heizkörper-Auswahl inline
Typ, Höhe und Länge werden aus dem Katalog gewählt; die gelieferte Leistung aktualisiert live beim Ändern. ΔT_ln wird im Hintergrund nach EN 442 korrigiert und der Exponent aus dem Katalogeintrag genutzt.
4. FBH-Grenzen-Warnung
Übersteigt q = Φ_HL / (A_floor · f_aktiv) die Oberflächentemperatur-Grenze
(100 W/m² Wohnraum, 175 W/m² Bad), wird das Ergebnis mit einer deutlich
sichtbaren Warnung geflagt und eine Zusatzheizfläche empfohlen.

5. Aktive Variante
Das Radio-Steuerelement links wählt die „aktive" Variante pro Raum. Nur die aktive Variante erscheint im Druckprotokoll und in der Auslegungs-Zeile der CSV-/Excel-Exporte.
Presets
Die systemweiten Parameter liegen im Presets-Tab unter „Systemtemperatur & Auslegung":

| Feld | Standard | Einheit | Bemerkung |
|---|---|---|---|
| θ_V — Vorlauftemperatur | 55 | °C | WP-Ära; 75 bei Bestand |
| θ_R — Rücklauftemperatur | 45 | °C | |
| Bevorzugtes System | ufh | — | Default für neue Räume: ufh/radiator |
| Heizkörper-Default-Typ | Type 22 | — | Katalog-Eintrag |
| Heizkörper-Exponent n | 1.3 | — | EN 442 typisch |
| FBH-Grenze Wohnraum | 100 | W/m² | 29 °C Oberflächentemp. · EN 1264 |
| FBH-Grenze Bad | 175 | W/m² | 35 °C Oberflächentemp. |
| FBH-Wirksame Fläche | 0.9 | — | Möblierungsabschlag |
Änderungen werden bei Blur gespeichert; die Auslegung-Tabs rechnen direkt nach.
Formeln
Heizkörper (EN 442)
ΔT_ln = (θ_V − θ_R) / ln((θ_V − θ_int) / (θ_R − θ_int))
f_corr = (ΔT_ln / 49.83)^n
Φ_delivered = K_m · f_corr mit K_m = K_m,m² · H · L
49.83 K ist der EN-442-Referenzwert bei 75/65/20 °C.
Für eine Wärmepumpe mit 55/45 °C bei Raum-Ti = 20 °C ist ΔT_ln ≈ 29.7 K,
f_corr ≈ 0.51 und ein benötigter Heizkörper muss ≈ 1.96× so groß sein wie
bei altgedachten 75/65 — das ist die häufigste Ursache für unterdimensionierte
Bestandskörper in WP-Sanierungen.
Fußbodenheizung (EN 1264 vereinfacht)
A_eff = A_floor · f_aktiv
q_erf = Φ_HL / A_eff
Φ_delivered = min(Φ_HL, q_cap · A_eff)
covers_load = Φ_delivered ≥ Φ_HL
q_cap ist ufh_cap_living_w_m2 (Default 100 W/m²) oder
ufh_cap_bath_w_m2 (Default 175 W/m²), je nach Raum-Nutzungstyp.
Robustheit gegen Müll-Eingaben
Jede Strategie liefert immer ein konsistentes Ergebnis-Dict mit denselben Schlüsseln — auch bei NaN/Inf, Null-Fläche, θ_V ≤ θ_i, unbekanntem Typ. Fehler erscheinen als Warnungen, nie als Ausnahmen oder NaN-Lecks.
Abgedeckte Fälle (siehe tests/test_sizing_unit.py):
- θ_V ≤ θ_i, θ_V = θ_i, θ_i > θ_V
- Vorlauf ≤ Rücklauf (kein Temperaturabfall)
- Exponent n außerhalb 0.5 – 2.5
- Katalog-Typ oder -Dimensionen unbekannt
- Grundfläche = 0 oder negativ
- Unbekannter Raumtyp (→ Wohnraum-Grenze + Warnung)
- f_aktiv außerhalb (0, 1] → auf 0.9 geklemmt
- Φ_HL ≤ 0 → „Kein Heizbedarf" (trivial gedeckt)
- 1000 zufällige Fuzz-Eingaben → alle Ergebnisse finit
Exporte
Das bestehende Export-Menü bringt die Auslegung automatisch mit:
CSV — nach den Flächen-Zeilen folgt eine Sektion # Auslegung mit einer
Zeile pro Variante (Geschoss, Raum, Typ, aktiv ja/nein, Φ_HL, Φ_geliefert,
Deckung %, Parameter, Hinweise), gerahmt vom Richtwerte-Hinweis.
XLSX — zusätzliches Arbeitsblatt „Auslegung" hinter „Flächen"; Zeile 1 ist der Richtwerte-Hinweis als gelbe Banner-Zelle (gemerged), Zeile 2 die Spaltenüberschriften.
Druck/PDF — pro Raum eine Auslegung-Zeile unter der Flächen-Tabelle.
API
Siehe API-Endpoints.
Speicherung
<stem>.sizing.json— Kandidaten pro Raum + aktive Variante.<stem>.heizlast_presets.json— Schema v2, enthält densizing-Block. v1-Dateien werden beim ersten Lesen automatisch migriert (Defaults befüllt, Datei re-geschrieben).
Die Kandidaten überleben Heizlast-Änderungen (θ_e-Anpassungen,
Flächenkorrekturen); lediglich die gelieferten Leistungen werden neu gerechnet.
GlobalIds, die aus dem IFC verschwinden, werden aufgeräumt und in
dropped_candidate_ids zurückgegeben.
Tests
tests/test_sizing_unit.py— 53 Unit-Tests, inkl. Fuzz-Finitheit über 1000 zufällige Eingaben.tests/test_sizing_e2e.py— 25 Integrations-Tests via Flask-Test-Client (Bundle-Shape, CRUD, Cache-Invalidation, Flow-Temp-Shift, UFH-Überlastung, Presets-v1→v2-Migration, Export-Integration, Perf-Budget <200 ms).tests/test_sizing_ui.py— 12 Playwright-Tests (Tab-Switch + DOM-Detach, Add-Menü mit deaktivierten Stubs, Katalog-Live-Update, Disclaimer-Chip, Presets-Save).
Zum Nachvollziehen der EN-442-Berechnung: der Test
test_flow_temp_shift_from_75_65_to_55_45_scales_required_k_m leitet den
Korrekturfaktor direkt aus der Formel ab (keine Magic Numbers) und prüft, dass
die benötigte Norm-Leistung beim Wechsel von 75/65 auf 55/45 um den Faktor
≈ 1.96 steigt.
Zukünftige Erweiterungen (bewusst außerhalb des MVPs)
- Produkt-Katalog (Kermi / Buderus / Purmo) — Loader-Seam ist vorhanden.
- Wand-, Decken- und Handtuch-Strategien (EN 1264-3 und EN 442 Towel-Rail).
- Hydraulischer Abgleich / Pumpenauslegung / Rohrabstand-Berechner.
- Rückschreiben der gewählten Auslegung als
Pset_Sizingin die IFC. - Kühlbetrieb (EN 1264-5).