From 86bbb85b139c2875d241d2c496d60f8eb3e9f690 Mon Sep 17 00:00:00 2001 From: Jens Cornelsen <79703163+IB-Cornelsen@users.noreply.github.com> Date: Fri, 31 Jan 2025 22:08:58 +0100 Subject: [PATCH] Tabellen A9, A10 und A11 fertiggestellt --- ...uellenAnlagentechnikTrinkwarmwasser.svelte | 51 ++++++----- .../A11WaermequellenZusammenstellung.svelte | 91 ++++++++++--------- ...8WaermequellenAnlagentechnikHeizung.svelte | 2 +- ...A9NutzenergiebedarfTrinkwarmwasser.svelte} | 29 +++--- ...rmequellenAnlagentechnikTrinkwarmwasser.ts | 30 +++++- ...BerechnungWaermequellenZusammenstellung.ts | 72 ++++++++++++++- .../A12BerechnungNutzenergiebedarfHeizung.ts | 1 + ...rechnungWaermequellenSolareEinstrahlung.ts | 2 - ...ngWaermequellenAusAnlagentechnikHeizung.ts | 36 ++++---- ...echnungNutzenergiebedarfTrinkwarmwasser.ts | 33 ++++++- .../funktionInterneWaermequellen.ts | 44 +++++++++ .../DIN18599/berechnungstabellen/index.astro | 14 +-- 12 files changed, 285 insertions(+), 120 deletions(-) rename src/components/Tabellen/{A9Trinkwassererwaermung.svelte => A9NutzenergiebedarfTrinkwarmwasser.svelte} (88%) create mode 100644 src/lib/Berechnungen/BedarfsausweisWohnen/funktionInterneWaermequellen.ts diff --git a/src/components/Tabellen/A10WaermequellenAnlagentechnikTrinkwarmwasser.svelte b/src/components/Tabellen/A10WaermequellenAnlagentechnikTrinkwarmwasser.svelte index c76c663a..2559c555 100644 --- a/src/components/Tabellen/A10WaermequellenAnlagentechnikTrinkwarmwasser.svelte +++ b/src/components/Tabellen/A10WaermequellenAnlagentechnikTrinkwarmwasser.svelte @@ -36,7 +36,7 @@ (3) = fA-w
aus Tabelle 142 bzw. Tabelle 143 - + {result.FaktorNutzbareWaermeTrinkwarmwasser} @@ -46,75 +46,76 @@ Januar 31 - - + {Math.round(result.trinkwasserWaermebedarf.Januar)} + {Math.round(result.WaermeQuellenAnlagentechnikTrinkwarmwasser.Januar)} Februar 28 - - + {Math.round(result.trinkwasserWaermebedarf.Februar)} + {Math.round(result.WaermeQuellenAnlagentechnikTrinkwarmwasser.Februar)} März 31 - - + {Math.round(result.trinkwasserWaermebedarf.Maerz)} + {Math.round(result.WaermeQuellenAnlagentechnikTrinkwarmwasser.Maerz)} April 30 - - + {Math.round(result.trinkwasserWaermebedarf.April)} + {Math.round(result.WaermeQuellenAnlagentechnikTrinkwarmwasser.April)} Mai 31 - - + {Math.round(result.trinkwasserWaermebedarf.Mai)} + {Math.round(result.WaermeQuellenAnlagentechnikTrinkwarmwasser.Mai)} Juni 30 - - + {Math.round(result.trinkwasserWaermebedarf.Juni)} + {Math.round(result.WaermeQuellenAnlagentechnikTrinkwarmwasser.Juni)} Juli 31 - - + {Math.round(result.trinkwasserWaermebedarf.Juli)} + {Math.round(result.WaermeQuellenAnlagentechnikTrinkwarmwasser.Juli)} August 31 - - + {Math.round(result.trinkwasserWaermebedarf.August)} + {Math.round(result.WaermeQuellenAnlagentechnikTrinkwarmwasser.August)} September 30 - - + {Math.round(result.trinkwasserWaermebedarf.September)} + {Math.round(result.WaermeQuellenAnlagentechnikTrinkwarmwasser.September)} Oktober 31 - - + {Math.round(result.trinkwasserWaermebedarf.Oktober)} + {Math.round(result.WaermeQuellenAnlagentechnikTrinkwarmwasser.Oktober)} November 30 - - + {Math.round(result.trinkwasserWaermebedarf.November)} + {Math.round(result.WaermeQuellenAnlagentechnikTrinkwarmwasser.November)} Dezember 31 - - + {Math.round(result.trinkwasserWaermebedarf.Dezember)} + {Math.round(result.WaermeQuellenAnlagentechnikTrinkwarmwasser.Dezember)} + diff --git a/src/components/Tabellen/A11WaermequellenZusammenstellung.svelte b/src/components/Tabellen/A11WaermequellenZusammenstellung.svelte index ecc25f31..ee0a832c 100644 --- a/src/components/Tabellen/A11WaermequellenZusammenstellung.svelte +++ b/src/components/Tabellen/A11WaermequellenZusammenstellung.svelte @@ -19,8 +19,8 @@ (DIN V 18599-10:2018-09, Tabelle 4) (2) - - + {result.NettoGrundflaeche} + {result.WaermeQuellenBewohner} @@ -57,116 +57,117 @@ {result.TageMonat.Januar} {Math.round(result.interneWaermeQuellenProMonat.Januar*100)/100} {Math.round(result.summeErgebnisseJanuar*100)/100} - - - + {Math.round(result.WaermeQuellenAnlagentechnikGesamt.Januar)} + {Math.round(result.WaermeQuellenGesamt.Januar)} + {Math.round(result.WaermeQuellenGesamtLeistung.Januar)} Februar {result.TageMonat.Februar} {Math.round(result.interneWaermeQuellenProMonat.Februar*100)/100} {Math.round(result.summeErgebnisseFebruar*100)/100} - - - + {Math.round(result.WaermeQuellenAnlagentechnikGesamt.Februar)} + {Math.round(result.WaermeQuellenGesamt.Februar)} + {Math.round(result.WaermeQuellenGesamtLeistung.Februar)} März - {result.TageMonat.März} - {Math.round(result.interneWaermeQuellenProMonat.März*100)/100} + {result.TageMonat.Maerz} + {Math.round(result.interneWaermeQuellenProMonat.Maerz*100)/100} {Math.round(result.summeErgebnisseMaerz*100)/100} - - - + {Math.round(result.WaermeQuellenAnlagentechnikGesamt.Maerz)} + {Math.round(result.WaermeQuellenGesamt.Maerz)} + {Math.round(result.WaermeQuellenGesamtLeistung.Maerz)} April {result.TageMonat.April} {Math.round(result.interneWaermeQuellenProMonat.April*100)/100} {Math.round(result.summeErgebnisseApril*100)/100} - - - + {Math.round(result.WaermeQuellenAnlagentechnikGesamt.April)} + {Math.round(result.WaermeQuellenGesamt.April)} + {Math.round(result.WaermeQuellenGesamtLeistung.April)} Mai {result.TageMonat.Mai} {Math.round(result.interneWaermeQuellenProMonat.Mai*100)/100} {Math.round(result.summeErgebnisseMai*100)/100} - - - + {Math.round(result.WaermeQuellenAnlagentechnikGesamt.Mai)} + {Math.round(result.WaermeQuellenGesamt.Mai)} + {Math.round(result.WaermeQuellenGesamtLeistung.Mai)} Juni {result.TageMonat.Juni} {Math.round(result.interneWaermeQuellenProMonat.Juni*100)/100} {Math.round(result.summeErgebnisseJuni*100)/100} - - - + {Math.round(result.WaermeQuellenAnlagentechnikGesamt.Juni)} + {Math.round(result.WaermeQuellenGesamt.Juni)} + {Math.round(result.WaermeQuellenGesamtLeistung.Juni)} Juli {result.TageMonat.Juli} {Math.round(result.interneWaermeQuellenProMonat.Juli*100)/100} {Math.round(result.summeErgebnisseJuli*100)/100} - - - + {Math.round(result.WaermeQuellenAnlagentechnikGesamt.Juli)} + {Math.round(result.WaermeQuellenGesamt.Juli)} + {Math.round(result.WaermeQuellenGesamtLeistung.Juli)} August {result.TageMonat.August} {Math.round(result.interneWaermeQuellenProMonat.August*100)/100} {Math.round(result.summeErgebnisseAugust*100)/100} - - - + {Math.round(result.WaermeQuellenAnlagentechnikGesamt.August)} + {Math.round(result.WaermeQuellenGesamt.August)} + {Math.round(result.WaermeQuellenGesamtLeistung.August)} September {result.TageMonat.September} {Math.round(result.interneWaermeQuellenProMonat.September*100)/100} {Math.round(result.summeErgebnisseSeptember*100)/100} - - - + {Math.round(result.WaermeQuellenAnlagentechnikGesamt.September)} + {Math.round(result.WaermeQuellenGesamt.September)} + {Math.round(result.WaermeQuellenGesamtLeistung.September)} Oktober {result.TageMonat.Oktober} {Math.round(result.interneWaermeQuellenProMonat.Oktober*100)/100} {Math.round(result.summeErgebnisseOktober*100)/100} - - - + {Math.round(result.WaermeQuellenAnlagentechnikGesamt.Oktober)} + {Math.round(result.WaermeQuellenGesamt.Oktober)} + {Math.round(result.WaermeQuellenGesamtLeistung.Oktober)} November {result.TageMonat.November} {Math.round(result.interneWaermeQuellenProMonat.November*100)/100} {Math.round(result.summeErgebnisseNovember*100)/100} - - - + {Math.round(result.WaermeQuellenAnlagentechnikGesamt.November)} + {Math.round(result.WaermeQuellenGesamt.November)} + {Math.round(result.WaermeQuellenGesamtLeistung.November)} Dezember {result.TageMonat.Dezember} {Math.round(result.interneWaermeQuellenProMonat.Dezember*100)/100} {Math.round(result.summeErgebnisseDezember*100)/100} - - - + {Math.round(result.WaermeQuellenAnlagentechnikGesamt.Dezember)} + {Math.round(result.WaermeQuellenGesamt.Dezember)} + {Math.round(result.WaermeQuellenGesamtLeistung.Dezember)} + Jahressummen - - - - - + {Math.round(result.interneWaermeQuellenGesamt)} + {Math.round(result.summeErgebnisseGesamt)} + {Math.round(result.summeWaermeQuellenAnlagentechnikGesamt)} + {Math.round(result.summeWaermeQuellenGesamt)} + {Math.round(result.summeWaermeQuellenGesamtLeistung)} diff --git a/src/components/Tabellen/A8WaermequellenAnlagentechnikHeizung.svelte b/src/components/Tabellen/A8WaermequellenAnlagentechnikHeizung.svelte index 7507b0d9..d55a7d9c 100644 --- a/src/components/Tabellen/A8WaermequellenAnlagentechnikHeizung.svelte +++ b/src/components/Tabellen/A8WaermequellenAnlagentechnikHeizung.svelte @@ -32,7 +32,7 @@ $: result = A8BerechnungWaermequellenAusAnlagentechnikHeizung(); - + {result.FaktorNutzbareWaerme} diff --git a/src/components/Tabellen/A9Trinkwassererwaermung.svelte b/src/components/Tabellen/A9NutzenergiebedarfTrinkwarmwasser.svelte similarity index 88% rename from src/components/Tabellen/A9Trinkwassererwaermung.svelte rename to src/components/Tabellen/A9NutzenergiebedarfTrinkwarmwasser.svelte index 6068a865..898be879 100644 --- a/src/components/Tabellen/A9Trinkwassererwaermung.svelte +++ b/src/components/Tabellen/A9NutzenergiebedarfTrinkwarmwasser.svelte @@ -6,13 +6,14 @@ import { A9BerechnungNutzenergiebedarfTrinkwarmwasser } from "#lib/Berechnungen/BedarfsausweisWohnen/A9BerechnungNutzenergiebedarfTrinkwarmwasser.js"; - let trinkwasserWaermebedarf = 0, flaechenBezogenerWaermebedarf = 0, bezugsflaeche = 0 + let trinkwasserWaermebedarf = 0, flaechenBezogenerWaermebedarf = 0, bezugsflaeche = 0, trinkwasserWaermebedarfJahr = 0 $: { const result = A9BerechnungNutzenergiebedarfTrinkwarmwasser(ausweis, gebaeude_aufnahme) trinkwasserWaermebedarf = result.trinkwasserWaermebedarf flaechenBezogenerWaermebedarf = result.flaechenBezogenerWaermebedarf bezugsflaeche = result.bezugsflaeche + trinkwasserWaermebedarfJahr = result.trinkwasserWaermebedarfJahr } @@ -48,62 +49,62 @@ Januar 31 - {Math.round(trinkwasserWaermebedarf / 365 * 31)} + {Math.round(trinkwasserWaermebedarf.Januar)} Februar 28 - {Math.round(trinkwasserWaermebedarf / 365 * 28)} + {Math.round(trinkwasserWaermebedarf.Februar)} März 31 - {Math.round(trinkwasserWaermebedarf / 365 * 31)} + {Math.round(trinkwasserWaermebedarf.Maerz)} April 30 - {Math.round(trinkwasserWaermebedarf / 365 * 30)} + {Math.round(trinkwasserWaermebedarf.April)} Mai 31 - {Math.round(trinkwasserWaermebedarf / 365 * 31)} + {Math.round(trinkwasserWaermebedarf.Mai)} Juni 30 - {Math.round(trinkwasserWaermebedarf / 365 * 30)} + {Math.round(trinkwasserWaermebedarf.Juni)} Juli 31 - {Math.round(trinkwasserWaermebedarf / 365 * 31)} + {Math.round(trinkwasserWaermebedarf.Juli)} August 31 - {Math.round(trinkwasserWaermebedarf / 365 * 31)} + {Math.round(trinkwasserWaermebedarf.August)} September 30 - {Math.round(trinkwasserWaermebedarf / 365 * 30)} + {Math.round(trinkwasserWaermebedarf.September)} Oktober 31 - {Math.round(trinkwasserWaermebedarf / 365 * 31)} + {Math.round(trinkwasserWaermebedarf.Oktober)} November 30 - {Math.round(trinkwasserWaermebedarf / 365 * 30)} + {Math.round(trinkwasserWaermebedarf.November)} Dezember 31 - {Math.round(trinkwasserWaermebedarf / 365 * 31)} + {Math.round(trinkwasserWaermebedarf.Dezember)} @@ -113,7 +114,7 @@ Jahressumme Qw,b [kWh/a] - {trinkwasserWaermebedarf} + {Math.round(trinkwasserWaermebedarfJahr)} diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/A10BerechnungWaermequellenAnlagentechnikTrinkwarmwasser.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/A10BerechnungWaermequellenAnlagentechnikTrinkwarmwasser.ts index b0f59fc0..2e430f6f 100644 --- a/src/lib/Berechnungen/BedarfsausweisWohnen/A10BerechnungWaermequellenAnlagentechnikTrinkwarmwasser.ts +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/A10BerechnungWaermequellenAnlagentechnikTrinkwarmwasser.ts @@ -1,5 +1,31 @@ +import { A9BerechnungNutzenergiebedarfTrinkwarmwasser } from "#lib/Berechnungen/BedarfsausweisWohnen/A9BerechnungNutzenergiebedarfTrinkwarmwasser.js"; +import { BedarfsausweisWohnenClient, GebaeudeAufnahmeClient } from "#components/Ausweis/types.js"; +/** + * Implementierung Tabelle A10 + * + * @see 18599-Tabellenverfahren-Wohngebaeude.pdf + * @export + * @param {BedarfsausweisWohnenClient} ausweis + * @param {GebaeudeAufnahmeClient} gebaeude_aufnahme + */ +export function A10BerechnungWaermequellenAnlagentechnikTrinkwarmwasser(ausweis: BedarfsausweisWohnenClient, gebaeude_aufnahme: GebaeudeAufnahmeClient) { -export function A10BerechnungWaermequellenAnlagentechnikTrinkwarmwasser() { - + const result = A9BerechnungNutzenergiebedarfTrinkwarmwasser(ausweis, gebaeude_aufnahme); + const trinkwasserWaermebedarf = result.trinkwasserWaermebedarf; + + const FaktorNutzbareWaermeTrinkwarmwasser = 1.554; // aus Eingabe (Tabelle 143): mit Zirkulation - Verteilung, Speicherung und Erzeugung im beheizten Bereich - 55°C/45°C + const WaermeQuellenAnlagentechnikTrinkwarmwasser = Object.keys(trinkwasserWaermebedarf).reduce((acc: { [key: string]: number }, month) => { + acc[month] = trinkwasserWaermebedarf[month] * FaktorNutzbareWaermeTrinkwarmwasser; + return acc; + }, {}); + + return { + + trinkwasserWaermebedarf, + FaktorNutzbareWaermeTrinkwarmwasser, + WaermeQuellenAnlagentechnikTrinkwarmwasser + + } + } \ No newline at end of file diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/A11BerechnungWaermequellenZusammenstellung.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/A11BerechnungWaermequellenZusammenstellung.ts index dbb500b4..5a39400b 100644 --- a/src/lib/Berechnungen/BedarfsausweisWohnen/A11BerechnungWaermequellenZusammenstellung.ts +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/A11BerechnungWaermequellenZusammenstellung.ts @@ -1,4 +1,7 @@ import { A7A2BerechnungWaermequellenSolareEinstrahlung } from "#lib/Berechnungen/BedarfsausweisWohnen/A7A2BerechnungWaermequellenSolareEinstrahlung.js"; +import { A8BerechnungWaermequellenAusAnlagentechnikHeizung } from "#lib/Berechnungen/BedarfsausweisWohnen/A8BerechnungWaermequellenAusAnlagentechnikHeizung.js"; +import { A10BerechnungWaermequellenAnlagentechnikTrinkwarmwasser } from "#lib/Berechnungen/BedarfsausweisWohnen/A10BerechnungWaermequellenAnlagentechnikTrinkwarmwasser.js"; +import { result } from "node_modules/cypress/types/lodash/index.js"; export function A11BerechnungWaermequellenZusammenstellung() { @@ -16,6 +19,34 @@ export function A11BerechnungWaermequellenZusammenstellung() { const summeErgebnisseNovember = einstrahlung.summeErgebnisseNovember; const summeErgebnisseDezember = einstrahlung.summeErgebnisseDezember; + const summeErgebnisseGesamt = summeErgebnisseJanuar + summeErgebnisseFebruar + summeErgebnisseMaerz + + summeErgebnisseApril + summeErgebnisseMai + summeErgebnisseJuni + summeErgebnisseJuli + summeErgebnisseAugust + + summeErgebnisseSeptember + summeErgebnisseOktober + summeErgebnisseNovember + summeErgebnisseDezember; + + const result = A8BerechnungWaermequellenAusAnlagentechnikHeizung(); + + const ausweis = {}; // Replace with actual BedarfsausweisWohnenClient object + const gebaeude_aufnahme = {}; // Replace with actual GebaeudeAufnahmeClient object + const resultTrinkwarmwasser = A10BerechnungWaermequellenAnlagentechnikTrinkwarmwasser(ausweis, gebaeude_aufnahme); + const WaermeQuellenAnlagentechnikTrinkwarmwasser = resultTrinkwarmwasser.WaermeQuellenAnlagentechnikTrinkwarmwasser; + + const WaermeQuellenAnlagentechnikGesamt = { + Januar: result.WaermeQuellenAnlagentechnikHeizungJanuar + WaermeQuellenAnlagentechnikTrinkwarmwasser.Januar, + Februar: result.WaermeQuellenAnlagentechnikHeizungFebruar + WaermeQuellenAnlagentechnikTrinkwarmwasser.Februar, + Maerz: result.WaermeQuellenAnlagentechnikHeizungMaerz + WaermeQuellenAnlagentechnikTrinkwarmwasser.Maerz, + April: result.WaermeQuellenAnlagentechnikHeizungApril + WaermeQuellenAnlagentechnikTrinkwarmwasser.April, + Mai: result.WaermeQuellenAnlagentechnikHeizungMai + WaermeQuellenAnlagentechnikTrinkwarmwasser.Mai, + Juni: result.WaermeQuellenAnlagentechnikHeizungJuni + WaermeQuellenAnlagentechnikTrinkwarmwasser.Juni, + Juli: result.WaermeQuellenAnlagentechnikHeizungJuli + WaermeQuellenAnlagentechnikTrinkwarmwasser.Juli, + August: result.WaermeQuellenAnlagentechnikHeizungAugust + WaermeQuellenAnlagentechnikTrinkwarmwasser.August, + September: result.WaermeQuellenAnlagentechnikHeizungSeptember + WaermeQuellenAnlagentechnikTrinkwarmwasser.September, + Oktober: result.WaermeQuellenAnlagentechnikHeizungOktober + WaermeQuellenAnlagentechnikTrinkwarmwasser.Oktober, + November: result.WaermeQuellenAnlagentechnikHeizungNovember + WaermeQuellenAnlagentechnikTrinkwarmwasser.November, + Dezember: result.WaermeQuellenAnlagentechnikHeizungDezember + WaermeQuellenAnlagentechnikTrinkwarmwasser.Dezember + }; + const summeWaermeQuellenAnlagentechnikGesamt = Object.values(WaermeQuellenAnlagentechnikGesamt).reduce((acc, value) => acc + value, 0); + + // Beispielwerte Planung werden aus Eingabe geholt let NettoGrundflaeche = 154.2; let WaermeQuellenBewohner = 45; // bis 2 Wohneinheiten sonst 90 @@ -23,7 +54,7 @@ export function A11BerechnungWaermequellenZusammenstellung() { let TageMonat = { Januar: 31, Februar: 28, - März: 31, + Maerz: 31, April: 30, Mai: 31, Juni: 30, @@ -38,7 +69,7 @@ export function A11BerechnungWaermequellenZusammenstellung() { const interneWaermeQuellenProMonat = { Januar: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Januar) / 1000, Februar: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Februar) / 1000, - März: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.März) / 1000, + Maerz: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Maerz) / 1000, April: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.April) / 1000, Mai: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Mai) / 1000, Juni: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Juni) / 1000, @@ -50,6 +81,31 @@ export function A11BerechnungWaermequellenZusammenstellung() { Dezember: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Dezember) / 1000 }; + const interneWaermeQuellenGesamt = Object.values(interneWaermeQuellenProMonat).reduce((acc, value) => acc + value, 0); + + const WaermeQuellenGesamt = { + Januar: interneWaermeQuellenProMonat.Januar + summeErgebnisseJanuar + WaermeQuellenAnlagentechnikGesamt.Januar, + Februar: interneWaermeQuellenProMonat.Februar + summeErgebnisseFebruar + WaermeQuellenAnlagentechnikGesamt.Februar, + Maerz: interneWaermeQuellenProMonat.Maerz + summeErgebnisseMaerz + WaermeQuellenAnlagentechnikGesamt.Maerz, + April: interneWaermeQuellenProMonat.April + summeErgebnisseApril + WaermeQuellenAnlagentechnikGesamt.April, + Mai: interneWaermeQuellenProMonat.Mai + summeErgebnisseMai + WaermeQuellenAnlagentechnikGesamt.Mai, + Juni: interneWaermeQuellenProMonat.Juni + summeErgebnisseJuni + WaermeQuellenAnlagentechnikGesamt.Juni, + Juli: interneWaermeQuellenProMonat.Juli + summeErgebnisseJuli + WaermeQuellenAnlagentechnikGesamt.Juli, + August: interneWaermeQuellenProMonat.August + summeErgebnisseAugust + WaermeQuellenAnlagentechnikGesamt.August, + September: interneWaermeQuellenProMonat.September + summeErgebnisseSeptember + WaermeQuellenAnlagentechnikGesamt.September, + Oktober: interneWaermeQuellenProMonat.Oktober + summeErgebnisseOktober + WaermeQuellenAnlagentechnikGesamt.Oktober, + November: interneWaermeQuellenProMonat.November + summeErgebnisseNovember + WaermeQuellenAnlagentechnikGesamt.November, + Dezember: interneWaermeQuellenProMonat.Dezember + summeErgebnisseDezember + WaermeQuellenAnlagentechnikGesamt.Dezember + }; + + const summeWaermeQuellenGesamt = Object.values(WaermeQuellenGesamt).reduce((acc, value) => acc + value, 0); + + const WaermeQuellenGesamtLeistung = Object.keys(WaermeQuellenGesamt).reduce((acc: { [key: string]: number }, month) => { + acc[month] = (WaermeQuellenGesamt[month as keyof typeof WaermeQuellenGesamt] / (24 * TageMonat[month as keyof typeof TageMonat]) * 1000); + return acc; + }, {}); + + const summeWaermeQuellenGesamtLeistung = Object.values(WaermeQuellenGesamtLeistung).reduce((acc, value) => acc + value, 0); return { TageMonat, @@ -65,7 +121,17 @@ export function A11BerechnungWaermequellenZusammenstellung() { summeErgebnisseOktober, summeErgebnisseNovember, summeErgebnisseDezember, - interneWaermeQuellenProMonat + interneWaermeQuellenProMonat, + NettoGrundflaeche, + WaermeQuellenBewohner, + WaermeQuellenAnlagentechnikGesamt, + WaermeQuellenGesamt, + WaermeQuellenGesamtLeistung, + summeErgebnisseGesamt, + interneWaermeQuellenGesamt, + summeWaermeQuellenAnlagentechnikGesamt, + summeWaermeQuellenGesamt, + summeWaermeQuellenGesamtLeistung } } \ No newline at end of file diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/A12BerechnungNutzenergiebedarfHeizung.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/A12BerechnungNutzenergiebedarfHeizung.ts index 0cb33656..72bc64d0 100644 --- a/src/lib/Berechnungen/BedarfsausweisWohnen/A12BerechnungNutzenergiebedarfHeizung.ts +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/A12BerechnungNutzenergiebedarfHeizung.ts @@ -3,6 +3,7 @@ import { funktionBilanzInnentemperatur } from "#lib/Berechnungen/BedarfsausweisW import { funktionAusnutzungsgrad } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionAusnutzungsgrad.js"; import { A6BerechnungWaermeTransferMaxStroemeLueftungGesamt } from "#lib/Berechnungen/BedarfsausweisWohnen/A6BerechnungWaermeTransferMaxStroemeLueftungGesamt.js"; import { A5BerechnungWaermeTransferMaxStroemeBauteile } from "#lib/Berechnungen/BedarfsausweisWohnen/A5BerechnungWaermeTransferMaxStroemeBauteile.js"; +import { A11BerechnungWaermequellenZusammenstellung } from "#lib/Berechnungen/BedarfsausweisWohnen/A11BerechnungWaermequellenZusammenstellung.js"; export function A12BerechnungNutzenergiebedarfHeizung() { diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/A7A2BerechnungWaermequellenSolareEinstrahlung.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/A7A2BerechnungWaermequellenSolareEinstrahlung.ts index f5fe9d55..b4fc4b88 100644 --- a/src/lib/Berechnungen/BedarfsausweisWohnen/A7A2BerechnungWaermequellenSolareEinstrahlung.ts +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/A7A2BerechnungWaermequellenSolareEinstrahlung.ts @@ -146,8 +146,6 @@ export function A7A2BerechnungWaermequellenSolareEinstrahlung() { }); - console.log(ErgebnisseJanuar[1]); - console.log(ErgebnisseMonatsWerteJanuar); const summeErgebnisseJanuar = ErgebnisseJanuar.reduce((acc, val) => acc + val, 0); const summeErgebnisseFebruar = ErgebnisseFebruar.reduce((acc, val) => acc + val, 0); diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/A8BerechnungWaermequellenAusAnlagentechnikHeizung.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/A8BerechnungWaermequellenAusAnlagentechnikHeizung.ts index 7cbbfb6a..f41c85eb 100644 --- a/src/lib/Berechnungen/BedarfsausweisWohnen/A8BerechnungWaermequellenAusAnlagentechnikHeizung.ts +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/A8BerechnungWaermequellenAusAnlagentechnikHeizung.ts @@ -1,5 +1,6 @@ import { A12BerechnungNutzenergiebedarfHeizung } from "#lib/Berechnungen/BedarfsausweisWohnen/A12BerechnungNutzenergiebedarfHeizung.js"; -import { A11BerechnungWaermequellenZusammenstellung } from "#lib/Berechnungen/BedarfsausweisWohnen/A11BerechnungWaermequellenZusammenstellung.js"; +import { A7A2BerechnungWaermequellenSolareEinstrahlung } from "#lib/Berechnungen/BedarfsausweisWohnen/A7A2BerechnungWaermequellenSolareEinstrahlung.js"; +import { funktionInterneWaermequellen } from "./funktionInterneWaermequellen.js"; export function A8BerechnungWaermequellenAusAnlagentechnikHeizung() { @@ -7,20 +8,22 @@ const result = A12BerechnungNutzenergiebedarfHeizung(); const waermeSenken = result.waermeSenken; const belastungsgrade = result.belastungsgrade; -const resultA11 = A11BerechnungWaermequellenZusammenstellung(); -const interneWaermeQuellenProMonat = resultA11.interneWaermeQuellenProMonat; -const summeErgebnisseJanuar = resultA11.summeErgebnisseJanuar; -const summeErgebnisseFebruar = resultA11.summeErgebnisseFebruar; -const summeErgebnisseMaerz = resultA11.summeErgebnisseMaerz; -const summeErgebnisseApril = resultA11.summeErgebnisseApril; -const summeErgebnisseMai = resultA11.summeErgebnisseMai; -const summeErgebnisseJuni = resultA11.summeErgebnisseJuni; -const summeErgebnisseJuli = resultA11.summeErgebnisseJuli; -const summeErgebnisseAugust = resultA11.summeErgebnisseAugust; -const summeErgebnisseSeptember = resultA11.summeErgebnisseSeptember; -const summeErgebnisseOktober = resultA11.summeErgebnisseOktober; -const summeErgebnisseNovember = resultA11.summeErgebnisseNovember; -const summeErgebnisseDezember = resultA11.summeErgebnisseDezember; +const einstrahlung = A7A2BerechnungWaermequellenSolareEinstrahlung(); + const summeErgebnisseJanuar = einstrahlung.summeErgebnisseJanuar; + const summeErgebnisseFebruar = einstrahlung.summeErgebnisseFebruar; + const summeErgebnisseMaerz = einstrahlung.summeErgebnisseMaerz; + const summeErgebnisseApril = einstrahlung.summeErgebnisseApril; + const summeErgebnisseMai = einstrahlung.summeErgebnisseMai; + const summeErgebnisseJuni = einstrahlung.summeErgebnisseJuni; + const summeErgebnisseJuli = einstrahlung.summeErgebnisseJuli; + const summeErgebnisseAugust = einstrahlung.summeErgebnisseAugust; + const summeErgebnisseSeptember = einstrahlung.summeErgebnisseSeptember; + const summeErgebnisseOktober = einstrahlung.summeErgebnisseOktober; + const summeErgebnisseNovember = einstrahlung.summeErgebnisseNovember; + const summeErgebnisseDezember = einstrahlung.summeErgebnisseDezember; + +const resultInterneWaermeQuellen = funktionInterneWaermequellen(); +const interneWaermeQuellenProMonat = resultInterneWaermeQuellen.interneWaermeQuellenProMonat; let TageMonat = { Januar: 31, @@ -164,7 +167,8 @@ return { WaermeQuellenAnlagentechnikHeizungSeptember, WaermeQuellenAnlagentechnikHeizungOktober, WaermeQuellenAnlagentechnikHeizungNovember, - WaermeQuellenAnlagentechnikHeizungDezember + WaermeQuellenAnlagentechnikHeizungDezember, + FaktorNutzbareWaerme }; } \ No newline at end of file diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/A9BerechnungNutzenergiebedarfTrinkwarmwasser.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/A9BerechnungNutzenergiebedarfTrinkwarmwasser.ts index fffd9b00..a81dbc48 100644 --- a/src/lib/Berechnungen/BedarfsausweisWohnen/A9BerechnungNutzenergiebedarfTrinkwarmwasser.ts +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/A9BerechnungNutzenergiebedarfTrinkwarmwasser.ts @@ -11,10 +11,10 @@ import { linearInterpolation } from "js-interpolate" * @param {GebaeudeAufnahmeClient} gebaeude_aufnahme */ export function A9BerechnungNutzenergiebedarfTrinkwarmwasser(ausweis: BedarfsausweisWohnenClient, gebaeude_aufnahme: GebaeudeAufnahmeClient) { - // A_NGF - const bezugsflaeche = gebaeude_aufnahme.nutzflaeche ?? 0; + // A_NGF aus Eingabe + const bezugsflaeche = 154.2; - const einheiten = gebaeude_aufnahme.einheiten ?? 1; + const einheiten = 1; // A_NGF,WE,m const flaecheProEinheit = bezugsflaeche / einheiten; @@ -39,11 +39,34 @@ export function A9BerechnungNutzenergiebedarfTrinkwarmwasser(ausweis: Bedarfsaus // Q_w,b // Trinkwasser Wärmebedarf übers gesamte Jahr gerechnet. Falls ein bestimmter Monat gesucht wird kann man einfach (Q_w,b / 365 * d_mth) rechnen. - const trinkwasserWaermebedarf = bezugsflaeche * flaechenBezogenerWaermebedarf; + const tageMonat = { + Januar: 31, + Februar: 28, + Maerz: 31, + April: 30, + Mai: 31, + Juni: 30, + Juli: 31, + August: 31, + September: 30, + Oktober: 31, + November: 30, + Dezember: 31 + }; + + const trinkwasserWaermebedarf = Object.fromEntries( + Object.entries(tageMonat).map(([monat, tage]) => [ + monat, + (bezugsflaeche * flaechenBezogenerWaermebedarf * tage) / 365 + ]) + ); + + const trinkwasserWaermebedarfJahr = Object.values(trinkwasserWaermebedarf).reduce((sum, value) => sum + value, 0); return { trinkwasserWaermebedarf, flaechenBezogenerWaermebedarf, - bezugsflaeche + bezugsflaeche, + trinkwasserWaermebedarfJahr } } \ No newline at end of file diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/funktionInterneWaermequellen.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionInterneWaermequellen.ts new file mode 100644 index 00000000..55b0dc24 --- /dev/null +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionInterneWaermequellen.ts @@ -0,0 +1,44 @@ + export function funktionInterneWaermequellen() { + + // Beispielwerte Planung werden aus Eingabe geholt + let NettoGrundflaeche = 154.2; + let WaermeQuellenBewohner = 45; // bis 2 Wohneinheiten sonst 90 + + let TageMonat = { + Januar: 31, + Februar: 28, + März: 31, + April: 30, + Mai: 31, + Juni: 30, + Juli: 31, + August: 31, + September: 30, + Oktober: 31, + November: 30, + Dezember: 31 + }; + + const interneWaermeQuellenProMonat = { + Januar: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Januar) / 1000, + Februar: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Februar) / 1000, + März: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.März) / 1000, + April: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.April) / 1000, + Mai: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Mai) / 1000, + Juni: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Juni) / 1000, + Juli: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Juli) / 1000, + August: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.August) / 1000, + September: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.September) / 1000, + Oktober: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Oktober) / 1000, + November: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.November) / 1000, + Dezember: (NettoGrundflaeche * WaermeQuellenBewohner * TageMonat.Dezember) / 1000 + }; + +return { + + interneWaermeQuellenProMonat + +} + + +} \ No newline at end of file diff --git a/src/pages/DIN18599/berechnungstabellen/index.astro b/src/pages/DIN18599/berechnungstabellen/index.astro index ba4c9639..46db0994 100644 --- a/src/pages/DIN18599/berechnungstabellen/index.astro +++ b/src/pages/DIN18599/berechnungstabellen/index.astro @@ -11,7 +11,7 @@ import A5WaermeTransferMaxStroemeBauteile from "#components/Tabellen/A5WaermeTra import A6WaermeTransferMaxStroemeGesamt from "#components/Tabellen/A6WaermeTransferMaxStroemeGesamt.svelte"; import A7WaermequellenSolareEinstrahlung from "#components/Tabellen/A7WaermequellenSolareEinstrahlung.svelte"; import A8WaermequellenAnlagentechnikHeizung from "#components/Tabellen/A8WaermequellenAnlagentechnikHeizung.svelte"; -import A9Trinkwassererwaermung from "#components/Tabellen/A9Trinkwassererwaermung.svelte"; +import A9NutzenergiebedarfTrinkwarmwasser from "#components/Tabellen/A9NutzenergiebedarfTrinkwarmwasser.svelte"; import A10WaermequellenAnlagentechnikTrinkwarmwasser from "#components/Tabellen/A10WaermequellenAnlagentechnikTrinkwarmwasser.svelte"; import A11WaermequellenZusammenstellung from "#components/Tabellen/A11WaermequellenZusammenstellung.svelte"; import A12NutzenergiebedarfHeizung from "#components/Tabellen/A12NutzenergiebedarfHeizung.svelte"; @@ -94,23 +94,23 @@ const ausweis: BedarfsausweisWohnenClient = {}; - + - + - + - + - + - +