Textkommentare eingefügt

This commit is contained in:
Jens Cornelsen
2025-08-03 22:40:10 +02:00
parent 0335aa556f
commit d9db1e3f03
2 changed files with 68 additions and 28 deletions

View File

@@ -13,12 +13,12 @@ export const createCaller = createCallerFactory({
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),

View File

@@ -25,30 +25,34 @@ export function BedarfsausweisWohnen_18599(
// Tabelle A.5 — Gebäude Berechnung Wärmetransferkoeffizienten
// Definition Variablen (Konstanten)
// Definition Variablen (Konstanten von DIN Vorgegeben)
const minimaleAussentemperatur = -12;
const innenTemperatur = 20;
const DeckenStaerke = 0.2;
const WaermeBrueckenZuschlag = 0.03;
const GeschossHoehe = ausweis.geschosshoehe;
const NettoGrundflaeche = aufnahme.nutzflaeche;
const ObjektBruttoVolumen = ausweis.volumen;
// Wir rechnen mit Wärmebrückenzuschlag von 0,1 da kein Gleichwertigkeitsnachweis vorliegt und die Wärmebrücken nicht individuell berechnet werden
const WaermeBrueckenZuschlag = 0.10;
// Von DIN vorgegeben wird in der Regel nicht verändert
const teilBeheizung = "mit Teilbeheizung";
const GeschossHoehe = ausweis.geschosshoehe; // aus Eingabeformular Abschnitt C
const NettoGrundflaeche = aufnahme.nutzflaeche; // aus Eingabeformular Abschnitt B
const ObjektBruttoVolumen = ausweis.volumen; // aus Eingabeformular Abschnitt C
const LichteRaumHoehe = (GeschossHoehe ?? 0) - DeckenStaerke;
const ObjektNettoVolumen = (NettoGrundflaeche ?? 0) * LichteRaumHoehe;
const WohnEinheiten = aufnahme.einheiten || 1;
const WohnEinheiten = aufnahme.einheiten || 1; // aus Eingabe
const maximaleTemperaturDifferenz = innenTemperatur - minimaleAussentemperatur;
const teilBeheizung = "mit Teilbeheizung"; // TODO: Standardwert, Hier sollte der Wert aus dem Formular kommen
// PLanungswerte aus Eingabeformular
const planungswerte_bauteil = ausweis.planungswerte_bauteil;
const planungswerte_bauteil = ausweis.planungswerte_bauteil; // aus Eingabeformular Abschnitt F
let FaktorNettoVolumen = 0.76;
// Berechnung
let FaktorNettoVolumen = 0.76; // Zuweisung damit nicht null
// Berechnung für Tabelle A.5 Wärmetransferkoeffizienten
if (WohnEinheiten < 3) { FaktorNettoVolumen = 0.76; } else { FaktorNettoVolumen = 0.8; }
const ObjektNettoVolumenAlternativ = ObjektBruttoVolumen * FaktorNettoVolumen;
@@ -80,14 +84,13 @@ export function BedarfsausweisWohnen_18599(
+ WaermeTransferKoeffizientWaeremebruecken;
const maximalerWaermestromBauteile = WaermeTransferKoeffizientBauteile * maximaleTemperaturDifferenz;
// Ende Wärmetransferkoeffizienten
// Ende Berechnung für Tabelle A.5 Wärmetransferkoeffizienten
//
// Formblatt A.6 Gebäude maximaler Wärmeströme
// Zuweisung damit nicht null
let GesamtLuftwechselN = 0;
let FaktorWin2 = 0;
let WaermeTransferKoeffizientLueftungN = 0;
let maximalerWaermestromLueftungN = 0;
@@ -95,7 +98,6 @@ export function BedarfsausweisWohnen_18599(
let maximalerWaermestromGesamt = 0;
let mechanischeLueftung = "";
let maximaleHeizlast = 0;
let FlaechgenbezogeneHeizlast = 0;
let GebaeudeSchwere = 0;
let ZeitKonstante = 1;
@@ -103,10 +105,11 @@ export function BedarfsausweisWohnen_18599(
// Aus Tabelle 12 - Ausgabe der Werte aus datasetGesamtluftWechselKorrekturfaktorT12T13
// Standardwerte
// Zuweisung damit nicht null
let GesamtLuftwechselN0 = 0;
let LuftwechselAnlage = 0;
// Beispielwerte - Hier muss noch ein Abschnitt im Eingabeformular erstellt werden - UMBE
let LuftDichtheit = "KategorieImitGeplanterDichtheitspruefung";
let LueftungsArt = "FensterundInfiltration";
let LueftungsAnlage = "Abluftanlage";
@@ -128,7 +131,7 @@ export function BedarfsausweisWohnen_18599(
LuftwechselAnlage = gefilterteWerte[0].LuftwechselAnlage;
}
// Konstante
// Konstante aus DIN
const WaermeKapazitaet = 0.34;
@@ -153,10 +156,10 @@ export function BedarfsausweisWohnen_18599(
// Aus Tabelle 13 - Ausgabe der Werte aus datasetGesamtluftWechselKorrekturfaktorT12T13
// Standardwerte
// Damit nicht null um Fehlermeldung in Berechnung zu vermeiden
let FaktorWin1 = 0;
FaktorWin1 = gefilterteWerte[0]?.FaktorWin1 || 0; // Standardwert, falls kein Eintrag gefunden wird
FaktorWin1 = gefilterteWerte[0]?.FaktorWin1 || 0;
// Berechnung WaermeTransferKoeffizientGesamt und maximalerWaermestromGesamt
GesamtLuftwechselN = GesamtLuftwechselN0 * (1 - FaktorWin1 + FaktorWin1 * FaktorWin2);
@@ -179,8 +182,14 @@ export function BedarfsausweisWohnen_18599(
// Berechnung der flächenbezogenen Heizlast
FlaechgenbezogeneHeizlast = maximaleHeizlast / NettoGrundflaeche;
// Berechnung der Zeitkonstante (Gebäudeschwere 130 aus Planung)
GebaeudeSchwere = 130;
// Berechnung der Zeitkonstante
// Standardwert - Hier muss noch ein Abschnitt im Eingabeformular erstellt werden - UMBE
// leicht = 50
// mittelschwer = 90
// schwer = 130
GebaeudeSchwere = 90;
ZeitKonstante = GebaeudeSchwere * NettoGrundflaeche / WaermeTransferKoeffizientGesamt;
// Ende maximale Wärmeströme
@@ -249,7 +258,7 @@ export function BedarfsausweisWohnen_18599(
// Formblatt A8, A12 - Wärmesenken
// Wärmesenken
// Wärmesenken - Zuweisung damit nicht null und es keinen Fehler in der Berechnung gibt
let waermeSenken = {
Januar: 0,
Februar: 0,
@@ -339,7 +348,12 @@ export function BedarfsausweisWohnen_18599(
// Formblatt A8 - interne Wärmequellen
// Interne Wärmequellen
let WaermeQuellenBewohner = 45; // bis 2 Wohneinheiten sonst 90
// Wärmequelle Bewohner - Hier muss noch ein Abschnitt im Eingabeformular erstellt werden - UMBE
// bis 2 Wohneinheiten 45 sonst 90
// Standardwert
let WaermeQuellenBewohner = 45;
let TageMonat = {
Januar: 31,
@@ -448,9 +462,16 @@ export function BedarfsausweisWohnen_18599(
Dezember: belastungsgrade.Dezember / maxBelastungsgrad
};
// aus Eingabe (Tabelle 141): Verteilung und Erzeugung im beheizten Bereich, Speicherung im unbeheiztem Bereich - 55°C/45°C
// Beispielwert aus Eingabe (Tabelle 141): Verteilung und Erzeugung im beheizten Bereich, Speicherung im unbeheiztem Bereich - 55°C/45°C
let FaktorNutzbareWaerme = 0.055;
// Hier muss noch ein Abschnitt im Eingabeformular erstellt werden - UMBE
// Verteilung Heizung - im beiheizten Bereich, im unbeheizten Bereich
// Speicherung Heizung - im beheizten Bereich, im unbeheizten Bereich
// Erzeugung Heizung - im beheizten Bereich, im unbeheizten Bereich
// Vorlauftemperatur Heizung - 35°C/28°C, 55°C/45°C, 70°C/55°C, 90°C/70°C - siehe enum Auslegungstemperatur
// alte Eingabe - wird dann für neue Eingabe angepasst
if (speicherungWarmwasser === "zwwsith") {
if (verteilungHeizung === "zv5545von1979bis1994" || verteilungHeizung === "zv5545ngbis1978" || verteilungHeizung === "zv5545ab1995") {
FaktorNutzbareWaerme = 0.082;
@@ -537,8 +558,20 @@ export function BedarfsausweisWohnen_18599(
// Formblatt A10 - Nutzenergiebedarf Heizung
// Nutzenergiebedarf Heizung
let FaktorNutzbareWaermeTrinkwarmwasser = 1.554; // aus Eingabe (Tabelle 143): mit Zirkulation - Verteilung, Speicherung und Erzeugung im beheizten Bereich - 55°C/45°C
let FaktorNutzbareWaermeTrinkwarmwasser = 1.554; // Beispielwert aus Eingabe (Tabelle 143): mit Zirkulation - Verteilung, Speicherung und Erzeugung im beheizten Bereich - 55°C/45°C
// Hier muss noch ein Abschnitt im Eingabeformular erstellt werden - UMBE
// Warmwassererzeugung - zentral, dezentral
// Wird nur benötigt wenn zentral ausgewählt wurde:
// Verteilung Warmwasser - im beiheizten Bereich, im unbeheizten Bereich
// Verteilung Warmwasser - mit Zirkulation, ohne Zirkulation
// Speicherung Warmwasser - im beheizten Bereich, im unbeheizten Bereich
// Erzeugung Warmwasser - im beheizten Bereich, im unbeheizten Bereich
//
// alte Eingabe - wird dann für neue Eingabe angepasst
if (aufnahme.zirkulation === true) {
if (speicherungWarmwasser === "zwwsith") {
@@ -815,7 +848,7 @@ export function BedarfsausweisWohnen_18599(
let rechnerischeLaufzeiten = new Array(12).fill(0) as unknown as FixedLengthArray<number, 12>
if (gebaeudetyp === "Einfamilienhaus") {
if (WohnEinheiten < 3) {
for (let i = 0; i < 12; i++) {
rechnerischeLaufzeiten[i] = heizstunden[Object.keys(heizstunden)[i]] * faktorWochenendAbschaltung * zeitkonstanteRechnerischeLaufzeitEinfamilienhaus[i]
}
@@ -836,6 +869,13 @@ export function BedarfsausweisWohnen_18599(
anlass = ausweis.ausstellgrund;
let ZuschlagsFaktorErzeugung = 0;
// Hier müsste die Eingabe in Abschnitt D erweitert werden. Siehe auch enums sowie datasetKorrekturfaktorVerteilungT32 - UMBE
// Anlage siehe funktionKorrekturfaktorAufwandszahlenErzeugungHeizungT78
// rohrnetztyp wie in datasetKorrekturfaktorVerteilungT32
// ueberTemperatur wie in datasetKorrekturfaktorVerteilungT32
// verteilung wie in datasetKorrekturfaktorVerteilungT32
// LageVorlauf wie funktionKorrekturfaktorAufwandszahlenErzeugungHeizoelBrennwertT80
const PlanungswerteUebergabeVerteilungHeizung = [
{
Anlage: "Brennwertkessel - Gas- und Heizöl - von 1987 bis 1994",