diff --git a/src/astro-typesafe-api-caller.ts b/src/astro-typesafe-api-caller.ts index 56787424..262124be 100644 --- a/src/astro-typesafe-api-caller.ts +++ b/src/astro-typesafe-api-caller.ts @@ -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"), diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/BedarfsausweisWohnen_18599.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/BedarfsausweisWohnen_18599.ts index 3da2bebe..c052f56f 100644 --- a/src/lib/Berechnungen/BedarfsausweisWohnen/BedarfsausweisWohnen_18599.ts +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/BedarfsausweisWohnen_18599.ts @@ -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 - if (gebaeudetyp === "Einfamilienhaus") { + if (WohnEinheiten < 3) { for (let i = 0; i < 12; i++) { rechnerischeLaufzeiten[i] = heizstunden[Object.keys(heizstunden)[i]] * faktorWochenendAbschaltung * zeitkonstanteRechnerischeLaufzeitEinfamilienhaus[i] } @@ -835,7 +868,14 @@ export function BedarfsausweisWohnen_18599( // Planungswerte aus Eingabe, Tabellen 20, 21, 22, C12, 30, 31, 41, 49, 50, 51, 52, 53 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",