Merge remote-tracking branch 'origin/main' into dev-moritz
This commit is contained in:
7
public/images/header/logo_immowelt.svg
Normal file
7
public/images/header/logo_immowelt.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg width="1090" height="240" viewBox="0 0 1090 240" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M127.354 233.386H478.982C550.473 233.386 601.664 186.164 601.664 120.088C601.664 53.8362 550.649 6.61414 478.982 6.61414L127.354 6.61414C55.6863 6.61414 6.61365 53.8362 6.61365 120.088C6.61365 186.164 55.8628 233.386 127.354 233.386Z" fill="#303038"/>
|
||||
<path d="M960.971 6.61414H478.981C550.648 6.61414 601.663 53.8362 601.663 120.088C601.663 186.164 550.472 233.386 478.981 233.386H960.971C1032.46 233.386 1083.39 186.164 1083.39 120.088C1083.39 53.8362 1032.64 6.61414 960.971 6.61414Z" fill="#FFCC00"/>
|
||||
<path d="M514.184 148.459C500.239 148.459 490.707 138.063 490.707 122.909C490.707 107.756 500.239 97.36 514.184 97.36C528.483 97.36 537.662 107.403 537.662 122.909C537.662 138.063 528.129 148.459 514.184 148.459ZM514.184 171.893C542.604 171.893 563.257 151.278 563.257 122.909C563.257 94.3645 542.781 73.9251 514.184 73.9251C485.941 73.9251 465.112 94.717 465.112 122.909C465.112 151.102 485.941 171.893 514.184 171.893ZM312.069 169.25H337.664V108.285C341.018 101.765 347.902 97.1838 354.786 97.1838C363.789 97.1838 370.144 104.232 370.144 114.452V169.25H395.739V108.285C398.564 101.765 405.801 97.1838 413.038 97.1838C422.041 97.1838 428.042 104.232 428.042 114.452V169.25H453.638V109.694C453.638 87.8451 439.516 73.9251 417.628 73.9251C406.154 73.9251 396.798 78.154 389.208 87.4927C383.206 78.5064 374.204 73.9251 362.906 73.9251C351.609 73.9251 341.9 78.6826 336.075 86.7879V76.3919H312.069V169.25ZM153.73 169.25H179.325V108.285C182.679 101.765 189.563 97.1838 196.448 97.1838C205.45 97.1838 211.805 104.232 211.805 114.452V169.25H237.4V108.285C240.225 101.765 247.462 97.1838 254.699 97.1838C263.702 97.1838 269.704 104.232 269.704 114.452V169.25H295.299V109.694C295.299 87.8451 281.177 73.9251 259.289 73.9251C247.815 73.9251 238.46 78.154 230.869 87.4927C224.867 78.5064 215.865 73.9251 204.568 73.9251C193.27 73.9251 183.562 78.6826 177.737 86.7879V76.3919H153.73V169.25ZM122.662 67.5818C131.135 67.5818 137.843 60.8862 137.843 52.9571C137.843 48.9382 136.244 45.0838 133.397 42.242C130.55 39.4002 126.688 37.8037 122.662 37.8037C114.013 37.8037 107.305 44.4994 107.305 52.9571C107.305 61.0624 114.013 67.5818 122.662 67.5818ZM109.776 169.25H135.372V76.3919H109.776V169.25Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M909.769 137.89C909.769 144.409 912.593 147.581 918.418 147.581C920.915 147.563 923.381 147.023 925.656 145.995L928.833 167.316C924.243 169.43 918.595 170.487 912.593 170.487C894.588 170.487 883.644 159.739 883.644 141.59V46.0889H909.769V137.89ZM711.889 76.3841L733.201 131.289L750.545 76.3841H776.493L746.309 169.243H720.538L698.772 111.147L677.468 169.243H651.697L621.16 76.3841H648.52L665.771 131.484L687 76.3841H711.889ZM994.499 143.35C990.086 146.17 985.673 147.579 980.554 147.579C972.434 147.579 967.668 143.174 967.668 135.774V99.1237H999.265V76.3936H967.668V54.016H941.543V76.3936H923.891V99.1237H941.543V138.064C941.543 158.856 955.311 171.895 977.2 171.895C987.261 171.895 995.911 169.428 1003.68 164.319L994.499 143.35ZM777.557 122.913C777.557 94.72 798.21 74.1041 826.1 74.1041C853.284 74.1041 871.113 93.1342 871.113 122.56C871.113 125.732 871.113 128.904 870.76 131.371H802.9C805.745 142.845 814.575 149.872 826.806 149.872C835.985 149.872 843.222 145.995 847.812 138.771L865.641 153.044C857.874 164.673 843.752 171.897 826.982 171.897C798.563 171.897 777.557 150.929 777.557 122.913ZM846.047 112.693C844.019 102.031 836.276 95.6011 825.57 95.6011C814.806 95.6011 806.566 102.21 803.368 112.693H846.047Z" fill="#303038"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M960.707 240H127.352C90.1346 240 58.2585 227.689 35.6342 206.325C12.9859 184.938 0 154.839 0 120.088C0 85.2615 12.9333 55.1164 35.5628 33.7018C58.1691 12.3091 90.0495 9.0111e-06 127.352 9.0111e-06L960.707 0C1035.53 0 1090 49.7061 1090 120.088C1090 190.306 1035.34 240 960.707 240ZM960.707 233.386H127.352C55.861 233.386 6.61179 186.164 6.61179 120.088C6.61179 53.8362 55.6845 6.61418 127.352 6.61418L960.707 6.61417C1032.37 6.61417 1083.39 53.8362 1083.39 120.088C1083.39 186.164 1032.2 233.386 960.707 233.386Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
35
public/images/immowelt/gewerbegebaeude_immowelt.svg
Normal file
35
public/images/immowelt/gewerbegebaeude_immowelt.svg
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 271 111.86">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: #fc0;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
fill: #222;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<g id="Wellen">
|
||||
<path class="cls-1" d="M271,66.01c-1.29,5.97-4.05,11.58-7.44,16.72-3.45,5.11-7.71,9.7-12.58,13.54-4.84,3.88-10.32,6.93-16.02,9.32-5.73,2.35-11.73,3.94-17.8,4.98-12.17,1.95-24.54,1.59-36.56-.24-12.04-1.81-23.79-5.03-35.08-9.32,11.79,2.6,23.6,4.87,35.49,6.03,5.94.54,11.89.93,17.82.81,5.93-.06,11.84-.48,17.66-1.48,11.62-1.85,22.92-5.93,32.54-12.75,4.79-3.42,9.17-7.47,12.89-12.12,3.73-4.64,6.91-9.81,9.09-15.48Z"/>
|
||||
<path class="cls-1" d="M0,87.93c5.04-3.14,10.5-5.58,16.05-7.75,5.56-2.17,11.29-3.9,17.08-5.42,11.63-2.86,23.59-4.58,35.64-5,12.04-.44,24.14.34,36.07,2.2,5.97.92,11.88,2.16,17.74,3.6,2.92.72,5.86,1.55,8.71,2.38,2.85.83,5.61,1.64,8.41,2.4,5.59,1.59,11.21,3.07,16.84,4.41,5.62,1.39,11.28,2.59,16.93,3.66,11.31,2.11,22.72,3.52,34.02,3.34,11.25-.23,22.53-2.12,32.47-7.4,2.49-1.29,4.9-2.77,7.2-4.44,2.3-1.67,4.45-3.55,6.55-5.53,4.16-3.99,7.81-8.6,11.16-13.48-2.24,5.48-5.15,10.75-8.81,15.56-3.65,4.83-8.15,9.1-13.22,12.64-5.12,3.47-10.81,6.13-16.72,8.01-5.91,1.89-12.03,2.97-18.13,3.53-12.24,1.1-24.42.14-36.31-1.64-11.9-1.82-23.57-4.56-35.04-7.76-2.87-.81-5.75-1.67-8.55-2.51-2.79-.85-5.52-1.61-8.31-2.36-5.54-1.51-11.15-2.75-16.78-3.85-11.27-2.16-22.72-3.47-34.23-3.89-11.51-.39-23.1.02-34.61,1.56-5.77.69-11.5,1.73-17.22,2.97-2.86.62-5.7,1.32-8.52,2.12-2.84.76-5.65,1.64-8.43,2.64Z"/>
|
||||
</g>
|
||||
<g id="Gewerbegebaeude">
|
||||
<path class="cls-2" d="M102.42,67.26V.5l-34.28,10.84v54.01c11.44-.32,22.93.35,34.28,1.92Z"/>
|
||||
<path class="cls-2" d="M254.81,65.15c-.02-6.59,0-45.44,0-45.44l-24.88-6.69v66.43s11.96-.84,24.22-12.71c.42-.41.66-.99.65-1.6Z"/>
|
||||
<g>
|
||||
<polygon class="cls-2" points="106.6 9.32 106.6 1.15 226.66 21.84 226.66 28.55 106.6 9.32"/>
|
||||
<polygon class="cls-2" points="107.23 23.77 107.23 14.97 226.66 32.2 226.66 38.05 107.23 23.77"/>
|
||||
<polygon class="cls-2" points="107.23 37.83 107.23 29.04 226.66 40.86 226.66 46.71 107.23 37.83"/>
|
||||
<polygon class="cls-2" points="107.23 51.97 107.23 43.18 226.66 50.12 226.66 55.97 107.23 51.97"/>
|
||||
<polygon class="cls-2" points="107.23 65.17 107.23 56.38 226.66 59.01 226.66 64.86 107.23 65.17"/>
|
||||
<path class="cls-2" d="M122.76,70.93c3.1.69,6.21,1.48,9.24,2.28,1.2.32,2.39.63,3.57.94l91.08.55v-5.86l-119.43-.7h-.09c5.22.81,10.49,1.66,15.63,2.79Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon class="cls-2" points="9.35 50.25 9.23 44.5 65.3 21.2 65.3 40.63 9.35 50.25"/>
|
||||
<polygon class="cls-2" points="65.3 55.68 9.61 61.46 9.44 53.85 65.3 44.92 65.3 55.68"/>
|
||||
<path class="cls-2" d="M43.86,67.57c7.08-1.11,14.25-1.82,21.44-2.12v-5.15l-55.63,4.35.17,7.82,34.02-4.9Z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
40
public/images/immowelt/wohngebaeude_immowelt.svg
Normal file
40
public/images/immowelt/wohngebaeude_immowelt.svg
Normal file
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 271 111.86">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: #fc0;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
fill: #222;
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
fill: #c6c6c6;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<g id="Wellen">
|
||||
<path class="cls-1" d="M271,66.01c-1.29,5.97-4.05,11.58-7.44,16.72-3.45,5.11-7.71,9.7-12.58,13.54-4.84,3.88-10.32,6.93-16.02,9.32-5.73,2.35-11.73,3.94-17.8,4.98-12.17,1.95-24.54,1.59-36.56-.24-12.04-1.81-23.79-5.03-35.08-9.32,11.79,2.6,23.6,4.87,35.49,6.03,5.94.54,11.89.93,17.82.81,5.93-.06,11.84-.48,17.66-1.48,11.62-1.85,22.92-5.93,32.54-12.75,4.79-3.42,9.17-7.47,12.89-12.12,3.73-4.64,6.91-9.81,9.09-15.48Z"/>
|
||||
<path class="cls-1" d="M0,87.93c5.04-3.14,10.5-5.58,16.05-7.75,5.56-2.17,11.29-3.9,17.08-5.42,11.63-2.86,23.59-4.58,35.64-5,12.04-.44,24.14.34,36.07,2.2,5.97.92,11.88,2.16,17.74,3.6,2.92.72,5.86,1.55,8.71,2.38,2.85.83,5.61,1.64,8.41,2.4,5.59,1.59,11.21,3.07,16.84,4.41,5.62,1.39,11.28,2.59,16.93,3.66,11.31,2.11,22.72,3.52,34.02,3.34,11.25-.23,22.53-2.12,32.47-7.4,2.49-1.29,4.9-2.77,7.2-4.44,2.3-1.67,4.45-3.55,6.55-5.53,4.16-3.99,7.81-8.6,11.16-13.48-2.24,5.48-5.15,10.75-8.81,15.56-3.65,4.83-8.15,9.1-13.22,12.64-5.12,3.47-10.81,6.13-16.72,8.01-5.91,1.89-12.03,2.97-18.13,3.53-12.24,1.1-24.42.14-36.31-1.64-11.9-1.82-23.57-4.56-35.04-7.76-2.87-.81-5.75-1.67-8.55-2.51-2.79-.85-5.52-1.61-8.31-2.36-5.54-1.51-11.15-2.75-16.78-3.85-11.27-2.16-22.72-3.47-34.23-3.89-11.51-.39-23.1.02-34.61,1.56-5.77.69-11.5,1.73-17.22,2.97-2.86.62-5.7,1.32-8.52,2.12-2.84.76-5.65,1.64-8.43,2.64Z"/>
|
||||
</g>
|
||||
<g id="Wohngebaeude">
|
||||
<g>
|
||||
<path class="cls-2" d="M62.1,66.01L103.83,11.59l52.17,63.63s72.22,24.35,98.81-11.35l-26.6-38.82-27.22-4.45V0h-19.83v39.66h-7.08v-22.76L101.52,4.02l-39.42,61.99Z"/>
|
||||
<polygon class="cls-2" points="72.53 39.06 91.66 14.16 47.37 14.16 10.07 72.88 49 19.22 72.53 39.06"/>
|
||||
<g>
|
||||
<rect class="cls-3" x="90.51" y="35.34" width="11.33" height="12.75"/>
|
||||
<rect class="cls-3" x="103.26" y="35.34" width="11.33" height="12.75"/>
|
||||
<rect class="cls-3" x="90.51" y="49.51" width="11.33" height="12.75"/>
|
||||
<rect class="cls-3" x="103.26" y="49.51" width="11.33" height="12.75"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect class="cls-3" x="40.93" y="35.41" width="5.67" height="8.5"/>
|
||||
<rect class="cls-3" x="48.02" y="35.41" width="5.67" height="8.5"/>
|
||||
<rect class="cls-3" x="40.93" y="45.33" width="5.67" height="8.5"/>
|
||||
<rect class="cls-3" x="48.02" y="45.33" width="5.67" height="8.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@@ -2,56 +2,34 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 271 111.86">
|
||||
<defs>
|
||||
<style>
|
||||
.uuid-31b37071-25c8-4180-bba8-979a017d54db {
|
||||
fill: #fff;
|
||||
}
|
||||
|
||||
.uuid-17f03b4e-e1d1-4987-9bff-ade6fe52d6f9 {
|
||||
.cls-1 {
|
||||
fill: #ff7d26;
|
||||
}
|
||||
|
||||
.uuid-1b543e95-de20-49f9-9fdf-25ce4db04fd8 {
|
||||
.cls-2 {
|
||||
fill: #445096;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<g id="uuid-9fbd4d12-41cf-439b-ac20-79a8a6d86a8c" data-name="Wellen">
|
||||
<path class="uuid-17f03b4e-e1d1-4987-9bff-ade6fe52d6f9" d="m271,66.01c-1.29,5.97-4.05,11.58-7.44,16.72-3.45,5.11-7.71,9.7-12.58,13.54-4.84,3.88-10.32,6.93-16.02,9.32-5.73,2.35-11.73,3.94-17.8,4.98-12.17,1.95-24.54,1.59-36.56-.24-12.04-1.81-23.79-5.03-35.08-9.32,11.79,2.6,23.6,4.87,35.49,6.03,5.94.54,11.89.93,17.82.81,5.93-.06,11.84-.48,17.66-1.48,11.62-1.85,22.92-5.93,32.54-12.75,4.79-3.42,9.17-7.47,12.89-12.12,3.73-4.64,6.91-9.81,9.09-15.48Z"/>
|
||||
<path class="uuid-17f03b4e-e1d1-4987-9bff-ade6fe52d6f9" d="m0,87.93c5.04-3.14,10.5-5.58,16.05-7.75,5.56-2.17,11.29-3.9,17.08-5.42,11.63-2.86,23.59-4.58,35.64-5,12.04-.44,24.14.34,36.07,2.2,5.97.92,11.88,2.16,17.74,3.6,2.92.72,5.86,1.55,8.71,2.38,2.85.83,5.61,1.64,8.41,2.4,5.59,1.59,11.21,3.07,16.84,4.41,5.62,1.39,11.28,2.59,16.93,3.66,11.31,2.11,22.72,3.52,34.02,3.34,11.25-.23,22.53-2.12,32.47-7.4,2.49-1.29,4.9-2.77,7.2-4.44,2.3-1.67,4.45-3.55,6.55-5.53,4.16-3.99,7.81-8.6,11.16-13.48-2.24,5.48-5.15,10.75-8.81,15.56-3.65,4.83-8.15,9.1-13.22,12.64-5.12,3.47-10.81,6.13-16.72,8.01-5.91,1.89-12.03,2.97-18.13,3.53-12.24,1.1-24.42.14-36.31-1.64-11.9-1.82-23.57-4.56-35.04-7.76-2.87-.81-5.75-1.67-8.55-2.51-2.79-.85-5.52-1.61-8.31-2.36-5.54-1.51-11.15-2.75-16.78-3.85-11.27-2.16-22.72-3.47-34.23-3.89-11.51-.39-23.1.02-34.61,1.56-5.77.69-11.5,1.73-17.22,2.97-2.86.62-5.7,1.32-8.52,2.12-2.84.76-5.65,1.64-8.43,2.64Z"/>
|
||||
<g id="Wellen">
|
||||
<path class="cls-1" d="M271,66.01c-1.29,5.97-4.05,11.58-7.44,16.72-3.45,5.11-7.71,9.7-12.58,13.54-4.84,3.88-10.32,6.93-16.02,9.32-5.73,2.35-11.73,3.94-17.8,4.98-12.17,1.95-24.54,1.59-36.56-.24-12.04-1.81-23.79-5.03-35.08-9.32,11.79,2.6,23.6,4.87,35.49,6.03,5.94.54,11.89.93,17.82.81,5.93-.06,11.84-.48,17.66-1.48,11.62-1.85,22.92-5.93,32.54-12.75,4.79-3.42,9.17-7.47,12.89-12.12,3.73-4.64,6.91-9.81,9.09-15.48Z"/>
|
||||
<path class="cls-1" d="M0,87.93c5.04-3.14,10.5-5.58,16.05-7.75,5.56-2.17,11.29-3.9,17.08-5.42,11.63-2.86,23.59-4.58,35.64-5,12.04-.44,24.14.34,36.07,2.2,5.97.92,11.88,2.16,17.74,3.6,2.92.72,5.86,1.55,8.71,2.38,2.85.83,5.61,1.64,8.41,2.4,5.59,1.59,11.21,3.07,16.84,4.41,5.62,1.39,11.28,2.59,16.93,3.66,11.31,2.11,22.72,3.52,34.02,3.34,11.25-.23,22.53-2.12,32.47-7.4,2.49-1.29,4.9-2.77,7.2-4.44,2.3-1.67,4.45-3.55,6.55-5.53,4.16-3.99,7.81-8.6,11.16-13.48-2.24,5.48-5.15,10.75-8.81,15.56-3.65,4.83-8.15,9.1-13.22,12.64-5.12,3.47-10.81,6.13-16.72,8.01-5.91,1.89-12.03,2.97-18.13,3.53-12.24,1.1-24.42.14-36.31-1.64-11.9-1.82-23.57-4.56-35.04-7.76-2.87-.81-5.75-1.67-8.55-2.51-2.79-.85-5.52-1.61-8.31-2.36-5.54-1.51-11.15-2.75-16.78-3.85-11.27-2.16-22.72-3.47-34.23-3.89-11.51-.39-23.1.02-34.61,1.56-5.77.69-11.5,1.73-17.22,2.97-2.86.62-5.7,1.32-8.52,2.12-2.84.76-5.65,1.64-8.43,2.64Z"/>
|
||||
</g>
|
||||
<g id="uuid-7329def7-567e-4920-b714-6e743891010b" data-name="Wohngebaeude">
|
||||
<g id="Gewerbegebaeude">
|
||||
<path class="cls-2" d="M102.42,67.26V.5l-34.28,10.84v54.01c11.44-.32,22.93.35,34.28,1.92Z"/>
|
||||
<path class="cls-2" d="M254.81,65.15c-.02-6.59,0-45.44,0-45.44l-24.88-6.69v66.43s11.96-.84,24.22-12.71c.42-.41.66-.99.65-1.6Z"/>
|
||||
<g>
|
||||
<path class="uuid-31b37071-25c8-4180-bba8-979a017d54db" d="m62.1,66.01L103.83,11.59l52.17,63.63s72.22,24.35,98.81-11.35l-26.6-38.82-27.22-4.45V0h-19.83v39.66h-7.08v-22.76L101.52,4.02l-39.42,61.99Z"/>
|
||||
<polygon class="uuid-31b37071-25c8-4180-bba8-979a017d54db" points="72.53 39.06 91.66 14.16 47.37 14.16 10.07 72.88 49 19.22 72.53 39.06"/>
|
||||
<g>
|
||||
<rect class="uuid-31b37071-25c8-4180-bba8-979a017d54db" x="90.51" y="35.34" width="11.33" height="12.75"/>
|
||||
<rect class="uuid-31b37071-25c8-4180-bba8-979a017d54db" x="103.26" y="35.34" width="11.33" height="12.75"/>
|
||||
<rect class="uuid-31b37071-25c8-4180-bba8-979a017d54db" x="90.51" y="49.51" width="11.33" height="12.75"/>
|
||||
<rect class="uuid-31b37071-25c8-4180-bba8-979a017d54db" x="103.26" y="49.51" width="11.33" height="12.75"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect class="uuid-31b37071-25c8-4180-bba8-979a017d54db" x="40.93" y="35.41" width="5.67" height="8.5"/>
|
||||
<rect class="uuid-31b37071-25c8-4180-bba8-979a017d54db" x="48.02" y="35.41" width="5.67" height="8.5"/>
|
||||
<rect class="uuid-31b37071-25c8-4180-bba8-979a017d54db" x="40.93" y="45.33" width="5.67" height="8.5"/>
|
||||
<rect class="uuid-31b37071-25c8-4180-bba8-979a017d54db" x="48.02" y="45.33" width="5.67" height="8.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="uuid-a8b79e96-2fac-427e-b8b7-d3d0001eccc1" data-name="Gewerbegebaeude">
|
||||
<path class="uuid-1b543e95-de20-49f9-9fdf-25ce4db04fd8" d="m102.42,67.26V.5l-34.28,10.84v54.01c11.44-.32,22.93.35,34.28,1.92Z"/>
|
||||
<path class="uuid-1b543e95-de20-49f9-9fdf-25ce4db04fd8" d="m254.81,65.15c-.02-6.59,0-45.44,0-45.44l-24.88-6.69v66.43s11.96-.84,24.22-12.71c.42-.41.66-.99.65-1.6Z"/>
|
||||
<g>
|
||||
<polygon class="uuid-1b543e95-de20-49f9-9fdf-25ce4db04fd8" points="106.6 9.32 106.6 1.15 226.66 21.84 226.66 28.55 106.6 9.32"/>
|
||||
<polygon class="uuid-1b543e95-de20-49f9-9fdf-25ce4db04fd8" points="107.23 23.77 107.23 14.97 226.66 32.2 226.66 38.05 107.23 23.77"/>
|
||||
<polygon class="uuid-1b543e95-de20-49f9-9fdf-25ce4db04fd8" points="107.23 37.83 107.23 29.04 226.66 40.86 226.66 46.71 107.23 37.83"/>
|
||||
<polygon class="uuid-1b543e95-de20-49f9-9fdf-25ce4db04fd8" points="107.23 51.97 107.23 43.18 226.66 50.12 226.66 55.97 107.23 51.97"/>
|
||||
<polygon class="uuid-1b543e95-de20-49f9-9fdf-25ce4db04fd8" points="107.23 65.17 107.23 56.38 226.66 59.01 226.66 64.86 107.23 65.17"/>
|
||||
<path class="uuid-1b543e95-de20-49f9-9fdf-25ce4db04fd8" d="m122.76,70.93c3.1.69,6.21,1.48,9.24,2.28,1.2.32,2.39.63,3.57.94l91.08.55v-5.86l-119.43-.7h-.09c5.22.81,10.49,1.66,15.63,2.79Z"/>
|
||||
<polygon class="cls-2" points="106.6 9.32 106.6 1.15 226.66 21.84 226.66 28.55 106.6 9.32"/>
|
||||
<polygon class="cls-2" points="107.23 23.77 107.23 14.97 226.66 32.2 226.66 38.05 107.23 23.77"/>
|
||||
<polygon class="cls-2" points="107.23 37.83 107.23 29.04 226.66 40.86 226.66 46.71 107.23 37.83"/>
|
||||
<polygon class="cls-2" points="107.23 51.97 107.23 43.18 226.66 50.12 226.66 55.97 107.23 51.97"/>
|
||||
<polygon class="cls-2" points="107.23 65.17 107.23 56.38 226.66 59.01 226.66 64.86 107.23 65.17"/>
|
||||
<path class="cls-2" d="M122.76,70.93c3.1.69,6.21,1.48,9.24,2.28,1.2.32,2.39.63,3.57.94l91.08.55v-5.86l-119.43-.7h-.09c5.22.81,10.49,1.66,15.63,2.79Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon class="uuid-1b543e95-de20-49f9-9fdf-25ce4db04fd8" points="9.35 50.25 9.23 44.5 65.3 21.2 65.3 40.63 9.35 50.25"/>
|
||||
<polygon class="uuid-1b543e95-de20-49f9-9fdf-25ce4db04fd8" points="65.3 55.68 9.61 61.46 9.44 53.85 65.3 44.92 65.3 55.68"/>
|
||||
<path class="uuid-1b543e95-de20-49f9-9fdf-25ce4db04fd8" d="m43.86,67.57c7.08-1.11,14.25-1.82,21.44-2.12v-5.15l-55.63,4.35.17,7.82,34.02-4.9Z"/>
|
||||
<polygon class="cls-2" points="9.35 50.25 9.23 44.5 65.3 21.2 65.3 40.63 9.35 50.25"/>
|
||||
<polygon class="cls-2" points="65.3 55.68 9.61 61.46 9.44 53.85 65.3 44.92 65.3 55.68"/>
|
||||
<path class="cls-2" d="M43.86,67.57c7.08-1.11,14.25-1.82,21.44-2.12v-5.15l-55.63,4.35.17,7.82,34.02-4.9Z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 2.8 KiB |
File diff suppressed because one or more lines are too long
474
public/images/right-sidebar/promo-boxes_immowelt_CD.ai
Normal file
474
public/images/right-sidebar/promo-boxes_immowelt_CD.ai
Normal file
File diff suppressed because one or more lines are too long
@@ -5,11 +5,11 @@ export const createCaller = createCallerFactory({
|
||||
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
||||
"aufnahme/[uid]": await import("../src/pages/api/aufnahme/[uid].ts"),
|
||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||
"bilder/[uid]": await import("../src/pages/api/bilder/[uid].ts"),
|
||||
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
||||
"auth/forgot-password": await import("../src/pages/api/auth/forgot-password.ts"),
|
||||
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||
"bilder/[uid]": await import("../src/pages/api/bilder/[uid].ts"),
|
||||
"objekt": await import("../src/pages/api/objekt/index.ts"),
|
||||
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
|
||||
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<script lang="ts">
|
||||
import { A14BerechnungAufwandszahlenMittlereBelastung } from "#lib/Berechnungen/BedarfsausweisWohnen/A14BerechnungAufwandszahlenMittlereBelastung.js";
|
||||
import { funktionNennleistungWaermeerzeugerWarmwasserA14 } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionNennleistungWaermeerzeugerWarmwasserA14.js";
|
||||
import { SystemModule } from "@faker-js/faker";
|
||||
|
||||
$: result = A14BerechnungAufwandszahlenMittlereBelastung();
|
||||
|
||||
@@ -28,7 +30,7 @@ $: result = A14BerechnungAufwandszahlenMittlereBelastung();
|
||||
<th colspan="1" class="border border-gray-300 px-4 py-2 text-center">Q<sub>h,b</sub> [kWh/a]<br>aus Tabelle A.12:</th>
|
||||
<th colspan="1" class="border border-gray-300 px-4 py-2 text-center bg-yellow-100">{Math.round(result.gesamtNutzenergieHeizung)}</th>
|
||||
<th colspan="1" class="border border-gray-300 px-4 py-2 text-center">t<sub>h,m</sub> [h/a]<br>aus Tabelle A.12:</th>
|
||||
<th colspan="1" class="border border-gray-300 px-4 py-2 text-center bg-yellow-100">{Math.round(result.heizstundenGesamt)}</th>
|
||||
<th colspan="1" class="border border-gray-300 px-4 py-2 text-center bg-yellow-100">{Math.round(result.gesamtHeizstunden)}</th>
|
||||
<th colspan="1" class="border border-gray-300 px-4 py-2 text-center">Φ<sub>h,max</sub> [W]<br>aus Tabelle A.6:</th>
|
||||
<th colspan="1" class="border border-gray-300 px-4 py-2 text-center bg-yellow-100">{Math.round(result.maximaleHeizlast)}</th>
|
||||
</tr>
|
||||
@@ -41,7 +43,7 @@ $: result = A14BerechnungAufwandszahlenMittlereBelastung();
|
||||
<th colspan="2" class="border border-gray-300 px-4 py-2 text-center">Übergabe</th>
|
||||
<th colspan="2" class="border border-gray-300 px-4 py-2 text-center">Verteilung</th>
|
||||
<th colspan="2" class="border border-gray-300 px-4 py-2 text-center">Speicherung</th>
|
||||
<th colspan="2" class="border border-gray-300 px-4 py-2 text-center">Erzeugung</th>
|
||||
<th colspan="2" class="border border-gray-300 px-4 py-2 text-center">Erzeugung {Math.round(result.NennleistungWaermeerzeuger*100)/100}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="border border-gray-300 px-4 py-2"></th>
|
||||
@@ -58,17 +60,24 @@ $: result = A14BerechnungAufwandszahlenMittlereBelastung();
|
||||
</thead>
|
||||
<tbody>
|
||||
{#each result.ErgebnisseAufwandsZahlenBelastungHeizung as system, index}
|
||||
<tr class="text-center">
|
||||
<td colspan="2" class="text-left border border-gray-300 px-4 py-2">flächenbezogene Heizlast [W/m²]</td>
|
||||
<td colspan="2" class="border-2 border-gray-600 px-4 py-2">{Math.round(system.flaechenbezogeneLeistungUebergabeHeizung*100)/100}</td>
|
||||
<td colspan="2" class="border-2 border-gray-600 px-4 py-2">{Math.round(system.flaechenbezogeneLeistungVerteilungHeizung*100)/100}</td>
|
||||
<td colspan="2" class="border-2 border-gray-600 px-4 py-2">{Math.round(system.flaechenbezogeneLeistungSpeicherungHeizung*100)/100}</td>
|
||||
<td colspan="2" class="border-2 border-gray-600 px-4 py-2"></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="border border-gray-300 px-4 py-2">{system.Bezeichnung}</td>
|
||||
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(system.VersorgteFlaeche*100)/100}</td>
|
||||
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(system.mittlereBelastungUebergabeHeizung*1000)/1000}</td>
|
||||
<td class="border border-gray-300 px-4 py-2 bg-blue-100">{Math.round(system.AufwandsZahlUebergabeHeizung*1000)/1000}</td>
|
||||
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(system.mittlereBelastungVerteilungHeizung*1000)/1000}</td>
|
||||
<td class="border border-gray-300 px-4 py-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 px-4 py-2"></td>
|
||||
<td class="border border-gray-300 px-4 py-2 bg-blue-100"></td>
|
||||
<td class="border-2 border-gray-600 px-4 py-2"></td>
|
||||
<td class="border border-gray-300 px-4 py-2 bg-blue-100"></td>
|
||||
<td class="border border-gray-300 px-4 py-2 bg-blue-100">{Math.round(system.AufwandsZahlVerteilungHeizung*1000)/1000}</td>
|
||||
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(system.mittlereBelastungSpeicherungHeizung*1000)/1000}</td>
|
||||
<td class="border border-gray-300 px-4 py-2 bg-blue-100">{Math.round(system.AufwandsZahlSpeicherungHeizung*1000)/1000}</td>
|
||||
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(system.mittlereBelastungErzaegungHeizung*1000)/1000}</td>
|
||||
<td class="border border-gray-300 px-4 py-2 bg-blue-100">{Math.round(system.AufwandsZahlErzeugungHeizung*1000)/1000}</td>
|
||||
</tr>
|
||||
{/each}
|
||||
<tr>
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
<script>
|
||||
import { PRICES } from "#lib/constants";
|
||||
export let bullets;
|
||||
export let title;
|
||||
|
||||
bullets = [
|
||||
["Prüfung durch Dipl. Ing.<br>Registrierung beim DiBt<br>rechtssicher nach GEG",true, true, true],
|
||||
["Originalausweis als PDF per <span class='text-nowrap'>E-Mail</span><br>Originalausweis per Post (zubuchbar)",true, true, true],
|
||||
["Bearbeitung innerhalb 24 Stunden<br>Selbsteingabe",true, true, false],
|
||||
["Same day service (zubuchbar)",true, true, false],
|
||||
["Fotoupload<br>Dokumentenupload<br>(Verbrauchsabrechnungen)",true, true, true],
|
||||
["automatische Vorprüfung<br>Live Vorschau direkt bei Eingabe<br>Live Vorschauausweis vorab<br>Vorschauausweis per E-Mail<br>dynamische Eingabehilfe",true, true, false],
|
||||
["Prüfanmerkungen per <span class='text-nowrap'>E-Mail</span>",true, true, false],
|
||||
["persönlicher Support",false, true, true],
|
||||
["telefonische Beratung<br>persönlicher Energieberater",false, false, true],
|
||||
]
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<h1>Produktübersicht: <span class="text-secondary">Bedarfssausweis Gewerbegebäude</span></h1>
|
||||
<h3>Bedarfssausweis Leistungen und Preise in der Übersicht:</h3>
|
||||
|
||||
<hr>
|
||||
<br>
|
||||
|
||||
<div id="ProduktUebersichtBedarfssausweisGewerbe">
|
||||
|
||||
<div class="w-full sm:w-[90%] sm:mx-auto grid grid-cols-[1fr_max-content_max-content_max-content] sm:grid-cols-[1fr_min-content_min-content_min-content]">
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center sm:text-[1.25rem]">
|
||||
<div class="justify-self-start pl-2"><b>Leistung</b></div><div><b>online</b></div><div><b>premium</b></div><div><b>offline</b></div>
|
||||
</div>
|
||||
|
||||
{#each bullets as [bullet,online,premium,offline]}
|
||||
<div class="bullet grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center">
|
||||
<div class="justify-self-start pl-2">{@html bullet}</div>
|
||||
<div class:check={online} class:check-no={!online}>{online ? "✔" : "✘"}</div>
|
||||
<div class:check={premium} class:check-no={!premium}>{premium ? "✔" : "✘"}</div>
|
||||
<div class:check={offline} class:check-no={!offline}>{offline ? "✔" : "✘"}</div>
|
||||
</div>
|
||||
{/each}
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center sm:text-[1.25rem]">
|
||||
<div class="price justify-self-start pl-2">Preis inkl. MwSt.</div>
|
||||
<div class="price"><b>{PRICES.BedarfsausweisGewerbe[0]} €</b></div>
|
||||
<div class="price"><b>{PRICES.BedarfsausweisGewerbe[1]} €</b></div>
|
||||
<div class="price"><b>{PRICES.BedarfsausweisGewerbe[2]} €</b></div>
|
||||
</div>
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center">
|
||||
<div class="justify-self-start pl-2"></div>
|
||||
<button class="bestellbutton" type="button">jetzt<br>anfragen</button>
|
||||
<button class="bestellbutton" type="button">jetzt<br>anfragen</button>
|
||||
<button class="bestellbutton" type="button">jetzt<br>anfragen</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<style lang="postcss">
|
||||
|
||||
.bestellbutton{@apply px-[2px] sm:px-4 mx-[2px] sm:mx-2 py-2 bg-secondary ring-2 ring-secondary/25 rounded-none xs:rounded-md text-white text-nowrap font-bold
|
||||
hover:bg-gradient-to-br from-secondary to-secondary-grad hover:shadow-lg transition-all hover:no-underline hover:ring-2 hover:ring-primary;}
|
||||
|
||||
|
||||
|
||||
|
||||
.zeile{@apply text-[0.6rem] sm:text-[1rem] md:text-[1.5rem]}
|
||||
.bullet{@apply text-[0.75rem] sm:text-[1rem] md:text-[1.25rem]}
|
||||
.bullet:nth-child(even){@apply bg-blue-100/40}
|
||||
.bullet:nth-child(2){@apply !border-t-[6px]}
|
||||
.bullet:nth-child(10){@apply !border-b-[6px]}
|
||||
|
||||
.check {
|
||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-green-700;
|
||||
}
|
||||
.check-no {
|
||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-red-700;
|
||||
}
|
||||
|
||||
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,87 @@
|
||||
<script>
|
||||
import { PRICES } from "#lib/constants";
|
||||
export let bullets;
|
||||
export let title;
|
||||
|
||||
bullets = [
|
||||
["Prüfung durch Dipl. Ing.<br>Registrierung beim DiBt<br>rechtssicher nach GEG",true, true, true],
|
||||
["Originalausweis als PDF per <span class='text-nowrap'>E-Mail</span><br>Originalausweis per Post (zubuchbar)",true, true, true],
|
||||
["Bearbeitung innerhalb 24 Stunden<br>Selbsteingabe",true, true, false],
|
||||
["Same day service (zubuchbar)",true, true, false],
|
||||
["Fotoupload<br>Dokumentenupload<br>(Verbrauchsabrechnungen)",true, true, true],
|
||||
["automatische Vorprüfung<br>Live Vorschau direkt bei Eingabe<br>Live Vorschauausweis vorab<br>Vorschauausweis per E-Mail<br>dynamische Eingabehilfe",true, true, false],
|
||||
["Prüfanmerkungen per <span class='text-nowrap'>E-Mail</span>",true, true, false],
|
||||
["persönlicher Support",false, true, true],
|
||||
["telefonische Beratung<br>persönlicher Energieberater",false, false, true],
|
||||
]
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<h1>Produktübersicht: <span class="text-secondary">Bedarfssausweis Wohngebäude</span></h1>
|
||||
<h3>Bedarfssausweis Leistungen und Preise in der Übersicht:</h3>
|
||||
|
||||
<hr>
|
||||
<br>
|
||||
|
||||
<div id="ProduktUebersichtBedarfssausweisWohnen">
|
||||
|
||||
<div class="w-full sm:w-[90%] sm:mx-auto grid grid-cols-[1fr_max-content_max-content_max-content] sm:grid-cols-[1fr_min-content_min-content_min-content]">
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center sm:text-[1.25rem]">
|
||||
<div class="justify-self-start pl-2"><b>Leistung</b></div><div><b>online</b></div><div><b>premium</b></div><div><b>offline</b></div>
|
||||
</div>
|
||||
|
||||
{#each bullets as [bullet,online,premium,offline]}
|
||||
<div class="bullet grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center">
|
||||
<div class="justify-self-start pl-2">{@html bullet}</div>
|
||||
<div class:check={online} class:check-no={!online}>{online ? "✔" : "✘"}</div>
|
||||
<div class:check={premium} class:check-no={!premium}>{premium ? "✔" : "✘"}</div>
|
||||
<div class:check={offline} class:check-no={!offline}>{offline ? "✔" : "✘"}</div>
|
||||
</div>
|
||||
{/each}
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center sm:text-[1.25rem]">
|
||||
<div class="price justify-self-start pl-2">Preis inkl. MwSt.</div>
|
||||
<div class="price"><b>{PRICES.BedarfsausweisWohnen[0]} €</b></div>
|
||||
<div class="price"><b>{PRICES.BedarfsausweisWohnen[1]} €</b></div>
|
||||
<div class="price"><b>{PRICES.BedarfsausweisWohnen[2]} €</b></div>
|
||||
</div>
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center">
|
||||
<div class="justify-self-start pl-2"></div>
|
||||
<button class="bestellbutton" type="button">sofort<br>bestellen</button>
|
||||
<button class="bestellbutton" type="button">sofort<br>bestellen</button>
|
||||
<button class="bestellbutton" type="button">sofort<br>bestellen</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<style lang="postcss">
|
||||
|
||||
.bestellbutton{@apply px-[2px] sm:px-4 mx-[2px] sm:mx-2 py-2 bg-secondary ring-2 ring-secondary/25 rounded-none xs:rounded-md text-white text-nowrap font-bold
|
||||
hover:bg-gradient-to-br from-secondary to-secondary-grad hover:shadow-lg transition-all hover:no-underline hover:ring-2 hover:ring-primary;}
|
||||
|
||||
|
||||
|
||||
|
||||
.zeile{@apply text-[0.6rem] sm:text-[1rem] md:text-[1.5rem]}
|
||||
.bullet{@apply text-[0.75rem] sm:text-[1rem] md:text-[1.25rem]}
|
||||
.bullet:nth-child(even){@apply bg-blue-100/40}
|
||||
.bullet:nth-child(2){@apply !border-t-[6px]}
|
||||
.bullet:nth-child(10){@apply !border-b-[6px]}
|
||||
|
||||
.check {
|
||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-green-700;
|
||||
}
|
||||
.check-no {
|
||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-red-700;
|
||||
}
|
||||
|
||||
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,87 @@
|
||||
<script>
|
||||
import { PRICES } from "#lib/constants";
|
||||
export let bullets;
|
||||
export let title;
|
||||
|
||||
bullets = [
|
||||
["Prüfung durch Dipl. Ing.<br>Registrierung beim DiBt<br>rechtssicher nach GEG",true, true, true],
|
||||
["Originalausweis als PDF per <span class='text-nowrap'>E-Mail</span><br>Originalausweis per Post (zubuchbar)",true, true, true],
|
||||
["Bearbeitung innerhalb 24 Stunden<br>Selbsteingabe",true, true, false],
|
||||
["Same day service (zubuchbar)",true, true, false],
|
||||
["Fotoupload<br>Dokumentenupload<br>(Verbrauchsabrechnungen)",true, true, true],
|
||||
["automatische Vorprüfung<br>Live Vorschau direkt bei Eingabe<br>Live Vorschauausweis vorab<br>Vorschauausweis per E-Mail<br>dynamische Eingabehilfe",true, true, false],
|
||||
["Prüfanmerkungen per <span class='text-nowrap'>E-Mail</span>",true, true, false],
|
||||
["persönlicher Support",false, true, true],
|
||||
["telefonische Beratung<br>persönlicher Energieberater",false, false, true],
|
||||
]
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<h1>Produktübersicht: <span class="text-secondary">Verbrauchsausweis Gewerbegebäude</span></h1>
|
||||
<h3>Verbrauchsausweis Leistungen und Preise in der Übersicht:</h3>
|
||||
|
||||
<hr>
|
||||
<br>
|
||||
|
||||
<div id="ProduktUebersichtVerbrauchsausweisGewerbe">
|
||||
|
||||
<div class="w-full sm:w-[90%] sm:mx-auto grid grid-cols-[1fr_max-content_max-content_max-content] sm:grid-cols-[1fr_min-content_min-content_min-content]">
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center sm:text-[1.25rem]">
|
||||
<div class="justify-self-start pl-2"><b>Leistung</b></div><div><b>online</b></div><div><b>premium</b></div><div><b>offline</b></div>
|
||||
</div>
|
||||
|
||||
{#each bullets as [bullet,online,premium,offline]}
|
||||
<div class="bullet grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center">
|
||||
<div class="justify-self-start pl-2">{@html bullet}</div>
|
||||
<div class:check={online} class:check-no={!online}>{online ? "✔" : "✘"}</div>
|
||||
<div class:check={premium} class:check-no={!premium}>{premium ? "✔" : "✘"}</div>
|
||||
<div class:check={offline} class:check-no={!offline}>{offline ? "✔" : "✘"}</div>
|
||||
</div>
|
||||
{/each}
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center sm:text-[1.25rem]">
|
||||
<div class="price justify-self-start pl-2">Preis inkl. MwSt.</div>
|
||||
<div class="price"><b>{PRICES.VerbrauchsausweisGewerbe[0]} €</b></div>
|
||||
<div class="price"><b>{PRICES.VerbrauchsausweisGewerbe[1]} €</b></div>
|
||||
<div class="price"><b>{PRICES.VerbrauchsausweisGewerbe[2]} €</b></div>
|
||||
</div>
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center">
|
||||
<div class="justify-self-start pl-2"></div>
|
||||
<button class="bestellbutton" type="button">sofort<br>bestellen</button>
|
||||
<button class="bestellbutton" type="button">sofort<br>bestellen</button>
|
||||
<button class="bestellbutton" type="button">sofort<br>bestellen</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<style lang="postcss">
|
||||
|
||||
.bestellbutton{@apply px-[2px] sm:px-4 mx-[2px] sm:mx-2 py-2 bg-secondary ring-2 ring-secondary/25 rounded-none xs:rounded-md text-white text-nowrap font-bold
|
||||
hover:bg-gradient-to-br from-secondary to-secondary-grad hover:shadow-lg transition-all hover:no-underline hover:ring-2 hover:ring-primary;}
|
||||
|
||||
|
||||
|
||||
|
||||
.zeile{@apply text-[0.6rem] sm:text-[1rem] md:text-[1.5rem]}
|
||||
.bullet{@apply text-[0.75rem] sm:text-[1rem] md:text-[1.25rem]}
|
||||
.bullet:nth-child(even){@apply bg-blue-100/40}
|
||||
.bullet:nth-child(2){@apply !border-t-[6px]}
|
||||
.bullet:nth-child(10){@apply !border-b-[6px]}
|
||||
|
||||
.check {
|
||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-green-700;
|
||||
}
|
||||
.check-no {
|
||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-red-700;
|
||||
}
|
||||
|
||||
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,87 @@
|
||||
<script>
|
||||
import { PRICES } from "#lib/constants";
|
||||
export let bullets;
|
||||
export let title;
|
||||
|
||||
bullets = [
|
||||
["Prüfung durch Dipl. Ing.<br>Registrierung beim DiBt<br>rechtssicher nach GEG",true, true, true],
|
||||
["Originalausweis als PDF per <span class='text-nowrap'>E-Mail</span><br>Originalausweis per Post (zubuchbar)",true, true, true],
|
||||
["Bearbeitung innerhalb 24 Stunden<br>Selbsteingabe",true, true, false],
|
||||
["Same day service (zubuchbar)",true, true, false],
|
||||
["Fotoupload<br>Dokumentenupload<br>(Verbrauchsabrechnungen)",true, true, true],
|
||||
["automatische Vorprüfung<br>Live Vorschau direkt bei Eingabe<br>Live Vorschauausweis vorab<br>Vorschauausweis per E-Mail<br>dynamische Eingabehilfe",true, true, false],
|
||||
["Prüfanmerkungen per <span class='text-nowrap'>E-Mail</span>",true, true, false],
|
||||
["persönlicher Support",false, true, true],
|
||||
["telefonische Beratung<br>persönlicher Energieberater",false, false, true],
|
||||
]
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<h1>Produktübersicht: <span class="text-secondary">Verbrauchsausweis Wohngebäude</span></h1>
|
||||
<h3>Verbrauchsausweis Leistungen und Preise in der Übersicht:</h3>
|
||||
|
||||
<hr>
|
||||
<br>
|
||||
|
||||
<div id="ProduktUebersichtVerbrauchsausweisWohnen">
|
||||
|
||||
<div class="w-full sm:w-[90%] sm:mx-auto grid grid-cols-[1fr_max-content_max-content_max-content] sm:grid-cols-[1fr_min-content_min-content_min-content]">
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center sm:text-[1.25rem]">
|
||||
<div class="justify-self-start pl-2"><b>Leistung</b></div><div><b>online</b></div><div><b>premium</b></div><div><b>offline</b></div>
|
||||
</div>
|
||||
|
||||
{#each bullets as [bullet,online,premium,offline]}
|
||||
<div class="bullet grid grid-cols-subgrid col-span-4 py-4 border-b-[1px] justify-items-center items-center">
|
||||
<div class="justify-self-start pl-2">{@html bullet}</div>
|
||||
<div class:check={online} class:check-no={!online}>{online ? "✔" : "✘"}</div>
|
||||
<div class:check={premium} class:check-no={!premium}>{premium ? "✔" : "✘"}</div>
|
||||
<div class:check={offline} class:check-no={!offline}>{offline ? "✔" : "✘"}</div>
|
||||
</div>
|
||||
{/each}
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center sm:text-[1.25rem]">
|
||||
<div class="price justify-self-start pl-2">Preis inkl. MwSt.</div>
|
||||
<div class="price"><b>{PRICES.VerbrauchsausweisWohnen[0]} €</b></div>
|
||||
<div class="price"><b>{PRICES.VerbrauchsausweisWohnen[1]} €</b></div>
|
||||
<div class="price"><b>{PRICES.VerbrauchsausweisWohnen[2]} €</b></div>
|
||||
</div>
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center">
|
||||
<div class="justify-self-start pl-2"></div>
|
||||
<button class="bestellbutton" type="button">sofort<br>bestellen</button>
|
||||
<button class="bestellbutton" type="button">sofort<br>bestellen</button>
|
||||
<button class="bestellbutton" type="button">sofort<br>bestellen</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<style lang="postcss">
|
||||
|
||||
.bestellbutton{@apply px-[2px] sm:px-4 mx-[2px] sm:mx-2 py-2 bg-secondary ring-2 ring-secondary/25 rounded-none xs:rounded-md text-white text-nowrap font-bold
|
||||
hover:bg-gradient-to-br from-secondary to-secondary-grad hover:shadow-lg transition-all hover:no-underline hover:ring-2 hover:ring-primary;}
|
||||
|
||||
|
||||
|
||||
|
||||
.zeile{@apply text-[0.6rem] sm:text-[1rem] md:text-[1.5rem]}
|
||||
.bullet{@apply text-[0.75rem] sm:text-[1rem] md:text-[1.25rem]}
|
||||
.bullet:nth-child(even){@apply bg-blue-100/40}
|
||||
.bullet:nth-child(2){@apply !border-t-[6px]}
|
||||
.bullet:nth-child(10){@apply !border-b-[6px]}
|
||||
|
||||
.check {
|
||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-green-700;
|
||||
}
|
||||
.check-no {
|
||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-red-700;
|
||||
}
|
||||
|
||||
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
||||
|
||||
</style>
|
||||
@@ -3,7 +3,8 @@
|
||||
export let name: string;
|
||||
export let variant: string;
|
||||
export let services: [string, boolean][];
|
||||
export let href: string;
|
||||
export let href_buy: string;
|
||||
export let href_overview: string;
|
||||
export let src: string;
|
||||
export let alt: string;
|
||||
export let empfehlung: string;
|
||||
@@ -30,9 +31,7 @@
|
||||
/>
|
||||
<div class="justify-self-start">
|
||||
<p class="promo">
|
||||
<span class="[font-family:Antique_Olive_Compact_bold]">
|
||||
ab {price} €
|
||||
</span>
|
||||
ab {price} €
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -42,7 +41,7 @@
|
||||
|
||||
<!--<div class="sumCent variante justify-self-end">{variant}</div>-->
|
||||
|
||||
<div class="sumCent sumRows">
|
||||
<div class="sumCent sumRows forServices">
|
||||
|
||||
{#each services as [service, check]}
|
||||
<div class="services">
|
||||
@@ -57,12 +56,12 @@
|
||||
|
||||
<div class="sumCent buttoncols">
|
||||
<a
|
||||
{href}
|
||||
href="{href_buy}"
|
||||
class="buttoncol">jetzt online erstellen</a
|
||||
>
|
||||
|
||||
<a
|
||||
{href}
|
||||
href="{href_overview}"
|
||||
class="buttoncol">Produktübersicht</a
|
||||
>
|
||||
|
||||
@@ -76,32 +75,43 @@
|
||||
<style lang="postcss">
|
||||
|
||||
|
||||
.sumCent{@apply justify-self-center col-span-2 mb-6}
|
||||
.sumRows{@apply grid grid-rows-subgrid row-span-5}
|
||||
.image{@apply w-[75%] pl-12}
|
||||
.buttoncols{@apply grid grid-cols-2 gap-x-10}
|
||||
.buttoncol{@apply w-full justify-self-center text-center text-white bg-secondary rounded-md px-3 py-1 no-underline
|
||||
hover:bg-primary}
|
||||
.promo{@apply tracking-tighter text-[1.75rem] text-gray-700 pl-0 m-0 -mt-4;
|
||||
|
||||
.sumCent{@apply justify-self-center col-span-2 md:mb-6}
|
||||
.sumRows{@apply hidden md:grid grid-rows-subgrid row-span-5}
|
||||
.forServices{@apply block}
|
||||
|
||||
.image{@apply w-[75%] justify-self-center
|
||||
md:w-[75%] md:pl-12}
|
||||
|
||||
.buttoncols{@apply grid grid-cols-1 gap-x-10 w-full
|
||||
md:grid-cols-2 md:w-[auto]}
|
||||
|
||||
.buttoncol{@apply mt-[0.5rem] text-center text-black bg-[#ffcc00] rounded-md px-3 py-1 no-underline
|
||||
hover:bg-[#222222] hover:text-white}
|
||||
|
||||
|
||||
.promo{@apply tracking-tighter text-[2rem] text-gray-700 pl-12 m-0 -mt-4;
|
||||
font-family: "Antique Olive Compact bold";}
|
||||
|
||||
.titel {@apply col-span-2 text-center [font-size:_clamp(14px,2.5vw,28px)]}
|
||||
|
||||
|
||||
.titel {@apply col-span-2 text-center [font-size:_clamp(20px,2.5vw,28px)]}
|
||||
.empfehlung{@apply bg-red-700 text-[0.75rem] text-white px-2 py-1 rounded-sm rotate-[5deg]}
|
||||
.variante {
|
||||
@apply col-span-2 -mt-2 text-xl w-fit text-black justify-self-end;
|
||||
}
|
||||
|
||||
.services {
|
||||
@apply text-start py-1 grid grid-cols-[1fr_minmax(10px,50px)] items-center;
|
||||
@apply hidden w-full text-start py-1 md:grid md:grid-cols-[1fr_50px]
|
||||
}
|
||||
.services:not(:last-child) {
|
||||
@apply border-b-[1px] border-gray-200;
|
||||
}
|
||||
.check {
|
||||
@apply justify-self-end font-bold text-green-700;
|
||||
@apply justify-self-end self-center font-bold text-green-700;
|
||||
}
|
||||
.check-no {
|
||||
@apply justify-self-end font-bold text-red-700;
|
||||
@apply justify-self-end self-center font-bold text-red-700;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
76
src/components/design/header/AusweisHeaderImmowelt.astro
Normal file
76
src/components/design/header/AusweisHeaderImmowelt.astro
Normal file
@@ -0,0 +1,76 @@
|
||||
---
|
||||
import HeaderLogin from "#components/design/header/HeaderLogin.svelte";
|
||||
---
|
||||
|
||||
<header id="header">
|
||||
|
||||
<div id="header-grid" class="grid relative bg-white items-center gap-x-4 pt-4 px-0
|
||||
|
||||
grid-cols-1
|
||||
sm:grid-cols-1
|
||||
md:grid-cols-1
|
||||
|
||||
lg:grid-cols-[1fr_minmax(450px,450px)] lg:gap-x-3 lg:px-4 lg:py-4
|
||||
xl:grid-cols-[1fr_minmax(450px,450px)] xl:gap-x-4 xl:px-6 xl:py-4
|
||||
2xl:grid-cols-[1fr_minmax(450px,450px)] 2xl:gap-x-5 2xl:px-6 2xl:py-4">
|
||||
|
||||
<div class="justify-self-center xs:justify-self-start">
|
||||
|
||||
<div class="grid grid-cols-1 px-2 gap-2 gap-y-1
|
||||
xs:grid-cols-[max-content,1fr] xs:gap-x-2 xs:px-4
|
||||
md:gap-y-4
|
||||
lg:px-0 lg:gap-x-4">
|
||||
|
||||
<div class="ml-4 mb-2 mt-2 mr-4">
|
||||
<a href="/">
|
||||
<img id="header-logo" class="w-109
|
||||
xs:max-w-[109px]
|
||||
sm:max-w-[109px]
|
||||
md:max-w-[109px] md:ml-6
|
||||
lg:max-w-[109px] lg:ml-0
|
||||
xl:max-w-[109px] xl:ml-0
|
||||
"
|
||||
src="/images/header/logo_immowelt.svg" alt="Immowelt-Logo"/>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="text-center md:justify-self-start xs:mt-[20px] md:mt-[18px]">
|
||||
<div id="header-text-2" class="text-color:#303038ff justify-self-center
|
||||
xs:[font-size:_clamp(15px,4vw,28px)] xs:justify-self-start xs:leading-[20px]
|
||||
lg:[font-size:_clamp(15px,3vw,20px)]
|
||||
lg:leading-[2rem]
|
||||
xl:[font-size:_clamp(15px,3vw,24px)]
|
||||
xl:leading-[0.5rem]">
|
||||
Hier komfortabel und einfach online den <b>Verbrauchsausweis Wohnen</b> bestellen
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="w-full justify-self-center">
|
||||
<HeaderLogin client:load />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-start-1 col-span-3">
|
||||
<div id="header-line" class="px-2 flex flex-row w-full justify-end items-center bg-gray-200 h-[30px]
|
||||
lg:h-[30px] xl:h-[30px]"></div>
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
<style>
|
||||
.header-button {
|
||||
@apply px-4 py-2 text-primary-content font-medium text-lg tracking-normal hover:bg-secondary h-full;
|
||||
}
|
||||
</style>
|
||||
86
src/components/design/header/AusweisHeaderImmowelt2.astro
Normal file
86
src/components/design/header/AusweisHeaderImmowelt2.astro
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
import HeaderLogin from "#components/design/header/HeaderLogin.svelte";
|
||||
---
|
||||
|
||||
<header id="header">
|
||||
|
||||
<div id="header-grid" class="grid relative bg-white items-center gap-x-4 pt-4 px-0
|
||||
|
||||
grid-cols-1
|
||||
sm:grid-cols-1
|
||||
md:grid-cols-1
|
||||
|
||||
lg:grid-cols-[1fr_minmax(450px,450px)] lg:gap-x-3 lg:px-4 lg:py-4
|
||||
xl:grid-cols-[1fr_minmax(450px,450px)] xl:gap-x-4 xl:px-6 xl:py-4
|
||||
2xl:grid-cols-[1fr_minmax(450px,450px)] 2xl:gap-x-5 2xl:px-6 2xl:py-4"
|
||||
|
||||
<div class="justify-self-center xs:justify-self-start">
|
||||
|
||||
<div class="grid grid-cols-1 px-2 gap-2 gap-y-1
|
||||
xs:grid-cols-[max-content,1fr] xs:gap-x-2 xs:px-4
|
||||
md:gap-y-4
|
||||
lg:px-0 lg:gap-x-4">
|
||||
|
||||
<div class="self-center justify-self-center ml-4 mb-2 background-image" >
|
||||
<a href="/">
|
||||
<img id="header-logo" class="w-full
|
||||
xs:max-w-[150px]
|
||||
sm:max-w-[150px]
|
||||
md:max-w-[150px] md:ml-6
|
||||
lg:max-w-[150px] lg:ml-0
|
||||
xl:max-w-[150px] xl:ml-0
|
||||
"
|
||||
src="/images/header/logo_immowelt.svg" alt="Immowelt-Logo"/>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="self-center justify-self-center md:justify-self-start xs:mt-[20px] md:mt-[18px]">
|
||||
|
||||
<div id="header-text-1"class="text-secondary justify-self-center
|
||||
xs:[font-size:_clamp(15px,5vw,36px)] xs:justify-self-start xs:leading-[36px]
|
||||
|
||||
lg:[font-size:_clamp(15px,3vw,26px)]
|
||||
lg:leading-[2rem]
|
||||
xl:[font-size:_clamp(15px,3vw,36px)]
|
||||
xl:leading-[4.5rem] pt-[0px]">
|
||||
</div>
|
||||
|
||||
<div id="header-text-2"class="text-primary justify-self-center
|
||||
xs:[font-size:_clamp(15px,4vw,28px)] xs:justify-self-start xs:leading-[20px]
|
||||
|
||||
lg:[font-size:_clamp(15px,3vw,20px)]
|
||||
lg:leading-[2rem]
|
||||
xl:[font-size:_clamp(15px,3vw,24px)]
|
||||
xl:leading-[0.5rem]">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="w-full justify-self-center">
|
||||
<HeaderLogin client:load />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-start-1 col-span-3">
|
||||
<div id="header-line" class="px-2 flex flex-row w-full justify-end items-center bg-immowelt-gelb
|
||||
lg:h-[8px] xl:h-[8px]"></div>
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
<style>
|
||||
.header-button {
|
||||
@apply px-4 py-2 text-primary-content font-medium text-lg tracking-normal hover:bg-secondary h-full;
|
||||
}
|
||||
</style>
|
||||
@@ -20,15 +20,15 @@
|
||||
|
||||
<hr class="trenner">
|
||||
<div>Bedarfsausweis Gewerbe</div>
|
||||
<div>ab <span class="price">300€</span> inkl. MwSt.</div>
|
||||
<div>ab <span class="price">{PRICES.BedarfsausweisGewerbe[0]}€</span> inkl. MwSt.</div>
|
||||
|
||||
<hr class="trenner">
|
||||
<div>GEG-Nachweis Wohngebäude</div>
|
||||
<div>ab <span class="price">400€</span> inkl. MwSt.</div>
|
||||
<div>ab <span class="price">000€</span> inkl. MwSt.</div>
|
||||
|
||||
<hr class="trenner">
|
||||
<div>GEG-Nachweis Gewerbe</div>
|
||||
<div>ab <span class="price">450€</span> inkl. MwSt.</div>
|
||||
<div>ab <span class="price">000€</span> inkl. MwSt.</div>
|
||||
|
||||
<hr class="mt-2">
|
||||
|
||||
|
||||
@@ -3,86 +3,46 @@
|
||||
import WidgetCardTemplate from "#components/design/content/WidgetCardTemplate.svelte";
|
||||
import { PRICES } from "#lib/constants.js";
|
||||
|
||||
let gebaeudetyp: string;
|
||||
let anlass: string;
|
||||
let einheiten: string;
|
||||
let sanierungsstatus: string;
|
||||
let baujahr: string;
|
||||
let heizungsAlter: string;
|
||||
let leerStand: string;
|
||||
|
||||
|
||||
const allowedTypes = [
|
||||
"Einfamilienhaus",
|
||||
"Zweifamilienhaus",
|
||||
"Mehrfamilienhaus",
|
||||
"Mischgebäude",
|
||||
];
|
||||
const allowedTypesGewerbe = ["Gewerbegebäude", "Mischgebäude"];
|
||||
const allowedReason = ["Vermietung/Verkauf", "sonstiges", "Aushangpflicht"];
|
||||
|
||||
let showVerbrauchsausweis: boolean = false
|
||||
|
||||
$: {
|
||||
if (baujahr === "vor 1978") {
|
||||
showVerbrauchsausweis =
|
||||
allowedReason.includes(anlass) &&
|
||||
allowedTypes.includes(gebaeudetyp) &&
|
||||
(einheiten === "mehr als 4 Wohneinheiten" ||
|
||||
sanierungsstatus === "saniert") && (leerStand === "bis 30") && (heizungsAlter === ">= 3");
|
||||
} else {
|
||||
showVerbrauchsausweis =
|
||||
allowedReason.includes(anlass) &&
|
||||
allowedTypes.includes(gebaeudetyp) && (leerStand === "bis 30") && (heizungsAlter === ">= 3");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function row3col(){
|
||||
var x = document.getElementById('anlass').value;
|
||||
|
||||
if(allowedReason.includes(x)){
|
||||
document.getElementById('firstrow').style.gridTemplateColumns = "repeat(3, minmax(0, 1fr))";
|
||||
}else{
|
||||
document.getElementById('firstrow').style.gridTemplateColumns = "repeat(2, minmax(0, 1fr))";
|
||||
|
||||
}
|
||||
let gebaeudetyp: string = "bitte auswählen";
|
||||
let anlass: string = "bitte auswählen";
|
||||
let einheiten: string = "bitte auswählen";
|
||||
let sanierungsstatus: string = "bitte auswählen";
|
||||
let baujahr: string = "bitte auswählen";
|
||||
let heizungsAlter: string = "bitte auswählen";
|
||||
let leerStand: string = "bitte auswählen";
|
||||
|
||||
const twoBoxReason = ["Vermietung/Verkauf", "Aushangpflicht", "Sonstiges"];
|
||||
const gewerbeHouse = ["Gewerbegebäude", "Mischgebäude"];
|
||||
|
||||
|
||||
function getBoxes(){
|
||||
if(twoBoxReason.includes(anlass)){
|
||||
|
||||
document.getElementById('firstrow')?.classList.remove('md:grid-cols-2');
|
||||
document.getElementById('firstrow')?.classList.add('md:grid-cols-3');
|
||||
}else{
|
||||
|
||||
document.getElementById('firstrow')?.classList.remove('md:grid-cols-3');
|
||||
document.getElementById('firstrow')?.classList.add('md:grid-cols-2');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
let ausnahme: boolean = false
|
||||
|
||||
function getDivs(){
|
||||
let anzahl;
|
||||
if(showVerbrauchsausweis){console.log('1');anzahl=2;}
|
||||
if(allowedReason.includes(anlass) && allowedTypes.includes(gebaeudetyp)){console.log('2');anzahl=2;}
|
||||
if(allowedReason.includes(anlass) && allowedTypesGewerbe.includes(gebaeudetyp)){console.log('3');anzahl=2;}
|
||||
if(allowedReason.includes(anlass) && allowedTypesGewerbe.includes(gebaeudetyp)){console.log('4');anzahl=4;}
|
||||
|
||||
var cols = 'grid-cols-'+anzahl
|
||||
|
||||
if(anzahl==1){
|
||||
|
||||
}else if(anzahl==2) {
|
||||
var x = document.getElementById('thirdrow')?.children;
|
||||
console.log(x);
|
||||
// for (let i = 0; i < x.length; i++) {
|
||||
// x[i].classList.remove('col-span-1');
|
||||
// x[i].classList.add('col-span-2');
|
||||
//}
|
||||
|
||||
}else if(anzahl==4) {
|
||||
var x = document.getElementById('thirdrow')?.children;
|
||||
console.log(x);
|
||||
// for (let i = 0; i < x.length; i++) {
|
||||
// x[i].classList.remove('col-span-2');
|
||||
// x[i].classList.add('col-span-1');
|
||||
//}
|
||||
}
|
||||
|
||||
$: {
|
||||
|
||||
ausnahme = ((leerStand === "mehr als 30") || (heizungsAlter === "< 3") || (baujahr === "vor 1978" && einheiten === "bis 4 Wohneinheiten" && sanierungsstatus === "unsaniert"))
|
||||
? true
|
||||
: false;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<div id="OEA_widget">
|
||||
<input id="recode" type="hidden" value="widgetvorlage" />
|
||||
|
||||
@@ -96,7 +56,7 @@ if(anzahl==1){
|
||||
<select
|
||||
id="anlass"
|
||||
class="selectfeld"
|
||||
bind:value={anlass} on:change={getDivs} on:change={row3col}
|
||||
bind:value={anlass} on:change={getBoxes}
|
||||
>
|
||||
<option selected disabled>bitte auswählen</option>
|
||||
<option value="Vermietung/Verkauf"
|
||||
@@ -106,7 +66,7 @@ if(anzahl==1){
|
||||
<option value="Neubau">Neubau</option>
|
||||
<option value="Erweiterung">Erweiterung</option>
|
||||
<option value="Aushangpflicht">Aushangpflicht</option>
|
||||
<option value="sonstiges">sonstiges z.B. Bank</option>
|
||||
<option value="Sonstiges">Sonstiges z.B. Bank</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@@ -114,7 +74,7 @@ if(anzahl==1){
|
||||
<div class="titel">Gebäudetyp</div>
|
||||
<select
|
||||
class="selectfeld"
|
||||
bind:value={gebaeudetyp} on:change={getDivs}
|
||||
bind:value={gebaeudetyp} on:change={getBoxes}
|
||||
>
|
||||
<option selected disabled>bitte auswählen</option>
|
||||
<option value="Einfamilienhaus">Einfamilienhaus</option>
|
||||
@@ -125,13 +85,13 @@ if(anzahl==1){
|
||||
</select>
|
||||
</div>
|
||||
|
||||
{#if allowedReason.includes(anlass)}
|
||||
{#if twoBoxReason.includes(anlass)}
|
||||
<div class="auswahl">
|
||||
<div class="titel">Sanierungsstand</div>
|
||||
<select
|
||||
on:change={getDivs}
|
||||
class="selectfeld"
|
||||
bind:value={sanierungsstatus}
|
||||
class="selectfeld"
|
||||
bind:value={sanierungsstatus} on:change={getBoxes}
|
||||
|
||||
>
|
||||
<option selected disabled>bitte auswählen</option>
|
||||
<option value="saniert">saniert</option>
|
||||
@@ -142,13 +102,15 @@ if(anzahl==1){
|
||||
|
||||
</div>
|
||||
|
||||
{#if allowedReason.includes(anlass)}
|
||||
{#if twoBoxReason.includes(anlass)}
|
||||
<div id="secondrow" class="secondrow">
|
||||
<div class="auswahl">
|
||||
<div class="titel">Baujahr</div>
|
||||
<select
|
||||
id="baujahr"
|
||||
class="selectfeld"
|
||||
bind:value={baujahr}
|
||||
|
||||
>
|
||||
<option selected disabled>bitte auswählen</option>
|
||||
<option value="vor 1978">vor 1978</option>
|
||||
@@ -162,7 +124,7 @@ if(anzahl==1){
|
||||
class="selectfeld"
|
||||
bind:value={heizungsAlter}
|
||||
>
|
||||
<option value=">= 3" selected disabled>bitte auswählen</option>
|
||||
<option selected disabled>bitte auswählen</option>
|
||||
<option value="< 3">jünger als 3 Jahre</option>
|
||||
<option value=">= 3">3 Jahre oder älter</option>
|
||||
</select>
|
||||
@@ -187,34 +149,31 @@ if(anzahl==1){
|
||||
<div class="OEA_item4">
|
||||
<div class="titel">Leerstand</div>
|
||||
<select
|
||||
class="selectfeld"
|
||||
class="selectfeld ausnahmen"
|
||||
bind:value={leerStand}
|
||||
>
|
||||
<option value="bis 30" selected disabled>bitte auswählen</option>
|
||||
<option value="bis 30"
|
||||
>bis 30%</option
|
||||
>
|
||||
<option value="mehr als 30"
|
||||
>mehr als 30%</option
|
||||
>
|
||||
<option selected disabled>bitte auswählen</option>
|
||||
<option value="bis 30">bis 30%</option>
|
||||
<option value="mehr als 30">mehr als 30%</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div id="thirdrow" class="thirdrow">
|
||||
{#if showVerbrauchsausweis}
|
||||
<div id="thirdrow" class="thirdrow">
|
||||
{#if twoBoxReason.includes(anlass) && (gebaeudetyp != "Gewerbegebäude") && (ausnahme === false)}
|
||||
|
||||
<div
|
||||
class="produktbox"
|
||||
transition:fade={{ duration: 1000 }}
|
||||
transition:fade={{ duration: 200 }}
|
||||
>
|
||||
<WidgetCardTemplate
|
||||
name="Verbrauchsausweis Wohngebäude"
|
||||
price={PRICES.VerbrauchsausweisWohnen[0]}
|
||||
src="/images/right-sidebar/wohngebaeude.svg"
|
||||
src="/images/immowelt/wohngebaeude_immowelt.svg"
|
||||
alt="Wohnhaus Verbrauchsausweis"
|
||||
variant="einfach"
|
||||
empfehlung="nein"
|
||||
services={[
|
||||
["3 Jahresverbräuche der Heizung benötigt.", true],
|
||||
["Zulässig bei Vermietung oder Verkauf.", true],
|
||||
@@ -222,22 +181,21 @@ if(anzahl==1){
|
||||
["Ungenau durch individuelles Heizverhalten.", false],
|
||||
["Wird nicht immer bei den Banken akzeptiert.", false]
|
||||
]}
|
||||
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/"
|
||||
href_buy="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/"
|
||||
href_overview="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/produkt-uebersicht/"
|
||||
></WidgetCardTemplate>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
|
||||
{#if allowedReason.includes(anlass) && allowedTypes.includes(gebaeudetyp)}
|
||||
{#if twoBoxReason.includes(anlass) && (gebaeudetyp != "Gewerbegebäude")}
|
||||
<div
|
||||
class="produktbox"
|
||||
transition:fade={{ duration: 1000 }}
|
||||
transition:fade={{ duration: 200 }}
|
||||
>
|
||||
<WidgetCardTemplate
|
||||
name="Bedarfsausweis Wohngebäude"
|
||||
price={PRICES.BedarfsausweisWohnen[0]}
|
||||
src="/images/right-sidebar/wohngebaeude.svg"
|
||||
src="/images/immowelt/wohngebaeude_immowelt.svg"
|
||||
alt="Wohnhaus Bedarfsausweis"
|
||||
variant="fundiert"
|
||||
empfehlung="ja"
|
||||
@@ -248,70 +206,48 @@ if(anzahl==1){
|
||||
["Kann als Grundlage für den ISFP dienen.", true],
|
||||
["Objektivere Berechnungsmethode nach DIN 18599.", true],
|
||||
]}
|
||||
href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude/"
|
||||
href_buy="/energieausweis-erstellen/bedarfsausweis-wohngebaeude/"
|
||||
href_overview="/energieausweis-erstellen/bedarfsausweis-wohngebaeude/produkt-uebersicht/"
|
||||
></WidgetCardTemplate>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if allowedReason.includes(anlass) && allowedTypesGewerbe.includes(gebaeudetyp)}
|
||||
{#if twoBoxReason.includes(anlass) && gewerbeHouse.includes(gebaeudetyp)}
|
||||
<div
|
||||
class="produktbox"
|
||||
transition:fade={{ duration: 1000 }}
|
||||
transition:fade={{ duration: 200 }}
|
||||
>
|
||||
<WidgetCardTemplate
|
||||
name="Verbrauchsausweis Gewerbegebäude"
|
||||
price={PRICES.VerbrauchsausweisGewerbe[0]}
|
||||
src="/images/right-sidebar/gewerbegebaeude.svg"
|
||||
src="/images/immowelt/gewerbegebaeude_immowelt.svg"
|
||||
alt="Gewerbe Verbrauchsausweis"
|
||||
variant="einfach"
|
||||
empfehlung="nein"
|
||||
services={[
|
||||
|
||||
["3 Jahresverbräuche von Heizung Gebäudestrom nötig.", true],
|
||||
["3 Jahresverbräuche von Heizung Gebäudestrom nötig.", true],
|
||||
["Zulässig bei Vermietung oder Verkauf.", true],
|
||||
["Für bauliche und energetische Maßnahmen ungeeignet.", false],
|
||||
["Wird nicht immer bei den Banken akzeptiert.", false],
|
||||
["xxx", false],
|
||||
]}
|
||||
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe/"
|
||||
href_buy="/energieausweis-erstellen/verbrauchsausweis-gewerbe/"
|
||||
href_overview="/energieausweis-erstellen/verbrauchsausweis-gewerbe/produkt-uebersicht/"
|
||||
></WidgetCardTemplate>
|
||||
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if allowedReason.includes(anlass) == false && allowedTypesGewerbe.includes(gebaeudetyp)}
|
||||
{#if twoBoxReason.includes(anlass) && gewerbeHouse.includes(gebaeudetyp)}
|
||||
<div
|
||||
class="produktbox"
|
||||
transition:fade={{ duration: 1000 }}
|
||||
>
|
||||
<WidgetCardTemplate
|
||||
name="GEG-Nachweis Gewerbegebäude"
|
||||
price={PRICES.BedarfsausweisGewerbe[0]}
|
||||
src="/images/right-sidebar/gewerbegebaeude.svg"
|
||||
alt="Gewerbe Bedarfsausweis"
|
||||
variant="Bauvorlage"
|
||||
services={[
|
||||
|
||||
["xxx", true],
|
||||
["xxx", true],
|
||||
["xxx", false],
|
||||
["xxx", false],
|
||||
["xxx", false],
|
||||
]}
|
||||
href="/energieausweis-erstellen/bedarfsausweis-gewerbe/"
|
||||
></WidgetCardTemplate>
|
||||
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if allowedReason.includes(anlass) && allowedTypesGewerbe.includes(gebaeudetyp)}
|
||||
<div
|
||||
class="produktbox"
|
||||
transition:fade={{ duration: 1000 }}
|
||||
transition:fade={{ duration: 200 }}
|
||||
>
|
||||
<WidgetCardTemplate
|
||||
name="Bedarfsausweis Gewerbegebäude"
|
||||
price={PRICES.BedarfsausweisGewerbe[0]}
|
||||
src="/images/right-sidebar/gewerbegebaeude.svg"
|
||||
src="/images/immowelt/gewerbegebaeude_immowelt.svg"
|
||||
alt="Gewerbe Bedarfsausweis"
|
||||
variant="fundiert"
|
||||
empfehlung="ja"
|
||||
@@ -319,14 +255,69 @@ if(anzahl==1){
|
||||
|
||||
["Mehrzonenmodell nach DIN 18599.", true],
|
||||
["Zulässig bei Vermietung oder Verkauf.", true],
|
||||
["Grundlage für Sanierung-Varianten.", false],
|
||||
["Objektiveres, besser vergleichbares Ergebnis.", false],
|
||||
["Grundlage für Sanierung-Varianten.", true],
|
||||
["Objektiveres, besser vergleichbares Ergebnis.", true],
|
||||
["xxx", false],
|
||||
]}
|
||||
href="/energieausweis-erstellen/bedarfsausweis-gewerbe/"
|
||||
href_buy="/energieausweis-erstellen/bedarfsausweis-gewerbe/"
|
||||
href_overview="/energieausweis-erstellen/bedarfsausweis-gewerbe/produkt-uebersicht/"
|
||||
></WidgetCardTemplate>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if (anlass != "bitte auswählen") && !twoBoxReason.includes(anlass) && (gebaeudetyp != "Gewerbegebäude")}
|
||||
<div
|
||||
class="produktbox"
|
||||
transition:fade={{ duration: 200 }}
|
||||
>
|
||||
<WidgetCardTemplate
|
||||
name="GEG-Nachweis Wohngebäude"
|
||||
price={PRICES.BedarfsausweisGewerbe[0]}
|
||||
src="/images/immowelt/gewerbegebaeude_immowelt.svg"
|
||||
alt="Gewerbe Bedarfsausweis"
|
||||
variant="Bauvorlage"
|
||||
empfehlung="nein"
|
||||
services={[
|
||||
|
||||
["xxx", true],
|
||||
["xxx", true],
|
||||
["xxx", false],
|
||||
["xxx", false],
|
||||
["xxx", false],
|
||||
]}
|
||||
href="/energieausweis-erstellen/bedarfsausweis-gewerbe/"
|
||||
|
||||
></WidgetCardTemplate>
|
||||
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if (anlass != "bitte auswählen") && !twoBoxReason.includes(anlass) && gewerbeHouse.includes(gebaeudetyp)}
|
||||
<div
|
||||
class="produktbox"
|
||||
transition:fade={{ duration: 200 }}
|
||||
>
|
||||
<WidgetCardTemplate
|
||||
name="GEG-Nachweis Gewerbegebäude"
|
||||
price={PRICES.BedarfsausweisGewerbe[0]}
|
||||
src="/images/immowelt/gewerbegebaeude_immowelt.svg"
|
||||
alt="Gewerbe Bedarfsausweis"
|
||||
variant="Bauvorlage"
|
||||
empfehlung="nein"
|
||||
services={[
|
||||
|
||||
["xxx", true],
|
||||
["xxx", true],
|
||||
["xxx", false],
|
||||
["xxx", false],
|
||||
["xxx", false],
|
||||
]}
|
||||
href="/energieausweis-erstellen/bedarfsausweis-gewerbe/"
|
||||
></WidgetCardTemplate>
|
||||
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -349,31 +340,53 @@ if(anzahl==1){
|
||||
src: url("/fonts/Antique Olive Std Compact.woff2") format('woff2');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "immo Sans";
|
||||
src: url('/fonts/Immo-Sans/immoSans-Regular.eot');
|
||||
src: url('/fonts/Immo-Sans/immoSans-Regular.eot?#iefix') format('embedded-opentype'),
|
||||
url('/fonts/Immo-Sans/immoSans-Regular.woff2') format('woff2'),
|
||||
url('/fonts/Immo-Sans/immoSans-Regular.woff') format('woff');
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
*{font-family: "Heron";}
|
||||
@font-face {
|
||||
font-family: "immo Sans Bold";
|
||||
src: url('/fonts/Immo-Sans/immoSans-Bold.eot');
|
||||
src: url('/fonts/Immo-Sans/immoSans-Bold.eot?#iefix') format('embedded-opentype'), url('../../Fonts/Immo-Sans/immoSans-Bold.woff2') format('woff2'), url('../../Fonts/Immo-Sans/immoSans-Bold.woff') format('woff');
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
|
||||
*{font-family: "immo Sans";}
|
||||
|
||||
#OEA_widget {
|
||||
@apply min-w-[640px] max-w-[1920px] p-[10px];
|
||||
@apply min-w-[320px] max-w-[1920px] p-[4px]
|
||||
sm:p-[10px];
|
||||
|
||||
.firstrow{@apply grid grid-cols-2 gap-x-4 gap-y-2;
|
||||
.firstrow{@apply grid grid-cols-1 gap-x-4 gap-y-2
|
||||
sm:grid-cols-2 sm:gap-x-4 sm:gap-y-2;
|
||||
|
||||
.titel{@apply text-white font-sans font-bold bg-[#444f94] px-2 py-1 rounded-[0.25rem];}
|
||||
.titel{@apply text-black font-bold bg-[#ffcc00] px-2 py-1 rounded-[0.25rem];}
|
||||
|
||||
.selectfeld{@apply w-full px-2 py-1 min-h-[38px] ring-1 ring-black/15}
|
||||
|
||||
}
|
||||
|
||||
.secondrow{@apply grid grid-cols-4 gap-x-4 gap-y-2 mt-4;
|
||||
.secondrow{@apply grid grid-cols-2 gap-x-4 gap-y-2 mt-4
|
||||
sm:grid-cols-4 sm:gap-x-4 sm:gap-y-2;
|
||||
|
||||
.titel{@apply text-black font-sans font-bold bg-[#cccccc] px-2 py-1 rounded-[0.25rem];}
|
||||
.titel{@apply text-black font-bold bg-[#cccccc] px-2 py-1 rounded-[0.25rem];}
|
||||
|
||||
.selectfeld{@apply w-full px-2 py-1 min-h-[38px] ring-1 ring-black/15}
|
||||
|
||||
}
|
||||
|
||||
.thirdrow{@apply grid grid-cols-4 gap-x-4 gap-y-2;
|
||||
.thirdrow{@apply grid grid-cols-2 gap-x-4 gap-y-2
|
||||
md:grid-cols-4 md:gap-x-4 md:gap-y-2;
|
||||
|
||||
.produktbox{@apply grid grid-cols-subgrid col-span-2 grid-rows-subgrid row-span-12 rounded-sm bg-black/5 rounded-lg
|
||||
.produktbox{@apply grid grid-cols-subgrid col-span-2 grid-rows-subgrid row-span-3 md:row-span-12 bg-black/5 rounded-lg
|
||||
px-2 py-2 mt-5;
|
||||
box-shadow:2px 2px 8px rgba(0,0,0,0.25)
|
||||
|
||||
|
||||
@@ -46,9 +46,6 @@ console.log(scroll);
|
||||
|
||||
document.getElementById('formInput-1')?.classList.remove('2xl:mt-[370px]');
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
156
src/layouts/AusweisLayoutDatenImmowelt.astro
Normal file
156
src/layouts/AusweisLayoutDatenImmowelt.astro
Normal file
@@ -0,0 +1,156 @@
|
||||
---
|
||||
import "../style/global.css";
|
||||
import "../style/formular.css";
|
||||
import "../../svelte-dialogs.config"
|
||||
import Header from "#components/design/header/AusweisHeaderImmowelt.astro";
|
||||
import Footer from "#components/design/footer/Footer.astro";
|
||||
import { NotificationWrapper } from "@ibcornelsen/ui";
|
||||
|
||||
export interface Props {
|
||||
title: string;
|
||||
}
|
||||
|
||||
const { title } = Astro.props;
|
||||
---
|
||||
<script>
|
||||
window.addEventListener("scroll", (event) => {
|
||||
let scroll = window.scrollY;
|
||||
|
||||
|
||||
|
||||
console.log(scroll);
|
||||
if(scroll>=400){
|
||||
|
||||
document.getElementById('skala')?.classList.add('2xl:fixed','2xl:py-4','2xl:top-0','2xl:z-20');
|
||||
document.getElementById('skala')?.classList.remove('w-full');
|
||||
|
||||
|
||||
document.getElementById('skala').style.borderBottom = "3px solid #e6e6e6";
|
||||
|
||||
|
||||
document.getElementById('performance-box').style.maxWidth = "688.5px";
|
||||
document.getElementById('progress-box').style.maxWidth = "688.5px";
|
||||
|
||||
document.getElementById('formInput-1')?.classList.add('2xl:mt-[370px]');
|
||||
|
||||
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
document.getElementById('skala')?.classList.remove('2xl:fixed','2xl:py-4','2xl:top-0','2xl:z-20');
|
||||
document.getElementById('skala')?.classList.add('w-full');
|
||||
|
||||
document.getElementById('skala').style.borderBottom = "none";
|
||||
|
||||
document.getElementById('formInput-1')?.classList.remove('2xl:mt-[370px]');
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.jpg" />
|
||||
|
||||
<meta
|
||||
name="description"
|
||||
content="✅ Jetzt Ihren Energieausweis online erstellen. Erhalten Sie Ihren online Energieausweis rechtssicher und nach aktueller GEG (vormals EnEV) vom Diplom Ingenieur geprüft."
|
||||
/>
|
||||
<link rel="canonical" href="https://online-energieausweis.org/" />
|
||||
|
||||
<meta property="og:locale" content="de_DE" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="Energieausweis online erstellen - Online Energieausweis"
|
||||
/>
|
||||
<meta
|
||||
property="og:description"
|
||||
content="✅ Jetzt Ihren Energieausweis online erstellen. Erhalten Sie Ihren online Energieausweis rechtssicher und nach aktueller GEG (vormals EnEV) vom Diplom Ingenieur geprüft."
|
||||
/>
|
||||
<meta property="og:url" content="https://online-energieausweis.org/" />
|
||||
<meta property="og:site_name" content="Energieausweis online erstellen" />
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta
|
||||
name="twitter:description"
|
||||
content="✅ Jetzt Ihren Energieausweis online erstellen. Erhalten Sie Ihren online Energieausweis rechtssicher und nach aktueller GEG (vormals EnEV) vom Diplom Ingenieur geprüft."
|
||||
/>
|
||||
<meta
|
||||
name="twitter:title"
|
||||
content="Energieausweis online erstellen - Online Energieausweis"
|
||||
/>
|
||||
<meta
|
||||
name="twitter:image"
|
||||
content="https://online-energieausweis.org/images/energieausweis-online-erstellen.jpg"
|
||||
/>
|
||||
<title>
|
||||
{title || 'Energieausweis online erstellen - Online Energieausweis'}
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<Header />
|
||||
|
||||
<main
|
||||
class="w-full p-0 grid
|
||||
xs:grid-cols-[minmax(1fr)] xs:gap-1 xs:p-0
|
||||
sm:grid-cols-[minmax(1fr)] sm:gap-1 sm:p-0
|
||||
md:grid-cols-[minmax(1fr)] md:gap-2 md:p-0
|
||||
lg:grid-cols-[minmax(1fr)] lg:gap-3 lg:p-4
|
||||
xl:grid-cols-[minmax(1fr)] xl:gap-4 xl:p-6
|
||||
2xl:grid-cols-[minmax(1fr)] 2xl:gap-5 2xl:p-6
|
||||
">
|
||||
|
||||
|
||||
<article class="box rounded-tl-none p-2 lg:p-12">
|
||||
<slot />
|
||||
</article>
|
||||
|
||||
</main>
|
||||
|
||||
<Footer />
|
||||
<NotificationWrapper client:load />
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<style is:global lang="postcss">
|
||||
body {
|
||||
min-height: 100vh;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
article {
|
||||
p, h1, h2, h3, h4, h5, h6 {
|
||||
@apply text-base-content;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.headline {
|
||||
@apply text-lg;
|
||||
}
|
||||
|
||||
.radio-inline {
|
||||
@apply flex flex-row gap-2;
|
||||
}
|
||||
|
||||
.checkbox-inline {
|
||||
@apply flex flex-row gap-2;
|
||||
}
|
||||
|
||||
</style>
|
||||
156
src/layouts/AusweisLayoutDatenImmowelt2.astro
Normal file
156
src/layouts/AusweisLayoutDatenImmowelt2.astro
Normal file
@@ -0,0 +1,156 @@
|
||||
---
|
||||
import "../style/global.css";
|
||||
import "../style/formular.css";
|
||||
import "../../svelte-dialogs.config"
|
||||
import Header from "#components/design/header/AusweisHeaderImmowelt2.astro";
|
||||
import Footer from "#components/design/footer/Footer.astro";
|
||||
import { NotificationWrapper } from "@ibcornelsen/ui";
|
||||
|
||||
export interface Props {
|
||||
title: string;
|
||||
}
|
||||
|
||||
const { title } = Astro.props;
|
||||
---
|
||||
<script>
|
||||
window.addEventListener("scroll", (event) => {
|
||||
let scroll = window.scrollY;
|
||||
|
||||
|
||||
|
||||
console.log(scroll);
|
||||
if(scroll>=400){
|
||||
|
||||
document.getElementById('skala')?.classList.add('2xl:fixed','2xl:py-4','2xl:top-0','2xl:z-20');
|
||||
document.getElementById('skala')?.classList.remove('w-full');
|
||||
|
||||
|
||||
document.getElementById('skala').style.borderBottom = "3px solid #e6e6e6";
|
||||
|
||||
|
||||
document.getElementById('performance-box').style.maxWidth = "688.5px";
|
||||
document.getElementById('progress-box').style.maxWidth = "688.5px";
|
||||
|
||||
document.getElementById('formInput-1')?.classList.add('2xl:mt-[370px]');
|
||||
|
||||
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
document.getElementById('skala')?.classList.remove('2xl:fixed','2xl:py-4','2xl:top-0','2xl:z-20');
|
||||
document.getElementById('skala')?.classList.add('w-full');
|
||||
|
||||
document.getElementById('skala').style.borderBottom = "none";
|
||||
|
||||
document.getElementById('formInput-1')?.classList.remove('2xl:mt-[370px]');
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.jpg" />
|
||||
|
||||
<meta
|
||||
name="description"
|
||||
content="✅ Jetzt Ihren Energieausweis online erstellen. Erhalten Sie Ihren online Energieausweis rechtssicher und nach aktueller GEG (vormals EnEV) vom Diplom Ingenieur geprüft."
|
||||
/>
|
||||
<link rel="canonical" href="https://online-energieausweis.org/" />
|
||||
|
||||
<meta property="og:locale" content="de_DE" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="Energieausweis online erstellen - Online Energieausweis"
|
||||
/>
|
||||
<meta
|
||||
property="og:description"
|
||||
content="✅ Jetzt Ihren Energieausweis online erstellen. Erhalten Sie Ihren online Energieausweis rechtssicher und nach aktueller GEG (vormals EnEV) vom Diplom Ingenieur geprüft."
|
||||
/>
|
||||
<meta property="og:url" content="https://online-energieausweis.org/" />
|
||||
<meta property="og:site_name" content="Energieausweis online erstellen" />
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta
|
||||
name="twitter:description"
|
||||
content="✅ Jetzt Ihren Energieausweis online erstellen. Erhalten Sie Ihren online Energieausweis rechtssicher und nach aktueller GEG (vormals EnEV) vom Diplom Ingenieur geprüft."
|
||||
/>
|
||||
<meta
|
||||
name="twitter:title"
|
||||
content="Energieausweis online erstellen - Online Energieausweis"
|
||||
/>
|
||||
<meta
|
||||
name="twitter:image"
|
||||
content="https://online-energieausweis.org/images/energieausweis-online-erstellen.jpg"
|
||||
/>
|
||||
<title>
|
||||
{title || 'Energieausweis online erstellen - Online Energieausweis'}
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<Header />
|
||||
|
||||
<main
|
||||
class="w-full p-0 grid
|
||||
xs:grid-cols-[minmax(1fr)] xs:gap-1 xs:p-0
|
||||
sm:grid-cols-[minmax(1fr)] sm:gap-1 sm:p-0
|
||||
md:grid-cols-[minmax(1fr)] md:gap-2 md:p-0
|
||||
lg:grid-cols-[minmax(1fr)] lg:gap-3 lg:p-4
|
||||
xl:grid-cols-[minmax(1fr)] xl:gap-4 xl:p-6
|
||||
2xl:grid-cols-[minmax(1fr)] 2xl:gap-5 2xl:p-6
|
||||
">
|
||||
|
||||
|
||||
<article class="box rounded-tl-none p-2 lg:p-12">
|
||||
<slot />
|
||||
</article>
|
||||
|
||||
</main>
|
||||
|
||||
<Footer />
|
||||
<NotificationWrapper client:load />
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<style is:global lang="postcss">
|
||||
body {
|
||||
min-height: 100vh;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
article {
|
||||
p, h1, h2, h3, h4, h5, h6 {
|
||||
@apply text-base-content;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.headline {
|
||||
@apply text-lg;
|
||||
}
|
||||
|
||||
.radio-inline {
|
||||
@apply flex flex-row gap-2;
|
||||
}
|
||||
|
||||
.checkbox-inline {
|
||||
@apply flex flex-row gap-2;
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -1,10 +1,10 @@
|
||||
import { funktionAusnutzungsgrad } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionAusnutzungsgrad.js";
|
||||
import { funktionWaermesenken } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionWaermesenken.js";
|
||||
import { funktionAusnutzungsgradT18 } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionAusnutzungsgradT18.js";
|
||||
import { funktionWaermesenkenA8A12 } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionWaermesenkenA8A12.js";
|
||||
import { A11BerechnungWaermequellenZusammenstellung } from "#lib/Berechnungen/BedarfsausweisWohnen/A11BerechnungWaermequellenZusammenstellung.js";
|
||||
|
||||
export function A12BerechnungNutzenergiebedarfHeizung() {
|
||||
|
||||
const result = funktionWaermesenken();
|
||||
const result = funktionWaermesenkenA8A12();
|
||||
const belastungsgrade = result.belastungsgrade;
|
||||
const bilanzInnenTemperaturen = result.bilanzInnenTemperaturen;
|
||||
const waermeSenken = result.waermeSenken;
|
||||
@@ -107,18 +107,18 @@ let monatlicheBelastungDezember = 0;
|
||||
waermequellensenkenverhaeltnisNovember = waermeQuellen.November / waermeSenken.November;
|
||||
waermequellensenkenverhaeltnisDezember = waermeQuellen.Dezember / waermeSenken.Dezember;
|
||||
|
||||
ausnutzungsgradJanuar = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisJanuar, ZeitKonstante, "alleMonate");
|
||||
ausnutzungsgradFebruar = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisFebruar, ZeitKonstante, "alleMonate");
|
||||
ausnutzungsgradMärz = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisMärz, ZeitKonstante, "alleMonate");
|
||||
ausnutzungsgradApril = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisApril, ZeitKonstante, "alleMonate");
|
||||
ausnutzungsgradMai = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisMai, ZeitKonstante, "alleMonate");
|
||||
ausnutzungsgradJuni = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisJuni, ZeitKonstante, "alleMonate");
|
||||
ausnutzungsgradJuli = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisJuli, ZeitKonstante, "alleMonate");
|
||||
ausnutzungsgradAugust = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisAugust, ZeitKonstante, "alleMonate");
|
||||
ausnutzungsgradSeptember = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisSeptember, ZeitKonstante, "alleMonate");
|
||||
ausnutzungsgradOktober = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisOktober, ZeitKonstante, "alleMonate");
|
||||
ausnutzungsgradNovember = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisNovember, ZeitKonstante, "alleMonate");
|
||||
ausnutzungsgradDezember = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisDezember, ZeitKonstante, "alleMonate");
|
||||
ausnutzungsgradJanuar = funktionAusnutzungsgradT18(ZeitKonstante, waermequellensenkenverhaeltnisJanuar);
|
||||
ausnutzungsgradFebruar = funktionAusnutzungsgradT18(ZeitKonstante, waermequellensenkenverhaeltnisFebruar);
|
||||
ausnutzungsgradMärz = funktionAusnutzungsgradT18(ZeitKonstante, waermequellensenkenverhaeltnisMärz);
|
||||
ausnutzungsgradApril = funktionAusnutzungsgradT18(ZeitKonstante, waermequellensenkenverhaeltnisApril);
|
||||
ausnutzungsgradMai = funktionAusnutzungsgradT18(ZeitKonstante, waermequellensenkenverhaeltnisMai);
|
||||
ausnutzungsgradJuni = funktionAusnutzungsgradT18(ZeitKonstante, waermequellensenkenverhaeltnisJuni);
|
||||
ausnutzungsgradJuli = funktionAusnutzungsgradT18(ZeitKonstante, waermequellensenkenverhaeltnisJuli);
|
||||
ausnutzungsgradAugust = funktionAusnutzungsgradT18(ZeitKonstante, waermequellensenkenverhaeltnisAugust);
|
||||
ausnutzungsgradSeptember = funktionAusnutzungsgradT18(ZeitKonstante, waermequellensenkenverhaeltnisSeptember);
|
||||
ausnutzungsgradOktober = funktionAusnutzungsgradT18(ZeitKonstante, waermequellensenkenverhaeltnisOktober);
|
||||
ausnutzungsgradNovember = funktionAusnutzungsgradT18(ZeitKonstante, waermequellensenkenverhaeltnisNovember);
|
||||
ausnutzungsgradDezember = funktionAusnutzungsgradT18(ZeitKonstante, waermequellensenkenverhaeltnisDezember);
|
||||
|
||||
faktorBelastungJanuar = Math.max(1 - (waermequellensenkenverhaeltnisJanuar * ausnutzungsgradJanuar), 0);
|
||||
faktorBelastungFebruar = Math.max(1 - (waermequellensenkenverhaeltnisFebruar * ausnutzungsgradFebruar), 0);
|
||||
|
||||
@@ -1,101 +1,162 @@
|
||||
import { A6BerechnungWaermeTransferMaxStroemeLueftungGesamt } from "#lib/Berechnungen/BedarfsausweisWohnen/A6BerechnungWaermeTransferMaxStroemeLueftungGesamt.js";
|
||||
import { A9BerechnungNutzenergiebedarfTrinkwarmwasser } from "#lib/Berechnungen/BedarfsausweisWohnen/A9BerechnungNutzenergiebedarfTrinkwarmwasser.js";
|
||||
import { A12BerechnungNutzenergiebedarfHeizung } from "#lib/Berechnungen/BedarfsausweisWohnen/A12BerechnungNutzenergiebedarfHeizung.js";
|
||||
import { A13BerechnungRechnerischeLaufzeitHeizung } from "#lib/Berechnungen/BedarfsausweisWohnen/A13BerechnungRechnerischeLaufzeitHeizung.js";
|
||||
import { funktionKorrekturfaktorMittlereBelastungT32 } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionKorrekturfaktorMittlereBelastungT32.js";
|
||||
import { funktionNennleistungWaermeerzeugerWarmwasserA14 } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionNennleistungWaermeerzeugerWarmwasserA14.js";
|
||||
import { funktionAufwandszahlErzeugungHeizungT77 } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionAufwandszahlErzeugungHeizungT77.js";
|
||||
|
||||
|
||||
export function A14BerechnungAufwandszahlenMittlereBelastung() {
|
||||
|
||||
const result = A12BerechnungNutzenergiebedarfHeizung();
|
||||
const heizstunden = {
|
||||
Januar: result.heizstundenJanuar,
|
||||
Februar: result.heizstundenFebruar,
|
||||
Maerz: result.heizstundenMärz,
|
||||
April: result.heizstundenApril,
|
||||
Mai: result.heizstundenMai,
|
||||
Juni: result.heizstundenJuni,
|
||||
Juli: result.heizstundenJuli,
|
||||
August: result.heizstundenAugust,
|
||||
September: result.heizstundenSeptember,
|
||||
Oktober: result.heizstundenOktober,
|
||||
November: result.heizstundenNovember,
|
||||
Dezember: result.heizstundenDezember
|
||||
};
|
||||
const heizstundenGesamt = Object.values(heizstunden).reduce((acc, value) => acc + value, 0);
|
||||
const gesamtHeizstunden = result.gesamtHeizstunden;
|
||||
const gesamtNutzenergieHeizung = result.gesamtNutzenergieHeizung;
|
||||
|
||||
const resultMaximaleHeizlast = A6BerechnungWaermeTransferMaxStroemeLueftungGesamt();
|
||||
const maximaleHeizlast = resultMaximaleHeizlast.maximaleHeizlast;
|
||||
|
||||
// Planungswerte aus Eingabe
|
||||
const resultRechnerischeLaufzeitHeizung = A13BerechnungRechnerischeLaufzeitHeizung();
|
||||
const rechnerischeLaufzeitGesamt = resultRechnerischeLaufzeitHeizung.rechnerischeLaufzeitGesamt;
|
||||
|
||||
const resultNutzenergiebedarfTrinkwarmwasser = A9BerechnungNutzenergiebedarfTrinkwarmwasser();
|
||||
const flaechenBezogenerWaermebedarf = resultNutzenergiebedarfTrinkwarmwasser.flaechenBezogenerWaermebedarf;
|
||||
|
||||
// Planungswerte aus Eingabe, Tabellen 20, 21, 22, C12, 30, 31, 41, 49, 50, 51, 52, 53
|
||||
|
||||
let NettoGrundflaeche = 154.2;
|
||||
let anlass = "Neubau";
|
||||
let ZuschlagsFaktorErzeugung = 0;
|
||||
|
||||
const PlanungswerteUebergabeVerteilungHeizung = [
|
||||
{
|
||||
Bezeichnung: "Übergabe Verteilung 1 - Heizung",
|
||||
VersorgteFlaeche: 0.5,
|
||||
Anlage: "Erzeuger 1 - zentral",
|
||||
VersorgteFlaeche: 0.7,
|
||||
UebergabeSystem: "Heizkörper",
|
||||
rohrsystem: "Zwei-Rohr-System",
|
||||
rohrnetztyp: "I (Etagenringtyp)",
|
||||
anzahlHeizflaechen: "bis 10",
|
||||
hydraulischerAbgleich: "Abgleich statisch je Heizkörper/Heizfläche und Gruppenabgleich statisch (z.B. mit Strangregulierventil)",
|
||||
raumtemperaturRegelung: "P-Regler",
|
||||
ueberTemperatur: "30 K (55°C/45°C)",
|
||||
ueberTemperatur: "55°C/45°C",
|
||||
waermeverlustAußenbauteile: "Radiatorposition Außenwand",
|
||||
intermittierenderBetrieb: "-",
|
||||
einzelraumregelSysteme: "-",
|
||||
verteilung: "Verteilleitungen im beheizten Bereich",
|
||||
PufferSpeicherHeizung: 0,
|
||||
ehs0: 1,
|
||||
ehce0: 1.042,
|
||||
Δehce1: 0.015,
|
||||
Δehce2: 0.009,
|
||||
Δehce3: 0,
|
||||
Δehce5: 0,
|
||||
Δehcehydr: 0.018,
|
||||
fhydr: 1.02
|
||||
fhydr: 1.02,
|
||||
ehd0: 1.049
|
||||
|
||||
},
|
||||
{
|
||||
Bezeichnung: "Übergabe Verteilung 2 - Heizung",
|
||||
VersorgteFlaeche: 0.5,
|
||||
UebergabeSystem: "Heizkörper",
|
||||
rohrsystem: "Zwei-Rohr-System",
|
||||
rohrnetztyp: "I (Etagenringtyp)",
|
||||
anzahlHeizflaechen: "bis 10",
|
||||
hydraulischerAbgleich: "Abgleich statisch je Heizkörper/Heizfläche und Gruppenabgleich statisch (z.B. mit Strangregulierventil)",
|
||||
raumtemperaturRegelung: "P-Regler",
|
||||
ueberTemperatur: "30 K (55°C/45°C)",
|
||||
waermeverlustAußenbauteile: "Radiatorposition Außenwand",
|
||||
Anlage: "Erzeuger 1 - zentral",
|
||||
VersorgteFlaeche: 0.2,
|
||||
UebergabeSystem: "Fußbodenheizung Nasssystem",
|
||||
rohrnetztyp: "IIb (Etagenverteilertyp Fußbodenheizung)",
|
||||
raumtemperaturRegelung: "ungeregelt, mit zentraler Vorlauftemperaturregelung",
|
||||
ueberTemperatur: "35°C/28°C",
|
||||
waermeverlustAngrenzendeBauteile: "integrierte Heizfläche mit Mindestdämmung nach DIN EN 1264 (alle Teile)",
|
||||
intermittierenderBetrieb: "-",
|
||||
einzelraumregelSysteme: "-",
|
||||
verteilung: "Verteilleitungen im beheizten Bereich",
|
||||
PufferSpeicherHeizung: 0,
|
||||
ehs0: 1,
|
||||
ehce0: 1.149,
|
||||
Δehce1: 0.021,
|
||||
Δehce2: 0.015,
|
||||
Δehce3: 0,
|
||||
Δehce5: 0,
|
||||
Δehcehydr: 0,
|
||||
fhydr: 1,
|
||||
ehd0: 1.004
|
||||
|
||||
},
|
||||
{
|
||||
Anlage: "Erzeuger 2 - dezentral",
|
||||
VersorgteFlaeche: 0.1,
|
||||
Heizungsart: "Elektro-Direktheizung, PI-Regler (mit Optimierung)",
|
||||
Bereich: "Außenwandbereich",
|
||||
intermittierenderBetrieb: "Nein",
|
||||
ehs0: 1,
|
||||
ehce0: 1.042,
|
||||
Δehce1: 0.015,
|
||||
Δehce2: 0.009,
|
||||
Δehce3: 0,
|
||||
Δehce5: 0,
|
||||
Δehcehydr: 0.018,
|
||||
fhydr: 1.02
|
||||
Δehce1: 0,
|
||||
Δehce2: 0,
|
||||
Δehce3: 0,
|
||||
Δehce5: 0,
|
||||
Δehcehydr: 0,
|
||||
fhydr: 1,
|
||||
ehd0: 1
|
||||
|
||||
}
|
||||
];
|
||||
|
||||
const ErgebnisseAufwandsZahlenBelastungHeizung = PlanungswerteUebergabeVerteilungHeizung.map(system => {
|
||||
const mittlereBelastungUebergabeHeizung = (gesamtNutzenergieHeizung / (heizstundenGesamt * maximaleHeizlast)) * 1000 * system.VersorgteFlaeche;
|
||||
const resultfunktionNennleistungWaermeerzeugerWarmwasserA14 = funktionNennleistungWaermeerzeugerWarmwasserA14(NettoGrundflaeche, flaechenBezogenerWaermebedarf);
|
||||
const NennleistungWaermeerzeugerWarmwasser = resultfunktionNennleistungWaermeerzeugerWarmwasserA14;
|
||||
|
||||
|
||||
if (anlass === "Neubau") {
|
||||
ZuschlagsFaktorErzeugung = 1.1;
|
||||
}
|
||||
else {
|
||||
ZuschlagsFaktorErzeugung = 1.5;
|
||||
}
|
||||
|
||||
const NennleistungWaermeerzeugerHeizung = resultMaximaleHeizlast.maximaleHeizlast / 1000;
|
||||
const NennleistungWaermeerzeuger = ZuschlagsFaktorErzeugung * Math.max(NennleistungWaermeerzeugerWarmwasser, NennleistungWaermeerzeugerHeizung);
|
||||
|
||||
const ErgebnisseAufwandsZahlenBelastungHeizung = PlanungswerteUebergabeVerteilungHeizung.map((system: any) => {
|
||||
const mittlereBelastungUebergabeHeizung = (gesamtNutzenergieHeizung / (gesamtHeizstunden * maximaleHeizlast)) * 1000 * system.VersorgteFlaeche;
|
||||
const AufwandsZahlUebergabeHeizung = system.ehce0 + system.Δehce1 + system.Δehce2 + system.Δehce3 + system.Δehce5 + system.Δehcehydr;
|
||||
const mittlereBelastungVerteilungHeizung = mittlereBelastungUebergabeHeizung * AufwandsZahlUebergabeHeizung * system.fhydr;
|
||||
|
||||
const flaechenbezogeneLeistungUebergabeHeizung = (maximaleHeizlast / NettoGrundflaeche) * AufwandsZahlUebergabeHeizung;
|
||||
|
||||
const KorrekturfaktorMittlereBelastung = funktionKorrekturfaktorMittlereBelastungT32(system.verteilung, system.rohrnetztyp, system.ueberTemperatur, mittlereBelastungVerteilungHeizung) || 0;
|
||||
const AufwandsZahlVerteilungHeizungKorrektur = system.ehd0 * KorrekturfaktorMittlereBelastung;
|
||||
const AufwandsZahlVerteilungHeizungKorrekturZwei = 1 + (AufwandsZahlVerteilungHeizungKorrektur - 1) * (50/flaechenbezogeneLeistungUebergabeHeizung);
|
||||
const AufwandsZahlVerteilungHeizung = (AufwandsZahlVerteilungHeizungKorrekturZwei - 1) * (8760/rechnerischeLaufzeitGesamt) + 1;
|
||||
const flaechenbezogeneLeistungVerteilungHeizung = flaechenbezogeneLeistungUebergabeHeizung * AufwandsZahlVerteilungHeizung;
|
||||
|
||||
const mittlereBelastungSpeicherungHeizung = mittlereBelastungVerteilungHeizung * AufwandsZahlVerteilungHeizung;
|
||||
const AufwandsZahlSpeicherungHeizung = system.ehs0;
|
||||
const flaechenbezogeneLeistungSpeicherungHeizung = flaechenbezogeneLeistungVerteilungHeizung * AufwandsZahlSpeicherungHeizung;
|
||||
|
||||
const mittlereBelastungErzaegungHeizung = mittlereBelastungSpeicherungHeizung * AufwandsZahlSpeicherungHeizung;
|
||||
|
||||
const AufwandsZahlErzeugungHeizung = funktionAufwandszahlErzeugungHeizungT77(NennleistungWaermeerzeuger, mittlereBelastungErzaegungHeizung);
|
||||
|
||||
return {
|
||||
Bezeichnung: system.Bezeichnung,
|
||||
Bezeichnung: system.Anlage + " - " + system.VersorgteFlaeche * 100 + " % versorgte Fläche - " + (system.UebergabeSystem ? system.UebergabeSystem : system.Heizungsart),
|
||||
mittlereBelastungUebergabeHeizung: mittlereBelastungUebergabeHeizung,
|
||||
VersorgteFlaeche: system.VersorgteFlaeche,
|
||||
AufwandsZahlUebergabeHeizung: AufwandsZahlUebergabeHeizung,
|
||||
mittlereBelastungVerteilungHeizung: mittlereBelastungVerteilungHeizung
|
||||
|
||||
|
||||
|
||||
mittlereBelastungVerteilungHeizung: mittlereBelastungVerteilungHeizung,
|
||||
flaechenbezogeneLeistungUebergabeHeizung: flaechenbezogeneLeistungUebergabeHeizung,
|
||||
AufwandsZahlVerteilungHeizung: AufwandsZahlVerteilungHeizung,
|
||||
flaechenbezogeneLeistungVerteilungHeizung: flaechenbezogeneLeistungVerteilungHeizung,
|
||||
mittlereBelastungSpeicherungHeizung: mittlereBelastungSpeicherungHeizung,
|
||||
AufwandsZahlSpeicherungHeizung: AufwandsZahlSpeicherungHeizung,
|
||||
flaechenbezogeneLeistungSpeicherungHeizung: flaechenbezogeneLeistungSpeicherungHeizung,
|
||||
mittlereBelastungErzaegungHeizung: mittlereBelastungErzaegungHeizung,
|
||||
AufwandsZahlErzeugungHeizung: AufwandsZahlErzeugungHeizung
|
||||
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
return {
|
||||
|
||||
heizstundenGesamt,
|
||||
gesamtHeizstunden,
|
||||
maximaleHeizlast,
|
||||
gesamtNutzenergieHeizung,
|
||||
ErgebnisseAufwandsZahlenBelastungHeizung
|
||||
ErgebnisseAufwandsZahlenBelastungHeizung,
|
||||
NennleistungWaermeerzeuger
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import FensterImage from "#components/Ausweis/FensterImage.svelte";
|
||||
import { funktionSolareBestrahlungsEnergie } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionSolareBestrahlungsEnergie.js";
|
||||
import { funktionSolareBestrahlungsEnergieT17 } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionSolareBestrahlungsEnergieT17.js";
|
||||
|
||||
export function A7A2BerechnungWaermequellenSolareEinstrahlung() {
|
||||
|
||||
@@ -85,7 +85,7 @@ export function A7A2BerechnungWaermequellenSolareEinstrahlung() {
|
||||
// Berechnung der solaren Wärmequellen pro Fenster und Monat
|
||||
|
||||
PlanungswerteBauteil.forEach(item => {
|
||||
const MonatsWerte = funktionSolareBestrahlungsEnergie(item.Neigung, item.Orientierung);
|
||||
const MonatsWerte = funktionSolareBestrahlungsEnergieT17(item.Neigung, item.Orientierung);
|
||||
if (MonatsWerte) {
|
||||
const SolareWaermequelleJanuar = MonatsWerte.jan * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
|
||||
const MonatsWerteJanuar = MonatsWerte.jan;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { funktionWaermesenken } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionWaermesenken.js";
|
||||
import { funktionWaermesenkenA8A12 } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionWaermesenkenA8A12.js";
|
||||
import { A7A2BerechnungWaermequellenSolareEinstrahlung } from "#lib/Berechnungen/BedarfsausweisWohnen/A7A2BerechnungWaermequellenSolareEinstrahlung.js";
|
||||
import { funktionInterneWaermequellen } from "./funktionInterneWaermequellen.js";
|
||||
import { funktionInterneWaermequellenA8 } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionInterneWaermequellenA8.js";
|
||||
|
||||
export function A8BerechnungWaermequellenAusAnlagentechnikHeizung() {
|
||||
|
||||
const result = funktionWaermesenken();
|
||||
const result = funktionWaermesenkenA8A12();
|
||||
const waermeSenken = result.waermeSenken;
|
||||
const belastungsgrade = result.belastungsgrade;
|
||||
|
||||
@@ -22,7 +22,7 @@ const einstrahlung = A7A2BerechnungWaermequellenSolareEinstrahlung();
|
||||
const summeErgebnisseNovember = einstrahlung.summeErgebnisseNovember;
|
||||
const summeErgebnisseDezember = einstrahlung.summeErgebnisseDezember;
|
||||
|
||||
const resultInterneWaermeQuellen = funktionInterneWaermequellen();
|
||||
const resultInterneWaermeQuellen = funktionInterneWaermequellenA8();
|
||||
const interneWaermeQuellenProMonat = resultInterneWaermeQuellen.interneWaermeQuellenProMonat;
|
||||
|
||||
let TageMonat = {
|
||||
|
||||
@@ -1,16 +1,10 @@
|
||||
import { BedarfsausweisWohnenClient, AufnahmeClient } from "#components/Ausweis/types.js";
|
||||
import { linearInterpolation } from "js-interpolate"
|
||||
|
||||
|
||||
/**
|
||||
* Implementierung Tabelle E.7 — Tabelle A.9 - Trinkwassererwärmung - Berechnung des Wärmebedarfs zur Trinkwassererwärmung
|
||||
*
|
||||
* @see 18599-Tabellenverfahren-Wohngebaeude.pdf
|
||||
* @export
|
||||
* @param {BedarfsausweisWohnenClient} ausweis
|
||||
* @param {AufnahmeClient} gebaeude_aufnahme
|
||||
*/
|
||||
export function A9BerechnungNutzenergiebedarfTrinkwarmwasser(ausweis: BedarfsausweisWohnenClient, gebaeude_aufnahme: AufnahmeClient) {
|
||||
export function A9BerechnungNutzenergiebedarfTrinkwarmwasser() {
|
||||
// A_NGF aus Eingabe
|
||||
const bezugsflaeche = 154.2;
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,35 @@
|
||||
import { funktionDoppelteInterpolation } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionDoppelteInterpolation.js";
|
||||
|
||||
export function funktionAufwandszahlErzeugungHeizungHilfsenergieT83(suchSpalte: number, datenZeile: number) {
|
||||
|
||||
const dataBox = [
|
||||
{ SuchSpalte: [5], DatenSpalte: [0.0208, 0.0267, 0.0325, 0.0418, 0.0510, 0.0603, 0.0696, 0.0789, 0.0882, 0.0974] },
|
||||
{ SuchSpalte: [10], DatenSpalte: [0.0251, 0.0352, 0.0453, 0.0582, 0.0712, 0.0841, 0.0971, 0.1100, 0.1230, 0.1359] },
|
||||
{ SuchSpalte: [20], DatenSpalte: [0.0311, 0.0471, 0.0632, 0.0812, 0.0993, 0.1173, 0.1354, 0.1534, 0.1715, 0.1895] },
|
||||
{ SuchSpalte: [30], DatenSpalte: [0.0356, 0.0562, 0.0768, 0.0987, 0.1206, 0.1425, 0.1645, 0.1864, 0.2083, 0.2303] },
|
||||
{ SuchSpalte: [40], DatenSpalte: [0.0394, 0.0637, 0.0881, 0.1133, 0.1385, 0.1637, 0.1888, 0.2140, 0.2392, 0.2644] },
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.0427, 0.0704, 0.0981, 0.1261, 0.1541, 0.1822, 0.2102, 0.2382, 0.2662, 0.2943] },
|
||||
{ SuchSpalte: [60], DatenSpalte: [0.0457, 0.0764, 0.1071, 0.1376, 0.1682, 0.1988, 0.2294, 0.2600, 0.2906, 0.3212] },
|
||||
{ SuchSpalte: [70], DatenSpalte: [0.0484, 0.0819, 0.1153, 0.1482, 0.1811, 0.2141, 0.2470, 0.2800, 0.3129, 0.3458] },
|
||||
{ SuchSpalte: [80], DatenSpalte: [0.0510, 0.0869, 0.1229, 0.1580, 0.1931, 0.2283, 0.2634, 0.2985, 0.3336, 0.3687] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.0534, 0.0917, 0.1301, 0.1672, 0.2044, 0.2415, 0.2787, 0.3158, 0.3530, 0.3902] },
|
||||
{ SuchSpalte: [100], DatenSpalte: [0.0556, 0.0962, 0.1368, 0.1759, 0.2150, 0.2541, 0.2931, 0.3322, 0.3713, 0.4104] },
|
||||
{ SuchSpalte: [120], DatenSpalte: [0.0598, 0.1045, 0.1493, 0.1920, 0.2346, 0.2773, 0.3200, 0.3626, 0.4053, 0.4479] },
|
||||
{ SuchSpalte: [140], DatenSpalte: [0.0636, 0.1122, 0.1608, 0.2067, 0.2527, 0.2986, 0.3445, 0.3905, 0.4364, 0.4823] },
|
||||
{ SuchSpalte: [160], DatenSpalte: [0.0671, 0.1193, 0.1714, 0.2204, 0.2694, 0.3184, 0.3673, 0.4163, 0.4653, 0.5143] },
|
||||
{ SuchSpalte: [180], DatenSpalte: [0.0705, 0.1259, 0.1814, 0.2332, 0.2850, 0.3369, 0.3887, 0.4405, 0.4924, 0.5442] },
|
||||
{ SuchSpalte: [200], DatenSpalte: [0.0736, 0.1322, 0.1908, 0.2453, 0.2998, 0.3543, 0.4089, 0.4634, 0.5179, 0.5724] },
|
||||
{ SuchSpalte: [250], DatenSpalte: [0.0808, 0.1466, 0.2124, 0.2731, 0.3337, 0.3944, 0.4551, 0.5158, 0.5764, 0.6371] },
|
||||
{ SuchSpalte: [300], DatenSpalte: [0.0873, 0.1595, 0.2318, 0.2980, 0.3643, 0.4305, 0.4967, 0.5629, 0.6292, 0.6954] },
|
||||
{ SuchSpalte: [350], DatenSpalte: [0.0932, 0.1714, 0.2496, 0.3209, 0.3922, 0.4635, 0.5349, 0.6062, 0.6775, 0.7488] },
|
||||
{ SuchSpalte: [400], DatenSpalte: [0.0987, 0.1824, 0.2661, 0.3422, 0.4182, 0.4942, 0.5703, 0.6463, 0.7223, 0.7984] }
|
||||
];
|
||||
|
||||
const dataZeile = [ { DatenZeile: [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0] } ];
|
||||
|
||||
|
||||
const AufwandszahlErzeugungHeizungHilfsenergie = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return AufwandszahlErzeugungHeizungHilfsenergie;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
import { funktionDoppelteInterpolation } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionDoppelteInterpolation.js";
|
||||
|
||||
export function funktionAufwandszahlErzeugungHeizungT77(suchSpalte: number, datenZeile: number) {
|
||||
|
||||
const dataBox = [
|
||||
{ SuchSpalte: [5], DatenSpalte: [1.013, 1.019, 1.024, 1.042, 1.061, 1.079, 1.098, 1.117, 1.135, 1.154] },
|
||||
{ SuchSpalte: [10], DatenSpalte: [1.011, 1.017, 1.023, 1.041, 1.059, 1.077, 1.096, 1.114, 1.132, 1.150] },
|
||||
{ SuchSpalte: [20], DatenSpalte: [1.010, 1.016, 1.022, 1.040, 1.057, 1.075, 1.093, 1.111, 1.129, 1.147] },
|
||||
{ SuchSpalte: [30], DatenSpalte: [1.009, 1.016, 1.021, 1.039, 1.056, 1.074, 1.092, 1.109, 1.127, 1.145] },
|
||||
{ SuchSpalte: [40], DatenSpalte: [1.009, 1.015, 1.021, 1.038, 1.056, 1.073, 1.091, 1.108, 1.126, 1.143] },
|
||||
{ SuchSpalte: [50], DatenSpalte: [1.009, 1.015, 1.020, 1.038, 1.055, 1.073, 1.090, 1.107, 1.125, 1.142] },
|
||||
{ SuchSpalte: [60], DatenSpalte: [1.008, 1.015, 1.020, 1.037, 1.055, 1.072, 1.089, 1.107, 1.124, 1.141] },
|
||||
{ SuchSpalte: [70], DatenSpalte: [1.008, 1.014, 1.020, 1.037, 1.054, 1.072, 1.089, 1.106, 1.123, 1.140] },
|
||||
{ SuchSpalte: [80], DatenSpalte: [1.008, 1.014, 1.020, 1.037, 1.054, 1.071, 1.088, 1.105, 1.122, 1.140] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [1.008, 1.014, 1.020, 1.037, 1.054, 1.071, 1.088, 1.105, 1.122, 1.139] },
|
||||
{ SuchSpalte: [100], DatenSpalte: [1.008, 1.014, 1.019, 1.036, 1.053, 1.070, 1.087, 1.104, 1.121, 1.138] },
|
||||
{ SuchSpalte: [120], DatenSpalte: [1.008, 1.014, 1.019, 1.036, 1.053, 1.070, 1.087, 1.104, 1.121, 1.138] },
|
||||
{ SuchSpalte: [140], DatenSpalte: [1.008, 1.014, 1.019, 1.036, 1.053, 1.069, 1.086, 1.103, 1.120, 1.137] },
|
||||
{ SuchSpalte: [160], DatenSpalte: [1.007, 1.013, 1.019, 1.036, 1.052, 1.069, 1.086, 1.103, 1.119, 1.136] },
|
||||
{ SuchSpalte: [180], DatenSpalte: [1.007, 1.013, 1.019, 1.035, 1.052, 1.069, 1.085, 1.102, 1.119, 1.135] },
|
||||
{ SuchSpalte: [200], DatenSpalte: [1.007, 1.013, 1.019, 1.035, 1.052, 1.068, 1.085, 1.102, 1.118, 1.135] },
|
||||
{ SuchSpalte: [250], DatenSpalte: [1.007, 1.013, 1.018, 1.035, 1.051, 1.068, 1.084, 1.101, 1.117, 1.134] },
|
||||
{ SuchSpalte: [300], DatenSpalte: [1.007, 1.013, 1.018, 1.034, 1.051, 1.067, 1.084, 1.100, 1.117, 1.133] },
|
||||
{ SuchSpalte: [350], DatenSpalte: [1.007, 1.012, 1.018, 1.034, 1.050, 1.067, 1.083, 1.099, 1.116, 1.132] }
|
||||
];
|
||||
|
||||
const dataZeile = [ { DatenZeile: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] } ];
|
||||
|
||||
|
||||
const AufwandsZahlErzeugungHeizung = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return AufwandsZahlErzeugungHeizung;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import { funktionDoppelteInterpolation } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionDoppelteInterpolation.js";
|
||||
|
||||
export function funktionAufwandszahlErzeugungHeizungUmlaufWasserheizerT82(suchSpalte: number, datenZeile: number) {
|
||||
|
||||
const dataBox = [
|
||||
{ SuchSpalte: [11], DatenSpalte: [1.038,1.069,1.098,1.122,1.145,1.169,1.192,1.216,1.240,1.263] },
|
||||
{ SuchSpalte: [18], DatenSpalte: [1.037,1.068,1.096,1.120,1.143,1.166,1.189,1.212,1.236,1.259] },
|
||||
{ SuchSpalte: [24], DatenSpalte: [1.037,1.067,1.096,1.118,1.141,1.164,1.187,1.210,1.233,1.256] }
|
||||
];
|
||||
|
||||
const dataZeile = [ { DatenZeile: [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] } ];
|
||||
|
||||
|
||||
const AufwandszahlErzeugungHeizungUmlaufWasserheizer = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return AufwandszahlErzeugungHeizungUmlaufWasserheizer;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
import { funktionDoppelteInterpolation } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionDoppelteInterpolation.js";
|
||||
|
||||
export function funktionAufwandszahlErzeugungPelletKesselHilfsenergieT85(suchSpalte: number, datenZeile: number) {
|
||||
|
||||
const dataBox = [
|
||||
{ SuchSpalte: [5], DatenSpalte: [0.0070, 0.0080, 0.0090, 0.0149, 0.0207, 0.0266, 0.0324, 0.0383, 0.0441, 0.0500] },
|
||||
{ SuchSpalte: [10], DatenSpalte: [0.0107, 0.0143, 0.0180, 0.0240, 0.0300, 0.0360, 0.0420, 0.0480, 0.0540, 0.0600] },
|
||||
{ SuchSpalte: [20], DatenSpalte: [0.0180, 0.0270, 0.0360, 0.0423, 0.0486, 0.0549, 0.0611, 0.0674, 0.0737, 0.0800] },
|
||||
{ SuchSpalte: [30], DatenSpalte: [0.0253, 0.0397, 0.0540, 0.0606, 0.0671, 0.0737, 0.0803, 0.0869, 0.0934, 0.1000] },
|
||||
{ SuchSpalte: [40], DatenSpalte: [0.0327, 0.0523, 0.0720, 0.0789, 0.0857, 0.0926, 0.0994, 0.1063, 0.1131, 0.1200] },
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.0400, 0.0650, 0.0900, 0.0971, 0.1043, 0.1114, 0.1186, 0.1257, 0.1329, 0.1400] },
|
||||
{ SuchSpalte: [60], DatenSpalte: [0.0473, 0.0777, 0.1080, 0.1154, 0.1229, 0.1303, 0.1377, 0.1451, 0.1526, 0.1600] },
|
||||
{ SuchSpalte: [70], DatenSpalte: [0.0547, 0.0903, 0.1260, 0.1337, 0.1414, 0.1491, 0.1569, 0.1646, 0.1723, 0.1800] },
|
||||
{ SuchSpalte: [80], DatenSpalte: [0.0620, 0.1030, 0.1440, 0.1520, 0.1600, 0.1680, 0.1760, 0.1840, 0.1920, 0.2000] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.0693, 0.1157, 0.1620, 0.1703, 0.1786, 0.1869, 0.1951, 0.2034, 0.2117, 0.2200] },
|
||||
{ SuchSpalte: [100], DatenSpalte: [0.0767, 0.1283, 0.1800, 0.1886, 0.1971, 0.2057, 0.2143, 0.2229, 0.2314, 0.2400] },
|
||||
{ SuchSpalte: [120], DatenSpalte: [0.0913, 0.1537, 0.2160, 0.2251, 0.2343, 0.2434, 0.2526, 0.2617, 0.2709, 0.2800] },
|
||||
{ SuchSpalte: [140], DatenSpalte: [0.1060, 0.1790, 0.2520, 0.2617, 0.2714, 0.2811, 0.2909, 0.3006, 0.3103, 0.3200] },
|
||||
{ SuchSpalte: [160], DatenSpalte: [0.1207, 0.2043, 0.2880, 0.2983, 0.3086, 0.3189, 0.3291, 0.3394, 0.3497, 0.3600] },
|
||||
{ SuchSpalte: [180], DatenSpalte: [0.1353, 0.2297, 0.3240, 0.3349, 0.3457, 0.3566, 0.3674, 0.3783, 0.3891, 0.4000] },
|
||||
{ SuchSpalte: [200], DatenSpalte: [0.1500, 0.2550, 0.3600, 0.3714, 0.3829, 0.3943, 0.4057, 0.4171, 0.4286, 0.4400] },
|
||||
{ SuchSpalte: [250], DatenSpalte: [0.1867, 0.3183, 0.4500, 0.4629, 0.4757, 0.4886, 0.5014, 0.5143, 0.5271, 0.5400] },
|
||||
{ SuchSpalte: [300], DatenSpalte: [0.2233, 0.3817, 0.5400, 0.5543, 0.5686, 0.5829, 0.5971, 0.6114, 0.6257, 0.6400] },
|
||||
{ SuchSpalte: [350], DatenSpalte: [0.2600, 0.4450, 0.6300, 0.6457, 0.6614, 0.6771, 0.6929, 0.7086, 0.7243, 0.7400] },
|
||||
{ SuchSpalte: [400], DatenSpalte: [0.2967, 0.5083, 0.7200, 0.7371, 0.7543, 0.7714, 0.7886, 0.8057, 0.8229, 0.8400] }
|
||||
];
|
||||
|
||||
const dataZeile = [ { DatenZeile: [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0] } ];
|
||||
|
||||
|
||||
const AufwandszahlErzeugungPelletKesselHilfsenergie = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return AufwandszahlErzeugungPelletKesselHilfsenergie;
|
||||
|
||||
}
|
||||
@@ -1,156 +0,0 @@
|
||||
// Funktion zur Berechnung des Ausnutzungsgrades aus Tabelle 18
|
||||
|
||||
import { cubicSplineInterpolation, nevillePolynomialInterpolation } from "js-interpolate";
|
||||
|
||||
const dataset = {
|
||||
alleMonate: {
|
||||
30: [
|
||||
0.999, 0.992, 0.978, 0.956, 0.927, 0.893, 0.856, 0.818, 0.78, 0.742,
|
||||
0.706, 0.671, 0.638, 0.608, 0.579, 0.553, 0.528, 0.505, 0.483,
|
||||
0.463, 0.445, 0.428, 0.411, 0.396, 0.382, 0.369, 0.357, 0.345,
|
||||
0.334, 0.324, 0.314, 0.305, 0.296, 0.288, 0.28, 0.273, 0.266, 0.259,
|
||||
0.253, 0.246, 0.22, 0.198, 0.181, 0.166, 0.153, 0.142, 0.133, 0.125,
|
||||
0.117, 0.111, 0.105, 0.1,
|
||||
],
|
||||
40: [
|
||||
1.0, 0.997, 0.99, 0.975, 0.954, 0.926, 0.892, 0.855, 0.817, 0.778,
|
||||
0.739, 0.702, 0.667, 0.634, 0.603, 0.574, 0.547, 0.522, 0.498,
|
||||
0.477, 0.457, 0.438, 0.421, 0.405, 0.39, 0.376, 0.363, 0.351, 0.339,
|
||||
0.329, 0.318, 0.309, 0.3, 0.291, 0.283, 0.276, 0.268, 0.261, 0.255,
|
||||
0.249, 0.221, 0.199, 0.181, 0.166, 0.154, 0.143, 0.133, 0.125,
|
||||
0.118, 0.111, 0.105, 0.1,
|
||||
],
|
||||
50: [
|
||||
1.0, 0.999, 0.995, 0.986, 0.97, 0.948, 0.918, 0.883, 0.845, 0.805,
|
||||
0.765, 0.726, 0.688, 0.652, 0.619, 0.588, 0.559, 0.533, 0.508,
|
||||
0.485, 0.464, 0.445, 0.427, 0.41, 0.394, 0.38, 0.366, 0.354, 0.342,
|
||||
0.331, 0.321, 0.311, 0.301, 0.293, 0.285, 0.277, 0.269, 0.262,
|
||||
0.256, 0.249, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125,
|
||||
0.118, 0.111, 0.105, 0.1,
|
||||
],
|
||||
60: [
|
||||
1.0, 1.0, 0.998, 0.992, 0.981, 0.963, 0.937, 0.904, 0.867, 0.826,
|
||||
0.785, 0.743, 0.704, 0.666, 0.631, 0.598, 0.568, 0.54, 0.514, 0.491,
|
||||
0.469, 0.449, 0.43, 0.413, 0.397, 0.382, 0.368, 0.355, 0.343, 0.332,
|
||||
0.322, 0.312, 0.302, 0.293, 0.285, 0.277, 0.27, 0.263, 0.256, 0.25,
|
||||
0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111,
|
||||
0.105, 0.1,
|
||||
],
|
||||
70: [
|
||||
1.0, 1.0, 0.999, 0.996, 0.988, 0.973, 0.951, 0.921, 0.884, 0.843,
|
||||
0.8, 0.757, 0.716, 0.676, 0.639, 0.605, 0.574, 0.545, 0.518, 0.494,
|
||||
0.472, 0.451, 0.432, 0.414, 0.398, 0.383, 0.369, 0.356, 0.344,
|
||||
0.333, 0.322, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256,
|
||||
0.25, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118,
|
||||
0.111, 0.105, 0.1,
|
||||
],
|
||||
80: [
|
||||
1.0, 1.0, 0.999, 0.998, 0.992, 0.981, 0.962, 0.934, 0.898, 0.857,
|
||||
0.813, 0.769, 0.725, 0.684, 0.646, 0.61, 0.578, 0.548, 0.521, 0.496,
|
||||
0.473, 0.452, 0.433, 0.415, 0.399, 0.384, 0.37, 0.357, 0.344, 0.333,
|
||||
0.322, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25,
|
||||
0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111,
|
||||
0.105, 0.1,
|
||||
],
|
||||
90: [
|
||||
1.0, 1.0, 1.0, 0.999, 0.995, 0.986, 0.97, 0.944, 0.91, 0.869, 0.824,
|
||||
0.778, 0.733, 0.69, 0.651, 0.614, 0.581, 0.55, 0.523, 0.497, 0.474,
|
||||
0.453, 0.434, 0.416, 0.4, 0.384, 0.37, 0.357, 0.345, 0.333, 0.322,
|
||||
0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222,
|
||||
0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105,
|
||||
0.1,
|
||||
],
|
||||
100: [
|
||||
1.0, 1.0, 1.0, 0.999, 0.997, 0.99, 0.976, 0.953, 0.92, 0.879, 0.833,
|
||||
0.786, 0.739, 0.695, 0.654, 0.617, 0.583, 0.552, 0.524, 0.498,
|
||||
0.475, 0.454, 0.434, 0.416, 0.4, 0.384, 0.37, 0.357, 0.345, 0.333,
|
||||
0.323, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25,
|
||||
0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111,
|
||||
0.105, 0.1,
|
||||
],
|
||||
110: [
|
||||
1.0, 1.0, 1.0, 0.999, 0.998, 0.993, 0.981, 0.96, 0.928, 0.887,
|
||||
0.841, 0.792, 0.744, 0.699, 0.657, 0.619, 0.584, 0.553, 0.525,
|
||||
0.499, 0.475, 0.454, 0.435, 0.417, 0.4, 0.384, 0.37, 0.357, 0.345,
|
||||
0.333, 0.323, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256,
|
||||
0.25, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118,
|
||||
0.111, 0.105, 0.1,
|
||||
],
|
||||
120: [
|
||||
1.0, 1.0, 1.0, 1.0, 0.999, 0.995, 0.985, 0.966, 0.935, 0.895, 0.847,
|
||||
0.798, 0.748, 0.702, 0.659, 0.621, 0.586, 0.554, 0.525, 0.5, 0.476,
|
||||
0.454, 0.435, 0.417, 0.4, 0.385, 0.37, 0.357, 0.345, 0.333, 0.323,
|
||||
0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222,
|
||||
0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105,
|
||||
0.1,
|
||||
],
|
||||
130: [
|
||||
1.0, 1.0, 1.0, 1.0, 0.999, 0.996, 0.988, 0.971, 0.942, 0.901, 0.853,
|
||||
0.802, 0.752, 0.704, 0.661, 0.622, 0.587, 0.554, 0.526, 0.5, 0.476,
|
||||
0.454, 0.435, 0.417, 0.4, 0.385, 0.37, 0.357, 0.345, 0.333, 0.323,
|
||||
0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222,
|
||||
0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105,
|
||||
0.1,
|
||||
],
|
||||
140: [
|
||||
1.0, 1.0, 1.0, 1.0, 0.999, 0.997, 0.991, 0.975, 0.947, 0.907, 0.858,
|
||||
0.806, 0.755, 0.706, 0.662, 0.623, 0.587, 0.555, 0.526, 0.5, 0.476,
|
||||
0.454, 0.435, 0.417, 0.4, 0.385, 0.37, 0.357, 0.345, 0.333, 0.323,
|
||||
0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222,
|
||||
0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105,
|
||||
0.1,
|
||||
],
|
||||
150: [
|
||||
1.0, 1.0, 1.0, 1.0, 0.999, 0.998, 0.992, 0.979, 0.952, 0.912, 0.863,
|
||||
0.809, 0.757, 0.708, 0.663, 0.623, 0.588, 0.555, 0.526, 0.5, 0.476,
|
||||
0.454, 0.435, 0.417, 0.4, 0.385, 0.37, 0.357, 0.345, 0.333, 0.323,
|
||||
0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222,
|
||||
0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105,
|
||||
0.1,
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
const waermeQuellenSenkenVerhaeltnis = [
|
||||
0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5,
|
||||
1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1,
|
||||
3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8,
|
||||
8.5, 9, 9.5, 10,
|
||||
];
|
||||
|
||||
export function funktionAusnutzungsgrad(
|
||||
waermequellensenkenverhaeltnis: number,
|
||||
zeitkonstane: number,
|
||||
monat: keyof typeof dataset
|
||||
) {
|
||||
const data = dataset[monat];
|
||||
|
||||
const interpolations: number[] = [];
|
||||
|
||||
for (const key in data) {
|
||||
const values = data[key as unknown as keyof typeof data];
|
||||
|
||||
const interpolated = cubicSplineInterpolation(
|
||||
values.map((value, i) => ({
|
||||
x: waermeQuellenSenkenVerhaeltnis[i],
|
||||
y: value,
|
||||
})),
|
||||
waermequellensenkenverhaeltnis
|
||||
);
|
||||
|
||||
|
||||
interpolations.push(interpolated);
|
||||
}
|
||||
|
||||
const interpolated = cubicSplineInterpolation(
|
||||
interpolations.map((interpolation, i) => {
|
||||
return {
|
||||
x: Object.keys(data)[i],
|
||||
y: interpolation,
|
||||
};
|
||||
}),
|
||||
zeitkonstane
|
||||
);
|
||||
|
||||
return interpolated;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
import { funktionDoppelteInterpolation } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionDoppelteInterpolation.js";
|
||||
|
||||
export function funktionAusnutzungsgradT18(suchSpalte: number, datenZeile: number) {
|
||||
|
||||
const dataBox = [
|
||||
{ SuchSpalte: [30], DatenSpalte: [0.999, 0.992, 0.978, 0.956, 0.927, 0.893, 0.856, 0.818, 0.78, 0.742, 0.706, 0.671, 0.638, 0.608, 0.579, 0.553, 0.528, 0.505, 0.483, 0.463, 0.445, 0.428, 0.411, 0.396, 0.382, 0.369, 0.357, 0.345, 0.334, 0.324, 0.314, 0.305, 0.296, 0.288, 0.28, 0.273, 0.266, 0.259, 0.253, 0.246, 0.22, 0.198, 0.181, 0.166, 0.153, 0.142, 0.133, 0.125, 0.117, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] },
|
||||
{ SuchSpalte: [40], DatenSpalte: [1.0, 0.997, 0.99, 0.975, 0.954, 0.926, 0.892, 0.855, 0.817, 0.778, 0.739, 0.702, 0.667, 0.634, 0.603, 0.574, 0.547, 0.522, 0.498, 0.477, 0.457, 0.438, 0.421, 0.405, 0.39, 0.376, 0.363, 0.351, 0.339, 0.329, 0.318, 0.309, 0.3, 0.291, 0.283, 0.276, 0.268, 0.261, 0.255, 0.249, 0.221, 0.199, 0.181, 0.166, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] },
|
||||
{ SuchSpalte: [50], DatenSpalte: [1.0, 0.999, 0.995, 0.986, 0.97, 0.948, 0.918, 0.883, 0.845, 0.805, 0.765, 0.726, 0.688, 0.652, 0.619, 0.588, 0.559, 0.533, 0.508, 0.485, 0.464, 0.445, 0.427, 0.41, 0.394, 0.38, 0.366, 0.354, 0.342, 0.331, 0.321, 0.311, 0.301, 0.293, 0.285, 0.277, 0.269, 0.262, 0.256, 0.249, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] },
|
||||
{ SuchSpalte: [60], DatenSpalte: [1.0, 1.0, 0.998, 0.992, 0.981, 0.963, 0.937, 0.904, 0.867, 0.826, 0.785, 0.743, 0.704, 0.666, 0.631, 0.598, 0.568, 0.54, 0.514, 0.491, 0.469, 0.449, 0.43, 0.413, 0.397, 0.382, 0.368, 0.355, 0.343, 0.332, 0.322, 0.312, 0.302, 0.293, 0.285, 0.277, 0.27, 0.263, 0.256, 0.25, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] },
|
||||
{ SuchSpalte: [70], DatenSpalte: [1.0, 1.0, 0.999, 0.996, 0.988, 0.973, 0.951, 0.921, 0.884, 0.843, 0.8, 0.757, 0.716, 0.676, 0.639, 0.605, 0.574, 0.545, 0.518, 0.494, 0.472, 0.451, 0.432, 0.414, 0.398, 0.383, 0.369, 0.356, 0.344, 0.333, 0.322, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] },
|
||||
{ SuchSpalte: [80], DatenSpalte: [1.0, 1.0, 0.999, 0.998, 0.992, 0.981, 0.962, 0.934, 0.898, 0.857, 0.813, 0.769, 0.725, 0.684, 0.646, 0.61, 0.578, 0.548, 0.521, 0.496, 0.473, 0.452, 0.433, 0.415, 0.399, 0.384, 0.37, 0.357, 0.344, 0.333, 0.322, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [1.0, 1.0, 1.0, 0.999, 0.995, 0.986, 0.97, 0.944, 0.91, 0.869, 0.824, 0.778, 0.733, 0.69, 0.651, 0.614, 0.581, 0.55, 0.523, 0.497, 0.474, 0.453, 0.434, 0.416, 0.4, 0.384, 0.37, 0.357, 0.345, 0.333, 0.322, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] },
|
||||
{ SuchSpalte: [100], DatenSpalte: [1.0, 1.0, 1.0, 0.999, 0.997, 0.99, 0.976, 0.953, 0.92, 0.879, 0.833, 0.786, 0.739, 0.695, 0.654, 0.617, 0.583, 0.552, 0.524, 0.498, 0.475, 0.454, 0.434, 0.416, 0.4, 0.384, 0.37, 0.357, 0.345, 0.333, 0.323, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] },
|
||||
{ SuchSpalte: [110], DatenSpalte: [1.0, 1.0, 1.0, 0.999, 0.998, 0.993, 0.981, 0.96, 0.928, 0.887, 0.841, 0.792, 0.744, 0.699, 0.657, 0.619, 0.584, 0.553, 0.525, 0.499, 0.475, 0.454, 0.435, 0.417, 0.4, 0.384, 0.37, 0.357, 0.345, 0.333, 0.323, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] },
|
||||
{ SuchSpalte: [120], DatenSpalte: [1.0, 1.0, 1.0, 1.0, 0.999, 0.995, 0.985, 0.966, 0.935, 0.895, 0.847, 0.798, 0.748, 0.702, 0.659, 0.621, 0.586, 0.554, 0.525, 0.5, 0.476, 0.454, 0.435, 0.417, 0.4, 0.385, 0.37, 0.357, 0.345, 0.333, 0.323, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [1.0, 1.0, 1.0, 1.0, 0.999, 0.996, 0.988, 0.971, 0.942, 0.901, 0.853, 0.802, 0.752, 0.704, 0.661, 0.622, 0.587, 0.554, 0.526, 0.5, 0.476, 0.454, 0.435, 0.417, 0.4, 0.385, 0.37, 0.357, 0.345, 0.333, 0.323, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] },
|
||||
{ SuchSpalte: [140], DatenSpalte: [1.0, 1.0, 1.0, 1.0, 0.999, 0.997, 0.991, 0.975, 0.947, 0.907, 0.858, 0.806, 0.755, 0.706, 0.662, 0.623, 0.587, 0.555, 0.526, 0.5, 0.476, 0.454, 0.435, 0.417, 0.4, 0.385, 0.37, 0.357, 0.345, 0.333, 0.323, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] },
|
||||
{ SuchSpalte: [150], DatenSpalte: [1.0, 1.0, 1.0, 1.0, 0.999, 0.998, 0.992, 0.979, 0.952, 0.912, 0.863, 0.809, 0.757, 0.708, 0.663, 0.623, 0.588, 0.555, 0.526, 0.5, 0.476, 0.454, 0.435, 0.417, 0.4, 0.385, 0.37, 0.357, 0.345, 0.333, 0.323, 0.312, 0.303, 0.294, 0.286, 0.278, 0.27, 0.263, 0.256, 0.25, 0.222, 0.2, 0.182, 0.167, 0.154, 0.143, 0.133, 0.125, 0.118, 0.111, 0.105, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] }
|
||||
];
|
||||
|
||||
const dataZeile = [{ DatenZeile: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15] }];
|
||||
|
||||
|
||||
|
||||
const Ausnutzungsgrad = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return Ausnutzungsgrad;
|
||||
|
||||
}
|
||||
@@ -148,7 +148,7 @@ const HeizLast = [0, 5, 10, 25, 50, 75, 100, 125, 150];
|
||||
// jede einzeln interpolieren und dann zwischen den Tabellen interpolieren.
|
||||
// Falls wir also den Wert an Stelle Heizlast: 120, Zeitkonstante 100, Monat:
|
||||
// Januar haben wollen:
|
||||
export function funktionBilanzInnentemperatur(heizlast: number, zeitkonstane: number, monat: keyof typeof dataset): number {
|
||||
export function funktionBilanzInnentemperaturT8T10(heizlast: number, zeitkonstane: number, monat: keyof typeof dataset): number {
|
||||
const data = dataset[monat]
|
||||
|
||||
const interpolations: number[] = []
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
export function funktionDoppelteInterpolation(SuchSpalte: number, DatenZeile: number, dataZeile: any, dataBox: any): number {
|
||||
|
||||
function interpolate(x: number, x0: number, y0: number, x1: number, y1: number): number {
|
||||
return y0 + ((y1 - y0) * (x - x0)) / (x1 - x0);
|
||||
}
|
||||
|
||||
function findNearestPoints(data: any[], value: number, key: string): any[] {
|
||||
let lower = data[0];
|
||||
let upper = data[data.length - 1];
|
||||
|
||||
for (let i = 0; i < data.length - 1; i++) {
|
||||
if (data[i][key][0] <= value && data[i + 1][key][0] >= value) {
|
||||
lower = data[i];
|
||||
upper = data[i + 1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return [lower, upper];
|
||||
}
|
||||
|
||||
|
||||
const [lowerSuchSpalte, upperSuchSpalte] = findNearestPoints(dataBox, SuchSpalte, 'SuchSpalte');
|
||||
const lowerIndex = dataZeile[0].DatenZeile.findIndex((val: number) => val >= DatenZeile) - 1;
|
||||
const upperIndex = lowerIndex + 1;
|
||||
|
||||
const lowerDatenZeile = dataZeile[0].DatenZeile[lowerIndex];
|
||||
const upperDatenZeile = dataZeile[0].DatenZeile[upperIndex];
|
||||
|
||||
const lowerDatenSpalte = interpolate(DatenZeile, lowerDatenZeile, lowerSuchSpalte.DatenSpalte[lowerIndex], upperDatenZeile, lowerSuchSpalte.DatenSpalte[upperIndex]);
|
||||
const upperDatenSpalte = interpolate(DatenZeile, lowerDatenZeile, upperSuchSpalte.DatenSpalte[lowerIndex], upperDatenZeile, upperSuchSpalte.DatenSpalte[upperIndex]);
|
||||
|
||||
return interpolate(SuchSpalte, lowerSuchSpalte.SuchSpalte[0], lowerDatenSpalte, upperSuchSpalte.SuchSpalte[0], upperDatenSpalte);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
export function funktionInterneWaermequellen() {
|
||||
export function funktionInterneWaermequellenA8() {
|
||||
|
||||
// Beispielwerte Planung werden aus Eingabe geholt
|
||||
let NettoGrundflaeche = 154.2;
|
||||
@@ -0,0 +1,22 @@
|
||||
import { funktionDoppelteInterpolation } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionDoppelteInterpolation.js";
|
||||
|
||||
export function funktionKorrekturfaktorErzeugungGasSpezialHeizkesselHilfsenergieT84(suchSpalte: number, datenZeile: number) {
|
||||
|
||||
const dataBox = [
|
||||
{ SuchSpalte: [5], DatenSpalte: [0.808, 0.700, 0.631, 0.564, 0.521, 0.491, 0.469, 0.452, 0.439, 0.428] },
|
||||
{ SuchSpalte: [15], DatenSpalte: [0.665, 0.526, 0.450, 0.405, 0.375, 0.355, 0.340, 0.329, 0.320, 0.313] },
|
||||
{ SuchSpalte: [25], DatenSpalte: [0.525, 0.387, 0.322, 0.292, 0.273, 0.260, 0.250, 0.243, 0.237, 0.232] },
|
||||
{ SuchSpalte: [40], DatenSpalte: [0.459, 0.331, 0.274, 0.251, 0.236, 0.226, 0.219, 0.213, 0.209, 0.205] },
|
||||
{ SuchSpalte: [75], DatenSpalte: [0.388, 0.278, 0.232, 0.217, 0.207, 0.201, 0.196, 0.192, 0.189, 0.187] },
|
||||
{ SuchSpalte: [175], DatenSpalte: [0.329, 0.245, 0.212, 0.204, 0.200, 0.196, 0.194, 0.192, 0.190, 0.189] },
|
||||
{ SuchSpalte: [325], DatenSpalte: [0.519, 0.475, 0.458, 0.456, 0.455, 0.454, 0.453, 0.452, 0.452, 0.451] },
|
||||
{ SuchSpalte: [400], DatenSpalte: [0.541, 0.510, 0.498, 0.505, 0.510, 0.513, 0.515, 0.517, 0.518, 0.519] }
|
||||
];
|
||||
|
||||
const dataZeile = [ { DatenZeile: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] } ];
|
||||
|
||||
const KorrekturfaktorErzeugungGasSpezialHeizkesselHilfsenergie = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return KorrekturfaktorErzeugungGasSpezialHeizkesselHilfsenergie;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import { funktionDoppelteInterpolation } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionDoppelteInterpolation.js";
|
||||
|
||||
export function funktionKorrekturfaktorErzeugungHolzhackSchnitzelHilfsenergieT86(suchSpalte: number, datenZeile: number) {
|
||||
|
||||
const dataBox = [
|
||||
{ SuchSpalte: [5], DatenSpalte: [2.9, 3.1, 3.3, 2.3, 1.8, 1.5, 1.4, 1.3, 1.2, 1.1] },
|
||||
{ SuchSpalte: [10], DatenSpalte: [2.3, 2.2, 2.2, 1.8, 1.6, 1.5, 1.4, 1.3, 1.2, 1.2] },
|
||||
{ SuchSpalte: [20], DatenSpalte: [1.7, 1.7, 1.7, 1.6, 1.5, 1.4, 1.4, 1.3, 1.3, 1.3] },
|
||||
{ SuchSpalte: [40], DatenSpalte: [1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.3, 1.3, 1.3] },
|
||||
{ SuchSpalte: [95], DatenSpalte: [1.2, 1.2, 1.2, 1.3, 1.3, 1.3, 1.3, 1.4, 1.4, 1.4] },
|
||||
{ SuchSpalte: [270], DatenSpalte: [1.1, 1.1, 1.2, 1.2, 1.3, 1.3, 1.3, 1.4, 1.4, 1.5] },
|
||||
{ SuchSpalte: [400], DatenSpalte: [1, 1.1, 1.1, 1.2, 1.2, 1.3, 1.3, 1.4, 1.4, 1.5] }
|
||||
];
|
||||
|
||||
const dataZeile = [ { DatenZeile: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] } ];
|
||||
|
||||
const KorrekturfaktorErzeugungHolzhackSchnitzelHilfsenergie = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return KorrekturfaktorErzeugungHolzhackSchnitzelHilfsenergie;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
import { datasetKorrekturfaktorVerteilungT32 } from "#lib/Berechnungen/BedarfsausweisWohnen/datasetKorrekturfaktorVerteilungT32.js";
|
||||
|
||||
export function funktionKorrekturfaktorMittlereBelastungT32(verteilung: string, rohrnetztyp: string, auslegungsTemp: string, ßhd: number): number | null {
|
||||
const filteredData = datasetKorrekturfaktorVerteilungT32.filter(item =>
|
||||
item.verteilung === verteilung &&
|
||||
item.rohrnetztyp === rohrnetztyp &&
|
||||
item.auslegungsTemp === auslegungsTemp
|
||||
);
|
||||
|
||||
if (filteredData.length === 0) {
|
||||
const KorrekturfaktorMittlereBelastung = 1;
|
||||
return KorrekturfaktorMittlereBelastung;
|
||||
}
|
||||
|
||||
|
||||
const sortedData = filteredData.sort((a, b) => a.ßhd - b.ßhd);
|
||||
|
||||
for (let i = 0; i < sortedData.length - 1; i++) {
|
||||
const current = sortedData[i];
|
||||
const next = sortedData[i + 1];
|
||||
|
||||
if (ßhd >= current.ßhd && ßhd <= next.ßhd) {
|
||||
const t = (ßhd - current.ßhd) / (next.ßhd - current.ßhd);
|
||||
const KorrekturfaktorMittlereBelastung = current.fßd + t * (next.fßd - current.fßd);
|
||||
|
||||
return KorrekturfaktorMittlereBelastung;
|
||||
}
|
||||
}
|
||||
|
||||
const KorrekturfaktorMittlereBelastung = 1;
|
||||
return KorrekturfaktorMittlereBelastung;
|
||||
}
|
||||
|
||||
const result = funktionKorrekturfaktorMittlereBelastungT32("Verteilleitungen im beheizten Bereich", "IV (Strahlungs- und Luftheizung)", "35°C/28°C", 0.1);
|
||||
console.log(result);
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
import { cubicSplineInterpolation } from "js-interpolate";
|
||||
|
||||
let wohneinheiten = 3;
|
||||
let WohnEinheiten = 3;
|
||||
|
||||
const datasetEinfamilienHausMittlereBelastung = {
|
||||
Januar: {
|
||||
@@ -15,7 +15,7 @@ const datasetEinfamilienHausMittlereBelastung = {
|
||||
90: [ 0.536, 0.532, 0.529, 0.522, 0.515, 0.512, 0.51, 0.51, 0.509 ],
|
||||
130: [ 0.54, 0.537, 0.533, 0.526, 0.52, 0.516, 0.515, 0.514, 0.513 ],
|
||||
},
|
||||
"März": {
|
||||
März: {
|
||||
50: [ 0.448, 0.445, 0.443, 0.437, 0.431, 0.427, 0.427, 0.426, 0.426 ],
|
||||
90: [ 0.453, 0.45, 0.447, 0.441, 0.436, 0.433, 0.431, 0.431, 0.43 ],
|
||||
130: [ 0.457, 0.454, 0.451, 0.445, 0.439, 0.435, 0.435, 0.434, 0.434 ],
|
||||
@@ -147,7 +147,7 @@ const HeizLast = [0, 5, 10, 25, 50, 75, 100, 125, 150];
|
||||
// jede einzeln interpolieren und dann zwischen den Tabellen interpolieren.
|
||||
// Falls wir also den Wert an Stelle Heizlast: 120, Zeitkonstante 100, Monat:
|
||||
// Januar haben wollen:
|
||||
export function funktionMonatlicherBelastungsgrad(heizlast: number, zeitkonstane: number, monat: keyof typeof dataset) {
|
||||
export function funktionMonatlicherBelastungsgradT9T11 (heizlast: number, zeitkonstane: number, monat: keyof typeof dataset) {
|
||||
const data = dataset[monat]
|
||||
|
||||
const interpolations: number[] = []
|
||||
@@ -0,0 +1,74 @@
|
||||
|
||||
// Interpolationsfunktion für Nennleistung des Wärmeerzeugers
|
||||
|
||||
interface DatasetNennleistung {
|
||||
flaeche: number[];
|
||||
Nennleistung: number[];
|
||||
}
|
||||
|
||||
interface DatasetNutzwaermeBedarf {
|
||||
NutzwaermeBedarf: number[];
|
||||
}
|
||||
|
||||
const datasetNennleistung: DatasetNennleistung[] = [
|
||||
{ flaeche: [50], Nennleistung: [7.5, 7.3, 7.1, 7, 6.8, 6.6, 6.4, 6.3, 6.1, 5.9, 5.7, 5.6, 5.4, 5.2, 5, 4.8] },
|
||||
{ flaeche: [100], Nennleistung: [12.1, 11.8, 11.6, 11.3, 11, 10.8, 10.5, 10.2, 9.9, 9.6, 9.3, 9, 8.7, 8.4, 8.1, 7.8] },
|
||||
{ flaeche: [150], Nennleistung: [16.1, 15.7, 15.4, 15, 14.6, 14.3, 13.9, 13.5, 13.1, 12.8, 12.4, 12, 11.6, 11.2, 10.8, 10.3] },
|
||||
{ flaeche: [200], Nennleistung: [19.7, 19.2, 18.8, 18.4, 17.9, 17.5, 17, 16.5, 16.1, 15.6, 15.1, 14.6, 14.2, 13.7, 13.1, 12.6] },
|
||||
{ flaeche: [300], Nennleistung: [26.1, 25.6, 25, 24.4, 23.8, 23.2, 22.6, 22, 21.4, 20.7, 20.1, 19.5, 18.8, 18.1, 17.5, 16.8] },
|
||||
{ flaeche: [400], Nennleistung: [32, 31.3, 30.5, 29.8, 29.1, 28.4, 27.6, 26.9, 26.1, 25.4, 24.6, 23.8, 23, 22.2, 21.4, 20.5] },
|
||||
{ flaeche: [500], Nennleistung: [37.4, 36.5, 35.7, 34.9, 34, 33.2, 32.3, 31.4, 30.5, 29.6, 28.7, 27.8, 26.9, 25.9, 25, 24] },
|
||||
{ flaeche: [600], Nennleistung: [42.4, 41.5, 40.6, 39.6, 38.7, 37.7, 36.7, 35.7, 34.7, 33.7, 32.7, 31.6, 30.5, 29.5, 28.4, 27.3] },
|
||||
{ flaeche: [700], Nennleistung: [47.3, 46.2, 45.2, 44.1, 43.1, 42, 40.9, 39.8, 38.7, 37.5, 36.4, 35.2, 34, 32.8, 31.6, 30.4] },
|
||||
{ flaeche: [800], Nennleistung: [51.9, 50.8, 49.6, 48.5, 47.3, 46.1, 44.9, 43.7, 42.4, 41.2, 39.9, 38.7, 37.4, 36, 34.7, 33.3] },
|
||||
{ flaeche: [900], Nennleistung: [56.4, 55.1, 53.9, 52.6, 51.3, 50.1, 48.7, 47.4, 46.1, 44.7, 43.4, 42, 40.6, 39.1, 37.7, 36.2] },
|
||||
{ flaeche: [1000], Nennleistung: [60.7, 59.4, 58, 56.6, 55.3, 53.9, 52.5, 51.1, 49.6, 48.2, 46.7, 45.2, 43.7, 42.1, 40.6, 39] },
|
||||
{ flaeche: [2000], Nennleistung: [98.6, 96.4, 94.2, 92, 89.8, 87.5, 85.3, 82.9, 80.6, 78.2, 75.8, 73.4, 71, 68.4, 65.9, 63.3] },
|
||||
{ flaeche: [3000], Nennleistung: [130.9, 128.1, 125.2, 122.2, 119.3, 116.3, 113.2, 110.2, 107.1, 103.9, 100.7, 97.5, 94.2, 90.9, 87.5, 84.1] },
|
||||
{ flaeche: [4000], Nennleistung: [160.2, 156.6, 153.1, 149.5, 145.9, 142.2, 138.5, 134.7, 130.9, 127.1, 123.2, 119.3, 115.3, 111.2, 107.1, 102.9] },
|
||||
{ flaeche: [5000], Nennleistung: [187.2, 183.1, 179, 174.8, 170.5, 166.2, 161.9, 157.5, 153.1, 148.6, 144, 139.4, 134.7, 130, 125.2, 120.3] }
|
||||
];
|
||||
|
||||
const datasetNutzwaermeBedarf: DatasetNutzwaermeBedarf[] = [
|
||||
{ NutzwaermeBedarf: [16, 15.5, 15, 14.5, 14, 13.5, 13, 12.5, 12, 11.5, 11, 10.5, 10, 9.5, 9, 8.5] }
|
||||
];
|
||||
|
||||
|
||||
export function funktionNennleistungWaermeerzeugerWarmwasserA14(flaeche: number, nutzwaermeBedarf: number): number {
|
||||
const findClosestDatasets = (flaeche: number) => {
|
||||
let lower = datasetNennleistung[0];
|
||||
let upper = datasetNennleistung[datasetNennleistung.length - 1];
|
||||
|
||||
for (let i = 0; i < datasetNennleistung.length - 1; i++) {
|
||||
if (datasetNennleistung[i].flaeche[0] <= flaeche && datasetNennleistung[i + 1].flaeche[0] >= flaeche) {
|
||||
lower = datasetNennleistung[i];
|
||||
upper = datasetNennleistung[i + 1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return { lower, upper };
|
||||
};
|
||||
|
||||
const interpolate = (x: number, x0: number, y0: number, x1: number, y1: number) => {
|
||||
return y0 + ((y1 - y0) * (x - x0)) / (x1 - x0);
|
||||
};
|
||||
|
||||
const { lower, upper } = findClosestDatasets(flaeche);
|
||||
const indexLower = datasetNutzwaermeBedarf[0].NutzwaermeBedarf.findIndex((value) => value <= nutzwaermeBedarf);
|
||||
const indexUpper = indexLower > 0 ? indexLower - 1 : indexLower;
|
||||
|
||||
const nennleistungLowerLower = lower.Nennleistung[indexLower];
|
||||
const nennleistungLowerUpper = lower.Nennleistung[indexUpper];
|
||||
const nennleistungUpperLower = upper.Nennleistung[indexLower];
|
||||
const nennleistungUpperUpper = upper.Nennleistung[indexUpper];
|
||||
|
||||
const interpolatedLower = interpolate(nutzwaermeBedarf, datasetNutzwaermeBedarf[0].NutzwaermeBedarf[indexUpper], nennleistungLowerUpper, datasetNutzwaermeBedarf[0].NutzwaermeBedarf[indexLower], nennleistungLowerLower);
|
||||
const interpolatedUpper = interpolate(nutzwaermeBedarf, datasetNutzwaermeBedarf[0].NutzwaermeBedarf[indexUpper], nennleistungUpperUpper, datasetNutzwaermeBedarf[0].NutzwaermeBedarf[indexLower], nennleistungUpperLower);
|
||||
|
||||
const NennleistungWaermeerzeugerWarmwasser = interpolate(flaeche, lower.flaeche[0], interpolatedLower, upper.flaeche[0], interpolatedUpper);
|
||||
|
||||
return NennleistungWaermeerzeugerWarmwasser;
|
||||
}
|
||||
|
||||
const result = funktionNennleistungWaermeerzeugerWarmwasserA14(154.2, 8.79);
|
||||
console.log(result);
|
||||
@@ -580,7 +580,7 @@ const dataset: DatasetEntry[] = [
|
||||
}
|
||||
];
|
||||
|
||||
export function funktionSolareBestrahlungsEnergie(neigung: number, orientierung: string): { [key: string]: number } | undefined {
|
||||
export function funktionSolareBestrahlungsEnergieT17(neigung: number, orientierung: string): { [key: string]: number } | undefined {
|
||||
const entry = dataset.find(item => item.neigung === neigung && item.orientierung.toLowerCase() === orientierung.toLowerCase());
|
||||
if (!entry) {
|
||||
return undefined;
|
||||
@@ -593,6 +593,6 @@ export function funktionSolareBestrahlungsEnergie(neigung: number, orientierung:
|
||||
|
||||
|
||||
// Beispielaufruf
|
||||
// const MonatsWerte = funktionSolareBestrahlungsEnergie(90, "West");
|
||||
// const MonatsWerte = funktionSolareBestrahlungsEnergieT17(90, "West");
|
||||
// console.log(MonatsWerte); // should return the monthly values for neigung=30 and orientierung="Süd"
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { funktionMonatlicherBelastungsgrad } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionMonatlicherBelastungsgrad.js";
|
||||
import { funktionBilanzInnentemperatur } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionBilanzInnentemperatur.js";
|
||||
import { funktionMonatlicherBelastungsgradT9T11 } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionMonatlicherBelastungsgradT9T11.js";
|
||||
import { funktionBilanzInnentemperaturT8T10 } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionBilanzInnentemperaturT8T10.js";
|
||||
import { A5BerechnungWaermeTransferMaxStroemeBauteile } from "#lib/Berechnungen/BedarfsausweisWohnen/A5BerechnungWaermeTransferMaxStroemeBauteile.js";
|
||||
import { A6BerechnungWaermeTransferMaxStroemeLueftungGesamt } from "#lib/Berechnungen/BedarfsausweisWohnen/A6BerechnungWaermeTransferMaxStroemeLueftungGesamt.js";
|
||||
|
||||
export function funktionWaermesenken() {
|
||||
export function funktionWaermesenkenA8A12() {
|
||||
|
||||
const resultBauteile = A5BerechnungWaermeTransferMaxStroemeBauteile();
|
||||
const minimaleAussentemperatur = resultBauteile.minimaleAussentemperatur;
|
||||
@@ -61,31 +61,31 @@ export function funktionWaermesenken() {
|
||||
};
|
||||
|
||||
|
||||
belastungsgrade.Januar = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Januar");
|
||||
belastungsgrade.Februar = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Februar");
|
||||
belastungsgrade.März = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "März");
|
||||
belastungsgrade.April = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "April");
|
||||
belastungsgrade.Mai = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Mai");
|
||||
belastungsgrade.Juni = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juni");
|
||||
belastungsgrade.Juli = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juli");
|
||||
belastungsgrade.August = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "August");
|
||||
belastungsgrade.September = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "September");
|
||||
belastungsgrade.Oktober = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Oktober");
|
||||
belastungsgrade.November = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "November");
|
||||
belastungsgrade.Dezember = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Dezember");
|
||||
belastungsgrade.Januar = funktionMonatlicherBelastungsgradT9T11(FlaechgenbezogeneHeizlast, ZeitKonstante, "Januar");
|
||||
belastungsgrade.Februar = funktionMonatlicherBelastungsgradT9T11(FlaechgenbezogeneHeizlast, ZeitKonstante, "Februar");
|
||||
belastungsgrade.März = funktionMonatlicherBelastungsgradT9T11(FlaechgenbezogeneHeizlast, ZeitKonstante, "März");
|
||||
belastungsgrade.April = funktionMonatlicherBelastungsgradT9T11(FlaechgenbezogeneHeizlast, ZeitKonstante, "April");
|
||||
belastungsgrade.Mai = funktionMonatlicherBelastungsgradT9T11(FlaechgenbezogeneHeizlast, ZeitKonstante, "Mai");
|
||||
belastungsgrade.Juni = funktionMonatlicherBelastungsgradT9T11(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juni");
|
||||
belastungsgrade.Juli = funktionMonatlicherBelastungsgradT9T11(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juli");
|
||||
belastungsgrade.August = funktionMonatlicherBelastungsgradT9T11(FlaechgenbezogeneHeizlast, ZeitKonstante, "August");
|
||||
belastungsgrade.September = funktionMonatlicherBelastungsgradT9T11(FlaechgenbezogeneHeizlast, ZeitKonstante, "September");
|
||||
belastungsgrade.Oktober = funktionMonatlicherBelastungsgradT9T11(FlaechgenbezogeneHeizlast, ZeitKonstante, "Oktober");
|
||||
belastungsgrade.November = funktionMonatlicherBelastungsgradT9T11(FlaechgenbezogeneHeizlast, ZeitKonstante, "November");
|
||||
belastungsgrade.Dezember = funktionMonatlicherBelastungsgradT9T11(FlaechgenbezogeneHeizlast, ZeitKonstante, "Dezember");
|
||||
|
||||
bilanzInnenTemperaturen.Januar = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Januar");
|
||||
bilanzInnenTemperaturen.Februar = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Februar");
|
||||
bilanzInnenTemperaturen.März = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "März");
|
||||
bilanzInnenTemperaturen.April = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "April");
|
||||
bilanzInnenTemperaturen.Mai = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Mai");
|
||||
bilanzInnenTemperaturen.Juni = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juni");
|
||||
bilanzInnenTemperaturen.Juli = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juli");
|
||||
bilanzInnenTemperaturen.August = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "August");
|
||||
bilanzInnenTemperaturen.September = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "September");
|
||||
bilanzInnenTemperaturen.Oktober = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Oktober");
|
||||
bilanzInnenTemperaturen.November = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "November");
|
||||
bilanzInnenTemperaturen.Dezember = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Dezember");
|
||||
bilanzInnenTemperaturen.Januar = funktionBilanzInnentemperaturT8T10(FlaechgenbezogeneHeizlast, ZeitKonstante, "Januar");
|
||||
bilanzInnenTemperaturen.Februar = funktionBilanzInnentemperaturT8T10(FlaechgenbezogeneHeizlast, ZeitKonstante, "Februar");
|
||||
bilanzInnenTemperaturen.März = funktionBilanzInnentemperaturT8T10(FlaechgenbezogeneHeizlast, ZeitKonstante, "März");
|
||||
bilanzInnenTemperaturen.April = funktionBilanzInnentemperaturT8T10(FlaechgenbezogeneHeizlast, ZeitKonstante, "April");
|
||||
bilanzInnenTemperaturen.Mai = funktionBilanzInnentemperaturT8T10(FlaechgenbezogeneHeizlast, ZeitKonstante, "Mai");
|
||||
bilanzInnenTemperaturen.Juni = funktionBilanzInnentemperaturT8T10(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juni");
|
||||
bilanzInnenTemperaturen.Juli = funktionBilanzInnentemperaturT8T10(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juli");
|
||||
bilanzInnenTemperaturen.August = funktionBilanzInnentemperaturT8T10(FlaechgenbezogeneHeizlast, ZeitKonstante, "August");
|
||||
bilanzInnenTemperaturen.September = funktionBilanzInnentemperaturT8T10(FlaechgenbezogeneHeizlast, ZeitKonstante, "September");
|
||||
bilanzInnenTemperaturen.Oktober = funktionBilanzInnentemperaturT8T10(FlaechgenbezogeneHeizlast, ZeitKonstante, "Oktober");
|
||||
bilanzInnenTemperaturen.November = funktionBilanzInnentemperaturT8T10(FlaechgenbezogeneHeizlast, ZeitKonstante, "November");
|
||||
bilanzInnenTemperaturen.Dezember = funktionBilanzInnentemperaturT8T10(FlaechgenbezogeneHeizlast, ZeitKonstante, "Dezember");
|
||||
|
||||
waermeSenken.Januar = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Januar - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Januar;
|
||||
waermeSenken.Februar = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Februar - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Februar;
|
||||
@@ -28,7 +28,7 @@ export const PRICES: Record<Enums.Ausweisart, [number, number, number]> = {
|
||||
BedarfsausweisWohnen: [135, 145, 290],
|
||||
VerbrauchsausweisWohnen: [65, 75, 180],
|
||||
VerbrauchsausweisGewerbe: [95, 115, 360],
|
||||
BedarfsausweisGewerbe: [500, 0, 0],
|
||||
BedarfsausweisGewerbe: [400, 600, 900],
|
||||
};
|
||||
|
||||
export const SERVICES: Record<
|
||||
|
||||
@@ -95,9 +95,9 @@ const gebaeude_aufnahme: AufnahmeClient = { flaeche: 152 }
|
||||
|
||||
<A2WaermequellenSolareEinstrahlungWintergarten></A2WaermequellenSolareEinstrahlungWintergarten>
|
||||
|
||||
<A5WaermeTransferMaxStroemeBauteile {ausweis} {gebaeude_aufnahme} client:load></A5WaermeTransferMaxStroemeBauteile>
|
||||
<A5WaermeTransferMaxStroemeBauteile {ausweis} {gebaeude_aufnahme}></A5WaermeTransferMaxStroemeBauteile>
|
||||
|
||||
<A6WaermeTransferMaxStroemeGesamt {ausweis} {gebaeude_aufnahme} client:load></A6WaermeTransferMaxStroemeGesamt>
|
||||
<A6WaermeTransferMaxStroemeGesamt {ausweis} {gebaeude_aufnahme}></A6WaermeTransferMaxStroemeGesamt>
|
||||
|
||||
<A7WaermequellenSolareEinstrahlung></A7WaermequellenSolareEinstrahlung>
|
||||
|
||||
@@ -105,7 +105,7 @@ const gebaeude_aufnahme: AufnahmeClient = { flaeche: 152 }
|
||||
|
||||
<A9NutzenergiebedarfTrinkwarmwasser {ausweis} {gebaeude_aufnahme}></A9NutzenergiebedarfTrinkwarmwasser>
|
||||
|
||||
<A10WaermequellenAnlagentechnikTrinkwarmwasser client:load></A10WaermequellenAnlagentechnikTrinkwarmwasser>
|
||||
<A10WaermequellenAnlagentechnikTrinkwarmwasser></A10WaermequellenAnlagentechnikTrinkwarmwasser>
|
||||
|
||||
<A11WaermequellenZusammenstellung></A11WaermequellenZusammenstellung>
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
import Layout from "#layouts/Layout.astro";
|
||||
import ProduktUebersichtBedarfsausweisGewerbe from "#components/design/content/ProduktUebersichtBedarfsausweisGewerbe.svelte";
|
||||
---
|
||||
|
||||
<Layout title="Bedarfsausweis Produktübersicht">
|
||||
|
||||
<ProduktUebersichtBedarfsausweisGewerbe>
|
||||
|
||||
</ProduktUebersichtBedarfsausweisGewerbe>
|
||||
|
||||
|
||||
</Layout>
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
import Layout from "#layouts/Layout.astro";
|
||||
import ProduktUebersichtBedarfsausweisWohnen from "#components/design/content/ProduktUebersichtBedarfsausweisWohnen.svelte";
|
||||
---
|
||||
|
||||
<Layout title="Bedarfsausweis Produktübersicht">
|
||||
|
||||
<ProduktUebersichtBedarfsausweisWohnen>
|
||||
|
||||
</ProduktUebersichtBedarfsausweisWohnen>
|
||||
|
||||
|
||||
</Layout>
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
import Layout from "#layouts/Layout.astro";
|
||||
import ProduktUebersichtVerbrauchsausweisGewerbe from "#components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte";
|
||||
---
|
||||
|
||||
<Layout title="Verbrauchsausweis Produktübersicht">
|
||||
|
||||
<ProduktUebersichtVerbrauchsausweisGewerbe>
|
||||
|
||||
</ProduktUebersichtVerbrauchsausweisGewerbe>
|
||||
|
||||
|
||||
</Layout>
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
import Layout from "#layouts/Layout.astro";
|
||||
import ProduktUebersichtVerbrauchsausweisWohnen from "#components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte";
|
||||
---
|
||||
|
||||
<Layout title="Verbrauchsausweis Produktübersicht">
|
||||
|
||||
<ProduktUebersichtVerbrauchsausweisWohnen>
|
||||
|
||||
</ProduktUebersichtVerbrauchsausweisWohnen>
|
||||
|
||||
|
||||
</Layout>
|
||||
80
src/pages/immowelt/index.astro
Normal file
80
src/pages/immowelt/index.astro
Normal file
@@ -0,0 +1,80 @@
|
||||
---
|
||||
import AusweisLayoutImmowelt from "#layouts/AusweisLayoutDatenImmowelt.astro";
|
||||
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
|
||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
||||
import { createCaller } from "../../astro-typesafe-api-caller.js";
|
||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
||||
|
||||
const uid = Astro.url.searchParams.get("uid");
|
||||
let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
|
||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
||||
let objekt: ObjektClient = {} as ObjektClient;
|
||||
let bilder: UploadedGebaeudeBild[] = []
|
||||
|
||||
const valid = validateAccessTokenServer(Astro);
|
||||
|
||||
const caller = createCaller(Astro);
|
||||
|
||||
if (uid) {
|
||||
if (!valid) {
|
||||
return Astro.redirect(
|
||||
`/auth/login?redirect=${Astro.url.toString()}`
|
||||
);
|
||||
}
|
||||
|
||||
try {
|
||||
ausweis = await caller["verbrauchsausweis-wohnen"]._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid
|
||||
}
|
||||
});
|
||||
|
||||
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: ausweis.uid_aufnahme
|
||||
}
|
||||
})
|
||||
|
||||
objekt = await caller.objekt._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: ausweis.uid_objekt
|
||||
}
|
||||
})
|
||||
|
||||
bilder = await caller.objekt._uid.bilder.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: ausweis.uid_objekt
|
||||
}
|
||||
})
|
||||
|
||||
if (!ausweis) {
|
||||
// Der Ausweis scheint nicht zu existieren.
|
||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/verbrauchsausweis-wohnen"
|
||||
);
|
||||
}
|
||||
} catch(e) {
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/verbrauchsausweis-wohnen"
|
||||
);
|
||||
}
|
||||
}
|
||||
---
|
||||
|
||||
<AusweisLayoutImmowelt title="Verbrauchsausweis erstellen">
|
||||
<VerbrauchsausweisWohnenModule client:load {ausweis} {objekt} {aufnahme} {bilder} />
|
||||
</AusweisLayoutImmowelt>
|
||||
80
src/pages/immowelt/verbrauchsausweis-erstellen/index.astro
Normal file
80
src/pages/immowelt/verbrauchsausweis-erstellen/index.astro
Normal file
@@ -0,0 +1,80 @@
|
||||
---
|
||||
import AusweisLayoutImmowelt from "#layouts/AusweisLayoutDatenImmowelt2.astro";
|
||||
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
|
||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
||||
import { createCaller } from "../../../astro-typesafe-api-caller.js";
|
||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
||||
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
|
||||
|
||||
const uid = Astro.url.searchParams.get("uid");
|
||||
let ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
|
||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
||||
let objekt: ObjektClient = {} as ObjektClient;
|
||||
let bilder: UploadedGebaeudeBild[] = []
|
||||
|
||||
const valid = validateAccessTokenServer(Astro);
|
||||
|
||||
const caller = createCaller(Astro);
|
||||
|
||||
if (uid) {
|
||||
if (!valid) {
|
||||
return Astro.redirect(
|
||||
`/auth/login?redirect=${Astro.url.toString()}`
|
||||
);
|
||||
}
|
||||
|
||||
try {
|
||||
ausweis = await caller["verbrauchsausweis-wohnen"]._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid
|
||||
}
|
||||
});
|
||||
|
||||
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: ausweis.uid_aufnahme
|
||||
}
|
||||
})
|
||||
|
||||
objekt = await caller.objekt._uid.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: ausweis.uid_objekt
|
||||
}
|
||||
})
|
||||
|
||||
bilder = await caller.objekt._uid.bilder.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
uid: ausweis.uid_objekt
|
||||
}
|
||||
})
|
||||
|
||||
if (!ausweis) {
|
||||
// Der Ausweis scheint nicht zu existieren.
|
||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/verbrauchsausweis-wohnen"
|
||||
);
|
||||
}
|
||||
} catch(e) {
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/verbrauchsausweis-wohnen"
|
||||
);
|
||||
}
|
||||
}
|
||||
---
|
||||
|
||||
<AusweisLayoutImmowelt title="Verbrauchsausweis erstellen">
|
||||
<VerbrauchsausweisWohnenModule client:load {ausweis} {objekt} {aufnahme} {bilder} />
|
||||
</AusweisLayoutImmowelt>
|
||||
@@ -1,9 +1,21 @@
|
||||
---
|
||||
|
||||
import WelcherAusweisWidget from "#components/widgets/WelcherAusweisWidget.svelte";
|
||||
|
||||
import WelcherAusweisWidget from "#components/widgets/WelcherAusweisWidget_1.svelte";
|
||||
const { vermittler } = Astro.params;
|
||||
|
||||
---
|
||||
|
||||
<WelcherAusweisWidget client:load/>
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<WelcherAusweisWidget client:only/>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
font-weight: 700;
|
||||
box-sizing: border-box;
|
||||
font-family: "Antique Olive Compact bold";
|
||||
color:#222222;
|
||||
}
|
||||
|
||||
|
||||
@@ -75,16 +76,16 @@ article {
|
||||
|
||||
hr {@apply mb-4 mt-4 border-primary;}
|
||||
|
||||
h1 {@apply text-4xl font-normal mb-2;}
|
||||
h2{@apply text-2xl font-normal mb-2;}
|
||||
h3 {@apply text-xl font-normal ml-1;}
|
||||
h1 {@apply pl-2 sm:pl-0 text-4xl font-normal mb-2;}
|
||||
h2{@apply pl-2 sm:pl-0 text-2xl font-normal mb-2;}
|
||||
h3 {@apply pl-2 sm:pl-0 text-xl font-normal ml-1;}
|
||||
|
||||
a {@apply text-blue-700 font-medium inline;}
|
||||
|
||||
p {@apply text-lg font-normal pl-2 pr-2 mb-4;}
|
||||
li {@apply text-lg font-normal }
|
||||
ul {@apply list-disc list-inside mb-4}
|
||||
span {@apply text-secondary font-bold;}
|
||||
/*span {@apply text-secondary font-bold;}*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -51,6 +51,8 @@ module.exports = {
|
||||
"pdf-yellow-bright": "#f3cb00",
|
||||
"pdf-yellow-light": "#fff6ca",
|
||||
|
||||
"immowelt-gelb": "#ffcc00ff",
|
||||
"immowelt-grau": "#303038ff",
|
||||
},
|
||||
boxShadow: {
|
||||
'box': '3px 3px 6px rgba(0, 0, 0, 0.1)',
|
||||
|
||||
Reference in New Issue
Block a user