Alte Dateien gelöscht
This commit is contained in:
@@ -1,75 +0,0 @@
|
||||
<script lang="ts">
|
||||
import { BedarfsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||
|
||||
export let ausweis: BedarfsausweisWohnenClient;
|
||||
</script>
|
||||
|
||||
<div class="overflow-x-auto mt-16">
|
||||
<table class="table-auto border-collapse border border-gray-300 w-full text-sm">
|
||||
<!-- Tabellenkopf -->
|
||||
<thead>
|
||||
<tr class="bg-gray-200 text-left">
|
||||
<th colspan="6" class="border border-gray-300 p-2">
|
||||
<h2>Tabelle A.1 – Anlage allgemein – Anlagenbeschreibung</h2>
|
||||
</th>
|
||||
</tr>
|
||||
<tr class="bg-yellow-100 text-left">
|
||||
<th colspan="1" class="border border-gray-300 p-2 text-xl bg-white">Objekt:</th>
|
||||
<th colspan="5" class="border border-gray-300 p-2"></th>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<th class="border border-gray-300 p-2">Anlage</th>
|
||||
<th class="border border-gray-300 p-2">Übergabe</th>
|
||||
<th class="border border-gray-300 p-2">Verteilung</th>
|
||||
<th class="border border-gray-300 p-2">Speicherung</th>
|
||||
<th class="border border-gray-300 p-2">Erzeugung</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<!-- Tabellenkörper -->
|
||||
<tbody>
|
||||
<tr class="bg-yellow-100 h-10">
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
</tr>
|
||||
<tr class="bg-yellow-100 h-10">
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
</tr>
|
||||
<tr class="bg-yellow-100 h-10">
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
</tr>
|
||||
<tr class="bg-yellow-100 h-10">
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
</tr>
|
||||
<tr class="bg-yellow-100 h-10">
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
</tr>
|
||||
<tr class="bg-yellow-100 h-10">
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
<td class="border border-gray-300 p-2"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -1,296 +0,0 @@
|
||||
<script lang="ts">
|
||||
import { BedarfsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||
|
||||
export let ausweis: BedarfsausweisWohnenClient;
|
||||
</script>
|
||||
|
||||
<div class="overflow-x-auto mt-16">
|
||||
<table class="table-auto border-collapse border border-gray-300 w-full text-sm">
|
||||
<!-- Tabellenkopf -->
|
||||
<thead>
|
||||
<tr class="bg-gray-200 text-left">
|
||||
<th colspan="6" class="border border-gray-300 p-2">
|
||||
<h2>Tabelle A.2 – Gebäude – Wintergarten</h2>
|
||||
</th>
|
||||
</tr>
|
||||
<tr class="bg-gray-200 text-left">
|
||||
<th colspan="6" class="border border-gray-300 p-2 text-xl">
|
||||
Solare Einstrahlung in den Wintergarten
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<!-- Tabellenkörper -->
|
||||
<thead>
|
||||
<tr class="bg-yellow-100 text-left">
|
||||
<th class="border border-gray-300 p-2 w-4/12 bg-white">Orientierung</th>
|
||||
<th class="border border-gray-300 p-2 w-1/12"></th>
|
||||
<th class="border border-gray-300 p-2 w-1/12"></th>
|
||||
<th class="border border-gray-300 p-2 w-1/12"></th>
|
||||
<th class="border border-gray-300 p-2 w-1/12"></th>
|
||||
<th class="border border-gray-300 p-2 w-2/12 bg-white text-center">Gesamtfläche</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<!-- Tabellenkörper -->
|
||||
<tbody>
|
||||
<tr class="bg-yellow-100">
|
||||
<td class="border border-gray-300 p-2 bg-white">Neigung</td>
|
||||
<td class="border border-gray-300 p-2 text-center"></td>
|
||||
<td class="border border-gray-300 p-2 text-center"></td>
|
||||
<td class="border border-gray-300 p-2 text-center"></td>
|
||||
<td class="border border-gray-300 p-2 text-center"></td>
|
||||
<td class="border border-gray-300 p-2 text-center bg-white">[m²]</td>
|
||||
</tr>
|
||||
<tr class="bg-yellow-100">
|
||||
<td class="border border-gray-300 p-2 bg-white">Bauteilfläche A<sub>ue</sub> [m²] (1)</td>
|
||||
<td class="border border-gray-300 p-2 text-center"></td>
|
||||
<td class="border border-gray-300 p-2 text-center"></td>
|
||||
<td class="border border-gray-300 p-2 text-center"></td>
|
||||
<td class="border border-gray-300 p-2 text-center"></td>
|
||||
<td class="border-2 border-gray-600 p-2 text-center bg-white"></td>
|
||||
</tr>
|
||||
<tr class="bg-yellow-100">
|
||||
<td class="border border-gray-300 p-2 bg-white">Gesamtenergiedurchlassgrad g<sub>ue</sub> (2)</td>
|
||||
<td class="border border-gray-300 p-2 text-center"></td>
|
||||
<td class="border border-gray-300 p-2 text-center"></td>
|
||||
<td class="border border-gray-300 p-2 text-center"></td>
|
||||
<td class="border border-gray-300 p-2 text-center"></td>
|
||||
<td class="border border-gray-300 p-2 text-center bg-white"></td>
|
||||
</tr>
|
||||
<tr class="bg-gray-100">
|
||||
<td class="border border-gray-300 p-2 bg-white">Abm. Rahmenanteil F<sub>F,ue</sub> (3)</td>
|
||||
<td class="border border-gray-300 p-2 text-center">0,9</td>
|
||||
<td class="border border-gray-300 p-2 text-center">0,9</td>
|
||||
<td class="border border-gray-300 p-2 text-center">0,9</td>
|
||||
<td class="border border-gray-300 p-2 text-center">0,9</td>
|
||||
<td class="border border-gray-300 p-2 text-center bg-white"></td>
|
||||
</tr>
|
||||
<tr class="bg-gray-100">
|
||||
<td class="border border-gray-300 p-2 bg-white">Abm. Strahlungseinfluss F<sub>w,ue</sub> (4)</td>
|
||||
<td class="border border-gray-300 p-2 text-center">0,9</td>
|
||||
<td class="border border-gray-300 p-2 text-center">0,9</td>
|
||||
<td class="border border-gray-300 p-2 text-center">0,9</td>
|
||||
<td class="border border-gray-300 p-2 text-center">0,9</td>
|
||||
<td class="border border-gray-300 p-2 text-center bg-white"></td>
|
||||
</tr>
|
||||
<tr class="bg-gray-100">
|
||||
<td class="border border-gray-300 p-2 bg-white ">Abm. Verschattung F<sub>s,ue</sub> (5)</td>
|
||||
<td class="border border-gray-300 p-2 text-center">0,9</td>
|
||||
<td class="border border-gray-300 p-2 text-center">0,9</td>
|
||||
<td class="border border-gray-300 p-2 text-center">0,9</td>
|
||||
<td class="border border-gray-300 p-2 text-center">0,9</td>
|
||||
<td class="border border-gray-300 p-2 text-center bg-white"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="border border-gray-300 p-2">wirks. Gesamtenergiedurchlassgrad<br>
|
||||
g<sub>eff,ue</sub> = g<sub>ue</sub> · F<sub>w,ue</sub> · F<sub>s,ue</sub><br>
|
||||
(6) = (2) · (4) · (5)</td>
|
||||
<td class="border-2 border-gray-600 p-2 text-center"></td>
|
||||
<td class="border-2 border-gray-600 p-2 text-center"></td>
|
||||
<td class="border-2 border-gray-600 p-2 text-center"></td>
|
||||
<td class="border-2 border-gray-600 p-2 text-center"></td>
|
||||
<td class="border border-gray-300 p-2 text-center bg-white"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<table class="table-auto border-collapse border border-gray-300 w-full text-sm">
|
||||
<!-- Tabellenkopf -->
|
||||
<thead>
|
||||
<tr class="text-center">
|
||||
<th colspan="2" class="border border-gray-300 p-2 text-left">E<sub>sol</sub> aus Tabelle 17</th>
|
||||
<th colspan="3" class="border border-gray-300 p-2 text-left">
|
||||
Q<sub>S,tr</sub> = A<sub>ue</sub> ⋅ F<sub>F,ue</sub> ⋅ g<sub>eff,ue</sub>
|
||||
⋅ E<sub>sol</sub></th>
|
||||
<th colspan="6" class="border border-gray-300 p-2 text-left">Φ<sub>S,u</sub> = ∑ Q<sub>S,tr</sub> ⋅ 1000 (24 ⋅ d<sub>mth</sub>)</th>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<th class="border border-gray-300 p-2 w-1/12">Tage im Monat<br>(7)</th>
|
||||
<th class="border border-gray-300 p-2 w-1/12">E<sub>sol</sub><br>[kWh/m²]<br>(8)</th>
|
||||
<th class="border border-gray-300 p-2 w-1/12">Q<sub>S,tr</sub><br>[kWh]<br>(9) = (1) ⋅ (3) ⋅ (6) ⋅ (8)</th>
|
||||
<th class="border border-gray-300 p-2 w-1/12">E<sub>sol</sub><br>[kWh/m²]<br>(10)</th>
|
||||
<th class="border border-gray-300 p-2 w-1/12">Q<sub>S,tr</sub><br>[kWh]<br>(11) = (1) ⋅ (3) ⋅ (6) ⋅ (10)</th>
|
||||
<th class="border border-gray-300 p-2 w-1/12">E<sub>sol</sub><br>[kWh/m²]<br>(12)</th>
|
||||
<th class="border border-gray-300 p-2 w-1/12">Q<sub>S,tr</sub><br>[kWh]<br>(13) = (1) ⋅ (3) ⋅ (6) ⋅ (12)</th>
|
||||
<th class="border border-gray-300 p-2 w-1/12">E<sub>sol</sub><br>[kWh/m²]<br>(14)</th>
|
||||
<th class="border border-gray-300 p-2 w-1/12">Q<sub>S,tr</sub><br>[kWh]<br>(15) = (1) ⋅ (3) ⋅ (6) ⋅ (14)</th>
|
||||
<th class="border border-gray-300 p-2 w-1/12">ΣQ<sub>S,tr</sub><br>[kWh]<br>(16) = (9) + (11) + (13) + (15)</th>
|
||||
<th class="border border-gray-300 p-2 w-1/12">Φ<sub>S,u</sub><br>[W]<br>(17) = (16) ⋅ 1000 / [24] ⋅ (7)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<!-- Tabellenkörper -->
|
||||
<tbody>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 p-2">31</td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 p-2">28</td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 p-2">31</td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 p-2">30</td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 p-2">31</td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 p-2">30</td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 p-2">31</td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 p-2">31</td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 p-2">30</td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 p-2">31</td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 p-2">30</td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 p-2">31</td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border border-gray-300 p-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="p-2"></td>
|
||||
<td class="p-2"></td>
|
||||
<td class="p-2"></td>
|
||||
<td class="p-2"></td>
|
||||
<td class="p-2"></td>
|
||||
<td class="p-2"></td>
|
||||
<td class="p-2"></td>
|
||||
<td class="p-2"></td>
|
||||
<td class="border border-gray-300 p-2">Jahressumme</td>
|
||||
<td class="border-2 border-gray-600 p-2"></td>
|
||||
<td class="p-2"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -1,145 +0,0 @@
|
||||
import { BedarfsausweisWohnenClient } from "#components/Ausweis/types";
|
||||
import { Enums } from "@ibcornelsen/database/client";
|
||||
import moment from "moment";
|
||||
|
||||
export function energetischeNutzflaecheBedarfsausweisWohnen_18599(
|
||||
ausweis: BedarfsausweisWohnenClient
|
||||
): number {
|
||||
if (!ausweis.aufnahme.objekt) {
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
export async function endEnergieBedarfBedarfsausweis_18599(
|
||||
ausweis: BedarfsausweisWohnenClient
|
||||
) {
|
||||
if (!ausweis.aufnahme || !ausweis.aufnahme.objekt) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
let endEnergieBedarfGesamt;
|
||||
let primaerEnergieBedarfGesamt;
|
||||
let co2EmissionenGesamt;
|
||||
|
||||
// Energieeffizienzklasse
|
||||
let energieEffizienzKlasse = "";
|
||||
if (endEnergieVerbrauchGesamt < 30) {
|
||||
energieEffizienzKlasse = 'A+';
|
||||
}else if (endEnergieVerbrauchGesamt < 50) {
|
||||
energieEffizienzKlasse = 'A';
|
||||
}else if (endEnergieVerbrauchGesamt < 75) {
|
||||
energieEffizienzKlasse = 'B';
|
||||
}else if (endEnergieVerbrauchGesamt < 100) {
|
||||
energieEffizienzKlasse = 'C';
|
||||
}else if (endEnergieVerbrauchGesamt < 130) {
|
||||
energieEffizienzKlasse = 'D';
|
||||
}else if (endEnergieVerbrauchGesamt < 160) {
|
||||
energieEffizienzKlasse = 'E';
|
||||
}else if (endEnergieVerbrauchGesamt < 200) {
|
||||
energieEffizienzKlasse = 'F';
|
||||
}else if (endEnergieVerbrauchGesamt < 250) {
|
||||
energieEffizienzKlasse = 'G';
|
||||
}else if (endEnergieVerbrauchGesamt >= 250) {
|
||||
energieEffizienzKlasse = 'H';
|
||||
}
|
||||
|
||||
|
||||
return {
|
||||
brennstoff_1: brennstoff_1,
|
||||
brennstoff_2: brennstoff_2,
|
||||
klimafaktoren: klimafaktoren,
|
||||
kuehlungsZuschlag: Math.round(kuehlungsZuschlag),
|
||||
durchschnittsKlimafaktor: Math.round(durchschnittsKlimafaktor),
|
||||
ausweis: ausweis,
|
||||
|
||||
anteil_heizung_1: 1 - (ausweis.anteil_warmwasser_1 || 0) / 100,
|
||||
anteil_heizung_2: 1 - (ausweis.anteil_warmwasser_2 || 0) / 100,
|
||||
|
||||
verbrauch_1_kwh: Math.round(
|
||||
(ausweis.verbrauch_1 || 0) * brennstoff_1.umrechnungsfaktor
|
||||
),
|
||||
verbrauch_2_kwh: Math.round(
|
||||
(ausweis.verbrauch_2 || 0) * brennstoff_1.umrechnungsfaktor
|
||||
),
|
||||
verbrauch_3_kwh: Math.round(
|
||||
(ausweis.verbrauch_3 || 0) * brennstoff_1.umrechnungsfaktor
|
||||
),
|
||||
verbrauch_4_kwh: Math.round(
|
||||
(ausweis.verbrauch_4 || 0) * brennstoff_2.umrechnungsfaktor
|
||||
),
|
||||
verbrauch_5_kwh: Math.round(
|
||||
(ausweis.verbrauch_5 || 0) * brennstoff_2.umrechnungsfaktor
|
||||
),
|
||||
verbrauch_6_kwh: Math.round(
|
||||
(ausweis.verbrauch_6 || 0) * brennstoff_2.umrechnungsfaktor
|
||||
),
|
||||
|
||||
energetischeNutzflaeche: energetischeNutzflaeche,
|
||||
leerstand: leerstand,
|
||||
leerstandsZuschlagHeizung: Math.round(leerstandsZuschlagHeizung),
|
||||
leerstandsZuschlagWarmwasser: Math.round(leerstandsZuschlagWarmwasser),
|
||||
endEnergieVerbrauchLeerstandsZuschlag: Math.round(
|
||||
endEnergieVerbrauchLeerstandsZuschlag
|
||||
),
|
||||
endEnergieVerbrauchKuehlungsZuschlag: Math.round(
|
||||
endEnergieVerbrauchKuehlungsZuschlag
|
||||
),
|
||||
coeeffkg: co2EmissionenGesamt,
|
||||
energieVerbrauchGesamt_1: Math.round(energieVerbrauchGesamt_1),
|
||||
energieVerbrauchGesamt_2: Math.round(energieVerbrauchGesamt_2),
|
||||
energieVerbrauchWarmwasser_1: Math.round(energieVerbrauchWarmwasser_1),
|
||||
energieVerbrauchWarmwasser_2: Math.round(energieVerbrauchWarmwasser_2),
|
||||
energieVerbrauchHeizung_1: energieVerbrauchHeizung_1,
|
||||
energieVerbrauchHeizung_2: energieVerbrauchHeizung_2,
|
||||
anteil_warmwasser_1: (ausweis.anteil_warmwasser_1 || 0) / 100,
|
||||
anteil_warmwasser_2: (ausweis.anteil_warmwasser_2 || 0) / 100,
|
||||
|
||||
energieVerbrauchHeizungBereinigt_1: Math.round(
|
||||
energieVerbrauchHeizungBereinigt_1
|
||||
),
|
||||
energieVerbrauchHeizungBereinigt_2: Math.round(
|
||||
energieVerbrauchHeizungBereinigt_2
|
||||
),
|
||||
durchschnittsEnergieVerbrauchHeizungBereingt: Math.round(
|
||||
durchschnittsEnergieVerbrauchHeizungBereingt
|
||||
),
|
||||
faktorDurchschnittsEnergieVerbrauchHeizungBereinigt: Math.round(
|
||||
faktorDurchschnittsEnergieVerbrauchHeizungBereinigt
|
||||
),
|
||||
|
||||
endEnergieVerbrauch_1: Math.round(endEnergieVerbrauch_1),
|
||||
endEnergieVerbrauch_2: Math.round(endEnergieVerbrauch_2),
|
||||
|
||||
primaerEnergieVerbrauch_1: Math.round(primaerEnergieVerbrauch_1),
|
||||
primaerEnergieVerbrauch_2: Math.round(primaerEnergieVerbrauch_2),
|
||||
|
||||
primaerEnergieVerbrauchLeerstandsZuschlag: Math.round(
|
||||
primaerEnergieVerbrauchLeerstandsZuschlag
|
||||
),
|
||||
primaerEnergieVerbrauchKuehlungsZuschlag: Math.round(
|
||||
primaerEnergieVerbrauchKuehlungsZuschlag
|
||||
),
|
||||
|
||||
primaerfaktorww,
|
||||
primaerfaktorww_1,
|
||||
|
||||
co2Emissionen_1: co2Emissionen_1,
|
||||
co2Emissionen_2: co2Emissionen_2,
|
||||
|
||||
co2EmissionenLeerstandsZuschlag: co2EmissionenLeerstandsZuschlag,
|
||||
co2EmissionenKuehlungsZuschlag: co2EmissionenKuehlungsZuschlag,
|
||||
|
||||
co2EmissionenGesamt: Math.round(co2EmissionenGesamt),
|
||||
|
||||
endEnergieVerbrauchGesamt: Math.round(endEnergieVerbrauchGesamt),
|
||||
primaerEnergieVerbrauchGesamt: Math.round(
|
||||
primaerEnergieVerbrauchGesamt
|
||||
),
|
||||
energieEffizienzKlasse
|
||||
};
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
|
||||
// Beispiel für Tabellen 59-62, Beispielwert Spalte1=235
|
||||
|
||||
type DataPoint = {
|
||||
Spalte1: number;
|
||||
Spalte2: number;
|
||||
Spalte3: number;
|
||||
Spalte4: number;
|
||||
Spalte5: number;
|
||||
Spalte6: number;
|
||||
Spalte7: number;
|
||||
Spalte8: number;
|
||||
};
|
||||
|
||||
function interpolateForX(data: DataPoint[], x: number): DataPoint | null {
|
||||
// Sort the data by Spalte1
|
||||
data.sort((a, b) => a.Spalte1 - b.Spalte1);
|
||||
|
||||
// Ensure x is within range
|
||||
if (x < data[0].Spalte1 || x > data[data.length - 1].Spalte1) {
|
||||
console.error("Target value is out of interpolation range.");
|
||||
return null;
|
||||
}
|
||||
|
||||
// Find the two points to interpolate between
|
||||
let lower: DataPoint | null = null;
|
||||
let upper: DataPoint | null = null;
|
||||
|
||||
for (let i = 0; i < data.length - 1; i++) {
|
||||
if (data[i].Spalte1 <= x && data[i + 1].Spalte1 >= x) {
|
||||
lower = data[i];
|
||||
upper = data[i + 1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!lower || !upper) {
|
||||
console.error("Could not find interpolation bounds.");
|
||||
return null;
|
||||
}
|
||||
|
||||
// Linear interpolation function
|
||||
const interpolateValue = (x1: number, y1: number, x2: number, y2: number, x: number) => {
|
||||
return y1 + ((y2 - y1) * (x - x1)) / (x2 - x1);
|
||||
};
|
||||
|
||||
// Perform interpolation for all columns
|
||||
return {
|
||||
Spalte1: x,
|
||||
Spalte2: interpolateValue(lower.Spalte1, lower.Spalte2, upper.Spalte1, upper.Spalte2, x),
|
||||
Spalte3: interpolateValue(lower.Spalte1, lower.Spalte3, upper.Spalte1, upper.Spalte3, x),
|
||||
Spalte4: interpolateValue(lower.Spalte1, lower.Spalte4, upper.Spalte1, upper.Spalte4, x),
|
||||
Spalte5: interpolateValue(lower.Spalte1, lower.Spalte5, upper.Spalte1, upper.Spalte5, x),
|
||||
Spalte6: interpolateValue(lower.Spalte1, lower.Spalte6, upper.Spalte1, upper.Spalte6, x),
|
||||
Spalte7: interpolateValue(lower.Spalte1, lower.Spalte7, upper.Spalte1, upper.Spalte7, x),
|
||||
Spalte8: interpolateValue(lower.Spalte1, lower.Spalte8, upper.Spalte1, upper.Spalte8, x),
|
||||
};
|
||||
}
|
||||
|
||||
// Example usage with the complete dataset
|
||||
const dataset: DataPoint[] = [
|
||||
{ Spalte1: 100, Spalte2: 130, Spalte3: 121, Spalte4: 251, Spalte5: 3.36, Spalte6: 1296, Spalte7: 2.04, Spalte8: 1391 },
|
||||
{ Spalte1: 150, Spalte2: 174, Spalte3: 137, Spalte4: 295, Spalte5: 4.51, Spalte6: 1740, Spalte7: 2.73, Spalte8: 1866 },
|
||||
{ Spalte1: 200, Spalte2: 219, Spalte3: 153, Spalte4: 372, Spalte5: 5.67, Spalte6: 2186, Spalte7: 3.43, Spalte8: 2345 },
|
||||
{ Spalte1: 300, Spalte2: 308, Spalte3: 182, Spalte4: 489, Spalte5: 7.98, Spalte6: 3075, Spalte7: 4.83, Spalte8: 3299 },
|
||||
{ Spalte1: 400, Spalte2: 396, Spalte3: 207, Spalte4: 604, Spalte5: 10.27, Spalte6: 3961, Spalte7: 6.22, Spalte8: 4249 },
|
||||
{ Spalte1: 500, Spalte2: 486, Spalte3: 231, Spalte4: 717, Spalte5: 12.59, Spalte6: 4853, Spalte7: 7.62, Spalte8: 5205 },
|
||||
{ Spalte1: 600, Spalte2: 575, Spalte3: 253, Spalte4: 828, Spalte5: 14.89, Spalte6: 5740, Spalte7: 9.01, Spalte8: 6157 },
|
||||
{ Spalte1: 700, Spalte2: 664, Spalte3: 274, Spalte4: 938, Spalte5: 17.2, Spalte6: 6629, Spalte7: 10.41, Spalte8: 7111 },
|
||||
{ Spalte1: 800, Spalte2: 752, Spalte3: 294, Spalte4: 1046, Spalte5: 19.49, Spalte6: 7512, Spalte7: 11.79, Spalte8: 8057 },
|
||||
{ Spalte1: 900, Spalte2: 841, Spalte3: 313, Spalte4: 1154, Spalte5: 21.79, Spalte6: 8400, Spalte7: 13.19, Spalte8: 9010 },
|
||||
{ Spalte1: 1000, Spalte2: 930, Spalte3: 331, Spalte4: 1261, Spalte5: 24.11, Spalte6: 9293, Spalte7: 14.59, Spalte8: 9969 },
|
||||
{ Spalte1: 2000, Spalte2: 1819, Spalte3: 484, Spalte4: 2303, Spalte5: 47.14, Spalte6: 18172, Spalte7: 28.53, Spalte8: 19348 },
|
||||
{ Spalte1: 3000, Spalte2: 2703, Spalte3: 606, Spalte4: 3309, Spalte5: 70.04, Spalte6: 27001, Spalte7: 42.39, Spalte8: 28798 },
|
||||
{ Spalte1: 4000, Spalte2: 3592, Spalte3: 714, Spalte4: 4306, Spalte5: 93.08, Spalte6: 35881, Spalte7: 56.33, Spalte8: 38298 },
|
||||
{ Spalte1: 5000, Spalte2: 4486, Spalte3: 812, Spalte4: 5298, Spalte5: 116.25, Spalte6: 44815, Spalte7: 70.35, Spalte8: 47835 },
|
||||
];
|
||||
|
||||
const x = 235; // Example Spalte1 value to interpolate
|
||||
const interpolatedResult = interpolateForX(dataset, x);
|
||||
|
||||
console.log(interpolatedResult);
|
||||
@@ -1,113 +0,0 @@
|
||||
import bilanzInnentemperaturEinfamilienhaus from "./tabellen/18599-12-T8-bilanz-innentemperatur-einfamilienhaus.csv";
|
||||
import bilanzInnentemperaturMehrfamilienhaus from "./tabellen/18599-12-T10-bilanz-innentemperatur-wohngebaeude-mehrfamilienhaus.csv";
|
||||
import mittlereMonatlicheAuslastungEinfamilienhaus from "./tabellen/18599-12-T9-mittlere-monatliche-aussentemperaturabhaengige-belastung-wohngebauede-einfamilienhaus.csv";
|
||||
import mittlereMonatlicheAuslastungMehrfamilienhaus from "./tabellen/18599-12-T9-mittlere-monatliche-aussentemperaturabhaengige-belastung-wohngebauede-mehrfamilienhaus.csv";
|
||||
import { BedarfsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||
|
||||
type BilanzInnenTemperatur = {
|
||||
monat: string;
|
||||
ohne_teilbeheizung: number;
|
||||
"5": number;
|
||||
"10": number;
|
||||
"25": number;
|
||||
"50": number;
|
||||
"75": number;
|
||||
"100": number;
|
||||
"125": number;
|
||||
"150": number;
|
||||
zeitkonstante: number;
|
||||
};
|
||||
|
||||
function berechnungWaermetransferkoeffizienten() {}
|
||||
|
||||
function berechnungHuellflaeche(ausweis: BedarfsausweisWohnenClient) {
|
||||
return (
|
||||
(ausweis.dachfenster_flaeche ?? 0) +
|
||||
(ausweis.fenster_flaeche_1 ?? 0) +
|
||||
(ausweis.fenster_flaeche_2 ?? 0) +
|
||||
(ausweis.fensterflaeche_nw_no ?? 0) +
|
||||
(ausweis.fensterflaeche_so_sw ?? 0) +
|
||||
(ausweis.haustuer_flaeche ?? 0) +
|
||||
(ausweis.dachflaeche ?? 0) +
|
||||
(ausweis.aussenwand_flaeche ?? 0) +
|
||||
// TODO: Ist das hier nötig? Kellerdecke zum unbeheizten Keller/Erdreich?
|
||||
(ausweis.fussboden_flaeche ?? 0)
|
||||
);
|
||||
}
|
||||
|
||||
function getWaermebrueckenzuschlag(ausweis: BedarfsausweisWohnenClient) {
|
||||
// Ohne Nachweis allgemein
|
||||
return 0.1;
|
||||
// Bei Außenbauteilen mit innenliegender Dämmschicht und einbindender Massivdecke
|
||||
return 0.15;
|
||||
// Mit Überprüfung und Einhaltung der Gleichwertigkeit nach DIN 4108 - Beiblatt 2: Alle Anschlüsse erfüllen die Merkmale und Kriterien nach Kategorie B
|
||||
return 0.03;
|
||||
// Mit Überprüfung und Einhaltung der Gleichwertigkeit nach DIN 4108 - Beiblatt 2: Alle anderen Fälle als in Zeile 3 genannt
|
||||
return 0.05;
|
||||
}
|
||||
|
||||
function getSumOfWaermetransferkoeffizientTransmission(
|
||||
ausweis: BedarfsausweisWohnenClient
|
||||
) {
|
||||
// Zur Berechnung von H_Ti aller einzelnen Gebäudeteile wird von den folgenden Wärmedurchgangskoeffizienten ausgegangen:
|
||||
// Außenwand : 0.2
|
||||
// Fenster : 0.95
|
||||
// Haustür : 1.3
|
||||
// Dach : 0.13
|
||||
// Kellerdecke : 0.21
|
||||
|
||||
return (
|
||||
((ausweis.dachfenster_flaeche ?? 0) * 0.95) +
|
||||
((ausweis.fenster_flaeche_1 ?? 0) * 0.95) +
|
||||
((ausweis.fenster_flaeche_2 ?? 0) * 0.95) +
|
||||
((ausweis.fensterflaeche_nw_no ?? 0) * 0.95) +
|
||||
((ausweis.fensterflaeche_so_sw ?? 0) * 0.95) +
|
||||
((ausweis.haustuer_flaeche ?? 0) * 1.3) +
|
||||
((ausweis.dachflaeche ?? 0) * 0.13) +
|
||||
((ausweis.aussenwand_flaeche ?? 0) * 0.2) +
|
||||
// TODO: Ist das hier nötig? Kellerdecke zum unbeheizten Keller/Erdreich?
|
||||
((ausweis.fussboden_flaeche ?? 0) * 0.21)
|
||||
);
|
||||
}
|
||||
|
||||
export function berechnungNutzenergiebedarfHeizen(
|
||||
ausweis: BedarfsausweisWohnenClient
|
||||
) {
|
||||
const mittlereAussentemperatur = [
|
||||
1, 1.9, 4.7, 9.2, 14.1, 16.7, 19, 18.6, 14.3, 9.4, 4.1, 0.9,
|
||||
];
|
||||
const mindestAussenTemperatur = -12;
|
||||
const temperaturInnenHeizungSollwert = 20;
|
||||
|
||||
// A
|
||||
const huellflaeche = berechnungHuellflaeche(ausweis);
|
||||
|
||||
// DELTA_U_WB
|
||||
const waermebrueckenzuschlag = getWaermebrueckenzuschlag(ausweis);
|
||||
|
||||
// H_T,WB
|
||||
const waermebrueckenTransferKoeffizient =
|
||||
waermebrueckenzuschlag * huellflaeche;
|
||||
|
||||
// H_T,ges
|
||||
const waermeTransferKoeffizientTransmission =
|
||||
getSumOfWaermetransferkoeffizientTransmission(ausweis) + waermebrueckenTransferKoeffizient;
|
||||
|
||||
for (let i = 0; i < 12; i++) {
|
||||
const tageImMonat = new Date(0, i, 0).getDate();
|
||||
const monatName = new Date(0, i, 0).toLocaleString("de-DE", {
|
||||
month: "long",
|
||||
});
|
||||
|
||||
// Gebäudeschwere wird in der Planung festgelegt. Wir verwenden eigentlich immer mittelschwer.
|
||||
const bilanzInnenTemperatur = bilanzInnentemperaturEinfamilienhaus.find(
|
||||
(row: BilanzInnenTemperatur) => row.monat === monatName && row.zeitkonstante == 90
|
||||
);
|
||||
}
|
||||
|
||||
// const leistungHeizungWaermesenke =
|
||||
// ((waermeleistungGesamt *
|
||||
// (temperaturInnenHeizung - mindestAussenTemperatur)) /
|
||||
// (temperaturInnenHeizungSollwert - mindestAussenTemperatur)) *
|
||||
// mittlererExternerBelastungsgrad;
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
import { BedarfsausweisWohnenClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||
import { FixedLengthArray } from "./types.js";
|
||||
|
||||
export function berechnungRechnerischeLauzeitHeizung(ausweis: VerbrauchsausweisWohnenClient) {
|
||||
// TODO Tabelle A.12 (Berechnung Nutzenergiebedarf)
|
||||
const zeitkonstanteHeizung;
|
||||
|
||||
const faktorWochenendAbschaltung = 0.042;
|
||||
const zeitkonstanteRechnerischeLaufzeitEinfamilienhaus: FixedLengthArray<number, 12> = [17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17];
|
||||
const zeitkonstanteRechnerischeLaufzeitMehrfamilienhaus: FixedLengthArray<number, 12> = [19.86, 18.58, 18.69, 17.25, 17, 17, 17, 17, 17, 17.16, 18.88, 19.9];
|
||||
|
||||
let rechnerischeLaufzeiten = new Array(12).fill(0) as unknown as FixedLengthArray<number, 12>
|
||||
|
||||
if (ausweis.aufnahme.gebaeudetyp === "Einfamilienhaus") {
|
||||
for (let i = 0; i < 12; i++) {
|
||||
rechnerischeLaufzeiten[i] = zeitkonstanteHeizung * faktorWochenendAbschaltung * zeitkonstanteRechnerischeLaufzeitEinfamilienhaus[i]
|
||||
}
|
||||
} else {
|
||||
for (let i = 0; i < 12; i++) {
|
||||
rechnerischeLaufzeiten[i] = zeitkonstanteHeizung * faktorWochenendAbschaltung * zeitkonstanteRechnerischeLaufzeitMehrfamilienhaus[i]
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
rechnerischeLaufzeitGesamt: rechnerischeLaufzeiten.reduce((acc, curr) => acc + curr, 0),
|
||||
rechnerischeLaufzeiten
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
import { BedarfsausweisWohnenClient, GebaeudeAufnahmeClient } from "#components/Ausweis/types.js";
|
||||
import { berechnungNutzenergiebedarfTrinkwarmwasser } from "./BerechnungNutzenergiebedarfTrinkwarmwasser.js";
|
||||
import { FixedLengthArray } from "./types.js";
|
||||
|
||||
export function berechnungWaermequellenAusAnlagentechnikTrinkwasser(ausweis: BedarfsausweisWohnenClient, gebaeude_aufnahme: GebaeudeAufnahmeClient) {
|
||||
const trinkwasserWaermebedarf = berechnungNutzenergiebedarfTrinkwarmwasser(ausweis, gebaeude_aufnahme);
|
||||
|
||||
const result = new Array(12).fill(0) as unknown as FixedLengthArray<number, 12>
|
||||
|
||||
for (let i = 0; i < 12; i++) {
|
||||
const tageImMonat = new Date(0, i, 0).getDate();
|
||||
|
||||
const monatlicheTrinkwasserWaermebedarf = trinkwasserWaermebedarf.trinkwasserWaermebedarf / 365 * tageImMonat;
|
||||
|
||||
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
import type { VerbrauchsausweisWohnen } from "@ibcornelsen/database/client"
|
||||
|
||||
export function BerechnungWaermesenken(ausweis: VerbrauchsausweisWohnen) {
|
||||
// Außentemperatur nach Monat (Januar - Dezember)
|
||||
const aussenTemperatur = [1, 1.9, 4.7, 9.2, 14.1, 16.7, 19, 18.6, 14.3, 9.5, 4.1, 0.9];
|
||||
|
||||
const bilanzInnenTemperatur = []
|
||||
}
|
||||
Reference in New Issue
Block a user