diff --git a/.crontab b/.crontab
deleted file mode 100644
index 4f557ef4..00000000
--- a/.crontab
+++ /dev/null
@@ -1,3 +0,0 @@
-# Jeden Monat müssen wir die neuen Klimafaktoren vom DWD abholen, der Cronjob läuft immer am 28. für die höchste Wahrscheinlichkeit
-# dass die Daten schon da sind, falls der DWD mal später dran ist...
-0 12 28 * * bun ./src/cronjobs/update-dwd-klimafaktoren.ts
diff --git a/.github/workflows/auto-merge-staging-into-main.yml b/.github/workflows/auto-merge-staging-into-main.yml
index 4e9b15e6..94c07dd5 100644
--- a/.github/workflows/auto-merge-staging-into-main.yml
+++ b/.github/workflows/auto-merge-staging-into-main.yml
@@ -2,7 +2,7 @@ name: Auto Merge Staging into Main
on:
schedule:
- - cron: '0 2 * * *' # 2:00 UTC = 4:00 CET
+ - cron: '0 2 * * *' # 2:00 UTC = 4:00 Europäische Zeit
workflow_dispatch:
jobs:
@@ -27,17 +27,29 @@ jobs:
- name: Check if main has commits not in staging
id: check
run: |
- if ! git merge-base --is-ancestor origin/staging origin/main; then
- echo "Main hat neuere Commits als Staging. Merge wird abgebrochen."
+ git fetch origin
+ if [ $(git rev-list --count origin/staging..origin/main) -gt 0 ]; then
+ echo "❌ Staging is behind main and requires manual merging."
exit 1
fi
- - name: Merge staging into main
- if: steps.check.outcome == 'success'
+ - name: Create PR from staging to main
+ id: create_pr
run: |
- git checkout main
- git merge origin/staging --no-ff --no-edit
- git push origin main
+ PR_URL=$(gh pr create --base main --head staging --title "Auto-merge staging into main" --body "This PR was created automatically by GitHub Actions. It merges the latest \`staging\` into \`main\`.")
+ echo "PR_URL=$PR_URL" >> $GITHUB_OUTPUT
+ PR_NUMBER=$(echo $PR_URL | awk -F'/' '{print $NF}')
+ echo "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Enable auto-merge on PR
+ if: steps.create_pr.outputs.PR_NUMBER != ''
+ run: |
+ gh pr merge ${{ steps.create_pr.outputs.PR_NUMBER }} --merge --auto
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
notify_failure:
needs: merge
@@ -49,16 +61,4 @@ jobs:
curl -H "Content-Type: application/json" \
-X POST \
-d "{\"content\": \"🚨 Auto-Merge fehlgeschlagen! Bitte manuell prüfen: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}\"}" \
- ${{ secrets.DISCORD_WEBHOOK_URL }}
-
- notify_success:
- needs: merge
- if: success()
- runs-on: ubuntu-latest
- steps:
- - name: Send Discord notification on success
- run: |
- curl -H "Content-Type: application/json" \
- -X POST \
- -d "{\"content\": \"✅ Auto-Merge ausgeführt! Ergebnis jetzt auf [GitHub](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) und [online-energieausweis.org](https://online-energieausweis.org) einsehen.\"}" \
${{ secrets.DISCORD_WEBHOOK_URL }}
\ No newline at end of file
diff --git a/.ssh/id_rsa b/.ssh/id_rsa
deleted file mode 100644
index c75a481d..00000000
--- a/.ssh/id_rsa
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
-NhAAAAAwEAAQAAAYEAzUGXt3GYcT3344iWGGGcgL0zDKhkrieikZ+yqzDpLuEzRwu3epuT
-mvmHpT45awHyWr6pgOPpD7MGSDo13BVRAjCapYC23RL87E3ZRaH6aezVtV+tjl6vcCRtQx
-4uQWOtGzV8Mi84ErBxt3xKo19ieyVoJnJig9W7oLbf46I0/3Jz31SRQokfoDc7TFHrtVE2
-1UZgxNuDfKMhMsBaZcPNP+Rbpcs7s8Bd3Q1PfrbA6bTGGa4DYAR5Hgm+z/FMcu1PSrAA4f
-x+YxQrgNC4TNl8T3HSsGnnthNoQMCcl3LcAiy0C1JaWqXWGjYwawnfUdgB2nhb9i5t+yvb
-T/UL1+obIhJRx9EaK4CScNraa0ZWmawl/NY6Dumvly8OpeUwMaynsZEFPEZVxdXFUHVRLR
-74NGx23sq6qPYZuy5bFhbPJqIXsh2Pl6gvFE6HZcm5U6jgJOaHt98MSFIkILtWeab0cSmC
-Aokt8XF+/ezu37mbEvNzCNZpFYG9d6MXuK5HOG0xAAAFqMTKAD/EygA/AAAAB3NzaC1yc2
-EAAAGBAM1Bl7dxmHE99+OIlhhhnIC9MwyoZK4nopGfsqsw6S7hM0cLt3qbk5r5h6U+OWsB
-8lq+qYDj6Q+zBkg6NdwVUQIwmqWAtt0S/OxN2UWh+mns1bVfrY5er3AkbUMeLkFjrRs1fD
-IvOBKwcbd8SqNfYnslaCZyYoPVu6C23+OiNP9yc99UkUKJH6A3O0xR67VRNtVGYMTbg3yj
-ITLAWmXDzT/kW6XLO7PAXd0NT362wOm0xhmuA2AEeR4Jvs/xTHLtT0qwAOH8fmMUK4DQuE
-zZfE9x0rBp57YTaEDAnJdy3AIstAtSWlql1ho2MGsJ31HYAdp4W/Yubfsr20/1C9fqGyIS
-UcfRGiuAknDa2mtGVpmsJfzWOg7pr5cvDqXlMDGsp7GRBTxGVcXVxVB1US0e+DRsdt7Kuq
-j2GbsuWxYWzyaiF7Idj5eoLxROh2XJuVOo4CTmh7ffDEhSJCC7Vnmm9HEpggKJLfFxfv3s
-7t+5mxLzcwjWaRWBvXejF7iuRzhtMQAAAAMBAAEAAAGAOgLIWPHzlknf1kCDv2dTHrWaiI
-DNV8Ve9o5upmCf/v5qCjHfDPmMibftpP/FpZ86unf5mzKO6796zo4ZK9cgeqB3DMCorinQ
-Lw8/kaUai7aCngzpFfxf1C+Pa/FLPHLp+W8v51UeIXYZ5bRsuejbAhgL7BXXDxCow178Py
-9YkDvuUNfraCUuOY9ypHrgxfGqsDOAZRLvghnu55Oi2PEygNTPLDgY6xA61x+McLFBK6xK
-cvaSAKCzBJDXi5jUtQSpqykEpPSQHnD1PvbsLWIJoaolhaew9gv0ADu3iVIWFLeBMAuwQB
-N6fWRjJBT3hD9vmQ39OOCDkbpoATugAu3EOvY9pGLzN0Xf1Epc71eHLJj79hDC4H7Brz7A
-bOmkUNFtLOZR4ZoHfpm8N3taZ7IdXX/PA3VLCh9qhbFcaUp3uTpXRxTSvHBL03Gl/BQY19
-23FevrBH4GobkMpRVCWFFLawC4e9GPPB2QvQAq19W4RvoKmrOZCAa+VoKZKzCsLqG7AAAA
-wA9sQSy5+KfXVrkQOaF8OrEBI4g2yd8Q3RNpGMVIWfFtKIL1CCht9UxaOnJC7r/xos9Y6H
-LVnMB9tozQTFf0R3S8H90AAyS6uEzuW6BWDwbQBJvmkPL8gG/AszZWJU9JBfiAHvaWM00A
-QwzIv2+veCA2TcYIKhyiXg8r6fOQNLYkSYPpasycJy0nFknCC5Ma6XBgdzHm8QGSD4NfTZ
-jbO+uK2z5ZzM+BUprj4Af3vOXqiDD66aZbKdcwzcTRLVy/rgAAAMEA8B/4ilNBG7Z/sYGB
-zcBz52dkCG4tfsiY1dDYqEsDnLxF39giZj7Q0yLOHf52lt4GVEneCa5v8Q8jnN6zHZHt9A
-C4P6DxtD/D28CGF3smMw6ai+W7fsl1OgEIYfSA9iKzh+sA3egSakiqKAk4H9soE9ZgERkx
-cFuDljNGk+cekdzizpE2bmHfx4FscBcJxlZAeI35jSV5u6wzIkB2W13bq8nEI8VRu/n+PV
-luxwuy6B5bUfuUDxL9W9Wr9P8t9mkHAAAAwQDa03teSRCRU/ymaua+sv3ysIDOUeSb09vf
-8wX9xQpFq50CM99S3bGnwWk4A66JlK70rfWb3yoo5+Bmi22VRckQbhFhGBSWjnkKtAz5Mo
-dXHOlcfPcXtxpOW4xwCsoNhnwaELt09b2BjkwWl5gdYUPHs2rIhSupK3otFN5j5GuVd6gf
-bSuqavru4Xi5sySWyhKX2y+FkCDeNeOkIFeA12NNvoF4w+osLoz4GLdtydEhwSXUP9U+mr
-lRqC1/Jc8qggcAAAAxbW9yaXR6QG1vcml0ei1BU1VTLVRVRi1HYW1pbmctQTE1LUZBNTA3
-TlYtRkE1MDdOVgEC
------END OPENSSH PRIVATE KEY-----
diff --git a/.ssh/id_rsa.pub b/.ssh/id_rsa.pub
deleted file mode 100644
index 4effaa2c..00000000
--- a/.ssh/id_rsa.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDNQZe3cZhxPffjiJYYYZyAvTMMqGSuJ6KRn7KrMOku4TNHC7d6m5Oa+YelPjlrAfJavqmA4+kPswZIOjXcFVECMJqlgLbdEvzsTdlFofpp7NW1X62OXq9wJG1DHi5BY60bNXwyLzgSsHG3fEqjX2J7JWgmcmKD1bugtt/jojT/cnPfVJFCiR+gNztMUeu1UTbVRmDE24N8oyEywFplw80/5FulyzuzwF3dDU9+tsDptMYZrgNgBHkeCb7P8Uxy7U9KsADh/H5jFCuA0LhM2XxPcdKwaee2E2hAwJyXctwCLLQLUlpapdYaNjBrCd9R2AHaeFv2Lm37K9tP9QvX6hsiElHH0RorgJJw2tprRlaZrCX81joO6a+XLw6l5TAxrKexkQU8RlXF1cVQdVEtHvg0bHbeyrqo9hm7LlsWFs8moheyHY+XqC8UTodlyblTqOAk5oe33wxIUiQgu1Z5pvRxKYICiS3xcX797O7fuZsS83MI1mkVgb13oxe4rkc4bTE= moritz@moritz-ASUS-TUF-Gaming-A15-FA507NV-FA507NV
diff --git a/Kontrollsystem-GEG-2023-V1_0.ts b/Kontrollsystem-GEG-2023-V1_0.ts
deleted file mode 100644
index 3edb3cab..00000000
--- a/Kontrollsystem-GEG-2023-V1_0.ts
+++ /dev/null
@@ -1,3717 +0,0 @@
-/* eslint-disable */
-/**
- * This file was automatically generated by json-schema-to-typescript.
- * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
- * and run json-schema-to-typescript to regenerate this file.
- */
-
-/**
- * Ausgabestand: 21.10.2022
- */
-export type KontrollsystemGEG2023_V1_0 =
- {
- [k: string]: unknown;
- } & {
- "GEG-Energieausweis"?: GEGDaten;
- "GEG-Daten"?: GEGDaten;
- "Gebaeudebez-Daten"?: GebaeudebezDaten;
- "anonyme-GEG-Daten"?: AnonymeGEGDaten;
- "Gesetzesgrundlage-enum"?: GesetzesgrundlageEnum;
- "Rechtsstand-Grund-enum"?: RechtsstandGrundEnum;
- "Bundesland-enum"?: BundeslandEnum;
- "Gebaeudeteil-enum"?: GebaeudeteilEnum;
- "Altersklasse-enum"?: AltersklasseEnum;
- "Anlass-enum"?: AnlassEnum;
- "Wohngebaeude-Daten"?: WohngebaeudeDaten;
- "Gebaeudetyp-enum"?: GebaeudetypEnum;
- "Wohngebaeude-Verbrauchs-Daten"?: WohngebaeudeVerbrauchsDaten;
- "Energietraeger-Daten"?: EnergietraegerDaten;
- "Energietraeger-Verbrauch-enum"?: EnergietraegerVerbrauchEnum;
- "Zeitraum-Daten"?: ZeitraumDaten;
- "Warmwasserzuschlag-Daten"?: WarmwasserzuschlagDaten1;
- "Kuehlzuschlag-Daten"?: KuehlzuschlagDaten1;
- "Leerstandszuschlag-Heizung-Daten"?: LeerstandszuschlagHeizungDaten2;
- "Leerstandszuschlag-Warmwasser-Daten"?: LeerstandszuschlagWarmwasserDaten2;
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte-Daten"?: LeerstandszuschlagThermischErzeugteKaelteDaten1;
- "Leerstandszuschlag-Strom-Daten"?: LeerstandszuschlagStromDaten1;
- "Leerstandszuschlag-Bekanntmachung-Daten"?: LeerstandszuschlagBekanntmachungDaten4;
- "Warmwasserwertermittlung-enum"?: WarmwasserwertermittlungEnum;
- "Wohngebaeude-Bedarfs-Daten-easy"?: WohngebaeudeBedarfsDatenEasy;
- "Heizwaermeerzeuger-Typ-easy-enum"?: HeizwaermeerzeugerTypEasyEnum;
- "Waermeschutz-Variante-enum"?: WaermeschutzVarianteEnum;
- "Wohngebaeude-Bedarfs-Daten-4108-4701"?: WohngebaeudeBedarfsDaten41084701;
- "Wohngebaeude-Anbaugrad-enum"?: WohngebaeudeAnbaugradEnum;
- "Luftdichtheit-4701-enum"?: Luftdichtheit4701Enum;
- "Luftdichtheit-18599-enum"?: Luftdichtheit18599Enum;
- "Heizungsanlage-Daten"?: HeizungsanlageDaten;
- "Heizwaermeerzeuger-Typ-18599-enum"?: HeizwaermeerzeugerTyp18599Enum;
- "Heizwaermeerzeuger-Typ-4701-enum"?: HeizwaermeerzeugerTyp4701Enum;
- "Energietraeger-enum"?: EnergietraegerEnum;
- "Heizkreisauslegungstemperatur-enum"?: HeizkreisauslegungstemperaturEnum;
- "Trinkwarmwasseranlage-Daten"?: TrinkwarmwasseranlageDaten;
- "Trinkwarmwassererzeuger-Typ-18599-enum"?: TrinkwarmwassererzeugerTyp18599Enum;
- "Trinkwarmwassererzeuger-Typ-4701-enum"?: TrinkwarmwassererzeugerTyp4701Enum;
- "Wohngebaeude-Bedarfs-Daten-18599"?: WohngebaeudeBedarfsDaten18599;
- "Nichtwohngebaeude-Daten"?: NichtwohngebaeudeDaten;
- "Energieeffizienzklasse-enum"?: EnergieeffizienzklasseEnum;
- "Nichtwohngebaeude-Verbrauchs-Daten"?: NichtwohngebaeudeVerbrauchsDaten;
- "Zeitraum-Strom-Daten"?: ZeitraumStromDaten;
- "Nutzung-Gebaeudekategorie-Daten"?: NutzungGebaeudekategorieDaten;
- "Nutzung-Gebaeudekategorie-enum"?: NutzungGebaeudekategorieEnum;
- "Nichtwohngebaeude-Bedarfs-Daten"?: NichtwohngebaeudeBedarfsDaten;
- "Automatisierungsgrad-enum"?: AutomatisierungsgradEnum;
- "Art-der-Nutzung-erneuerbaren-Energie-enum"?: ArtDerNutzungErneuerbarenEnergieEnum;
- "Automatisierungsgrad-Technisches-Gebaeudemanagement-enum"?: AutomatisierungsgradTechnischesGebaeudemanagementEnum;
- "Bauteil-Opak-Daten"?: BauteilOpakDaten;
- "Bauteil-Transparent-Daten"?: BauteilTransparentDaten;
- "Bauteil-Dach-Daten"?: BauteilDachDaten;
- "Ausrichtung-enum"?: AusrichtungEnum;
- "Medium-enum"?: MediumEnum;
- "Kaelteanlage-Daten"?: KaelteanlageDaten;
- "Kaelteerzeuger-Typ-enum"?: KaelteerzeugerTypEnum;
- "Kaelteerzeuger-Regelung-enum"?: KaelteerzeugerRegelungEnum;
- "Rueckkuehlung-enum"?: RueckkuehlungEnum;
- "Kaelte-Temperaturniveau-enum"?: KaelteTemperaturniveauEnum;
- "RLT-Anlagen-Daten"?: RLTAnlagenDaten;
- "Zonen-Daten"?: ZonenDaten;
- "Nutzung-enum"?: NutzungEnum;
- "Sonnenschutz-enum"?: SonnenschutzEnum;
- "Lampenart-enum"?: LampenartEnum;
- "Beleuchtungsart-enum"?: BeleuchtungsartEnum;
- "Endenergie-Energietraeger-Daten"?: EndenergieEnergietraegerDaten;
- "NWG-Aushang-Daten"?: NWGAushangDaten;
- Modernisierungszeile?: Modernisierungszeile;
- "Modernisierung-Teil-enum"?: ModernisierungTeilEnum;
- "Modernisierung-Kombi-enum"?: ModernisierungKombiEnum;
- [k: string]: unknown;
- };
-/**
- * Grund für die Verwendung der angegebenen Gesetzesgrundlage, nach der der Nachweis geführt wurde.
- */
-export type AnonymeGEGDaten = (
- | {
- /**
- * Keine inspektionspflichtige Klimaanlage.
- */
- "Keine-inspektionspflichtige-Anlage": boolean | number;
- [k: string]: unknown;
- }
- | {
- /**
- * Anzahl inspektionspflichtiger Klimaanlagen.
- */
- "Anzahl-Klimanlagen": number;
- /**
- * Klimaanlage größer als 12 kW ohne Gebäudeautomation (inspektionspflichtig).
- */
- "Anlage-groesser-12kW-ohneGA": boolean | number;
- /**
- * Klimaanlage größer als 12 kW mit Gebäudeautomation (nicht inspektionspflichtig).
- */
- "Anlage-groesser-12kW-mitGA": boolean | number;
- /**
- * Klimaanlage größer als 70 kW, nach DIN SPEC 15240 zu bewerten.
- */
- "Anlage-groesser-70kW": boolean | number;
- /**
- * Nächstes Fälligkeitsdatum der Inspektion.
- */
- "Faelligkeitsdatum-Inspektion": string;
- [k: string]: unknown;
- }
-) &
- (
- | {
- Wohngebaeude: WohngebaeudeDaten;
- [k: string]: unknown;
- }
- | {
- Nichtwohngebaeude: NichtwohngebaeudeDaten;
- [k: string]: unknown;
- }
- ) &
- (
- | {
- /**
- * Der Austellungsanlass ist anders als "Modernisierung-Erweiterung", also: Neubau, Vermietung-Verkauf, Aushangspflicht oder sonstiges.
- */
- "Keine-Modernisierung-Erweiterung-Vorhaben": boolean | number;
- [k: string]: unknown;
- }
- | {
- /**
- * Austellungsanlass Modernisierung (140% Nachweis) nach § 50 (1).
- */
- "Modernisierung-Erweiterung-anzeigepflichtiges-Vorhaben": boolean | number;
- [k: string]: unknown;
- }
- | {
- /**
- * Austellungsanlass Modernisierung (140% Nachweis) nach § 50 (1).
- */
- "Modernisierung-Erweiterung-genehmigungspflichtiges-Vorhaben": boolean | number;
- [k: string]: unknown;
- }
- ) & {
- /**
- * Offizielle Registriernummer des Energieausweises; solange sie noch nicht beantragt ist, bleibt der Inhalt leer, wenn sie beantragt ist aber noch nicht übermittelt wurde, wird zwar das Datum des Antrags ggfs. im vorläufigen Energieausweis eingedruckt, das Feld bleibt hier aber trotzdem leer.
- */
- Registriernummer: string;
- /**
- * Ausstellungsdatum des Energieausweises, angegeben als YYYY-MM-DD.
- */
- Ausstellungsdatum: string;
- /**
- * Bundesland, in dem das Gebäude des Energieausweises steht.
- */
- Bundesland:
- | "Baden-Württemberg"
- | "Bayern"
- | "Berlin"
- | "Brandenburg"
- | "Bremen"
- | "Hamburg"
- | "Hessen"
- | "Mecklenburg-Vorpommern"
- | "Niedersachsen"
- | "Nordrhein-Westfalen"
- | "Rheinland-Pfalz"
- | "Saarland"
- | "Sachsen"
- | "Sachsen-Anhalt"
- | "Schleswig-Holstein"
- | "Thüringen";
- /**
- * Postleitzahl des Gebäudestandortes, aus Datenschutzgründen eingekürzt.
- */
- Postleitzahl: string;
- /**
- * Ergänzende Angabe bei Wohnteilen oder Nichtwohnteilen von gemischt genutzten Gebäuden gemäß §79 Abs. 2 GEG; bei Einzelgebäude Angabe "Ganzes Gebäude". z.B. bei einem mehrgeschossigen Mehrfamilienhaus mit einer Ladenzeile im EG ist für die Hauptnutzung ein „WG-Energieausweis“ auszustellen und für den kleineren Teil der Ladenzeile ein Ausweis „NWG-Teil eines WG“. Bei dem Nichtwohnteil (Ausweis für NWG) des Wohngebäudes lautet dann die Auswahl „Teil des Wohngebäudes“.
- */
- Gebaeudeteil: "Ganzes Gebäude" | "Teil des Wohngebäudes" | "Teil des Nichtwohngebäudes";
- /**
- * Baujahr des Gebäudes und ggfs. Hinweise auf nachträgliche Umbauten, Erweiterungen, Modernisierungen usw. .
- */
- "Baujahr-Gebaeude": string;
- /**
- * Altersklasse der ursprünglichen Errichtung des Gebäudes
- */
- "Altersklasse-Gebaeude":
- | "bis 1918"
- | "1919...1948"
- | "1949...1957"
- | "1958...1968"
- | "1969...1978"
- | "1979...1983"
- | "1984...1994"
- | "1995...2002"
- | "2003...2009"
- | "2010...2016"
- | "ab 2017";
- /**
- * Baujahr des/der Wärmeerzeuger(s) und ggfs. Hinweise auf nachträgliche bauliche Veränderung des/der Wärmeerzeuger(s).
- */
- "Baujahr-Waermeerzeuger": string;
- /**
- * Altersklasse der ältesten der energetisch wesentlichsten Komponenten der Wärmeerzeugung.
- */
- "Altersklasse-Waermeerzeuger":
- | "bis 1918"
- | "1919...1948"
- | "1949...1957"
- | "1958...1968"
- | "1969...1978"
- | "1979...1983"
- | "1984...1994"
- | "1995...2002"
- | "2003...2009"
- | "2010...2016"
- | "ab 2017";
- /**
- * Wesentliche Energieträger für die Heizung.
- */
- "wesentliche-Energietraeger-Heizung": string;
- /**
- * Wesentliche Energieträger für die Warmwasserbereitung.
- */
- "wesentliche-Energietraeger-Warmwasser": string;
- /**
- * Art(en) der erneuerbaren Energie(n), die eingesetzt wird/werden; wenn nicht gegeben bitte "keine" eintragen.
- */
- "Erneuerbare-Art": string;
- /**
- * Verwendung der erneuerbaren Energie(n), die eingesetzt wird/werden; wenn nicht gegeben bitte "keine" eintragen.
- */
- "Erneuerbare-Verwendung": string;
- /**
- * Art der Lüftung des Gebäudes: Fensterlüftung.
- */
- "Lueftungsart-Fensterlueftung": boolean | number;
- /**
- * Art der Lüftung des Gebäudes: Schachtlüftung.
- */
- "Lueftungsart-Schachtlueftung": boolean | number;
- /**
- * Art der Lüftung des Gebäudes: Lüftungsanlage ohne Wärmerückgewinnung.
- */
- "Lueftungsart-Anlage-o-WRG": boolean | number;
- /**
- * Art der Lüftung des Gebäudes: Lüftungsanlage mit Wärmerückgewinnung.
- */
- "Lueftungsart-Anlage-m-WRG": boolean | number;
- /**
- * Art der Kühlung des Gebäudes: Passive Kühlung.
- */
- "Kuehlungsart-passive-Kuehlung": boolean | number;
- /**
- * Art der Kühlung des Gebäudes: Kühlung aus Strom.
- */
- "Kuehlungsart-Strom": boolean | number;
- /**
- * Art der Kühlung des Gebäudes: Kühlung aus Wärme.
- */
- "Kuehlungsart-Waerme": boolean | number;
- /**
- * Art der Kühlung des Gebäudes: Gelieferte Kälte.
- */
- "Kuehlungsart-gelieferte-Kaelte": boolean | number;
- /**
- * Pflichtangabe der Treibhausgasemissionen in kg als CO2 Äquivalent/(m²a) für Bedarfsausweise, Verbrauchsausweise und Aushänge (gemäß GEG § 85 (2), (3) und (6) bzw. nach Berechnungsregeln gem. Anlage 9).
- */
- Treibhausgasemissionen: number;
- /**
- * Anlass der Ausstellung des Energieausweises. Treffen mehrere zu, so ist das Kreuz in der Rangfolge Neubau vor Modernisierung vor Vermietung/Verkauf vor Aushangpflicht zu sezten.
- */
- Ausstellungsanlass: "Neubau" | "Modernisierung-Erweiterung" | "Vermietung-Verkauf" | "Aushangpflicht" | "Sonstiges";
- /**
- * Die Datenerhebung erfolgte teilweise oder ganz durch den Aussteller.
- */
- "Datenerhebung-Aussteller": boolean | number;
- /**
- * Die Datenerhebung erfolgte teilweise oder ganz durch den Eigentümer.
- */
- "Datenerhebung-Eigentuemer": boolean | number;
- /**
- * Wenn Empfehlungen möglich sind, ist das Kreuz im Energieausweis entsprechend zu setzen, und es muss im Tag "Modernisierungsempfehlungen" mindestens eine Modernisierungsempfehlungen gegeben werden.
- */
- "Empfehlungen-moeglich": boolean | number;
- Modernisierungsempfehlungen?: Modernisierungszeile | Modernisierungszeile[];
- /**
- * Angabe, mit welcher Software die Berechnungen erfolgten (Herstellername, Programmbezeichnung, Programm-Version).
- */
- "Softwarehersteller-Programm-Version"?: string;
- "@Gesetzesgrundlage": GesetzesgrundlageEnum;
- "@Rechtsstand": string;
- "@Rechtsstand-Grund": RechtsstandGrundEnum;
- [k: string]: unknown;
- };
-/**
- * Dieser Block enthält entweder Verbrauchsdaten oder Bedarfswerte; beim Bedarfsausweis können zusätzliche Verbrauchsangaben mit angeführt werden.
- */
-export type WohngebaeudeDaten = {
- /**
- * Grundsätzlicher Gebäudetypus des Gebäudes bzw. Gebäudeteils; die Angaben EFH mit ELW und Zweifamilienhaus sind gleichwertig und können je nach ortsüblichem Gebrauch oder Bauhistorie usw. verwendet werden.
- */
- Gebaeudetyp:
- | "Einfamilienhaus"
- | "Zweifamilienhaus"
- | "Mehrfamilienhaus"
- | "Wohnteil gemischt genutztes Gebäude"
- | "Beidseitig angebautes Gebäude"
- | "Einseitig angebautes Gebäude"
- | "Sonstiges";
- /**
- * Anzahl der Wohneinheiten im Gebäude/Gebäudeteil.
- */
- "Anzahl-Wohneinheiten": number;
- /**
- * Energetische Nutzfläche AN des Gebäudes/Gebäudeteils (ganze Quadratmeter) (Gebäudenutzfläche AN).
- */
- Gebaeudenutzflaeche: number;
- [k: string]: unknown;
-} & WohngebaeudeDaten1;
-export type WohngebaeudeDaten1 =
- | {
- Verbrauchswerte: WohngebaeudeVerbrauchsDaten;
- [k: string]: unknown;
- }
- | {
- "Bedarfswerte-easy": WohngebaeudeBedarfsDatenEasy;
- [k: string]: unknown;
- }
- | {
- "Bedarfswerte-4108-4701": WohngebaeudeBedarfsDaten41084701;
- [k: string]: unknown;
- }
- | {
- "Bedarfswerte-18599": WohngebaeudeBedarfsDaten18599;
- [k: string]: unknown;
- };
-/**
- * Block, der einen Energieträger mit seinen einzelnen Verbrauchsperioden enthält.
- */
-export type EnergietraegerDaten = {
- /**
- * Umrechnung der erfassten verbrauchten Menge des Energieträgers in Energieverbrauch in kWh_Heizwert, wenn schon in kWh_Heizwert angegeben, dann "1,0" (Unterer Heizwert: H_i).
- */
- "Unterer-Heizwert": number;
- /**
- * Verwendeter Primärenergiefaktor des Energieträgers (Primärenergiefaktor: f_p) entsprechend Anlage 4 GEG.
- */
- Primaerenergiefaktor: number;
- /**
- * Emissionsfaktor für den jeweils eingesetzen Energieträger zur Umrechnung in Treibhausemissionen gemäß Anlage 9 des GEG.
- */
- Emissionsfaktor: number;
- Zeitraum: ZeitraumDaten | [ZeitraumDaten, ...ZeitraumDaten[]];
- [k: string]: unknown;
-} & EnergietraegerDaten1;
-export type EnergietraegerDaten1 =
- | {
- /**
- * Bezeichnung und Verbrauchsmengen-Einheit des Energieträgers, zu dem die anschliessenden Verbrauchswerte gehören.
- */
- "Energietraeger-Verbrauch":
- | "Heizöl in Liter"
- | "Heizöl in kWh Heizwert"
- | "Heizöl in kWh Brennwert"
- | "Erdgas in m³"
- | "Erdgas in kWh Heizwert"
- | "Erdgas in kWh Brennwert"
- | "Flüssiggas in m³ gasförmig"
- | "Flüssiggas in Liter flüssig"
- | "Flüssiggas in kg"
- | "Flüssiggas in kWh Heizwert"
- | "Steinkohle in kg"
- | "Steinkohle in kWh Heizwert"
- | "Braunkohle in kg"
- | "Braunkohle in kWh Heizwert"
- | "Biogas in m³"
- | "Biogas in kWh Heizwert"
- | "Biogas in kWh Brennwert"
- | "Biogas, gebäudenah erzeugt in m³"
- | "Biogas, gebäudenah erzeugt in kWh Heizwert"
- | "Biogas, gebäudenah erzeugt in kWh Brennwert"
- | "biogenes Flüssiggas in m³ gasförmig"
- | "biogenes Flüssiggas in Liter flüssig"
- | "biogenes Flüssiggas in kg"
- | "biogenes Flüssiggas in kWh Heizwert"
- | "Bioöl in Liter"
- | "Bioöl in kWh Heizwert"
- | "Bioöl in kWh Brennwert"
- | "Bioöl, gebäudenah erzeugt in Liter"
- | "Bioöl, gebäudenah erzeugt in kWh Heizwert"
- | "Bioöl, gebäudenah erzeugt in kWh Brennwert"
- | "Holz in Raummeter"
- | "Holz in kg"
- | "Holz in kWh Heizwert"
- | "Holz in kWh Brennwert"
- | "Holz in Schüttraummeter"
- | "Strom netzbezogen in kWh"
- | "Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft) in kWh"
- | "Verdrängungsstrommix für KWK in kWh"
- | "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme) in kWh"
- | "Kälte (Erdkälte, Umgebungskälte) in kWh"
- | "Abwärme aus Prozessen (prod) in kWh"
- | "Abwärme aus Prozessen (out) in kWh"
- | "Wärme aus KWK, gebäudeintegriert oder gebäudenah in kWh"
- | "Wärme aus Verbrennung von Siedlungsabfällen in kWh"
- | "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger in kWh"
- | "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger in kWh"
- | "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger in kWh"
- | "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger in kWh"
- | "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger in kWh"
- | "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger in kWh";
- [k: string]: unknown;
- }
- | {
- /**
- * Bezeichnung und Verbrauchsmengen-Einheit des Energieträgers, zu dem die anschliessenden Verbrauchswerte gehören, wenn ein nicht aufgelisteter Energieträger vorliegt.
- */
- "Sonstiger-Energietraeger-Verbrauch": string;
- [k: string]: unknown;
- };
-/**
- * Leerstandzuschlag für Heizung gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit.
- */
-export type LeerstandszuschlagHeizungDaten =
- | {
- /**
- * Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Heizung erforderlich ist.
- */
- "kein-Leerstand": string;
- [k: string]: unknown;
- }
- | {
- "Leerstandszuschlag-nach-Bekanntmachung": LeerstandszuschlagBekanntmachungDaten;
- /**
- * Wohngebäude: Zuschlagsfaktor f(eVhb, 12mth) nach der Formel f(eVhb, 12mth) = - 0,0028 * eVhb, 12mth + 0,9147 Nichtwohngebäude: Zuschlagsfaktor f(eVhb, 12mth) nach der Formel f(eVhb, 12mth) = - 0,0083 * eVhb, 12mth + 1,3982 gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit.
- */
- Zuschlagsfaktor: number;
- /**
- * Witterungsbereinigter Endenergieverbrauchsanteil für Heizung eVhb, 12mth ist Teil der Formel für Berechnung der Zuschlagsfaktor, Einheit in kWh/m²a; gemäß GEG § 82 und gemeinsamer Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit.
- */
- "witterungsbereinigter-Endenergieverbrauchsanteil-fuer-Heizung": number;
- [k: string]: unknown;
- };
-/**
- * Leerstandzuschlag für Warmwasser gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit.
- */
-export type LeerstandszuschlagWarmwasserDaten = {
- /**
- * true: Warmwasser ist nicht vorhanden (nur bei NWG), oder dezentrale elektrische Warmwasserbereitung ist beim Stromanteil mit erfasst, die Leerstandskorrektur erfolgt in diesem Fall zusammen mit den übrigen elektrischen Verbrauchsanteilen. In diesem Fall ist "kein-Leerstand" anzugeben. false: Einer der anderen Fälle hat Gültigkeit (kein Leerstand oder Leerstand nach Bekanntmachung).
- */
- "keine-Nutzung-von-WW": boolean | number;
- [k: string]: unknown;
-} & (
- | {
- /**
- * Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Warmwasser erforderlich ist.
- */
- "kein-Leerstand": string;
- [k: string]: unknown;
- }
- | {
- "Leerstandszuschlag-nach-Bekanntmachung": LeerstandszuschlagBekanntmachungDaten1;
- [k: string]: unknown;
- }
-);
-/**
- * Dieser Block enthält im Falle eines Wohngebäudes mit Nachweis nach DIN V 4108 / DIN V 4701 die Bedarfswerte.
- */
-export type WohngebaeudeBedarfsDaten41084701 = (
- | {
- /**
- * Endenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.
- */
- "Endenergiebedarf-Hoechstwert-Bestand": number;
- /**
- * Anforderungswert für Treibhausgasemissionen Modernisierter Altbau in kg/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.
- */
- "Treibhausgasemissionen-Hoechstwert-Bestand": number;
- [k: string]: unknown;
- }
- | {
- /**
- * Primärenergie-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche, bei Neubau im Energieausweis einzutragen. (Primärenergiebedarf: Q_p,Ref).
- */
- "Primaerenergiebedarf-Hoechstwert-Neubau": number;
- /**
- * Endenergiebedarf-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche.
- */
- "Endenergiebedarf-Hoechstwert-Neubau": number;
- /**
- * Anforderungswert für Treibhausgasemissionen Neubau (Kennwert des Referenzgebäudes) in kg/m²a bezogen auf die energetische Nutzfläche.
- */
- "Treibhausgasemissionen-Hoechstwert-Neubau": number;
- [k: string]: unknown;
- }
-) &
- (
- | {
- /**
- * Keine Maßnahmen nach § 45 in Verbindung mit $ 34.
- */
- "nicht-verschaerft-nach-GEG-34": boolean | number;
- [k: string]: unknown;
- }
- | {
- /**
- * Die in Verbindung mit § 34 GEG Maßnahmen nach § 45 in Kombination zur Nutzung erneuerbarer Energien zur Deckung des Wärme- und Kälteenergiebedarfs sind eingehalten (Anteil der Pflichterfüllung in %).
- */
- "verschaerft-nach-GEG-34": number;
- /**
- * Die Anforderung nach $ 16 GEG wurde unterschritten (in %).
- */
- "Anforderung-nach-GEG-16-unterschritten": number;
- [k: string]: unknown;
- }
- ) & {
- /**
- * Anbaugrad des Gebäudes bzw. Gebäudeteils an (beheizte) Nachbargebäude.
- */
- "Wohngebaeude-Anbaugrad": "freistehend" | "einseitig angebaut" | "zweiseitig angebaut";
- /**
- * Beheiztes Gebäudevolumen des Gebäudes/Gebäudeteils (ganze Kubikmeter) (Bruttovolumen: V_e).
- */
- Bruttovolumen: number;
- /**
- * Die durchschnittliche Geschosshöhe hG des Gebäudes (§ 25 GEG bzw. DIN V 18599-1: 2018-09) liegt im Anwendungsbereich zwischen 2,5 bis 3,0 m (Durchschnittliche Geschosshöhe: h_G).
- */
- "durchschnittliche-Geschosshoehe": number;
- "Bauteil-Opak": BauteilOpakDaten | [BauteilOpakDaten, ...BauteilOpakDaten[]];
- "Bauteil-Transparent"?: BauteilTransparentDaten | BauteilTransparentDaten[];
- "Bauteil-Dach"?: BauteilDachDaten | BauteilDachDaten[];
- /**
- * Wert des Wärmebrückenzuschlags für die Gebäudehülle (Wärmebrückenzuschlag: delta_U_WB).
- */
- Waermebrueckenzuschlag: number;
- /**
- * Transmissionswärmeverlust in kWh/a (Transmissionswärmeverlust: Q_T).
- */
- Transmissionswaermeverlust: number;
- /**
- * Luftdichtheit der Gebäudehülle.
- */
- Luftdichtheit: "undicht" | "normal" | "geprüft";
- /**
- * Lüftungswärmeverlust in kWh/a (Lüftungswärmeverlust: Q_V).
- */
- Lueftungswaermeverlust: number;
- /**
- * Summe der solaren Gewinne in kWh/a (Solare Wärmegewinne: Q_S).
- */
- "Solare-Waermegewinne": number;
- /**
- * Summe der internen Gewinne in kWh/a (Interne Wärmegewinne: Q_I).
- */
- "Interne-Waermegewinne": number;
- Heizungsanlage: HeizungsanlageDaten | [HeizungsanlageDaten, ...HeizungsanlageDaten[]];
- /**
- * Volumen eines oder mehrerer ggfs. vorhandenen Heizungs-Pufferspeicher(s) (keiner = 0) in Liter (Pufferspeicher-Nenninhalt: V).
- */
- "Pufferspeicher-Nenninhalt": number;
- /**
- * Temperaturniveau der Heizungsverteilung Vorlauf/Rücklauf, bzw. Angabe von Luftheizsystem oder ausschliesslicher Beheizung über Einzelraumheizgeräte; anzugeben ist die Temperatur des höchsten Kreises, bei krummen Werten ist die nach Vorlauftemperatur nächst höhere Auswahl anzugeben.
- */
- Heizkreisauslegungstemperatur:
- | "90/70"
- | "70/55"
- | "55/45"
- | "45/35"
- | "35/28"
- | "Warmluftheizung"
- | "nur Einzelraum-Heizgeräte";
- /**
- * TRUE, wenn alle Wärmeerzeuger innerhalb der thermischen Gebäudehülle stehen.
- */
- "Heizungsanlage-innerhalb-Huelle": boolean | number;
- Trinkwarmwasseranlage: TrinkwarmwasseranlageDaten | [TrinkwarmwasseranlageDaten, ...TrinkwarmwasseranlageDaten[]];
- /**
- * Volumen eines ggfs. vorhandenen Warmwasserspeichers (kein Speicher = 0), bzw. Summe der Volumina bei mehreren Speichern, in Liter (Trinkwarmwasserspeicher-Nenninhalt: V).
- */
- "Trinkwarmwasserspeicher-Nenninhalt": number;
- /**
- * Ist zur Warmwasserverteilung eine Trinkwasser-seitige Zirkulation vorhanden?
- */
- "Trinkwarmwasserverteilung-Zirkulation": boolean | number;
- /**
- * Wurden Regeln zur vereinfachten Datenaufnahme nach § 50 (4) GEG bzw. Bekanntmachungen angewendet?
- */
- "Vereinfachte-Datenaufnahme": boolean | number;
- /**
- * Spezifischer auf die wärmeübertragende Umfassungsfläche bezogener Transmissionswärmeverlust HT', Ist-Wert des Gebäudes, in W/m²K (spezifischer Transmissionswärmeverlust: H_T(Strich)).
- */
- "spezifischer-Transmissionswaermeverlust-Ist": number;
- /**
- * Spezifischer auf die wärmeübertragende Umfassungsfläche bezogener Transmissionswärmeverlust HT', Anforderungswert, in W/m²K, nur bei Neubauten und wesentlichen Modernisierungen/Erweiterungen (spezifischer Transmissionswärmeverlust: H_T(Strich)).
- */
- "spezifischer-Transmissionswaermeverlust-Hoechstwert"?: number;
- /**
- * Größe des Abzugs (in kWh/a m2) bei der Primärenergie bzw. bei der Endenergie für den gebäudenah erzeugten Strom aus erneuerbarer Energie nach der entsprechenden Bilanzierungsregel (vgl. GEG §23 (4))
- */
- "angerechneter-lokaler-erneuerbarer-Strom"?: number;
- /**
- * Angabe ob Innovationsklausel gemäß § 103 (1) GEG 2020 angewendet wurde. (Alternative Anforderungen: Treibhausgasemissionen, Höchstwert der Endenergiebedarfs + Transmissionswärmeverlust (nur für Neubau und WG) + Wärmedurchgangskoeffizienten der wärmeübertragenden Umfassungsfläche (nur für Neubau und NWG) - Aussetzung der Hauptanforderungen (Neubau § 10, Bestand § 50))
- */
- Innovationsklausel: boolean | number;
- /**
- * Angabe ob Quartiersregelung gemäß § 103 (3) - Gesamtbilanzierung für Wärmeversorgung zusammenhängender Gebäude - zutreffend ist.
- */
- Quartiersregelung: boolean | number;
- /**
- * Primärenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.
- */
- "Primaerenergiebedarf-Hoechstwert-Bestand": number;
- "Energietraeger-Liste":
- | EndenergieEnergietraegerDaten
- | [EndenergieEnergietraegerDaten]
- | [EndenergieEnergietraegerDaten, EndenergieEnergietraegerDaten]
- | [EndenergieEnergietraegerDaten, EndenergieEnergietraegerDaten, EndenergieEnergietraegerDaten]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ];
- /**
- * Endenergiekennwert Wärme in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergiebedarf-Wärme: q_WE,E).
- */
- "Endenergiebedarf-Waerme-AN": number;
- /**
- * Endenergiekennwert Hilfsenergie in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergiebedarf-Hilfsenergie-AN: q_HE,E).
- */
- "Endenergiebedarf-Hilfsenergie-AN": number;
- /**
- * Endenergiekennwert Gesamt in kWh/m²a bezogen auf die energetische Nutzfläche.
- */
- "Endenergiebedarf-Gesamt": number;
- /**
- * Primärenergiekennwert in kWh/m²a bezogen auf die energetische Nutzfläche (Primärenergiebedarf: q_p).
- */
- Primaerenergiebedarf: number;
- /**
- * Energieeffizienzklasse des Gebäudes.
- */
- Energieeffizienzklasse: "A+" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H";
- /**
- * Es wird die erste Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau.
- */
- "Art-der-Nutzung-erneuerbaren-Energie-1"?:
- | "solarthermische Anlagen"
- | "Strom aus erneuerbaren Energien"
- | "Geothermie oder Umweltwärme"
- | "feste Biomasse"
- | "flüssige Biomasse"
- | "gasförmige Biomasse"
- | "Kälte aus erneuerbaren Energien"
- | "Abwärme"
- | "Kraft-Wärme-Kopplung hocheff. KWK-Anlage"
- | "Kraft-Wärme-Kopplung Brennstoffzellenh."
- | "Fernwärme oder Fernkälte";
- /**
- * Deckungsanteil in % für erste Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.
- */
- "Deckungsanteil-1"?: number;
- /**
- * Pflichterfüllungsanteil in % für die erste Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)
- */
- "Anteil-der-Pflichterfuellung-1"?: number;
- /**
- * Es wird die zweite Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau.
- */
- "Art-der-Nutzung-erneuerbaren-Energie-2"?:
- | "solarthermische Anlagen"
- | "Strom aus erneuerbaren Energien"
- | "Geothermie oder Umweltwärme"
- | "feste Biomasse"
- | "flüssige Biomasse"
- | "gasförmige Biomasse"
- | "Kälte aus erneuerbaren Energien"
- | "Abwärme"
- | "Kraft-Wärme-Kopplung hocheff. KWK-Anlage"
- | "Kraft-Wärme-Kopplung Brennstoffzellenh."
- | "Fernwärme oder Fernkälte";
- /**
- * Deckungsanteil in % für zweite Angabe Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.
- */
- "Deckungsanteil-2"?: number;
- /**
- * Pflichterfüllungsanteil in % für die zweite Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)
- */
- "Anteil-der-Pflichterfuellung-2"?: number;
- /**
- * Der gemäß § 45 GEG um diese Prozentzahl verschärfte Anforderungswert (15 % Unterschreitung Transmissionswärmeverlust) als Maßnahme zur Einsparung von Energie ist eingehalten.
- */
- "verschaerft-nach-GEG-45-eingehalten"?: boolean | number;
- /**
- * Nach GEG § 45 verschärfter Anforderungswert für den spezifischen auf die wärmeübertragende Umfassungsfläche bezogenen Transmissionswärmeverlust HT' in W/m²K (spezifischer-Transmissionswärmeverlust-verschärft: H_T(Strich)).
- */
- "spezifischer-Transmissionswaermeverlust-verschaerft"?: number;
- /**
- * Sind die Anforderungen an den sommerlichen Wärmeschutz eingehalten? Relevant nur bei Neubau.
- */
- "Sommerlicher-Waermeschutz"?: boolean | number;
- /**
- * Angabe der Treibhausgasemissionen in kg als CO2 Äquivalent/(m²a); nur bei kombinierten Energieausweisen (Bedarf/Verbrauch), zusammen mit der Übermittlung der zusätzlichen Verbrauchsdaten.
- */
- "Treibhausgasemissionen-Zusaetzliche-Verbrauchsdaten"?: number;
- "Zusaetzliche-Verbrauchsdaten"?: WohngebaeudeVerbrauchsDaten1;
- [k: string]: unknown;
- };
-export type AusrichtungEnum = "N" | "S" | "O" | "W" | "NO" | "NW" | "SO" | "SW" | "HOR";
-export type MediumEnum = "Aussenluft" | "Raumluft" | "Erdreich";
-/**
- * Dieser Block enthält entweder die Beizeichung für die Waermeerzeuger Bauweise nach DIN V 18599 oder DIN V 4701-10.
- */
-export type HeizungsanlageDaten = {
- /**
- * Nennleistung des Wärmeerzeugers in kW, falls aus technischen Gründen keine Angabe der Nennleistung möglich, 0 angeben.
- */
- Nennleistung: number;
- /**
- * Baujahr dieses Wärmeerzeugers oder Jahr der massgeblichen letzten baulichen Veränderung des Wärmeerzeugers.
- */
- "Waermeerzeuger-Baujahr": string;
- /**
- * Anzahl ggfs. baugleich vorhandener Geräte (Mehrfach-Kessel, Einzelraumheizer usw.), bei nur einem Gerät Angabe "1".
- */
- "Anzahl-baugleiche": number;
- /**
- * vom Wärmeerzeuger verwendeter Energieträger
- */
- Energietraeger:
- | "Heizöl"
- | "Erdgas"
- | "Flüssiggas"
- | "Steinkohle"
- | "Braunkohle"
- | "Biogas"
- | "Biogas, gebäudenah erzeugt"
- | "biogenes Flüssiggas"
- | "Bioöl"
- | "Bioöl, gebäudenah erzeugt"
- | "Holz"
- | "Strom netzbezogen"
- | "Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft)"
- | "Verdrängungsstrommix für KWK"
- | "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme)"
- | "Kälte (Erdkälte, Umgebungskälte)"
- | "Abwärme aus Prozessen (prod)"
- | "Abwärme aus Prozessen (out)"
- | "Wärme aus KWK, gebäudeintegriert oder gebäudenah"
- | "Wärme aus Verbrennung von Siedlungsabfällen"
- | "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger"
- | "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger"
- | "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger"
- | "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger"
- | "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger"
- | "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger";
- /**
- * Verwendeter Primärenergiefaktor (nicht erneuerbarer Anteil) des Energieträgers (Primärenergiefaktor: f_p) entsprechend Anlage 4 GEG.
- */
- Primaerenergiefaktor: number;
- /**
- * Emissionsfaktor für den jeweils eingesetzen Energieträger zur Umrechnung in Treibhausemissionen gemäß Anlage 9 des GEG.
- */
- Emissionsfaktor: number;
- [k: string]: unknown;
-} & HeizungsanlageDaten1;
-export type HeizungsanlageDaten1 =
- | {
- "Waermeerzeuger-Bauweise-18599": HeizwaermeerzeugerTyp18599Enum;
- [k: string]: unknown;
- }
- | {
- "Waermeerzeuger-Bauweise-4701": HeizwaermeerzeugerTyp4701Enum;
- [k: string]: unknown;
- };
-/**
- * Geräte-Grundtyp des Wärmeerzeugers nach DIN V 18599.
- */
-export type HeizwaermeerzeugerTyp18599Enum =
- | "Standard-Heizkessel als Umstell-/Wechselbrandkessel"
- | "Standard-Heizkessel als Feststoffkessel (fossiler und biogener Brennstoff)"
- | "Standard-Heizkessel als Gas-Spezial-Heizkessel"
- | "Standard-Heizkessel als Gebläsekessel (fossiler und biogener Brennstoff)"
- | "Standard-Heizkessel als Gebläsekessel mit Brennertausch"
- | "Standard-Heizkessel als Pelletkessel"
- | "Standard-Heizkessel als Hackschnitzelkessel"
- | "Niedertemperatur-Heizkessel als Gas-Spezial-Heizkessel"
- | "Niedertemperatur-Heizkessel als Umlaufwasserheizer"
- | "Niedertemperatur-Heizkessel als Kombikessel KSp"
- | "Niedertemperatur-Heizkessel als Kombikessel DL"
- | "Niedertemperatur-Heizkessel als Gebläsekessel"
- | "Niedertemperatur-Heizkessel als Gebläsekessel mit Brennertausch"
- | "Brennwertkessel (Pellet)"
- | "Brennwertkessel (Öl/Gas)"
- | "Brennwertkessel (Öl, Gas), verbessert"
- | "Fern-/Nahwärme"
- | "Dezentrale KWK-Systeme, motorische Systeme"
- | "Dezentrale KWK-Systeme, Systeme mit Brennstoffzellen"
- | "Elektrisch angetriebene Luft/Wasser-Heizungswärmepumpe"
- | "Elektrisch angetriebene Wasser/Wasser-Heizungswärmepumpe"
- | "Elektrisch angetriebene Sole/Wasser-Heizungswärmepumpe"
- | "Elektrisch angetriebene Abluft/Wasser-Heizungswärmepumpe"
- | "Gasmotorisch angetriebene Luft/Wasser-Heizungswärmepumpe"
- | "Elektrisch angetriebene Außenluft/Raumluft-Heizungswärmepumpe"
- | "Sorptions-Gaswärmepumpe"
- | "Gasraumheizer, schornsteingebunden"
- | "Gasraumheizer, Außenwand-Gerät"
- | "Dezentrale Einzelfeuerstätten"
- | "Dezentrale Einzelfeuerstätten, hydraulisch eingebunden"
- | "Ölbefeuerter Einzelofen mit Verdampfungsbrenner"
- | "Kachelofen"
- | "Kohlebefeuerter eisener Ofen"
- | "Dezentrale Hallenheizung - indirekte Abgasabfuhr - Hellstrahler"
- | "Dezentrale Hallenheizung - direkte Abgasabfuhr - Hellstrahler"
- | "Dezentrale Hallenheizung - direkte Abgasabfuhr - Dunkelstrahler"
- | "Dezentrale Hallenheizung - direkte Abgasabfuhr - Warmlufterzeuger"
- | "Dezentral elektrisch beheizte Speicherheizung"
- | "Dezentrale elektrische Direktheizung"
- | "Zentral elektrisch beheizte Wärmeerzeuger"
- | "Solaranlagen zur Trinkwassererwärmung und Heizungsunterstützung (Solare Kombianlagen)";
-/**
- * Diese Auswahl darf nur für dieses Anlagensystem beim vereinfachten Tabellenverfahren für Wohngebäude-Neubauten (EnEV easy) verwendet werden.
- */
-export type HeizwaermeerzeugerTyp4701Enum =
- | "Umstell-/Wechselbrandkessel"
- | "Feststoffkessel"
- | "Standard-Heizkessel als Gas-Spezial-Heizkessel"
- | "Standard-Heizkessel als Gebläsekessel"
- | "Standard-Heizkessel als Gebläsekessel mit Brennertausch"
- | "Standard-Heizkessel (ab 1995)"
- | "Niedertemperatur-Heizkessel als Gas-Spezial-Heizkessel"
- | "Niedertemperatur-Heizkessel als Umlaufwasserheizer"
- | "Niedertemperatur-Heizkessel als Gebläsekessel"
- | "Niedertemperatur-Heizkessel als Gebläsekessel mit Brennertausch"
- | "Niedertemperatur-Heizkessel (ab 1995)"
- | "Brennwertkessel (bis 1994)"
- | "Brennwertkessel (ab 1995)"
- | "Brennwertkessel-verbessert"
- | "Biomasse-Wärmeerzeuger"
- | "Fern-/Nahwärme"
- | "Dezentrale Kraft-Wärme-Kopplung"
- | "Elektrisch betriebene Luft/Wasser-Heizungswärmepumpe"
- | "easy_Elektro-Wärmepumpe-Luft-TWW-dezentral"
- | "Elektrisch betriebene Wasser/Wasser-Heizungswärmepumpe"
- | "Elektrisch betriebene Sole/Wasser-Heizungswärmepumpe"
- | "Elektrisch betriebene Abluft/Wasser-Heizungswärmepumpe"
- | "Gasraumheizer, schornsteingebunden"
- | "Gasraumheizer, Außenwand-Gerät"
- | "Ölbefeuerter Einzelofen"
- | "Kachelofen"
- | "Kohlebefeuerter eisener Ofen"
- | "Dezentrale Elektro-Speicherheizung"
- | "Dezentrales elektrisches Direktheizgerät"
- | "Zentral elektrisch beheizte Wärmeerzeuger"
- | "Solare Heizungsunterstützung"
- | "Sonstiges";
-/**
- * Dieser Block enthält entweder die Bezeichung für die Wärmeerzeuger Bauweise nach DIN V 18599 oder nach DIN V 4701-10.
- */
-export type TrinkwarmwasseranlageDaten = {
- /**
- * Baujahr dieses Trinkwarmwassererzeugers oder Jahr der massgeblichen letzten baulichen Veränderung des Trinkwarmwassererzeugers.
- */
- "Trinkwarmwassererzeuger-Baujahr": string;
- /**
- * Anzahl ggfs. baugleich vorhandener Geräte (mehrfach vorhandene Untertischgeräte usw.), bei nur einem Gerät Angabe "1".
- */
- "Anzahl-baugleiche": number;
- [k: string]: unknown;
-} & TrinkwarmwasseranlageDaten1;
-export type TrinkwarmwasseranlageDaten1 =
- | {
- "Trinkwarmwassererzeuger-Bauweise-18599": TrinkwarmwassererzeugerTyp18599Enum;
- [k: string]: unknown;
- }
- | {
- "Trinkwarmwassererzeuger-Bauweise-4701": TrinkwarmwassererzeugerTyp4701Enum;
- [k: string]: unknown;
- };
-/**
- * Geräte-Grundtyp des Warmwassererzeugers nach DIN V 18599.
- */
-export type TrinkwarmwassererzeugerTyp18599Enum =
- | "Standard-Heizkessel als Umstell-/Wechselbrandkessel"
- | "Standard-Heizkessel als Feststoffkessel (fossiler und biogener Brennstoff)"
- | "Standard-Heizkessel als Gas-Spezial-Heizkessel"
- | "Standard-Heizkessel als Gebläsekessel (fossiler und biogener Brennstoff)"
- | "Standard-Heizkessel als Gebläsekessel mit Brennertausch"
- | "Standard-Heizkessel als Pelletkessel"
- | "Standard-Heizkessel als Hackschnitzelkessel"
- | "Niedertemperatur-Heizkessel als Gas-Spezial-Heizkessel"
- | "Niedertemperatur-Heizkessel als Umlaufwasserheizer"
- | "Niedertemperatur-Heizkessel als Kombikessel KSp"
- | "Niedertemperatur-Heizkessel als Kombikessel DL"
- | "Niedertemperatur-Heizkessel als Gebläsekessel"
- | "Niedertemperatur-Heizkessel als Gebläsekessel mit Brennertausch"
- | "Brennwertkessel (Pellet)"
- | "Brennwertkessel (Öl/Gas)"
- | "Brennwertkessel (Öl, Gas), verbessert"
- | "Gas-Durchlauferhitzer"
- | "Fern-/Nahwärme"
- | "Dezentrale Kraft-Wärme-Kopplung, motorische Systeme"
- | "Dezentrale Kraft-Wärme-Kopplung, Systeme mit Brennstoffzellen"
- | "Dezentrale Einzelfeuerstätten, hydraulisch eingebunden"
- | "Elektrisch angetriebene Kellerluft/Wasser-Wärmepumpe"
- | "Elektrisch angetriebene Luft/Wasser-Wärmepumpe"
- | "Elektrisch angetriebene Abluft/Trinkwasser-Wärmepumpe"
- | "Elektrisch angetriebene Abluft/Zuluft-Trinkwasser-Wärmepumpe"
- | "Elektrisch angetriebene Kellerluft/Trinkwasser-Wärmepumpe"
- | "Elektrisch angetriebene Wasser/Wasser-Wärmepumpe"
- | "Elektrisch angetriebene Sole/Wasser-Wärmepumpe"
- | "Elektrisch angetriebene Abluft/Wasser-Wärmepumpe"
- | "Gasmotorisch angetriebene Luft/Wasser-Wärmepumpe"
- | "Sorptions-Gaswärmepumpe"
- | "Direkt beheizter Trinkwarmwasserspeicher (Gas)"
- | "Elektro-Durchlauferhitzer"
- | "Elektrisch beheizter Trinkwarmwasserspeicher"
- | "Solaranlagen zur Trinkwassererwärmung";
-/**
- * Diese Bauweise ist nur auszuwählen, wenn die Solaranlage nicht auch der Heizungsunterstützung dient, sondern ausschliesslich die Warmwasserbereitung versorgt.
- */
-export type TrinkwarmwassererzeugerTyp4701Enum =
- | "über Heizungsanlage beheizter Speicher"
- | "Elektro-Speicher"
- | "Direkt beheizter Trinkwarmwasserspeicher (Gas)"
- | "Elektro-Durchlauferhitzer"
- | "Solare Trinkwarmwasserbereitung"
- | "Sonstiges";
-export type EnergietraegerEnum =
- | "Heizöl"
- | "Erdgas"
- | "Flüssiggas"
- | "Steinkohle"
- | "Braunkohle"
- | "Biogas"
- | "Biogas, gebäudenah erzeugt"
- | "biogenes Flüssiggas"
- | "Bioöl"
- | "Bioöl, gebäudenah erzeugt"
- | "Holz"
- | "Strom netzbezogen"
- | "Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft)"
- | "Verdrängungsstrommix für KWK"
- | "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme)"
- | "Kälte (Erdkälte, Umgebungskälte)"
- | "Abwärme aus Prozessen (prod)"
- | "Abwärme aus Prozessen (out)"
- | "Wärme aus KWK, gebäudeintegriert oder gebäudenah"
- | "Wärme aus Verbrennung von Siedlungsabfällen"
- | "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger"
- | "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger"
- | "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger"
- | "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger"
- | "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger"
- | "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger";
-/**
- * Dieser Block enthält im Falle eines Wohngebäudes mit Nachweis nach DIN V 18599 die Bedarfswerte.
- */
-export type WohngebaeudeBedarfsDaten18599 = (
- | {
- /**
- * Endenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.
- */
- "Endenergiebedarf-Hoechstwert-Bestand": number;
- /**
- * Anforderungswert für Treibhausgasemissionen Modernisierter Altbau in kg/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.
- */
- "Treibhausgasemissionen-Hoechstwert-Bestand": number;
- [k: string]: unknown;
- }
- | {
- /**
- * Primärenergie-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche, bei Neubau im Energieausweis einzutragen. (Primärenergiebedarf: Q_p,Ref).
- */
- "Primaerenergiebedarf-Hoechstwert-Neubau": number;
- /**
- * Endenergiebedarf-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche.
- */
- "Endenergiebedarf-Hoechstwert-Neubau": number;
- /**
- * Anforderungswert für Treibhausgasemissionen Neubau (Kennwert des Referenzgebäudes) in kg/m²a bezogen auf die energetische Nutzfläche.
- */
- "Treibhausgasemissionen-Hoechstwert-Neubau": number;
- [k: string]: unknown;
- }
-) &
- (
- | {
- /**
- * Keine Maßnahmen nach § 45 in Verbindung mit $ 34.
- */
- "nicht-verschaerft-nach-GEG-34": boolean | number;
- [k: string]: unknown;
- }
- | {
- /**
- * Die in Verbindung mit § 34 GEG Maßnahmen nach § 45 in Kombination zur Nutzung erneuerbarer Energien zur Deckung des Wärme- und Kälteenergiebedarfs sind eingehalten (Anteil der Pflichterfüllung in %).
- */
- "verschaerft-nach-GEG-34": number;
- /**
- * Die Anforderung nach $ 16 GEG wurde unterschritten (in %).
- */
- "Anforderung-nach-GEG-16-unterschritten": number;
- [k: string]: unknown;
- }
- ) & {
- /**
- * Anbaugrad des Gebäudes bzw. Gebäudeteils an (beheizte) Nachbargebäude.
- */
- "Wohngebaeude-Anbaugrad": "freistehend" | "einseitig angebaut" | "zweiseitig angebaut";
- /**
- * Beheiztes Gebäudevolumen des Gebäudes/Gebäudeteils (ganze Kubikmeter) (Bruttovolumen: V_e).
- */
- Bruttovolumen: number;
- /**
- * Durchschnittliche Geschosshöhe hG des Gebäudes/Gebäudeteils in m zur Festlegung, über welche Formel (Anl. 1 Nr. 1.3.3 Satz 1 oder 2) die Nutzfläche AN bestimmt wurde (Durchschnittliche Geschosshöhe: h_G).
- */
- "durchschnittliche-Geschosshoehe": number;
- "Bauteil-Opak": BauteilOpakDaten | [BauteilOpakDaten, ...BauteilOpakDaten[]];
- "Bauteil-Transparent"?: BauteilTransparentDaten | BauteilTransparentDaten[];
- "Bauteil-Dach"?: BauteilDachDaten | BauteilDachDaten[];
- /**
- * Wert des Wärmebrückenzuschlags für die Gebäudehülle (Wärmebrückenzuschlag: delta_U_WB).
- */
- Waermebrueckenzuschlag: number;
- /**
- * Transmissionswärmesenken in kWh/a (Transmissionswärmesenken: Q_T).
- */
- Transmissionswaermesenken: number;
- /**
- * Luftdichtheit der Gebäudehülle.
- */
- Luftdichtheit: "Gebäudekategorie I" | "Gebäudekategorie II" | "Gebäudekategorie III" | "Gebäudekategorie IV";
- /**
- * Lüftungswärmesenken in kWh/a (Lüftungswärmesenken: Q_V).
- */
- Lueftungswaermesenken: number;
- /**
- * Summe der Wärmequellen durch solare Einstrahlung in kWh/a (Wärmequellen durch solare Einstrahlung: Q_S).
- */
- "Waermequellen-durch-solare-Einstrahlung": number;
- /**
- * Summe der inneren Gewinne in kWh/a (Interne-Wärmequellen: Q_I,source) Info: Interne Wärmequellen nach DIN V 18599 berücksichtigen die ungeregelten Wärmequellen aus der Anlagentechnik nicht.
- */
- "Interne-Waermequellen": number;
- Heizsystem: HeizungsanlageDaten | [HeizungsanlageDaten, ...HeizungsanlageDaten[]];
- /**
- * Volumen eines ggfs. vorhandenen Heizungs-Pufferspeichers (keiner =0) in Liter (Pufferspeicher-Nenninhalt: V_s).
- */
- "Pufferspeicher-Nenninhalt": number;
- /**
- * Temperaturniveau der Heizungsverteilung Vorlauf/Rücklauf, bzw. Angabe von Luftheizsystem oder ausschliesslicher Beheizung über Einzelraumheizgeräte; anzugeben ist die Temperatur des höchsten Kreises, bei krummen Werten ist die nach Vorlauftemperatur nächst höhere Auswahl anzugeben.
- */
- Auslegungstemperatur:
- | "90/70"
- | "70/55"
- | "55/45"
- | "45/35"
- | "35/28"
- | "Warmluftheizung"
- | "nur Einzelraum-Heizgeräte";
- /**
- * TRUE, wenn alle Wärmeerzeuger innerhalb der thermischen Gebäudehülle stehen.
- */
- "Heizsystem-innerhalb-Huelle": boolean | number;
- Warmwasserbereitungssystem:
- | TrinkwarmwasseranlageDaten
- | [TrinkwarmwasseranlageDaten, ...TrinkwarmwasseranlageDaten[]];
- /**
- * Volumen eines ggfs. vorhandenen Warmwasserspeichers (kein Speicher = 0) bzw. Summe der Volumina bei mehreren Speichern, in Liter (Trinkwarmwasserspeicher-Nenninhalt: V_s).
- */
- "Trinkwarmwasserspeicher-Nenninhalt": number;
- /**
- * Ist zur Warmwasserverteilung eine Trinkwasser-seitige Zirkulation vorhanden?
- */
- "Trinkwarmwasserverteilung-Zirkulation": boolean | number;
- /**
- * Wurden Regeln zur vereinfachten Datenaufnahme nach § 50 (4) GEG bzw. Bekanntmachungen angewendet?
- */
- "Vereinfachte-Datenaufnahme": boolean | number;
- /**
- * Spezifischer auf die wärmeübertragende Umfassungsfläche bezogener Transmissionswärmeverlust HT', Ist-Wert des Gebäudes, in W/m²K (spezifischer Transmissionswärmetransferkoeffizient: H_T(Strich)).
- */
- "spezifischer-Transmissionswaermetransferkoeffizient-Ist": number;
- /**
- * Spezifischer auf die wärmeübertragende Umfassungsfläche bezogener Transmissionswärmeverlust HT', Anforderungswert, in W/m²K, nur bei Neubau und wesentlicher Modernisierung/Erweiterungen (spezifischer Transmissionswärmetransferkoeffizient: H_T(Strich)).
- */
- "spezifischer-Transmissionswaermetransferkoeffizient-Hoechstwert"?: number;
- /**
- * Größe des Abzugs (in kWh/a m2) bei der Primärenergie bzw. bei der Endenergie für den gebäudenah erzeugten Strom aus erneuerbarer Energie nach der entsprechenden Bilanzierungsregel (vgl. GEG §23 (4))
- */
- "angerechneter-lokaler-erneuerbarer-Strom"?: number;
- /**
- * Angabe ob Innovationsklausel gemäß § 103 (1) GEG 2020 angewendet wurde. (Alternative Anforderungen: Treibhausgasemissionen, Höchstwert der Endenergiebedarfs + Transmissionswärmeverlust (nur für Neubau und WG) + Wärmedurchgangskoeffizienten der wärmeübertragenden Umfassungsfläche (nur für Neubau und NWG) - Aussetzung der Hauptanforderungen (Neubau § 10, Bestand § 50))
- */
- Innovationsklausel: boolean | number;
- /**
- * Angabe ob Quartiersregelung gemäß § 103 (3) - Gesamtbilanzierung für Wärmeversorgung zusammenhängender Gebäude - zutreffend ist.
- */
- Quartiersregelung: boolean | number;
- /**
- * Primärenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.
- */
- "Primaerenergiebedarf-Hoechstwert-Bestand": number;
- "Energietraeger-Liste":
- | EndenergieEnergietraegerDaten
- | [EndenergieEnergietraegerDaten]
- | [EndenergieEnergietraegerDaten, EndenergieEnergietraegerDaten]
- | [EndenergieEnergietraegerDaten, EndenergieEnergietraegerDaten, EndenergieEnergietraegerDaten]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ];
- /**
- * Endenergiekennwert Wärme in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergiebedarf-Wärme: Q_f).
- */
- "Endenergiebedarf-Waerme-AN": number;
- /**
- * Endenergiekennwert Hilfsenergie in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergiebedarf-Hilfsenergie: W_f).
- */
- "Endenergiebedarf-Hilfsenergie-AN": number;
- /**
- * Endenergiekennwert Gesamt in kWh/m²a bezogen auf die energetische Nutzfläche.
- */
- "Endenergiebedarf-Gesamt": number;
- /**
- * Primärenergiekennwert in kWh/m²a bezogen auf die energetische Nutzfläche (Primärenergiebedarf: Q_p).
- */
- "Primaerenergiebedarf-AN": number;
- /**
- * Energieeffizienzklasse des Gebäudes.
- */
- Energieeffizienzklasse: "A+" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H";
- /**
- * Es wird die erste Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau.
- */
- "Art-der-Nutzung-erneuerbaren-Energie-1"?:
- | "solarthermische Anlagen"
- | "Strom aus erneuerbaren Energien"
- | "Geothermie oder Umweltwärme"
- | "feste Biomasse"
- | "flüssige Biomasse"
- | "gasförmige Biomasse"
- | "Kälte aus erneuerbaren Energien"
- | "Abwärme"
- | "Kraft-Wärme-Kopplung hocheff. KWK-Anlage"
- | "Kraft-Wärme-Kopplung Brennstoffzellenh."
- | "Fernwärme oder Fernkälte";
- /**
- * Deckungsanteil in % für erste Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.
- */
- "Deckungsanteil-1"?: number;
- /**
- * Pflichterfüllungsanteil in % für die erste Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)
- */
- "Anteil-der-Pflichterfuellung-1"?: number;
- /**
- * Es wird die zweite Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau.
- */
- "Art-der-Nutzung-erneuerbaren-Energie-2"?:
- | "solarthermische Anlagen"
- | "Strom aus erneuerbaren Energien"
- | "Geothermie oder Umweltwärme"
- | "feste Biomasse"
- | "flüssige Biomasse"
- | "gasförmige Biomasse"
- | "Kälte aus erneuerbaren Energien"
- | "Abwärme"
- | "Kraft-Wärme-Kopplung hocheff. KWK-Anlage"
- | "Kraft-Wärme-Kopplung Brennstoffzellenh."
- | "Fernwärme oder Fernkälte";
- /**
- * Deckungsanteil in % für zweite Angabe Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.
- */
- "Deckungsanteil-2"?: number;
- /**
- * Pflichterfüllungsanteil in % für die zweite Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)
- */
- "Anteil-der-Pflichterfuellung-2"?: number;
- /**
- * Der gemäß § 45 GEG um diese Prozentzahl verschärfte Anforderungswert (15 % Unterschreitung Transmissionswärmeverlust) als Maßnahme zur Einsparung von Energie ist eingehalten.
- */
- "verschaerft-nach-GEG-45-eingehalten"?: boolean | number;
- /**
- * Nach EEWärmeG verschärfter Anforderungswert für den spezifischen auf die wärmeübertragende Umfassungsfläche bezogenen Transmissionswärmeverlust HT' in W/m²K (spezifischer-Transmissionswärmetransferkoeffizient-verschärft: H_T(Strich)).
- */
- "spezifischer-Transmissionswaermetransferkoeffizient-verschaerft"?: number;
- /**
- * Sind die Anforderungen an den sommerlichen Wärmeschutz eingehalten? Relevant nur bei Neubau.
- */
- "Sommerlicher-Waermeschutz"?: boolean | number;
- /**
- * Angabe der Treibhausgasemissionen in kg als CO2 Äquivalent/(m²a); nur bei kombinierten Energieausweisen (Bedarf/Verbrauch), zusammen mit der Übermittlung der zusätzlichen Verbrauchsdaten.
- */
- "Treibhausgasemissionen-Zusaetzliche-Verbrauchsdaten"?: number;
- "Zusaetzliche-Verbrauchsdaten"?: WohngebaeudeVerbrauchsDaten2;
- [k: string]: unknown;
- };
-/**
- * Dieser Block enthält entweder Verbrauchs- oder Bedarfswerte; beim Bedarfsausweis können zusätzliche Verbrauchsangaben angeführt werden.
- */
-export type NichtwohngebaeudeDaten = {
- /**
- * Pflichtangabe der Hauptnutzungsart des Gebäudes. Die Auswahl der Hauptnutzung-Gebaeudekategorie ergibt sich aus der "Bekanntmachung der Regeln für Energieverbrauchswerte und der Vergleichswerte im Nichtwohngebäudebestand" unter der Anlage 1 Tabelle 1 Teilenergiekennwerte (TEK) nach Gebäudekategorien.
- */
- "Hauptnutzung-Gebaeudekategorie":
- | "1:Verwaltungsgebäude (allgemein)"
- | "2:Parlaments- und Gerichtsgebäude"
- | "3:Ministerien u. Ämter u. Behörden"
- | "4:Polizeidienstgebäude"
- | "5:Gebäude für öffentliche Bereitschaftsdienste"
- | "6:Feuerwehrdienstgebäude"
- | "7:Bürogebäude"
- | "8:Bürogebäude - überwiegend Großraumbüros"
- | "9:Bankgebäude"
- | "10:Hochschule und Forschung (allgemein)"
- | "11:Gebäude für Lehre"
- | "12:Institute für Lehre und Forschung"
- | "13:Gebäude für Forschung ohne Lehre"
- | "14:Laborgebäude"
- | "15:Gesundheitswesen (allgemein)"
- | "16:Krankenhäuser (ohne Forschung und Lehre)"
- | "17:Krankenhäuser (ohne Forschung und Lehre) und teilstationäre Versorgung"
- | "18:Medizinische Einrichtungen für nicht stationäre Versorgung"
- | "19:Gebäude für Reha, Kur und Genesung"
- | "20:Bildungseinrichtungen (allgemein)"
- | "21:Schulen"
- | "22:Kinderbetreuungseinrichtungen"
- | "23:Kultureinrichtungen (allgemein)"
- | "24:Bibliotheken / Archive"
- | "25:Ausstellungsgebäude"
- | "26:Veranstaltungsgebäude"
- | "27:Gemeinschafts- / Gemeindehäuser"
- | "28:Opern / Theater"
- | "29:Sporteinrichtungen (allgemein)"
- | "30:Sporthallen"
- | "31:Fitnessstudios"
- | "32:Schwimmhallen"
- | "33:Gebäude für Sportaußenanlagen"
- | "34:Verpflegungseinrichtungen (allgemein)"
- | "35:Beherbergungsstätten (allgemein)"
- | "36:Hotels / Pensionen"
- | "37:Jugendherbergen u. Ferienhäuser"
- | "38:Gaststätten"
- | "39:Mensen u. Kantinen"
- | "40:Gewerbliche und industrielle Gebäude (allgemein)"
- | "41:Gewerbliche und industrielle Gebäude - schwere Arbeit, stehende Tätigkeit"
- | "42:Gewerbliche und industrielle Gebäude - Mischung aus leichter u. schwerer Arbeit"
- | "43:Gewerbliche und industrielle Gebäude - leichte Arbeit, überwiegend sitzende Tätigkeit"
- | "44:Gebäude für Lagerung"
- | "45:Verkaufsstätten (allgemein)"
- | "46:Kaufhäuser"
- | "47:Kaufhauszentren / Einkaufszentren"
- | "48:Märkte"
- | "49:Märkte mit sehr hohem Anteil von Kühlung für Lebensmittel"
- | "50:Läden"
- | "51:Läden mit sehr hohem Anteil von Kühlung für Lebensmittel"
- | "52:Fernmeldetechnik"
- | "53:Sonstiges";
- /**
- * Sollte keine der 52 Gebäudekategorien laut Bekanntmachung für die Hauptnutzung zutreffend sein, muss in Hauptnutzung-Gebaeudekategorie-Sonstiges-Beschreibung eine alternative Bezeichnung eingetragen werden. Für die Seite 3 im Energieverbrauchsausweis Nichtwohngebäude darf die Gebäudekategorie '53:Sonstiges' nicht verwendet werden.
- */
- "Hauptnutzung-Gebaeudekategorie-Sonstiges-Beschreibung"?: string;
- /**
- * Nettogrundfläche als energetische Nutzfläche eines Gebäudes/Gebäudeteils nach DIN V 18599: 2018-09 (ganze Quadratmeter) (Nettogrundfläche: A_NGF).
- */
- Nettogrundflaeche: number;
- [k: string]: unknown;
-} & NichtwohngebaeudeDaten1;
-export type NichtwohngebaeudeDaten1 =
- | {
- "Verbrauchswerte-NWG": NichtwohngebaeudeVerbrauchsDaten;
- [k: string]: unknown;
- }
- | {
- "Bedarfswerte-NWG": NichtwohngebaeudeBedarfsDaten;
- [k: string]: unknown;
- };
-/**
- * Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen.
- */
-export type LeerstandszuschlagHeizungDaten1 =
- | {
- /**
- * Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Heizung erforderlich ist.
- */
- "kein-Leerstand": string;
- [k: string]: unknown;
- }
- | {
- "Leerstandszuschlag-nach-Bekanntmachung": LeerstandszuschlagBekanntmachungDaten;
- /**
- * Wohngebäude: Zuschlagsfaktor f(eVhb, 12mth) nach der Formel f(eVhb, 12mth) = - 0,0028 * eVhb, 12mth + 0,9147 Nichtwohngebäude: Zuschlagsfaktor f(eVhb, 12mth) nach der Formel f(eVhb, 12mth) = - 0,0083 * eVhb, 12mth + 1,3982 gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit.
- */
- Zuschlagsfaktor: number;
- /**
- * Witterungsbereinigter Endenergieverbrauchsanteil für Heizung eVhb, 12mth ist Teil der Formel für Berechnung der Zuschlagsfaktor, Einheit in kWh/m²a; gemäß GEG § 82 und gemeinsamer Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit.
- */
- "witterungsbereinigter-Endenergieverbrauchsanteil-fuer-Heizung": number;
- [k: string]: unknown;
- };
-/**
- * Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen.
- */
-export type LeerstandszuschlagWarmwasserDaten1 = {
- /**
- * true: Warmwasser ist nicht vorhanden (nur bei NWG), oder dezentrale elektrische Warmwasserbereitung ist beim Stromanteil mit erfasst, die Leerstandskorrektur erfolgt in diesem Fall zusammen mit den übrigen elektrischen Verbrauchsanteilen. In diesem Fall ist "kein-Leerstand" anzugeben. false: Einer der anderen Fälle hat Gültigkeit (kein Leerstand oder Leerstand nach Bekanntmachung).
- */
- "keine-Nutzung-von-WW": boolean | number;
- [k: string]: unknown;
-} & (
- | {
- /**
- * Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Warmwasser erforderlich ist.
- */
- "kein-Leerstand": string;
- [k: string]: unknown;
- }
- | {
- "Leerstandszuschlag-nach-Bekanntmachung": LeerstandszuschlagBekanntmachungDaten1;
- [k: string]: unknown;
- }
-);
-/**
- * Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen.
- */
-export type LeerstandszuschlagThermischErzeugteKaelteDaten =
- | {
- /**
- * Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur thermisch erzeugter Kälte erforderlich ist.
- */
- "kein-Leerstand": string;
- [k: string]: unknown;
- }
- | {
- "Leerstandszuschlag-nach-Bekanntmachung": LeerstandszuschlagBekanntmachungDaten2;
- [k: string]: unknown;
- };
-/**
- * Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen.
- */
-export type LeerstandszuschlagStromDaten =
- | {
- /**
- * Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Strom erforderlich ist.
- */
- "kein-Leerstand": string;
- [k: string]: unknown;
- }
- | {
- "Leerstandszuschlag-nach-Bekanntmachung": LeerstandszuschlagBekanntmachungDaten3;
- [k: string]: unknown;
- };
-/**
- * Dieser Block enthält im Falle eines Nichtwohngebäudes die Bedarfswerte.
- */
-export type NichtwohngebaeudeBedarfsDaten = (
- | {
- /**
- * Endenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.
- */
- "Endenergiebedarf-Hoechstwert-Bestand": number;
- /**
- * Anforderungswert für Treibhausgasemissionen Modernisierter Altbau in kg/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.
- */
- "Treibhausgasemissionen-Hoechstwert-Bestand": number;
- [k: string]: unknown;
- }
- | {
- /**
- * Primärenergie-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche, bei Neubau im Energieausweis einzutragen. (Primärenergiebedarf: Q_p,Ref).
- */
- "Primaerenergiebedarf-Hoechstwert-Neubau": number;
- /**
- * Endenergiebedarf-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche.
- */
- "Endenergiebedarf-Hoechstwert-Neubau": number;
- /**
- * Anforderungswert für Treibhausgasemissionen Neubau (Kennwert des Referenzgebäudes) in kg/m²a bezogen auf die energetische Nutzfläche.
- */
- "Treibhausgasemissionen-Hoechstwert-Neubau": number;
- [k: string]: unknown;
- }
-) &
- (
- | {
- /**
- * Keine Maßnahmen nach $ 45 in Verbindung mit $ 34.
- */
- "nicht-verschaerft-nach-GEG-34": boolean | number;
- [k: string]: unknown;
- }
- | {
- /**
- * Die in Verbindung mit § 34 GEG Maßnahmen nach § 45 in Kombination zur Nutzung erneuerbarer Energien zur Deckung des Wärme- und Kälteenergiebedarfs sind eingehalten (Anteil der Pflichterfüllung in %).
- */
- "verschaerft-nach-GEG-34": number;
- /**
- * Die Anforderung nach $ 19 GEG wurde unterschritten (in %).
- */
- "Anforderung-nach-GEG-19-unterschritten": number;
- [k: string]: unknown;
- }
- ) & {
- /**
- * Konditioniertes brutto-Gebäudevolumen des Gebäudes/Gebäudeteils (ganze Kubikmeter) (Bruttovolumen: V_e) ggf. überschlägig ermittelter Wert.
- */
- Bruttovolumen: number;
- "Bauteil-Opak": BauteilOpakDaten | [BauteilOpakDaten, ...BauteilOpakDaten[]];
- "Bauteil-Transparent"?: BauteilTransparentDaten | BauteilTransparentDaten[];
- "Bauteil-Dach"?: BauteilDachDaten | BauteilDachDaten[];
- /**
- * Wert des Wärmebrückenzuschlags für die Gebäudehülle (Wärmebrückenzuschlag: delta_U_WB).
- */
- Waermebrueckenzuschlag: number;
- /**
- * Sind die Anforderungen an die mittleren Wärmedurchgangskoeffizienten der verschiedenen Hüllflächenbauteile (Anlage 3 GEG) eingehalten? Relevant nur bei Neubau und umfassender Modernisierung.
- */
- "mittlere-Waermedurchgangskoeffizienten"?: boolean | number;
- /**
- * Transmissionswärmesenken in kWh/a (Transmissionswärmesenken: Q_T).
- */
- Transmissionswaermesenken: number;
- /**
- * Luftdichtheit der Gebäudehülle.
- */
- Luftdichtheit: "Gebäudekategorie I" | "Gebäudekategorie II" | "Gebäudekategorie III" | "Gebäudekategorie IV";
- Zone: ZonenDaten | [ZonenDaten, ...ZonenDaten[]];
- Heizsystem: HeizungsanlageDaten | [HeizungsanlageDaten, ...HeizungsanlageDaten[]];
- /**
- * Volumen eines ggfs. vorhandenen Heizungs-Pufferspeichers (keiner = 0) in Liter (Pufferspeicher-Nenninhalt: V_s).
- */
- "Pufferspeicher-Nenninhalt": number;
- /**
- * Temperaturniveau der Heizungsverteilung Vorlauf/Rücklauf, bzw. Angabe von Luftheizsystem oder ausschliesslicher Beheizung über Einzelraumheizgeräte; anzugeben ist die Temperatur des höchsten Kreises, bei krummen Werten ist die nach Vorlauftemperatur nächst höhere Auswahl anzugeben.
- */
- Auslegungstemperatur:
- | "90/70"
- | "70/55"
- | "55/45"
- | "45/35"
- | "35/28"
- | "Warmluftheizung"
- | "nur Einzelraum-Heizgeräte";
- /**
- * TRUE, wenn alle Wärmeerzeuger innerhalb der thermischen Gebäudehülle stehen.
- */
- "Heizsystem-innerhalb-Huelle": boolean | number;
- Warmwasserbereitungssystem?: TrinkwarmwasseranlageDaten | TrinkwarmwasseranlageDaten[];
- /**
- * Volumen eines ggfs. vorhandenen Warmwasserspeichers (kein Speicher = 0) bzw. Summe der Volumina bei mehreren Speichern, in Liter (Trinkwarmwasserspeicher-Nenninhalt: V_s).
- */
- "Trinkwarmwasserspeicher-Nenninhalt": number;
- /**
- * Ist zur Warmwasserverteilung eine Trinkwasser-seitige Zirkulation vorhanden?
- */
- "Trinkwarmwasserverteilung-Zirkulation": boolean | number;
- Kaelteanlage?: KaelteanlageDaten | KaelteanlageDaten[];
- /**
- * Anteil der Kälte, die über RLT-Anlagen verteilt und übergeben wird, in %.
- */
- "Deckungsanteil-RLT-Kuehlung": number;
- /**
- * Anteil der Kälte, die über Direktkühlanlagen (Kühldecken, Kühlsegel usw.) verteilt und übergeben wird, in %.
- */
- "Deckungsanteil-Direkte-Raumkuehlung": number;
- "RLT-System"?: RLTAnlagenDaten | RLTAnlagenDaten[];
- /**
- * Überwiegende Gebäueautomationsklasse für Heizen, Kühlen und mechanisches Belüften (soweit vorhanden) in den Nutzungsräumen nach DIN V 18599-11.
- */
- Automatisierungsgrad: "A" | "B" | "C" | "D";
- /**
- * Gebäudeautomationsklasse für das übergreifende Gebäudemanagement nach DIN V 18599-11, Tab. 3 Z. 94-96.
- */
- "Automatisierungsgrad-Technisches-Gebaeudemanagement": "A" | "B" | "C" | "D";
- /**
- * Größe des Abzugs (in kWh/a m2) bei der Primärenergie bzw. bei der Endenergie für den gebäudenah erzeugten Strom aus erneuerbarer Energie nach der entsprechenden Bilanzierungsregel (vgl. GEG §23 (4))
- */
- "angerechneter-lokaler-erneuerbarer-Strom"?: number;
- /**
- * Angabe ob Innovationsklausel gemäß § 103 (1) GEG 2020 angewendet wurde. (Alternative Anforderungen: Treibhausgasemissionen, Höchstwert der Endenergiebedarfs + Transmissionswärmeverlust (nur für Neubau und WG) + Wärmedurchgangskoeffizienten der wärmeübertragenden Umfassungsfläche (nur für Neubau und NWG) - Aussetzung der Hauptanforderungen (Neubau § 10, Bestand § 50))
- */
- Innovationsklausel: boolean | number;
- /**
- * Angabe ob Quartiersregelung gemäß § 103 (3) - Gesamtbilanzierung für Wärmeversorgung zusammenhängender Gebäude - zutreffend ist.
- */
- Quartiersregelung: boolean | number;
- /**
- * Primärenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche. Außerdem richtet sich die Länge der grün-rot-Skala nach diesem Wert (Skalenendewert das Dreifache des Wertes), daher ist der Wert immer erforderlich. (Primärenergiebedarf: Q_p,Ref)
- */
- "Primaerenergiebedarf-Hoechstwert-Bestand": number;
- "Energietraeger-Liste":
- | EndenergieEnergietraegerDaten
- | [EndenergieEnergietraegerDaten]
- | [EndenergieEnergietraegerDaten, EndenergieEnergietraegerDaten]
- | [EndenergieEnergietraegerDaten, EndenergieEnergietraegerDaten, EndenergieEnergietraegerDaten]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ]
- | [
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten,
- EndenergieEnergietraegerDaten
- ];
- /**
- * Endenergiekennwert Wärme in kWh/m²a bezogen auf die Nettogrundfläche (Endenergiebedarf-Wärme: Q_f).
- */
- "Endenergiebedarf-Waerme-NGF": number;
- /**
- * Endenergiekennwert Strom in kWh/m²a bezogen auf die Nettogrundfläche (Endenergiebedarf-Strom: Q_f).
- */
- "Endenergiebedarf-Strom-NGF": number;
- /**
- * Endenergiekennwert Gesamt in kWh/m²a bezogen auf die Nettogrundfläche.
- */
- "Endenergiebedarf-Gesamt-NGF": number;
- /**
- * Primärenergiekennwert in kWh/m²a bezogen auf die Nettogrundfläche (Primärenergiebedarf: Q_p).
- */
- "Primaerenergiebedarf-NGF": number;
- /**
- * Wurde das Verfahren nach Anlage 6 zu § 32 Absatz 4 GEG (Ein-Zonen-Modell) angewendet?
- */
- "Ein-Zonen-Modell": boolean | number;
- /**
- * Wurden Regeln zur vereinfachten Datenaufnahme nach § 50 (4) GEG bzw. Bekanntmachungen angewendet?
- */
- "Vereinfachte-Datenaufnahme": boolean | number;
- /**
- * Wurden Vereinfachungen nach § 21 Absatz 2 GEG und DIN V 18599-1:2018-09 Anhang D angewendet? (auch für zu errichtende Nichtwohngebäude/ Neubau anwendbar)
- */
- "Vereinfachungen-18599-1-D": boolean | number;
- /**
- * Es wird die erste Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau.
- */
- "Art-der-Nutzung-erneuerbaren-Energie-1"?:
- | "solarthermische Anlagen"
- | "Strom aus erneuerbaren Energien"
- | "Geothermie oder Umweltwärme"
- | "feste Biomasse"
- | "flüssige Biomasse"
- | "gasförmige Biomasse"
- | "Kälte aus erneuerbaren Energien"
- | "Abwärme"
- | "Kraft-Wärme-Kopplung hocheff. KWK-Anlage"
- | "Kraft-Wärme-Kopplung Brennstoffzellenh."
- | "Fernwärme oder Fernkälte";
- /**
- * Deckungsanteil in % für erste Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.
- */
- "Deckungsanteil-1"?: number;
- /**
- * Pflichterfüllungsanteil in % für die erste Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)
- */
- "Anteil-der-Pflichterfuellung-1"?: number;
- /**
- * Es wird die zweite Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau
- */
- "Art-der-Nutzung-erneuerbaren-Energie-2"?:
- | "solarthermische Anlagen"
- | "Strom aus erneuerbaren Energien"
- | "Geothermie oder Umweltwärme"
- | "feste Biomasse"
- | "flüssige Biomasse"
- | "gasförmige Biomasse"
- | "Kälte aus erneuerbaren Energien"
- | "Abwärme"
- | "Kraft-Wärme-Kopplung hocheff. KWK-Anlage"
- | "Kraft-Wärme-Kopplung Brennstoffzellenh."
- | "Fernwärme oder Fernkälte";
- /**
- * Deckungsanteil in % für zweite Angabe Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.
- */
- "Deckungsanteil-2"?: number;
- /**
- * Pflichterfüllungsanteil in % für die zweite Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)
- */
- "Anteil-der-Pflichterfuellung-2"?: number;
- /**
- * Der gemäß § 45 GEG um diese Prozentzahl verschärfte Anforderungswert (15 % Unterschreitung Wärmedurchgangskoeffizienten) als Maßnahme zur Einsparung von Energie ist eingehalten.
- */
- "verschaerft-nach-GEG-45-eingehalten"?: boolean | number;
- /**
- * Die Anforderungen des § 52 Absatz 1 GEG werden eingehalten. Relevant nur bei Bestandsgebäuden.
- */
- "Anforderung-nach-GEG-52-Renovierung-eingehalten"?: boolean | number;
- /**
- * Sind die Anforderungen an den sommerlichen Wärmeschutz eingehalten? Relevant nur bei Neubau.
- */
- "Sommerlicher-Waermeschutz"?: boolean | number;
- /**
- * Angabe der Treibhausgasemissionen in kg als CO2 Äquivalent/(m²a); nur bei kombinierten Energieausweisen (Bedarf/Verbrauch), zusammen mit der Übermittlung der zusätzlichen Verbrauchsdaten.
- */
- "Treibhausgasemissionen-Zusaetzliche-Verbrauchsdaten"?: number;
- "Zusaetzliche-Verbrauchsdaten"?: NichtwohngebaeudeVerbrauchsDaten1;
- [k: string]: unknown;
- };
-/**
- * Sonnenschutz nicht erforderlich, da keine transparenten Flächen nach außen in sonnenbeschienene Richtungen vorhanden.
- */
-export type SonnenschutzEnum =
- | "keine Bewertung des Sonnenschutzes (Zone: Wohnen)"
- | "Kein Sonnen- und/oder Blendschutz"
- | "Nur Blendschutz"
- | "Sonnen- und/oder Blendschutz, automatisch betrieben"
- | "Nur Blendschutz, lichtlenkend";
-export type LampenartEnum =
- | "Glühlampen und Halogenglühlampe"
- | "Leuchtstofflampen-stabförmig-KVG/VVG"
- | "Leuchtstofflampen-stabförmig-EVG"
- | "Leuchtstofflampen-T5-stabförmig-EVG-effiziente Reflektoren"
- | "Leuchtstofflampen-kompakt-externes VG-alle VG"
- | "Leuchtstofflampen-kompakt-integriertes EVG"
- | "Hochdruckentladungslampen-alle VG"
- | "LED-Leuchten"
- | "LED-Ersatzlampen (stab- und kolbenförmig)"
- | "keine Bewertung der Beleuchtung (Zone: Wohnen)"
- | "Fachplanung";
-export type KaelteerzeugerTypEnum =
- | "Kolben- und Scrollverdichteranlagen"
- | "Schraubenverdichteranlagen"
- | "Turboverdichteranlagen"
- | "Sorptionskältemaschine"
- | "Sonstiges";
-export type RueckkuehlungEnum =
- | "Luftgekühlt-Kompaktbauweise"
- | "Luftgekühlt-Splitbauweise"
- | "Wassergekühlt-Verdunstungskühler"
- | "Wassergekühlt-Trockenkühler"
- | "Sonstiges";
-export type GesetzesgrundlageEnum = "GEG-2023";
-export type RechtsstandGrundEnum =
- | "Bauantrag bei genehmigungspflichtigen Vorhaben (Ausstellungsanlässe Neubau und Modernisierung)"
- | "Bauanzeige bei anzeigepflichtigen Vorhaben (Ausstellungsanlässe Neubau und Modernisierung)"
- | "Baubeginn (Ausstellungsanlass Modernisierung)"
- | "Wunsch des Bauherrn neues Recht anzuwenden (gemäß GEG § 111 Absatz 3)"
- | "Ausweisausstellung (bei Verbrauchsausweisen und alle anderen Fälle)";
-export type BundeslandEnum =
- | "Baden-Württemberg"
- | "Bayern"
- | "Berlin"
- | "Brandenburg"
- | "Bremen"
- | "Hamburg"
- | "Hessen"
- | "Mecklenburg-Vorpommern"
- | "Niedersachsen"
- | "Nordrhein-Westfalen"
- | "Rheinland-Pfalz"
- | "Saarland"
- | "Sachsen"
- | "Sachsen-Anhalt"
- | "Schleswig-Holstein"
- | "Thüringen";
-export type GebaeudeteilEnum = "Ganzes Gebäude" | "Teil des Wohngebäudes" | "Teil des Nichtwohngebäudes";
-export type AltersklasseEnum =
- | "bis 1918"
- | "1919...1948"
- | "1949...1957"
- | "1958...1968"
- | "1969...1978"
- | "1979...1983"
- | "1984...1994"
- | "1995...2002"
- | "2003...2009"
- | "2010...2016"
- | "ab 2017";
-export type AnlassEnum =
- | "Neubau"
- | "Modernisierung-Erweiterung"
- | "Vermietung-Verkauf"
- | "Aushangpflicht"
- | "Sonstiges";
-export type GebaeudetypEnum =
- | "Einfamilienhaus"
- | "Zweifamilienhaus"
- | "Mehrfamilienhaus"
- | "Wohnteil gemischt genutztes Gebäude"
- | "Beidseitig angebautes Gebäude"
- | "Einseitig angebautes Gebäude"
- | "Sonstiges";
-export type EnergietraegerVerbrauchEnum =
- | "Heizöl in Liter"
- | "Heizöl in kWh Heizwert"
- | "Heizöl in kWh Brennwert"
- | "Erdgas in m³"
- | "Erdgas in kWh Heizwert"
- | "Erdgas in kWh Brennwert"
- | "Flüssiggas in m³ gasförmig"
- | "Flüssiggas in Liter flüssig"
- | "Flüssiggas in kg"
- | "Flüssiggas in kWh Heizwert"
- | "Steinkohle in kg"
- | "Steinkohle in kWh Heizwert"
- | "Braunkohle in kg"
- | "Braunkohle in kWh Heizwert"
- | "Biogas in m³"
- | "Biogas in kWh Heizwert"
- | "Biogas in kWh Brennwert"
- | "Biogas, gebäudenah erzeugt in m³"
- | "Biogas, gebäudenah erzeugt in kWh Heizwert"
- | "Biogas, gebäudenah erzeugt in kWh Brennwert"
- | "biogenes Flüssiggas in m³ gasförmig"
- | "biogenes Flüssiggas in Liter flüssig"
- | "biogenes Flüssiggas in kg"
- | "biogenes Flüssiggas in kWh Heizwert"
- | "Bioöl in Liter"
- | "Bioöl in kWh Heizwert"
- | "Bioöl in kWh Brennwert"
- | "Bioöl, gebäudenah erzeugt in Liter"
- | "Bioöl, gebäudenah erzeugt in kWh Heizwert"
- | "Bioöl, gebäudenah erzeugt in kWh Brennwert"
- | "Holz in Raummeter"
- | "Holz in kg"
- | "Holz in kWh Heizwert"
- | "Holz in kWh Brennwert"
- | "Holz in Schüttraummeter"
- | "Strom netzbezogen in kWh"
- | "Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft) in kWh"
- | "Verdrängungsstrommix für KWK in kWh"
- | "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme) in kWh"
- | "Kälte (Erdkälte, Umgebungskälte) in kWh"
- | "Abwärme aus Prozessen (prod) in kWh"
- | "Abwärme aus Prozessen (out) in kWh"
- | "Wärme aus KWK, gebäudeintegriert oder gebäudenah in kWh"
- | "Wärme aus Verbrennung von Siedlungsabfällen in kWh"
- | "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger in kWh"
- | "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger in kWh"
- | "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger in kWh"
- | "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger in kWh"
- | "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger in kWh"
- | "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger in kWh";
-export type LeerstandszuschlagHeizungDaten2 =
- | {
- /**
- * Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Heizung erforderlich ist.
- */
- "kein-Leerstand": string;
- [k: string]: unknown;
- }
- | {
- "Leerstandszuschlag-nach-Bekanntmachung": LeerstandszuschlagBekanntmachungDaten;
- /**
- * Wohngebäude: Zuschlagsfaktor f(eVhb, 12mth) nach der Formel f(eVhb, 12mth) = - 0,0028 * eVhb, 12mth + 0,9147 Nichtwohngebäude: Zuschlagsfaktor f(eVhb, 12mth) nach der Formel f(eVhb, 12mth) = - 0,0083 * eVhb, 12mth + 1,3982 gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit.
- */
- Zuschlagsfaktor: number;
- /**
- * Witterungsbereinigter Endenergieverbrauchsanteil für Heizung eVhb, 12mth ist Teil der Formel für Berechnung der Zuschlagsfaktor, Einheit in kWh/m²a; gemäß GEG § 82 und gemeinsamer Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit.
- */
- "witterungsbereinigter-Endenergieverbrauchsanteil-fuer-Heizung": number;
- [k: string]: unknown;
- };
-export type LeerstandszuschlagWarmwasserDaten2 = {
- /**
- * true: Warmwasser ist nicht vorhanden (nur bei NWG), oder dezentrale elektrische Warmwasserbereitung ist beim Stromanteil mit erfasst, die Leerstandskorrektur erfolgt in diesem Fall zusammen mit den übrigen elektrischen Verbrauchsanteilen. In diesem Fall ist "kein-Leerstand" anzugeben. false: Einer der anderen Fälle hat Gültigkeit (kein Leerstand oder Leerstand nach Bekanntmachung).
- */
- "keine-Nutzung-von-WW": boolean | number;
- [k: string]: unknown;
-} & LeerstandszuschlagWarmwasserDaten3;
-export type LeerstandszuschlagWarmwasserDaten3 =
- | {
- /**
- * Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Warmwasser erforderlich ist.
- */
- "kein-Leerstand": string;
- [k: string]: unknown;
- }
- | {
- "Leerstandszuschlag-nach-Bekanntmachung": LeerstandszuschlagBekanntmachungDaten1;
- [k: string]: unknown;
- };
-export type LeerstandszuschlagThermischErzeugteKaelteDaten1 =
- | {
- /**
- * Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur thermisch erzeugter Kälte erforderlich ist.
- */
- "kein-Leerstand": string;
- [k: string]: unknown;
- }
- | {
- "Leerstandszuschlag-nach-Bekanntmachung": LeerstandszuschlagBekanntmachungDaten2;
- [k: string]: unknown;
- };
-export type LeerstandszuschlagStromDaten1 =
- | {
- /**
- * Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Strom erforderlich ist.
- */
- "kein-Leerstand": string;
- [k: string]: unknown;
- }
- | {
- "Leerstandszuschlag-nach-Bekanntmachung": LeerstandszuschlagBekanntmachungDaten3;
- [k: string]: unknown;
- };
-export type WarmwasserwertermittlungEnum =
- | "direkter Messwert Wärmemenge"
- | "Pauschale für dezentrale Warmwasserbereitung (Wohngebäude)"
- | "Rechenwert nach Heizkostenverordnung (Wohngebäude)"
- | "Rechenwert nach GEG / DIN V 18599 (Nichtwohngebäude)"
- | "Rechenwert nach Heizkostenverordnung (Nichtwohngebäude)"
- | "Pauschale 5 % Warmwasserbereitung (Nichtwohngebäude)"
- | "Pauschale 50 % Warmwasserbereitung (Nichtwohngebäude)"
- | "monatsweise Erfassung Wärmeverbrauch Sommer (Nichtwohngebäude)"
- | "sonstige Ermittlung des Verbrauchsanteils der Warmwasserbereitung"
- | "keine Warmwasserbereitung enthalten";
-export type HeizwaermeerzeugerTypEasyEnum =
- | "Zentrale Biomasse-Heizungsanlage auf Basis von Holzpellets, Hackschnitzeln oder Scheitholz, zentrale Abluftanlage, solarthermische Anlage zur Trinkwarmwasser-Bereitung"
- | "Zentrale Biomasse-Heizungsanlage auf Basis von Holzpellets, Hackschnitzeln oder Scheitholz, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlage zur Trinkwarmwasser-Bereitung"
- | "Fernwärme mit zertifiziertem Primärenergiefaktor fp ≤ 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %)"
- | "Fernwärme mit zertifiziertem Primärenergiefaktor fp ≤ 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), solarthermische Anlagen"
- | "Fernwärme mit zertifiziertem Primärenergiefaktor fp ≤ 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), Photovoltaik-Anlagen"
- | "Luft-Wasser-Wärmepumpe, dezentrale Trinkwassererwärmung, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %)"
- | "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %)"
- | "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), solarthermische Anlagen"
- | "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), Photovoltaik-Anlagen"
- | "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage"
- | "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, solarthermische Anlagen"
- | "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, Photovoltaik-Anlagen"
- | "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung"
- | "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlagen"
- | "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, Photovoltaik-Anlagen"
- | "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage"
- | "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, solarthermische Anlagen"
- | "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, Photovoltaik-Anlagen"
- | "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung"
- | "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlagen"
- | "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, Photovoltaik-Anlagen";
-export type WaermeschutzVarianteEnum =
- | "Wärmeschutz-Variante A"
- | "Wärmeschutz-Variante B"
- | "Wärmeschutz-Variante C"
- | "Wärmeschutz-Variante D";
-export type WohngebaeudeAnbaugradEnum = "freistehend" | "einseitig angebaut" | "zweiseitig angebaut";
-/**
- * Luftdichtheit nach DIN V 4701 undicht : gemäß GEG/DIN normal : alle übrigen Gebäude geprüft : erfolgreich geprüft nach § 26 GEG
- */
-export type Luftdichtheit4701Enum = "undicht" | "normal" | "geprüft";
-/**
- * Luftdichtheit nach DIN V 18599
- */
-export type Luftdichtheit18599Enum =
- | "Gebäudekategorie I"
- | "Gebäudekategorie II"
- | "Gebäudekategorie III"
- | "Gebäudekategorie IV";
-export type HeizkreisauslegungstemperaturEnum =
- | "90/70"
- | "70/55"
- | "55/45"
- | "45/35"
- | "35/28"
- | "Warmluftheizung"
- | "nur Einzelraum-Heizgeräte";
-export type EnergieeffizienzklasseEnum = "A+" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H";
-/**
- * Im Fall der Nutzung von '53:Sonstiges' ist dann auch das Feld 'Hauptnutzung-Gebaeudekategorie-Sonstiges-Beschreibung' zu befüllen. Für die Seite 3 im Energieverbrauchsausweis Nichtwohngebäude darf die Gebäudekategorie '53:Sonstiges' nicht verwendet werden.
- */
-export type NutzungGebaeudekategorieEnum =
- | "1:Verwaltungsgebäude (allgemein)"
- | "2:Parlaments- und Gerichtsgebäude"
- | "3:Ministerien u. Ämter u. Behörden"
- | "4:Polizeidienstgebäude"
- | "5:Gebäude für öffentliche Bereitschaftsdienste"
- | "6:Feuerwehrdienstgebäude"
- | "7:Bürogebäude"
- | "8:Bürogebäude - überwiegend Großraumbüros"
- | "9:Bankgebäude"
- | "10:Hochschule und Forschung (allgemein)"
- | "11:Gebäude für Lehre"
- | "12:Institute für Lehre und Forschung"
- | "13:Gebäude für Forschung ohne Lehre"
- | "14:Laborgebäude"
- | "15:Gesundheitswesen (allgemein)"
- | "16:Krankenhäuser (ohne Forschung und Lehre)"
- | "17:Krankenhäuser (ohne Forschung und Lehre) und teilstationäre Versorgung"
- | "18:Medizinische Einrichtungen für nicht stationäre Versorgung"
- | "19:Gebäude für Reha, Kur und Genesung"
- | "20:Bildungseinrichtungen (allgemein)"
- | "21:Schulen"
- | "22:Kinderbetreuungseinrichtungen"
- | "23:Kultureinrichtungen (allgemein)"
- | "24:Bibliotheken / Archive"
- | "25:Ausstellungsgebäude"
- | "26:Veranstaltungsgebäude"
- | "27:Gemeinschafts- / Gemeindehäuser"
- | "28:Opern / Theater"
- | "29:Sporteinrichtungen (allgemein)"
- | "30:Sporthallen"
- | "31:Fitnessstudios"
- | "32:Schwimmhallen"
- | "33:Gebäude für Sportaußenanlagen"
- | "34:Verpflegungseinrichtungen (allgemein)"
- | "35:Beherbergungsstätten (allgemein)"
- | "36:Hotels / Pensionen"
- | "37:Jugendherbergen u. Ferienhäuser"
- | "38:Gaststätten"
- | "39:Mensen u. Kantinen"
- | "40:Gewerbliche und industrielle Gebäude (allgemein)"
- | "41:Gewerbliche und industrielle Gebäude - schwere Arbeit, stehende Tätigkeit"
- | "42:Gewerbliche und industrielle Gebäude - Mischung aus leichter u. schwerer Arbeit"
- | "43:Gewerbliche und industrielle Gebäude - leichte Arbeit, überwiegend sitzende Tätigkeit"
- | "44:Gebäude für Lagerung"
- | "45:Verkaufsstätten (allgemein)"
- | "46:Kaufhäuser"
- | "47:Kaufhauszentren / Einkaufszentren"
- | "48:Märkte"
- | "49:Märkte mit sehr hohem Anteil von Kühlung für Lebensmittel"
- | "50:Läden"
- | "51:Läden mit sehr hohem Anteil von Kühlung für Lebensmittel"
- | "52:Fernmeldetechnik"
- | "53:Sonstiges";
-export type AutomatisierungsgradEnum = "A" | "B" | "C" | "D";
-export type ArtDerNutzungErneuerbarenEnergieEnum =
- | "solarthermische Anlagen"
- | "Strom aus erneuerbaren Energien"
- | "Geothermie oder Umweltwärme"
- | "feste Biomasse"
- | "flüssige Biomasse"
- | "gasförmige Biomasse"
- | "Kälte aus erneuerbaren Energien"
- | "Abwärme"
- | "Kraft-Wärme-Kopplung hocheff. KWK-Anlage"
- | "Kraft-Wärme-Kopplung Brennstoffzellenh."
- | "Fernwärme oder Fernkälte";
-export type AutomatisierungsgradTechnischesGebaeudemanagementEnum = "A" | "B" | "C" | "D";
-export type KaelteerzeugerRegelungEnum =
- | "ein-aus"
- | "Heißgasbypass oder ähnliches"
- | "mehrstufig schaltend"
- | "invertergeregelt";
-export type KaelteTemperaturniveauEnum = "direktverdampfend" | "6/12 oder kälter" | "über 6/12";
-export type NutzungEnum =
- | "1:Einzelbüro"
- | "2:Gruppenbüro (zwei bis sechs Arbeitsplätze)"
- | "3:Großraumbüro (ab sieben Arbeitsplätze)"
- | "4:Besprechung, Sitzung, Seminar"
- | "5:Schalterhalle"
- | "6:Einzelhandel / Kaufhaus"
- | "7:Einzelhandel / Kaufhaus (Leb.-Abteilung mit Kühlprodukten)"
- | "8:Klassenzimmer (Schule), Gruppenraum (Kindergarten)"
- | "9:Hörsaal, Auditorium"
- | "10:Bettenzimmer"
- | "11:Hotelzimmer"
- | "12:Kantine"
- | "13:Restaurant"
- | "14:Küchen in Nichtwohngebäuden"
- | "15:Küche - Vorbereitung, Lager"
- | "16:WC und Sanitärräume in Nichtwohngebäuden"
- | "17:sonstige Aufenthaltsräume"
- | "18:Nebenflächen ohne Aufenthaltsräume"
- | "19:Verkehrsflächen"
- | "20:Lager, Technik, Archiv"
- | "21:Rechenzentrum"
- | "22.1:Gewerbliche und industrielle Hallen - schwere Arbeit"
- | "22.2:Gewerbliche und industrielle Hallen - mittelschwere Arbeit"
- | "22.3:Gewerbliche und industrielle Hallen - leichte Arbeit"
- | "23:Zuschauerbereich"
- | "24:Theater - Foyer"
- | "25:Bühne"
- | "26:Messe / Kongress"
- | "27:Ausstellungsräume und Museum"
- | "28:Bibliothek - Lesesaal"
- | "29:Bibliothek - Freihandbereich"
- | "30:Bibliothek - Magazin und Depot"
- | "31:Turnhalle"
- | "32:Parkhäuser (Büro- und Privatnutzung)"
- | "33:Parkhäuser (öffentliche Nutzung)"
- | "34:Saunabereich"
- | "35:Fitnessraum"
- | "36:Labor"
- | "37:Untersuchungs- und Behandlungsräume"
- | "38:Spezialpflegebereiche"
- | "39:Flure des allgemeinen Pflegebereichs"
- | "40:Arztpraxen und Therapeutische Praxen"
- | "41:Lagerhallen, Logistikhallen"
- | "42:Wohnen (EFH)"
- | "43:Wohnen (MFH)"
- | "44:Anwenderspezifische Nutzung";
-export type BeleuchtungsartEnum =
- | "direkt"
- | "indirekt"
- | "direkt-indirekt"
- | "keine Bewertung der Beleuchtung vorhanden (Zone:Wohnen)"
- | "Fachplanung";
-export type ModernisierungTeilEnum =
- | "Dach"
- | "oberste Geschossdecke"
- | "Abseiten"
- | "Gauben"
- | "Dachfenster"
- | "Außenwand gg. Außenluft"
- | "Fenster"
- | "Rollläden und -kästen"
- | "Eingangstür"
- | "Nebentür"
- | "Kellerdecke"
- | "Boden gg. Außenluft"
- | "Außenwand gg. Erdreich"
- | "Boden gegen Erdreich"
- | "Luftundichtigkeiten"
- | "Heizung"
- | "Wärmeerzeuger"
- | "Wärmeverteilung / -abgabe"
- | "Warmwasserbereitung"
- | "Lüftung"
- | "Lüftungskonzept"
- | "Lüftungsanlage"
- | "Luftverteilung / -abgabe"
- | "Kühlung"
- | "Kälteerzeugung"
- | "Kälteverteilung / -abgabe"
- | "Be-/Entfeuchtung"
- | "Beleuchtung"
- | "Anlagenregelung"
- | "Gebäudeautomation"
- | "Sonstiges";
-export type ModernisierungKombiEnum = "in Zusammenhang mit größerer Modernisierung" | "als Einzelmaßnahme";
-
-/**
- * Dieser Block besteht aus drei Komponenten: Dem Block mit den gebäudebezogenen Daten (nur relevant zwischen Energieausweis-Berechnungssoftware und Druckapplikation), dem Block mit den anonymen Energieausweis-Daten sowie dem Block mit der Prüfsumme, die nach Erhalt und Eintragung der Registriernummer über den Block der anonymen Daten (ohne die gebäudebezogenen Daten!) gebildet wird.
- */
-export interface GEGDaten {
- "Gebaeudebezogene-Daten"?: GebaeudebezDaten;
- "Energieausweis-Daten": AnonymeGEGDaten;
- [k: string]: unknown;
-}
-/**
- * Block, der alle Daten für die Ausstellung des Energieausweises entsprechend GEG enthält, die dem Datenschutz unterliegen oder freiwillig sind, und daher für das Kontrollsystem nicht relevant sind.
- */
-export interface GebaeudebezDaten {
- /**
- * Interne Bezeichnung oder Nummer beim Aussteller, anhand derer er die Daten/Unterlagen zu diesem Energieausweis wiederfinden kann.
- */
- "Projektbezeichnung-Aussteller"?: string;
- /**
- * Straße und Hausnummer der Gebäudeadresse zur Angabe im Energieausweis.
- */
- "Gebaeudeadresse-Strasse-Nr": string;
- /**
- * Vollständige Postleitzahl der Gebäudeadresse zur Angabe im Energieausweis.
- */
- "Gebaeudeadresse-Postleitzahl": string;
- /**
- * Ortsangabe der Gebäudeadresse zur Angabe im Energieausweis.
- */
- "Gebaeudeadresse-Ort": string;
- /**
- * Vorname des Energieausweis-Ausstellers wie bei der Ausstelleranmeldung hinterlegt.
- */
- Ausstellervorname?: string;
- /**
- * Familienname des Energieausweis-Ausstellers wie bei der Ausstelleranmeldung hinterlegt.
- */
- Ausstellername?: string;
- /**
- * Firmierung und/oder Berufsbezeichnung des Energieausweis-Ausstellers.
- */
- "Aussteller-Bezeichnung"?: string;
- /**
- * Straße und Hausnummer des Energieausweis-Ausstellers.
- */
- "Aussteller-Strasse-Nr"?: string;
- /**
- * Postleitzahl des Energieausweis-Ausstellers (ggfs. bei Ausstellern aus dem Ausland mit Landeszennzeichnung usw.)
- */
- "Aussteller-PLZ"?: string;
- /**
- * Ort des Energieausweis-Ausstellers.
- */
- "Aussteller-Ort"?: string;
- /**
- * Kreuzchen, ob dem Energieausweis (freiwillige) zusätzliche Informationen zur energetischen Qualität beigefügt sind.
- */
- "Zusatzinfos-beigefuegt": boolean | number;
- /**
- * Hinweis, wo genauere Angaben zu den Empfehlungen ggfs. erhältlich sind. Pflichtangabe, Default-Wert ist (wenn Modernisierungsempfehlungen möglich sind) die GEG-Infoseite des BBSR bzw. (wenn keine Modernisierungsempfehlungen möglich sind, z.B. nach Modernisierung oder bei Neubau) "Angabe hier nicht relevant", weitere / alternative Hinweise sind dem Energieausweis-Aussteller überlassen.
- */
- "Angaben-erhaeltlich": string;
- /**
- * Freitext-Platz für zusätzliche Erläuterungen zum gesamten Energieausweis.
- */
- "Ergaenzdende-Erlaeuterungen"?: string;
- "NWG-Diagramm-Daten"?: NWGAushangDaten;
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält die Angaben zu den Nutz-, End- und Primärenergiebedarfswerten für das Balkendiagramm im Aushangformular bei Nichtwohngebäuden, GEG § 84 Absatz 8 bzw. Muster für den Aushang als Bekanntmachung im Bundesanzeiger.
- */
-export interface NWGAushangDaten {
- /**
- * Nutzenergiebedarf Heizung (statisch und RLT) in kWh/m²a mit Hilfsenergie (Nutzenergiebedarf-Heizung: Q_h,b + Q_h*,b).
- */
- "Nutzenergiebedarf-Heizung-Diagramm": number;
- /**
- * Nutzenergiebedarf Trinkwasser-Erwärmung in kWh/m²a mit Hilfsenergie (Nutzenergiebedarf-Trinkwarmwasser: Q_w,b).
- */
- "Nutzenergiebedarf-Trinkwarmwasser-Diagramm": number;
- /**
- * Nutzenergiebedarf Beleuchtung in kWh/m²a (Nutzenergiebedarf-Beleuchtung: Q_l,b).
- */
- "Nutzenergiebedarf-Beleuchtung-Diagramm": number;
- /**
- * Nutzenergiebedarf Luftförderung der mechanischen Belüftung in kWh/m²a.
- */
- "Nutzenergiebedarf-Lueftung-Diagramm": number;
- /**
- * Nutzenergiebedarf Kühlung (statisch und RLT) und Befeuchtung in kWh/m²a mit Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten des gesamten Gebäudes) (Nutzenergiebedarf-Kuehlung-Befeuchtung: Q_c,b + Q_c*,b + Q_m*,b).
- */
- "Nutzenergiebedarf-Kuehlung-Befeuchtung-Diagramm": number;
- /**
- * Endenergiebedarf Heizung (statisch und RLT) in kWh/m²a mit Hilfsenergie (Endenergiebedarf-Heizung: Q_h,f + Q_h*,f + W_h + W_h*).
- */
- "Endenergiebedarf-Heizung-Diagramm": number;
- /**
- * Endenergiebedarf Trinkwasser-Erwärmung in kWh/m²a mit Hilfsenergie (Endenergiebedarf-Trinkwarmwasser: Q_w,f + W_w).
- */
- "Endenergiebedarf-Trinkwarmwasser-Diagramm": number;
- /**
- * Endenergiebedarf Beleuchtung in kWh/m²a (Endenergiebedarf-Beleuchtung: Q_l,f + W_l).
- */
- "Endenergiebedarf-Beleuchtung-Diagramm": number;
- /**
- * Endenergiebedarf Luftförderung der mechanischen Belüftung in kWh/m²a (Endenergiebedarf-Lueftung: W_v).
- */
- "Endenergiebedarf-Lueftung-Diagramm": number;
- /**
- * Endenergiebedarf Kühlung (statisch und RLT) und Befeuchtung in kWh/m²a mit Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten des gesamten Gebäudes) (Endenergiebedarf-Kuehlung-Befeuchtung: Q_c,f + Q_c*,f + Q_m*,f + W_c + W_c* + W_m*).
- */
- "Endenergiebedarf-Kuehlung-Befeuchtung-Diagramm": number;
- /**
- * Primärenergiebedarf Heizung (statisch und RLT) in kWh/m²a mit Hilfsenergie.
- */
- "Primaerenergiebedarf-Heizung-Diagramm": number;
- /**
- * Primärenergiebedarf Trinkwasser-Erwärmung in kWh/m²a mit Hilfsenergie.
- */
- "Primaerenergiebedarf-Trinkwarmwasser-Diagramm": number;
- /**
- * Primärenergiebedarf Beleuchtung in kWh/m²a.
- */
- "Primaerenergiebedarf-Beleuchtung-Diagramm": number;
- /**
- * Primärenergiebedarf Luftförderung der mechanischen Belüftung in kWh/m²a.
- */
- "Primaerenergiebedarf-Lueftung-Diagramm": number;
- /**
- * Primärenergiebedarf Kühlung (statisch und RLT) und Befeuchtung in kWh/m²a mit Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten des gesamten Gebäudes).
- */
- "Primaerenergiebedarf-Kuehlung-Befeuchtung-Diagramm": number;
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält im Falle eines Wohngebäude-Verbrauchsausweises die Verbrauchsdaten.
- */
-export interface WohngebaeudeVerbrauchsDaten {
- /**
- * Ermittlung der Energiebezugsfläche aus der Wohnfläche mit amtlichem Umrechnungsfaktor nach § 82 GEG.
- */
- "Flaechenermittlung-AN-aus-Wohnflaeche": boolean | number;
- /**
- * Wohnfläche des Gebäudes/Gebäudeteils (ganze Quadratmeter), nur erforderlich bei Ermittlung der energ. Nutzfläche aus der Wohnfläche.
- */
- Wohnflaeche?: number;
- /**
- * Wenn die Energiebezugsfläche aus der Wohnfläche mit amtlichem Umrechnungsfaktor ermittelt wurde, Angabe, ob Ein-/Zweifamilienhaus mit beheiztem Keller (und daher erhöhter Umrechnungsfaktor) oder nicht.
- */
- "Keller-beheizt"?: boolean | number;
- Energietraeger:
- | EnergietraegerDaten
- | [EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ];
- "Leerstandszuschlag-Heizung": LeerstandszuschlagHeizungDaten;
- "Leerstandszuschlag-Warmwasser": LeerstandszuschlagWarmwasserDaten;
- Warmwasserzuschlag?: WarmwasserzuschlagDaten;
- Kuehlzuschlag?: KuehlzuschlagDaten;
- /**
- * Endenergiekennwert in kWh/m²a bezogen auf die Energiebezugsfläche (Mittlerer Endenergieverbrauch: e(Strich)_Vb,12mth).
- */
- "Mittlerer-Endenergieverbrauch": number;
- /**
- * Primärenergiekennwert in kWh/m²a bezogen auf die Energiebezugsfläche.
- */
- "Mittlerer-Primaerenergieverbrauch": number;
- /**
- * Energieeffizienzklasse des Gebäudes.
- */
- Energieeffizienzklasse: "A+" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H";
- [k: string]: unknown;
-}
-/**
- * Block, der eine einzelne Verbrauchsperiode enthält.
- */
-export interface ZeitraumDaten {
- /**
- * Anfangsdatum der Periode, angegeben als YYYY-MM-DD.
- */
- Startdatum: string;
- /**
- * Enddatum der Periode, angegeben als YYYY-MM-DD
- */
- Enddatum: string;
- /**
- * Erfasste verbrauchte Menge in der zum ausgewählten Energieträger gehörigen Einheit, brutto einschliesslich eventuell enthaltenem Warmwasser und ggf. enthaltene thermisch erzeugte Kälte bei Nichtwohngebäude (Verbrauchte Menge: B_Vg,Zeitabschnitt).
- */
- "Verbrauchte-Menge": number;
- /**
- * Verbrauchswert in kWh Heizwert als Einheit, brutto einschliesslich eventuell enthaltenem Warmwasser und ggf. enthaltene thermisch erzeugte Kälte bei Nichtwohngebäude (Energieverbrauch: E_Vg,Zeitabschnitt).
- */
- Energieverbrauch: number;
- /**
- * Im Verbrauchswert enthaltener Wert für zentrale Warmwasserbereitung (ggfs. 0 wenn keine Warmwasserbereitung über diesen Energieträger) in kWh (Energieverbrauchsanteil für zentrale Warmwasserbereitung: E_VWW,Zeitabschnitt).
- */
- "Energieverbrauchsanteil-Warmwasser-zentral": number;
- /**
- * Art, wie der Warmwasserwert ggfs. aus Messungen oder Berechnungen ermittelt wurde. Bei dezentraler Warmwasserbereitung in Wohngebäuden ist die Auswahl "Pauschale für dezentrale..." auszuwählen und das entsprechende Korrekturverfahren anzuwenden (siehe Element Warmwasserzuschlag-Daten). Die Auswahl "keine Warmwasserbereitung enthalten" ist bei Wohngebäuden zu wählen, wenn ein anderer ebenfalls gelisteter Energieträger die zentrale Warmwasserbereitung versorgt. Bei Nichtwohngebäuden ist sie zu wählen, wenn die Warmwasserbereitung im Stromverbrauch erfasst ist oder generell kein Warmwasser mit gebäudetechnischen Anlagen im Gebäude erzeugt wird.
- */
- Warmwasserwertermittlung:
- | "direkter Messwert Wärmemenge"
- | "Pauschale für dezentrale Warmwasserbereitung (Wohngebäude)"
- | "Rechenwert nach Heizkostenverordnung (Wohngebäude)"
- | "Rechenwert nach GEG / DIN V 18599 (Nichtwohngebäude)"
- | "Rechenwert nach Heizkostenverordnung (Nichtwohngebäude)"
- | "Pauschale 5 % Warmwasserbereitung (Nichtwohngebäude)"
- | "Pauschale 50 % Warmwasserbereitung (Nichtwohngebäude)"
- | "monatsweise Erfassung Wärmeverbrauch Sommer (Nichtwohngebäude)"
- | "sonstige Ermittlung des Verbrauchsanteils der Warmwasserbereitung"
- | "keine Warmwasserbereitung enthalten";
- /**
- * Im Verbrauchswert ggf. enthaltener Wert für thermisch erzeugte Kälte (nur bei Nichtwohngebäuden) in kWh.
- */
- "Energieverbrauchsanteil-thermisch-erzeugte-Kaelte"?: number;
- /**
- * Im Verbrauchswert enthaltener Wert für Heizung in kWh.
- */
- "Energieverbrauchsanteil-Heizung": number;
- /**
- * Klimafaktor dieser Periode entsprechend Gebäudestandort (Klimafaktor: f_Klima).
- */
- Klimafaktor: number;
- /**
- * Verbrauchswert Strom in kWh zum Betreiben des jeweiligen Wärmeerzeugers (Pumpen etc.), sofern dieser ermittelt wird.
- */
- "Verbrauchswert-kWh-Strom"?: number;
- [k: string]: unknown;
-}
-/**
- * Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand Heizung aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen.
- */
-export interface LeerstandszuschlagBekanntmachungDaten {
- /**
- * Leerstandsfaktor bezogen auf die anteilige Gebäudenutzfläche AN und den Zeitanteil innerhalb des gesamten aufgeführten Verbrauchszeitraums: f_leer.
- */
- Leerstandsfaktor: number;
- /**
- * Anfangsdatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.
- */
- Startdatum: string;
- /**
- * Enddatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.
- */
- Enddatum: string;
- /**
- * Je nach Betrachtung von "Heizung", "Warmwasser", oder "Strom" bei NWG, ist der Leerstandszuschlag für den Energieverbrauchsanteil für: - Heizung in kWh: delta_E_Vh in der Tabelle in die Spalte "Anteil Heizung" einzusetzen - zentrale Warmwasserbereitung in kWh: delta_E_VWW in der Tabelle in die Spalte "Anteil Warmwasser" einzusetzen - Strom in kWh: delta_E_Vs in der Tabelle in die Spalte "Energieverbrauch Strom" einzusetzen
- */
- "Leerstandszuschlag-kWh": number;
- /**
- * Primärenergiefaktor (entsprechend Anlage 4 GEG) des wesentlichen Energieträgers: f_p.
- */
- Primaerenergiefaktor: number;
- [k: string]: unknown;
-}
-/**
- * Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand Warmwasser aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen.
- */
-export interface LeerstandszuschlagBekanntmachungDaten1 {
- /**
- * Leerstandsfaktor bezogen auf die anteilige Gebäudenutzfläche AN und den Zeitanteil innerhalb des gesamten aufgeführten Verbrauchszeitraums: f_leer.
- */
- Leerstandsfaktor: number;
- /**
- * Anfangsdatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.
- */
- Startdatum: string;
- /**
- * Enddatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.
- */
- Enddatum: string;
- /**
- * Je nach Betrachtung von "Heizung", "Warmwasser", oder "Strom" bei NWG, ist der Leerstandszuschlag für den Energieverbrauchsanteil für: - Heizung in kWh: delta_E_Vh in der Tabelle in die Spalte "Anteil Heizung" einzusetzen - zentrale Warmwasserbereitung in kWh: delta_E_VWW in der Tabelle in die Spalte "Anteil Warmwasser" einzusetzen - Strom in kWh: delta_E_Vs in der Tabelle in die Spalte "Energieverbrauch Strom" einzusetzen
- */
- "Leerstandszuschlag-kWh": number;
- /**
- * Primärenergiefaktor (entsprechend Anlage 4 GEG) des wesentlichen Energieträgers: f_p.
- */
- Primaerenergiefaktor: number;
- [k: string]: unknown;
-}
-/**
- * Im Fall dezentraler Warmwasserbereitung erforderliche Angaben für den Zuschlag zur Einfügung in die Verbauchsliste des Energieausweises gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit; in der Tabelle ist statt des Energieträgers das Wort "Warmwasserzuschlag" einzusetzen, die Felder Anteil Kälte, Anteil Heizung und Klimafaktor bleiben in dieser Zeile leer.
- */
-export interface WarmwasserzuschlagDaten {
- /**
- * Anfangsdatum des Zeitraums, in dem dezentrale Trinkwarmwasserbereitung bestand, angegeben als YYYY-MM-DD.
- */
- Startdatum: string;
- /**
- * Enddatum des Zeitraums, in dem dezentrale Trinkwarmwasserbereitung bestand, angegeben als YYYY-MM-DD.
- */
- Enddatum: string;
- /**
- * Primärenergiefaktor (entsprechend Anlage 4 GEG) des wesentlichen Energieträgers für die Beheizung, damit das dezentrale Warmwasser als virtueller Mehrverbrauch einer fiktiven zentralen Warmwasserbereitung verrechnet werden kann (Primärenergiefaktor: f_p).
- */
- Primaerenergiefaktor: number;
- /**
- * Zuschlagswert Warmwasser in kWh für den betroffenen Zeitraum, in der Tabelle einzusetzen in die Spalten "Energieverbrauch" und "Anteil Warmwasser".
- */
- "Warmwasserzuschlag-kWh": number;
- [k: string]: unknown;
-}
-/**
- * Im Falle eines maschinell gekühlten Wohngebäudes erforderliche Angaben für den Zuschlag zur Einfügung in die Verbrauchsliste des Energieausweises; in der Tabelle ist statt des Energieträgers das Wort "Kühlzuschlag" einzusetzen, die Felder Anteil Warmwasser, Anteil Heizung und Klimafaktor bleiben in dieser Zeile leer.
- */
-export interface KuehlzuschlagDaten {
- /**
- * Anfangsdatum des Zeitraums, in dem die Einrichtung zur Kühlung des Gebäudes bestand, angegeben als YYYY-MM-DD.
- */
- Startdatum: string;
- /**
- * Enddatum des Zeitraums, in dem die Einrichtung zur Kühlung des Gebäudes bestand, angegeben als YYYY-MM-DD.
- */
- Enddatum: string;
- /**
- * Energiebezugsfläche AN des Gebäudes/Gebäudeteils, der maschinell gekühlt wird (ganze Quadratmeter); die Angabe erscheint nicht im Energieausweis, ist aber für die Zuschlagsberechnung relevant.
- */
- "Gebaeudenutzflaeche-gekuehlt": number;
- /**
- * Primärenergiefaktor (entsprechend Anlage 4 GEG) Strom für die Wohnungskühlung (Primärenergiefaktor: f_p).
- */
- Primaerenergiefaktor: number;
- /**
- * Zuschlagswert für Kühlenergie in kWh für den betroffenen Zeitraum, in der Tabelle einzusetzen in die Spalte "Energieverbrauch".
- */
- "Kuehlzuschlag-kWh": number;
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält im Falle eines Wohngebäudes, für welches das vereinfachte Nachweisverfahren/ Modellgebäudeverfahren nach § 31 GEG, nach vorgegebenen Maßgaben in Anlage 5 (informell EnEV easy) die erforderlichen Bedarfswerte.
- */
-export interface WohngebaeudeBedarfsDatenEasy {
- /**
- * Anbaugrad des Gebäudes bzw. Gebäudeteils an (beheizte) Nachbargebäude.
- */
- "Wohngebaeude-Anbaugrad": "freistehend" | "einseitig angebaut" | "zweiseitig angebaut";
- /**
- * Anzahl beheizter Geschosse im Gebäude (inkl. Keller, wenn beheizt).
- */
- "Anzahl-Geschosse": number;
- /**
- * Der beheizte Bruttogeschossflächenumfang des ersten Geschosses in m (Bruttogeschossflächenumfang: u).
- */
- "Geschoss-Bruttogeschossflaechenumfang": number;
- /**
- * Die beheizte Bruttogeschossfläche des ersten Geschosses in m² (Bruttogeschossfläche: A_G).
- */
- "Geschoss-Bruttogeschossflaeche": number;
- /**
- * Der beheizte Bruttogeschossflächenumfang des Dachgeschosses in m (Bruttogeschossflächenumfang: u).
- */
- "Dach-Bruttogeschossflaechenumfang": number;
- /**
- * Die beheizte Bruttogeschossfläche des Dachgeschosses in m² (Bruttogeschossfläche: A_G).
- */
- "Dach-Bruttogeschossflaeche": number;
- /**
- * Die aufsummierte Bruttogeschossfläche des Gebäudes über alle Geschosse (einschließlich Dachgeschoss, jedoch bei Gebäuden mit zwei oder mehr beheizten Geschossen werden nur 80% A_G des Dachgeschosses angerechnet, wenn die mittlere Dachgeschosshöhe kleiner ist als 2,5 m) in m² (Bruttogeschossfläche: A_GS).
- */
- "Aufsummierte-Bruttogeschossflaeche": number;
- /**
- * Mittlere Geschosshöhe über alle Geschosse (einschließlich Dachgeschoss) in m.
- */
- "Mittlere-Geschosshoehe": number;
- /**
- * Anforderung u² ≤ 20*AG über alle Geschosse erfüllt?
- */
- Kompaktheit: boolean | number;
- /**
- * Die beheizten Bruttogeschossflächen aller Geschosse sind ohne Vor- oder Rücksprünge deckungsgleich; nur das oberste Geschoss weist ggf. eine kleinere Bruttogeschossfläche auf.
- */
- Deckungsgleichheit: boolean | number;
- /**
- * Die Fensterfläche der in nördliche Richtung orientierten Fenster des Gebäudes in Prozent. Diese Fläche ist nicht größer als der Mittelwert der Fensterflächen anderer Orientierungen (vgl. GEG § 31, Anlage 5, Modellgebäudeverfahren).
- */
- "Fensterflaechenanteil-Nordost-Nord-Nordwest": number;
- /**
- * Angabe des Fensterflächenanteiles bezogen auf die Fassadenfläche des gesamten Gebäudes in Prozent. Der Höchstwert für zweiseitig angebaute Gebäude: 35 %, ansonsten 30 %.
- */
- "Fensterflaechenanteil-Gesamt": number;
- /**
- * Flächenanteil von Dachflächenfenstern, Lichtkuppeln und ähnliche transparente Bauteile der gesamten Dachfläche in Prozent.
- */
- "Dach-transparente-Bauteile-Fensterflaechenanteil": number;
- /**
- * Spezielle Fenstertüren-Flächenanteil der Fassade des gesamten Gebäudes in Prozent. Der Höchstwert ist 4,5 %, bei zweiseitig angebauten Gebäuden 5,5 %.
- */
- "Spezielle-Fenstertueren-Flaechenanteil": number;
- /**
- * Außentüren-Flächenanteil bezogen auf die Fassadenfläche des gesamten Gebäudes in m², max. 2,7% bei Ein- und Zweifamilienhäusern, ansonsten 1,5 %.
- */
- "Außentueren-Flaechenanteil": number;
- /**
- * Das Gebäude ist nicht mit einer Anlage zur Raumkühlung (Klimaanlage) ausgestattet.
- */
- "Keine-Anlage-zur-Kuehlung": boolean | number;
- /**
- * Die Wärmebrücken, die im Rahmen rechnerischer Nachweise zu berücksichtigen wären, sind so ausgeführt, dass sie mindestens gleichwertig zu den Musterlösungen nach DIN 4108 Beiblatt 2 sind. (§ 24 GEG über Fälle, in denen auf Gleichwertigkeitsnachweise verzichtet werden kann, bleibt unberührt)
- */
- "Anforderung-Waermebruecken-erfuellt": boolean | number;
- /**
- * Dichtheit des Gebäudes nach § 26 GEG erfolgreich geprüft (n_50-Wert)?
- */
- Gebaeudedichtheit: boolean | number;
- /**
- * Angaben zum Heiz- und Warmwassersystem nach Anlage 5 Tabelle 1 bis 3 GEG.
- */
- "Heiz-Warmwassersystem":
- | "Zentrale Biomasse-Heizungsanlage auf Basis von Holzpellets, Hackschnitzeln oder Scheitholz, zentrale Abluftanlage, solarthermische Anlage zur Trinkwarmwasser-Bereitung"
- | "Zentrale Biomasse-Heizungsanlage auf Basis von Holzpellets, Hackschnitzeln oder Scheitholz, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlage zur Trinkwarmwasser-Bereitung"
- | "Fernwärme mit zertifiziertem Primärenergiefaktor fp ≤ 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %)"
- | "Fernwärme mit zertifiziertem Primärenergiefaktor fp ≤ 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), solarthermische Anlagen"
- | "Fernwärme mit zertifiziertem Primärenergiefaktor fp ≤ 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), Photovoltaik-Anlagen"
- | "Luft-Wasser-Wärmepumpe, dezentrale Trinkwassererwärmung, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %)"
- | "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %)"
- | "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), solarthermische Anlagen"
- | "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), Photovoltaik-Anlagen"
- | "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage"
- | "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, solarthermische Anlagen"
- | "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, Photovoltaik-Anlagen"
- | "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung"
- | "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlagen"
- | "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, Photovoltaik-Anlagen"
- | "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage"
- | "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, solarthermische Anlagen"
- | "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, Photovoltaik-Anlagen"
- | "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung"
- | "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlagen"
- | "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, Photovoltaik-Anlagen";
- /**
- * Lüftungsanlagenanforderungen gemäß Anlage 5 GEG erfüllt?
- */
- Lueftungsanlagenanforderungen: boolean | number;
- /**
- * Angewendete Wärmeschutzvariante nach Anlage 5 Tabelle 1 bis 3 GEG.
- */
- "Waermeschutz-Variante":
- | "Wärmeschutz-Variante A"
- | "Wärmeschutz-Variante B"
- | "Wärmeschutz-Variante C"
- | "Wärmeschutz-Variante D";
- /**
- * Endenergiebedarf in kWh/m²a bezogen auf die energetische Nutzfläche.
- */
- Endenergiebedarf: number;
- /**
- * Energieeffizienzklasse des Gebäudes.
- */
- Energieeffizienzklasse: "A+" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H";
- /**
- * Primärenergiebedarf-Ist-Wert in kWh/m²a bezogen auf die energetische Nutzfläche.
- */
- "Primaerenergiebedarf-Ist-Wert": number;
- /**
- * Primärenergiebedarf-Anforderungswert in kWh/m²a bezogen auf die energetische Nutzfläche.
- */
- "Primaerenergiebedarf-Anforderungswert": number;
- /**
- * Energetische Qualität Gebäudehülle HT´ in W/m²K, Ist-Wert.
- */
- "Energetische-Qualitaet-Ist-Wert": number;
- /**
- * Energetische Qualität Gebäudehülle HT´ in W/m²K, Anforderungs-Wert.
- */
- "Energetische-Qualitaet-Anforderungs-Wert": number;
- /**
- * Das Gebäude erfüllt die Voraussetzungen, unter denen der sommerliche Wärmeschutz auch ohne rechnerischen Nachweis als erfüllt gilt (neue Normungsverweise). aa) Beim kritischen Raum (Raum mit der höchsten Wärmeeinstrahlung im Sommer) beträgt der Fensterflächenanteil bezogen auf die Grundfläche dieses Raums nicht mehr als 35 vom Hundert, bb) sämtliche Fenster in Ost-, Süd- oder Westorientierung (inkl. derer eines eventuellen Glasvorbaus) sind mit außenliegenden Sonnenschutzvorrichtun-gen mit einem Abminderungsfaktor FC ≤ 0,30 ausgestattet.
- */
- "Sommerlicher-Waermeschutz": boolean | number;
- /**
- * Abminderungsfaktor der verwendeten Sonnenschutzvorrichtung für Fenster mit Ost-, Süd- oder Westorientierung.
- */
- "Abminderung-Sonnenschutz": number;
- /**
- * Es wird die erste Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau.
- */
- "Art-der-Nutzung-erneuerbaren-Energie-1"?:
- | "solarthermische Anlagen"
- | "Strom aus erneuerbaren Energien"
- | "Geothermie oder Umweltwärme"
- | "feste Biomasse"
- | "flüssige Biomasse"
- | "gasförmige Biomasse"
- | "Kälte aus erneuerbaren Energien"
- | "Abwärme"
- | "Kraft-Wärme-Kopplung hocheff. KWK-Anlage"
- | "Kraft-Wärme-Kopplung Brennstoffzellenh."
- | "Fernwärme oder Fernkälte";
- /**
- * Deckungsanteil in % für erste Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.
- */
- "Deckungsanteil-1"?: number;
- /**
- * Pflichterfüllungsanteil in % für die erste Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)
- */
- "Anteil-der-Pflichterfuellung-1"?: number;
- /**
- * Es wird die zweite Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau.
- */
- "Art-der-Nutzung-erneuerbaren-Energie-2"?:
- | "solarthermische Anlagen"
- | "Strom aus erneuerbaren Energien"
- | "Geothermie oder Umweltwärme"
- | "feste Biomasse"
- | "flüssige Biomasse"
- | "gasförmige Biomasse"
- | "Kälte aus erneuerbaren Energien"
- | "Abwärme"
- | "Kraft-Wärme-Kopplung hocheff. KWK-Anlage"
- | "Kraft-Wärme-Kopplung Brennstoffzellenh."
- | "Fernwärme oder Fernkälte";
- /**
- * Deckungsanteil in % für zweite Angabe Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.
- */
- "Deckungsanteil-2"?: number;
- /**
- * Pflichterfüllungsanteil in % für die zweite Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)
- */
- "Anteil-der-Pflichterfuellung-2"?: number;
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält im Falle eines Bedarfsausweises die Hüllflächendaten. Die Summe aller Flächen muss der gesamten energetisch wirksamen Hüllfläche entsprechen. Wand- und Dachflächen gegen Aussenluft sind daher netto ohne transparente Bauteile usw. anzugeben. Gleichartige Flächen gleichen U-Wertes und gleicher Orientierung können aufsummiert angegeben werden. Türen (ausser Fenstertüren), Rollladenkästen u.ä. sind als Wandstücke einzugeben.
- */
-export interface BauteilOpakDaten {
- Flaechenbezeichnung: string;
- Flaeche: number;
- "U-Wert": number;
- Ausrichtung: AusrichtungEnum;
- grenztAn: MediumEnum;
- /**
- * Kennzeichen, ob das Bauteil ein(e) Glasdach, Lichtband oder Lichtkuppel ist.
- */
- "Glasdach-Lichtband-Lichtkuppel": boolean | number;
- /**
- * Kennzeichen, ob das Bauteil eine Vorhangfassade ist.
- */
- Vorhangfassade: boolean | number;
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält im Falle eines Bedarfsausweises die Hüllflächendaten. Die Summe aller Flächen muss der gesamten energetisch wirksamen Hüllfläche entsprechen. Wand- und Dachflächen gegen Aussenluft sind daher netto ohne transparente Bauteile usw. anzugeben. Gleichartige Flächen gleichen U-Wertes und gleicher Orientierung können aufsummiert angegeben werden. Türen (ausser Fenstertüren), Rollladenkästen u.ä. sind als Wandstücke einzugeben.
- */
-export interface BauteilTransparentDaten {
- Flaechenbezeichnung: string;
- Flaeche: number;
- "U-Wert": number;
- "g-Wert": number;
- Ausrichtung: AusrichtungEnum;
- /**
- * Kennzeichen, ob das Bauteil ein(e) Glasdach, Lichtband oder Lichtkuppel ist.
- */
- "Glasdach-Lichtband-Lichtkuppel": boolean | number;
- /**
- * Kennzeichen, ob das Bauteil eine Vorhangfassade ist.
- */
- Vorhangfassade: boolean | number;
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält im Falle eines Bedarfsausweises die Hüllflächendaten. Die Summe aller Flächen muss der gesamten energetisch wirksamen Hüllfläche entsprechen. Wand- und Dachflächen gegen Aussenluft sind daher netto ohne transparente Bauteile usw. anzugeben. Gleichartige Flächen gleichen U-Wertes und gleicher Orientierung können aufsummiert angegeben werden. Türen (ausser Fenstertüren), Rollladenkästen u.ä. sind als Wandstücke einzugeben.
- */
-export interface BauteilDachDaten {
- Flaechenbezeichnung: string;
- Flaeche: number;
- "U-Wert": number;
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält die Angaben zu den spezifischen Endenergiebedarfswerten nach Energieträger, bezogen auf die Nettogrundfläche bei Nichtwohngebäuden, bzw. auf die Nettonutzfläche bei Wohngebäude, siehe Tabelle Endenergiebedarf im Energieausweis-Formular.
- */
-export interface EndenergieEnergietraegerDaten {
- Energietraegerbezeichnung: EnergietraegerEnum;
- Primaerenergiefaktor: number;
- /**
- * Endenergiebedarf Heizung (statisch und RLT) in kWh/m²a mit Hilfsenergie (Endenergiebedarf-Heizung: Q_h,f + Q_h*,f; W_h + W_h*).
- */
- "Endenergiebedarf-Heizung-spezifisch": number;
- /**
- * Endenergiebedarf Kühlung (statisch und RLT) und Befeuchtung in kWh/m²a mit Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten des gesamten Gebäudes) (Endenergiebedarf-Kuehlung-Befeuchtung: Q_c,f + Q_c*,f + Q_m*,f; W_c + W_c* + W_m*).
- */
- "Endenergiebedarf-Kuehlung-Befeuchtung-spezifisch": number;
- /**
- * Endenergiebedarf Trinkwasser-Erwärmung in kWh/m²a mit Hilfsenergie (Endenergiebedarf-Trinkwarmwasser: Q_w,f; W_w).
- */
- "Endenergiebedarf-Trinkwarmwasser-spezifisch": number;
- /**
- * Endenergiebedarf Beleuchtung in kWh/m²a (Endenergiebedarf-Beleuchtung: Q_l,f; W_l).
- */
- "Endenergiebedarf-Beleuchtung-spezifisch": number;
- /**
- * Endenergiebedarf Luftförderung der mechanischen Belüftung in kWh/m²a (Endenergiebedarf-Lüftung: W_v).
- */
- "Endenergiebedarf-Lueftung-spezifisch": number;
- /**
- * Endenergiebedarf dieses Energieträgers für das gesamte Gebäude und alle Konditionierungsarten in kWh/m²a (Energieträger: Q_f).
- */
- "Endenergiebedarf-Energietraeger-Gesamtgebaeude-spezifisch": number;
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält im Falle eines Wohngebäude-Verbrauchsausweises die Verbrauchsdaten.
- */
-export interface WohngebaeudeVerbrauchsDaten1 {
- /**
- * Ermittlung der Energiebezugsfläche aus der Wohnfläche mit amtlichem Umrechnungsfaktor nach § 82 GEG.
- */
- "Flaechenermittlung-AN-aus-Wohnflaeche": boolean | number;
- /**
- * Wohnfläche des Gebäudes/Gebäudeteils (ganze Quadratmeter), nur erforderlich bei Ermittlung der energ. Nutzfläche aus der Wohnfläche.
- */
- Wohnflaeche?: number;
- /**
- * Wenn die Energiebezugsfläche aus der Wohnfläche mit amtlichem Umrechnungsfaktor ermittelt wurde, Angabe, ob Ein-/Zweifamilienhaus mit beheiztem Keller (und daher erhöhter Umrechnungsfaktor) oder nicht.
- */
- "Keller-beheizt"?: boolean | number;
- Energietraeger:
- | EnergietraegerDaten
- | [EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ];
- "Leerstandszuschlag-Heizung": LeerstandszuschlagHeizungDaten;
- "Leerstandszuschlag-Warmwasser": LeerstandszuschlagWarmwasserDaten;
- Warmwasserzuschlag?: WarmwasserzuschlagDaten;
- Kuehlzuschlag?: KuehlzuschlagDaten;
- /**
- * Endenergiekennwert in kWh/m²a bezogen auf die Energiebezugsfläche (Mittlerer Endenergieverbrauch: e(Strich)_Vb,12mth).
- */
- "Mittlerer-Endenergieverbrauch": number;
- /**
- * Primärenergiekennwert in kWh/m²a bezogen auf die Energiebezugsfläche.
- */
- "Mittlerer-Primaerenergieverbrauch": number;
- /**
- * Energieeffizienzklasse des Gebäudes.
- */
- Energieeffizienzklasse: "A+" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H";
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält im Falle eines Wohngebäude-Verbrauchsausweises die Verbrauchsdaten.
- */
-export interface WohngebaeudeVerbrauchsDaten2 {
- /**
- * Ermittlung der Energiebezugsfläche aus der Wohnfläche mit amtlichem Umrechnungsfaktor nach § 82 GEG.
- */
- "Flaechenermittlung-AN-aus-Wohnflaeche": boolean | number;
- /**
- * Wohnfläche des Gebäudes/Gebäudeteils (ganze Quadratmeter), nur erforderlich bei Ermittlung der energ. Nutzfläche aus der Wohnfläche.
- */
- Wohnflaeche?: number;
- /**
- * Wenn die Energiebezugsfläche aus der Wohnfläche mit amtlichem Umrechnungsfaktor ermittelt wurde, Angabe, ob Ein-/Zweifamilienhaus mit beheiztem Keller (und daher erhöhter Umrechnungsfaktor) oder nicht.
- */
- "Keller-beheizt"?: boolean | number;
- Energietraeger:
- | EnergietraegerDaten
- | [EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ];
- "Leerstandszuschlag-Heizung": LeerstandszuschlagHeizungDaten;
- "Leerstandszuschlag-Warmwasser": LeerstandszuschlagWarmwasserDaten;
- Warmwasserzuschlag?: WarmwasserzuschlagDaten;
- Kuehlzuschlag?: KuehlzuschlagDaten;
- /**
- * Endenergiekennwert in kWh/m²a bezogen auf die Energiebezugsfläche (Mittlerer Endenergieverbrauch: e(Strich)_Vb,12mth).
- */
- "Mittlerer-Endenergieverbrauch": number;
- /**
- * Primärenergiekennwert in kWh/m²a bezogen auf die Energiebezugsfläche.
- */
- "Mittlerer-Primaerenergieverbrauch": number;
- /**
- * Energieeffizienzklasse des Gebäudes.
- */
- Energieeffizienzklasse: "A+" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H";
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält im Falle eines Nichtwohngebäude-Verbrauchsausweises die Verbrauchsdaten.
- */
-export interface NichtwohngebaeudeVerbrauchsDaten {
- Energietraeger:
- | EnergietraegerDaten
- | [EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ];
- /**
- * Ist als TRUE anzugeben, wenn mindestens einer der (ggfs. mehreren) Heizenergieträger auch zur Warmwasserbereitung dient, die entspr. Mengen sind in der Verbrauchsliste anzugeben, entspricht dem Kreuzchenfeld im Energieausweis-Nichtwohngebäude, Verbrauchsseite, direkt links unter der Verbrauchsskala Endenergieverbrauch Wärme.
- */
- "Warmwasser-enthalten": boolean | number;
- /**
- * Ist als TRUE anzugeben, wenn mindestens einer der (ggfs. mehreren) Heizenergieträger auch zur Kühlung dient, die entspr. Mengen sind in der Verbrauchsliste anzugeben, entspricht dem Kreuzchenfeld im Energieausweis-Nichtwohngebäude, Verbrauchsseite, direkt links unter der Verbrauchsskala Endenergieverbrauch Kühlung.
- */
- "Kuehlung-enthalten": boolean | number;
- /**
- * Es ist anzugeben, was im Stromverbrauch alles enthalten ist, entsprechend der Kreuzchenfelder im Energieausweis sowie zusätzlich Verbrauchsperioden-Strom.
- */
- "Strom-Daten": {
- /**
- * Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Zusatzheizung.
- */
- "Stromverbrauch-enthaelt-Zusatzheizung": boolean | number;
- /**
- * Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Warmwasserbereitung.
- */
- "Stromverbrauch-enthaelt-Warmwasser": boolean | number;
- /**
- * Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Lüftung.
- */
- "Stromverbrauch-enthaelt-Lueftung": boolean | number;
- /**
- * Angaben, was der Stromverbrauch für Funktionalitäten umfasst: eingebaute Beleuchtung.
- */
- "Stromverbrauch-enthaelt-Beleuchtung": boolean | number;
- /**
- * Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Kühlung
- */
- "Stromverbrauch-enthaelt-Kuehlung": boolean | number;
- /**
- * Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Sonstiges.
- */
- "Stromverbrauch-enthaelt-Sonstiges": boolean | number;
- "Zeitraum-Strom": ZeitraumStromDaten | [ZeitraumStromDaten, ...ZeitraumStromDaten[]];
- [k: string]: unknown;
- };
- "Leerstandszuschlag-Heizung": LeerstandszuschlagHeizungDaten1;
- "Leerstandszuschlag-Warmwasser": LeerstandszuschlagWarmwasserDaten1;
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte": LeerstandszuschlagThermischErzeugteKaelteDaten;
- "Leerstandszuschlag-Strom": LeerstandszuschlagStromDaten;
- "Nutzung-Gebaeudekategorie":
- | NutzungGebaeudekategorieDaten
- | [NutzungGebaeudekategorieDaten]
- | [NutzungGebaeudekategorieDaten, NutzungGebaeudekategorieDaten]
- | [NutzungGebaeudekategorieDaten, NutzungGebaeudekategorieDaten, NutzungGebaeudekategorieDaten]
- | [
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten
- ]
- | [
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten
- ];
- /**
- * Endenergiekennwert Heizung und zentrales Warmwasser in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergieverbrauch Wärme: e(Strich)_Vb,12mth).
- */
- "Endenergieverbrauch-Waerme": number;
- /**
- * Endenergiekennwert Strom in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergieverbrauch Strom: e(Strich)_Vs,12mth).
- */
- "Endenergieverbrauch-Strom": number;
- /**
- * Endenergievergleichswert Heizung und zentrales Warmwasser in kWh/m²a bezogen auf die energetische Nutzfläche, entsprechend den anteiligen Nutzungen.
- */
- "Endenergieverbrauch-Waerme-Vergleichswert": number;
- /**
- * Endenergievergleichswert Strom in kWh/m²a bezogen auf die energetische Nutzfläche, entsprechend den anteiligen Nutzungen.
- */
- "Endenergieverbrauch-Strom-Vergleichswert": number;
- /**
- * Primärenergiekennwert in kWh/m²a bezogen auf die energetische Nutzfläche.
- */
- Primaerenergieverbrauch: number;
- [k: string]: unknown;
-}
-/**
- * Umfasst den allgemeinen Stromverbrauch im Gebäude.
- */
-export interface ZeitraumStromDaten {
- /**
- * Anfangsdatum der Periode, angegeben als YYYY-MM-DD.
- */
- Startdatum: string;
- /**
- * Enddatum der Periode, angegeben als YYYY-MM-DD.
- */
- Enddatum: string;
- /**
- * Verbrauchswert Strom in kWh.
- */
- "Energieverbrauch-Strom": number;
- /**
- * Im Verbrauchswert enthaltener Wert für elektrisch erzeugte Kälte in kWh.
- */
- "Energieverbrauchsanteil-elektrisch-erzeugte-Kaelte"?: number;
- [k: string]: unknown;
-}
-/**
- * Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand für thermisch erzeugte Kälte aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen.
- */
-export interface LeerstandszuschlagBekanntmachungDaten2 {
- /**
- * Leerstandsfaktor bezogen auf die anteilige Gebäudenutzfläche AN und den Zeitanteil innerhalb des gesamten aufgeführten Verbrauchszeitraums: f_leer.
- */
- Leerstandsfaktor: number;
- /**
- * Anfangsdatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.
- */
- Startdatum: string;
- /**
- * Enddatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.
- */
- Enddatum: string;
- /**
- * Je nach Betrachtung von "Heizung", "Warmwasser", oder "Strom" bei NWG, ist der Leerstandszuschlag für den Energieverbrauchsanteil für: - Heizung in kWh: delta_E_Vh in der Tabelle in die Spalte "Anteil Heizung" einzusetzen - zentrale Warmwasserbereitung in kWh: delta_E_VWW in der Tabelle in die Spalte "Anteil Warmwasser" einzusetzen - Strom in kWh: delta_E_Vs in der Tabelle in die Spalte "Energieverbrauch Strom" einzusetzen
- */
- "Leerstandszuschlag-kWh": number;
- /**
- * Primärenergiefaktor (entsprechend Anlage 4 GEG) des wesentlichen Energieträgers: f_p.
- */
- Primaerenergiefaktor: number;
- [k: string]: unknown;
-}
-/**
- * Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand Strom aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen.
- */
-export interface LeerstandszuschlagBekanntmachungDaten3 {
- /**
- * Leerstandsfaktor bezogen auf die anteilige Gebäudenutzfläche AN und den Zeitanteil innerhalb des gesamten aufgeführten Verbrauchszeitraums: f_leer.
- */
- Leerstandsfaktor: number;
- /**
- * Anfangsdatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.
- */
- Startdatum: string;
- /**
- * Enddatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.
- */
- Enddatum: string;
- /**
- * Je nach Betrachtung von "Heizung", "Warmwasser", oder "Strom" bei NWG, ist der Leerstandszuschlag für den Energieverbrauchsanteil für: - Heizung in kWh: delta_E_Vh in der Tabelle in die Spalte "Anteil Heizung" einzusetzen - zentrale Warmwasserbereitung in kWh: delta_E_VWW in der Tabelle in die Spalte "Anteil Warmwasser" einzusetzen - Strom in kWh: delta_E_Vs in der Tabelle in die Spalte "Energieverbrauch Strom" einzusetzen
- */
- "Leerstandszuschlag-kWh": number;
- /**
- * Primärenergiefaktor (entsprechend Anlage 4 GEG) des wesentlichen Energieträgers: f_p.
- */
- Primaerenergiefaktor: number;
- [k: string]: unknown;
-}
-export interface NutzungGebaeudekategorieDaten {
- /**
- * Angabe der Nutzung des Gebäudes in Reihenfolge ihres Anteils der Energiebezugsfläche. Die Auswahl der Nutzung-Gebaeudekategorie ergibt sich aus der "Bekanntmachung der Regeln für Energieverbrauchswerte und der Vergleichswerte im Nichtwohngebäudebestand" unter der Anlage 1 Tabelle 1 Teilenergiekennwerte (TEK) nach Gebäudekategorien.
- */
- Gebaeudekategorie:
- | "1:Verwaltungsgebäude (allgemein)"
- | "2:Parlaments- und Gerichtsgebäude"
- | "3:Ministerien u. Ämter u. Behörden"
- | "4:Polizeidienstgebäude"
- | "5:Gebäude für öffentliche Bereitschaftsdienste"
- | "6:Feuerwehrdienstgebäude"
- | "7:Bürogebäude"
- | "8:Bürogebäude - überwiegend Großraumbüros"
- | "9:Bankgebäude"
- | "10:Hochschule und Forschung (allgemein)"
- | "11:Gebäude für Lehre"
- | "12:Institute für Lehre und Forschung"
- | "13:Gebäude für Forschung ohne Lehre"
- | "14:Laborgebäude"
- | "15:Gesundheitswesen (allgemein)"
- | "16:Krankenhäuser (ohne Forschung und Lehre)"
- | "17:Krankenhäuser (ohne Forschung und Lehre) und teilstationäre Versorgung"
- | "18:Medizinische Einrichtungen für nicht stationäre Versorgung"
- | "19:Gebäude für Reha, Kur und Genesung"
- | "20:Bildungseinrichtungen (allgemein)"
- | "21:Schulen"
- | "22:Kinderbetreuungseinrichtungen"
- | "23:Kultureinrichtungen (allgemein)"
- | "24:Bibliotheken / Archive"
- | "25:Ausstellungsgebäude"
- | "26:Veranstaltungsgebäude"
- | "27:Gemeinschafts- / Gemeindehäuser"
- | "28:Opern / Theater"
- | "29:Sporteinrichtungen (allgemein)"
- | "30:Sporthallen"
- | "31:Fitnessstudios"
- | "32:Schwimmhallen"
- | "33:Gebäude für Sportaußenanlagen"
- | "34:Verpflegungseinrichtungen (allgemein)"
- | "35:Beherbergungsstätten (allgemein)"
- | "36:Hotels / Pensionen"
- | "37:Jugendherbergen u. Ferienhäuser"
- | "38:Gaststätten"
- | "39:Mensen u. Kantinen"
- | "40:Gewerbliche und industrielle Gebäude (allgemein)"
- | "41:Gewerbliche und industrielle Gebäude - schwere Arbeit, stehende Tätigkeit"
- | "42:Gewerbliche und industrielle Gebäude - Mischung aus leichter u. schwerer Arbeit"
- | "43:Gewerbliche und industrielle Gebäude - leichte Arbeit, überwiegend sitzende Tätigkeit"
- | "44:Gebäude für Lagerung"
- | "45:Verkaufsstätten (allgemein)"
- | "46:Kaufhäuser"
- | "47:Kaufhauszentren / Einkaufszentren"
- | "48:Märkte"
- | "49:Märkte mit sehr hohem Anteil von Kühlung für Lebensmittel"
- | "50:Läden"
- | "51:Läden mit sehr hohem Anteil von Kühlung für Lebensmittel"
- | "52:Fernmeldetechnik"
- | "53:Sonstiges";
- /**
- * Prozentualer Anteil dieser Nutzung an der gesamten Nettogrundfläche des Gebäudes.
- */
- "Flaechenanteil-Nutzung": number;
- /**
- * Angabe zum zugehörigen Vergleichswert Wärme der angegebenen Nutzungskategorie des Gebäudes.
- */
- "Vergleichswert-Waerme": number;
- /**
- * Angabe zum zugehörigen Vergleichswert Strom der angegebenen Nutzungskategorie des Gebäudes.
- */
- "Vergleichswert-Strom": number;
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält die Angaben zu einer einzelnen Nutzungszone bei Nichtwohngebäuden, die Zonen sollten sinnvollerweise in absteigender Flächengröße angeordnet werden, es ist eine vollständige Liste aller rechnerisch verwendeten Zonen anzugeben.
- */
-export interface ZonenDaten {
- Zonenbezeichnung: string;
- /**
- * Nutzungsprofil nach DIN V 18599
- */
- Nutzung:
- | "1:Einzelbüro"
- | "2:Gruppenbüro (zwei bis sechs Arbeitsplätze)"
- | "3:Großraumbüro (ab sieben Arbeitsplätze)"
- | "4:Besprechung, Sitzung, Seminar"
- | "5:Schalterhalle"
- | "6:Einzelhandel / Kaufhaus"
- | "7:Einzelhandel / Kaufhaus (Leb.-Abteilung mit Kühlprodukten)"
- | "8:Klassenzimmer (Schule), Gruppenraum (Kindergarten)"
- | "9:Hörsaal, Auditorium"
- | "10:Bettenzimmer"
- | "11:Hotelzimmer"
- | "12:Kantine"
- | "13:Restaurant"
- | "14:Küchen in Nichtwohngebäuden"
- | "15:Küche - Vorbereitung, Lager"
- | "16:WC und Sanitärräume in Nichtwohngebäuden"
- | "17:sonstige Aufenthaltsräume"
- | "18:Nebenflächen ohne Aufenthaltsräume"
- | "19:Verkehrsflächen"
- | "20:Lager, Technik, Archiv"
- | "21:Rechenzentrum"
- | "22.1:Gewerbliche und industrielle Hallen - schwere Arbeit"
- | "22.2:Gewerbliche und industrielle Hallen - mittelschwere Arbeit"
- | "22.3:Gewerbliche und industrielle Hallen - leichte Arbeit"
- | "23:Zuschauerbereich"
- | "24:Theater - Foyer"
- | "25:Bühne"
- | "26:Messe / Kongress"
- | "27:Ausstellungsräume und Museum"
- | "28:Bibliothek - Lesesaal"
- | "29:Bibliothek - Freihandbereich"
- | "30:Bibliothek - Magazin und Depot"
- | "31:Turnhalle"
- | "32:Parkhäuser (Büro- und Privatnutzung)"
- | "33:Parkhäuser (öffentliche Nutzung)"
- | "34:Saunabereich"
- | "35:Fitnessraum"
- | "36:Labor"
- | "37:Untersuchungs- und Behandlungsräume"
- | "38:Spezialpflegebereiche"
- | "39:Flure des allgemeinen Pflegebereichs"
- | "40:Arztpraxen und Therapeutische Praxen"
- | "41:Lagerhallen, Logistikhallen"
- | "42:Wohnen (EFH)"
- | "43:Wohnen (MFH)"
- | "44:Anwenderspezifische Nutzung";
- /**
- * Bezeichnung der anwenderspezifischen Nutzung der Zone.
- */
- Anwenderspezifische_Nutzung_Bezeichnung?: string;
- /**
- * Hinweise auf Anpassungen des Nutzungsprofils nach DIN V 18599, wenn Standard-Vorgaben nicht verwendbar; bei völlig neu definierten Profilen (weil in DIN V 18599 nicht aufgelistet) bitte eine dort nicht verwendete Nutzungsprofilnummer (z.B. ab 90) verwenden und hier alle relevanten Daten anführen.
- */
- Zonenbesonderheiten?: string;
- /**
- * Nettogrundfläche der jeweiligen Zone in m² (Nettogrundfläche: A_NGF).
- */
- "Nettogrundflaeche-Zone": number;
- /**
- * Mittlere lichte Raumhöhe der jeweiligen Zone in m (lichte Raumhöhe: h_R).
- */
- "mittlere-lichte-Raumhoehe": number;
- "Sonnenschutz-System": SonnenschutzEnum | [SonnenschutzEnum, ...SonnenschutzEnum[]];
- "Beleuchtungs-System": LampenartEnum | [LampenartEnum, ...LampenartEnum[]];
- /**
- * Lichtverteilung (Kunstlicht) in der jeweiligen Zone.
- */
- "Beleuchtungs-Verteilung":
- | "direkt"
- | "indirekt"
- | "direkt-indirekt"
- | "keine Bewertung der Beleuchtung vorhanden (Zone:Wohnen)"
- | "Fachplanung";
- /**
- * Wird das Kunstlicht über eine Präsenzerfassung automatisch geschaltet?
- */
- "Praesenzkontrolle-Kunstlicht": boolean | number;
- /**
- * Wird das Kunstlicht in Abhängigkeit vom Tageslicht automatisch geschaltet oder geregelt?
- */
- "Tageslichtabhaengige-Kontrollsysteme": boolean | number;
- /**
- * Endenergiebedarf Heizung (statisch und RLT) in kWh/a ohne Hilfsenergie (Endenergiebedarf-Heizung: Q_h,f + Q_h*,f).
- */
- "Endenergiebedarf-Heizung": number;
- /**
- * Endenergiebedarf Kühlung (statisch und RLT) in kWh/a ohne Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten der Zone) (Endenergiebedarf-Kuehlung: Q_c,f + Q_c*,f).
- */
- "Endenergiebedarf-Kuehlung": number;
- /**
- * Endenergiebedarf Befeuchtung (RLT) in kWh/a ohne Hilfsenergie (Endenergiebedarf-Befeuchtung: Q_m*,f).
- */
- "Endenergiebedarf-Befeuchtung": number;
- /**
- * Endenergiebedarf Trinkwasser-Erwärmung in kWh/a ohne Hilfsenergie (Endenergiebedarf-Trinkwarmwasser: Q_w,f).
- */
- "Endenergiebedarf-Trinkwarmwasser": number;
- /**
- * Endenergiebedarf Beleuchtung in kWh/a (Endenergiebedarf-Beleuchtung: Q_l,f).
- */
- "Endenergiebedarf-Beleuchtung": number;
- /**
- * Endenergiebedarf Luftförderung einer mechanischen Belüftung in kWh/a (Endenergiebedarf-Lufttransport: W_v).
- */
- "Endenergiebedarf-Lufttransport": number;
- /**
- * Endenergiebedarf Hilfsenergie in kWh/a ohne Luftförderung (Endenergiebedarf-Hilfsenergie: W_f - W_v).
- */
- "Endenergiebedarf-Hilfsenergie": number;
- [k: string]: unknown;
-}
-/**
- * Angaben zur jeweiligen Kälteerzeugung und -verteilung sowie Rückkühlung.
- */
-export interface KaelteanlageDaten {
- "Kaelteerzeuger-Bauweise": KaelteerzeugerTypEnum;
- /**
- * Die Zuordnung bezieht sich auf die Art der Teillastregelung in DIN V 18599 Tab. 25, 27 und 29, z.B. auf die Formulierung "…regelung" = stufenlos regelnd "mehrstufig schaltbar" = mehrstufig taktend "stetige Regelung" = stufenlos regelnd "Zweipunktregelung" = ein-aus-Betrieb
- */
- "Kaelteerzeuger-Regelung": "ein-aus" | "Heißgasbypass oder ähnliches" | "mehrstufig schaltend" | "invertergeregelt";
- "Rueckkuehlung-Bauweise": RueckkuehlungEnum;
- /**
- * Temperaturniveau der Kälteverteilung Vorlauf/Rücklauf, bzw. Angabe von Direktkühlung mit Kältemittelkreis.
- */
- "Kaelteverteilung-Primaerkreis-Temperatur": "direktverdampfend" | "6/12 oder kälter" | "über 6/12";
- /**
- * Die Nennkälteleistung ist die Kälteleistung in kW, die eine Kälteanlage unter Auslegungsbedingungen abgibt (DIN V 18599-7:2011-07) (Nennkälteleistung für KKM: Q(Punkt)_C,outg).
- */
- Nennkaelteleistung: number;
- /**
- * Baujahr dieses Kälteerzeugers oder Jahr der massgeblichen letzten baulichen Veränderung des Kälteerzeugers.
- */
- "Kaelteerzeuger-Baujahr": string;
- /**
- * Anzahl ggfs. baugleich vorhandener Geräte (mehrfache zentrale Kälteerzeuger, Splittgeräte usw.), bei nur einem Gerät Angabe "1".
- */
- "Anzahl-baugleiche": number;
- /**
- * Vom Kälteerzeuger verwendeter Energieträger.
- */
- Energietraeger:
- | "Heizöl"
- | "Erdgas"
- | "Flüssiggas"
- | "Steinkohle"
- | "Braunkohle"
- | "Biogas"
- | "Biogas, gebäudenah erzeugt"
- | "biogenes Flüssiggas"
- | "Bioöl"
- | "Bioöl, gebäudenah erzeugt"
- | "Holz"
- | "Strom netzbezogen"
- | "Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft)"
- | "Verdrängungsstrommix für KWK"
- | "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme)"
- | "Kälte (Erdkälte, Umgebungskälte)"
- | "Abwärme aus Prozessen (prod)"
- | "Abwärme aus Prozessen (out)"
- | "Wärme aus KWK, gebäudeintegriert oder gebäudenah"
- | "Wärme aus Verbrennung von Siedlungsabfällen"
- | "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger"
- | "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger"
- | "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger"
- | "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger"
- | "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger"
- | "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger";
- /**
- * Verwendeter Primärenergiefaktor des Energieträgers (Primärenergiefaktor: f_p)
- */
- Primaerenergiefaktor: number;
- [k: string]: unknown;
-}
-/**
- * Angaben zur jeweiligen Lüftungsanlage.
- */
-export interface RLTAnlagenDaten {
- /**
- * Anlage führt den Räumen Zuluft aus (ggfs. aufbereiteter) Außenluft (evtl. zusammen mit Umluft) zu.
- */
- "Funktion-Zuluft": boolean | number;
- /**
- * Anlage führt aus den Räumen Abluft ab.
- */
- "Funktion-Abluft": boolean | number;
- /**
- * Anlagenspezifische Angabe in Prozent, die den Wärmerückgewinnungsgrad der Lüftungsanlage zonenunabhängig widerspiegelt.
- */
- "WRG-Rueckwaermzahl"?: number;
- /**
- * Anlage kann die Luft erwärmen.
- */
- "Funktion-Heizregister": boolean | number;
- /**
- * Anlage kann die Luft kühlen.
- */
- "Funktion-Kuehlregister": boolean | number;
- /**
- * Anlage kann die Luft mittels Dampfbefeuchter befeuchten.
- */
- "Funktion-Dampfbefeuchter": boolean | number;
- /**
- * Anlage kann die Luft mittels Sprüh- oder Rieselbefeuchter befeuchten.
- */
- "Funktion-Wasserbefeuchter": boolean | number;
- /**
- * Vom Befeuchter verwendeter Energieträger (bei Wasserbefeuchter derjenige Energieträger, der das/die zugehörige Heizregister der Heizanlage versorgt), Angabe nur erforderlich, wenn Anlage befeuchten kann.
- */
- "Energietraeger-Befeuchtung"?: {
- [k: string]: unknown;
- };
- /**
- * Anzahl ggfs. baugleich vorhandener Geräte, bei nur einem Gerät Angabe "1".
- */
- "Anzahl-baugleiche": number;
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält im Falle eines Nichtwohngebäude-Verbrauchsausweises die Verbrauchsdaten.
- */
-export interface NichtwohngebaeudeVerbrauchsDaten1 {
- Energietraeger:
- | EnergietraegerDaten
- | [EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten, EnergietraegerDaten]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ]
- | [
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten,
- EnergietraegerDaten
- ];
- /**
- * Ist als TRUE anzugeben, wenn mindestens einer der (ggfs. mehreren) Heizenergieträger auch zur Warmwasserbereitung dient, die entspr. Mengen sind in der Verbrauchsliste anzugeben, entspricht dem Kreuzchenfeld im Energieausweis-Nichtwohngebäude, Verbrauchsseite, direkt links unter der Verbrauchsskala Endenergieverbrauch Wärme.
- */
- "Warmwasser-enthalten": boolean | number;
- /**
- * Ist als TRUE anzugeben, wenn mindestens einer der (ggfs. mehreren) Heizenergieträger auch zur Kühlung dient, die entspr. Mengen sind in der Verbrauchsliste anzugeben, entspricht dem Kreuzchenfeld im Energieausweis-Nichtwohngebäude, Verbrauchsseite, direkt links unter der Verbrauchsskala Endenergieverbrauch Kühlung.
- */
- "Kuehlung-enthalten": boolean | number;
- /**
- * Es ist anzugeben, was im Stromverbrauch alles enthalten ist, entsprechend der Kreuzchenfelder im Energieausweis sowie zusätzlich Verbrauchsperioden-Strom.
- */
- "Strom-Daten": {
- /**
- * Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Zusatzheizung.
- */
- "Stromverbrauch-enthaelt-Zusatzheizung": boolean | number;
- /**
- * Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Warmwasserbereitung.
- */
- "Stromverbrauch-enthaelt-Warmwasser": boolean | number;
- /**
- * Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Lüftung.
- */
- "Stromverbrauch-enthaelt-Lueftung": boolean | number;
- /**
- * Angaben, was der Stromverbrauch für Funktionalitäten umfasst: eingebaute Beleuchtung.
- */
- "Stromverbrauch-enthaelt-Beleuchtung": boolean | number;
- /**
- * Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Kühlung
- */
- "Stromverbrauch-enthaelt-Kuehlung": boolean | number;
- /**
- * Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Sonstiges.
- */
- "Stromverbrauch-enthaelt-Sonstiges": boolean | number;
- "Zeitraum-Strom": ZeitraumStromDaten | [ZeitraumStromDaten, ...ZeitraumStromDaten[]];
- [k: string]: unknown;
- };
- "Leerstandszuschlag-Heizung": LeerstandszuschlagHeizungDaten1;
- "Leerstandszuschlag-Warmwasser": LeerstandszuschlagWarmwasserDaten1;
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte": LeerstandszuschlagThermischErzeugteKaelteDaten;
- "Leerstandszuschlag-Strom": LeerstandszuschlagStromDaten;
- "Nutzung-Gebaeudekategorie":
- | NutzungGebaeudekategorieDaten
- | [NutzungGebaeudekategorieDaten]
- | [NutzungGebaeudekategorieDaten, NutzungGebaeudekategorieDaten]
- | [NutzungGebaeudekategorieDaten, NutzungGebaeudekategorieDaten, NutzungGebaeudekategorieDaten]
- | [
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten
- ]
- | [
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten,
- NutzungGebaeudekategorieDaten
- ];
- /**
- * Endenergiekennwert Heizung und zentrales Warmwasser in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergieverbrauch Wärme: e(Strich)_Vb,12mth).
- */
- "Endenergieverbrauch-Waerme": number;
- /**
- * Endenergiekennwert Strom in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergieverbrauch Strom: e(Strich)_Vs,12mth).
- */
- "Endenergieverbrauch-Strom": number;
- /**
- * Endenergievergleichswert Heizung und zentrales Warmwasser in kWh/m²a bezogen auf die energetische Nutzfläche, entsprechend den anteiligen Nutzungen.
- */
- "Endenergieverbrauch-Waerme-Vergleichswert": number;
- /**
- * Endenergievergleichswert Strom in kWh/m²a bezogen auf die energetische Nutzfläche, entsprechend den anteiligen Nutzungen.
- */
- "Endenergieverbrauch-Strom-Vergleichswert": number;
- /**
- * Primärenergiekennwert in kWh/m²a bezogen auf die energetische Nutzfläche.
- */
- Primaerenergieverbrauch: number;
- [k: string]: unknown;
-}
-/**
- * Dieser Block enthält zeilenweise die Textangaben zu den Modernisierungsempfehlungen im Energieausweis.
- */
-export interface Modernisierungszeile {
- /**
- * Fortlaufende Nummer der Modernisierungsempfehlung
- */
- Nummer: number;
- /**
- * Angabe des betroffenen Bauteils oder Anlagenteils; die Differenzierung ist dem Energieausweis-Aussteller überlassen, er kann also z.B. unter Heizung eine komplette neue Beheizung samt Regelung, hydr. Abgleich usw. in einer Empfehlung geben, oder einzelne Maßnahmen differenzierter auflisten.
- */
- "Bauteil-Anlagenteil":
- | "Dach"
- | "oberste Geschossdecke"
- | "Abseiten"
- | "Gauben"
- | "Dachfenster"
- | "Außenwand gg. Außenluft"
- | "Fenster"
- | "Rollläden und -kästen"
- | "Eingangstür"
- | "Nebentür"
- | "Kellerdecke"
- | "Boden gg. Außenluft"
- | "Außenwand gg. Erdreich"
- | "Boden gegen Erdreich"
- | "Luftundichtigkeiten"
- | "Heizung"
- | "Wärmeerzeuger"
- | "Wärmeverteilung / -abgabe"
- | "Warmwasserbereitung"
- | "Lüftung"
- | "Lüftungskonzept"
- | "Lüftungsanlage"
- | "Luftverteilung / -abgabe"
- | "Kühlung"
- | "Kälteerzeugung"
- | "Kälteverteilung / -abgabe"
- | "Be-/Entfeuchtung"
- | "Beleuchtung"
- | "Anlagenregelung"
- | "Gebäudeautomation"
- | "Sonstiges";
- /**
- * Beschreibung der Maßnahme, ggfs. auch in mehreren Schritten.
- */
- Massnahmenbeschreibung: string;
- /**
- * Kreuzchen, ob die Maßnahme im Zusammenhang mit größeren Modernisierungsmaßnahmen oder sogar als Einzelmaßnahme sinnvoll ist
- */
- Modernisierungskombination: "in Zusammenhang mit größerer Modernisierung" | "als Einzelmaßnahme";
- /**
- * Geschätzte Amortisationszeit der Maßnahme.
- */
- Amortisation?: string;
- /**
- * Geschätzte Kosten pro eingesparter Kilowattstunde Endenergie.
- */
- "spezifische-Kosten"?: string;
- [k: string]: unknown;
-}
-/**
- * Angabe des Warmwasserzuschlags für dezentrale Trinkwarmwasserbereitung in Wohngebäuden
- */
-export interface WarmwasserzuschlagDaten1 {
- /**
- * Anfangsdatum des Zeitraums, in dem dezentrale Trinkwarmwasserbereitung bestand, angegeben als YYYY-MM-DD.
- */
- Startdatum: string;
- /**
- * Enddatum des Zeitraums, in dem dezentrale Trinkwarmwasserbereitung bestand, angegeben als YYYY-MM-DD.
- */
- Enddatum: string;
- /**
- * Primärenergiefaktor (entsprechend Anlage 4 GEG) des wesentlichen Energieträgers für die Beheizung, damit das dezentrale Warmwasser als virtueller Mehrverbrauch einer fiktiven zentralen Warmwasserbereitung verrechnet werden kann (Primärenergiefaktor: f_p).
- */
- Primaerenergiefaktor: number;
- /**
- * Zuschlagswert Warmwasser in kWh für den betroffenen Zeitraum, in der Tabelle einzusetzen in die Spalten "Energieverbrauch" und "Anteil Warmwasser".
- */
- "Warmwasserzuschlag-kWh": number;
- [k: string]: unknown;
-}
-/**
- * Angaben für den Verbrauchs-Zuschlag für gekühlte Wohngebäude.
- */
-export interface KuehlzuschlagDaten1 {
- /**
- * Anfangsdatum des Zeitraums, in dem die Einrichtung zur Kühlung des Gebäudes bestand, angegeben als YYYY-MM-DD.
- */
- Startdatum: string;
- /**
- * Enddatum des Zeitraums, in dem die Einrichtung zur Kühlung des Gebäudes bestand, angegeben als YYYY-MM-DD.
- */
- Enddatum: string;
- /**
- * Energiebezugsfläche AN des Gebäudes/Gebäudeteils, der maschinell gekühlt wird (ganze Quadratmeter); die Angabe erscheint nicht im Energieausweis, ist aber für die Zuschlagsberechnung relevant.
- */
- "Gebaeudenutzflaeche-gekuehlt": number;
- /**
- * Primärenergiefaktor (entsprechend Anlage 4 GEG) Strom für die Wohnungskühlung (Primärenergiefaktor: f_p).
- */
- Primaerenergiefaktor: number;
- /**
- * Zuschlagswert für Kühlenergie in kWh für den betroffenen Zeitraum, in der Tabelle einzusetzen in die Spalte "Energieverbrauch".
- */
- "Kuehlzuschlag-kWh": number;
- [k: string]: unknown;
-}
-/**
- * Daten für die Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte.
- */
-export interface LeerstandszuschlagBekanntmachungDaten4 {
- /**
- * Leerstandsfaktor bezogen auf die anteilige Gebäudenutzfläche AN und den Zeitanteil innerhalb des gesamten aufgeführten Verbrauchszeitraums: f_leer.
- */
- Leerstandsfaktor: number;
- /**
- * Anfangsdatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.
- */
- Startdatum: string;
- /**
- * Enddatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.
- */
- Enddatum: string;
- /**
- * Je nach Betrachtung von "Heizung", "Warmwasser", oder "Strom" bei NWG, ist der Leerstandszuschlag für den Energieverbrauchsanteil für: - Heizung in kWh: delta_E_Vh in der Tabelle in die Spalte "Anteil Heizung" einzusetzen - zentrale Warmwasserbereitung in kWh: delta_E_VWW in der Tabelle in die Spalte "Anteil Warmwasser" einzusetzen - Strom in kWh: delta_E_Vs in der Tabelle in die Spalte "Energieverbrauch Strom" einzusetzen
- */
- "Leerstandszuschlag-kWh": number;
- /**
- * Primärenergiefaktor (entsprechend Anlage 4 GEG) des wesentlichen Energieträgers: f_p.
- */
- Primaerenergiefaktor: number;
- [k: string]: unknown;
-}
diff --git a/Kontrollsystem-GEG-2023-V1_0_zod.ts b/Kontrollsystem-GEG-2023-V1_0_zod.ts
deleted file mode 100644
index 43e5ae02..00000000
--- a/Kontrollsystem-GEG-2023-V1_0_zod.ts
+++ /dev/null
@@ -1,3479 +0,0 @@
-// Generated by ts-to-zod
-import { z } from "zod";
-
-export const gesetzesgrundlageEnumSchema = z.literal("GEG-2023");
-
-export const rechtsstandGrundEnumSchema = z.union([
- z.literal(
- "Bauantrag bei genehmigungspflichtigen Vorhaben (Ausstellungsanlässe Neubau und Modernisierung)"
- ),
- z.literal(
- "Bauanzeige bei anzeigepflichtigen Vorhaben (Ausstellungsanlässe Neubau und Modernisierung)"
- ),
- z.literal("Baubeginn (Ausstellungsanlass Modernisierung)"),
- z.literal(
- "Wunsch des Bauherrn neues Recht anzuwenden (gemäß GEG § 111 Absatz 3)"
- ),
- z.literal(
- "Ausweisausstellung (bei Verbrauchsausweisen und alle anderen Fälle)"
- ),
-]);
-
-export const bundeslandEnumSchema = z.union([
- z.literal("Baden-Württemberg"),
- z.literal("Bayern"),
- z.literal("Berlin"),
- z.literal("Brandenburg"),
- z.literal("Bremen"),
- z.literal("Hamburg"),
- z.literal("Hessen"),
- z.literal("Mecklenburg-Vorpommern"),
- z.literal("Niedersachsen"),
- z.literal("Nordrhein-Westfalen"),
- z.literal("Rheinland-Pfalz"),
- z.literal("Saarland"),
- z.literal("Sachsen"),
- z.literal("Sachsen-Anhalt"),
- z.literal("Schleswig-Holstein"),
- z.literal("Thüringen"),
-]);
-
-export const gebaeudeteilEnumSchema = z.union([
- z.literal("Ganzes Gebäude"),
- z.literal("Teil des Wohngebäudes"),
- z.literal("Teil des Nichtwohngebäudes"),
-]);
-
-export const altersklasseEnumSchema = z.union([
- z.literal("bis 1918"),
- z.literal("1919...1948"),
- z.literal("1949...1957"),
- z.literal("1958...1968"),
- z.literal("1969...1978"),
- z.literal("1979...1983"),
- z.literal("1984...1994"),
- z.literal("1995...2002"),
- z.literal("2003...2009"),
- z.literal("2010...2016"),
- z.literal("ab 2017"),
-]);
-
-export const anlassEnumSchema = z.union([
- z.literal("Neubau"),
- z.literal("Modernisierung-Erweiterung"),
- z.literal("Vermietung-Verkauf"),
- z.literal("Aushangpflicht"),
- z.literal("Sonstiges"),
-]);
-
-export const gebaeudetypEnumSchema = z.union([
- z.literal("Einfamilienhaus"),
- z.literal("Zweifamilienhaus"),
- z.literal("Mehrfamilienhaus"),
- z.literal("Wohnteil gemischt genutztes Gebäude"),
- z.literal("Beidseitig angebautes Gebäude"),
- z.literal("Einseitig angebautes Gebäude"),
- z.literal("Sonstiges"),
-]);
-
-export const energietraegerVerbrauchEnumSchema = z.union([
- z.literal("Heizöl in Liter"),
- z.literal("Heizöl in kWh Heizwert"),
- z.literal("Heizöl in kWh Brennwert"),
- z.literal("Erdgas in m3"),
- z.literal("Erdgas in kWh Heizwert"),
- z.literal("Erdgas in kWh Brennwert"),
- z.literal("Flüssiggas in m3 gasförmig"),
- z.literal("Flüssiggas in Liter flüssig"),
- z.literal("Flüssiggas in kg"),
- z.literal("Flüssiggas in kWh Heizwert"),
- z.literal("Steinkohle in kg"),
- z.literal("Steinkohle in kWh Heizwert"),
- z.literal("Braunkohle in kg"),
- z.literal("Braunkohle in kWh Heizwert"),
- z.literal("Biogas in m3"),
- z.literal("Biogas in kWh Heizwert"),
- z.literal("Biogas in kWh Brennwert"),
- z.literal("Biogas, gebäudenah erzeugt in m3"),
- z.literal("Biogas, gebäudenah erzeugt in kWh Heizwert"),
- z.literal("Biogas, gebäudenah erzeugt in kWh Brennwert"),
- z.literal("biogenes Flüssiggas in m3 gasförmig"),
- z.literal("biogenes Flüssiggas in Liter flüssig"),
- z.literal("biogenes Flüssiggas in kg"),
- z.literal("biogenes Flüssiggas in kWh Heizwert"),
- z.literal("Bioöl in Liter"),
- z.literal("Bioöl in kWh Heizwert"),
- z.literal("Bioöl in kWh Brennwert"),
- z.literal("Bioöl, gebäudenah erzeugt in Liter"),
- z.literal("Bioöl, gebäudenah erzeugt in kWh Heizwert"),
- z.literal("Bioöl, gebäudenah erzeugt in kWh Brennwert"),
- z.literal("Holz in Raummeter"),
- z.literal("Holz in kg"),
- z.literal("Holz in kWh Heizwert"),
- z.literal("Holz in kWh Brennwert"),
- z.literal("Holz in Schüttraummeter"),
- z.literal("Strom netzbezogen in kWh"),
- z.literal("Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft) in kWh"),
- z.literal("Verdrängungsstrommix für KWK in kWh"),
- z.literal(
- "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme) in kWh"
- ),
- z.literal("Kälte (Erdkälte, Umgebungskälte) in kWh"),
- z.literal("Abwärme aus Prozessen (prod) in kWh"),
- z.literal("Abwärme aus Prozessen (out) in kWh"),
- z.literal("Wärme aus KWK, gebäudeintegriert oder gebäudenah in kWh"),
- z.literal("Wärme aus Verbrennung von Siedlungsabfällen in kWh"),
- z.literal(
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger in kWh"
- ),
- z.literal(
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger in kWh"
- ),
- z.literal(
- "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger in kWh"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger in kWh"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger in kWh"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger in kWh"
- ),
-]);
-
-export const zeitraumDatenSchema = z.record(z.unknown()).and(
- z.object({
- Startdatum: z.string(),
- Enddatum: z.string(),
- "Verbrauchte-Menge": z.number(),
- Energieverbrauch: z.number(),
- "Energieverbrauchsanteil-Warmwasser-zentral": z.number(),
- Warmwasserwertermittlung: z.union([
- z.literal("direkter Messwert Wärmemenge"),
- z.literal(
- "Pauschale für dezentrale Warmwasserbereitung (Wohngebäude)"
- ),
- z.literal("Rechenwert nach Heizkostenverordnung (Wohngebäude)"),
- z.literal("Rechenwert nach GEG / DIN V 18599 (Nichtwohngebäude)"),
- z.literal(
- "Rechenwert nach Heizkostenverordnung (Nichtwohngebäude)"
- ),
- z.literal("Pauschale 5 % Warmwasserbereitung (Nichtwohngebäude)"),
- z.literal("Pauschale 50 % Warmwasserbereitung (Nichtwohngebäude)"),
- z.literal(
- "monatsweise Erfassung Wärmeverbrauch Sommer (Nichtwohngebäude)"
- ),
- z.literal(
- "sonstige Ermittlung des Verbrauchsanteils der Warmwasserbereitung"
- ),
- z.literal("keine Warmwasserbereitung enthalten"),
- ]),
- "Energieverbrauchsanteil-thermisch-erzeugte-Kaelte": z
- .number()
- .optional(),
- "Energieverbrauchsanteil-Heizung": z.number(),
- Klimafaktor: z.number(),
- "Verbrauchswert-kWh-Strom": z.number().optional(),
- })
-);
-
-export const warmwasserzuschlagDaten1Schema = z.record(z.unknown()).and(
- z.object({
- Startdatum: z.string(),
- Enddatum: z.string(),
- Primaerenergiefaktor: z.number(),
- "Warmwasserzuschlag-kWh": z.number(),
- })
-);
-
-export const kuehlzuschlagDaten1Schema = z.record(z.unknown()).and(
- z.object({
- Startdatum: z.string(),
- Enddatum: z.string(),
- "Gebaeudenutzflaeche-gekuehlt": z.number(),
- Primaerenergiefaktor: z.number(),
- "Kuehlzuschlag-kWh": z.number(),
- })
-);
-
-export const leerstandszuschlagBekanntmachungDaten4Schema = z
- .record(z.unknown())
- .and(
- z.object({
- Leerstandsfaktor: z.number(),
- Startdatum: z.string(),
- Enddatum: z.string(),
- "Leerstandszuschlag-kWh": z.number(),
- Primaerenergiefaktor: z.number(),
- })
- );
-
-export const warmwasserwertermittlungEnumSchema = z.union([
- z.literal("direkter Messwert Wärmemenge"),
- z.literal("Pauschale für dezentrale Warmwasserbereitung (Wohngebäude)"),
- z.literal("Rechenwert nach Heizkostenverordnung (Wohngebäude)"),
- z.literal("Rechenwert nach GEG / DIN V 18599 (Nichtwohngebäude)"),
- z.literal("Rechenwert nach Heizkostenverordnung (Nichtwohngebäude)"),
- z.literal("Pauschale 5 % Warmwasserbereitung (Nichtwohngebäude)"),
- z.literal("Pauschale 50 % Warmwasserbereitung (Nichtwohngebäude)"),
- z.literal("monatsweise Erfassung Wärmeverbrauch Sommer (Nichtwohngebäude)"),
- z.literal(
- "sonstige Ermittlung des Verbrauchsanteils der Warmwasserbereitung"
- ),
- z.literal("keine Warmwasserbereitung enthalten"),
-]);
-
-export const wohngebaeudeBedarfsDatenEasySchema = z.record(z.unknown()).and(
- z.object({
- "Wohngebaeude-Anbaugrad": z.union([
- z.literal("freistehend"),
- z.literal("einseitig angebaut"),
- z.literal("zweiseitig angebaut"),
- ]),
- "Anzahl-Geschosse": z.number(),
- "Geschoss-Bruttogeschossflaechenumfang": z.number(),
- "Geschoss-Bruttogeschossflaeche": z.number(),
- "Dach-Bruttogeschossflaechenumfang": z.number(),
- "Dach-Bruttogeschossflaeche": z.number(),
- "Aufsummierte-Bruttogeschossflaeche": z.number(),
- "Mittlere-Geschosshoehe": z.number(),
- Kompaktheit: z.union([z.boolean(), z.number()]),
- Deckungsgleichheit: z.union([z.boolean(), z.number()]),
- "Fensterflaechenanteil-Nordost-Nord-Nordwest": z.number(),
- "Fensterflaechenanteil-Gesamt": z.number(),
- "Dach-transparente-Bauteile-Fensterflaechenanteil": z.number(),
- "Spezielle-Fenstertueren-Flaechenanteil": z.number(),
- "Außentueren-Flaechenanteil": z.number(),
- "Keine-Anlage-zur-Kuehlung": z.union([z.boolean(), z.number()]),
- "Anforderung-Waermebruecken-erfuellt": z.union([
- z.boolean(),
- z.number(),
- ]),
- Gebaeudedichtheit: z.union([z.boolean(), z.number()]),
- "Heiz-Warmwassersystem": z.union([
- z.literal(
- "Zentrale Biomasse-Heizungsanlage auf Basis von Holzpellets, Hackschnitzeln oder Scheitholz, zentrale Abluftanlage, solarthermische Anlage zur Trinkwarmwasser-Bereitung"
- ),
- z.literal(
- "Zentrale Biomasse-Heizungsanlage auf Basis von Holzpellets, Hackschnitzeln oder Scheitholz, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlage zur Trinkwarmwasser-Bereitung"
- ),
- z.literal(
- "Fernwärme mit zertifiziertem Primärenergiefaktor fp \u2264 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %)"
- ),
- z.literal(
- "Fernwärme mit zertifiziertem Primärenergiefaktor fp \u2264 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %), solarthermische Anlagen"
- ),
- z.literal(
- "Fernwärme mit zertifiziertem Primärenergiefaktor fp \u2264 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %), Photovoltaik-Anlagen"
- ),
- z.literal(
- "Luft-Wasser-Wärmepumpe, dezentrale Trinkwassererwärmung, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %)"
- ),
- z.literal(
- "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %)"
- ),
- z.literal(
- "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %), solarthermische Anlagen"
- ),
- z.literal(
- "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %), Photovoltaik-Anlagen"
- ),
- z.literal(
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage"
- ),
- z.literal(
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, solarthermische Anlagen"
- ),
- z.literal(
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, Photovoltaik-Anlagen"
- ),
- z.literal(
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung"
- ),
- z.literal(
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlagen"
- ),
- z.literal(
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, Photovoltaik-Anlagen"
- ),
- z.literal(
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage"
- ),
- z.literal(
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, solarthermische Anlagen"
- ),
- z.literal(
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, Photovoltaik-Anlagen"
- ),
- z.literal(
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung"
- ),
- z.literal(
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlagen"
- ),
- z.literal(
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, Photovoltaik-Anlagen"
- ),
- ]),
- Lueftungsanlagenanforderungen: z.union([z.boolean(), z.number()]),
- "Waermeschutz-Variante": z.union([
- z.literal("Wärmeschutz-Variante A"),
- z.literal("Wärmeschutz-Variante B"),
- z.literal("Wärmeschutz-Variante C"),
- z.literal("Wärmeschutz-Variante D"),
- ]),
- Endenergiebedarf: z.number(),
- Energieeffizienzklasse: z.union([
- z.literal("A+"),
- z.literal("A"),
- z.literal("B"),
- z.literal("C"),
- z.literal("D"),
- z.literal("E"),
- z.literal("F"),
- z.literal("G"),
- z.literal("H"),
- ]),
- "Primaerenergiebedarf-Ist-Wert": z.number(),
- "Primaerenergiebedarf-Anforderungswert": z.number(),
- "Energetische-Qualitaet-Ist-Wert": z.number(),
- "Energetische-Qualitaet-Anforderungs-Wert": z.number(),
- "Sommerlicher-Waermeschutz": z.union([z.boolean(), z.number()]),
- "Abminderung-Sonnenschutz": z.number(),
- "Art-der-Nutzung-erneuerbaren-Energie-1": z
- .union([
- z.literal("solarthermische Anlagen"),
- z.literal("Strom aus erneuerbaren Energien"),
- z.literal("Geothermie oder Umweltwärme"),
- z.literal("feste Biomasse"),
- z.literal("flüssige Biomasse"),
- z.literal("gasförmige Biomasse"),
- z.literal("Kälte aus erneuerbaren Energien"),
- z.literal("Abwärme"),
- z.literal("Kraft-Wärme-Kopplung hocheff. KWK-Anlage"),
- z.literal("Kraft-Wärme-Kopplung Brennstoffzellenh."),
- z.literal("Fernwärme oder Fernkälte"),
- ])
- .optional(),
- "Deckungsanteil-1": z.number().optional(),
- "Anteil-der-Pflichterfuellung-1": z.number().optional(),
- "Art-der-Nutzung-erneuerbaren-Energie-2": z
- .union([
- z.literal("solarthermische Anlagen"),
- z.literal("Strom aus erneuerbaren Energien"),
- z.literal("Geothermie oder Umweltwärme"),
- z.literal("feste Biomasse"),
- z.literal("flüssige Biomasse"),
- z.literal("gasförmige Biomasse"),
- z.literal("Kälte aus erneuerbaren Energien"),
- z.literal("Abwärme"),
- z.literal("Kraft-Wärme-Kopplung hocheff. KWK-Anlage"),
- z.literal("Kraft-Wärme-Kopplung Brennstoffzellenh."),
- z.literal("Fernwärme oder Fernkälte"),
- ])
- .optional(),
- "Deckungsanteil-2": z.number().optional(),
- "Anteil-der-Pflichterfuellung-2": z.number().optional(),
- })
-);
-
-export const heizwaermeerzeugerTypEasyEnumSchema = z.union([
- z.literal(
- "Zentrale Biomasse-Heizungsanlage auf Basis von Holzpellets, Hackschnitzeln oder Scheitholz, zentrale Abluftanlage, solarthermische Anlage zur Trinkwarmwasser-Bereitung"
- ),
- z.literal(
- "Zentrale Biomasse-Heizungsanlage auf Basis von Holzpellets, Hackschnitzeln oder Scheitholz, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlage zur Trinkwarmwasser-Bereitung"
- ),
- z.literal(
- "Fernwärme mit zertifiziertem Primärenergiefaktor fp \u2264 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %)"
- ),
- z.literal(
- "Fernwärme mit zertifiziertem Primärenergiefaktor fp \u2264 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %), solarthermische Anlagen"
- ),
- z.literal(
- "Fernwärme mit zertifiziertem Primärenergiefaktor fp \u2264 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %), Photovoltaik-Anlagen"
- ),
- z.literal(
- "Luft-Wasser-Wärmepumpe, dezentrale Trinkwassererwärmung, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %)"
- ),
- z.literal(
- "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %)"
- ),
- z.literal(
- "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %), solarthermische Anlagen"
- ),
- z.literal(
- "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad \u2265 80 %), Photovoltaik-Anlagen"
- ),
- z.literal(
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage"
- ),
- z.literal(
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, solarthermische Anlagen"
- ),
- z.literal(
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, Photovoltaik-Anlagen"
- ),
- z.literal(
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung"
- ),
- z.literal(
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlagen"
- ),
- z.literal(
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, Photovoltaik-Anlagen"
- ),
- z.literal(
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage"
- ),
- z.literal(
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, solarthermische Anlagen"
- ),
- z.literal(
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, Photovoltaik-Anlagen"
- ),
- z.literal(
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung"
- ),
- z.literal(
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlagen"
- ),
- z.literal(
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, Photovoltaik-Anlagen"
- ),
-]);
-
-export const waermeschutzVarianteEnumSchema = z.union([
- z.literal("Wärmeschutz-Variante A"),
- z.literal("Wärmeschutz-Variante B"),
- z.literal("Wärmeschutz-Variante C"),
- z.literal("Wärmeschutz-Variante D"),
-]);
-
-export const wohngebaeudeAnbaugradEnumSchema = z.union([
- z.literal("freistehend"),
- z.literal("einseitig angebaut"),
- z.literal("zweiseitig angebaut"),
-]);
-
-export const luftdichtheit4701EnumSchema = z.union([
- z.literal("undicht"),
- z.literal("normal"),
- z.literal("geprüft"),
-]);
-
-export const luftdichtheit18599EnumSchema = z.union([
- z.literal("Gebäudekategorie I"),
- z.literal("Gebäudekategorie II"),
- z.literal("Gebäudekategorie III"),
- z.literal("Gebäudekategorie IV"),
-]);
-
-export const heizwaermeerzeugerTyp18599EnumSchema = z.union([
- z.literal("Standard-Heizkessel als Umstell-/Wechselbrandkessel"),
- z.literal(
- "Standard-Heizkessel als Feststoffkessel (fossiler und biogener Brennstoff)"
- ),
- z.literal("Standard-Heizkessel als Gas-Spezial-Heizkessel"),
- z.literal(
- "Standard-Heizkessel als Gebläsekessel (fossiler und biogener Brennstoff)"
- ),
- z.literal("Standard-Heizkessel als Gebläsekessel mit Brennertausch"),
- z.literal("Standard-Heizkessel als Pelletkessel"),
- z.literal("Standard-Heizkessel als Hackschnitzelkessel"),
- z.literal("Niedertemperatur-Heizkessel als Gas-Spezial-Heizkessel"),
- z.literal("Niedertemperatur-Heizkessel als Umlaufwasserheizer"),
- z.literal("Niedertemperatur-Heizkessel als Kombikessel KSp"),
- z.literal("Niedertemperatur-Heizkessel als Kombikessel DL"),
- z.literal("Niedertemperatur-Heizkessel als Gebläsekessel"),
- z.literal(
- "Niedertemperatur-Heizkessel als Gebläsekessel mit Brennertausch"
- ),
- z.literal("Brennwertkessel (Pellet)"),
- z.literal("Brennwertkessel (Öl/Gas)"),
- z.literal("Brennwertkessel (Öl, Gas), verbessert"),
- z.literal("Fern-/Nahwärme"),
- z.literal("Dezentrale KWK-Systeme, motorische Systeme"),
- z.literal("Dezentrale KWK-Systeme, Systeme mit Brennstoffzellen"),
- z.literal("Elektrisch angetriebene Luft/Wasser-Heizungswärmepumpe"),
- z.literal("Elektrisch angetriebene Wasser/Wasser-Heizungswärmepumpe"),
- z.literal("Elektrisch angetriebene Sole/Wasser-Heizungswärmepumpe"),
- z.literal("Elektrisch angetriebene Abluft/Wasser-Heizungswärmepumpe"),
- z.literal("Gasmotorisch angetriebene Luft/Wasser-Heizungswärmepumpe"),
- z.literal("Elektrisch angetriebene Außenluft/Raumluft-Heizungswärmepumpe"),
- z.literal("Sorptions-Gaswärmepumpe"),
- z.literal("Gasraumheizer, schornsteingebunden"),
- z.literal("Gasraumheizer, Außenwand-Gerät"),
- z.literal("Dezentrale Einzelfeuerstätten"),
- z.literal("Dezentrale Einzelfeuerstätten, hydraulisch eingebunden"),
- z.literal("Ölbefeuerter Einzelofen mit Verdampfungsbrenner"),
- z.literal("Kachelofen"),
- z.literal("Kohlebefeuerter eisener Ofen"),
- z.literal(
- "Dezentrale Hallenheizung - indirekte Abgasabfuhr - Hellstrahler"
- ),
- z.literal("Dezentrale Hallenheizung - direkte Abgasabfuhr - Hellstrahler"),
- z.literal(
- "Dezentrale Hallenheizung - direkte Abgasabfuhr - Dunkelstrahler"
- ),
- z.literal(
- "Dezentrale Hallenheizung - direkte Abgasabfuhr - Warmlufterzeuger"
- ),
- z.literal("Dezentral elektrisch beheizte Speicherheizung"),
- z.literal("Dezentrale elektrische Direktheizung"),
- z.literal("Zentral elektrisch beheizte Wärmeerzeuger"),
- z.literal(
- "Solaranlagen zur Trinkwassererwärmung und Heizungsunterstützung (Solare Kombianlagen)"
- ),
-]);
-
-export const heizwaermeerzeugerTyp4701EnumSchema = z.union([
- z.literal("Umstell-/Wechselbrandkessel"),
- z.literal("Feststoffkessel"),
- z.literal("Standard-Heizkessel als Gas-Spezial-Heizkessel"),
- z.literal("Standard-Heizkessel als Gebläsekessel"),
- z.literal("Standard-Heizkessel als Gebläsekessel mit Brennertausch"),
- z.literal("Standard-Heizkessel (ab 1995)"),
- z.literal("Niedertemperatur-Heizkessel als Gas-Spezial-Heizkessel"),
- z.literal("Niedertemperatur-Heizkessel als Umlaufwasserheizer"),
- z.literal("Niedertemperatur-Heizkessel als Gebläsekessel"),
- z.literal(
- "Niedertemperatur-Heizkessel als Gebläsekessel mit Brennertausch"
- ),
- z.literal("Niedertemperatur-Heizkessel (ab 1995)"),
- z.literal("Brennwertkessel (bis 1994)"),
- z.literal("Brennwertkessel (ab 1995)"),
- z.literal("Brennwertkessel-verbessert"),
- z.literal("Biomasse-Wärmeerzeuger"),
- z.literal("Fern-/Nahwärme"),
- z.literal("Dezentrale Kraft-Wärme-Kopplung"),
- z.literal("Elektrisch betriebene Luft/Wasser-Heizungswärmepumpe"),
- z.literal("easy_Elektro-Wärmepumpe-Luft-TWW-dezentral"),
- z.literal("Elektrisch betriebene Wasser/Wasser-Heizungswärmepumpe"),
- z.literal("Elektrisch betriebene Sole/Wasser-Heizungswärmepumpe"),
- z.literal("Elektrisch betriebene Abluft/Wasser-Heizungswärmepumpe"),
- z.literal("Gasraumheizer, schornsteingebunden"),
- z.literal("Gasraumheizer, Außenwand-Gerät"),
- z.literal("Ölbefeuerter Einzelofen"),
- z.literal("Kachelofen"),
- z.literal("Kohlebefeuerter eisener Ofen"),
- z.literal("Dezentrale Elektro-Speicherheizung"),
- z.literal("Dezentrales elektrisches Direktheizgerät"),
- z.literal("Zentral elektrisch beheizte Wärmeerzeuger"),
- z.literal("Solare Heizungsunterstützung"),
- z.literal("Sonstiges"),
-]);
-
-export const energietraegerEnumSchema = z.union([
- z.literal("Heizöl"),
- z.literal("Erdgas"),
- z.literal("Flüssiggas"),
- z.literal("Steinkohle"),
- z.literal("Braunkohle"),
- z.literal("Biogas"),
- z.literal("Biogas, gebäudenah erzeugt"),
- z.literal("biogenes Flüssiggas"),
- z.literal("Bioöl"),
- z.literal("Bioöl, gebäudenah erzeugt"),
- z.literal("Holz"),
- z.literal("Strom netzbezogen"),
- z.literal("Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft)"),
- z.literal("Verdrängungsstrommix für KWK"),
- z.literal("Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme)"),
- z.literal("Kälte (Erdkälte, Umgebungskälte)"),
- z.literal("Abwärme aus Prozessen (prod)"),
- z.literal("Abwärme aus Prozessen (out)"),
- z.literal("Wärme aus KWK, gebäudeintegriert oder gebäudenah"),
- z.literal("Wärme aus Verbrennung von Siedlungsabfällen"),
- z.literal(
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger"
- ),
-]);
-
-export const heizkreisauslegungstemperaturEnumSchema = z.union([
- z.literal("90/70"),
- z.literal("70/55"),
- z.literal("55/45"),
- z.literal("45/35"),
- z.literal("35/28"),
- z.literal("Warmluftheizung"),
- z.literal("nur Einzelraum-Heizgeräte"),
-]);
-
-export const trinkwarmwassererzeugerTyp18599EnumSchema = z.union([
- z.literal("Standard-Heizkessel als Umstell-/Wechselbrandkessel"),
- z.literal(
- "Standard-Heizkessel als Feststoffkessel (fossiler und biogener Brennstoff)"
- ),
- z.literal("Standard-Heizkessel als Gas-Spezial-Heizkessel"),
- z.literal(
- "Standard-Heizkessel als Gebläsekessel (fossiler und biogener Brennstoff)"
- ),
- z.literal("Standard-Heizkessel als Gebläsekessel mit Brennertausch"),
- z.literal("Standard-Heizkessel als Pelletkessel"),
- z.literal("Standard-Heizkessel als Hackschnitzelkessel"),
- z.literal("Niedertemperatur-Heizkessel als Gas-Spezial-Heizkessel"),
- z.literal("Niedertemperatur-Heizkessel als Umlaufwasserheizer"),
- z.literal("Niedertemperatur-Heizkessel als Kombikessel KSp"),
- z.literal("Niedertemperatur-Heizkessel als Kombikessel DL"),
- z.literal("Niedertemperatur-Heizkessel als Gebläsekessel"),
- z.literal(
- "Niedertemperatur-Heizkessel als Gebläsekessel mit Brennertausch"
- ),
- z.literal("Brennwertkessel (Pellet)"),
- z.literal("Brennwertkessel (Öl/Gas)"),
- z.literal("Brennwertkessel (Öl, Gas), verbessert"),
- z.literal("Gas-Durchlauferhitzer"),
- z.literal("Fern-/Nahwärme"),
- z.literal("Dezentrale Kraft-Wärme-Kopplung, motorische Systeme"),
- z.literal("Dezentrale Kraft-Wärme-Kopplung, Systeme mit Brennstoffzellen"),
- z.literal("Dezentrale Einzelfeuerstätten, hydraulisch eingebunden"),
- z.literal("Elektrisch angetriebene Kellerluft/Wasser-Wärmepumpe"),
- z.literal("Elektrisch angetriebene Luft/Wasser-Wärmepumpe"),
- z.literal("Elektrisch angetriebene Abluft/Trinkwasser-Wärmepumpe"),
- z.literal("Elektrisch angetriebene Abluft/Zuluft-Trinkwasser-Wärmepumpe"),
- z.literal("Elektrisch angetriebene Kellerluft/Trinkwasser-Wärmepumpe"),
- z.literal("Elektrisch angetriebene Wasser/Wasser-Wärmepumpe"),
- z.literal("Elektrisch angetriebene Sole/Wasser-Wärmepumpe"),
- z.literal("Elektrisch angetriebene Abluft/Wasser-Wärmepumpe"),
- z.literal("Gasmotorisch angetriebene Luft/Wasser-Wärmepumpe"),
- z.literal("Sorptions-Gaswärmepumpe"),
- z.literal("Direkt beheizter Trinkwarmwasserspeicher (Gas)"),
- z.literal("Elektro-Durchlauferhitzer"),
- z.literal("Elektrisch beheizter Trinkwarmwasserspeicher"),
- z.literal("Solaranlagen zur Trinkwassererwärmung"),
-]);
-
-export const trinkwarmwassererzeugerTyp4701EnumSchema = z.union([
- z.literal("über Heizungsanlage beheizter Speicher"),
- z.literal("Elektro-Speicher"),
- z.literal("Direkt beheizter Trinkwarmwasserspeicher (Gas)"),
- z.literal("Elektro-Durchlauferhitzer"),
- z.literal("Solare Trinkwarmwasserbereitung"),
- z.literal("Sonstiges"),
-]);
-
-export const energieeffizienzklasseEnumSchema = z.union([
- z.literal("A+"),
- z.literal("A"),
- z.literal("B"),
- z.literal("C"),
- z.literal("D"),
- z.literal("E"),
- z.literal("F"),
- z.literal("G"),
- z.literal("H"),
-]);
-
-export const zeitraumStromDatenSchema = z.record(z.unknown()).and(
- z.object({
- Startdatum: z.string(),
- Enddatum: z.string(),
- "Energieverbrauch-Strom": z.number(),
- "Energieverbrauchsanteil-elektrisch-erzeugte-Kaelte": z
- .number()
- .optional(),
- })
-);
-
-export const nutzungGebaeudekategorieDatenSchema = z.record(z.unknown()).and(
- z.object({
- Gebaeudekategorie: z.union([
- z.literal("1:Verwaltungsgebäude (allgemein)"),
- z.literal("2:Parlaments- und Gerichtsgebäude"),
- z.literal("3:Ministerien u. Ämter u. Behörden"),
- z.literal("4:Polizeidienstgebäude"),
- z.literal("5:Gebäude für öffentliche Bereitschaftsdienste"),
- z.literal("6:Feuerwehrdienstgebäude"),
- z.literal("7:Bürogebäude"),
- z.literal("8:Bürogebäude - überwiegend Großraumbüros"),
- z.literal("9:Bankgebäude"),
- z.literal("10:Hochschule und Forschung (allgemein)"),
- z.literal("11:Gebäude für Lehre"),
- z.literal("12:Institute für Lehre und Forschung"),
- z.literal("13:Gebäude für Forschung ohne Lehre"),
- z.literal("14:Laborgebäude"),
- z.literal("15:Gesundheitswesen (allgemein)"),
- z.literal("16:Krankenhäuser (ohne Forschung und Lehre)"),
- z.literal(
- "17:Krankenhäuser (ohne Forschung und Lehre) und teilstationäre Versorgung"
- ),
- z.literal(
- "18:Medizinische Einrichtungen für nicht stationäre Versorgung"
- ),
- z.literal("19:Gebäude für Reha, Kur und Genesung"),
- z.literal("20:Bildungseinrichtungen (allgemein)"),
- z.literal("21:Schulen"),
- z.literal("22:Kinderbetreuungseinrichtungen"),
- z.literal("23:Kultureinrichtungen (allgemein)"),
- z.literal("24:Bibliotheken / Archive"),
- z.literal("25:Ausstellungsgebäude"),
- z.literal("26:Veranstaltungsgebäude"),
- z.literal("27:Gemeinschafts- / Gemeindehäuser"),
- z.literal("28:Opern / Theater"),
- z.literal("29:Sporteinrichtungen (allgemein)"),
- z.literal("30:Sporthallen"),
- z.literal("31:Fitnessstudios"),
- z.literal("32:Schwimmhallen"),
- z.literal("33:Gebäude für Sportaußenanlagen"),
- z.literal("34:Verpflegungseinrichtungen (allgemein)"),
- z.literal("35:Beherbergungsstätten (allgemein)"),
- z.literal("36:Hotels / Pensionen"),
- z.literal("37:Jugendherbergen u. Ferienhäuser"),
- z.literal("38:Gaststätten"),
- z.literal("39:Mensen u. Kantinen"),
- z.literal("40:Gewerbliche und industrielle Gebäude (allgemein)"),
- z.literal(
- "41:Gewerbliche und industrielle Gebäude - schwere Arbeit, stehende Tätigkeit"
- ),
- z.literal(
- "42:Gewerbliche und industrielle Gebäude - Mischung aus leichter u. schwerer Arbeit"
- ),
- z.literal(
- "43:Gewerbliche und industrielle Gebäude - leichte Arbeit, überwiegend sitzende Tätigkeit"
- ),
- z.literal("44:Gebäude für Lagerung"),
- z.literal("45:Verkaufsstätten (allgemein)"),
- z.literal("46:Kaufhäuser"),
- z.literal("47:Kaufhauszentren / Einkaufszentren"),
- z.literal("48:Märkte"),
- z.literal(
- "49:Märkte mit sehr hohem Anteil von Kühlung für Lebensmittel"
- ),
- z.literal("50:Läden"),
- z.literal(
- "51:Läden mit sehr hohem Anteil von Kühlung für Lebensmittel"
- ),
- z.literal("52:Fernmeldetechnik"),
- z.literal("53:Sonstiges"),
- ]),
- "Flaechenanteil-Nutzung": z.number(),
- "Vergleichswert-Waerme": z.number(),
- "Vergleichswert-Strom": z.number(),
- })
-);
-
-export const nutzungGebaeudekategorieEnumSchema = z.union([
- z.literal("1:Verwaltungsgebäude (allgemein)"),
- z.literal("2:Parlaments- und Gerichtsgebäude"),
- z.literal("3:Ministerien u. Ämter u. Behörden"),
- z.literal("4:Polizeidienstgebäude"),
- z.literal("5:Gebäude für öffentliche Bereitschaftsdienste"),
- z.literal("6:Feuerwehrdienstgebäude"),
- z.literal("7:Bürogebäude"),
- z.literal("8:Bürogebäude - überwiegend Großraumbüros"),
- z.literal("9:Bankgebäude"),
- z.literal("10:Hochschule und Forschung (allgemein)"),
- z.literal("11:Gebäude für Lehre"),
- z.literal("12:Institute für Lehre und Forschung"),
- z.literal("13:Gebäude für Forschung ohne Lehre"),
- z.literal("14:Laborgebäude"),
- z.literal("15:Gesundheitswesen (allgemein)"),
- z.literal("16:Krankenhäuser (ohne Forschung und Lehre)"),
- z.literal(
- "17:Krankenhäuser (ohne Forschung und Lehre) und teilstationäre Versorgung"
- ),
- z.literal("18:Medizinische Einrichtungen für nicht stationäre Versorgung"),
- z.literal("19:Gebäude für Reha, Kur und Genesung"),
- z.literal("20:Bildungseinrichtungen (allgemein)"),
- z.literal("21:Schulen"),
- z.literal("22:Kinderbetreuungseinrichtungen"),
- z.literal("23:Kultureinrichtungen (allgemein)"),
- z.literal("24:Bibliotheken / Archive"),
- z.literal("25:Ausstellungsgebäude"),
- z.literal("26:Veranstaltungsgebäude"),
- z.literal("27:Gemeinschafts- / Gemeindehäuser"),
- z.literal("28:Opern / Theater"),
- z.literal("29:Sporteinrichtungen (allgemein)"),
- z.literal("30:Sporthallen"),
- z.literal("31:Fitnessstudios"),
- z.literal("32:Schwimmhallen"),
- z.literal("33:Gebäude für Sportaußenanlagen"),
- z.literal("34:Verpflegungseinrichtungen (allgemein)"),
- z.literal("35:Beherbergungsstätten (allgemein)"),
- z.literal("36:Hotels / Pensionen"),
- z.literal("37:Jugendherbergen u. Ferienhäuser"),
- z.literal("38:Gaststätten"),
- z.literal("39:Mensen u. Kantinen"),
- z.literal("40:Gewerbliche und industrielle Gebäude (allgemein)"),
- z.literal(
- "41:Gewerbliche und industrielle Gebäude - schwere Arbeit, stehende Tätigkeit"
- ),
- z.literal(
- "42:Gewerbliche und industrielle Gebäude - Mischung aus leichter u. schwerer Arbeit"
- ),
- z.literal(
- "43:Gewerbliche und industrielle Gebäude - leichte Arbeit, überwiegend sitzende Tätigkeit"
- ),
- z.literal("44:Gebäude für Lagerung"),
- z.literal("45:Verkaufsstätten (allgemein)"),
- z.literal("46:Kaufhäuser"),
- z.literal("47:Kaufhauszentren / Einkaufszentren"),
- z.literal("48:Märkte"),
- z.literal("49:Märkte mit sehr hohem Anteil von Kühlung für Lebensmittel"),
- z.literal("50:Läden"),
- z.literal("51:Läden mit sehr hohem Anteil von Kühlung für Lebensmittel"),
- z.literal("52:Fernmeldetechnik"),
- z.literal("53:Sonstiges"),
-]);
-
-export const automatisierungsgradEnumSchema = z.union([
- z.literal("A"),
- z.literal("B"),
- z.literal("C"),
- z.literal("D"),
-]);
-
-export const artDerNutzungErneuerbarenEnergieEnumSchema = z.union([
- z.literal("solarthermische Anlagen"),
- z.literal("Strom aus erneuerbaren Energien"),
- z.literal("Geothermie oder Umweltwärme"),
- z.literal("feste Biomasse"),
- z.literal("flüssige Biomasse"),
- z.literal("gasförmige Biomasse"),
- z.literal("Kälte aus erneuerbaren Energien"),
- z.literal("Abwärme"),
- z.literal("Kraft-Wärme-Kopplung hocheff. KWK-Anlage"),
- z.literal("Kraft-Wärme-Kopplung Brennstoffzellenh."),
- z.literal("Fernwärme oder Fernkälte"),
-]);
-
-export const automatisierungsgradTechnischesGebaeudemanagementEnumSchema =
- z.union([z.literal("A"), z.literal("B"), z.literal("C"), z.literal("D")]);
-
-export const bauteilDachDatenSchema = z.record(z.unknown()).and(
- z.object({
- Flaechenbezeichnung: z.string(),
- Flaeche: z.number(),
- "U-Wert": z.number(),
- })
-);
-
-export const ausrichtungEnumSchema = z.union([
- z.literal("N"),
- z.literal("S"),
- z.literal("O"),
- z.literal("W"),
- z.literal("NO"),
- z.literal("NW"),
- z.literal("SO"),
- z.literal("SW"),
- z.literal("HOR"),
-]);
-
-export const mediumEnumSchema = z.union([
- z.literal("Aussenluft"),
- z.literal("Raumluft"),
- z.literal("Erdreich"),
-]);
-
-export const kaelteerzeugerTypEnumSchema = z.union([
- z.literal("Kolben- und Scrollverdichteranlagen"),
- z.literal("Schraubenverdichteranlagen"),
- z.literal("Turboverdichteranlagen"),
- z.literal("Sorptionskältemaschine"),
- z.literal("Sonstiges"),
-]);
-
-export const kaelteerzeugerRegelungEnumSchema = z.union([
- z.literal("ein-aus"),
- z.literal("Heißgasbypass oder ähnliches"),
- z.literal("mehrstufig schaltend"),
- z.literal("invertergeregelt"),
-]);
-
-export const rueckkuehlungEnumSchema = z.union([
- z.literal("Luftgekühlt-Kompaktbauweise"),
- z.literal("Luftgekühlt-Splitbauweise"),
- z.literal("Wassergekühlt-Verdunstungskühler"),
- z.literal("Wassergekühlt-Trockenkühler"),
- z.literal("Sonstiges"),
-]);
-
-export const kaelteTemperaturniveauEnumSchema = z.union([
- z.literal("direktverdampfend"),
- z.literal("6/12 oder kälter"),
- z.literal("über 6/12"),
-]);
-
-export const rLTAnlagenDatenSchema = z.record(z.unknown()).and(
- z.object({
- "Funktion-Zuluft": z.union([z.boolean(), z.number()]),
- "Funktion-Abluft": z.union([z.boolean(), z.number()]),
- "WRG-Rueckwaermzahl": z.number().optional(),
- "Funktion-Heizregister": z.union([z.boolean(), z.number()]),
- "Funktion-Kuehlregister": z.union([z.boolean(), z.number()]),
- "Funktion-Dampfbefeuchter": z.union([z.boolean(), z.number()]),
- "Funktion-Wasserbefeuchter": z.union([z.boolean(), z.number()]),
- "Energietraeger-Befeuchtung": z.record(z.unknown()).optional(),
- "Anzahl-baugleiche": z.number(),
- })
-);
-
-export const nutzungEnumSchema = z.union([
- z.literal("1:Einzelbüro"),
- z.literal("2:Gruppenbüro (zwei bis sechs Arbeitsplätze)"),
- z.literal("3:Großraumbüro (ab sieben Arbeitsplätze)"),
- z.literal("4:Besprechung, Sitzung, Seminar"),
- z.literal("5:Schalterhalle"),
- z.literal("6:Einzelhandel / Kaufhaus"),
- z.literal("7:Einzelhandel / Kaufhaus (Leb.-Abteilung mit Kühlprodukten)"),
- z.literal("8:Klassenzimmer (Schule), Gruppenraum (Kindergarten)"),
- z.literal("9:Hörsaal, Auditorium"),
- z.literal("10:Bettenzimmer"),
- z.literal("11:Hotelzimmer"),
- z.literal("12:Kantine"),
- z.literal("13:Restaurant"),
- z.literal("14:Küchen in Nichtwohngebäuden"),
- z.literal("15:Küche - Vorbereitung, Lager"),
- z.literal("16:WC und Sanitärräume in Nichtwohngebäuden"),
- z.literal("17:sonstige Aufenthaltsräume"),
- z.literal("18:Nebenflächen ohne Aufenthaltsräume"),
- z.literal("19:Verkehrsflächen"),
- z.literal("20:Lager, Technik, Archiv"),
- z.literal("21:Rechenzentrum"),
- z.literal("22.1:Gewerbliche und industrielle Hallen - schwere Arbeit"),
- z.literal(
- "22.2:Gewerbliche und industrielle Hallen - mittelschwere Arbeit"
- ),
- z.literal("22.3:Gewerbliche und industrielle Hallen - leichte Arbeit"),
- z.literal("23:Zuschauerbereich"),
- z.literal("24:Theater - Foyer"),
- z.literal("25:Bühne"),
- z.literal("26:Messe / Kongress"),
- z.literal("27:Ausstellungsräume und Museum"),
- z.literal("28:Bibliothek - Lesesaal"),
- z.literal("29:Bibliothek - Freihandbereich"),
- z.literal("30:Bibliothek - Magazin und Depot"),
- z.literal("31:Turnhalle"),
- z.literal("32:Parkhäuser (Büro- und Privatnutzung)"),
- z.literal("33:Parkhäuser (öffentliche Nutzung)"),
- z.literal("34:Saunabereich"),
- z.literal("35:Fitnessraum"),
- z.literal("36:Labor"),
- z.literal("37:Untersuchungs- und Behandlungsräume"),
- z.literal("38:Spezialpflegebereiche"),
- z.literal("39:Flure des allgemeinen Pflegebereichs"),
- z.literal("40:Arztpraxen und Therapeutische Praxen"),
- z.literal("41:Lagerhallen, Logistikhallen"),
- z.literal("42:Wohnen (EFH)"),
- z.literal("43:Wohnen (MFH)"),
- z.literal("44:Anwenderspezifische Nutzung"),
-]);
-
-export const sonnenschutzEnumSchema = z.union([
- z.literal("keine Bewertung des Sonnenschutzes (Zone: Wohnen)"),
- z.literal("Kein Sonnen- und/oder Blendschutz"),
- z.literal("Nur Blendschutz"),
- z.literal("Sonnen- und/oder Blendschutz, automatisch betrieben"),
- z.literal("Nur Blendschutz, lichtlenkend"),
-]);
-
-export const lampenartEnumSchema = z.union([
- z.literal("Glühlampen und Halogenglühlampe"),
- z.literal("Leuchtstofflampen-stabförmig-KVG/VVG"),
- z.literal("Leuchtstofflampen-stabförmig-EVG"),
- z.literal("Leuchtstofflampen-T5-stabförmig-EVG-effiziente Reflektoren"),
- z.literal("Leuchtstofflampen-kompakt-externes VG-alle VG"),
- z.literal("Leuchtstofflampen-kompakt-integriertes EVG"),
- z.literal("Hochdruckentladungslampen-alle VG"),
- z.literal("LED-Leuchten"),
- z.literal("LED-Ersatzlampen (stab- und kolbenförmig)"),
- z.literal("keine Bewertung der Beleuchtung (Zone: Wohnen)"),
- z.literal("Fachplanung"),
-]);
-
-export const beleuchtungsartEnumSchema = z.union([
- z.literal("direkt"),
- z.literal("indirekt"),
- z.literal("direkt-indirekt"),
- z.literal("keine Bewertung der Beleuchtung vorhanden (Zone:Wohnen)"),
- z.literal("Fachplanung"),
-]);
-
-export const endenergieEnergietraegerDatenSchema = z.record(z.unknown()).and(
- z.object({
- Energietraegerbezeichnung: energietraegerEnumSchema,
- Primaerenergiefaktor: z.number(),
- "Endenergiebedarf-Heizung-spezifisch": z.number(),
- "Endenergiebedarf-Kuehlung-Befeuchtung-spezifisch": z.number(),
- "Endenergiebedarf-Trinkwarmwasser-spezifisch": z.number(),
- "Endenergiebedarf-Beleuchtung-spezifisch": z.number(),
- "Endenergiebedarf-Lueftung-spezifisch": z.number(),
- "Endenergiebedarf-Energietraeger-Gesamtgebaeude-spezifisch": z.number(),
- })
-);
-
-export const nWGAushangDatenSchema = z.record(z.unknown()).and(
- z.object({
- "Nutzenergiebedarf-Heizung-Diagramm": z.number(),
- "Nutzenergiebedarf-Trinkwarmwasser-Diagramm": z.number(),
- "Nutzenergiebedarf-Beleuchtung-Diagramm": z.number(),
- "Nutzenergiebedarf-Lueftung-Diagramm": z.number(),
- "Nutzenergiebedarf-Kuehlung-Befeuchtung-Diagramm": z.number(),
- "Endenergiebedarf-Heizung-Diagramm": z.number(),
- "Endenergiebedarf-Trinkwarmwasser-Diagramm": z.number(),
- "Endenergiebedarf-Beleuchtung-Diagramm": z.number(),
- "Endenergiebedarf-Lueftung-Diagramm": z.number(),
- "Endenergiebedarf-Kuehlung-Befeuchtung-Diagramm": z.number(),
- "Primaerenergiebedarf-Heizung-Diagramm": z.number(),
- "Primaerenergiebedarf-Trinkwarmwasser-Diagramm": z.number(),
- "Primaerenergiebedarf-Beleuchtung-Diagramm": z.number(),
- "Primaerenergiebedarf-Lueftung-Diagramm": z.number(),
- "Primaerenergiebedarf-Kuehlung-Befeuchtung-Diagramm": z.number(),
- })
-);
-
-export const modernisierungszeileSchema = z.record(z.unknown()).and(
- z.object({
- Nummer: z.number(),
- "Bauteil-Anlagenteil": z.union([
- z.literal("Dach"),
- z.literal("oberste Geschossdecke"),
- z.literal("Abseiten"),
- z.literal("Gauben"),
- z.literal("Dachfenster"),
- z.literal("Außenwand gg. Außenluft"),
- z.literal("Fenster"),
- z.literal("Rollläden und -kästen"),
- z.literal("Eingangstür"),
- z.literal("Nebentür"),
- z.literal("Kellerdecke"),
- z.literal("Boden gg. Außenluft"),
- z.literal("Außenwand gg. Erdreich"),
- z.literal("Boden gegen Erdreich"),
- z.literal("Luftundichtigkeiten"),
- z.literal("Heizung"),
- z.literal("Wärmeerzeuger"),
- z.literal("Wärmeverteilung / -abgabe"),
- z.literal("Warmwasserbereitung"),
- z.literal("Lüftung"),
- z.literal("Lüftungskonzept"),
- z.literal("Lüftungsanlage"),
- z.literal("Luftverteilung / -abgabe"),
- z.literal("Kühlung"),
- z.literal("Kälteerzeugung"),
- z.literal("Kälteverteilung / -abgabe"),
- z.literal("Be-/Entfeuchtung"),
- z.literal("Beleuchtung"),
- z.literal("Anlagenregelung"),
- z.literal("Gebäudeautomation"),
- z.literal("Sonstiges"),
- ]),
- Massnahmenbeschreibung: z.string(),
- Modernisierungskombination: z.union([
- z.literal("in Zusammenhang mit größerer Modernisierung"),
- z.literal("als Einzelmaßnahme"),
- ]),
- Amortisation: z.string().optional(),
- "spezifische-Kosten": z.string().optional(),
- })
-);
-
-export const modernisierungTeilEnumSchema = z.union([
- z.literal("Dach"),
- z.literal("oberste Geschossdecke"),
- z.literal("Abseiten"),
- z.literal("Gauben"),
- z.literal("Dachfenster"),
- z.literal("Außenwand gg. Außenluft"),
- z.literal("Fenster"),
- z.literal("Rollläden und -kästen"),
- z.literal("Eingangstür"),
- z.literal("Nebentür"),
- z.literal("Kellerdecke"),
- z.literal("Boden gg. Außenluft"),
- z.literal("Außenwand gg. Erdreich"),
- z.literal("Boden gegen Erdreich"),
- z.literal("Luftundichtigkeiten"),
- z.literal("Heizung"),
- z.literal("Wärmeerzeuger"),
- z.literal("Wärmeverteilung / -abgabe"),
- z.literal("Warmwasserbereitung"),
- z.literal("Lüftung"),
- z.literal("Lüftungskonzept"),
- z.literal("Lüftungsanlage"),
- z.literal("Luftverteilung / -abgabe"),
- z.literal("Kühlung"),
- z.literal("Kälteerzeugung"),
- z.literal("Kälteverteilung / -abgabe"),
- z.literal("Be-/Entfeuchtung"),
- z.literal("Beleuchtung"),
- z.literal("Anlagenregelung"),
- z.literal("Gebäudeautomation"),
- z.literal("Sonstiges"),
-]);
-
-export const modernisierungKombiEnumSchema = z.union([
- z.literal("in Zusammenhang mit größerer Modernisierung"),
- z.literal("als Einzelmaßnahme"),
-]);
-
-export const energietraegerDaten1Schema = z.union([
- z.record(z.unknown()).and(
- z.object({
- "Energietraeger-Verbrauch": z.union([
- z.literal("Heizöl in Liter"),
- z.literal("Heizöl in kWh Heizwert"),
- z.literal("Heizöl in kWh Brennwert"),
- z.literal("Erdgas in m3"),
- z.literal("Erdgas in kWh Heizwert"),
- z.literal("Erdgas in kWh Brennwert"),
- z.literal("Flüssiggas in m3 gasförmig"),
- z.literal("Flüssiggas in Liter flüssig"),
- z.literal("Flüssiggas in kg"),
- z.literal("Flüssiggas in kWh Heizwert"),
- z.literal("Steinkohle in kg"),
- z.literal("Steinkohle in kWh Heizwert"),
- z.literal("Braunkohle in kg"),
- z.literal("Braunkohle in kWh Heizwert"),
- z.literal("Biogas in m3"),
- z.literal("Biogas in kWh Heizwert"),
- z.literal("Biogas in kWh Brennwert"),
- z.literal("Biogas, gebäudenah erzeugt in m3"),
- z.literal("Biogas, gebäudenah erzeugt in kWh Heizwert"),
- z.literal("Biogas, gebäudenah erzeugt in kWh Brennwert"),
- z.literal("biogenes Flüssiggas in m3 gasförmig"),
- z.literal("biogenes Flüssiggas in Liter flüssig"),
- z.literal("biogenes Flüssiggas in kg"),
- z.literal("biogenes Flüssiggas in kWh Heizwert"),
- z.literal("Bioöl in Liter"),
- z.literal("Bioöl in kWh Heizwert"),
- z.literal("Bioöl in kWh Brennwert"),
- z.literal("Bioöl, gebäudenah erzeugt in Liter"),
- z.literal("Bioöl, gebäudenah erzeugt in kWh Heizwert"),
- z.literal("Bioöl, gebäudenah erzeugt in kWh Brennwert"),
- z.literal("Holz in Raummeter"),
- z.literal("Holz in kg"),
- z.literal("Holz in kWh Heizwert"),
- z.literal("Holz in kWh Brennwert"),
- z.literal("Holz in Schüttraummeter"),
- z.literal("Strom netzbezogen in kWh"),
- z.literal(
- "Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft) in kWh"
- ),
- z.literal("Verdrängungsstrommix für KWK in kWh"),
- z.literal(
- "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme) in kWh"
- ),
- z.literal("Kälte (Erdkälte, Umgebungskälte) in kWh"),
- z.literal("Abwärme aus Prozessen (prod) in kWh"),
- z.literal("Abwärme aus Prozessen (out) in kWh"),
- z.literal(
- "Wärme aus KWK, gebäudeintegriert oder gebäudenah in kWh"
- ),
- z.literal("Wärme aus Verbrennung von Siedlungsabfällen in kWh"),
- z.literal(
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger in kWh"
- ),
- z.literal(
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger in kWh"
- ),
- z.literal(
- "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger in kWh"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger in kWh"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger in kWh"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger in kWh"
- ),
- ]),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Sonstiger-Energietraeger-Verbrauch": z.string(),
- })
- ),
-]);
-
-export const leerstandszuschlagBekanntmachungDatenSchema = z
- .record(z.unknown())
- .and(
- z.object({
- Leerstandsfaktor: z.number(),
- Startdatum: z.string(),
- Enddatum: z.string(),
- "Leerstandszuschlag-kWh": z.number(),
- Primaerenergiefaktor: z.number(),
- })
- );
-
-export const leerstandszuschlagBekanntmachungDaten1Schema = z
- .record(z.unknown())
- .and(
- z.object({
- Leerstandsfaktor: z.number(),
- Startdatum: z.string(),
- Enddatum: z.string(),
- "Leerstandszuschlag-kWh": z.number(),
- Primaerenergiefaktor: z.number(),
- })
- );
-
-export const bauteilOpakDatenSchema = z.record(z.unknown()).and(
- z.object({
- Flaechenbezeichnung: z.string(),
- Flaeche: z.number(),
- "U-Wert": z.number(),
- Ausrichtung: ausrichtungEnumSchema,
- grenztAn: mediumEnumSchema,
- "Glasdach-Lichtband-Lichtkuppel": z.union([z.boolean(), z.number()]),
- Vorhangfassade: z.union([z.boolean(), z.number()]),
- })
-);
-
-export const bauteilTransparentDatenSchema = z.record(z.unknown()).and(
- z.object({
- Flaechenbezeichnung: z.string(),
- Flaeche: z.number(),
- "U-Wert": z.number(),
- "g-Wert": z.number(),
- Ausrichtung: ausrichtungEnumSchema,
- "Glasdach-Lichtband-Lichtkuppel": z.union([z.boolean(), z.number()]),
- Vorhangfassade: z.union([z.boolean(), z.number()]),
- })
-);
-
-export const heizungsanlageDaten1Schema = z.union([
- z.record(z.unknown()).and(
- z.object({
- "Waermeerzeuger-Bauweise-18599":
- heizwaermeerzeugerTyp18599EnumSchema,
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Waermeerzeuger-Bauweise-4701": heizwaermeerzeugerTyp4701EnumSchema,
- })
- ),
-]);
-
-export const trinkwarmwasseranlageDaten1Schema = z.union([
- z.record(z.unknown()).and(
- z.object({
- "Trinkwarmwassererzeuger-Bauweise-18599":
- trinkwarmwassererzeugerTyp18599EnumSchema,
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Trinkwarmwassererzeuger-Bauweise-4701":
- trinkwarmwassererzeugerTyp4701EnumSchema,
- })
- ),
-]);
-
-export const heizungsanlageDatenSchema = z
- .record(z.unknown())
- .and(
- z.object({
- Nennleistung: z.number(),
- "Waermeerzeuger-Baujahr": z.string(),
- "Anzahl-baugleiche": z.number(),
- Energietraeger: z.union([
- z.literal("Heizöl"),
- z.literal("Erdgas"),
- z.literal("Flüssiggas"),
- z.literal("Steinkohle"),
- z.literal("Braunkohle"),
- z.literal("Biogas"),
- z.literal("Biogas, gebäudenah erzeugt"),
- z.literal("biogenes Flüssiggas"),
- z.literal("Bioöl"),
- z.literal("Bioöl, gebäudenah erzeugt"),
- z.literal("Holz"),
- z.literal("Strom netzbezogen"),
- z.literal(
- "Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft)"
- ),
- z.literal("Verdrängungsstrommix für KWK"),
- z.literal(
- "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme)"
- ),
- z.literal("Kälte (Erdkälte, Umgebungskälte)"),
- z.literal("Abwärme aus Prozessen (prod)"),
- z.literal("Abwärme aus Prozessen (out)"),
- z.literal("Wärme aus KWK, gebäudeintegriert oder gebäudenah"),
- z.literal("Wärme aus Verbrennung von Siedlungsabfällen"),
- z.literal(
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger"
- ),
- ]),
- Primaerenergiefaktor: z.number(),
- Emissionsfaktor: z.number(),
- })
- )
- .and(heizungsanlageDaten1Schema);
-
-export const trinkwarmwasseranlageDatenSchema = z
- .record(z.unknown())
- .and(
- z.object({
- "Trinkwarmwassererzeuger-Baujahr": z.string(),
- "Anzahl-baugleiche": z.number(),
- })
- )
- .and(trinkwarmwasseranlageDaten1Schema);
-
-export const leerstandszuschlagHeizungDaten1Schema = z.union([
- z.record(z.unknown()).and(
- z.object({
- "kein-Leerstand": z.string(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Leerstandszuschlag-nach-Bekanntmachung":
- leerstandszuschlagBekanntmachungDatenSchema,
- Zuschlagsfaktor: z.number(),
- "witterungsbereinigter-Endenergieverbrauchsanteil-fuer-Heizung":
- z.number(),
- })
- ),
-]);
-
-export const leerstandszuschlagWarmwasserDaten1Schema = z
- .record(z.unknown())
- .and(
- z.object({
- "keine-Nutzung-von-WW": z.union([z.boolean(), z.number()]),
- })
- )
- .and(
- z.union([
- z.record(z.unknown()).and(
- z.object({
- "kein-Leerstand": z.string(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Leerstandszuschlag-nach-Bekanntmachung":
- leerstandszuschlagBekanntmachungDaten1Schema,
- })
- ),
- ])
- );
-
-export const leerstandszuschlagBekanntmachungDaten2Schema = z
- .record(z.unknown())
- .and(
- z.object({
- Leerstandsfaktor: z.number(),
- Startdatum: z.string(),
- Enddatum: z.string(),
- "Leerstandszuschlag-kWh": z.number(),
- Primaerenergiefaktor: z.number(),
- })
- );
-
-export const leerstandszuschlagBekanntmachungDaten3Schema = z
- .record(z.unknown())
- .and(
- z.object({
- Leerstandsfaktor: z.number(),
- Startdatum: z.string(),
- Enddatum: z.string(),
- "Leerstandszuschlag-kWh": z.number(),
- Primaerenergiefaktor: z.number(),
- })
- );
-
-export const zonenDatenSchema = z.record(z.unknown()).and(
- z.object({
- Zonenbezeichnung: z.string(),
- Nutzung: z.union([
- z.literal("1:Einzelbüro"),
- z.literal("2:Gruppenbüro (zwei bis sechs Arbeitsplätze)"),
- z.literal("3:Großraumbüro (ab sieben Arbeitsplätze)"),
- z.literal("4:Besprechung, Sitzung, Seminar"),
- z.literal("5:Schalterhalle"),
- z.literal("6:Einzelhandel / Kaufhaus"),
- z.literal(
- "7:Einzelhandel / Kaufhaus (Leb.-Abteilung mit Kühlprodukten)"
- ),
- z.literal("8:Klassenzimmer (Schule), Gruppenraum (Kindergarten)"),
- z.literal("9:Hörsaal, Auditorium"),
- z.literal("10:Bettenzimmer"),
- z.literal("11:Hotelzimmer"),
- z.literal("12:Kantine"),
- z.literal("13:Restaurant"),
- z.literal("14:Küchen in Nichtwohngebäuden"),
- z.literal("15:Küche - Vorbereitung, Lager"),
- z.literal("16:WC und Sanitärräume in Nichtwohngebäuden"),
- z.literal("17:sonstige Aufenthaltsräume"),
- z.literal("18:Nebenflächen ohne Aufenthaltsräume"),
- z.literal("19:Verkehrsflächen"),
- z.literal("20:Lager, Technik, Archiv"),
- z.literal("21:Rechenzentrum"),
- z.literal(
- "22.1:Gewerbliche und industrielle Hallen - schwere Arbeit"
- ),
- z.literal(
- "22.2:Gewerbliche und industrielle Hallen - mittelschwere Arbeit"
- ),
- z.literal(
- "22.3:Gewerbliche und industrielle Hallen - leichte Arbeit"
- ),
- z.literal("23:Zuschauerbereich"),
- z.literal("24:Theater - Foyer"),
- z.literal("25:Bühne"),
- z.literal("26:Messe / Kongress"),
- z.literal("27:Ausstellungsräume und Museum"),
- z.literal("28:Bibliothek - Lesesaal"),
- z.literal("29:Bibliothek - Freihandbereich"),
- z.literal("30:Bibliothek - Magazin und Depot"),
- z.literal("31:Turnhalle"),
- z.literal("32:Parkhäuser (Büro- und Privatnutzung)"),
- z.literal("33:Parkhäuser (öffentliche Nutzung)"),
- z.literal("34:Saunabereich"),
- z.literal("35:Fitnessraum"),
- z.literal("36:Labor"),
- z.literal("37:Untersuchungs- und Behandlungsräume"),
- z.literal("38:Spezialpflegebereiche"),
- z.literal("39:Flure des allgemeinen Pflegebereichs"),
- z.literal("40:Arztpraxen und Therapeutische Praxen"),
- z.literal("41:Lagerhallen, Logistikhallen"),
- z.literal("42:Wohnen (EFH)"),
- z.literal("43:Wohnen (MFH)"),
- z.literal("44:Anwenderspezifische Nutzung"),
- ]),
- Anwenderspezifische_Nutzung_Bezeichnung: z.string().optional(),
- Zonenbesonderheiten: z.string().optional(),
- "Nettogrundflaeche-Zone": z.number(),
- "mittlere-lichte-Raumhoehe": z.number(),
- "Sonnenschutz-System": z.union([
- sonnenschutzEnumSchema,
- z.tuple([sonnenschutzEnumSchema]).rest(sonnenschutzEnumSchema),
- ]),
- "Beleuchtungs-System": z.union([
- lampenartEnumSchema,
- z.tuple([lampenartEnumSchema]).rest(lampenartEnumSchema),
- ]),
- "Beleuchtungs-Verteilung": z.union([
- z.literal("direkt"),
- z.literal("indirekt"),
- z.literal("direkt-indirekt"),
- z.literal(
- "keine Bewertung der Beleuchtung vorhanden (Zone:Wohnen)"
- ),
- z.literal("Fachplanung"),
- ]),
- "Praesenzkontrolle-Kunstlicht": z.union([z.boolean(), z.number()]),
- "Tageslichtabhaengige-Kontrollsysteme": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Endenergiebedarf-Heizung": z.number(),
- "Endenergiebedarf-Kuehlung": z.number(),
- "Endenergiebedarf-Befeuchtung": z.number(),
- "Endenergiebedarf-Trinkwarmwasser": z.number(),
- "Endenergiebedarf-Beleuchtung": z.number(),
- "Endenergiebedarf-Lufttransport": z.number(),
- "Endenergiebedarf-Hilfsenergie": z.number(),
- })
-);
-
-export const kaelteanlageDatenSchema = z.record(z.unknown()).and(
- z.object({
- "Kaelteerzeuger-Bauweise": kaelteerzeugerTypEnumSchema,
- "Kaelteerzeuger-Regelung": z.union([
- z.literal("ein-aus"),
- z.literal("Heißgasbypass oder ähnliches"),
- z.literal("mehrstufig schaltend"),
- z.literal("invertergeregelt"),
- ]),
- "Rueckkuehlung-Bauweise": rueckkuehlungEnumSchema,
- "Kaelteverteilung-Primaerkreis-Temperatur": z.union([
- z.literal("direktverdampfend"),
- z.literal("6/12 oder kälter"),
- z.literal("über 6/12"),
- ]),
- Nennkaelteleistung: z.number(),
- "Kaelteerzeuger-Baujahr": z.string(),
- "Anzahl-baugleiche": z.number(),
- Energietraeger: z.union([
- z.literal("Heizöl"),
- z.literal("Erdgas"),
- z.literal("Flüssiggas"),
- z.literal("Steinkohle"),
- z.literal("Braunkohle"),
- z.literal("Biogas"),
- z.literal("Biogas, gebäudenah erzeugt"),
- z.literal("biogenes Flüssiggas"),
- z.literal("Bioöl"),
- z.literal("Bioöl, gebäudenah erzeugt"),
- z.literal("Holz"),
- z.literal("Strom netzbezogen"),
- z.literal("Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft)"),
- z.literal("Verdrängungsstrommix für KWK"),
- z.literal(
- "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme)"
- ),
- z.literal("Kälte (Erdkälte, Umgebungskälte)"),
- z.literal("Abwärme aus Prozessen (prod)"),
- z.literal("Abwärme aus Prozessen (out)"),
- z.literal("Wärme aus KWK, gebäudeintegriert oder gebäudenah"),
- z.literal("Wärme aus Verbrennung von Siedlungsabfällen"),
- z.literal(
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger"
- ),
- z.literal(
- "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger"
- ),
- ]),
- Primaerenergiefaktor: z.number(),
- })
-);
-
-export const leerstandszuschlagHeizungDaten2Schema = z.union([
- z.record(z.unknown()).and(
- z.object({
- "kein-Leerstand": z.string(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Leerstandszuschlag-nach-Bekanntmachung":
- leerstandszuschlagBekanntmachungDatenSchema,
- Zuschlagsfaktor: z.number(),
- "witterungsbereinigter-Endenergieverbrauchsanteil-fuer-Heizung":
- z.number(),
- })
- ),
-]);
-
-export const leerstandszuschlagWarmwasserDaten3Schema = z.union([
- z.record(z.unknown()).and(
- z.object({
- "kein-Leerstand": z.string(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Leerstandszuschlag-nach-Bekanntmachung":
- leerstandszuschlagBekanntmachungDaten1Schema,
- })
- ),
-]);
-
-export const leerstandszuschlagThermischErzeugteKaelteDaten1Schema = z.union([
- z.record(z.unknown()).and(
- z.object({
- "kein-Leerstand": z.string(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Leerstandszuschlag-nach-Bekanntmachung":
- leerstandszuschlagBekanntmachungDaten2Schema,
- })
- ),
-]);
-
-export const leerstandszuschlagStromDaten1Schema = z.union([
- z.record(z.unknown()).and(
- z.object({
- "kein-Leerstand": z.string(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Leerstandszuschlag-nach-Bekanntmachung":
- leerstandszuschlagBekanntmachungDaten3Schema,
- })
- ),
-]);
-
-export const gebaeudebezDatenSchema = z.record(z.unknown()).and(
- z.object({
- "Projektbezeichnung-Aussteller": z.string().optional(),
- "Gebaeudeadresse-Strasse-Nr": z.string(),
- "Gebaeudeadresse-Postleitzahl": z.string(),
- "Gebaeudeadresse-Ort": z.string(),
- Ausstellervorname: z.string().optional(),
- Ausstellername: z.string().optional(),
- "Aussteller-Bezeichnung": z.string().optional(),
- "Aussteller-Strasse-Nr": z.string().optional(),
- "Aussteller-PLZ": z.string().optional(),
- "Aussteller-Ort": z.string().optional(),
- "Zusatzinfos-beigefuegt": z.union([z.boolean(), z.number()]),
- "Angaben-erhaeltlich": z.string(),
- "Ergaenzdende-Erlaeuterungen": z.string().optional(),
- "NWG-Diagramm-Daten": nWGAushangDatenSchema.optional(),
- })
-);
-
-export const energietraegerDatenSchema = z
- .record(z.unknown())
- .and(
- z.object({
- "Unterer-Heizwert": z.number(),
- Primaerenergiefaktor: z.number(),
- Emissionsfaktor: z.number(),
- Zeitraum: z.union([
- zeitraumDatenSchema,
- z.tuple([zeitraumDatenSchema]).rest(zeitraumDatenSchema),
- ]),
- })
- )
- .and(energietraegerDaten1Schema);
-
-export const leerstandszuschlagHeizungDatenSchema = z.union([
- z.record(z.unknown()).and(
- z.object({
- "kein-Leerstand": z.string(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Leerstandszuschlag-nach-Bekanntmachung":
- leerstandszuschlagBekanntmachungDatenSchema,
- Zuschlagsfaktor: z.number(),
- "witterungsbereinigter-Endenergieverbrauchsanteil-fuer-Heizung":
- z.number(),
- })
- ),
-]);
-
-export const leerstandszuschlagWarmwasserDatenSchema = z
- .record(z.unknown())
- .and(
- z.object({
- "keine-Nutzung-von-WW": z.union([z.boolean(), z.number()]),
- })
- )
- .and(
- z.union([
- z.record(z.unknown()).and(
- z.object({
- "kein-Leerstand": z.string(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Leerstandszuschlag-nach-Bekanntmachung":
- leerstandszuschlagBekanntmachungDaten1Schema,
- })
- ),
- ])
- );
-
-export const warmwasserzuschlagDatenSchema = z.record(z.unknown()).and(
- z.object({
- Startdatum: z.string(),
- Enddatum: z.string(),
- Primaerenergiefaktor: z.number(),
- "Warmwasserzuschlag-kWh": z.number(),
- })
-);
-
-export const kuehlzuschlagDatenSchema = z.record(z.unknown()).and(
- z.object({
- Startdatum: z.string(),
- Enddatum: z.string(),
- "Gebaeudenutzflaeche-gekuehlt": z.number(),
- Primaerenergiefaktor: z.number(),
- "Kuehlzuschlag-kWh": z.number(),
- })
-);
-
-export const wohngebaeudeVerbrauchsDaten1Schema = z.record(z.unknown()).and(
- z.object({
- "Flaechenermittlung-AN-aus-Wohnflaeche": z.union([
- z.boolean(),
- z.number(),
- ]),
- Wohnflaeche: z.number().optional(),
- "Keller-beheizt": z.union([z.boolean(), z.number()]).optional(),
- Energietraeger: z.union([
- energietraegerDatenSchema,
- z.tuple([energietraegerDatenSchema]),
- z.tuple([energietraegerDatenSchema, energietraegerDatenSchema]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- ]),
- "Leerstandszuschlag-Heizung": leerstandszuschlagHeizungDatenSchema,
- "Leerstandszuschlag-Warmwasser":
- leerstandszuschlagWarmwasserDatenSchema,
- Warmwasserzuschlag: warmwasserzuschlagDatenSchema.optional(),
- Kuehlzuschlag: kuehlzuschlagDatenSchema.optional(),
- "Mittlerer-Endenergieverbrauch": z.number(),
- "Mittlerer-Primaerenergieverbrauch": z.number(),
- Energieeffizienzklasse: z.union([
- z.literal("A+"),
- z.literal("A"),
- z.literal("B"),
- z.literal("C"),
- z.literal("D"),
- z.literal("E"),
- z.literal("F"),
- z.literal("G"),
- z.literal("H"),
- ]),
- })
-);
-
-export const wohngebaeudeVerbrauchsDaten2Schema = z.record(z.unknown()).and(
- z.object({
- "Flaechenermittlung-AN-aus-Wohnflaeche": z.union([
- z.boolean(),
- z.number(),
- ]),
- Wohnflaeche: z.number().optional(),
- "Keller-beheizt": z.union([z.boolean(), z.number()]).optional(),
- Energietraeger: z.union([
- energietraegerDatenSchema,
- z.tuple([energietraegerDatenSchema]),
- z.tuple([energietraegerDatenSchema, energietraegerDatenSchema]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- ]),
- "Leerstandszuschlag-Heizung": leerstandszuschlagHeizungDatenSchema,
- "Leerstandszuschlag-Warmwasser":
- leerstandszuschlagWarmwasserDatenSchema,
- Warmwasserzuschlag: warmwasserzuschlagDatenSchema.optional(),
- Kuehlzuschlag: kuehlzuschlagDatenSchema.optional(),
- "Mittlerer-Endenergieverbrauch": z.number(),
- "Mittlerer-Primaerenergieverbrauch": z.number(),
- Energieeffizienzklasse: z.union([
- z.literal("A+"),
- z.literal("A"),
- z.literal("B"),
- z.literal("C"),
- z.literal("D"),
- z.literal("E"),
- z.literal("F"),
- z.literal("G"),
- z.literal("H"),
- ]),
- })
-);
-
-export const leerstandszuschlagThermischErzeugteKaelteDatenSchema = z.union([
- z.record(z.unknown()).and(
- z.object({
- "kein-Leerstand": z.string(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Leerstandszuschlag-nach-Bekanntmachung":
- leerstandszuschlagBekanntmachungDaten2Schema,
- })
- ),
-]);
-
-export const leerstandszuschlagStromDatenSchema = z.union([
- z.record(z.unknown()).and(
- z.object({
- "kein-Leerstand": z.string(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Leerstandszuschlag-nach-Bekanntmachung":
- leerstandszuschlagBekanntmachungDaten3Schema,
- })
- ),
-]);
-
-export const nichtwohngebaeudeVerbrauchsDaten1Schema = z
- .record(z.unknown())
- .and(
- z.object({
- Energietraeger: z.union([
- energietraegerDatenSchema,
- z.tuple([energietraegerDatenSchema]),
- z.tuple([energietraegerDatenSchema, energietraegerDatenSchema]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- ]),
- "Warmwasser-enthalten": z.union([z.boolean(), z.number()]),
- "Kuehlung-enthalten": z.union([z.boolean(), z.number()]),
- "Strom-Daten": z.record(z.unknown()).and(
- z.object({
- "Stromverbrauch-enthaelt-Zusatzheizung": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Stromverbrauch-enthaelt-Warmwasser": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Stromverbrauch-enthaelt-Lueftung": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Stromverbrauch-enthaelt-Beleuchtung": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Stromverbrauch-enthaelt-Kuehlung": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Stromverbrauch-enthaelt-Sonstiges": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Zeitraum-Strom": z.union([
- zeitraumStromDatenSchema,
- z
- .tuple([zeitraumStromDatenSchema])
- .rest(zeitraumStromDatenSchema),
- ]),
- })
- ),
- "Leerstandszuschlag-Heizung": leerstandszuschlagHeizungDaten1Schema,
- "Leerstandszuschlag-Warmwasser":
- leerstandszuschlagWarmwasserDaten1Schema,
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte":
- leerstandszuschlagThermischErzeugteKaelteDatenSchema,
- "Leerstandszuschlag-Strom": leerstandszuschlagStromDatenSchema,
- "Nutzung-Gebaeudekategorie": z.union([
- nutzungGebaeudekategorieDatenSchema,
- z.tuple([nutzungGebaeudekategorieDatenSchema]),
- z.tuple([
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- ]),
- z.tuple([
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- ]),
- z.tuple([
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- ]),
- z.tuple([
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- ]),
- ]),
- "Endenergieverbrauch-Waerme": z.number(),
- "Endenergieverbrauch-Strom": z.number(),
- "Endenergieverbrauch-Waerme-Vergleichswert": z.number(),
- "Endenergieverbrauch-Strom-Vergleichswert": z.number(),
- Primaerenergieverbrauch: z.number(),
- })
- );
-
-export const wohngebaeudeVerbrauchsDatenSchema = z.record(z.unknown()).and(
- z.object({
- "Flaechenermittlung-AN-aus-Wohnflaeche": z.union([
- z.boolean(),
- z.number(),
- ]),
- Wohnflaeche: z.number().optional(),
- "Keller-beheizt": z.union([z.boolean(), z.number()]).optional(),
- Energietraeger: z.union([
- energietraegerDatenSchema,
- z.tuple([energietraegerDatenSchema]),
- z.tuple([energietraegerDatenSchema, energietraegerDatenSchema]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- ]),
- "Leerstandszuschlag-Heizung": leerstandszuschlagHeizungDatenSchema,
- "Leerstandszuschlag-Warmwasser":
- leerstandszuschlagWarmwasserDatenSchema,
- Warmwasserzuschlag: warmwasserzuschlagDatenSchema.optional(),
- Kuehlzuschlag: kuehlzuschlagDatenSchema.optional(),
- "Mittlerer-Endenergieverbrauch": z.number(),
- "Mittlerer-Primaerenergieverbrauch": z.number(),
- Energieeffizienzklasse: z.union([
- z.literal("A+"),
- z.literal("A"),
- z.literal("B"),
- z.literal("C"),
- z.literal("D"),
- z.literal("E"),
- z.literal("F"),
- z.literal("G"),
- z.literal("H"),
- ]),
- })
-);
-
-export const leerstandszuschlagWarmwasserDaten2Schema = z
- .record(z.unknown())
- .and(
- z.object({
- "keine-Nutzung-von-WW": z.union([z.boolean(), z.number()]),
- })
- )
- .and(leerstandszuschlagWarmwasserDaten3Schema);
-
-export const wohngebaeudeBedarfsDaten41084701Schema = z
- .union([
- z.record(z.unknown()).and(
- z.object({
- "Endenergiebedarf-Hoechstwert-Bestand": z.number(),
- "Treibhausgasemissionen-Hoechstwert-Bestand": z.number(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Primaerenergiebedarf-Hoechstwert-Neubau": z.number(),
- "Endenergiebedarf-Hoechstwert-Neubau": z.number(),
- "Treibhausgasemissionen-Hoechstwert-Neubau": z.number(),
- })
- ),
- ])
- .and(
- z.union([
- z.record(z.unknown()).and(
- z.object({
- "nicht-verschaerft-nach-GEG-34": z.union([
- z.boolean(),
- z.number(),
- ]),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "verschaerft-nach-GEG-34": z.number(),
- "Anforderung-nach-GEG-16-unterschritten": z.number(),
- })
- ),
- ])
- )
- .and(
- z.record(z.unknown()).and(
- z.object({
- "Wohngebaeude-Anbaugrad": z.union([
- z.literal("freistehend"),
- z.literal("einseitig angebaut"),
- z.literal("zweiseitig angebaut"),
- ]),
- Bruttovolumen: z.number(),
- "durchschnittliche-Geschosshoehe": z.number(),
- "Bauteil-Opak": z.union([
- bauteilOpakDatenSchema,
- z
- .tuple([bauteilOpakDatenSchema])
- .rest(bauteilOpakDatenSchema),
- ]),
- "Bauteil-Transparent": z
- .union([
- bauteilTransparentDatenSchema,
- z.array(bauteilTransparentDatenSchema),
- ])
- .optional(),
- "Bauteil-Dach": z
- .union([
- bauteilDachDatenSchema,
- z.array(bauteilDachDatenSchema),
- ])
- .optional(),
- Waermebrueckenzuschlag: z.number(),
- Transmissionswaermeverlust: z.number(),
- Luftdichtheit: z.union([
- z.literal("undicht"),
- z.literal("normal"),
- z.literal("geprüft"),
- ]),
- Lueftungswaermeverlust: z.number(),
- "Solare-Waermegewinne": z.number(),
- "Interne-Waermegewinne": z.number(),
- Heizungsanlage: z.union([
- heizungsanlageDatenSchema,
- z
- .tuple([heizungsanlageDatenSchema])
- .rest(heizungsanlageDatenSchema),
- ]),
- "Pufferspeicher-Nenninhalt": z.number(),
- Heizkreisauslegungstemperatur: z.union([
- z.literal("90/70"),
- z.literal("70/55"),
- z.literal("55/45"),
- z.literal("45/35"),
- z.literal("35/28"),
- z.literal("Warmluftheizung"),
- z.literal("nur Einzelraum-Heizgeräte"),
- ]),
- "Heizungsanlage-innerhalb-Huelle": z.union([
- z.boolean(),
- z.number(),
- ]),
- Trinkwarmwasseranlage: z.union([
- trinkwarmwasseranlageDatenSchema,
- z
- .tuple([trinkwarmwasseranlageDatenSchema])
- .rest(trinkwarmwasseranlageDatenSchema),
- ]),
- "Trinkwarmwasserspeicher-Nenninhalt": z.number(),
- "Trinkwarmwasserverteilung-Zirkulation": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Vereinfachte-Datenaufnahme": z.union([
- z.boolean(),
- z.number(),
- ]),
- "spezifischer-Transmissionswaermeverlust-Ist": z.number(),
- "spezifischer-Transmissionswaermeverlust-Hoechstwert": z
- .number()
- .optional(),
- "angerechneter-lokaler-erneuerbarer-Strom": z
- .number()
- .optional(),
- Innovationsklausel: z.union([z.boolean(), z.number()]),
- Quartiersregelung: z.union([z.boolean(), z.number()]),
- "Primaerenergiebedarf-Hoechstwert-Bestand": z.number(),
- "Energietraeger-Liste": z.union([
- endenergieEnergietraegerDatenSchema,
- z.tuple([endenergieEnergietraegerDatenSchema]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- ]),
- "Endenergiebedarf-Waerme-AN": z.number(),
- "Endenergiebedarf-Hilfsenergie-AN": z.number(),
- "Endenergiebedarf-Gesamt": z.number(),
- Primaerenergiebedarf: z.number(),
- Energieeffizienzklasse: z.union([
- z.literal("A+"),
- z.literal("A"),
- z.literal("B"),
- z.literal("C"),
- z.literal("D"),
- z.literal("E"),
- z.literal("F"),
- z.literal("G"),
- z.literal("H"),
- ]),
- "Art-der-Nutzung-erneuerbaren-Energie-1": z
- .union([
- z.literal("solarthermische Anlagen"),
- z.literal("Strom aus erneuerbaren Energien"),
- z.literal("Geothermie oder Umweltwärme"),
- z.literal("feste Biomasse"),
- z.literal("flüssige Biomasse"),
- z.literal("gasförmige Biomasse"),
- z.literal("Kälte aus erneuerbaren Energien"),
- z.literal("Abwärme"),
- z.literal("Kraft-Wärme-Kopplung hocheff. KWK-Anlage"),
- z.literal("Kraft-Wärme-Kopplung Brennstoffzellenh."),
- z.literal("Fernwärme oder Fernkälte"),
- ])
- .optional(),
- "Deckungsanteil-1": z.number().optional(),
- "Anteil-der-Pflichterfuellung-1": z.number().optional(),
- "Art-der-Nutzung-erneuerbaren-Energie-2": z
- .union([
- z.literal("solarthermische Anlagen"),
- z.literal("Strom aus erneuerbaren Energien"),
- z.literal("Geothermie oder Umweltwärme"),
- z.literal("feste Biomasse"),
- z.literal("flüssige Biomasse"),
- z.literal("gasförmige Biomasse"),
- z.literal("Kälte aus erneuerbaren Energien"),
- z.literal("Abwärme"),
- z.literal("Kraft-Wärme-Kopplung hocheff. KWK-Anlage"),
- z.literal("Kraft-Wärme-Kopplung Brennstoffzellenh."),
- z.literal("Fernwärme oder Fernkälte"),
- ])
- .optional(),
- "Deckungsanteil-2": z.number().optional(),
- "Anteil-der-Pflichterfuellung-2": z.number().optional(),
- "verschaerft-nach-GEG-45-eingehalten": z
- .union([z.boolean(), z.number()])
- .optional(),
- "spezifischer-Transmissionswaermeverlust-verschaerft": z
- .number()
- .optional(),
- "Sommerlicher-Waermeschutz": z
- .union([z.boolean(), z.number()])
- .optional(),
- "Treibhausgasemissionen-Zusaetzliche-Verbrauchsdaten": z
- .number()
- .optional(),
- "Zusaetzliche-Verbrauchsdaten":
- wohngebaeudeVerbrauchsDaten1Schema.optional(),
- })
- )
- );
-
-export const wohngebaeudeBedarfsDaten18599Schema = z
- .union([
- z.record(z.unknown()).and(
- z.object({
- "Endenergiebedarf-Hoechstwert-Bestand": z.number(),
- "Treibhausgasemissionen-Hoechstwert-Bestand": z.number(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Primaerenergiebedarf-Hoechstwert-Neubau": z.number(),
- "Endenergiebedarf-Hoechstwert-Neubau": z.number(),
- "Treibhausgasemissionen-Hoechstwert-Neubau": z.number(),
- })
- ),
- ])
- .and(
- z.union([
- z.record(z.unknown()).and(
- z.object({
- "nicht-verschaerft-nach-GEG-34": z.union([
- z.boolean(),
- z.number(),
- ]),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "verschaerft-nach-GEG-34": z.number(),
- "Anforderung-nach-GEG-16-unterschritten": z.number(),
- })
- ),
- ])
- )
- .and(
- z.record(z.unknown()).and(
- z.object({
- "Wohngebaeude-Anbaugrad": z.union([
- z.literal("freistehend"),
- z.literal("einseitig angebaut"),
- z.literal("zweiseitig angebaut"),
- ]),
- Bruttovolumen: z.number(),
- "durchschnittliche-Geschosshoehe": z.number(),
- "Bauteil-Opak": z.union([
- bauteilOpakDatenSchema,
- z
- .tuple([bauteilOpakDatenSchema])
- .rest(bauteilOpakDatenSchema),
- ]),
- "Bauteil-Transparent": z
- .union([
- bauteilTransparentDatenSchema,
- z.array(bauteilTransparentDatenSchema),
- ])
- .optional(),
- "Bauteil-Dach": z
- .union([
- bauteilDachDatenSchema,
- z.array(bauteilDachDatenSchema),
- ])
- .optional(),
- Waermebrueckenzuschlag: z.number(),
- Transmissionswaermesenken: z.number(),
- Luftdichtheit: z.union([
- z.literal("Gebäudekategorie I"),
- z.literal("Gebäudekategorie II"),
- z.literal("Gebäudekategorie III"),
- z.literal("Gebäudekategorie IV"),
- ]),
- Lueftungswaermesenken: z.number(),
- "Waermequellen-durch-solare-Einstrahlung": z.number(),
- "Interne-Waermequellen": z.number(),
- Heizsystem: z.union([
- heizungsanlageDatenSchema,
- z
- .tuple([heizungsanlageDatenSchema])
- .rest(heizungsanlageDatenSchema),
- ]),
- "Pufferspeicher-Nenninhalt": z.number(),
- Auslegungstemperatur: z.union([
- z.literal("90/70"),
- z.literal("70/55"),
- z.literal("55/45"),
- z.literal("45/35"),
- z.literal("35/28"),
- z.literal("Warmluftheizung"),
- z.literal("nur Einzelraum-Heizgeräte"),
- ]),
- "Heizsystem-innerhalb-Huelle": z.union([
- z.boolean(),
- z.number(),
- ]),
- Warmwasserbereitungssystem: z.union([
- trinkwarmwasseranlageDatenSchema,
- z
- .tuple([trinkwarmwasseranlageDatenSchema])
- .rest(trinkwarmwasseranlageDatenSchema),
- ]),
- "Trinkwarmwasserspeicher-Nenninhalt": z.number(),
- "Trinkwarmwasserverteilung-Zirkulation": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Vereinfachte-Datenaufnahme": z.union([
- z.boolean(),
- z.number(),
- ]),
- "spezifischer-Transmissionswaermetransferkoeffizient-Ist":
- z.number(),
- "spezifischer-Transmissionswaermetransferkoeffizient-Hoechstwert":
- z.number().optional(),
- "angerechneter-lokaler-erneuerbarer-Strom": z
- .number()
- .optional(),
- Innovationsklausel: z.union([z.boolean(), z.number()]),
- Quartiersregelung: z.union([z.boolean(), z.number()]),
- "Primaerenergiebedarf-Hoechstwert-Bestand": z.number(),
- "Energietraeger-Liste": z.union([
- endenergieEnergietraegerDatenSchema,
- z.tuple([endenergieEnergietraegerDatenSchema]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- ]),
- "Endenergiebedarf-Waerme-AN": z.number(),
- "Endenergiebedarf-Hilfsenergie-AN": z.number(),
- "Endenergiebedarf-Gesamt": z.number(),
- "Primaerenergiebedarf-AN": z.number(),
- Energieeffizienzklasse: z.union([
- z.literal("A+"),
- z.literal("A"),
- z.literal("B"),
- z.literal("C"),
- z.literal("D"),
- z.literal("E"),
- z.literal("F"),
- z.literal("G"),
- z.literal("H"),
- ]),
- "Art-der-Nutzung-erneuerbaren-Energie-1": z
- .union([
- z.literal("solarthermische Anlagen"),
- z.literal("Strom aus erneuerbaren Energien"),
- z.literal("Geothermie oder Umweltwärme"),
- z.literal("feste Biomasse"),
- z.literal("flüssige Biomasse"),
- z.literal("gasförmige Biomasse"),
- z.literal("Kälte aus erneuerbaren Energien"),
- z.literal("Abwärme"),
- z.literal("Kraft-Wärme-Kopplung hocheff. KWK-Anlage"),
- z.literal("Kraft-Wärme-Kopplung Brennstoffzellenh."),
- z.literal("Fernwärme oder Fernkälte"),
- ])
- .optional(),
- "Deckungsanteil-1": z.number().optional(),
- "Anteil-der-Pflichterfuellung-1": z.number().optional(),
- "Art-der-Nutzung-erneuerbaren-Energie-2": z
- .union([
- z.literal("solarthermische Anlagen"),
- z.literal("Strom aus erneuerbaren Energien"),
- z.literal("Geothermie oder Umweltwärme"),
- z.literal("feste Biomasse"),
- z.literal("flüssige Biomasse"),
- z.literal("gasförmige Biomasse"),
- z.literal("Kälte aus erneuerbaren Energien"),
- z.literal("Abwärme"),
- z.literal("Kraft-Wärme-Kopplung hocheff. KWK-Anlage"),
- z.literal("Kraft-Wärme-Kopplung Brennstoffzellenh."),
- z.literal("Fernwärme oder Fernkälte"),
- ])
- .optional(),
- "Deckungsanteil-2": z.number().optional(),
- "Anteil-der-Pflichterfuellung-2": z.number().optional(),
- "verschaerft-nach-GEG-45-eingehalten": z
- .union([z.boolean(), z.number()])
- .optional(),
- "spezifischer-Transmissionswaermetransferkoeffizient-verschaerft":
- z.number().optional(),
- "Sommerlicher-Waermeschutz": z
- .union([z.boolean(), z.number()])
- .optional(),
- "Treibhausgasemissionen-Zusaetzliche-Verbrauchsdaten": z
- .number()
- .optional(),
- "Zusaetzliche-Verbrauchsdaten":
- wohngebaeudeVerbrauchsDaten2Schema.optional(),
- })
- )
- );
-
-export const nichtwohngebaeudeVerbrauchsDatenSchema = z.record(z.unknown()).and(
- z.object({
- Energietraeger: z.union([
- energietraegerDatenSchema,
- z.tuple([energietraegerDatenSchema]),
- z.tuple([energietraegerDatenSchema, energietraegerDatenSchema]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- z.tuple([
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- energietraegerDatenSchema,
- ]),
- ]),
- "Warmwasser-enthalten": z.union([z.boolean(), z.number()]),
- "Kuehlung-enthalten": z.union([z.boolean(), z.number()]),
- "Strom-Daten": z.record(z.unknown()).and(
- z.object({
- "Stromverbrauch-enthaelt-Zusatzheizung": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Stromverbrauch-enthaelt-Warmwasser": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Stromverbrauch-enthaelt-Lueftung": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Stromverbrauch-enthaelt-Beleuchtung": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Stromverbrauch-enthaelt-Kuehlung": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Stromverbrauch-enthaelt-Sonstiges": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Zeitraum-Strom": z.union([
- zeitraumStromDatenSchema,
- z
- .tuple([zeitraumStromDatenSchema])
- .rest(zeitraumStromDatenSchema),
- ]),
- })
- ),
- "Leerstandszuschlag-Heizung": leerstandszuschlagHeizungDaten1Schema,
- "Leerstandszuschlag-Warmwasser":
- leerstandszuschlagWarmwasserDaten1Schema,
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte":
- leerstandszuschlagThermischErzeugteKaelteDatenSchema,
- "Leerstandszuschlag-Strom": leerstandszuschlagStromDatenSchema,
- "Nutzung-Gebaeudekategorie": z.union([
- nutzungGebaeudekategorieDatenSchema,
- z.tuple([nutzungGebaeudekategorieDatenSchema]),
- z.tuple([
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- ]),
- z.tuple([
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- ]),
- z.tuple([
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- ]),
- z.tuple([
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- nutzungGebaeudekategorieDatenSchema,
- ]),
- ]),
- "Endenergieverbrauch-Waerme": z.number(),
- "Endenergieverbrauch-Strom": z.number(),
- "Endenergieverbrauch-Waerme-Vergleichswert": z.number(),
- "Endenergieverbrauch-Strom-Vergleichswert": z.number(),
- Primaerenergieverbrauch: z.number(),
- })
-);
-
-export const nichtwohngebaeudeBedarfsDatenSchema = z
- .union([
- z.record(z.unknown()).and(
- z.object({
- "Endenergiebedarf-Hoechstwert-Bestand": z.number(),
- "Treibhausgasemissionen-Hoechstwert-Bestand": z.number(),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Primaerenergiebedarf-Hoechstwert-Neubau": z.number(),
- "Endenergiebedarf-Hoechstwert-Neubau": z.number(),
- "Treibhausgasemissionen-Hoechstwert-Neubau": z.number(),
- })
- ),
- ])
- .and(
- z.union([
- z.record(z.unknown()).and(
- z.object({
- "nicht-verschaerft-nach-GEG-34": z.union([
- z.boolean(),
- z.number(),
- ]),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "verschaerft-nach-GEG-34": z.number(),
- "Anforderung-nach-GEG-19-unterschritten": z.number(),
- })
- ),
- ])
- )
- .and(
- z.record(z.unknown()).and(
- z.object({
- Bruttovolumen: z.number(),
- "Bauteil-Opak": z.union([
- bauteilOpakDatenSchema,
- z
- .tuple([bauteilOpakDatenSchema])
- .rest(bauteilOpakDatenSchema),
- ]),
- "Bauteil-Transparent": z
- .union([
- bauteilTransparentDatenSchema,
- z.array(bauteilTransparentDatenSchema),
- ])
- .optional(),
- "Bauteil-Dach": z
- .union([
- bauteilDachDatenSchema,
- z.array(bauteilDachDatenSchema),
- ])
- .optional(),
- Waermebrueckenzuschlag: z.number(),
- "mittlere-Waermedurchgangskoeffizienten": z
- .union([z.boolean(), z.number()])
- .optional(),
- Transmissionswaermesenken: z.number(),
- Luftdichtheit: z.union([
- z.literal("Gebäudekategorie I"),
- z.literal("Gebäudekategorie II"),
- z.literal("Gebäudekategorie III"),
- z.literal("Gebäudekategorie IV"),
- ]),
- Zone: z.union([
- zonenDatenSchema,
- z.tuple([zonenDatenSchema]).rest(zonenDatenSchema),
- ]),
- Heizsystem: z.union([
- heizungsanlageDatenSchema,
- z
- .tuple([heizungsanlageDatenSchema])
- .rest(heizungsanlageDatenSchema),
- ]),
- "Pufferspeicher-Nenninhalt": z.number(),
- Auslegungstemperatur: z.union([
- z.literal("90/70"),
- z.literal("70/55"),
- z.literal("55/45"),
- z.literal("45/35"),
- z.literal("35/28"),
- z.literal("Warmluftheizung"),
- z.literal("nur Einzelraum-Heizgeräte"),
- ]),
- "Heizsystem-innerhalb-Huelle": z.union([
- z.boolean(),
- z.number(),
- ]),
- Warmwasserbereitungssystem: z
- .union([
- trinkwarmwasseranlageDatenSchema,
- z.array(trinkwarmwasseranlageDatenSchema),
- ])
- .optional(),
- "Trinkwarmwasserspeicher-Nenninhalt": z.number(),
- "Trinkwarmwasserverteilung-Zirkulation": z.union([
- z.boolean(),
- z.number(),
- ]),
- Kaelteanlage: z
- .union([
- kaelteanlageDatenSchema,
- z.array(kaelteanlageDatenSchema),
- ])
- .optional(),
- "Deckungsanteil-RLT-Kuehlung": z.number(),
- "Deckungsanteil-Direkte-Raumkuehlung": z.number(),
- "RLT-System": z
- .union([
- rLTAnlagenDatenSchema,
- z.array(rLTAnlagenDatenSchema),
- ])
- .optional(),
- Automatisierungsgrad: z.union([
- z.literal("A"),
- z.literal("B"),
- z.literal("C"),
- z.literal("D"),
- ]),
- "Automatisierungsgrad-Technisches-Gebaeudemanagement": z.union([
- z.literal("A"),
- z.literal("B"),
- z.literal("C"),
- z.literal("D"),
- ]),
- "angerechneter-lokaler-erneuerbarer-Strom": z
- .number()
- .optional(),
- Innovationsklausel: z.union([z.boolean(), z.number()]),
- Quartiersregelung: z.union([z.boolean(), z.number()]),
- "Primaerenergiebedarf-Hoechstwert-Bestand": z.number(),
- "Energietraeger-Liste": z.union([
- endenergieEnergietraegerDatenSchema,
- z.tuple([endenergieEnergietraegerDatenSchema]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- z.tuple([
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- endenergieEnergietraegerDatenSchema,
- ]),
- ]),
- "Endenergiebedarf-Waerme-NGF": z.number(),
- "Endenergiebedarf-Strom-NGF": z.number(),
- "Endenergiebedarf-Gesamt-NGF": z.number(),
- "Primaerenergiebedarf-NGF": z.number(),
- "Ein-Zonen-Modell": z.union([z.boolean(), z.number()]),
- "Vereinfachte-Datenaufnahme": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Vereinfachungen-18599-1-D": z.union([z.boolean(), z.number()]),
- "Art-der-Nutzung-erneuerbaren-Energie-1": z
- .union([
- z.literal("solarthermische Anlagen"),
- z.literal("Strom aus erneuerbaren Energien"),
- z.literal("Geothermie oder Umweltwärme"),
- z.literal("feste Biomasse"),
- z.literal("flüssige Biomasse"),
- z.literal("gasförmige Biomasse"),
- z.literal("Kälte aus erneuerbaren Energien"),
- z.literal("Abwärme"),
- z.literal("Kraft-Wärme-Kopplung hocheff. KWK-Anlage"),
- z.literal("Kraft-Wärme-Kopplung Brennstoffzellenh."),
- z.literal("Fernwärme oder Fernkälte"),
- ])
- .optional(),
- "Deckungsanteil-1": z.number().optional(),
- "Anteil-der-Pflichterfuellung-1": z.number().optional(),
- "Art-der-Nutzung-erneuerbaren-Energie-2": z
- .union([
- z.literal("solarthermische Anlagen"),
- z.literal("Strom aus erneuerbaren Energien"),
- z.literal("Geothermie oder Umweltwärme"),
- z.literal("feste Biomasse"),
- z.literal("flüssige Biomasse"),
- z.literal("gasförmige Biomasse"),
- z.literal("Kälte aus erneuerbaren Energien"),
- z.literal("Abwärme"),
- z.literal("Kraft-Wärme-Kopplung hocheff. KWK-Anlage"),
- z.literal("Kraft-Wärme-Kopplung Brennstoffzellenh."),
- z.literal("Fernwärme oder Fernkälte"),
- ])
- .optional(),
- "Deckungsanteil-2": z.number().optional(),
- "Anteil-der-Pflichterfuellung-2": z.number().optional(),
- "verschaerft-nach-GEG-45-eingehalten": z
- .union([z.boolean(), z.number()])
- .optional(),
- "Anforderung-nach-GEG-52-Renovierung-eingehalten": z
- .union([z.boolean(), z.number()])
- .optional(),
- "Sommerlicher-Waermeschutz": z
- .union([z.boolean(), z.number()])
- .optional(),
- "Treibhausgasemissionen-Zusaetzliche-Verbrauchsdaten": z
- .number()
- .optional(),
- "Zusaetzliche-Verbrauchsdaten":
- nichtwohngebaeudeVerbrauchsDaten1Schema.optional(),
- })
- )
- );
-
-export const wohngebaeudeDaten1Schema = z.union([
- z.record(z.unknown()).and(
- z.object({
- Verbrauchswerte: wohngebaeudeVerbrauchsDatenSchema,
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Bedarfswerte-easy": wohngebaeudeBedarfsDatenEasySchema,
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Bedarfswerte-4108-4701": wohngebaeudeBedarfsDaten41084701Schema,
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Bedarfswerte-18599": wohngebaeudeBedarfsDaten18599Schema,
- })
- ),
-]);
-
-export const nichtwohngebaeudeDaten1Schema = z.union([
- z.record(z.unknown()).and(
- z.object({
- "Verbrauchswerte-NWG": nichtwohngebaeudeVerbrauchsDatenSchema,
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Bedarfswerte-NWG": nichtwohngebaeudeBedarfsDatenSchema,
- })
- ),
-]);
-
-export const wohngebaeudeDatenSchema = z
- .record(z.unknown())
- .and(
- z.object({
- Gebaeudetyp: z.union([
- z.literal("Einfamilienhaus"),
- z.literal("Zweifamilienhaus"),
- z.literal("Mehrfamilienhaus"),
- z.literal("Wohnteil gemischt genutztes Gebäude"),
- z.literal("Beidseitig angebautes Gebäude"),
- z.literal("Einseitig angebautes Gebäude"),
- z.literal("Sonstiges"),
- ]),
- "Anzahl-Wohneinheiten": z.number(),
- Gebaeudenutzflaeche: z.number(),
- })
- )
- .and(wohngebaeudeDaten1Schema);
-
-export const nichtwohngebaeudeDatenSchema = z
- .record(z.unknown())
- .and(
- z.object({
- "Hauptnutzung-Gebaeudekategorie": z.union([
- z.literal("1:Verwaltungsgebäude (allgemein)"),
- z.literal("2:Parlaments- und Gerichtsgebäude"),
- z.literal("3:Ministerien u. Ämter u. Behörden"),
- z.literal("4:Polizeidienstgebäude"),
- z.literal("5:Gebäude für öffentliche Bereitschaftsdienste"),
- z.literal("6:Feuerwehrdienstgebäude"),
- z.literal("7:Bürogebäude"),
- z.literal("8:Bürogebäude - überwiegend Großraumbüros"),
- z.literal("9:Bankgebäude"),
- z.literal("10:Hochschule und Forschung (allgemein)"),
- z.literal("11:Gebäude für Lehre"),
- z.literal("12:Institute für Lehre und Forschung"),
- z.literal("13:Gebäude für Forschung ohne Lehre"),
- z.literal("14:Laborgebäude"),
- z.literal("15:Gesundheitswesen (allgemein)"),
- z.literal("16:Krankenhäuser (ohne Forschung und Lehre)"),
- z.literal(
- "17:Krankenhäuser (ohne Forschung und Lehre) und teilstationäre Versorgung"
- ),
- z.literal(
- "18:Medizinische Einrichtungen für nicht stationäre Versorgung"
- ),
- z.literal("19:Gebäude für Reha, Kur und Genesung"),
- z.literal("20:Bildungseinrichtungen (allgemein)"),
- z.literal("21:Schulen"),
- z.literal("22:Kinderbetreuungseinrichtungen"),
- z.literal("23:Kultureinrichtungen (allgemein)"),
- z.literal("24:Bibliotheken / Archive"),
- z.literal("25:Ausstellungsgebäude"),
- z.literal("26:Veranstaltungsgebäude"),
- z.literal("27:Gemeinschafts- / Gemeindehäuser"),
- z.literal("28:Opern / Theater"),
- z.literal("29:Sporteinrichtungen (allgemein)"),
- z.literal("30:Sporthallen"),
- z.literal("31:Fitnessstudios"),
- z.literal("32:Schwimmhallen"),
- z.literal("33:Gebäude für Sportaußenanlagen"),
- z.literal("34:Verpflegungseinrichtungen (allgemein)"),
- z.literal("35:Beherbergungsstätten (allgemein)"),
- z.literal("36:Hotels / Pensionen"),
- z.literal("37:Jugendherbergen u. Ferienhäuser"),
- z.literal("38:Gaststätten"),
- z.literal("39:Mensen u. Kantinen"),
- z.literal(
- "40:Gewerbliche und industrielle Gebäude (allgemein)"
- ),
- z.literal(
- "41:Gewerbliche und industrielle Gebäude - schwere Arbeit, stehende Tätigkeit"
- ),
- z.literal(
- "42:Gewerbliche und industrielle Gebäude - Mischung aus leichter u. schwerer Arbeit"
- ),
- z.literal(
- "43:Gewerbliche und industrielle Gebäude - leichte Arbeit, überwiegend sitzende Tätigkeit"
- ),
- z.literal("44:Gebäude für Lagerung"),
- z.literal("45:Verkaufsstätten (allgemein)"),
- z.literal("46:Kaufhäuser"),
- z.literal("47:Kaufhauszentren / Einkaufszentren"),
- z.literal("48:Märkte"),
- z.literal(
- "49:Märkte mit sehr hohem Anteil von Kühlung für Lebensmittel"
- ),
- z.literal("50:Läden"),
- z.literal(
- "51:Läden mit sehr hohem Anteil von Kühlung für Lebensmittel"
- ),
- z.literal("52:Fernmeldetechnik"),
- z.literal("53:Sonstiges"),
- ]),
- "Hauptnutzung-Gebaeudekategorie-Sonstiges-Beschreibung": z
- .string()
- .optional(),
- Nettogrundflaeche: z.number(),
- })
- )
- .and(nichtwohngebaeudeDaten1Schema);
-
-export const anonymeGEGDatenSchema = z
- .union([
- z.record(z.unknown()).and(
- z.object({
- "Keine-inspektionspflichtige-Anlage": z.union([
- z.boolean(),
- z.number(),
- ]),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Anzahl-Klimanlagen": z.number(),
- "Anlage-groesser-12kW-ohneGA": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Anlage-groesser-12kW-mitGA": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Anlage-groesser-70kW": z.union([z.boolean(), z.number()]),
- "Faelligkeitsdatum-Inspektion": z.string(),
- })
- ),
- ])
- .and(
- z.union([
- z.record(z.unknown()).and(
- z.object({
- Wohngebaeude: wohngebaeudeDatenSchema,
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- Nichtwohngebaeude: nichtwohngebaeudeDatenSchema,
- })
- ),
- ])
- )
- .and(
- z.union([
- z.record(z.unknown()).and(
- z.object({
- "Keine-Modernisierung-Erweiterung-Vorhaben": z.union([
- z.boolean(),
- z.number(),
- ]),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Modernisierung-Erweiterung-anzeigepflichtiges-Vorhaben":
- z.union([z.boolean(), z.number()]),
- })
- ),
- z.record(z.unknown()).and(
- z.object({
- "Modernisierung-Erweiterung-genehmigungspflichtiges-Vorhaben":
- z.union([z.boolean(), z.number()]),
- })
- ),
- ])
- )
- .and(
- z.record(z.unknown()).and(
- z.object({
- Registriernummer: z.string(),
- Ausstellungsdatum: z.string(),
- Bundesland: z.union([
- z.literal("Baden-Württemberg"),
- z.literal("Bayern"),
- z.literal("Berlin"),
- z.literal("Brandenburg"),
- z.literal("Bremen"),
- z.literal("Hamburg"),
- z.literal("Hessen"),
- z.literal("Mecklenburg-Vorpommern"),
- z.literal("Niedersachsen"),
- z.literal("Nordrhein-Westfalen"),
- z.literal("Rheinland-Pfalz"),
- z.literal("Saarland"),
- z.literal("Sachsen"),
- z.literal("Sachsen-Anhalt"),
- z.literal("Schleswig-Holstein"),
- z.literal("Thüringen"),
- ]),
- Postleitzahl: z.string(),
- Gebaeudeteil: z.union([
- z.literal("Ganzes Gebäude"),
- z.literal("Teil des Wohngebäudes"),
- z.literal("Teil des Nichtwohngebäudes"),
- ]),
- "Baujahr-Gebaeude": z.string(),
- "Altersklasse-Gebaeude": z.union([
- z.literal("bis 1918"),
- z.literal("1919...1948"),
- z.literal("1949...1957"),
- z.literal("1958...1968"),
- z.literal("1969...1978"),
- z.literal("1979...1983"),
- z.literal("1984...1994"),
- z.literal("1995...2002"),
- z.literal("2003...2009"),
- z.literal("2010...2016"),
- z.literal("ab 2017"),
- ]),
- "Baujahr-Waermeerzeuger": z.string(),
- "Altersklasse-Waermeerzeuger": z.union([
- z.literal("bis 1918"),
- z.literal("1919...1948"),
- z.literal("1949...1957"),
- z.literal("1958...1968"),
- z.literal("1969...1978"),
- z.literal("1979...1983"),
- z.literal("1984...1994"),
- z.literal("1995...2002"),
- z.literal("2003...2009"),
- z.literal("2010...2016"),
- z.literal("ab 2017"),
- ]),
- "wesentliche-Energietraeger-Heizung": z.string(),
- "wesentliche-Energietraeger-Warmwasser": z.string(),
- "Erneuerbare-Art": z.string(),
- "Erneuerbare-Verwendung": z.string(),
- "Lueftungsart-Fensterlueftung": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Lueftungsart-Schachtlueftung": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Lueftungsart-Anlage-o-WRG": z.union([z.boolean(), z.number()]),
- "Lueftungsart-Anlage-m-WRG": z.union([z.boolean(), z.number()]),
- "Kuehlungsart-passive-Kuehlung": z.union([
- z.boolean(),
- z.number(),
- ]),
- "Kuehlungsart-Strom": z.union([z.boolean(), z.number()]),
- "Kuehlungsart-Waerme": z.union([z.boolean(), z.number()]),
- "Kuehlungsart-gelieferte-Kaelte": z.union([
- z.boolean(),
- z.number(),
- ]),
- Treibhausgasemissionen: z.number(),
- Ausstellungsanlass: z.union([
- z.literal("Neubau"),
- z.literal("Modernisierung-Erweiterung"),
- z.literal("Vermietung-Verkauf"),
- z.literal("Aushangpflicht"),
- z.literal("Sonstiges"),
- ]),
- "Datenerhebung-Aussteller": z.union([z.boolean(), z.number()]),
- "Datenerhebung-Eigentuemer": z.union([z.boolean(), z.number()]),
- "Empfehlungen-moeglich": z.union([z.boolean(), z.number()]),
- Modernisierungsempfehlungen: z
- .union([
- modernisierungszeileSchema,
- z.array(modernisierungszeileSchema),
- ])
- .optional(),
- "Softwarehersteller-Programm-Version": z.string().optional(),
- "@Gesetzesgrundlage": gesetzesgrundlageEnumSchema,
- "@Rechtsstand": z.string(),
- "@Rechtsstand-Grund": rechtsstandGrundEnumSchema,
- })
- )
- );
-
-export const gEGDatenSchema = z.record(z.unknown()).and(
- z.object({
- "Gebaeudebezogene-Daten": gebaeudebezDatenSchema.optional(),
- "Energieausweis-Daten": anonymeGEGDatenSchema,
- })
-);
-
-export const kontrollsystemGEG2023V10Schema = z.record(z.unknown()).and(
- z.record(z.unknown()).and(
- z.object({
- "GEG-Energieausweis": gEGDatenSchema.optional(),
- "GEG-Daten": gEGDatenSchema.optional(),
- "Gebaeudebez-Daten": gebaeudebezDatenSchema.optional(),
- "anonyme-GEG-Daten": anonymeGEGDatenSchema.optional(),
- "Gesetzesgrundlage-enum": gesetzesgrundlageEnumSchema.optional(),
- "Rechtsstand-Grund-enum": rechtsstandGrundEnumSchema.optional(),
- "Bundesland-enum": bundeslandEnumSchema.optional(),
- "Gebaeudeteil-enum": gebaeudeteilEnumSchema.optional(),
- "Altersklasse-enum": altersklasseEnumSchema.optional(),
- "Anlass-enum": anlassEnumSchema.optional(),
- "Wohngebaeude-Daten": wohngebaeudeDatenSchema.optional(),
- "Gebaeudetyp-enum": gebaeudetypEnumSchema.optional(),
- "Wohngebaeude-Verbrauchs-Daten":
- wohngebaeudeVerbrauchsDatenSchema.optional(),
- "Energietraeger-Daten": energietraegerDatenSchema.optional(),
- "Energietraeger-Verbrauch-enum":
- energietraegerVerbrauchEnumSchema.optional(),
- "Zeitraum-Daten": zeitraumDatenSchema.optional(),
- "Warmwasserzuschlag-Daten":
- warmwasserzuschlagDaten1Schema.optional(),
- "Kuehlzuschlag-Daten": kuehlzuschlagDaten1Schema.optional(),
- "Leerstandszuschlag-Heizung-Daten":
- leerstandszuschlagHeizungDaten2Schema.optional(),
- "Leerstandszuschlag-Warmwasser-Daten":
- leerstandszuschlagWarmwasserDaten2Schema.optional(),
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte-Daten":
- leerstandszuschlagThermischErzeugteKaelteDaten1Schema.optional(),
- "Leerstandszuschlag-Strom-Daten":
- leerstandszuschlagStromDaten1Schema.optional(),
- "Leerstandszuschlag-Bekanntmachung-Daten":
- leerstandszuschlagBekanntmachungDaten4Schema.optional(),
- "Warmwasserwertermittlung-enum":
- warmwasserwertermittlungEnumSchema.optional(),
- "Wohngebaeude-Bedarfs-Daten-easy":
- wohngebaeudeBedarfsDatenEasySchema.optional(),
- "Heizwaermeerzeuger-Typ-easy-enum":
- heizwaermeerzeugerTypEasyEnumSchema.optional(),
- "Waermeschutz-Variante-enum":
- waermeschutzVarianteEnumSchema.optional(),
- "Wohngebaeude-Bedarfs-Daten-4108-4701":
- wohngebaeudeBedarfsDaten41084701Schema.optional(),
- "Wohngebaeude-Anbaugrad-enum":
- wohngebaeudeAnbaugradEnumSchema.optional(),
- "Luftdichtheit-4701-enum": luftdichtheit4701EnumSchema.optional(),
- "Luftdichtheit-18599-enum": luftdichtheit18599EnumSchema.optional(),
- "Heizungsanlage-Daten": heizungsanlageDatenSchema.optional(),
- "Heizwaermeerzeuger-Typ-18599-enum":
- heizwaermeerzeugerTyp18599EnumSchema.optional(),
- "Heizwaermeerzeuger-Typ-4701-enum":
- heizwaermeerzeugerTyp4701EnumSchema.optional(),
- "Energietraeger-enum": energietraegerEnumSchema.optional(),
- "Heizkreisauslegungstemperatur-enum":
- heizkreisauslegungstemperaturEnumSchema.optional(),
- "Trinkwarmwasseranlage-Daten":
- trinkwarmwasseranlageDatenSchema.optional(),
- "Trinkwarmwassererzeuger-Typ-18599-enum":
- trinkwarmwassererzeugerTyp18599EnumSchema.optional(),
- "Trinkwarmwassererzeuger-Typ-4701-enum":
- trinkwarmwassererzeugerTyp4701EnumSchema.optional(),
- "Wohngebaeude-Bedarfs-Daten-18599":
- wohngebaeudeBedarfsDaten18599Schema.optional(),
- "Nichtwohngebaeude-Daten": nichtwohngebaeudeDatenSchema.optional(),
- "Energieeffizienzklasse-enum":
- energieeffizienzklasseEnumSchema.optional(),
- "Nichtwohngebaeude-Verbrauchs-Daten":
- nichtwohngebaeudeVerbrauchsDatenSchema.optional(),
- "Zeitraum-Strom-Daten": zeitraumStromDatenSchema.optional(),
- "Nutzung-Gebaeudekategorie-Daten":
- nutzungGebaeudekategorieDatenSchema.optional(),
- "Nutzung-Gebaeudekategorie-enum":
- nutzungGebaeudekategorieEnumSchema.optional(),
- "Nichtwohngebaeude-Bedarfs-Daten":
- nichtwohngebaeudeBedarfsDatenSchema.optional(),
- "Automatisierungsgrad-enum":
- automatisierungsgradEnumSchema.optional(),
- "Art-der-Nutzung-erneuerbaren-Energie-enum":
- artDerNutzungErneuerbarenEnergieEnumSchema.optional(),
- "Automatisierungsgrad-Technisches-Gebaeudemanagement-enum":
- automatisierungsgradTechnischesGebaeudemanagementEnumSchema.optional(),
- "Bauteil-Opak-Daten": bauteilOpakDatenSchema.optional(),
- "Bauteil-Transparent-Daten":
- bauteilTransparentDatenSchema.optional(),
- "Bauteil-Dach-Daten": bauteilDachDatenSchema.optional(),
- "Ausrichtung-enum": ausrichtungEnumSchema.optional(),
- "Medium-enum": mediumEnumSchema.optional(),
- "Kaelteanlage-Daten": kaelteanlageDatenSchema.optional(),
- "Kaelteerzeuger-Typ-enum": kaelteerzeugerTypEnumSchema.optional(),
- "Kaelteerzeuger-Regelung-enum":
- kaelteerzeugerRegelungEnumSchema.optional(),
- "Rueckkuehlung-enum": rueckkuehlungEnumSchema.optional(),
- "Kaelte-Temperaturniveau-enum":
- kaelteTemperaturniveauEnumSchema.optional(),
- "RLT-Anlagen-Daten": rLTAnlagenDatenSchema.optional(),
- "Zonen-Daten": zonenDatenSchema.optional(),
- "Nutzung-enum": nutzungEnumSchema.optional(),
- "Sonnenschutz-enum": sonnenschutzEnumSchema.optional(),
- "Lampenart-enum": lampenartEnumSchema.optional(),
- "Beleuchtungsart-enum": beleuchtungsartEnumSchema.optional(),
- "Endenergie-Energietraeger-Daten":
- endenergieEnergietraegerDatenSchema.optional(),
- "NWG-Aushang-Daten": nWGAushangDatenSchema.optional(),
- Modernisierungszeile: modernisierungszeileSchema.optional(),
- "Modernisierung-Teil-enum": modernisierungTeilEnumSchema.optional(),
- "Modernisierung-Kombi-enum":
- modernisierungKombiEnumSchema.optional(),
- })
- )
-);
diff --git a/Kontrollsystem-GEG-2023_V1.schema.json b/Kontrollsystem-GEG-2023_V1.schema.json
deleted file mode 100644
index 0d7306f2..00000000
--- a/Kontrollsystem-GEG-2023_V1.schema.json
+++ /dev/null
@@ -1,5356 +0,0 @@
-{
- "$id": "hello_world.json",
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "This JSON Schema file was generated from hello_world.xsd on Wed Sep 25 2024 17:26:46 GMT+0930 (Australian Central Standard Time). For more information please see http://www.xsd2jsonschema.org",
- "description": "Ausgabestand: 21.10.2022",
- "properties": {
- "GEG-Energieausweis": {
- "$ref": "#/definitions/GEG-Daten"
- },
- "GEG-Daten": {
- "$ref": "#/definitions/GEG-Daten"
- },
- "Gebaeudebez-Daten": {
- "$ref": "#/definitions/Gebaeudebez-Daten"
- },
- "anonyme-GEG-Daten": {
- "$ref": "#/definitions/anonyme-GEG-Daten"
- },
- "Gesetzesgrundlage-enum": {
- "$ref": "#/definitions/Gesetzesgrundlage-enum"
- },
- "Rechtsstand-Grund-enum": {
- "$ref": "#/definitions/Rechtsstand-Grund-enum"
- },
- "Bundesland-enum": {
- "$ref": "#/definitions/Bundesland-enum"
- },
- "Gebaeudeteil-enum": {
- "$ref": "#/definitions/Gebaeudeteil-enum"
- },
- "Altersklasse-enum": {
- "$ref": "#/definitions/Altersklasse-enum"
- },
- "Anlass-enum": {
- "$ref": "#/definitions/Anlass-enum"
- },
- "Wohngebaeude-Daten": {
- "$ref": "#/definitions/Wohngebaeude-Daten"
- },
- "Gebaeudetyp-enum": {
- "$ref": "#/definitions/Gebaeudetyp-enum"
- },
- "Wohngebaeude-Verbrauchs-Daten": {
- "$ref": "#/definitions/Wohngebaeude-Verbrauchs-Daten"
- },
- "Energietraeger-Daten": {
- "$ref": "#/definitions/Energietraeger-Daten"
- },
- "Energietraeger-Verbrauch-enum": {
- "$ref": "#/definitions/Energietraeger-Verbrauch-enum"
- },
- "Zeitraum-Daten": {
- "$ref": "#/definitions/Zeitraum-Daten"
- },
- "Warmwasserzuschlag-Daten": {
- "$ref": "#/definitions/Warmwasserzuschlag-Daten"
- },
- "Kuehlzuschlag-Daten": {
- "$ref": "#/definitions/Kuehlzuschlag-Daten"
- },
- "Leerstandszuschlag-Heizung-Daten": {
- "$ref": "#/definitions/Leerstandszuschlag-Heizung-Daten"
- },
- "Leerstandszuschlag-Warmwasser-Daten": {
- "$ref": "#/definitions/Leerstandszuschlag-Warmwasser-Daten"
- },
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte-Daten": {
- "$ref": "#/definitions/Leerstandszuschlag-thermisch-erzeugte-Kaelte-Daten"
- },
- "Leerstandszuschlag-Strom-Daten": {
- "$ref": "#/definitions/Leerstandszuschlag-Strom-Daten"
- },
- "Leerstandszuschlag-Bekanntmachung-Daten": {
- "$ref": "#/definitions/Leerstandszuschlag-Bekanntmachung-Daten"
- },
- "Warmwasserwertermittlung-enum": {
- "$ref": "#/definitions/Warmwasserwertermittlung-enum"
- },
- "Wohngebaeude-Bedarfs-Daten-easy": {
- "$ref": "#/definitions/Wohngebaeude-Bedarfs-Daten-easy"
- },
- "Heizwaermeerzeuger-Typ-easy-enum": {
- "$ref": "#/definitions/Heizwaermeerzeuger-Typ-easy-enum"
- },
- "Waermeschutz-Variante-enum": {
- "$ref": "#/definitions/Waermeschutz-Variante-enum"
- },
- "Wohngebaeude-Bedarfs-Daten-4108-4701": {
- "$ref": "#/definitions/Wohngebaeude-Bedarfs-Daten-4108-4701"
- },
- "Wohngebaeude-Anbaugrad-enum": {
- "$ref": "#/definitions/Wohngebaeude-Anbaugrad-enum"
- },
- "Luftdichtheit-4701-enum": {
- "$ref": "#/definitions/Luftdichtheit-4701-enum"
- },
- "Luftdichtheit-18599-enum": {
- "$ref": "#/definitions/Luftdichtheit-18599-enum"
- },
- "Heizungsanlage-Daten": {
- "$ref": "#/definitions/Heizungsanlage-Daten"
- },
- "Heizwaermeerzeuger-Typ-18599-enum": {
- "$ref": "#/definitions/Heizwaermeerzeuger-Typ-18599-enum"
- },
- "Heizwaermeerzeuger-Typ-4701-enum": {
- "$ref": "#/definitions/Heizwaermeerzeuger-Typ-4701-enum"
- },
- "Energietraeger-enum": {
- "$ref": "#/definitions/Energietraeger-enum"
- },
- "Heizkreisauslegungstemperatur-enum": {
- "$ref": "#/definitions/Heizkreisauslegungstemperatur-enum"
- },
- "Trinkwarmwasseranlage-Daten": {
- "$ref": "#/definitions/Trinkwarmwasseranlage-Daten"
- },
- "Trinkwarmwassererzeuger-Typ-18599-enum": {
- "$ref": "#/definitions/Trinkwarmwassererzeuger-Typ-18599-enum"
- },
- "Trinkwarmwassererzeuger-Typ-4701-enum": {
- "$ref": "#/definitions/Trinkwarmwassererzeuger-Typ-4701-enum"
- },
- "Wohngebaeude-Bedarfs-Daten-18599": {
- "$ref": "#/definitions/Wohngebaeude-Bedarfs-Daten-18599"
- },
- "Nichtwohngebaeude-Daten": {
- "$ref": "#/definitions/Nichtwohngebaeude-Daten"
- },
- "Energieeffizienzklasse-enum": {
- "$ref": "#/definitions/Energieeffizienzklasse-enum"
- },
- "Nichtwohngebaeude-Verbrauchs-Daten": {
- "$ref": "#/definitions/Nichtwohngebaeude-Verbrauchs-Daten"
- },
- "Zeitraum-Strom-Daten": {
- "$ref": "#/definitions/Zeitraum-Strom-Daten"
- },
- "Nutzung-Gebaeudekategorie-Daten": {
- "$ref": "#/definitions/Nutzung-Gebaeudekategorie-Daten"
- },
- "Nutzung-Gebaeudekategorie-enum": {
- "$ref": "#/definitions/Nutzung-Gebaeudekategorie-enum"
- },
- "Nichtwohngebaeude-Bedarfs-Daten": {
- "$ref": "#/definitions/Nichtwohngebaeude-Bedarfs-Daten"
- },
- "Automatisierungsgrad-enum": {
- "$ref": "#/definitions/Automatisierungsgrad-enum"
- },
- "Art-der-Nutzung-erneuerbaren-Energie-enum": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum"
- },
- "Automatisierungsgrad-Technisches-Gebaeudemanagement-enum": {
- "$ref": "#/definitions/Automatisierungsgrad-Technisches-Gebaeudemanagement-enum"
- },
- "Bauteil-Opak-Daten": {
- "$ref": "#/definitions/Bauteil-Opak-Daten"
- },
- "Bauteil-Transparent-Daten": {
- "$ref": "#/definitions/Bauteil-Transparent-Daten"
- },
- "Bauteil-Dach-Daten": {
- "$ref": "#/definitions/Bauteil-Dach-Daten"
- },
- "Ausrichtung-enum": {
- "$ref": "#/definitions/Ausrichtung-enum"
- },
- "Medium-enum": {
- "$ref": "#/definitions/Medium-enum"
- },
- "Kaelteanlage-Daten": {
- "$ref": "#/definitions/Kaelteanlage-Daten"
- },
- "Kaelteerzeuger-Typ-enum": {
- "$ref": "#/definitions/Kaelteerzeuger-Typ-enum"
- },
- "Kaelteerzeuger-Regelung-enum": {
- "$ref": "#/definitions/Kaelteerzeuger-Regelung-enum"
- },
- "Rueckkuehlung-enum": {
- "$ref": "#/definitions/Rueckkuehlung-enum"
- },
- "Kaelte-Temperaturniveau-enum": {
- "$ref": "#/definitions/Kaelte-Temperaturniveau-enum"
- },
- "RLT-Anlagen-Daten": {
- "$ref": "#/definitions/RLT-Anlagen-Daten"
- },
- "Zonen-Daten": {
- "$ref": "#/definitions/Zonen-Daten"
- },
- "Nutzung-enum": {
- "$ref": "#/definitions/Nutzung-enum"
- },
- "Sonnenschutz-enum": {
- "$ref": "#/definitions/Sonnenschutz-enum"
- },
- "Lampenart-enum": {
- "$ref": "#/definitions/Lampenart-enum"
- },
- "Beleuchtungsart-enum": {
- "$ref": "#/definitions/Beleuchtungsart-enum"
- },
- "Endenergie-Energietraeger-Daten": {
- "$ref": "#/definitions/Endenergie-Energietraeger-Daten"
- },
- "NWG-Aushang-Daten": {
- "$ref": "#/definitions/NWG-Aushang-Daten"
- },
- "Modernisierungszeile": {
- "$ref": "#/definitions/Modernisierungszeile"
- },
- "Modernisierung-Teil-enum": {
- "$ref": "#/definitions/Modernisierung-Teil-enum"
- },
- "Modernisierung-Kombi-enum": {
- "$ref": "#/definitions/Modernisierung-Kombi-enum"
- }
- },
- "type": "object",
- "anyOf": [
- {
- "required": [
- "GEG-Energieausweis"
- ]
- },
- {
- "required": [
- "GEG-Daten"
- ]
- },
- {
- "required": [
- "Gebaeudebez-Daten"
- ]
- },
- {
- "required": [
- "anonyme-GEG-Daten"
- ]
- },
- {
- "required": [
- "Gesetzesgrundlage-enum"
- ]
- },
- {
- "required": [
- "Rechtsstand-Grund-enum"
- ]
- },
- {
- "required": [
- "Bundesland-enum"
- ]
- },
- {
- "required": [
- "Gebaeudeteil-enum"
- ]
- },
- {
- "required": [
- "Altersklasse-enum"
- ]
- },
- {
- "required": [
- "Anlass-enum"
- ]
- },
- {
- "required": [
- "Wohngebaeude-Daten"
- ]
- },
- {
- "required": [
- "Gebaeudetyp-enum"
- ]
- },
- {
- "required": [
- "Wohngebaeude-Verbrauchs-Daten"
- ]
- },
- {
- "required": [
- "Energietraeger-Daten"
- ]
- },
- {
- "required": [
- "Energietraeger-Verbrauch-enum"
- ]
- },
- {
- "required": [
- "Zeitraum-Daten"
- ]
- },
- {
- "required": [
- "Warmwasserzuschlag-Daten"
- ]
- },
- {
- "required": [
- "Kuehlzuschlag-Daten"
- ]
- },
- {
- "required": [
- "Leerstandszuschlag-Heizung-Daten"
- ]
- },
- {
- "required": [
- "Leerstandszuschlag-Warmwasser-Daten"
- ]
- },
- {
- "required": [
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte-Daten"
- ]
- },
- {
- "required": [
- "Leerstandszuschlag-Strom-Daten"
- ]
- },
- {
- "required": [
- "Leerstandszuschlag-Bekanntmachung-Daten"
- ]
- },
- {
- "required": [
- "Warmwasserwertermittlung-enum"
- ]
- },
- {
- "required": [
- "Wohngebaeude-Bedarfs-Daten-easy"
- ]
- },
- {
- "required": [
- "Heizwaermeerzeuger-Typ-easy-enum"
- ]
- },
- {
- "required": [
- "Waermeschutz-Variante-enum"
- ]
- },
- {
- "required": [
- "Wohngebaeude-Bedarfs-Daten-4108-4701"
- ]
- },
- {
- "required": [
- "Wohngebaeude-Anbaugrad-enum"
- ]
- },
- {
- "required": [
- "Luftdichtheit-4701-enum"
- ]
- },
- {
- "required": [
- "Luftdichtheit-18599-enum"
- ]
- },
- {
- "required": [
- "Heizungsanlage-Daten"
- ]
- },
- {
- "required": [
- "Heizwaermeerzeuger-Typ-18599-enum"
- ]
- },
- {
- "required": [
- "Heizwaermeerzeuger-Typ-4701-enum"
- ]
- },
- {
- "required": [
- "Energietraeger-enum"
- ]
- },
- {
- "required": [
- "Heizkreisauslegungstemperatur-enum"
- ]
- },
- {
- "required": [
- "Trinkwarmwasseranlage-Daten"
- ]
- },
- {
- "required": [
- "Trinkwarmwassererzeuger-Typ-18599-enum"
- ]
- },
- {
- "required": [
- "Trinkwarmwassererzeuger-Typ-4701-enum"
- ]
- },
- {
- "required": [
- "Wohngebaeude-Bedarfs-Daten-18599"
- ]
- },
- {
- "required": [
- "Nichtwohngebaeude-Daten"
- ]
- },
- {
- "required": [
- "Energieeffizienzklasse-enum"
- ]
- },
- {
- "required": [
- "Nichtwohngebaeude-Verbrauchs-Daten"
- ]
- },
- {
- "required": [
- "Zeitraum-Strom-Daten"
- ]
- },
- {
- "required": [
- "Nutzung-Gebaeudekategorie-Daten"
- ]
- },
- {
- "required": [
- "Nutzung-Gebaeudekategorie-enum"
- ]
- },
- {
- "required": [
- "Nichtwohngebaeude-Bedarfs-Daten"
- ]
- },
- {
- "required": [
- "Automatisierungsgrad-enum"
- ]
- },
- {
- "required": [
- "Art-der-Nutzung-erneuerbaren-Energie-enum"
- ]
- },
- {
- "required": [
- "Automatisierungsgrad-Technisches-Gebaeudemanagement-enum"
- ]
- },
- {
- "required": [
- "Bauteil-Opak-Daten"
- ]
- },
- {
- "required": [
- "Bauteil-Transparent-Daten"
- ]
- },
- {
- "required": [
- "Bauteil-Dach-Daten"
- ]
- },
- {
- "required": [
- "Ausrichtung-enum"
- ]
- },
- {
- "required": [
- "Medium-enum"
- ]
- },
- {
- "required": [
- "Kaelteanlage-Daten"
- ]
- },
- {
- "required": [
- "Kaelteerzeuger-Typ-enum"
- ]
- },
- {
- "required": [
- "Kaelteerzeuger-Regelung-enum"
- ]
- },
- {
- "required": [
- "Rueckkuehlung-enum"
- ]
- },
- {
- "required": [
- "Kaelte-Temperaturniveau-enum"
- ]
- },
- {
- "required": [
- "RLT-Anlagen-Daten"
- ]
- },
- {
- "required": [
- "Zonen-Daten"
- ]
- },
- {
- "required": [
- "Nutzung-enum"
- ]
- },
- {
- "required": [
- "Sonnenschutz-enum"
- ]
- },
- {
- "required": [
- "Lampenart-enum"
- ]
- },
- {
- "required": [
- "Beleuchtungsart-enum"
- ]
- },
- {
- "required": [
- "Endenergie-Energietraeger-Daten"
- ]
- },
- {
- "required": [
- "NWG-Aushang-Daten"
- ]
- },
- {
- "required": [
- "Modernisierungszeile"
- ]
- },
- {
- "required": [
- "Modernisierung-Teil-enum"
- ]
- },
- {
- "required": [
- "Modernisierung-Kombi-enum"
- ]
- }
- ],
- "definitions": {
- "GEG-Energieausweis": {
- "$ref": "#/definitions/GEG-Daten"
- },
- "GEG-Daten": {
- "description": "Dieser Block besteht aus drei Komponenten: Dem Block mit den gebäudebezogenen Daten (nur relevant zwischen Energieausweis-Berechnungssoftware und Druckapplikation), dem Block mit den anonymen Energieausweis-Daten sowie dem Block mit der Prüfsumme, die nach Erhalt und Eintragung der Registriernummer über den Block der anonymen Daten (ohne die gebäudebezogenen Daten!) gebildet wird.",
- "required": [
- "Energieausweis-Daten"
- ],
- "properties": {
- "Gebaeudebezogene-Daten": {
- "$ref": "#/definitions/Gebaeudebez-Daten"
- },
- "Energieausweis-Daten": {
- "$ref": "#/definitions/anonyme-GEG-Daten"
- }
- },
- "type": "object"
- },
- "Gebaeudebez-Daten": {
- "description": "Block, der alle Daten für die Ausstellung des Energieausweises entsprechend GEG enthält, die dem Datenschutz unterliegen oder freiwillig sind, und daher für das Kontrollsystem nicht relevant sind.",
- "required": [
- "Gebaeudeadresse-Strasse-Nr",
- "Gebaeudeadresse-Postleitzahl",
- "Gebaeudeadresse-Ort",
- "Zusatzinfos-beigefuegt",
- "Angaben-erhaeltlich"
- ],
- "properties": {
- "Projektbezeichnung-Aussteller": {
- "description": "Interne Bezeichnung oder Nummer beim Aussteller, anhand derer er die Daten/Unterlagen zu diesem Energieausweis wiederfinden kann.",
- "pattern": ".{0,1024}",
- "type": "string"
- },
- "Gebaeudeadresse-Strasse-Nr": {
- "description": "Straße und Hausnummer der Gebäudeadresse zur Angabe im Energieausweis.",
- "pattern": ".{1,60}",
- "type": "string"
- },
- "Gebaeudeadresse-Postleitzahl": {
- "description": "Vollständige Postleitzahl der Gebäudeadresse zur Angabe im Energieausweis.",
- "pattern": "()|(d{5})",
- "type": "string"
- },
- "Gebaeudeadresse-Ort": {
- "description": "Ortsangabe der Gebäudeadresse zur Angabe im Energieausweis.",
- "pattern": ".{1,35}",
- "type": "string"
- },
- "Ausstellervorname": {
- "description": "Vorname des Energieausweis-Ausstellers wie bei der Ausstelleranmeldung hinterlegt.",
- "pattern": ".{1,60}",
- "type": "string"
- },
- "Ausstellername": {
- "description": "Familienname des Energieausweis-Ausstellers wie bei der Ausstelleranmeldung hinterlegt.",
- "pattern": ".{1,60}",
- "type": "string"
- },
- "Aussteller-Bezeichnung": {
- "description": "Firmierung und/oder Berufsbezeichnung des Energieausweis-Ausstellers.",
- "pattern": ".{0,60}",
- "type": "string"
- },
- "Aussteller-Strasse-Nr": {
- "description": "Straße und Hausnummer des Energieausweis-Ausstellers.",
- "pattern": ".{0,60}",
- "type": "string"
- },
- "Aussteller-PLZ": {
- "description": "Postleitzahl des Energieausweis-Ausstellers (ggfs. bei Ausstellern aus dem Ausland mit Landeszennzeichnung usw.)",
- "pattern": ".{0,5}",
- "type": "string"
- },
- "Aussteller-Ort": {
- "description": "Ort des Energieausweis-Ausstellers.",
- "pattern": ".{0,35}",
- "type": "string"
- },
- "Zusatzinfos-beigefuegt": {
- "description": "Kreuzchen, ob dem Energieausweis (freiwillige) zusätzliche Informationen zur energetischen Qualität beigefügt sind.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Angaben-erhaeltlich": {
- "description": "Hinweis, wo genauere Angaben zu den Empfehlungen ggfs. erhältlich sind. Pflichtangabe, Default-Wert ist (wenn Modernisierungsempfehlungen möglich sind) die GEG-Infoseite des BBSR bzw. (wenn keine Modernisierungsempfehlungen möglich sind, z.B. nach Modernisierung oder bei Neubau) \"Angabe hier nicht relevant\", weitere / alternative Hinweise sind dem Energieausweis-Aussteller überlassen.",
- "pattern": ".{5,200}",
- "type": "string"
- },
- "Ergaenzdende-Erlaeuterungen": {
- "description": "Freitext-Platz für zusätzliche Erläuterungen zum gesamten Energieausweis.",
- "maxLength": 2500,
- "type": "string"
- },
- "NWG-Diagramm-Daten": {
- "$ref": "#/definitions/NWG-Aushang-Daten"
- }
- },
- "type": "object"
- },
- "anonyme-GEG-Daten": {
- "description": "Grund für die Verwendung der angegebenen Gesetzesgrundlage, nach der der Nachweis geführt wurde.",
- "required": [
- "Registriernummer",
- "Ausstellungsdatum",
- "Bundesland",
- "Postleitzahl",
- "Gebaeudeteil",
- "Baujahr-Gebaeude",
- "Altersklasse-Gebaeude",
- "Baujahr-Waermeerzeuger",
- "Altersklasse-Waermeerzeuger",
- "wesentliche-Energietraeger-Heizung",
- "wesentliche-Energietraeger-Warmwasser",
- "Erneuerbare-Art",
- "Erneuerbare-Verwendung",
- "Lueftungsart-Fensterlueftung",
- "Lueftungsart-Schachtlueftung",
- "Lueftungsart-Anlage-o-WRG",
- "Lueftungsart-Anlage-m-WRG",
- "Kuehlungsart-passive-Kuehlung",
- "Kuehlungsart-Strom",
- "Kuehlungsart-Waerme",
- "Kuehlungsart-gelieferte-Kaelte",
- "Treibhausgasemissionen",
- "Ausstellungsanlass",
- "Datenerhebung-Aussteller",
- "Datenerhebung-Eigentuemer",
- "Empfehlungen-moeglich",
- "@Gesetzesgrundlage",
- "@Rechtsstand",
- "@Rechtsstand-Grund"
- ],
- "properties": {
- "Registriernummer": {
- "description": "Offizielle Registriernummer des Energieausweises; solange sie noch nicht beantragt ist, bleibt der Inhalt leer, wenn sie beantragt ist aber noch nicht übermittelt wurde, wird zwar das Datum des Antrags ggfs. im vorläufigen Energieausweis eingedruckt, das Feld bleibt hier aber trotzdem leer.",
- "pattern": "[A-Z]{2}-20d{2}-d{9}",
- "type": "string"
- },
- "Ausstellungsdatum": {
- "description": "Ausstellungsdatum des Energieausweises, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Bundesland": {
- "$ref": "#/definitions/Bundesland-enum",
- "description": "Bundesland, in dem das Gebäude des Energieausweises steht."
- },
- "Postleitzahl": {
- "description": "Postleitzahl des Gebäudestandortes, aus Datenschutzgründen eingekürzt.",
- "pattern": "d{3}XX",
- "type": "string"
- },
- "Gebaeudeteil": {
- "$ref": "#/definitions/Gebaeudeteil-enum",
- "description": "Ergänzende Angabe bei Wohnteilen oder Nichtwohnteilen von gemischt genutzten Gebäuden gemäß §79 Abs. 2 GEG; bei Einzelgebäude Angabe \"Ganzes Gebäude\". z.B. bei einem mehrgeschossigen Mehrfamilienhaus mit einer Ladenzeile im EG ist für die Hauptnutzung ein „WG-Energieausweis“ auszustellen und für den kleineren Teil der Ladenzeile ein Ausweis „NWG-Teil eines WG“. Bei dem Nichtwohnteil (Ausweis für NWG) des Wohngebäudes lautet dann die Auswahl „Teil des Wohngebäudes“."
- },
- "Baujahr-Gebaeude": {
- "description": "Baujahr des Gebäudes und ggfs. Hinweise auf nachträgliche Umbauten, Erweiterungen, Modernisierungen usw. .",
- "pattern": "[w].{1,64}",
- "type": "string"
- },
- "Altersklasse-Gebaeude": {
- "$ref": "#/definitions/Altersklasse-enum",
- "description": "Altersklasse der ursprünglichen Errichtung des Gebäudes"
- },
- "Baujahr-Waermeerzeuger": {
- "description": "Baujahr des/der Wärmeerzeuger(s) und ggfs. Hinweise auf nachträgliche bauliche Veränderung des/der Wärmeerzeuger(s).",
- "pattern": "[w].{1,117}",
- "type": "string"
- },
- "Altersklasse-Waermeerzeuger": {
- "$ref": "#/definitions/Altersklasse-enum",
- "description": "Altersklasse der ältesten der energetisch wesentlichsten Komponenten der Wärmeerzeugung."
- },
- "wesentliche-Energietraeger-Heizung": {
- "description": "Wesentliche Energieträger für die Heizung.",
- "pattern": "[w].{1,94}",
- "type": "string"
- },
- "wesentliche-Energietraeger-Warmwasser": {
- "description": "Wesentliche Energieträger für die Warmwasserbereitung.",
- "pattern": "[w].{1,94}",
- "type": "string"
- },
- "Erneuerbare-Art": {
- "description": "Art(en) der erneuerbaren Energie(n), die eingesetzt wird/werden; wenn nicht gegeben bitte \"keine\" eintragen.",
- "pattern": "[w].{1,63}",
- "type": "string"
- },
- "Erneuerbare-Verwendung": {
- "description": "Verwendung der erneuerbaren Energie(n), die eingesetzt wird/werden; wenn nicht gegeben bitte \"keine\" eintragen.",
- "pattern": "[w].{1,74}",
- "type": "string"
- },
- "Lueftungsart-Fensterlueftung": {
- "description": "Art der Lüftung des Gebäudes: Fensterlüftung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Lueftungsart-Schachtlueftung": {
- "description": "Art der Lüftung des Gebäudes: Schachtlüftung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Lueftungsart-Anlage-o-WRG": {
- "description": "Art der Lüftung des Gebäudes: Lüftungsanlage ohne Wärmerückgewinnung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Lueftungsart-Anlage-m-WRG": {
- "description": "Art der Lüftung des Gebäudes: Lüftungsanlage mit Wärmerückgewinnung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Kuehlungsart-passive-Kuehlung": {
- "description": "Art der Kühlung des Gebäudes: Passive Kühlung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Kuehlungsart-Strom": {
- "description": "Art der Kühlung des Gebäudes: Kühlung aus Strom.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Kuehlungsart-Waerme": {
- "description": "Art der Kühlung des Gebäudes: Kühlung aus Wärme.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Kuehlungsart-gelieferte-Kaelte": {
- "description": "Art der Kühlung des Gebäudes: Gelieferte Kälte.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Treibhausgasemissionen": {
- "description": "Pflichtangabe der Treibhausgasemissionen in kg als CO2 Äquivalent/(m²a) für Bedarfsausweise, Verbrauchsausweise und Aushänge (gemäß GEG § 85 (2), (3) und (6) bzw. nach Berechnungsregeln gem. Anlage 9).",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- },
- "Ausstellungsanlass": {
- "$ref": "#/definitions/Anlass-enum",
- "description": "Anlass der Ausstellung des Energieausweises. Treffen mehrere zu, so ist das Kreuz in der Rangfolge Neubau vor Modernisierung vor Vermietung/Verkauf vor Aushangpflicht zu sezten."
- },
- "Datenerhebung-Aussteller": {
- "description": "Die Datenerhebung erfolgte teilweise oder ganz durch den Aussteller.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Datenerhebung-Eigentuemer": {
- "description": "Die Datenerhebung erfolgte teilweise oder ganz durch den Eigentümer.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Empfehlungen-moeglich": {
- "description": "Wenn Empfehlungen möglich sind, ist das Kreuz im Energieausweis entsprechend zu setzen, und es muss im Tag \"Modernisierungsempfehlungen\" mindestens eine Modernisierungsempfehlungen gegeben werden.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Modernisierungsempfehlungen": {
- "oneOf": [
- {
- "$ref": "#/definitions/Modernisierungszeile"
- },
- {
- "items": {
- "$ref": "#/definitions/Modernisierungszeile"
- },
- "maxItems": 30,
- "type": "array"
- }
- ]
- },
- "Softwarehersteller-Programm-Version": {
- "description": "Angabe, mit welcher Software die Berechnungen erfolgten (Herstellername, Programmbezeichnung, Programm-Version).",
- "pattern": ".{0,1024}",
- "type": "string"
- },
- "@Gesetzesgrundlage": {
- "$ref": "#/definitions/Gesetzesgrundlage-enum"
- },
- "@Rechtsstand": {
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "@Rechtsstand-Grund": {
- "$ref": "#/definitions/Rechtsstand-Grund-enum"
- }
- },
- "type": "object",
- "allOf": [
- {
- "oneOf": [
- {
- "required": [
- "Keine-inspektionspflichtige-Anlage"
- ],
- "properties": {
- "Keine-inspektionspflichtige-Anlage": {
- "description": "Keine inspektionspflichtige Klimaanlage.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- },
- {
- "required": [
- "Anzahl-Klimanlagen",
- "Anlage-groesser-12kW-ohneGA",
- "Anlage-groesser-12kW-mitGA",
- "Anlage-groesser-70kW",
- "Faelligkeitsdatum-Inspektion"
- ],
- "properties": {
- "Anzahl-Klimanlagen": {
- "description": "Anzahl inspektionspflichtiger Klimaanlagen.",
- "maximum": 1000,
- "minimum": 1,
- "type": "integer"
- },
- "Anlage-groesser-12kW-ohneGA": {
- "description": "Klimaanlage größer als 12 kW ohne Gebäudeautomation (inspektionspflichtig).",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Anlage-groesser-12kW-mitGA": {
- "description": "Klimaanlage größer als 12 kW mit Gebäudeautomation (nicht inspektionspflichtig).",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Anlage-groesser-70kW": {
- "description": "Klimaanlage größer als 70 kW, nach DIN SPEC 15240 zu bewerten.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Faelligkeitsdatum-Inspektion": {
- "description": "Nächstes Fälligkeitsdatum der Inspektion.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- }
- }
- }
- ]
- },
- {
- "oneOf": [
- {
- "required": [
- "Wohngebaeude"
- ],
- "properties": {
- "Wohngebaeude": {
- "$ref": "#/definitions/Wohngebaeude-Daten"
- }
- }
- },
- {
- "required": [
- "Nichtwohngebaeude"
- ],
- "properties": {
- "Nichtwohngebaeude": {
- "$ref": "#/definitions/Nichtwohngebaeude-Daten"
- }
- }
- }
- ]
- },
- {
- "oneOf": [
- {
- "required": [
- "Keine-Modernisierung-Erweiterung-Vorhaben"
- ],
- "properties": {
- "Keine-Modernisierung-Erweiterung-Vorhaben": {
- "description": "Der Austellungsanlass ist anders als \"Modernisierung-Erweiterung\", also: Neubau, Vermietung-Verkauf, Aushangspflicht oder sonstiges.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- },
- {
- "required": [
- "Modernisierung-Erweiterung-anzeigepflichtiges-Vorhaben"
- ],
- "properties": {
- "Modernisierung-Erweiterung-anzeigepflichtiges-Vorhaben": {
- "description": "Austellungsanlass Modernisierung (140% Nachweis) nach § 50 (1).",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- },
- {
- "required": [
- "Modernisierung-Erweiterung-genehmigungspflichtiges-Vorhaben"
- ],
- "properties": {
- "Modernisierung-Erweiterung-genehmigungspflichtiges-Vorhaben": {
- "description": "Austellungsanlass Modernisierung (140% Nachweis) nach § 50 (1).",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- }
- ]
- }
- ]
- },
- "Gesetzesgrundlage-enum": {
- "enum": [
- "GEG-2023"
- ],
- "type": "string"
- },
- "Rechtsstand-Grund-enum": {
- "enum": [
- "Bauantrag bei genehmigungspflichtigen Vorhaben (Ausstellungsanlässe Neubau und Modernisierung)",
- "Bauanzeige bei anzeigepflichtigen Vorhaben (Ausstellungsanlässe Neubau und Modernisierung)",
- "Baubeginn (Ausstellungsanlass Modernisierung)",
- "Wunsch des Bauherrn neues Recht anzuwenden (gemäß GEG § 111 Absatz 3)",
- "Ausweisausstellung (bei Verbrauchsausweisen und alle anderen Fälle)"
- ],
- "type": "string"
- },
- "Bundesland-enum": {
- "enum": [
- "Baden-Württemberg",
- "Bayern",
- "Berlin",
- "Brandenburg",
- "Bremen",
- "Hamburg",
- "Hessen",
- "Mecklenburg-Vorpommern",
- "Niedersachsen",
- "Nordrhein-Westfalen",
- "Rheinland-Pfalz",
- "Saarland",
- "Sachsen",
- "Sachsen-Anhalt",
- "Schleswig-Holstein",
- "Thüringen"
- ],
- "type": "string"
- },
- "Gebaeudeteil-enum": {
- "enum": [
- "Ganzes Gebäude",
- "Teil des Wohngebäudes",
- "Teil des Nichtwohngebäudes"
- ],
- "type": "string"
- },
- "Altersklasse-enum": {
- "enum": [
- "bis 1918",
- "1919...1948",
- "1949...1957",
- "1958...1968",
- "1969...1978",
- "1979...1983",
- "1984...1994",
- "1995...2002",
- "2003...2009",
- "2010...2016",
- "ab 2017"
- ],
- "type": "string"
- },
- "Anlass-enum": {
- "enum": [
- "Neubau",
- "Modernisierung-Erweiterung",
- "Vermietung-Verkauf",
- "Aushangpflicht",
- "Sonstiges"
- ],
- "type": "string"
- },
- "Wohngebaeude-Daten": {
- "description": "Dieser Block enthält entweder Verbrauchsdaten oder Bedarfswerte; beim Bedarfsausweis können zusätzliche Verbrauchsangaben mit angeführt werden.",
- "required": [
- "Gebaeudetyp",
- "Anzahl-Wohneinheiten",
- "Gebaeudenutzflaeche"
- ],
- "properties": {
- "Gebaeudetyp": {
- "$ref": "#/definitions/Gebaeudetyp-enum",
- "description": "Grundsätzlicher Gebäudetypus des Gebäudes bzw. Gebäudeteils; die Angaben EFH mit ELW und Zweifamilienhaus sind gleichwertig und können je nach ortsüblichem Gebrauch oder Bauhistorie usw. verwendet werden."
- },
- "Anzahl-Wohneinheiten": {
- "description": "Anzahl der Wohneinheiten im Gebäude/Gebäudeteil.",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "Gebaeudenutzflaeche": {
- "description": "Energetische Nutzfläche AN des Gebäudes/Gebäudeteils (ganze Quadratmeter) (Gebäudenutzfläche AN).",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object",
- "oneOf": [
- {
- "required": [
- "Verbrauchswerte"
- ],
- "properties": {
- "Verbrauchswerte": {
- "$ref": "#/definitions/Wohngebaeude-Verbrauchs-Daten"
- }
- }
- },
- {
- "required": [
- "Bedarfswerte-easy"
- ],
- "properties": {
- "Bedarfswerte-easy": {
- "$ref": "#/definitions/Wohngebaeude-Bedarfs-Daten-easy"
- }
- }
- },
- {
- "required": [
- "Bedarfswerte-4108-4701"
- ],
- "properties": {
- "Bedarfswerte-4108-4701": {
- "$ref": "#/definitions/Wohngebaeude-Bedarfs-Daten-4108-4701"
- }
- }
- },
- {
- "required": [
- "Bedarfswerte-18599"
- ],
- "properties": {
- "Bedarfswerte-18599": {
- "$ref": "#/definitions/Wohngebaeude-Bedarfs-Daten-18599"
- }
- }
- }
- ]
- },
- "Gebaeudetyp-enum": {
- "enum": [
- "Einfamilienhaus",
- "Zweifamilienhaus",
- "Mehrfamilienhaus",
- "Wohnteil gemischt genutztes Gebäude",
- "Beidseitig angebautes Gebäude",
- "Einseitig angebautes Gebäude",
- "Sonstiges"
- ],
- "type": "string"
- },
- "Wohngebaeude-Verbrauchs-Daten": {
- "description": "Dieser Block enthält im Falle eines Wohngebäude-Verbrauchsausweises die Verbrauchsdaten.",
- "required": [
- "Flaechenermittlung-AN-aus-Wohnflaeche",
- "Energietraeger",
- "Leerstandszuschlag-Heizung",
- "Leerstandszuschlag-Warmwasser",
- "Mittlerer-Endenergieverbrauch",
- "Mittlerer-Primaerenergieverbrauch",
- "Energieeffizienzklasse"
- ],
- "properties": {
- "Flaechenermittlung-AN-aus-Wohnflaeche": {
- "description": "Ermittlung der Energiebezugsfläche aus der Wohnfläche mit amtlichem Umrechnungsfaktor nach § 82 GEG.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Wohnflaeche": {
- "description": "Wohnfläche des Gebäudes/Gebäudeteils (ganze Quadratmeter), nur erforderlich bei Ermittlung der energ. Nutzfläche aus der Wohnfläche.",
- "maximum": 1000000,
- "minimum": 0,
- "type": "integer"
- },
- "Keller-beheizt": {
- "description": "Wenn die Energiebezugsfläche aus der Wohnfläche mit amtlichem Umrechnungsfaktor ermittelt wurde, Angabe, ob Ein-/Zweifamilienhaus mit beheiztem Keller (und daher erhöhter Umrechnungsfaktor) oder nicht.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Energietraeger": {
- "oneOf": [
- {
- "$ref": "#/definitions/Energietraeger-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Energietraeger-Daten"
- },
- "maxItems": 8,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Leerstandszuschlag-Heizung": {
- "$ref": "#/definitions/Leerstandszuschlag-Heizung-Daten",
- "description": "Leerstandzuschlag für Heizung gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit."
- },
- "Leerstandszuschlag-Warmwasser": {
- "$ref": "#/definitions/Leerstandszuschlag-Warmwasser-Daten",
- "description": "Leerstandzuschlag für Warmwasser gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit."
- },
- "Warmwasserzuschlag": {
- "$ref": "#/definitions/Warmwasserzuschlag-Daten",
- "description": "Im Fall dezentraler Warmwasserbereitung erforderliche Angaben für den Zuschlag zur Einfügung in die Verbauchsliste des Energieausweises gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit; in der Tabelle ist statt des Energieträgers das Wort \"Warmwasserzuschlag\" einzusetzen, die Felder Anteil Kälte, Anteil Heizung und Klimafaktor bleiben in dieser Zeile leer."
- },
- "Kuehlzuschlag": {
- "$ref": "#/definitions/Kuehlzuschlag-Daten",
- "description": "Im Falle eines maschinell gekühlten Wohngebäudes erforderliche Angaben für den Zuschlag zur Einfügung in die Verbrauchsliste des Energieausweises; in der Tabelle ist statt des Energieträgers das Wort \"Kühlzuschlag\" einzusetzen, die Felder Anteil Warmwasser, Anteil Heizung und Klimafaktor bleiben in dieser Zeile leer."
- },
- "Mittlerer-Endenergieverbrauch": {
- "description": "Endenergiekennwert in kWh/m²a bezogen auf die Energiebezugsfläche (Mittlerer Endenergieverbrauch: e(Strich)_Vb,12mth).",
- "exclusiveMaximum": 100000,
- "type": "number"
- },
- "Mittlerer-Primaerenergieverbrauch": {
- "description": "Primärenergiekennwert in kWh/m²a bezogen auf die Energiebezugsfläche.",
- "exclusiveMaximum": 100000,
- "type": "number"
- },
- "Energieeffizienzklasse": {
- "$ref": "#/definitions/Energieeffizienzklasse-enum",
- "description": "Energieeffizienzklasse des Gebäudes."
- }
- },
- "type": "object"
- },
- "Energietraeger-Daten": {
- "description": "Block, der einen Energieträger mit seinen einzelnen Verbrauchsperioden enthält.",
- "required": [
- "Unterer-Heizwert",
- "Primaerenergiefaktor",
- "Emissionsfaktor",
- "Zeitraum"
- ],
- "properties": {
- "Unterer-Heizwert": {
- "description": "Umrechnung der erfassten verbrauchten Menge des Energieträgers in Energieverbrauch in kWh_Heizwert, wenn schon in kWh_Heizwert angegeben, dann \"1,0\" (Unterer Heizwert: H_i).",
- "maximum": 2500,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiefaktor": {
- "description": "Verwendeter Primärenergiefaktor des Energieträgers (Primärenergiefaktor: f_p) entsprechend Anlage 4 GEG.",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Emissionsfaktor": {
- "description": "Emissionsfaktor für den jeweils eingesetzen Energieträger zur Umrechnung in Treibhausemissionen gemäß Anlage 9 des GEG.",
- "maximum": 100000,
- "minimum": 0,
- "type": "integer"
- },
- "Zeitraum": {
- "oneOf": [
- {
- "$ref": "#/definitions/Zeitraum-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Zeitraum-Daten"
- },
- "maxItems": 40,
- "minItems": 1,
- "type": "array"
- }
- ]
- }
- },
- "type": "object",
- "oneOf": [
- {
- "required": [
- "Energietraeger-Verbrauch"
- ],
- "properties": {
- "Energietraeger-Verbrauch": {
- "$ref": "#/definitions/Energietraeger-Verbrauch-enum",
- "description": "Bezeichnung und Verbrauchsmengen-Einheit des Energieträgers, zu dem die anschliessenden Verbrauchswerte gehören."
- }
- }
- },
- {
- "required": [
- "Sonstiger-Energietraeger-Verbrauch"
- ],
- "properties": {
- "Sonstiger-Energietraeger-Verbrauch": {
- "description": "Bezeichnung und Verbrauchsmengen-Einheit des Energieträgers, zu dem die anschliessenden Verbrauchswerte gehören, wenn ein nicht aufgelisteter Energieträger vorliegt.",
- "pattern": "[w].{1,39}",
- "type": "string"
- }
- }
- }
- ]
- },
- "Energietraeger-Verbrauch-enum": {
- "enum": [
- "Heizöl in Liter",
- "Heizöl in kWh Heizwert",
- "Heizöl in kWh Brennwert",
- "Erdgas in m³",
- "Erdgas in kWh Heizwert",
- "Erdgas in kWh Brennwert",
- "Flüssiggas in m³ gasförmig",
- "Flüssiggas in Liter flüssig",
- "Flüssiggas in kg",
- "Flüssiggas in kWh Heizwert",
- "Steinkohle in kg",
- "Steinkohle in kWh Heizwert",
- "Braunkohle in kg",
- "Braunkohle in kWh Heizwert",
- "Biogas in m³",
- "Biogas in kWh Heizwert",
- "Biogas in kWh Brennwert",
- "Biogas, gebäudenah erzeugt in m³",
- "Biogas, gebäudenah erzeugt in kWh Heizwert",
- "Biogas, gebäudenah erzeugt in kWh Brennwert",
- "biogenes Flüssiggas in m³ gasförmig",
- "biogenes Flüssiggas in Liter flüssig",
- "biogenes Flüssiggas in kg",
- "biogenes Flüssiggas in kWh Heizwert",
- "Bioöl in Liter",
- "Bioöl in kWh Heizwert",
- "Bioöl in kWh Brennwert",
- "Bioöl, gebäudenah erzeugt in Liter",
- "Bioöl, gebäudenah erzeugt in kWh Heizwert",
- "Bioöl, gebäudenah erzeugt in kWh Brennwert",
- "Holz in Raummeter",
- "Holz in kg",
- "Holz in kWh Heizwert",
- "Holz in kWh Brennwert",
- "Holz in Schüttraummeter",
- "Strom netzbezogen in kWh",
- "Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft) in kWh",
- "Verdrängungsstrommix für KWK in kWh",
- "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme) in kWh",
- "Kälte (Erdkälte, Umgebungskälte) in kWh",
- "Abwärme aus Prozessen (prod) in kWh",
- "Abwärme aus Prozessen (out) in kWh",
- "Wärme aus KWK, gebäudeintegriert oder gebäudenah in kWh",
- "Wärme aus Verbrennung von Siedlungsabfällen in kWh",
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger in kWh",
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger in kWh",
- "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger in kWh",
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger in kWh",
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger in kWh",
- "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger in kWh"
- ],
- "type": "string"
- },
- "Zeitraum-Daten": {
- "description": "Block, der eine einzelne Verbrauchsperiode enthält.",
- "required": [
- "Startdatum",
- "Enddatum",
- "Verbrauchte-Menge",
- "Energieverbrauch",
- "Energieverbrauchsanteil-Warmwasser-zentral",
- "Warmwasserwertermittlung",
- "Energieverbrauchsanteil-Heizung",
- "Klimafaktor"
- ],
- "properties": {
- "Startdatum": {
- "description": "Anfangsdatum der Periode, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Enddatum": {
- "description": "Enddatum der Periode, angegeben als YYYY-MM-DD",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Verbrauchte-Menge": {
- "description": "Erfasste verbrauchte Menge in der zum ausgewählten Energieträger gehörigen Einheit, brutto einschliesslich eventuell enthaltenem Warmwasser und ggf. enthaltene thermisch erzeugte Kälte bei Nichtwohngebäude (Verbrauchte Menge: B_Vg,Zeitabschnitt).",
- "maximum": 2147483647,
- "exclusiveMaximum": 1000000000,
- "minimum": 0,
- "type": "integer"
- },
- "Energieverbrauch": {
- "description": "Verbrauchswert in kWh Heizwert als Einheit, brutto einschliesslich eventuell enthaltenem Warmwasser und ggf. enthaltene thermisch erzeugte Kälte bei Nichtwohngebäude (Energieverbrauch: E_Vg,Zeitabschnitt).",
- "maximum": 2147483647,
- "exclusiveMaximum": 1000000000,
- "minimum": 0,
- "type": "integer"
- },
- "Energieverbrauchsanteil-Warmwasser-zentral": {
- "description": "Im Verbrauchswert enthaltener Wert für zentrale Warmwasserbereitung (ggfs. 0 wenn keine Warmwasserbereitung über diesen Energieträger) in kWh (Energieverbrauchsanteil für zentrale Warmwasserbereitung: E_VWW,Zeitabschnitt).",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Warmwasserwertermittlung": {
- "$ref": "#/definitions/Warmwasserwertermittlung-enum",
- "description": "Art, wie der Warmwasserwert ggfs. aus Messungen oder Berechnungen ermittelt wurde. Bei dezentraler Warmwasserbereitung in Wohngebäuden ist die Auswahl \"Pauschale für dezentrale...\" auszuwählen und das entsprechende Korrekturverfahren anzuwenden (siehe Element Warmwasserzuschlag-Daten). Die Auswahl \"keine Warmwasserbereitung enthalten\" ist bei Wohngebäuden zu wählen, wenn ein anderer ebenfalls gelisteter Energieträger die zentrale Warmwasserbereitung versorgt. Bei Nichtwohngebäuden ist sie zu wählen, wenn die Warmwasserbereitung im Stromverbrauch erfasst ist oder generell kein Warmwasser mit gebäudetechnischen Anlagen im Gebäude erzeugt wird."
- },
- "Energieverbrauchsanteil-thermisch-erzeugte-Kaelte": {
- "description": "Im Verbrauchswert ggf. enthaltener Wert für thermisch erzeugte Kälte (nur bei Nichtwohngebäuden) in kWh.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Energieverbrauchsanteil-Heizung": {
- "description": "Im Verbrauchswert enthaltener Wert für Heizung in kWh.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Klimafaktor": {
- "description": "Klimafaktor dieser Periode entsprechend Gebäudestandort (Klimafaktor: f_Klima).",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Verbrauchswert-kWh-Strom": {
- "description": "Verbrauchswert Strom in kWh zum Betreiben des jeweiligen Wärmeerzeugers (Pumpen etc.), sofern dieser ermittelt wird.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Warmwasserzuschlag-Daten": {
- "description": "Angabe des Warmwasserzuschlags für dezentrale Trinkwarmwasserbereitung in Wohngebäuden",
- "required": [
- "Startdatum",
- "Enddatum",
- "Primaerenergiefaktor",
- "Warmwasserzuschlag-kWh"
- ],
- "properties": {
- "Startdatum": {
- "description": "Anfangsdatum des Zeitraums, in dem dezentrale Trinkwarmwasserbereitung bestand, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Enddatum": {
- "description": "Enddatum des Zeitraums, in dem dezentrale Trinkwarmwasserbereitung bestand, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Primaerenergiefaktor": {
- "description": "Primärenergiefaktor (entsprechend Anlage 4 GEG) des wesentlichen Energieträgers für die Beheizung, damit das dezentrale Warmwasser als virtueller Mehrverbrauch einer fiktiven zentralen Warmwasserbereitung verrechnet werden kann (Primärenergiefaktor: f_p).",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Warmwasserzuschlag-kWh": {
- "description": "Zuschlagswert Warmwasser in kWh für den betroffenen Zeitraum, in der Tabelle einzusetzen in die Spalten \"Energieverbrauch\" und \"Anteil Warmwasser\".",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Kuehlzuschlag-Daten": {
- "description": "Angaben für den Verbrauchs-Zuschlag für gekühlte Wohngebäude.",
- "required": [
- "Startdatum",
- "Enddatum",
- "Gebaeudenutzflaeche-gekuehlt",
- "Primaerenergiefaktor",
- "Kuehlzuschlag-kWh"
- ],
- "properties": {
- "Startdatum": {
- "description": "Anfangsdatum des Zeitraums, in dem die Einrichtung zur Kühlung des Gebäudes bestand, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Enddatum": {
- "description": "Enddatum des Zeitraums, in dem die Einrichtung zur Kühlung des Gebäudes bestand, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Gebaeudenutzflaeche-gekuehlt": {
- "description": "Energiebezugsfläche AN des Gebäudes/Gebäudeteils, der maschinell gekühlt wird (ganze Quadratmeter); die Angabe erscheint nicht im Energieausweis, ist aber für die Zuschlagsberechnung relevant.",
- "maximum": 1000000,
- "minimum": 0,
- "type": "integer"
- },
- "Primaerenergiefaktor": {
- "description": "Primärenergiefaktor (entsprechend Anlage 4 GEG) Strom für die Wohnungskühlung (Primärenergiefaktor: f_p).",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Kuehlzuschlag-kWh": {
- "description": "Zuschlagswert für Kühlenergie in kWh für den betroffenen Zeitraum, in der Tabelle einzusetzen in die Spalte \"Energieverbrauch\".",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Leerstandszuschlag-Heizung-Daten": {
- "type": "object",
- "oneOf": [
- {
- "required": [
- "kein-Leerstand"
- ],
- "properties": {
- "kein-Leerstand": {
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Heizung erforderlich ist.",
- "pattern": "Kein längerer Leerstand Heizung zu berücksichtigen.",
- "type": "string"
- }
- }
- },
- {
- "required": [
- "Leerstandszuschlag-nach-Bekanntmachung",
- "Zuschlagsfaktor",
- "witterungsbereinigter-Endenergieverbrauchsanteil-fuer-Heizung"
- ],
- "properties": {
- "Leerstandszuschlag-nach-Bekanntmachung": {
- "$ref": "#/definitions/Leerstandszuschlag-Bekanntmachung-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand Heizung aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- },
- "Zuschlagsfaktor": {
- "description": "Wohngebäude: Zuschlagsfaktor f(eVhb, 12mth) nach der Formel f(eVhb, 12mth) = - 0,0028 * eVhb, 12mth + 0,9147 Nichtwohngebäude: Zuschlagsfaktor f(eVhb, 12mth) nach der Formel f(eVhb, 12mth) = - 0,0083 * eVhb, 12mth + 1,3982 gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit.",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "witterungsbereinigter-Endenergieverbrauchsanteil-fuer-Heizung": {
- "description": "Witterungsbereinigter Endenergieverbrauchsanteil für Heizung eVhb, 12mth ist Teil der Formel für Berechnung der Zuschlagsfaktor, Einheit in kWh/m²a; gemäß GEG § 82 und gemeinsamer Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- }
- }
- }
- ]
- },
- "Leerstandszuschlag-Warmwasser-Daten": {
- "required": [
- "keine-Nutzung-von-WW"
- ],
- "properties": {
- "keine-Nutzung-von-WW": {
- "description": "true: Warmwasser ist nicht vorhanden (nur bei NWG), oder dezentrale elektrische Warmwasserbereitung ist beim Stromanteil mit erfasst, die Leerstandskorrektur erfolgt in diesem Fall zusammen mit den übrigen elektrischen Verbrauchsanteilen. In diesem Fall ist \"kein-Leerstand\" anzugeben. false: Einer der anderen Fälle hat Gültigkeit (kein Leerstand oder Leerstand nach Bekanntmachung).",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- },
- "type": "object",
- "oneOf": [
- {
- "required": [
- "kein-Leerstand"
- ],
- "properties": {
- "kein-Leerstand": {
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Warmwasser erforderlich ist.",
- "pattern": "Kein längerer Leerstand Warmwasser zu berücksichtigen.",
- "type": "string"
- }
- }
- },
- {
- "required": [
- "Leerstandszuschlag-nach-Bekanntmachung"
- ],
- "properties": {
- "Leerstandszuschlag-nach-Bekanntmachung": {
- "$ref": "#/definitions/Leerstandszuschlag-Bekanntmachung-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand Warmwasser aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- }
- }
- }
- ]
- },
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte-Daten": {
- "type": "object",
- "oneOf": [
- {
- "required": [
- "kein-Leerstand"
- ],
- "properties": {
- "kein-Leerstand": {
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur thermisch erzeugter Kälte erforderlich ist.",
- "pattern": "Kein längerer Leerstand thermisch erzeugte Kälte zu berücksichtigen.",
- "type": "string"
- }
- }
- },
- {
- "required": [
- "Leerstandszuschlag-nach-Bekanntmachung"
- ],
- "properties": {
- "Leerstandszuschlag-nach-Bekanntmachung": {
- "$ref": "#/definitions/Leerstandszuschlag-Bekanntmachung-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand für thermisch erzeugte Kälte aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- }
- }
- }
- ]
- },
- "Leerstandszuschlag-Strom-Daten": {
- "type": "object",
- "oneOf": [
- {
- "required": [
- "kein-Leerstand"
- ],
- "properties": {
- "kein-Leerstand": {
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Strom erforderlich ist.",
- "pattern": "Kein längerer Leerstand Strom zu berücksichtigen.",
- "type": "string"
- }
- }
- },
- {
- "required": [
- "Leerstandszuschlag-nach-Bekanntmachung"
- ],
- "properties": {
- "Leerstandszuschlag-nach-Bekanntmachung": {
- "$ref": "#/definitions/Leerstandszuschlag-Bekanntmachung-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand Strom aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- }
- }
- }
- ]
- },
- "Leerstandszuschlag-Bekanntmachung-Daten": {
- "description": "Daten für die Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte.",
- "required": [
- "Leerstandsfaktor",
- "Startdatum",
- "Enddatum",
- "Leerstandszuschlag-kWh",
- "Primaerenergiefaktor"
- ],
- "properties": {
- "Leerstandsfaktor": {
- "description": "Leerstandsfaktor bezogen auf die anteilige Gebäudenutzfläche AN und den Zeitanteil innerhalb des gesamten aufgeführten Verbrauchszeitraums: f_leer.",
- "maximum": 0.99,
- "minimum": 0,
- "type": "number"
- },
- "Startdatum": {
- "description": "Anfangsdatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Enddatum": {
- "description": "Enddatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Leerstandszuschlag-kWh": {
- "description": "Je nach Betrachtung von \"Heizung\", \"Warmwasser\", oder \"Strom\" bei NWG, ist der Leerstandszuschlag für den Energieverbrauchsanteil für: - Heizung in kWh: delta_E_Vh in der Tabelle in die Spalte \"Anteil Heizung\" einzusetzen - zentrale Warmwasserbereitung in kWh: delta_E_VWW in der Tabelle in die Spalte \"Anteil Warmwasser\" einzusetzen - Strom in kWh: delta_E_Vs in der Tabelle in die Spalte \"Energieverbrauch Strom\" einzusetzen",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "Primaerenergiefaktor": {
- "description": "Primärenergiefaktor (entsprechend Anlage 4 GEG) des wesentlichen Energieträgers: f_p.",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "Warmwasserwertermittlung-enum": {
- "enum": [
- "direkter Messwert Wärmemenge",
- "Pauschale für dezentrale Warmwasserbereitung (Wohngebäude)",
- "Rechenwert nach Heizkostenverordnung (Wohngebäude)",
- "Rechenwert nach GEG / DIN V 18599 (Nichtwohngebäude)",
- "Rechenwert nach Heizkostenverordnung (Nichtwohngebäude)",
- "Pauschale 5 % Warmwasserbereitung (Nichtwohngebäude)",
- "Pauschale 50 % Warmwasserbereitung (Nichtwohngebäude)",
- "monatsweise Erfassung Wärmeverbrauch Sommer (Nichtwohngebäude)",
- "sonstige Ermittlung des Verbrauchsanteils der Warmwasserbereitung",
- "keine Warmwasserbereitung enthalten"
- ],
- "type": "string"
- },
- "Wohngebaeude-Bedarfs-Daten-easy": {
- "description": "Dieser Block enthält im Falle eines Wohngebäudes, für welches das vereinfachte Nachweisverfahren/ Modellgebäudeverfahren nach § 31 GEG, nach vorgegebenen Maßgaben in Anlage 5 (informell EnEV easy) die erforderlichen Bedarfswerte.",
- "required": [
- "Wohngebaeude-Anbaugrad",
- "Anzahl-Geschosse",
- "Geschoss-Bruttogeschossflaechenumfang",
- "Geschoss-Bruttogeschossflaeche",
- "Dach-Bruttogeschossflaechenumfang",
- "Dach-Bruttogeschossflaeche",
- "Aufsummierte-Bruttogeschossflaeche",
- "Mittlere-Geschosshoehe",
- "Kompaktheit",
- "Deckungsgleichheit",
- "Fensterflaechenanteil-Nordost-Nord-Nordwest",
- "Fensterflaechenanteil-Gesamt",
- "Dach-transparente-Bauteile-Fensterflaechenanteil",
- "Spezielle-Fenstertueren-Flaechenanteil",
- "Außentueren-Flaechenanteil",
- "Keine-Anlage-zur-Kuehlung",
- "Anforderung-Waermebruecken-erfuellt",
- "Gebaeudedichtheit",
- "Heiz-Warmwassersystem",
- "Lueftungsanlagenanforderungen",
- "Waermeschutz-Variante",
- "Endenergiebedarf",
- "Energieeffizienzklasse",
- "Primaerenergiebedarf-Ist-Wert",
- "Primaerenergiebedarf-Anforderungswert",
- "Energetische-Qualitaet-Ist-Wert",
- "Energetische-Qualitaet-Anforderungs-Wert",
- "Sommerlicher-Waermeschutz",
- "Abminderung-Sonnenschutz"
- ],
- "properties": {
- "Wohngebaeude-Anbaugrad": {
- "$ref": "#/definitions/Wohngebaeude-Anbaugrad-enum",
- "description": "Anbaugrad des Gebäudes bzw. Gebäudeteils an (beheizte) Nachbargebäude."
- },
- "Anzahl-Geschosse": {
- "description": "Anzahl beheizter Geschosse im Gebäude (inkl. Keller, wenn beheizt).",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Geschoss-Bruttogeschossflaechenumfang": {
- "description": "Der beheizte Bruttogeschossflächenumfang des ersten Geschosses in m (Bruttogeschossflächenumfang: u).",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Geschoss-Bruttogeschossflaeche": {
- "description": "Die beheizte Bruttogeschossfläche des ersten Geschosses in m² (Bruttogeschossfläche: A_G).",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Dach-Bruttogeschossflaechenumfang": {
- "description": "Der beheizte Bruttogeschossflächenumfang des Dachgeschosses in m (Bruttogeschossflächenumfang: u).",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Dach-Bruttogeschossflaeche": {
- "description": "Die beheizte Bruttogeschossfläche des Dachgeschosses in m² (Bruttogeschossfläche: A_G).",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Aufsummierte-Bruttogeschossflaeche": {
- "description": "Die aufsummierte Bruttogeschossfläche des Gebäudes über alle Geschosse (einschließlich Dachgeschoss, jedoch bei Gebäuden mit zwei oder mehr beheizten Geschossen werden nur 80% A_G des Dachgeschosses angerechnet, wenn die mittlere Dachgeschosshöhe kleiner ist als 2,5 m) in m² (Bruttogeschossfläche: A_GS).",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Mittlere-Geschosshoehe": {
- "description": "Mittlere Geschosshöhe über alle Geschosse (einschließlich Dachgeschoss) in m.",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Kompaktheit": {
- "description": "Anforderung u² ≤ 20*AG über alle Geschosse erfüllt?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Deckungsgleichheit": {
- "description": "Die beheizten Bruttogeschossflächen aller Geschosse sind ohne Vor- oder Rücksprünge deckungsgleich; nur das oberste Geschoss weist ggf. eine kleinere Bruttogeschossfläche auf.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Fensterflaechenanteil-Nordost-Nord-Nordwest": {
- "description": "Die Fensterfläche der in nördliche Richtung orientierten Fenster des Gebäudes in Prozent. Diese Fläche ist nicht größer als der Mittelwert der Fensterflächen anderer Orientierungen (vgl. GEG § 31, Anlage 5, Modellgebäudeverfahren).",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Fensterflaechenanteil-Gesamt": {
- "description": "Angabe des Fensterflächenanteiles bezogen auf die Fassadenfläche des gesamten Gebäudes in Prozent. Der Höchstwert für zweiseitig angebaute Gebäude: 35 %, ansonsten 30 %.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Dach-transparente-Bauteile-Fensterflaechenanteil": {
- "description": "Flächenanteil von Dachflächenfenstern, Lichtkuppeln und ähnliche transparente Bauteile der gesamten Dachfläche in Prozent.",
- "maximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Spezielle-Fenstertueren-Flaechenanteil": {
- "description": "Spezielle Fenstertüren-Flächenanteil der Fassade des gesamten Gebäudes in Prozent. Der Höchstwert ist 4,5 %, bei zweiseitig angebauten Gebäuden 5,5 %.",
- "maximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Außentueren-Flaechenanteil": {
- "description": "Außentüren-Flächenanteil bezogen auf die Fassadenfläche des gesamten Gebäudes in m², max. 2,7% bei Ein- und Zweifamilienhäusern, ansonsten 1,5 %.",
- "maximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Keine-Anlage-zur-Kuehlung": {
- "description": "Das Gebäude ist nicht mit einer Anlage zur Raumkühlung (Klimaanlage) ausgestattet.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Anforderung-Waermebruecken-erfuellt": {
- "description": "Die Wärmebrücken, die im Rahmen rechnerischer Nachweise zu berücksichtigen wären, sind so ausgeführt, dass sie mindestens gleichwertig zu den Musterlösungen nach DIN 4108 Beiblatt 2 sind. (§ 24 GEG über Fälle, in denen auf Gleichwertigkeitsnachweise verzichtet werden kann, bleibt unberührt)",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Gebaeudedichtheit": {
- "description": "Dichtheit des Gebäudes nach § 26 GEG erfolgreich geprüft (n_50-Wert)?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Heiz-Warmwassersystem": {
- "$ref": "#/definitions/Heizwaermeerzeuger-Typ-easy-enum",
- "description": "Angaben zum Heiz- und Warmwassersystem nach Anlage 5 Tabelle 1 bis 3 GEG."
- },
- "Lueftungsanlagenanforderungen": {
- "description": "Lüftungsanlagenanforderungen gemäß Anlage 5 GEG erfüllt?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Waermeschutz-Variante": {
- "$ref": "#/definitions/Waermeschutz-Variante-enum",
- "description": "Angewendete Wärmeschutzvariante nach Anlage 5 Tabelle 1 bis 3 GEG."
- },
- "Endenergiebedarf": {
- "description": "Endenergiebedarf in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "maximum": 1000,
- "minimum": 0,
- "type": "number"
- },
- "Energieeffizienzklasse": {
- "$ref": "#/definitions/Energieeffizienzklasse-enum",
- "description": "Energieeffizienzklasse des Gebäudes."
- },
- "Primaerenergiebedarf-Ist-Wert": {
- "description": "Primärenergiebedarf-Ist-Wert in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "maximum": 1000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-Anforderungswert": {
- "description": "Primärenergiebedarf-Anforderungswert in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "maximum": 1000,
- "minimum": 0,
- "type": "number"
- },
- "Energetische-Qualitaet-Ist-Wert": {
- "description": "Energetische Qualität Gebäudehülle HT´ in W/m²K, Ist-Wert.",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "Energetische-Qualitaet-Anforderungs-Wert": {
- "description": "Energetische Qualität Gebäudehülle HT´ in W/m²K, Anforderungs-Wert.",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "Sommerlicher-Waermeschutz": {
- "description": "Das Gebäude erfüllt die Voraussetzungen, unter denen der sommerliche Wärmeschutz auch ohne rechnerischen Nachweis als erfüllt gilt (neue Normungsverweise). aa) Beim kritischen Raum (Raum mit der höchsten Wärmeeinstrahlung im Sommer) beträgt der Fensterflächenanteil bezogen auf die Grundfläche dieses Raums nicht mehr als 35 vom Hundert, bb) sämtliche Fenster in Ost-, Süd- oder Westorientierung (inkl. derer eines eventuellen Glasvorbaus) sind mit außenliegenden Sonnenschutzvorrichtun-gen mit einem Abminderungsfaktor FC ≤ 0,30 ausgestattet.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Abminderung-Sonnenschutz": {
- "description": "Abminderungsfaktor der verwendeten Sonnenschutzvorrichtung für Fenster mit Ost-, Süd- oder Westorientierung.",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Art-der-Nutzung-erneuerbaren-Energie-1": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum",
- "description": "Es wird die erste Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau."
- },
- "Deckungsanteil-1": {
- "description": "Deckungsanteil in % für erste Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anteil-der-Pflichterfuellung-1": {
- "description": "Pflichterfüllungsanteil in % für die erste Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)",
- "maximum": 999,
- "minimum": 0,
- "type": "integer"
- },
- "Art-der-Nutzung-erneuerbaren-Energie-2": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum",
- "description": "Es wird die zweite Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau."
- },
- "Deckungsanteil-2": {
- "description": "Deckungsanteil in % für zweite Angabe Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anteil-der-Pflichterfuellung-2": {
- "description": "Pflichterfüllungsanteil in % für die zweite Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)",
- "maximum": 999,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Heizwaermeerzeuger-Typ-easy-enum": {
- "enum": [
- "Zentrale Biomasse-Heizungsanlage auf Basis von Holzpellets, Hackschnitzeln oder Scheitholz, zentrale Abluftanlage, solarthermische Anlage zur Trinkwarmwasser-Bereitung",
- "Zentrale Biomasse-Heizungsanlage auf Basis von Holzpellets, Hackschnitzeln oder Scheitholz, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlage zur Trinkwarmwasser-Bereitung",
- "Fernwärme mit zertifiziertem Primärenergiefaktor fp ≤ 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %)",
- "Fernwärme mit zertifiziertem Primärenergiefaktor fp ≤ 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), solarthermische Anlagen",
- "Fernwärme mit zertifiziertem Primärenergiefaktor fp ≤ 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), Photovoltaik-Anlagen",
- "Luft-Wasser-Wärmepumpe, dezentrale Trinkwassererwärmung, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %)",
- "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %)",
- "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), solarthermische Anlagen",
- "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), Photovoltaik-Anlagen",
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage",
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, solarthermische Anlagen",
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, Photovoltaik-Anlagen",
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung",
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlagen",
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, Photovoltaik-Anlagen",
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage",
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, solarthermische Anlagen",
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, Photovoltaik-Anlagen",
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung",
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlagen",
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, Photovoltaik-Anlagen"
- ],
- "type": "string"
- },
- "Waermeschutz-Variante-enum": {
- "enum": [
- "Wärmeschutz-Variante A",
- "Wärmeschutz-Variante B",
- "Wärmeschutz-Variante C",
- "Wärmeschutz-Variante D"
- ],
- "type": "string"
- },
- "Wohngebaeude-Bedarfs-Daten-4108-4701": {
- "description": "Dieser Block enthält im Falle eines Wohngebäudes mit Nachweis nach DIN V 4108 / DIN V 4701 die Bedarfswerte.",
- "required": [
- "Wohngebaeude-Anbaugrad",
- "Bruttovolumen",
- "durchschnittliche-Geschosshoehe",
- "Bauteil-Opak",
- "Waermebrueckenzuschlag",
- "Transmissionswaermeverlust",
- "Luftdichtheit",
- "Lueftungswaermeverlust",
- "Solare-Waermegewinne",
- "Interne-Waermegewinne",
- "Heizungsanlage",
- "Pufferspeicher-Nenninhalt",
- "Heizkreisauslegungstemperatur",
- "Heizungsanlage-innerhalb-Huelle",
- "Trinkwarmwasseranlage",
- "Trinkwarmwasserspeicher-Nenninhalt",
- "Trinkwarmwasserverteilung-Zirkulation",
- "Vereinfachte-Datenaufnahme",
- "spezifischer-Transmissionswaermeverlust-Ist",
- "Innovationsklausel",
- "Quartiersregelung",
- "Primaerenergiebedarf-Hoechstwert-Bestand",
- "Energietraeger-Liste",
- "Endenergiebedarf-Waerme-AN",
- "Endenergiebedarf-Hilfsenergie-AN",
- "Endenergiebedarf-Gesamt",
- "Primaerenergiebedarf",
- "Energieeffizienzklasse"
- ],
- "properties": {
- "Wohngebaeude-Anbaugrad": {
- "$ref": "#/definitions/Wohngebaeude-Anbaugrad-enum",
- "description": "Anbaugrad des Gebäudes bzw. Gebäudeteils an (beheizte) Nachbargebäude."
- },
- "Bruttovolumen": {
- "description": "Beheiztes Gebäudevolumen des Gebäudes/Gebäudeteils (ganze Kubikmeter) (Bruttovolumen: V_e).",
- "maximum": 1000000,
- "minimum": 0,
- "type": "integer"
- },
- "durchschnittliche-Geschosshoehe": {
- "description": "Die durchschnittliche Geschosshöhe hG des Gebäudes (§ 25 GEG bzw. DIN V 18599-1: 2018-09) liegt im Anwendungsbereich zwischen 2,5 bis 3,0 m (Durchschnittliche Geschosshöhe: h_G).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Bauteil-Opak": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Opak-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Opak-Daten"
- },
- "maxItems": 10000,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Bauteil-Transparent": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Transparent-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Transparent-Daten"
- },
- "maxItems": 10000,
- "type": "array"
- }
- ]
- },
- "Bauteil-Dach": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Dach-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Dach-Daten"
- },
- "maxItems": 10000,
- "type": "array"
- }
- ]
- },
- "Waermebrueckenzuschlag": {
- "description": "Wert des Wärmebrückenzuschlags für die Gebäudehülle (Wärmebrückenzuschlag: delta_U_WB).",
- "maximum": 0.999,
- "minimum": -0.999,
- "type": "number"
- },
- "Transmissionswaermeverlust": {
- "description": "Transmissionswärmeverlust in kWh/a (Transmissionswärmeverlust: Q_T).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Luftdichtheit": {
- "$ref": "#/definitions/Luftdichtheit-4701-enum",
- "description": "Luftdichtheit der Gebäudehülle."
- },
- "Lueftungswaermeverlust": {
- "description": "Lüftungswärmeverlust in kWh/a (Lüftungswärmeverlust: Q_V).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Solare-Waermegewinne": {
- "description": "Summe der solaren Gewinne in kWh/a (Solare Wärmegewinne: Q_S).",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "Interne-Waermegewinne": {
- "description": "Summe der internen Gewinne in kWh/a (Interne Wärmegewinne: Q_I).",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "Heizungsanlage": {
- "oneOf": [
- {
- "$ref": "#/definitions/Heizungsanlage-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Heizungsanlage-Daten"
- },
- "maxItems": 200,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Pufferspeicher-Nenninhalt": {
- "description": "Volumen eines oder mehrerer ggfs. vorhandenen Heizungs-Pufferspeicher(s) (keiner = 0) in Liter (Pufferspeicher-Nenninhalt: V).",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Heizkreisauslegungstemperatur": {
- "$ref": "#/definitions/Heizkreisauslegungstemperatur-enum",
- "description": "Temperaturniveau der Heizungsverteilung Vorlauf/Rücklauf, bzw. Angabe von Luftheizsystem oder ausschliesslicher Beheizung über Einzelraumheizgeräte; anzugeben ist die Temperatur des höchsten Kreises, bei krummen Werten ist die nach Vorlauftemperatur nächst höhere Auswahl anzugeben."
- },
- "Heizungsanlage-innerhalb-Huelle": {
- "description": "TRUE, wenn alle Wärmeerzeuger innerhalb der thermischen Gebäudehülle stehen.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Trinkwarmwasseranlage": {
- "oneOf": [
- {
- "$ref": "#/definitions/Trinkwarmwasseranlage-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Trinkwarmwasseranlage-Daten"
- },
- "maxItems": 200,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Trinkwarmwasserspeicher-Nenninhalt": {
- "description": "Volumen eines ggfs. vorhandenen Warmwasserspeichers (kein Speicher = 0), bzw. Summe der Volumina bei mehreren Speichern, in Liter (Trinkwarmwasserspeicher-Nenninhalt: V).",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Trinkwarmwasserverteilung-Zirkulation": {
- "description": "Ist zur Warmwasserverteilung eine Trinkwasser-seitige Zirkulation vorhanden?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Vereinfachte-Datenaufnahme": {
- "description": "Wurden Regeln zur vereinfachten Datenaufnahme nach § 50 (4) GEG bzw. Bekanntmachungen angewendet?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "spezifischer-Transmissionswaermeverlust-Ist": {
- "description": "Spezifischer auf die wärmeübertragende Umfassungsfläche bezogener Transmissionswärmeverlust HT', Ist-Wert des Gebäudes, in W/m²K (spezifischer Transmissionswärmeverlust: H_T(Strich)).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "spezifischer-Transmissionswaermeverlust-Hoechstwert": {
- "description": "Spezifischer auf die wärmeübertragende Umfassungsfläche bezogener Transmissionswärmeverlust HT', Anforderungswert, in W/m²K, nur bei Neubauten und wesentlichen Modernisierungen/Erweiterungen (spezifischer Transmissionswärmeverlust: H_T(Strich)).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "angerechneter-lokaler-erneuerbarer-Strom": {
- "description": "Größe des Abzugs (in kWh/a m2) bei der Primärenergie bzw. bei der Endenergie für den gebäudenah erzeugten Strom aus erneuerbarer Energie nach der entsprechenden Bilanzierungsregel (vgl. GEG §23 (4))",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Innovationsklausel": {
- "description": "Angabe ob Innovationsklausel gemäß § 103 (1) GEG 2020 angewendet wurde. (Alternative Anforderungen: Treibhausgasemissionen, Höchstwert der Endenergiebedarfs + Transmissionswärmeverlust (nur für Neubau und WG) + Wärmedurchgangskoeffizienten der wärmeübertragenden Umfassungsfläche (nur für Neubau und NWG) - Aussetzung der Hauptanforderungen (Neubau § 10, Bestand § 50))",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Quartiersregelung": {
- "description": "Angabe ob Quartiersregelung gemäß § 103 (3) - Gesamtbilanzierung für Wärmeversorgung zusammenhängender Gebäude - zutreffend ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Primaerenergiebedarf-Hoechstwert-Bestand": {
- "description": "Primärenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Energietraeger-Liste": {
- "oneOf": [
- {
- "$ref": "#/definitions/Endenergie-Energietraeger-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Endenergie-Energietraeger-Daten"
- },
- "maxItems": 10,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Endenergiebedarf-Waerme-AN": {
- "description": "Endenergiekennwert Wärme in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergiebedarf-Wärme: q_WE,E).",
- "exclusiveMaximum": 10000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Hilfsenergie-AN": {
- "description": "Endenergiekennwert Hilfsenergie in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergiebedarf-Hilfsenergie-AN: q_HE,E).",
- "exclusiveMaximum": 10000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Gesamt": {
- "description": "Endenergiekennwert Gesamt in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "exclusiveMaximum": 10000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf": {
- "description": "Primärenergiekennwert in kWh/m²a bezogen auf die energetische Nutzfläche (Primärenergiebedarf: q_p).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Energieeffizienzklasse": {
- "$ref": "#/definitions/Energieeffizienzklasse-enum",
- "description": "Energieeffizienzklasse des Gebäudes."
- },
- "Art-der-Nutzung-erneuerbaren-Energie-1": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum",
- "description": "Es wird die erste Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau."
- },
- "Deckungsanteil-1": {
- "description": "Deckungsanteil in % für erste Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anteil-der-Pflichterfuellung-1": {
- "description": "Pflichterfüllungsanteil in % für die erste Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)",
- "maximum": 999,
- "minimum": 0,
- "type": "integer"
- },
- "Art-der-Nutzung-erneuerbaren-Energie-2": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum",
- "description": "Es wird die zweite Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau."
- },
- "Deckungsanteil-2": {
- "description": "Deckungsanteil in % für zweite Angabe Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anteil-der-Pflichterfuellung-2": {
- "description": "Pflichterfüllungsanteil in % für die zweite Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)",
- "maximum": 999,
- "minimum": 0,
- "type": "integer"
- },
- "verschaerft-nach-GEG-45-eingehalten": {
- "description": "Der gemäß § 45 GEG um diese Prozentzahl verschärfte Anforderungswert (15 % Unterschreitung Transmissionswärmeverlust) als Maßnahme zur Einsparung von Energie ist eingehalten.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "spezifischer-Transmissionswaermeverlust-verschaerft": {
- "description": "Nach GEG § 45 verschärfter Anforderungswert für den spezifischen auf die wärmeübertragende Umfassungsfläche bezogenen Transmissionswärmeverlust HT' in W/m²K (spezifischer-Transmissionswärmeverlust-verschärft: H_T(Strich)).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Sommerlicher-Waermeschutz": {
- "description": "Sind die Anforderungen an den sommerlichen Wärmeschutz eingehalten? Relevant nur bei Neubau.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Treibhausgasemissionen-Zusaetzliche-Verbrauchsdaten": {
- "description": "Angabe der Treibhausgasemissionen in kg als CO2 Äquivalent/(m²a); nur bei kombinierten Energieausweisen (Bedarf/Verbrauch), zusammen mit der Übermittlung der zusätzlichen Verbrauchsdaten.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- },
- "Zusaetzliche-Verbrauchsdaten": {
- "$ref": "#/definitions/Wohngebaeude-Verbrauchs-Daten",
- "description": "Bei Energieausweisen auf Bedarfsbasis können neben den Bedarfsangaben zusätzlich Angaben zum Verbrauch im Energieausweis dargestellt werden, die dann hier entsprechend integriert werden. Die Ermittlung der Fläche AN aus der Wohnfläche darf in den Wohngebäude-Verbrauchs-Daten dann nicht angekreuzt sein, da die Fläche nach einem für Bedarfsausweise zulässigen Verfahren ermittelt worden sein muss."
- }
- },
- "type": "object",
- "allOf": [
- {
- "oneOf": [
- {
- "required": [
- "Endenergiebedarf-Hoechstwert-Bestand",
- "Treibhausgasemissionen-Hoechstwert-Bestand"
- ],
- "properties": {
- "Endenergiebedarf-Hoechstwert-Bestand": {
- "description": "Endenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Treibhausgasemissionen-Hoechstwert-Bestand": {
- "description": "Anforderungswert für Treibhausgasemissionen Modernisierter Altbau in kg/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- }
- }
- },
- {
- "required": [
- "Primaerenergiebedarf-Hoechstwert-Neubau",
- "Endenergiebedarf-Hoechstwert-Neubau",
- "Treibhausgasemissionen-Hoechstwert-Neubau"
- ],
- "properties": {
- "Primaerenergiebedarf-Hoechstwert-Neubau": {
- "description": "Primärenergie-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche, bei Neubau im Energieausweis einzutragen. (Primärenergiebedarf: Q_p,Ref).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Hoechstwert-Neubau": {
- "description": "Endenergiebedarf-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Treibhausgasemissionen-Hoechstwert-Neubau": {
- "description": "Anforderungswert für Treibhausgasemissionen Neubau (Kennwert des Referenzgebäudes) in kg/m²a bezogen auf die energetische Nutzfläche.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- }
- }
- }
- ]
- },
- {
- "oneOf": [
- {
- "required": [
- "nicht-verschaerft-nach-GEG-34"
- ],
- "properties": {
- "nicht-verschaerft-nach-GEG-34": {
- "description": "Keine Maßnahmen nach § 45 in Verbindung mit $ 34.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- },
- {
- "required": [
- "verschaerft-nach-GEG-34",
- "Anforderung-nach-GEG-16-unterschritten"
- ],
- "properties": {
- "verschaerft-nach-GEG-34": {
- "description": "Die in Verbindung mit § 34 GEG Maßnahmen nach § 45 in Kombination zur Nutzung erneuerbarer Energien zur Deckung des Wärme- und Kälteenergiebedarfs sind eingehalten (Anteil der Pflichterfüllung in %).",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anforderung-nach-GEG-16-unterschritten": {
- "description": "Die Anforderung nach $ 16 GEG wurde unterschritten (in %).",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- }
- }
- }
- ]
- }
- ]
- },
- "Wohngebaeude-Anbaugrad-enum": {
- "enum": [
- "freistehend",
- "einseitig angebaut",
- "zweiseitig angebaut"
- ],
- "type": "string"
- },
- "Luftdichtheit-4701-enum": {
- "description": "Luftdichtheit nach DIN V 4701 undicht : gemäß GEG/DIN normal : alle übrigen Gebäude geprüft : erfolgreich geprüft nach § 26 GEG",
- "enum": [
- "undicht",
- "normal",
- "geprüft"
- ],
- "type": "string"
- },
- "Luftdichtheit-18599-enum": {
- "description": "Luftdichtheit nach DIN V 18599",
- "enum": [
- "Gebäudekategorie I",
- "Gebäudekategorie II",
- "Gebäudekategorie III",
- "Gebäudekategorie IV"
- ],
- "type": "string"
- },
- "Heizungsanlage-Daten": {
- "description": "Dieser Block enthält entweder die Beizeichung für die Waermeerzeuger Bauweise nach DIN V 18599 oder DIN V 4701-10.",
- "required": [
- "Nennleistung",
- "Waermeerzeuger-Baujahr",
- "Anzahl-baugleiche",
- "Energietraeger",
- "Primaerenergiefaktor",
- "Emissionsfaktor"
- ],
- "properties": {
- "Nennleistung": {
- "description": "Nennleistung des Wärmeerzeugers in kW, falls aus technischen Gründen keine Angabe der Nennleistung möglich, 0 angeben.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Waermeerzeuger-Baujahr": {
- "description": "Baujahr dieses Wärmeerzeugers oder Jahr der massgeblichen letzten baulichen Veränderung des Wärmeerzeugers.",
- "maximum": 2100,
- "minimum": 1800,
- "pattern": "^(-?[0-9]+)(Z|[+-][0-9][0-9]:[0-9][0-9])?$",
- "type": "string"
- },
- "Anzahl-baugleiche": {
- "description": "Anzahl ggfs. baugleich vorhandener Geräte (Mehrfach-Kessel, Einzelraumheizer usw.), bei nur einem Gerät Angabe \"1\".",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Energietraeger": {
- "$ref": "#/definitions/Energietraeger-enum",
- "description": "vom Wärmeerzeuger verwendeter Energieträger"
- },
- "Primaerenergiefaktor": {
- "description": "Verwendeter Primärenergiefaktor (nicht erneuerbarer Anteil) des Energieträgers (Primärenergiefaktor: f_p) entsprechend Anlage 4 GEG.",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Emissionsfaktor": {
- "description": "Emissionsfaktor für den jeweils eingesetzen Energieträger zur Umrechnung in Treibhausemissionen gemäß Anlage 9 des GEG.",
- "maximum": 100000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object",
- "oneOf": [
- {
- "required": [
- "Waermeerzeuger-Bauweise-18599"
- ],
- "properties": {
- "Waermeerzeuger-Bauweise-18599": {
- "$ref": "#/definitions/Heizwaermeerzeuger-Typ-18599-enum"
- }
- }
- },
- {
- "required": [
- "Waermeerzeuger-Bauweise-4701"
- ],
- "properties": {
- "Waermeerzeuger-Bauweise-4701": {
- "$ref": "#/definitions/Heizwaermeerzeuger-Typ-4701-enum"
- }
- }
- }
- ]
- },
- "Heizwaermeerzeuger-Typ-18599-enum": {
- "description": "Geräte-Grundtyp des Wärmeerzeugers nach DIN V 18599.",
- "enum": [
- "Standard-Heizkessel als Umstell-/Wechselbrandkessel",
- "Standard-Heizkessel als Feststoffkessel (fossiler und biogener Brennstoff)",
- "Standard-Heizkessel als Gas-Spezial-Heizkessel",
- "Standard-Heizkessel als Gebläsekessel (fossiler und biogener Brennstoff)",
- "Standard-Heizkessel als Gebläsekessel mit Brennertausch",
- "Standard-Heizkessel als Pelletkessel",
- "Standard-Heizkessel als Hackschnitzelkessel",
- "Niedertemperatur-Heizkessel als Gas-Spezial-Heizkessel",
- "Niedertemperatur-Heizkessel als Umlaufwasserheizer",
- "Niedertemperatur-Heizkessel als Kombikessel KSp",
- "Niedertemperatur-Heizkessel als Kombikessel DL",
- "Niedertemperatur-Heizkessel als Gebläsekessel",
- "Niedertemperatur-Heizkessel als Gebläsekessel mit Brennertausch",
- "Brennwertkessel (Pellet)",
- "Brennwertkessel (Öl/Gas)",
- "Brennwertkessel (Öl, Gas), verbessert",
- "Fern-/Nahwärme",
- "Dezentrale KWK-Systeme, motorische Systeme",
- "Dezentrale KWK-Systeme, Systeme mit Brennstoffzellen",
- "Elektrisch angetriebene Luft/Wasser-Heizungswärmepumpe",
- "Elektrisch angetriebene Wasser/Wasser-Heizungswärmepumpe",
- "Elektrisch angetriebene Sole/Wasser-Heizungswärmepumpe",
- "Elektrisch angetriebene Abluft/Wasser-Heizungswärmepumpe",
- "Gasmotorisch angetriebene Luft/Wasser-Heizungswärmepumpe",
- "Elektrisch angetriebene Außenluft/Raumluft-Heizungswärmepumpe",
- "Sorptions-Gaswärmepumpe",
- "Gasraumheizer, schornsteingebunden",
- "Gasraumheizer, Außenwand-Gerät",
- "Dezentrale Einzelfeuerstätten",
- "Dezentrale Einzelfeuerstätten, hydraulisch eingebunden",
- "Ölbefeuerter Einzelofen mit Verdampfungsbrenner",
- "Kachelofen",
- "Kohlebefeuerter eisener Ofen",
- "Dezentrale Hallenheizung - indirekte Abgasabfuhr - Hellstrahler",
- "Dezentrale Hallenheizung - direkte Abgasabfuhr - Hellstrahler",
- "Dezentrale Hallenheizung - direkte Abgasabfuhr - Dunkelstrahler",
- "Dezentrale Hallenheizung - direkte Abgasabfuhr - Warmlufterzeuger",
- "Dezentral elektrisch beheizte Speicherheizung",
- "Dezentrale elektrische Direktheizung",
- "Zentral elektrisch beheizte Wärmeerzeuger",
- "Solaranlagen zur Trinkwassererwärmung und Heizungsunterstützung (Solare Kombianlagen)"
- ],
- "type": "string"
- },
- "Heizwaermeerzeuger-Typ-4701-enum": {
- "description": "Diese Auswahl darf nur für dieses Anlagensystem beim vereinfachten Tabellenverfahren für Wohngebäude-Neubauten (EnEV easy) verwendet werden.",
- "enum": [
- "Umstell-/Wechselbrandkessel",
- "Feststoffkessel",
- "Standard-Heizkessel als Gas-Spezial-Heizkessel",
- "Standard-Heizkessel als Gebläsekessel",
- "Standard-Heizkessel als Gebläsekessel mit Brennertausch",
- "Standard-Heizkessel (ab 1995)",
- "Niedertemperatur-Heizkessel als Gas-Spezial-Heizkessel",
- "Niedertemperatur-Heizkessel als Umlaufwasserheizer",
- "Niedertemperatur-Heizkessel als Gebläsekessel",
- "Niedertemperatur-Heizkessel als Gebläsekessel mit Brennertausch",
- "Niedertemperatur-Heizkessel (ab 1995)",
- "Brennwertkessel (bis 1994)",
- "Brennwertkessel (ab 1995)",
- "Brennwertkessel-verbessert",
- "Biomasse-Wärmeerzeuger",
- "Fern-/Nahwärme",
- "Dezentrale Kraft-Wärme-Kopplung",
- "Elektrisch betriebene Luft/Wasser-Heizungswärmepumpe",
- "easy_Elektro-Wärmepumpe-Luft-TWW-dezentral",
- "Elektrisch betriebene Wasser/Wasser-Heizungswärmepumpe",
- "Elektrisch betriebene Sole/Wasser-Heizungswärmepumpe",
- "Elektrisch betriebene Abluft/Wasser-Heizungswärmepumpe",
- "Gasraumheizer, schornsteingebunden",
- "Gasraumheizer, Außenwand-Gerät",
- "Ölbefeuerter Einzelofen",
- "Kachelofen",
- "Kohlebefeuerter eisener Ofen",
- "Dezentrale Elektro-Speicherheizung",
- "Dezentrales elektrisches Direktheizgerät",
- "Zentral elektrisch beheizte Wärmeerzeuger",
- "Solare Heizungsunterstützung",
- "Sonstiges"
- ],
- "type": "string"
- },
- "Energietraeger-enum": {
- "enum": [
- "Heizöl",
- "Erdgas",
- "Flüssiggas",
- "Steinkohle",
- "Braunkohle",
- "Biogas",
- "Biogas, gebäudenah erzeugt",
- "biogenes Flüssiggas",
- "Bioöl",
- "Bioöl, gebäudenah erzeugt",
- "Holz",
- "Strom netzbezogen",
- "Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft)",
- "Verdrängungsstrommix für KWK",
- "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme)",
- "Kälte (Erdkälte, Umgebungskälte)",
- "Abwärme aus Prozessen (prod)",
- "Abwärme aus Prozessen (out)",
- "Wärme aus KWK, gebäudeintegriert oder gebäudenah",
- "Wärme aus Verbrennung von Siedlungsabfällen",
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger",
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger",
- "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger",
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger",
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger",
- "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger"
- ],
- "type": "string"
- },
- "Heizkreisauslegungstemperatur-enum": {
- "enum": [
- "90/70",
- "70/55",
- "55/45",
- "45/35",
- "35/28",
- "Warmluftheizung",
- "nur Einzelraum-Heizgeräte"
- ],
- "type": "string"
- },
- "Trinkwarmwasseranlage-Daten": {
- "description": "Dieser Block enthält entweder die Bezeichung für die Wärmeerzeuger Bauweise nach DIN V 18599 oder nach DIN V 4701-10.",
- "required": [
- "Trinkwarmwassererzeuger-Baujahr",
- "Anzahl-baugleiche"
- ],
- "properties": {
- "Trinkwarmwassererzeuger-Baujahr": {
- "description": "Baujahr dieses Trinkwarmwassererzeugers oder Jahr der massgeblichen letzten baulichen Veränderung des Trinkwarmwassererzeugers.",
- "maximum": 2100,
- "minimum": 1800,
- "pattern": "^(-?[0-9]+)(Z|[+-][0-9][0-9]:[0-9][0-9])?$",
- "type": "string"
- },
- "Anzahl-baugleiche": {
- "description": "Anzahl ggfs. baugleich vorhandener Geräte (mehrfach vorhandene Untertischgeräte usw.), bei nur einem Gerät Angabe \"1\".",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object",
- "oneOf": [
- {
- "required": [
- "Trinkwarmwassererzeuger-Bauweise-18599"
- ],
- "properties": {
- "Trinkwarmwassererzeuger-Bauweise-18599": {
- "$ref": "#/definitions/Trinkwarmwassererzeuger-Typ-18599-enum"
- }
- }
- },
- {
- "required": [
- "Trinkwarmwassererzeuger-Bauweise-4701"
- ],
- "properties": {
- "Trinkwarmwassererzeuger-Bauweise-4701": {
- "$ref": "#/definitions/Trinkwarmwassererzeuger-Typ-4701-enum"
- }
- }
- }
- ]
- },
- "Trinkwarmwassererzeuger-Typ-18599-enum": {
- "description": "Geräte-Grundtyp des Warmwassererzeugers nach DIN V 18599.",
- "enum": [
- "Standard-Heizkessel als Umstell-/Wechselbrandkessel",
- "Standard-Heizkessel als Feststoffkessel (fossiler und biogener Brennstoff)",
- "Standard-Heizkessel als Gas-Spezial-Heizkessel",
- "Standard-Heizkessel als Gebläsekessel (fossiler und biogener Brennstoff)",
- "Standard-Heizkessel als Gebläsekessel mit Brennertausch",
- "Standard-Heizkessel als Pelletkessel",
- "Standard-Heizkessel als Hackschnitzelkessel",
- "Niedertemperatur-Heizkessel als Gas-Spezial-Heizkessel",
- "Niedertemperatur-Heizkessel als Umlaufwasserheizer",
- "Niedertemperatur-Heizkessel als Kombikessel KSp",
- "Niedertemperatur-Heizkessel als Kombikessel DL",
- "Niedertemperatur-Heizkessel als Gebläsekessel",
- "Niedertemperatur-Heizkessel als Gebläsekessel mit Brennertausch",
- "Brennwertkessel (Pellet)",
- "Brennwertkessel (Öl/Gas)",
- "Brennwertkessel (Öl, Gas), verbessert",
- "Gas-Durchlauferhitzer",
- "Fern-/Nahwärme",
- "Dezentrale Kraft-Wärme-Kopplung, motorische Systeme",
- "Dezentrale Kraft-Wärme-Kopplung, Systeme mit Brennstoffzellen",
- "Dezentrale Einzelfeuerstätten, hydraulisch eingebunden",
- "Elektrisch angetriebene Kellerluft/Wasser-Wärmepumpe",
- "Elektrisch angetriebene Luft/Wasser-Wärmepumpe",
- "Elektrisch angetriebene Abluft/Trinkwasser-Wärmepumpe",
- "Elektrisch angetriebene Abluft/Zuluft-Trinkwasser-Wärmepumpe",
- "Elektrisch angetriebene Kellerluft/Trinkwasser-Wärmepumpe",
- "Elektrisch angetriebene Wasser/Wasser-Wärmepumpe",
- "Elektrisch angetriebene Sole/Wasser-Wärmepumpe",
- "Elektrisch angetriebene Abluft/Wasser-Wärmepumpe",
- "Gasmotorisch angetriebene Luft/Wasser-Wärmepumpe",
- "Sorptions-Gaswärmepumpe",
- "Direkt beheizter Trinkwarmwasserspeicher (Gas)",
- "Elektro-Durchlauferhitzer",
- "Elektrisch beheizter Trinkwarmwasserspeicher",
- "Solaranlagen zur Trinkwassererwärmung"
- ],
- "type": "string"
- },
- "Trinkwarmwassererzeuger-Typ-4701-enum": {
- "description": "Diese Bauweise ist nur auszuwählen, wenn die Solaranlage nicht auch der Heizungsunterstützung dient, sondern ausschliesslich die Warmwasserbereitung versorgt.",
- "enum": [
- "über Heizungsanlage beheizter Speicher",
- "Elektro-Speicher",
- "Direkt beheizter Trinkwarmwasserspeicher (Gas)",
- "Elektro-Durchlauferhitzer",
- "Solare Trinkwarmwasserbereitung",
- "Sonstiges"
- ],
- "type": "string"
- },
- "Wohngebaeude-Bedarfs-Daten-18599": {
- "description": "Dieser Block enthält im Falle eines Wohngebäudes mit Nachweis nach DIN V 18599 die Bedarfswerte.",
- "required": [
- "Wohngebaeude-Anbaugrad",
- "Bruttovolumen",
- "durchschnittliche-Geschosshoehe",
- "Bauteil-Opak",
- "Waermebrueckenzuschlag",
- "Transmissionswaermesenken",
- "Luftdichtheit",
- "Lueftungswaermesenken",
- "Waermequellen-durch-solare-Einstrahlung",
- "Interne-Waermequellen",
- "Heizsystem",
- "Pufferspeicher-Nenninhalt",
- "Auslegungstemperatur",
- "Heizsystem-innerhalb-Huelle",
- "Warmwasserbereitungssystem",
- "Trinkwarmwasserspeicher-Nenninhalt",
- "Trinkwarmwasserverteilung-Zirkulation",
- "Vereinfachte-Datenaufnahme",
- "spezifischer-Transmissionswaermetransferkoeffizient-Ist",
- "Innovationsklausel",
- "Quartiersregelung",
- "Primaerenergiebedarf-Hoechstwert-Bestand",
- "Energietraeger-Liste",
- "Endenergiebedarf-Waerme-AN",
- "Endenergiebedarf-Hilfsenergie-AN",
- "Endenergiebedarf-Gesamt",
- "Primaerenergiebedarf-AN",
- "Energieeffizienzklasse"
- ],
- "properties": {
- "Wohngebaeude-Anbaugrad": {
- "$ref": "#/definitions/Wohngebaeude-Anbaugrad-enum",
- "description": "Anbaugrad des Gebäudes bzw. Gebäudeteils an (beheizte) Nachbargebäude."
- },
- "Bruttovolumen": {
- "description": "Beheiztes Gebäudevolumen des Gebäudes/Gebäudeteils (ganze Kubikmeter) (Bruttovolumen: V_e).",
- "maximum": 1000000,
- "minimum": 0,
- "type": "integer"
- },
- "durchschnittliche-Geschosshoehe": {
- "description": "Durchschnittliche Geschosshöhe hG des Gebäudes/Gebäudeteils in m zur Festlegung, über welche Formel (Anl. 1 Nr. 1.3.3 Satz 1 oder 2) die Nutzfläche AN bestimmt wurde (Durchschnittliche Geschosshöhe: h_G).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Bauteil-Opak": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Opak-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Opak-Daten"
- },
- "maxItems": 10000,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Bauteil-Transparent": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Transparent-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Transparent-Daten"
- },
- "maxItems": 10000,
- "type": "array"
- }
- ]
- },
- "Bauteil-Dach": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Dach-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Dach-Daten"
- },
- "maxItems": 10000,
- "type": "array"
- }
- ]
- },
- "Waermebrueckenzuschlag": {
- "description": "Wert des Wärmebrückenzuschlags für die Gebäudehülle (Wärmebrückenzuschlag: delta_U_WB).",
- "maximum": 0.999,
- "minimum": -0.999,
- "type": "number"
- },
- "Transmissionswaermesenken": {
- "description": "Transmissionswärmesenken in kWh/a (Transmissionswärmesenken: Q_T).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Luftdichtheit": {
- "$ref": "#/definitions/Luftdichtheit-18599-enum",
- "description": "Luftdichtheit der Gebäudehülle."
- },
- "Lueftungswaermesenken": {
- "description": "Lüftungswärmesenken in kWh/a (Lüftungswärmesenken: Q_V).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Waermequellen-durch-solare-Einstrahlung": {
- "description": "Summe der Wärmequellen durch solare Einstrahlung in kWh/a (Wärmequellen durch solare Einstrahlung: Q_S).",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "Interne-Waermequellen": {
- "description": "Summe der inneren Gewinne in kWh/a (Interne-Wärmequellen: Q_I,source) Info: Interne Wärmequellen nach DIN V 18599 berücksichtigen die ungeregelten Wärmequellen aus der Anlagentechnik nicht.",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "Heizsystem": {
- "oneOf": [
- {
- "$ref": "#/definitions/Heizungsanlage-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Heizungsanlage-Daten"
- },
- "maxItems": 200,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Pufferspeicher-Nenninhalt": {
- "description": "Volumen eines ggfs. vorhandenen Heizungs-Pufferspeichers (keiner =0) in Liter (Pufferspeicher-Nenninhalt: V_s).",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Auslegungstemperatur": {
- "$ref": "#/definitions/Heizkreisauslegungstemperatur-enum",
- "description": "Temperaturniveau der Heizungsverteilung Vorlauf/Rücklauf, bzw. Angabe von Luftheizsystem oder ausschliesslicher Beheizung über Einzelraumheizgeräte; anzugeben ist die Temperatur des höchsten Kreises, bei krummen Werten ist die nach Vorlauftemperatur nächst höhere Auswahl anzugeben."
- },
- "Heizsystem-innerhalb-Huelle": {
- "description": "TRUE, wenn alle Wärmeerzeuger innerhalb der thermischen Gebäudehülle stehen.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Warmwasserbereitungssystem": {
- "oneOf": [
- {
- "$ref": "#/definitions/Trinkwarmwasseranlage-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Trinkwarmwasseranlage-Daten"
- },
- "maxItems": 200,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Trinkwarmwasserspeicher-Nenninhalt": {
- "description": "Volumen eines ggfs. vorhandenen Warmwasserspeichers (kein Speicher = 0) bzw. Summe der Volumina bei mehreren Speichern, in Liter (Trinkwarmwasserspeicher-Nenninhalt: V_s).",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Trinkwarmwasserverteilung-Zirkulation": {
- "description": "Ist zur Warmwasserverteilung eine Trinkwasser-seitige Zirkulation vorhanden?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Vereinfachte-Datenaufnahme": {
- "description": "Wurden Regeln zur vereinfachten Datenaufnahme nach § 50 (4) GEG bzw. Bekanntmachungen angewendet?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "spezifischer-Transmissionswaermetransferkoeffizient-Ist": {
- "description": "Spezifischer auf die wärmeübertragende Umfassungsfläche bezogener Transmissionswärmeverlust HT', Ist-Wert des Gebäudes, in W/m²K (spezifischer Transmissionswärmetransferkoeffizient: H_T(Strich)).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "spezifischer-Transmissionswaermetransferkoeffizient-Hoechstwert": {
- "description": "Spezifischer auf die wärmeübertragende Umfassungsfläche bezogener Transmissionswärmeverlust HT', Anforderungswert, in W/m²K, nur bei Neubau und wesentlicher Modernisierung/Erweiterungen (spezifischer Transmissionswärmetransferkoeffizient: H_T(Strich)).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "angerechneter-lokaler-erneuerbarer-Strom": {
- "description": "Größe des Abzugs (in kWh/a m2) bei der Primärenergie bzw. bei der Endenergie für den gebäudenah erzeugten Strom aus erneuerbarer Energie nach der entsprechenden Bilanzierungsregel (vgl. GEG §23 (4))",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Innovationsklausel": {
- "description": "Angabe ob Innovationsklausel gemäß § 103 (1) GEG 2020 angewendet wurde. (Alternative Anforderungen: Treibhausgasemissionen, Höchstwert der Endenergiebedarfs + Transmissionswärmeverlust (nur für Neubau und WG) + Wärmedurchgangskoeffizienten der wärmeübertragenden Umfassungsfläche (nur für Neubau und NWG) - Aussetzung der Hauptanforderungen (Neubau § 10, Bestand § 50))",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Quartiersregelung": {
- "description": "Angabe ob Quartiersregelung gemäß § 103 (3) - Gesamtbilanzierung für Wärmeversorgung zusammenhängender Gebäude - zutreffend ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Primaerenergiebedarf-Hoechstwert-Bestand": {
- "description": "Primärenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Energietraeger-Liste": {
- "oneOf": [
- {
- "$ref": "#/definitions/Endenergie-Energietraeger-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Endenergie-Energietraeger-Daten"
- },
- "maxItems": 10,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Endenergiebedarf-Waerme-AN": {
- "description": "Endenergiekennwert Wärme in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergiebedarf-Wärme: Q_f).",
- "exclusiveMaximum": 10000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Hilfsenergie-AN": {
- "description": "Endenergiekennwert Hilfsenergie in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergiebedarf-Hilfsenergie: W_f).",
- "exclusiveMaximum": 10000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Gesamt": {
- "description": "Endenergiekennwert Gesamt in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "exclusiveMaximum": 10000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-AN": {
- "description": "Primärenergiekennwert in kWh/m²a bezogen auf die energetische Nutzfläche (Primärenergiebedarf: Q_p).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Energieeffizienzklasse": {
- "$ref": "#/definitions/Energieeffizienzklasse-enum",
- "description": "Energieeffizienzklasse des Gebäudes."
- },
- "Art-der-Nutzung-erneuerbaren-Energie-1": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum",
- "description": "Es wird die erste Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau."
- },
- "Deckungsanteil-1": {
- "description": "Deckungsanteil in % für erste Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anteil-der-Pflichterfuellung-1": {
- "description": "Pflichterfüllungsanteil in % für die erste Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)",
- "maximum": 999,
- "minimum": 0,
- "type": "integer"
- },
- "Art-der-Nutzung-erneuerbaren-Energie-2": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum",
- "description": "Es wird die zweite Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau."
- },
- "Deckungsanteil-2": {
- "description": "Deckungsanteil in % für zweite Angabe Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anteil-der-Pflichterfuellung-2": {
- "description": "Pflichterfüllungsanteil in % für die zweite Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)",
- "maximum": 999,
- "minimum": 0,
- "type": "integer"
- },
- "verschaerft-nach-GEG-45-eingehalten": {
- "description": "Der gemäß § 45 GEG um diese Prozentzahl verschärfte Anforderungswert (15 % Unterschreitung Transmissionswärmeverlust) als Maßnahme zur Einsparung von Energie ist eingehalten.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "spezifischer-Transmissionswaermetransferkoeffizient-verschaerft": {
- "description": "Nach EEWärmeG verschärfter Anforderungswert für den spezifischen auf die wärmeübertragende Umfassungsfläche bezogenen Transmissionswärmeverlust HT' in W/m²K (spezifischer-Transmissionswärmetransferkoeffizient-verschärft: H_T(Strich)).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Sommerlicher-Waermeschutz": {
- "description": "Sind die Anforderungen an den sommerlichen Wärmeschutz eingehalten? Relevant nur bei Neubau.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Treibhausgasemissionen-Zusaetzliche-Verbrauchsdaten": {
- "description": "Angabe der Treibhausgasemissionen in kg als CO2 Äquivalent/(m²a); nur bei kombinierten Energieausweisen (Bedarf/Verbrauch), zusammen mit der Übermittlung der zusätzlichen Verbrauchsdaten.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- },
- "Zusaetzliche-Verbrauchsdaten": {
- "$ref": "#/definitions/Wohngebaeude-Verbrauchs-Daten",
- "description": "Bei Energieausweisen auf Bedarfsbasis können neben den Bedarfsangaben zusätzlich Angaben zum Verbrauch im Energieausweis dargestellt werden, die dann hier entsprechend integriert werden. Die Ermittlung der Fläche AN aus der Wohnfläche darf in den Wohngebäude-Verbrauchs-Daten dann nicht angekreuzt sein, da die Fläche nach einem für Bedarfsausweise zulässigen Verfahren ermittelt worden sein muss."
- }
- },
- "type": "object",
- "allOf": [
- {
- "oneOf": [
- {
- "required": [
- "Endenergiebedarf-Hoechstwert-Bestand",
- "Treibhausgasemissionen-Hoechstwert-Bestand"
- ],
- "properties": {
- "Endenergiebedarf-Hoechstwert-Bestand": {
- "description": "Endenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Treibhausgasemissionen-Hoechstwert-Bestand": {
- "description": "Anforderungswert für Treibhausgasemissionen Modernisierter Altbau in kg/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- }
- }
- },
- {
- "required": [
- "Primaerenergiebedarf-Hoechstwert-Neubau",
- "Endenergiebedarf-Hoechstwert-Neubau",
- "Treibhausgasemissionen-Hoechstwert-Neubau"
- ],
- "properties": {
- "Primaerenergiebedarf-Hoechstwert-Neubau": {
- "description": "Primärenergie-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche, bei Neubau im Energieausweis einzutragen. (Primärenergiebedarf: Q_p,Ref).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Hoechstwert-Neubau": {
- "description": "Endenergiebedarf-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Treibhausgasemissionen-Hoechstwert-Neubau": {
- "description": "Anforderungswert für Treibhausgasemissionen Neubau (Kennwert des Referenzgebäudes) in kg/m²a bezogen auf die energetische Nutzfläche.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- }
- }
- }
- ]
- },
- {
- "oneOf": [
- {
- "required": [
- "nicht-verschaerft-nach-GEG-34"
- ],
- "properties": {
- "nicht-verschaerft-nach-GEG-34": {
- "description": "Keine Maßnahmen nach § 45 in Verbindung mit $ 34.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- },
- {
- "required": [
- "verschaerft-nach-GEG-34",
- "Anforderung-nach-GEG-16-unterschritten"
- ],
- "properties": {
- "verschaerft-nach-GEG-34": {
- "description": "Die in Verbindung mit § 34 GEG Maßnahmen nach § 45 in Kombination zur Nutzung erneuerbarer Energien zur Deckung des Wärme- und Kälteenergiebedarfs sind eingehalten (Anteil der Pflichterfüllung in %).",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anforderung-nach-GEG-16-unterschritten": {
- "description": "Die Anforderung nach $ 16 GEG wurde unterschritten (in %).",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- }
- }
- }
- ]
- }
- ]
- },
- "Nichtwohngebaeude-Daten": {
- "description": "Dieser Block enthält entweder Verbrauchs- oder Bedarfswerte; beim Bedarfsausweis können zusätzliche Verbrauchsangaben angeführt werden.",
- "required": [
- "Hauptnutzung-Gebaeudekategorie",
- "Nettogrundflaeche"
- ],
- "properties": {
- "Hauptnutzung-Gebaeudekategorie": {
- "$ref": "#/definitions/Nutzung-Gebaeudekategorie-enum",
- "description": "Pflichtangabe der Hauptnutzungsart des Gebäudes. Die Auswahl der Hauptnutzung-Gebaeudekategorie ergibt sich aus der \"Bekanntmachung der Regeln für Energieverbrauchswerte und der Vergleichswerte im Nichtwohngebäudebestand\" unter der Anlage 1 Tabelle 1 Teilenergiekennwerte (TEK) nach Gebäudekategorien."
- },
- "Hauptnutzung-Gebaeudekategorie-Sonstiges-Beschreibung": {
- "description": "Sollte keine der 52 Gebäudekategorien laut Bekanntmachung für die Hauptnutzung zutreffend sein, muss in Hauptnutzung-Gebaeudekategorie-Sonstiges-Beschreibung eine alternative Bezeichnung eingetragen werden. Für die Seite 3 im Energieverbrauchsausweis Nichtwohngebäude darf die Gebäudekategorie '53:Sonstiges' nicht verwendet werden.",
- "pattern": ".{1,84}",
- "type": "string"
- },
- "Nettogrundflaeche": {
- "description": "Nettogrundfläche als energetische Nutzfläche eines Gebäudes/Gebäudeteils nach DIN V 18599: 2018-09 (ganze Quadratmeter) (Nettogrundfläche: A_NGF).",
- "maximum": 1000000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object",
- "oneOf": [
- {
- "required": [
- "Verbrauchswerte-NWG"
- ],
- "properties": {
- "Verbrauchswerte-NWG": {
- "$ref": "#/definitions/Nichtwohngebaeude-Verbrauchs-Daten"
- }
- }
- },
- {
- "required": [
- "Bedarfswerte-NWG"
- ],
- "properties": {
- "Bedarfswerte-NWG": {
- "$ref": "#/definitions/Nichtwohngebaeude-Bedarfs-Daten"
- }
- }
- }
- ]
- },
- "Energieeffizienzklasse-enum": {
- "enum": [
- "A+",
- "A",
- "B",
- "C",
- "D",
- "E",
- "F",
- "G",
- "H"
- ],
- "type": "string"
- },
- "Nichtwohngebaeude-Verbrauchs-Daten": {
- "description": "Dieser Block enthält im Falle eines Nichtwohngebäude-Verbrauchsausweises die Verbrauchsdaten.",
- "required": [
- "Energietraeger",
- "Warmwasser-enthalten",
- "Kuehlung-enthalten",
- "Strom-Daten",
- "Leerstandszuschlag-Heizung",
- "Leerstandszuschlag-Warmwasser",
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte",
- "Leerstandszuschlag-Strom",
- "Nutzung-Gebaeudekategorie",
- "Endenergieverbrauch-Waerme",
- "Endenergieverbrauch-Strom",
- "Endenergieverbrauch-Waerme-Vergleichswert",
- "Endenergieverbrauch-Strom-Vergleichswert",
- "Primaerenergieverbrauch"
- ],
- "properties": {
- "Energietraeger": {
- "oneOf": [
- {
- "$ref": "#/definitions/Energietraeger-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Energietraeger-Daten"
- },
- "maxItems": 8,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Warmwasser-enthalten": {
- "description": "Ist als TRUE anzugeben, wenn mindestens einer der (ggfs. mehreren) Heizenergieträger auch zur Warmwasserbereitung dient, die entspr. Mengen sind in der Verbrauchsliste anzugeben, entspricht dem Kreuzchenfeld im Energieausweis-Nichtwohngebäude, Verbrauchsseite, direkt links unter der Verbrauchsskala Endenergieverbrauch Wärme.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Kuehlung-enthalten": {
- "description": "Ist als TRUE anzugeben, wenn mindestens einer der (ggfs. mehreren) Heizenergieträger auch zur Kühlung dient, die entspr. Mengen sind in der Verbrauchsliste anzugeben, entspricht dem Kreuzchenfeld im Energieausweis-Nichtwohngebäude, Verbrauchsseite, direkt links unter der Verbrauchsskala Endenergieverbrauch Kühlung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Strom-Daten": {
- "description": "Es ist anzugeben, was im Stromverbrauch alles enthalten ist, entsprechend der Kreuzchenfelder im Energieausweis sowie zusätzlich Verbrauchsperioden-Strom.",
- "required": [
- "Stromverbrauch-enthaelt-Zusatzheizung",
- "Stromverbrauch-enthaelt-Warmwasser",
- "Stromverbrauch-enthaelt-Lueftung",
- "Stromverbrauch-enthaelt-Beleuchtung",
- "Stromverbrauch-enthaelt-Kuehlung",
- "Stromverbrauch-enthaelt-Sonstiges",
- "Zeitraum-Strom"
- ],
- "properties": {
- "Stromverbrauch-enthaelt-Zusatzheizung": {
- "description": "Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Zusatzheizung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Stromverbrauch-enthaelt-Warmwasser": {
- "description": "Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Warmwasserbereitung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Stromverbrauch-enthaelt-Lueftung": {
- "description": "Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Lüftung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Stromverbrauch-enthaelt-Beleuchtung": {
- "description": "Angaben, was der Stromverbrauch für Funktionalitäten umfasst: eingebaute Beleuchtung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Stromverbrauch-enthaelt-Kuehlung": {
- "description": "Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Kühlung",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Stromverbrauch-enthaelt-Sonstiges": {
- "description": "Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Sonstiges.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Zeitraum-Strom": {
- "oneOf": [
- {
- "$ref": "#/definitions/Zeitraum-Strom-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Zeitraum-Strom-Daten"
- },
- "maxItems": 40,
- "minItems": 1,
- "type": "array"
- }
- ]
- }
- }
- },
- "Leerstandszuschlag-Heizung": {
- "$ref": "#/definitions/Leerstandszuschlag-Heizung-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- },
- "Leerstandszuschlag-Warmwasser": {
- "$ref": "#/definitions/Leerstandszuschlag-Warmwasser-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- },
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte": {
- "$ref": "#/definitions/Leerstandszuschlag-thermisch-erzeugte-Kaelte-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- },
- "Leerstandszuschlag-Strom": {
- "$ref": "#/definitions/Leerstandszuschlag-Strom-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- },
- "Nutzung-Gebaeudekategorie": {
- "oneOf": [
- {
- "$ref": "#/definitions/Nutzung-Gebaeudekategorie-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Nutzung-Gebaeudekategorie-Daten"
- },
- "maxItems": 5,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Endenergieverbrauch-Waerme": {
- "description": "Endenergiekennwert Heizung und zentrales Warmwasser in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergieverbrauch Wärme: e(Strich)_Vb,12mth).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergieverbrauch-Strom": {
- "description": "Endenergiekennwert Strom in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergieverbrauch Strom: e(Strich)_Vs,12mth).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergieverbrauch-Waerme-Vergleichswert": {
- "description": "Endenergievergleichswert Heizung und zentrales Warmwasser in kWh/m²a bezogen auf die energetische Nutzfläche, entsprechend den anteiligen Nutzungen.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergieverbrauch-Strom-Vergleichswert": {
- "description": "Endenergievergleichswert Strom in kWh/m²a bezogen auf die energetische Nutzfläche, entsprechend den anteiligen Nutzungen.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergieverbrauch": {
- "description": "Primärenergiekennwert in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "Zeitraum-Strom-Daten": {
- "description": "Umfasst den allgemeinen Stromverbrauch im Gebäude.",
- "required": [
- "Startdatum",
- "Enddatum",
- "Energieverbrauch-Strom"
- ],
- "properties": {
- "Startdatum": {
- "description": "Anfangsdatum der Periode, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Enddatum": {
- "description": "Enddatum der Periode, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Energieverbrauch-Strom": {
- "description": "Verbrauchswert Strom in kWh.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Energieverbrauchsanteil-elektrisch-erzeugte-Kaelte": {
- "description": "Im Verbrauchswert enthaltener Wert für elektrisch erzeugte Kälte in kWh.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Nutzung-Gebaeudekategorie-Daten": {
- "required": [
- "Gebaeudekategorie",
- "Flaechenanteil-Nutzung",
- "Vergleichswert-Waerme",
- "Vergleichswert-Strom"
- ],
- "properties": {
- "Gebaeudekategorie": {
- "$ref": "#/definitions/Nutzung-Gebaeudekategorie-enum",
- "description": "Angabe der Nutzung des Gebäudes in Reihenfolge ihres Anteils der Energiebezugsfläche. Die Auswahl der Nutzung-Gebaeudekategorie ergibt sich aus der \"Bekanntmachung der Regeln für Energieverbrauchswerte und der Vergleichswerte im Nichtwohngebäudebestand\" unter der Anlage 1 Tabelle 1 Teilenergiekennwerte (TEK) nach Gebäudekategorien."
- },
- "Flaechenanteil-Nutzung": {
- "description": "Prozentualer Anteil dieser Nutzung an der gesamten Nettogrundfläche des Gebäudes.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Vergleichswert-Waerme": {
- "description": "Angabe zum zugehörigen Vergleichswert Wärme der angegebenen Nutzungskategorie des Gebäudes.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Vergleichswert-Strom": {
- "description": "Angabe zum zugehörigen Vergleichswert Strom der angegebenen Nutzungskategorie des Gebäudes.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "Nutzung-Gebaeudekategorie-enum": {
- "description": "Im Fall der Nutzung von '53:Sonstiges' ist dann auch das Feld 'Hauptnutzung-Gebaeudekategorie-Sonstiges-Beschreibung' zu befüllen. Für die Seite 3 im Energieverbrauchsausweis Nichtwohngebäude darf die Gebäudekategorie '53:Sonstiges' nicht verwendet werden.",
- "enum": [
- "1:Verwaltungsgebäude (allgemein)",
- "2:Parlaments- und Gerichtsgebäude",
- "3:Ministerien u. Ämter u. Behörden",
- "4:Polizeidienstgebäude",
- "5:Gebäude für öffentliche Bereitschaftsdienste",
- "6:Feuerwehrdienstgebäude",
- "7:Bürogebäude",
- "8:Bürogebäude - überwiegend Großraumbüros",
- "9:Bankgebäude",
- "10:Hochschule und Forschung (allgemein)",
- "11:Gebäude für Lehre",
- "12:Institute für Lehre und Forschung",
- "13:Gebäude für Forschung ohne Lehre",
- "14:Laborgebäude",
- "15:Gesundheitswesen (allgemein)",
- "16:Krankenhäuser (ohne Forschung und Lehre)",
- "17:Krankenhäuser (ohne Forschung und Lehre) und teilstationäre Versorgung",
- "18:Medizinische Einrichtungen für nicht stationäre Versorgung",
- "19:Gebäude für Reha, Kur und Genesung",
- "20:Bildungseinrichtungen (allgemein)",
- "21:Schulen",
- "22:Kinderbetreuungseinrichtungen",
- "23:Kultureinrichtungen (allgemein)",
- "24:Bibliotheken / Archive",
- "25:Ausstellungsgebäude",
- "26:Veranstaltungsgebäude",
- "27:Gemeinschafts- / Gemeindehäuser",
- "28:Opern / Theater",
- "29:Sporteinrichtungen (allgemein)",
- "30:Sporthallen",
- "31:Fitnessstudios",
- "32:Schwimmhallen",
- "33:Gebäude für Sportaußenanlagen",
- "34:Verpflegungseinrichtungen (allgemein)",
- "35:Beherbergungsstätten (allgemein)",
- "36:Hotels / Pensionen",
- "37:Jugendherbergen u. Ferienhäuser",
- "38:Gaststätten",
- "39:Mensen u. Kantinen",
- "40:Gewerbliche und industrielle Gebäude (allgemein)",
- "41:Gewerbliche und industrielle Gebäude - schwere Arbeit, stehende Tätigkeit",
- "42:Gewerbliche und industrielle Gebäude - Mischung aus leichter u. schwerer Arbeit",
- "43:Gewerbliche und industrielle Gebäude - leichte Arbeit, überwiegend sitzende Tätigkeit",
- "44:Gebäude für Lagerung",
- "45:Verkaufsstätten (allgemein)",
- "46:Kaufhäuser",
- "47:Kaufhauszentren / Einkaufszentren",
- "48:Märkte",
- "49:Märkte mit sehr hohem Anteil von Kühlung für Lebensmittel",
- "50:Läden",
- "51:Läden mit sehr hohem Anteil von Kühlung für Lebensmittel",
- "52:Fernmeldetechnik",
- "53:Sonstiges"
- ],
- "type": "string"
- },
- "Nichtwohngebaeude-Bedarfs-Daten": {
- "description": "Dieser Block enthält im Falle eines Nichtwohngebäudes die Bedarfswerte.",
- "required": [
- "Bruttovolumen",
- "Bauteil-Opak",
- "Waermebrueckenzuschlag",
- "Transmissionswaermesenken",
- "Luftdichtheit",
- "Zone",
- "Heizsystem",
- "Pufferspeicher-Nenninhalt",
- "Auslegungstemperatur",
- "Heizsystem-innerhalb-Huelle",
- "Trinkwarmwasserspeicher-Nenninhalt",
- "Trinkwarmwasserverteilung-Zirkulation",
- "Deckungsanteil-RLT-Kuehlung",
- "Deckungsanteil-Direkte-Raumkuehlung",
- "Automatisierungsgrad",
- "Automatisierungsgrad-Technisches-Gebaeudemanagement",
- "Innovationsklausel",
- "Quartiersregelung",
- "Primaerenergiebedarf-Hoechstwert-Bestand",
- "Energietraeger-Liste",
- "Endenergiebedarf-Waerme-NGF",
- "Endenergiebedarf-Strom-NGF",
- "Endenergiebedarf-Gesamt-NGF",
- "Primaerenergiebedarf-NGF",
- "Ein-Zonen-Modell",
- "Vereinfachte-Datenaufnahme",
- "Vereinfachungen-18599-1-D"
- ],
- "properties": {
- "Bruttovolumen": {
- "description": "Konditioniertes brutto-Gebäudevolumen des Gebäudes/Gebäudeteils (ganze Kubikmeter) (Bruttovolumen: V_e) ggf. überschlägig ermittelter Wert.",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Bauteil-Opak": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Opak-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Opak-Daten"
- },
- "maxItems": 10000,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Bauteil-Transparent": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Transparent-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Transparent-Daten"
- },
- "maxItems": 10000,
- "type": "array"
- }
- ]
- },
- "Bauteil-Dach": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Dach-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Dach-Daten"
- },
- "maxItems": 10000,
- "type": "array"
- }
- ]
- },
- "Waermebrueckenzuschlag": {
- "description": "Wert des Wärmebrückenzuschlags für die Gebäudehülle (Wärmebrückenzuschlag: delta_U_WB).",
- "maximum": 0.999,
- "minimum": -0.999,
- "type": "number"
- },
- "mittlere-Waermedurchgangskoeffizienten": {
- "description": "Sind die Anforderungen an die mittleren Wärmedurchgangskoeffizienten der verschiedenen Hüllflächenbauteile (Anlage 3 GEG) eingehalten? Relevant nur bei Neubau und umfassender Modernisierung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Transmissionswaermesenken": {
- "description": "Transmissionswärmesenken in kWh/a (Transmissionswärmesenken: Q_T).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Luftdichtheit": {
- "$ref": "#/definitions/Luftdichtheit-18599-enum",
- "description": "Luftdichtheit der Gebäudehülle."
- },
- "Zone": {
- "oneOf": [
- {
- "$ref": "#/definitions/Zonen-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Zonen-Daten"
- },
- "maxItems": 200,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Heizsystem": {
- "oneOf": [
- {
- "$ref": "#/definitions/Heizungsanlage-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Heizungsanlage-Daten"
- },
- "maxItems": 200,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Pufferspeicher-Nenninhalt": {
- "description": "Volumen eines ggfs. vorhandenen Heizungs-Pufferspeichers (keiner = 0) in Liter (Pufferspeicher-Nenninhalt: V_s).",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Auslegungstemperatur": {
- "$ref": "#/definitions/Heizkreisauslegungstemperatur-enum",
- "description": "Temperaturniveau der Heizungsverteilung Vorlauf/Rücklauf, bzw. Angabe von Luftheizsystem oder ausschliesslicher Beheizung über Einzelraumheizgeräte; anzugeben ist die Temperatur des höchsten Kreises, bei krummen Werten ist die nach Vorlauftemperatur nächst höhere Auswahl anzugeben."
- },
- "Heizsystem-innerhalb-Huelle": {
- "description": "TRUE, wenn alle Wärmeerzeuger innerhalb der thermischen Gebäudehülle stehen.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Warmwasserbereitungssystem": {
- "oneOf": [
- {
- "$ref": "#/definitions/Trinkwarmwasseranlage-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Trinkwarmwasseranlage-Daten"
- },
- "maxItems": 50,
- "type": "array"
- }
- ]
- },
- "Trinkwarmwasserspeicher-Nenninhalt": {
- "description": "Volumen eines ggfs. vorhandenen Warmwasserspeichers (kein Speicher = 0) bzw. Summe der Volumina bei mehreren Speichern, in Liter (Trinkwarmwasserspeicher-Nenninhalt: V_s).",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Trinkwarmwasserverteilung-Zirkulation": {
- "description": "Ist zur Warmwasserverteilung eine Trinkwasser-seitige Zirkulation vorhanden?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Kaelteanlage": {
- "oneOf": [
- {
- "$ref": "#/definitions/Kaelteanlage-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Kaelteanlage-Daten"
- },
- "maxItems": 30,
- "type": "array"
- }
- ]
- },
- "Deckungsanteil-RLT-Kuehlung": {
- "description": "Anteil der Kälte, die über RLT-Anlagen verteilt und übergeben wird, in %.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Deckungsanteil-Direkte-Raumkuehlung": {
- "description": "Anteil der Kälte, die über Direktkühlanlagen (Kühldecken, Kühlsegel usw.) verteilt und übergeben wird, in %.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "RLT-System": {
- "oneOf": [
- {
- "$ref": "#/definitions/RLT-Anlagen-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/RLT-Anlagen-Daten"
- },
- "maxItems": 100,
- "type": "array"
- }
- ]
- },
- "Automatisierungsgrad": {
- "$ref": "#/definitions/Automatisierungsgrad-enum",
- "description": "Überwiegende Gebäueautomationsklasse für Heizen, Kühlen und mechanisches Belüften (soweit vorhanden) in den Nutzungsräumen nach DIN V 18599-11."
- },
- "Automatisierungsgrad-Technisches-Gebaeudemanagement": {
- "$ref": "#/definitions/Automatisierungsgrad-Technisches-Gebaeudemanagement-enum",
- "description": "Gebäudeautomationsklasse für das übergreifende Gebäudemanagement nach DIN V 18599-11, Tab. 3 Z. 94-96."
- },
- "angerechneter-lokaler-erneuerbarer-Strom": {
- "description": "Größe des Abzugs (in kWh/a m2) bei der Primärenergie bzw. bei der Endenergie für den gebäudenah erzeugten Strom aus erneuerbarer Energie nach der entsprechenden Bilanzierungsregel (vgl. GEG §23 (4))",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Innovationsklausel": {
- "description": "Angabe ob Innovationsklausel gemäß § 103 (1) GEG 2020 angewendet wurde. (Alternative Anforderungen: Treibhausgasemissionen, Höchstwert der Endenergiebedarfs + Transmissionswärmeverlust (nur für Neubau und WG) + Wärmedurchgangskoeffizienten der wärmeübertragenden Umfassungsfläche (nur für Neubau und NWG) - Aussetzung der Hauptanforderungen (Neubau § 10, Bestand § 50))",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Quartiersregelung": {
- "description": "Angabe ob Quartiersregelung gemäß § 103 (3) - Gesamtbilanzierung für Wärmeversorgung zusammenhängender Gebäude - zutreffend ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Primaerenergiebedarf-Hoechstwert-Bestand": {
- "description": "Primärenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche. Außerdem richtet sich die Länge der grün-rot-Skala nach diesem Wert (Skalenendewert das Dreifache des Wertes), daher ist der Wert immer erforderlich. (Primärenergiebedarf: Q_p,Ref)",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Energietraeger-Liste": {
- "oneOf": [
- {
- "$ref": "#/definitions/Endenergie-Energietraeger-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Endenergie-Energietraeger-Daten"
- },
- "maxItems": 10,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Endenergiebedarf-Waerme-NGF": {
- "description": "Endenergiekennwert Wärme in kWh/m²a bezogen auf die Nettogrundfläche (Endenergiebedarf-Wärme: Q_f).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Strom-NGF": {
- "description": "Endenergiekennwert Strom in kWh/m²a bezogen auf die Nettogrundfläche (Endenergiebedarf-Strom: Q_f).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Gesamt-NGF": {
- "description": "Endenergiekennwert Gesamt in kWh/m²a bezogen auf die Nettogrundfläche.",
- "exclusiveMaximum": 10000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-NGF": {
- "description": "Primärenergiekennwert in kWh/m²a bezogen auf die Nettogrundfläche (Primärenergiebedarf: Q_p).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Ein-Zonen-Modell": {
- "description": "Wurde das Verfahren nach Anlage 6 zu § 32 Absatz 4 GEG (Ein-Zonen-Modell) angewendet?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Vereinfachte-Datenaufnahme": {
- "description": "Wurden Regeln zur vereinfachten Datenaufnahme nach § 50 (4) GEG bzw. Bekanntmachungen angewendet?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Vereinfachungen-18599-1-D": {
- "description": "Wurden Vereinfachungen nach § 21 Absatz 2 GEG und DIN V 18599-1:2018-09 Anhang D angewendet? (auch für zu errichtende Nichtwohngebäude/ Neubau anwendbar)",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Art-der-Nutzung-erneuerbaren-Energie-1": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum",
- "description": "Es wird die erste Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau."
- },
- "Deckungsanteil-1": {
- "description": "Deckungsanteil in % für erste Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anteil-der-Pflichterfuellung-1": {
- "description": "Pflichterfüllungsanteil in % für die erste Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)",
- "maximum": 999,
- "minimum": 0,
- "type": "integer"
- },
- "Art-der-Nutzung-erneuerbaren-Energie-2": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum",
- "description": "Es wird die zweite Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau"
- },
- "Deckungsanteil-2": {
- "description": "Deckungsanteil in % für zweite Angabe Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anteil-der-Pflichterfuellung-2": {
- "description": "Pflichterfüllungsanteil in % für die zweite Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)",
- "maximum": 999,
- "minimum": 0,
- "type": "integer"
- },
- "verschaerft-nach-GEG-45-eingehalten": {
- "description": "Der gemäß § 45 GEG um diese Prozentzahl verschärfte Anforderungswert (15 % Unterschreitung Wärmedurchgangskoeffizienten) als Maßnahme zur Einsparung von Energie ist eingehalten.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Anforderung-nach-GEG-52-Renovierung-eingehalten": {
- "description": "Die Anforderungen des § 52 Absatz 1 GEG werden eingehalten. Relevant nur bei Bestandsgebäuden.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Sommerlicher-Waermeschutz": {
- "description": "Sind die Anforderungen an den sommerlichen Wärmeschutz eingehalten? Relevant nur bei Neubau.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Treibhausgasemissionen-Zusaetzliche-Verbrauchsdaten": {
- "description": "Angabe der Treibhausgasemissionen in kg als CO2 Äquivalent/(m²a); nur bei kombinierten Energieausweisen (Bedarf/Verbrauch), zusammen mit der Übermittlung der zusätzlichen Verbrauchsdaten.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- },
- "Zusaetzliche-Verbrauchsdaten": {
- "$ref": "#/definitions/Nichtwohngebaeude-Verbrauchs-Daten",
- "description": "Bei Energieausweisen auf Bedarfsbasis können neben den Bedarfsangaben zusätzlich Angaben zum Verbrauch im Energieausweis dargestellt werden, die dann hier entsprechend integriert werden."
- }
- },
- "type": "object",
- "allOf": [
- {
- "oneOf": [
- {
- "required": [
- "Endenergiebedarf-Hoechstwert-Bestand",
- "Treibhausgasemissionen-Hoechstwert-Bestand"
- ],
- "properties": {
- "Endenergiebedarf-Hoechstwert-Bestand": {
- "description": "Endenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Treibhausgasemissionen-Hoechstwert-Bestand": {
- "description": "Anforderungswert für Treibhausgasemissionen Modernisierter Altbau in kg/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- }
- }
- },
- {
- "required": [
- "Primaerenergiebedarf-Hoechstwert-Neubau",
- "Endenergiebedarf-Hoechstwert-Neubau",
- "Treibhausgasemissionen-Hoechstwert-Neubau"
- ],
- "properties": {
- "Primaerenergiebedarf-Hoechstwert-Neubau": {
- "description": "Primärenergie-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche, bei Neubau im Energieausweis einzutragen. (Primärenergiebedarf: Q_p,Ref).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Hoechstwert-Neubau": {
- "description": "Endenergiebedarf-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Treibhausgasemissionen-Hoechstwert-Neubau": {
- "description": "Anforderungswert für Treibhausgasemissionen Neubau (Kennwert des Referenzgebäudes) in kg/m²a bezogen auf die energetische Nutzfläche.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- }
- }
- }
- ]
- },
- {
- "oneOf": [
- {
- "required": [
- "nicht-verschaerft-nach-GEG-34"
- ],
- "properties": {
- "nicht-verschaerft-nach-GEG-34": {
- "description": "Keine Maßnahmen nach $ 45 in Verbindung mit $ 34.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- },
- {
- "required": [
- "verschaerft-nach-GEG-34",
- "Anforderung-nach-GEG-19-unterschritten"
- ],
- "properties": {
- "verschaerft-nach-GEG-34": {
- "description": "Die in Verbindung mit § 34 GEG Maßnahmen nach § 45 in Kombination zur Nutzung erneuerbarer Energien zur Deckung des Wärme- und Kälteenergiebedarfs sind eingehalten (Anteil der Pflichterfüllung in %).",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anforderung-nach-GEG-19-unterschritten": {
- "description": "Die Anforderung nach $ 19 GEG wurde unterschritten (in %).",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- }
- }
- }
- ]
- }
- ]
- },
- "Automatisierungsgrad-enum": {
- "enum": [
- "A",
- "B",
- "C",
- "D"
- ],
- "type": "string"
- },
- "Art-der-Nutzung-erneuerbaren-Energie-enum": {
- "enum": [
- "solarthermische Anlagen",
- "Strom aus erneuerbaren Energien",
- "Geothermie oder Umweltwärme",
- "feste Biomasse",
- "flüssige Biomasse",
- "gasförmige Biomasse",
- "Kälte aus erneuerbaren Energien",
- "Abwärme",
- "Kraft-Wärme-Kopplung hocheff. KWK-Anlage",
- "Kraft-Wärme-Kopplung Brennstoffzellenh.",
- "Fernwärme oder Fernkälte"
- ],
- "type": "string"
- },
- "Automatisierungsgrad-Technisches-Gebaeudemanagement-enum": {
- "enum": [
- "A",
- "B",
- "C",
- "D"
- ],
- "type": "string"
- },
- "Bauteil-Opak-Daten": {
- "description": "Dieser Block enthält im Falle eines Bedarfsausweises die Hüllflächendaten. Die Summe aller Flächen muss der gesamten energetisch wirksamen Hüllfläche entsprechen. Wand- und Dachflächen gegen Aussenluft sind daher netto ohne transparente Bauteile usw. anzugeben. Gleichartige Flächen gleichen U-Wertes und gleicher Orientierung können aufsummiert angegeben werden. Türen (ausser Fenstertüren), Rollladenkästen u.ä. sind als Wandstücke einzugeben.",
- "required": [
- "Flaechenbezeichnung",
- "Flaeche",
- "U-Wert",
- "Ausrichtung",
- "grenztAn",
- "Glasdach-Lichtband-Lichtkuppel",
- "Vorhangfassade"
- ],
- "properties": {
- "Flaechenbezeichnung": {
- "pattern": "[w].{1,499}",
- "type": "string"
- },
- "Flaeche": {
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "U-Wert": {
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Ausrichtung": {
- "$ref": "#/definitions/Ausrichtung-enum"
- },
- "grenztAn": {
- "$ref": "#/definitions/Medium-enum"
- },
- "Glasdach-Lichtband-Lichtkuppel": {
- "description": "Kennzeichen, ob das Bauteil ein(e) Glasdach, Lichtband oder Lichtkuppel ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Vorhangfassade": {
- "description": "Kennzeichen, ob das Bauteil eine Vorhangfassade ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- },
- "type": "object"
- },
- "Bauteil-Transparent-Daten": {
- "description": "Dieser Block enthält im Falle eines Bedarfsausweises die Hüllflächendaten. Die Summe aller Flächen muss der gesamten energetisch wirksamen Hüllfläche entsprechen. Wand- und Dachflächen gegen Aussenluft sind daher netto ohne transparente Bauteile usw. anzugeben. Gleichartige Flächen gleichen U-Wertes und gleicher Orientierung können aufsummiert angegeben werden. Türen (ausser Fenstertüren), Rollladenkästen u.ä. sind als Wandstücke einzugeben.",
- "required": [
- "Flaechenbezeichnung",
- "Flaeche",
- "U-Wert",
- "g-Wert",
- "Ausrichtung",
- "Glasdach-Lichtband-Lichtkuppel",
- "Vorhangfassade"
- ],
- "properties": {
- "Flaechenbezeichnung": {
- "pattern": "[w].{1,499}",
- "type": "string"
- },
- "Flaeche": {
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "U-Wert": {
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "g-Wert": {
- "maximum": 0.99,
- "minimum": 0,
- "type": "number"
- },
- "Ausrichtung": {
- "$ref": "#/definitions/Ausrichtung-enum"
- },
- "Glasdach-Lichtband-Lichtkuppel": {
- "description": "Kennzeichen, ob das Bauteil ein(e) Glasdach, Lichtband oder Lichtkuppel ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Vorhangfassade": {
- "description": "Kennzeichen, ob das Bauteil eine Vorhangfassade ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- },
- "type": "object"
- },
- "Bauteil-Dach-Daten": {
- "description": "Dieser Block enthält im Falle eines Bedarfsausweises die Hüllflächendaten. Die Summe aller Flächen muss der gesamten energetisch wirksamen Hüllfläche entsprechen. Wand- und Dachflächen gegen Aussenluft sind daher netto ohne transparente Bauteile usw. anzugeben. Gleichartige Flächen gleichen U-Wertes und gleicher Orientierung können aufsummiert angegeben werden. Türen (ausser Fenstertüren), Rollladenkästen u.ä. sind als Wandstücke einzugeben.",
- "required": [
- "Flaechenbezeichnung",
- "Flaeche",
- "U-Wert"
- ],
- "properties": {
- "Flaechenbezeichnung": {
- "pattern": "[w].{1,499}",
- "type": "string"
- },
- "Flaeche": {
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "U-Wert": {
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "Ausrichtung-enum": {
- "enum": [
- "N",
- "S",
- "O",
- "W",
- "NO",
- "NW",
- "SO",
- "SW",
- "HOR"
- ],
- "type": "string"
- },
- "Medium-enum": {
- "enum": [
- "Aussenluft",
- "Raumluft",
- "Erdreich"
- ],
- "type": "string"
- },
- "Kaelteanlage-Daten": {
- "description": "Angaben zur jeweiligen Kälteerzeugung und -verteilung sowie Rückkühlung.",
- "required": [
- "Kaelteerzeuger-Bauweise",
- "Kaelteerzeuger-Regelung",
- "Rueckkuehlung-Bauweise",
- "Kaelteverteilung-Primaerkreis-Temperatur",
- "Nennkaelteleistung",
- "Kaelteerzeuger-Baujahr",
- "Anzahl-baugleiche",
- "Energietraeger",
- "Primaerenergiefaktor"
- ],
- "properties": {
- "Kaelteerzeuger-Bauweise": {
- "$ref": "#/definitions/Kaelteerzeuger-Typ-enum"
- },
- "Kaelteerzeuger-Regelung": {
- "$ref": "#/definitions/Kaelteerzeuger-Regelung-enum",
- "description": "Die Zuordnung bezieht sich auf die Art der Teillastregelung in DIN V 18599 Tab. 25, 27 und 29, z.B. auf die Formulierung \"…regelung\" = stufenlos regelnd \"mehrstufig schaltbar\" = mehrstufig taktend \"stetige Regelung\" = stufenlos regelnd \"Zweipunktregelung\" = ein-aus-Betrieb"
- },
- "Rueckkuehlung-Bauweise": {
- "$ref": "#/definitions/Rueckkuehlung-enum"
- },
- "Kaelteverteilung-Primaerkreis-Temperatur": {
- "$ref": "#/definitions/Kaelte-Temperaturniveau-enum",
- "description": "Temperaturniveau der Kälteverteilung Vorlauf/Rücklauf, bzw. Angabe von Direktkühlung mit Kältemittelkreis."
- },
- "Nennkaelteleistung": {
- "description": "Die Nennkälteleistung ist die Kälteleistung in kW, die eine Kälteanlage unter Auslegungsbedingungen abgibt (DIN V 18599-7:2011-07) (Nennkälteleistung für KKM: Q(Punkt)_C,outg).",
- "maximum": 1000000,
- "minimum": 0,
- "type": "integer"
- },
- "Kaelteerzeuger-Baujahr": {
- "description": "Baujahr dieses Kälteerzeugers oder Jahr der massgeblichen letzten baulichen Veränderung des Kälteerzeugers.",
- "maximum": 2100,
- "minimum": 1800,
- "pattern": "^(-?[0-9]+)(Z|[+-][0-9][0-9]:[0-9][0-9])?$",
- "type": "string"
- },
- "Anzahl-baugleiche": {
- "description": "Anzahl ggfs. baugleich vorhandener Geräte (mehrfache zentrale Kälteerzeuger, Splittgeräte usw.), bei nur einem Gerät Angabe \"1\".",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Energietraeger": {
- "$ref": "#/definitions/Energietraeger-enum",
- "description": "Vom Kälteerzeuger verwendeter Energieträger."
- },
- "Primaerenergiefaktor": {
- "description": "Verwendeter Primärenergiefaktor des Energieträgers (Primärenergiefaktor: f_p)",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "Kaelteerzeuger-Typ-enum": {
- "enum": [
- "Kolben- und Scrollverdichteranlagen",
- "Schraubenverdichteranlagen",
- "Turboverdichteranlagen",
- "Sorptionskältemaschine",
- "Sonstiges"
- ],
- "type": "string"
- },
- "Kaelteerzeuger-Regelung-enum": {
- "enum": [
- "ein-aus",
- "Heißgasbypass oder ähnliches",
- "mehrstufig schaltend",
- "invertergeregelt"
- ],
- "type": "string"
- },
- "Rueckkuehlung-enum": {
- "enum": [
- "Luftgekühlt-Kompaktbauweise",
- "Luftgekühlt-Splitbauweise",
- "Wassergekühlt-Verdunstungskühler",
- "Wassergekühlt-Trockenkühler",
- "Sonstiges"
- ],
- "type": "string"
- },
- "Kaelte-Temperaturniveau-enum": {
- "enum": [
- "direktverdampfend",
- "6/12 oder kälter",
- "über 6/12"
- ],
- "type": "string"
- },
- "RLT-Anlagen-Daten": {
- "description": "Angaben zur jeweiligen Lüftungsanlage.",
- "required": [
- "Funktion-Zuluft",
- "Funktion-Abluft",
- "Funktion-Heizregister",
- "Funktion-Kuehlregister",
- "Funktion-Dampfbefeuchter",
- "Funktion-Wasserbefeuchter",
- "Anzahl-baugleiche"
- ],
- "properties": {
- "Funktion-Zuluft": {
- "description": "Anlage führt den Räumen Zuluft aus (ggfs. aufbereiteter) Außenluft (evtl. zusammen mit Umluft) zu.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Funktion-Abluft": {
- "description": "Anlage führt aus den Räumen Abluft ab.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "WRG-Rueckwaermzahl": {
- "description": "Anlagenspezifische Angabe in Prozent, die den Wärmerückgewinnungsgrad der Lüftungsanlage zonenunabhängig widerspiegelt.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Funktion-Heizregister": {
- "description": "Anlage kann die Luft erwärmen.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Funktion-Kuehlregister": {
- "description": "Anlage kann die Luft kühlen.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Funktion-Dampfbefeuchter": {
- "description": "Anlage kann die Luft mittels Dampfbefeuchter befeuchten.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Funktion-Wasserbefeuchter": {
- "description": "Anlage kann die Luft mittels Sprüh- oder Rieselbefeuchter befeuchten.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Energietraeger-Befeuchtung": {
- "description": "Vom Befeuchter verwendeter Energieträger (bei Wasserbefeuchter derjenige Energieträger, der das/die zugehörige Heizregister der Heizanlage versorgt), Angabe nur erforderlich, wenn Anlage befeuchten kann."
- },
- "Anzahl-baugleiche": {
- "description": "Anzahl ggfs. baugleich vorhandener Geräte, bei nur einem Gerät Angabe \"1\".",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "undefined": {
- "$ref": "#/definitions/Energietraeger-enum"
- },
- "Zonen-Daten": {
- "description": "Dieser Block enthält die Angaben zu einer einzelnen Nutzungszone bei Nichtwohngebäuden, die Zonen sollten sinnvollerweise in absteigender Flächengröße angeordnet werden, es ist eine vollständige Liste aller rechnerisch verwendeten Zonen anzugeben.",
- "required": [
- "Zonenbezeichnung",
- "Nutzung",
- "Nettogrundflaeche-Zone",
- "mittlere-lichte-Raumhoehe",
- "Sonnenschutz-System",
- "Beleuchtungs-System",
- "Beleuchtungs-Verteilung",
- "Praesenzkontrolle-Kunstlicht",
- "Tageslichtabhaengige-Kontrollsysteme",
- "Endenergiebedarf-Heizung",
- "Endenergiebedarf-Kuehlung",
- "Endenergiebedarf-Befeuchtung",
- "Endenergiebedarf-Trinkwarmwasser",
- "Endenergiebedarf-Beleuchtung",
- "Endenergiebedarf-Lufttransport",
- "Endenergiebedarf-Hilfsenergie"
- ],
- "properties": {
- "Zonenbezeichnung": {
- "pattern": "[w].{1,39}",
- "type": "string"
- },
- "Nutzung": {
- "$ref": "#/definitions/Nutzung-enum",
- "description": "Nutzungsprofil nach DIN V 18599"
- },
- "Anwenderspezifische_Nutzung_Bezeichnung": {
- "description": "Bezeichnung der anwenderspezifischen Nutzung der Zone.",
- "pattern": "[w].{1,39}",
- "type": "string"
- },
- "Zonenbesonderheiten": {
- "description": "Hinweise auf Anpassungen des Nutzungsprofils nach DIN V 18599, wenn Standard-Vorgaben nicht verwendbar; bei völlig neu definierten Profilen (weil in DIN V 18599 nicht aufgelistet) bitte eine dort nicht verwendete Nutzungsprofilnummer (z.B. ab 90) verwenden und hier alle relevanten Daten anführen.",
- "pattern": ".{0,500}",
- "type": "string"
- },
- "Nettogrundflaeche-Zone": {
- "description": "Nettogrundfläche der jeweiligen Zone in m² (Nettogrundfläche: A_NGF).",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "mittlere-lichte-Raumhoehe": {
- "description": "Mittlere lichte Raumhöhe der jeweiligen Zone in m (lichte Raumhöhe: h_R).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Sonnenschutz-System": {
- "oneOf": [
- {
- "$ref": "#/definitions/Sonnenschutz-enum"
- },
- {
- "items": {
- "$ref": "#/definitions/Sonnenschutz-enum"
- },
- "maxItems": 50,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Beleuchtungs-System": {
- "oneOf": [
- {
- "$ref": "#/definitions/Lampenart-enum"
- },
- {
- "items": {
- "$ref": "#/definitions/Lampenart-enum"
- },
- "maxItems": 50,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Beleuchtungs-Verteilung": {
- "$ref": "#/definitions/Beleuchtungsart-enum",
- "description": "Lichtverteilung (Kunstlicht) in der jeweiligen Zone."
- },
- "Praesenzkontrolle-Kunstlicht": {
- "description": "Wird das Kunstlicht über eine Präsenzerfassung automatisch geschaltet?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Tageslichtabhaengige-Kontrollsysteme": {
- "description": "Wird das Kunstlicht in Abhängigkeit vom Tageslicht automatisch geschaltet oder geregelt?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Endenergiebedarf-Heizung": {
- "description": "Endenergiebedarf Heizung (statisch und RLT) in kWh/a ohne Hilfsenergie (Endenergiebedarf-Heizung: Q_h,f + Q_h*,f).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Endenergiebedarf-Kuehlung": {
- "description": "Endenergiebedarf Kühlung (statisch und RLT) in kWh/a ohne Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten der Zone) (Endenergiebedarf-Kuehlung: Q_c,f + Q_c*,f).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Endenergiebedarf-Befeuchtung": {
- "description": "Endenergiebedarf Befeuchtung (RLT) in kWh/a ohne Hilfsenergie (Endenergiebedarf-Befeuchtung: Q_m*,f).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Endenergiebedarf-Trinkwarmwasser": {
- "description": "Endenergiebedarf Trinkwasser-Erwärmung in kWh/a ohne Hilfsenergie (Endenergiebedarf-Trinkwarmwasser: Q_w,f).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Endenergiebedarf-Beleuchtung": {
- "description": "Endenergiebedarf Beleuchtung in kWh/a (Endenergiebedarf-Beleuchtung: Q_l,f).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Endenergiebedarf-Lufttransport": {
- "description": "Endenergiebedarf Luftförderung einer mechanischen Belüftung in kWh/a (Endenergiebedarf-Lufttransport: W_v).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Endenergiebedarf-Hilfsenergie": {
- "description": "Endenergiebedarf Hilfsenergie in kWh/a ohne Luftförderung (Endenergiebedarf-Hilfsenergie: W_f - W_v).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Nutzung-enum": {
- "enum": [
- "1:Einzelbüro",
- "2:Gruppenbüro (zwei bis sechs Arbeitsplätze)",
- "3:Großraumbüro (ab sieben Arbeitsplätze)",
- "4:Besprechung, Sitzung, Seminar",
- "5:Schalterhalle",
- "6:Einzelhandel / Kaufhaus",
- "7:Einzelhandel / Kaufhaus (Leb.-Abteilung mit Kühlprodukten)",
- "8:Klassenzimmer (Schule), Gruppenraum (Kindergarten)",
- "9:Hörsaal, Auditorium",
- "10:Bettenzimmer",
- "11:Hotelzimmer",
- "12:Kantine",
- "13:Restaurant",
- "14:Küchen in Nichtwohngebäuden",
- "15:Küche - Vorbereitung, Lager",
- "16:WC und Sanitärräume in Nichtwohngebäuden",
- "17:sonstige Aufenthaltsräume",
- "18:Nebenflächen ohne Aufenthaltsräume",
- "19:Verkehrsflächen",
- "20:Lager, Technik, Archiv",
- "21:Rechenzentrum",
- "22.1:Gewerbliche und industrielle Hallen - schwere Arbeit",
- "22.2:Gewerbliche und industrielle Hallen - mittelschwere Arbeit",
- "22.3:Gewerbliche und industrielle Hallen - leichte Arbeit",
- "23:Zuschauerbereich",
- "24:Theater - Foyer",
- "25:Bühne",
- "26:Messe / Kongress",
- "27:Ausstellungsräume und Museum",
- "28:Bibliothek - Lesesaal",
- "29:Bibliothek - Freihandbereich",
- "30:Bibliothek - Magazin und Depot",
- "31:Turnhalle",
- "32:Parkhäuser (Büro- und Privatnutzung)",
- "33:Parkhäuser (öffentliche Nutzung)",
- "34:Saunabereich",
- "35:Fitnessraum",
- "36:Labor",
- "37:Untersuchungs- und Behandlungsräume",
- "38:Spezialpflegebereiche",
- "39:Flure des allgemeinen Pflegebereichs",
- "40:Arztpraxen und Therapeutische Praxen",
- "41:Lagerhallen, Logistikhallen",
- "42:Wohnen (EFH)",
- "43:Wohnen (MFH)",
- "44:Anwenderspezifische Nutzung"
- ],
- "type": "string"
- },
- "Sonnenschutz-enum": {
- "description": "Sonnenschutz nicht erforderlich, da keine transparenten Flächen nach außen in sonnenbeschienene Richtungen vorhanden.",
- "enum": [
- "keine Bewertung des Sonnenschutzes (Zone: Wohnen)",
- "Kein Sonnen- und/oder Blendschutz",
- "Nur Blendschutz",
- "Sonnen- und/oder Blendschutz, automatisch betrieben",
- "Nur Blendschutz, lichtlenkend"
- ],
- "type": "string"
- },
- "Lampenart-enum": {
- "enum": [
- "Glühlampen und Halogenglühlampe",
- "Leuchtstofflampen-stabförmig-KVG/VVG",
- "Leuchtstofflampen-stabförmig-EVG",
- "Leuchtstofflampen-T5-stabförmig-EVG-effiziente Reflektoren",
- "Leuchtstofflampen-kompakt-externes VG-alle VG",
- "Leuchtstofflampen-kompakt-integriertes EVG",
- "Hochdruckentladungslampen-alle VG",
- "LED-Leuchten",
- "LED-Ersatzlampen (stab- und kolbenförmig)",
- "keine Bewertung der Beleuchtung (Zone: Wohnen)",
- "Fachplanung"
- ],
- "type": "string"
- },
- "Beleuchtungsart-enum": {
- "enum": [
- "direkt",
- "indirekt",
- "direkt-indirekt",
- "keine Bewertung der Beleuchtung vorhanden (Zone:Wohnen)",
- "Fachplanung"
- ],
- "type": "string"
- },
- "Endenergie-Energietraeger-Daten": {
- "description": "Dieser Block enthält die Angaben zu den spezifischen Endenergiebedarfswerten nach Energieträger, bezogen auf die Nettogrundfläche bei Nichtwohngebäuden, bzw. auf die Nettonutzfläche bei Wohngebäude, siehe Tabelle Endenergiebedarf im Energieausweis-Formular.",
- "required": [
- "Energietraegerbezeichnung",
- "Primaerenergiefaktor",
- "Endenergiebedarf-Heizung-spezifisch",
- "Endenergiebedarf-Kuehlung-Befeuchtung-spezifisch",
- "Endenergiebedarf-Trinkwarmwasser-spezifisch",
- "Endenergiebedarf-Beleuchtung-spezifisch",
- "Endenergiebedarf-Lueftung-spezifisch",
- "Endenergiebedarf-Energietraeger-Gesamtgebaeude-spezifisch"
- ],
- "properties": {
- "Energietraegerbezeichnung": {
- "$ref": "#/definitions/Energietraeger-enum"
- },
- "Primaerenergiefaktor": {
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Heizung-spezifisch": {
- "description": "Endenergiebedarf Heizung (statisch und RLT) in kWh/m²a mit Hilfsenergie (Endenergiebedarf-Heizung: Q_h,f + Q_h*,f; W_h + W_h*).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Kuehlung-Befeuchtung-spezifisch": {
- "description": "Endenergiebedarf Kühlung (statisch und RLT) und Befeuchtung in kWh/m²a mit Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten des gesamten Gebäudes) (Endenergiebedarf-Kuehlung-Befeuchtung: Q_c,f + Q_c*,f + Q_m*,f; W_c + W_c* + W_m*).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Trinkwarmwasser-spezifisch": {
- "description": "Endenergiebedarf Trinkwasser-Erwärmung in kWh/m²a mit Hilfsenergie (Endenergiebedarf-Trinkwarmwasser: Q_w,f; W_w).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Beleuchtung-spezifisch": {
- "description": "Endenergiebedarf Beleuchtung in kWh/m²a (Endenergiebedarf-Beleuchtung: Q_l,f; W_l).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Lueftung-spezifisch": {
- "description": "Endenergiebedarf Luftförderung der mechanischen Belüftung in kWh/m²a (Endenergiebedarf-Lüftung: W_v).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Energietraeger-Gesamtgebaeude-spezifisch": {
- "description": "Endenergiebedarf dieses Energieträgers für das gesamte Gebäude und alle Konditionierungsarten in kWh/m²a (Energieträger: Q_f).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "NWG-Aushang-Daten": {
- "description": "Dieser Block enthält die Angaben zu den Nutz-, End- und Primärenergiebedarfswerten für das Balkendiagramm im Aushangformular bei Nichtwohngebäuden, GEG § 84 Absatz 8 bzw. Muster für den Aushang als Bekanntmachung im Bundesanzeiger.",
- "required": [
- "Nutzenergiebedarf-Heizung-Diagramm",
- "Nutzenergiebedarf-Trinkwarmwasser-Diagramm",
- "Nutzenergiebedarf-Beleuchtung-Diagramm",
- "Nutzenergiebedarf-Lueftung-Diagramm",
- "Nutzenergiebedarf-Kuehlung-Befeuchtung-Diagramm",
- "Endenergiebedarf-Heizung-Diagramm",
- "Endenergiebedarf-Trinkwarmwasser-Diagramm",
- "Endenergiebedarf-Beleuchtung-Diagramm",
- "Endenergiebedarf-Lueftung-Diagramm",
- "Endenergiebedarf-Kuehlung-Befeuchtung-Diagramm",
- "Primaerenergiebedarf-Heizung-Diagramm",
- "Primaerenergiebedarf-Trinkwarmwasser-Diagramm",
- "Primaerenergiebedarf-Beleuchtung-Diagramm",
- "Primaerenergiebedarf-Lueftung-Diagramm",
- "Primaerenergiebedarf-Kuehlung-Befeuchtung-Diagramm"
- ],
- "properties": {
- "Nutzenergiebedarf-Heizung-Diagramm": {
- "description": "Nutzenergiebedarf Heizung (statisch und RLT) in kWh/m²a mit Hilfsenergie (Nutzenergiebedarf-Heizung: Q_h,b + Q_h*,b).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Nutzenergiebedarf-Trinkwarmwasser-Diagramm": {
- "description": "Nutzenergiebedarf Trinkwasser-Erwärmung in kWh/m²a mit Hilfsenergie (Nutzenergiebedarf-Trinkwarmwasser: Q_w,b).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Nutzenergiebedarf-Beleuchtung-Diagramm": {
- "description": "Nutzenergiebedarf Beleuchtung in kWh/m²a (Nutzenergiebedarf-Beleuchtung: Q_l,b).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Nutzenergiebedarf-Lueftung-Diagramm": {
- "description": "Nutzenergiebedarf Luftförderung der mechanischen Belüftung in kWh/m²a.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Nutzenergiebedarf-Kuehlung-Befeuchtung-Diagramm": {
- "description": "Nutzenergiebedarf Kühlung (statisch und RLT) und Befeuchtung in kWh/m²a mit Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten des gesamten Gebäudes) (Nutzenergiebedarf-Kuehlung-Befeuchtung: Q_c,b + Q_c*,b + Q_m*,b).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Heizung-Diagramm": {
- "description": "Endenergiebedarf Heizung (statisch und RLT) in kWh/m²a mit Hilfsenergie (Endenergiebedarf-Heizung: Q_h,f + Q_h*,f + W_h + W_h*).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Trinkwarmwasser-Diagramm": {
- "description": "Endenergiebedarf Trinkwasser-Erwärmung in kWh/m²a mit Hilfsenergie (Endenergiebedarf-Trinkwarmwasser: Q_w,f + W_w).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Beleuchtung-Diagramm": {
- "description": "Endenergiebedarf Beleuchtung in kWh/m²a (Endenergiebedarf-Beleuchtung: Q_l,f + W_l).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Lueftung-Diagramm": {
- "description": "Endenergiebedarf Luftförderung der mechanischen Belüftung in kWh/m²a (Endenergiebedarf-Lueftung: W_v).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Kuehlung-Befeuchtung-Diagramm": {
- "description": "Endenergiebedarf Kühlung (statisch und RLT) und Befeuchtung in kWh/m²a mit Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten des gesamten Gebäudes) (Endenergiebedarf-Kuehlung-Befeuchtung: Q_c,f + Q_c*,f + Q_m*,f + W_c + W_c* + W_m*).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-Heizung-Diagramm": {
- "description": "Primärenergiebedarf Heizung (statisch und RLT) in kWh/m²a mit Hilfsenergie.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-Trinkwarmwasser-Diagramm": {
- "description": "Primärenergiebedarf Trinkwasser-Erwärmung in kWh/m²a mit Hilfsenergie.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-Beleuchtung-Diagramm": {
- "description": "Primärenergiebedarf Beleuchtung in kWh/m²a.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-Lueftung-Diagramm": {
- "description": "Primärenergiebedarf Luftförderung der mechanischen Belüftung in kWh/m²a.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-Kuehlung-Befeuchtung-Diagramm": {
- "description": "Primärenergiebedarf Kühlung (statisch und RLT) und Befeuchtung in kWh/m²a mit Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten des gesamten Gebäudes).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "Modernisierungszeile": {
- "description": "Dieser Block enthält zeilenweise die Textangaben zu den Modernisierungsempfehlungen im Energieausweis.",
- "required": [
- "Nummer",
- "Bauteil-Anlagenteil",
- "Massnahmenbeschreibung",
- "Modernisierungskombination"
- ],
- "properties": {
- "Nummer": {
- "description": "Fortlaufende Nummer der Modernisierungsempfehlung",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Bauteil-Anlagenteil": {
- "$ref": "#/definitions/Modernisierung-Teil-enum",
- "description": "Angabe des betroffenen Bauteils oder Anlagenteils; die Differenzierung ist dem Energieausweis-Aussteller überlassen, er kann also z.B. unter Heizung eine komplette neue Beheizung samt Regelung, hydr. Abgleich usw. in einer Empfehlung geben, oder einzelne Maßnahmen differenzierter auflisten."
- },
- "Massnahmenbeschreibung": {
- "description": "Beschreibung der Maßnahme, ggfs. auch in mehreren Schritten.",
- "pattern": "[w].{4,225}",
- "type": "string"
- },
- "Modernisierungskombination": {
- "$ref": "#/definitions/Modernisierung-Kombi-enum",
- "description": "Kreuzchen, ob die Maßnahme im Zusammenhang mit größeren Modernisierungsmaßnahmen oder sogar als Einzelmaßnahme sinnvoll ist"
- },
- "Amortisation": {
- "description": "Geschätzte Amortisationszeit der Maßnahme.",
- "pattern": ".{0,31}",
- "type": "string"
- },
- "spezifische-Kosten": {
- "description": "Geschätzte Kosten pro eingesparter Kilowattstunde Endenergie.",
- "pattern": ".{0,71}",
- "type": "string"
- }
- },
- "type": "object"
- },
- "Modernisierung-Teil-enum": {
- "enum": [
- "Dach",
- "oberste Geschossdecke",
- "Abseiten",
- "Gauben",
- "Dachfenster",
- "Außenwand gg. Außenluft",
- "Fenster",
- "Rollläden und -kästen",
- "Eingangstür",
- "Nebentür",
- "Kellerdecke",
- "Boden gg. Außenluft",
- "Außenwand gg. Erdreich",
- "Boden gegen Erdreich",
- "Luftundichtigkeiten",
- "Heizung",
- "Wärmeerzeuger",
- "Wärmeverteilung / -abgabe",
- "Warmwasserbereitung",
- "Lüftung",
- "Lüftungskonzept",
- "Lüftungsanlage",
- "Luftverteilung / -abgabe",
- "Kühlung",
- "Kälteerzeugung",
- "Kälteverteilung / -abgabe",
- "Be-/Entfeuchtung",
- "Beleuchtung",
- "Anlagenregelung",
- "Gebäudeautomation",
- "Sonstiges"
- ],
- "type": "string"
- },
- "Modernisierung-Kombi-enum": {
- "enum": [
- "in Zusammenhang mit größerer Modernisierung",
- "als Einzelmaßnahme"
- ],
- "type": "string"
- }
- }
-}
\ No newline at end of file
diff --git a/Kontrollsystem-GEG-2024_V1.schema.json b/Kontrollsystem-GEG-2024_V1.schema.json
deleted file mode 100644
index 75717858..00000000
--- a/Kontrollsystem-GEG-2024_V1.schema.json
+++ /dev/null
@@ -1,4952 +0,0 @@
-{
- "$id": "hello_world.json",
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "This JSON Schema file was generated from hello_world.xsd on Wed Sep 25 2024 17:25:28 GMT+0930 (Australian Central Standard Time). For more information please see http://www.xsd2jsonschema.org",
- "description": "Ausgabestand: 01.12.2023",
- "properties": {
- "GEG-Energieausweis": {
- "$ref": "#/definitions/GEG-Daten"
- },
- "GEG-Daten": {
- "$ref": "#/definitions/GEG-Daten"
- },
- "Gebaeudebez-Daten": {
- "$ref": "#/definitions/Gebaeudebez-Daten"
- },
- "anonyme-GEG-Daten": {
- "$ref": "#/definitions/anonyme-GEG-Daten"
- },
- "Gesetzesgrundlage-enum": {
- "$ref": "#/definitions/Gesetzesgrundlage-enum"
- },
- "Rechtsstand-Grund-enum": {
- "$ref": "#/definitions/Rechtsstand-Grund-enum"
- },
- "Bundesland-enum": {
- "$ref": "#/definitions/Bundesland-enum"
- },
- "Gebaeudeteil-enum": {
- "$ref": "#/definitions/Gebaeudeteil-enum"
- },
- "Altersklasse-enum": {
- "$ref": "#/definitions/Altersklasse-enum"
- },
- "Anlass-enum": {
- "$ref": "#/definitions/Anlass-enum"
- },
- "Wohngebaeude-Daten": {
- "$ref": "#/definitions/Wohngebaeude-Daten"
- },
- "Gebaeudetyp-enum": {
- "$ref": "#/definitions/Gebaeudetyp-enum"
- },
- "Wohngebaeude-Verbrauchs-Daten": {
- "$ref": "#/definitions/Wohngebaeude-Verbrauchs-Daten"
- },
- "Energietraeger-Daten": {
- "$ref": "#/definitions/Energietraeger-Daten"
- },
- "Energietraeger-Verbrauch-enum": {
- "$ref": "#/definitions/Energietraeger-Verbrauch-enum"
- },
- "Zeitraum-Daten": {
- "$ref": "#/definitions/Zeitraum-Daten"
- },
- "Warmwasserzuschlag-Daten": {
- "$ref": "#/definitions/Warmwasserzuschlag-Daten"
- },
- "Kuehlzuschlag-Daten": {
- "$ref": "#/definitions/Kuehlzuschlag-Daten"
- },
- "Leerstandszuschlag-Heizung-Daten": {
- "$ref": "#/definitions/Leerstandszuschlag-Heizung-Daten"
- },
- "Leerstandszuschlag-Warmwasser-Daten": {
- "$ref": "#/definitions/Leerstandszuschlag-Warmwasser-Daten"
- },
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte-Daten": {
- "$ref": "#/definitions/Leerstandszuschlag-thermisch-erzeugte-Kaelte-Daten"
- },
- "Leerstandszuschlag-Strom-Daten": {
- "$ref": "#/definitions/Leerstandszuschlag-Strom-Daten"
- },
- "Leerstandszuschlag-Bekanntmachung-Daten": {
- "$ref": "#/definitions/Leerstandszuschlag-Bekanntmachung-Daten"
- },
- "Warmwasserwertermittlung-enum": {
- "$ref": "#/definitions/Warmwasserwertermittlung-enum"
- },
- "Wohngebaeude-Bedarfs-Daten-easy": {
- "$ref": "#/definitions/Wohngebaeude-Bedarfs-Daten-easy"
- },
- "Heizwaermeerzeuger-Typ-easy-enum": {
- "$ref": "#/definitions/Heizwaermeerzeuger-Typ-easy-enum"
- },
- "Waermeschutz-Variante-enum": {
- "$ref": "#/definitions/Waermeschutz-Variante-enum"
- },
- "Wohngebaeude-Anbaugrad-enum": {
- "$ref": "#/definitions/Wohngebaeude-Anbaugrad-enum"
- },
- "Luftdichtheit-18599-enum": {
- "$ref": "#/definitions/Luftdichtheit-18599-enum"
- },
- "Heizungsanlage-Daten": {
- "$ref": "#/definitions/Heizungsanlage-Daten"
- },
- "Heizwaermeerzeuger-Typ-18599-enum": {
- "$ref": "#/definitions/Heizwaermeerzeuger-Typ-18599-enum"
- },
- "Energietraeger-enum": {
- "$ref": "#/definitions/Energietraeger-enum"
- },
- "Heizkreisauslegungstemperatur-enum": {
- "$ref": "#/definitions/Heizkreisauslegungstemperatur-enum"
- },
- "Trinkwarmwasseranlage-Daten": {
- "$ref": "#/definitions/Trinkwarmwasseranlage-Daten"
- },
- "Trinkwarmwassererzeuger-Typ-18599-enum": {
- "$ref": "#/definitions/Trinkwarmwassererzeuger-Typ-18599-enum"
- },
- "Wohngebaeude-Bedarfs-Daten-18599": {
- "$ref": "#/definitions/Wohngebaeude-Bedarfs-Daten-18599"
- },
- "Nichtwohngebaeude-Daten": {
- "$ref": "#/definitions/Nichtwohngebaeude-Daten"
- },
- "Energieeffizienzklasse-enum": {
- "$ref": "#/definitions/Energieeffizienzklasse-enum"
- },
- "Nichtwohngebaeude-Verbrauchs-Daten": {
- "$ref": "#/definitions/Nichtwohngebaeude-Verbrauchs-Daten"
- },
- "Zeitraum-Strom-Daten": {
- "$ref": "#/definitions/Zeitraum-Strom-Daten"
- },
- "Nutzung-Gebaeudekategorie-Daten": {
- "$ref": "#/definitions/Nutzung-Gebaeudekategorie-Daten"
- },
- "Nutzung-Gebaeudekategorie-enum": {
- "$ref": "#/definitions/Nutzung-Gebaeudekategorie-enum"
- },
- "Nichtwohngebaeude-Bedarfs-Daten": {
- "$ref": "#/definitions/Nichtwohngebaeude-Bedarfs-Daten"
- },
- "Automatisierungsgrad-enum": {
- "$ref": "#/definitions/Automatisierungsgrad-enum"
- },
- "Art-der-Nutzung-erneuerbaren-Energie-enum": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum"
- },
- "Automatisierungsgrad-Technisches-Gebaeudemanagement-enum": {
- "$ref": "#/definitions/Automatisierungsgrad-Technisches-Gebaeudemanagement-enum"
- },
- "Bauteil-Opak-Daten": {
- "$ref": "#/definitions/Bauteil-Opak-Daten"
- },
- "Bauteil-Transparent-Daten": {
- "$ref": "#/definitions/Bauteil-Transparent-Daten"
- },
- "Bauteil-Dach-Daten": {
- "$ref": "#/definitions/Bauteil-Dach-Daten"
- },
- "Ausrichtung-enum": {
- "$ref": "#/definitions/Ausrichtung-enum"
- },
- "Medium-enum": {
- "$ref": "#/definitions/Medium-enum"
- },
- "Kaelteanlage-Daten": {
- "$ref": "#/definitions/Kaelteanlage-Daten"
- },
- "Kaelteerzeuger-Typ-enum": {
- "$ref": "#/definitions/Kaelteerzeuger-Typ-enum"
- },
- "Kaelteerzeuger-Regelung-enum": {
- "$ref": "#/definitions/Kaelteerzeuger-Regelung-enum"
- },
- "Kaelte-Temperaturniveau-enum": {
- "$ref": "#/definitions/Kaelte-Temperaturniveau-enum"
- },
- "Rueckkuehlung-enum": {
- "$ref": "#/definitions/Rueckkuehlung-enum"
- },
- "RLT-Anlagen-Daten": {
- "$ref": "#/definitions/RLT-Anlagen-Daten"
- },
- "Angaben-erneuerbare-Energien-65EE-Regel-Daten": {
- "$ref": "#/definitions/Angaben-erneuerbare-Energien-65EE-Regel-Daten"
- },
- "Angaben-erneuerbare-Energien-Daten": {
- "$ref": "#/definitions/Angaben-erneuerbare-Energien-Daten"
- },
- "Zonen-Daten": {
- "$ref": "#/definitions/Zonen-Daten"
- },
- "Nutzung-enum": {
- "$ref": "#/definitions/Nutzung-enum"
- },
- "Sonnenschutz-enum": {
- "$ref": "#/definitions/Sonnenschutz-enum"
- },
- "Lampenart-enum": {
- "$ref": "#/definitions/Lampenart-enum"
- },
- "Beleuchtungsart-enum": {
- "$ref": "#/definitions/Beleuchtungsart-enum"
- },
- "Endenergie-Energietraeger-Daten": {
- "$ref": "#/definitions/Endenergie-Energietraeger-Daten"
- },
- "NWG-Aushang-Daten": {
- "$ref": "#/definitions/NWG-Aushang-Daten"
- },
- "Modernisierungszeile": {
- "$ref": "#/definitions/Modernisierungszeile"
- },
- "Modernisierung-Teil-enum": {
- "$ref": "#/definitions/Modernisierung-Teil-enum"
- },
- "Modernisierung-Kombi-enum": {
- "$ref": "#/definitions/Modernisierung-Kombi-enum"
- }
- },
- "type": "object",
- "anyOf": [
- {
- "required": [
- "GEG-Energieausweis"
- ]
- },
- {
- "required": [
- "GEG-Daten"
- ]
- },
- {
- "required": [
- "Gebaeudebez-Daten"
- ]
- },
- {
- "required": [
- "anonyme-GEG-Daten"
- ]
- },
- {
- "required": [
- "Gesetzesgrundlage-enum"
- ]
- },
- {
- "required": [
- "Rechtsstand-Grund-enum"
- ]
- },
- {
- "required": [
- "Bundesland-enum"
- ]
- },
- {
- "required": [
- "Gebaeudeteil-enum"
- ]
- },
- {
- "required": [
- "Altersklasse-enum"
- ]
- },
- {
- "required": [
- "Anlass-enum"
- ]
- },
- {
- "required": [
- "Wohngebaeude-Daten"
- ]
- },
- {
- "required": [
- "Gebaeudetyp-enum"
- ]
- },
- {
- "required": [
- "Wohngebaeude-Verbrauchs-Daten"
- ]
- },
- {
- "required": [
- "Energietraeger-Daten"
- ]
- },
- {
- "required": [
- "Energietraeger-Verbrauch-enum"
- ]
- },
- {
- "required": [
- "Zeitraum-Daten"
- ]
- },
- {
- "required": [
- "Warmwasserzuschlag-Daten"
- ]
- },
- {
- "required": [
- "Kuehlzuschlag-Daten"
- ]
- },
- {
- "required": [
- "Leerstandszuschlag-Heizung-Daten"
- ]
- },
- {
- "required": [
- "Leerstandszuschlag-Warmwasser-Daten"
- ]
- },
- {
- "required": [
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte-Daten"
- ]
- },
- {
- "required": [
- "Leerstandszuschlag-Strom-Daten"
- ]
- },
- {
- "required": [
- "Leerstandszuschlag-Bekanntmachung-Daten"
- ]
- },
- {
- "required": [
- "Warmwasserwertermittlung-enum"
- ]
- },
- {
- "required": [
- "Wohngebaeude-Bedarfs-Daten-easy"
- ]
- },
- {
- "required": [
- "Heizwaermeerzeuger-Typ-easy-enum"
- ]
- },
- {
- "required": [
- "Waermeschutz-Variante-enum"
- ]
- },
- {
- "required": [
- "Wohngebaeude-Anbaugrad-enum"
- ]
- },
- {
- "required": [
- "Luftdichtheit-18599-enum"
- ]
- },
- {
- "required": [
- "Heizungsanlage-Daten"
- ]
- },
- {
- "required": [
- "Heizwaermeerzeuger-Typ-18599-enum"
- ]
- },
- {
- "required": [
- "Energietraeger-enum"
- ]
- },
- {
- "required": [
- "Heizkreisauslegungstemperatur-enum"
- ]
- },
- {
- "required": [
- "Trinkwarmwasseranlage-Daten"
- ]
- },
- {
- "required": [
- "Trinkwarmwassererzeuger-Typ-18599-enum"
- ]
- },
- {
- "required": [
- "Wohngebaeude-Bedarfs-Daten-18599"
- ]
- },
- {
- "required": [
- "Nichtwohngebaeude-Daten"
- ]
- },
- {
- "required": [
- "Energieeffizienzklasse-enum"
- ]
- },
- {
- "required": [
- "Nichtwohngebaeude-Verbrauchs-Daten"
- ]
- },
- {
- "required": [
- "Zeitraum-Strom-Daten"
- ]
- },
- {
- "required": [
- "Nutzung-Gebaeudekategorie-Daten"
- ]
- },
- {
- "required": [
- "Nutzung-Gebaeudekategorie-enum"
- ]
- },
- {
- "required": [
- "Nichtwohngebaeude-Bedarfs-Daten"
- ]
- },
- {
- "required": [
- "Automatisierungsgrad-enum"
- ]
- },
- {
- "required": [
- "Art-der-Nutzung-erneuerbaren-Energie-enum"
- ]
- },
- {
- "required": [
- "Automatisierungsgrad-Technisches-Gebaeudemanagement-enum"
- ]
- },
- {
- "required": [
- "Bauteil-Opak-Daten"
- ]
- },
- {
- "required": [
- "Bauteil-Transparent-Daten"
- ]
- },
- {
- "required": [
- "Bauteil-Dach-Daten"
- ]
- },
- {
- "required": [
- "Ausrichtung-enum"
- ]
- },
- {
- "required": [
- "Medium-enum"
- ]
- },
- {
- "required": [
- "Kaelteanlage-Daten"
- ]
- },
- {
- "required": [
- "Kaelteerzeuger-Typ-enum"
- ]
- },
- {
- "required": [
- "Kaelteerzeuger-Regelung-enum"
- ]
- },
- {
- "required": [
- "Kaelte-Temperaturniveau-enum"
- ]
- },
- {
- "required": [
- "Rueckkuehlung-enum"
- ]
- },
- {
- "required": [
- "RLT-Anlagen-Daten"
- ]
- },
- {
- "required": [
- "Angaben-erneuerbare-Energien-65EE-Regel-Daten"
- ]
- },
- {
- "required": [
- "Angaben-erneuerbare-Energien-Daten"
- ]
- },
- {
- "required": [
- "Zonen-Daten"
- ]
- },
- {
- "required": [
- "Nutzung-enum"
- ]
- },
- {
- "required": [
- "Sonnenschutz-enum"
- ]
- },
- {
- "required": [
- "Lampenart-enum"
- ]
- },
- {
- "required": [
- "Beleuchtungsart-enum"
- ]
- },
- {
- "required": [
- "Endenergie-Energietraeger-Daten"
- ]
- },
- {
- "required": [
- "NWG-Aushang-Daten"
- ]
- },
- {
- "required": [
- "Modernisierungszeile"
- ]
- },
- {
- "required": [
- "Modernisierung-Teil-enum"
- ]
- },
- {
- "required": [
- "Modernisierung-Kombi-enum"
- ]
- }
- ],
- "definitions": {
- "GEG-Energieausweis": {
- "$ref": "#/definitions/GEG-Daten"
- },
- "GEG-Daten": {
- "description": "Dieser Block besteht aus drei Komponenten: Dem Block mit den gebäudebezogenen Daten (nur relevant zwischen Energieausweis-Berechnungssoftware und Druckapplikation), dem Block mit den anonymen Energieausweis-Daten sowie dem Block mit der Prüfsumme, die nach Erhalt und Eintragung der Registriernummer über den Block der anonymen Daten (ohne die gebäudebezogenen Daten!) gebildet wird.",
- "required": [
- "Energieausweis-Daten"
- ],
- "properties": {
- "Gebaeudebezogene-Daten": {
- "$ref": "#/definitions/Gebaeudebez-Daten"
- },
- "Energieausweis-Daten": {
- "$ref": "#/definitions/anonyme-GEG-Daten"
- }
- },
- "type": "object"
- },
- "Gebaeudebez-Daten": {
- "description": "Block, der alle Daten für die Ausstellung des Energieausweises entsprechend GEG enthält, die dem Datenschutz unterliegen oder freiwillig sind, und daher für das Kontrollsystem nicht relevant sind.",
- "required": [
- "Gebaeudeadresse-Strasse-Nr",
- "Gebaeudeadresse-Postleitzahl",
- "Gebaeudeadresse-Ort",
- "Zusatzinfos-beigefuegt",
- "Angaben-erhaeltlich"
- ],
- "properties": {
- "Projektbezeichnung-Aussteller": {
- "description": "Interne Bezeichnung oder Nummer beim Aussteller, anhand derer er die Daten/Unterlagen zu diesem Energieausweis wiederfinden kann.",
- "pattern": ".{0,1024}",
- "type": "string"
- },
- "Gebaeudeadresse-Strasse-Nr": {
- "description": "Straße und Hausnummer der Gebäudeadresse zur Angabe im Energieausweis.",
- "pattern": ".{1,60}",
- "type": "string"
- },
- "Gebaeudeadresse-Postleitzahl": {
- "description": "Vollständige Postleitzahl der Gebäudeadresse zur Angabe im Energieausweis.",
- "pattern": "()|(d{5})",
- "type": "string"
- },
- "Gebaeudeadresse-Ort": {
- "description": "Ortsangabe der Gebäudeadresse zur Angabe im Energieausweis.",
- "pattern": ".{1,35}",
- "type": "string"
- },
- "Ausstellervorname": {
- "description": "Vorname des Energieausweis-Ausstellers wie bei der Ausstelleranmeldung hinterlegt.",
- "pattern": ".{1,60}",
- "type": "string"
- },
- "Ausstellername": {
- "description": "Familienname des Energieausweis-Ausstellers wie bei der Ausstelleranmeldung hinterlegt.",
- "pattern": ".{1,60}",
- "type": "string"
- },
- "Aussteller-Bezeichnung": {
- "description": "Firmierung und/oder Berufsbezeichnung des Energieausweis-Ausstellers.",
- "pattern": ".{0,60}",
- "type": "string"
- },
- "Aussteller-Strasse-Nr": {
- "description": "Straße und Hausnummer des Energieausweis-Ausstellers.",
- "pattern": ".{0,60}",
- "type": "string"
- },
- "Aussteller-PLZ": {
- "description": "Postleitzahl des Energieausweis-Ausstellers (ggfs. bei Ausstellern aus dem Ausland mit Landeszennzeichnung usw.)",
- "pattern": ".{0,5}",
- "type": "string"
- },
- "Aussteller-Ort": {
- "description": "Ort des Energieausweis-Ausstellers.",
- "pattern": ".{0,35}",
- "type": "string"
- },
- "Zusatzinfos-beigefuegt": {
- "description": "Kreuzchen, ob dem Energieausweis (freiwillige) zusätzliche Informationen zur energetischen Qualität beigefügt sind.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Angaben-erhaeltlich": {
- "description": "Hinweis, wo genauere Angaben zu den Empfehlungen ggfs. erhältlich sind. Pflichtangabe, Default-Wert ist (wenn Modernisierungsempfehlungen möglich sind) die GEG-Infoseite des BBSR bzw. (wenn keine Modernisierungsempfehlungen möglich sind, z.B. nach Modernisierung oder bei Neubau) \"Angabe hier nicht relevant\", weitere / alternative Hinweise sind dem Energieausweis-Aussteller überlassen.",
- "pattern": ".{5,200}",
- "type": "string"
- },
- "Ergaenzdende-Erlaeuterungen": {
- "description": "Freitext-Platz für zusätzliche Erläuterungen zum gesamten Energieausweis.",
- "maxLength": 2500,
- "type": "string"
- },
- "Ergaenzdende-Erlaeuterungen-EE": {
- "description": "Freitext-Platz für zusätzliche Erläuterungen zur Nutzung erneuerbaren Energien in der EA-Anhang.",
- "maxLength": 2500,
- "type": "string"
- },
- "NWG-Diagramm-Daten": {
- "$ref": "#/definitions/NWG-Aushang-Daten"
- }
- },
- "type": "object"
- },
- "anonyme-GEG-Daten": {
- "description": "Grund für die Verwendung der angegebenen Gesetzesgrundlage, nach der der Nachweis geführt wurde.",
- "required": [
- "Registriernummer",
- "Ausstellungsdatum",
- "Bundesland",
- "Postleitzahl",
- "Gebaeudeteil",
- "Baujahr-Gebaeude",
- "Altersklasse-Gebaeude",
- "Baujahr-Waermeerzeuger",
- "Altersklasse-Waermeerzeuger",
- "wesentliche-Energietraeger-Heizung",
- "wesentliche-Energietraeger-Warmwasser",
- "Erneuerbare-Art",
- "Erneuerbare-Verwendung",
- "Lueftungsart-Fensterlueftung",
- "Lueftungsart-Schachtlueftung",
- "Lueftungsart-Anlage-o-WRG",
- "Lueftungsart-Anlage-m-WRG",
- "Kuehlungsart-passive-Kuehlung",
- "Kuehlungsart-Strom",
- "Kuehlungsart-Waerme",
- "Kuehlungsart-gelieferte-Kaelte",
- "Nutzung-zur-Erfuellung-von-EE-neue-Anlage",
- "EE-Angabe-Warmwasser",
- "EE-Angabe-Heizung",
- "Nutzung-bei-Bestandsanlagen",
- "Treibhausgasemissionen",
- "Ausstellungsanlass",
- "Datenerhebung-Aussteller",
- "Datenerhebung-Eigentuemer",
- "Empfehlungen-moeglich",
- "@Gesetzesgrundlage",
- "@Rechtsstand",
- "@Rechtsstand-Grund"
- ],
- "properties": {
- "Registriernummer": {
- "description": "Offizielle Registriernummer des Energieausweises; solange sie noch nicht beantragt ist, bleibt der Inhalt leer, wenn sie beantragt ist aber noch nicht übermittelt wurde, wird zwar das Datum des Antrags ggfs. im vorläufigen Energieausweis eingedruckt, das Feld bleibt hier aber trotzdem leer.",
- "pattern": "[A-Z]{2}-20d{2}-d{9}",
- "type": "string"
- },
- "Ausstellungsdatum": {
- "description": "Ausstellungsdatum des Energieausweises, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Bundesland": {
- "$ref": "#/definitions/Bundesland-enum",
- "description": "Bundesland, in dem das Gebäude des Energieausweises steht."
- },
- "Postleitzahl": {
- "description": "Postleitzahl des Gebäudestandortes, aus Datenschutzgründen eingekürzt.",
- "pattern": "d{3}XX",
- "type": "string"
- },
- "Gebaeudeteil": {
- "$ref": "#/definitions/Gebaeudeteil-enum",
- "description": "Ergänzende Angabe bei Wohnteilen oder Nichtwohnteilen von gemischt genutzten Gebäuden gemäß §79 Abs. 2 GEG; bei Einzelgebäude Angabe \"Ganzes Gebäude\". z.B. bei einem mehrgeschossigen Mehrfamilienhaus mit einer Ladenzeile im EG ist für die Hauptnutzung ein „WG-Energieausweis“ auszustellen und für den kleineren Teil der Ladenzeile ein Ausweis „NWG-Teil eines WG“. Bei dem Nichtwohnteil (Ausweis für NWG) des Wohngebäudes lautet dann die Auswahl „Teil des Wohngebäudes“."
- },
- "Baujahr-Gebaeude": {
- "description": "Baujahr des Gebäudes und ggfs. Hinweise auf nachträgliche Umbauten, Erweiterungen, Modernisierungen usw. .",
- "pattern": "[w].{1,64}",
- "type": "string"
- },
- "Altersklasse-Gebaeude": {
- "$ref": "#/definitions/Altersklasse-enum",
- "description": "Altersklasse der ursprünglichen Errichtung des Gebäudes"
- },
- "Baujahr-Waermeerzeuger": {
- "description": "Baujahr des/der Wärmeerzeuger(s) und ggfs. Hinweise auf nachträgliche bauliche Veränderung des/der Wärmeerzeuger(s).",
- "pattern": "[w].{1,117}",
- "type": "string"
- },
- "Altersklasse-Waermeerzeuger": {
- "$ref": "#/definitions/Altersklasse-enum",
- "description": "Altersklasse der ältesten der energetisch wesentlichsten Komponenten der Wärmeerzeugung."
- },
- "wesentliche-Energietraeger-Heizung": {
- "description": "Wesentliche Energieträger für die Heizung.",
- "pattern": "[w].{1,94}",
- "type": "string"
- },
- "wesentliche-Energietraeger-Warmwasser": {
- "description": "Wesentliche Energieträger für die Warmwasserbereitung.",
- "pattern": "[w].{1,94}",
- "type": "string"
- },
- "Erneuerbare-Art": {
- "description": "Art(en) der erneuerbaren Energie(n), die eingesetzt wird/werden; wenn nicht gegeben bitte \"keine\" eintragen.",
- "pattern": "[w].{1,63}",
- "type": "string"
- },
- "Erneuerbare-Verwendung": {
- "description": "Verwendung der erneuerbaren Energie(n), die eingesetzt wird/werden; wenn nicht gegeben bitte \"keine\" eintragen.",
- "pattern": "[w].{1,74}",
- "type": "string"
- },
- "Lueftungsart-Fensterlueftung": {
- "description": "Art der Lüftung des Gebäudes: Fensterlüftung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Lueftungsart-Schachtlueftung": {
- "description": "Art der Lüftung des Gebäudes: Schachtlüftung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Lueftungsart-Anlage-o-WRG": {
- "description": "Art der Lüftung des Gebäudes: Lüftungsanlage ohne Wärmerückgewinnung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Lueftungsart-Anlage-m-WRG": {
- "description": "Art der Lüftung des Gebäudes: Lüftungsanlage mit Wärmerückgewinnung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Kuehlungsart-passive-Kuehlung": {
- "description": "Art der Kühlung des Gebäudes: Passive Kühlung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Kuehlungsart-Strom": {
- "description": "Art der Kühlung des Gebäudes: Kühlung aus Strom.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Kuehlungsart-Waerme": {
- "description": "Art der Kühlung des Gebäudes: Kühlung aus Wärme.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Kuehlungsart-gelieferte-Kaelte": {
- "description": "Art der Kühlung des Gebäudes: Gelieferte Kälte.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Nutzung-zur-Erfuellung-von-EE-neue-Anlage": {
- "description": "Nutzung von Anlagen die zur Erfüllung der 65% EE-Regel gemäß § 71 Absatz 1 in Verbindung mit Absatz 2 oder Absatz 3 GEG für Warmasser und/oder Heizung, nur für neu eingebaute oder aufgestellte Heizungen relevant sind.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "EE-Angabe-Warmwasser": {
- "description": "Nutzung der EE für Warmasser",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "EE-Angabe-Heizung": {
- "description": "Nutzung der EE für Heizung",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Nutzung-bei-Bestandsanlagen": {
- "description": "Nutzung bei Bestandsanlagen oder bei Übergangsregulierungen oder sonstige Ausnahmen. Die Anforderungen des § 71 (EE 65%) treffen nicht zu (Bestand).",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Treibhausgasemissionen": {
- "description": "Pflichtangabe der Treibhausgasemissionen in kg als CO2 Äquivalent/(m²a) für Bedarfsausweise, Verbrauchsausweise und Aushänge (gemäß GEG § 85 (2), (3) und (6) bzw. nach Berechnungsregeln gem. Anlage 9).",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- },
- "Ausstellungsanlass": {
- "$ref": "#/definitions/Anlass-enum",
- "description": "Anlass der Ausstellung des Energieausweises. Treffen mehrere zu, so ist das Kreuz in der Rangfolge Neubau vor Modernisierung vor Vermietung/Verkauf vor Aushangpflicht zu sezten."
- },
- "Datenerhebung-Aussteller": {
- "description": "Die Datenerhebung erfolgte teilweise oder ganz durch den Aussteller.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Datenerhebung-Eigentuemer": {
- "description": "Die Datenerhebung erfolgte teilweise oder ganz durch den Eigentümer.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Empfehlungen-moeglich": {
- "description": "Wenn Empfehlungen möglich sind, ist das Kreuz im Energieausweis entsprechend zu setzen, und es muss im Tag \"Modernisierungsempfehlungen\" mindestens eine Modernisierungsempfehlungen gegeben werden.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Modernisierungsempfehlungen": {
- "oneOf": [
- {
- "$ref": "#/definitions/Modernisierungszeile"
- },
- {
- "items": {
- "$ref": "#/definitions/Modernisierungszeile"
- },
- "maxItems": 30,
- "type": "array"
- }
- ]
- },
- "Softwarehersteller-Programm-Version": {
- "description": "Angabe, mit welcher Software die Berechnungen erfolgten (Herstellername, Programmbezeichnung, Programm-Version).",
- "pattern": ".{0,1024}",
- "type": "string"
- },
- "@Gesetzesgrundlage": {
- "$ref": "#/definitions/Gesetzesgrundlage-enum"
- },
- "@Rechtsstand": {
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "@Rechtsstand-Grund": {
- "$ref": "#/definitions/Rechtsstand-Grund-enum"
- }
- },
- "type": "object",
- "allOf": [
- {
- "oneOf": [
- {
- "required": [
- "Keine-inspektionspflichtige-Anlage"
- ],
- "properties": {
- "Keine-inspektionspflichtige-Anlage": {
- "description": "Keine inspektionspflichtige Klimaanlage.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- },
- {
- "required": [
- "Anzahl-Klimanlagen",
- "Anlage-groesser-12kW-ohneGA",
- "Anlage-groesser-12kW-mitGA",
- "Anlage-groesser-70kW",
- "Faelligkeitsdatum-Inspektion"
- ],
- "properties": {
- "Anzahl-Klimanlagen": {
- "description": "Anzahl inspektionspflichtiger Klimaanlagen.",
- "maximum": 1000,
- "minimum": 1,
- "type": "integer"
- },
- "Anlage-groesser-12kW-ohneGA": {
- "description": "Klimaanlage größer als 12 kW ohne Gebäudeautomation (inspektionspflichtig).",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Anlage-groesser-12kW-mitGA": {
- "description": "Klimaanlage größer als 12 kW mit Gebäudeautomation (nicht inspektionspflichtig).",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Anlage-groesser-70kW": {
- "description": "Klimaanlage größer als 70 kW, nach DIN SPEC 15240 zu bewerten.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Faelligkeitsdatum-Inspektion": {
- "description": "Nächstes Fälligkeitsdatum der Inspektion.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- }
- }
- }
- ]
- },
- {
- "oneOf": [
- {
- "required": [
- "Keine-Pauschale-Erfuellungsoptionen-Anlagentyp"
- ],
- "properties": {
- "Keine-Pauschale-Erfuellungsoptionen-Anlagentyp": {
- "description": "Keine Pauschale Erfüllungsoptionen nach §71 Absatz 1, 3 und 5 in Verbindung mit §71b bis h GEG. § 71 Absatz 1 GEG sieht vor, dass Heizungsanlagen, die zum Zweck der Inbetriebnahme in einem Gebäude eingebaut oder aufgestellt werden, grundsätzlich zu mindestens 65 Prozent mit Erneuerbaren Energien betrieben werden. Die Anlagen nach §71 Absatz 3 sind von dem Nachweis befreit.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- },
- {
- "required": [
- "Hausuebergabestation",
- "Waermepumpe",
- "Stromdirektheizung",
- "Solarthermische-Anlage",
- "Heizungsanlage-Biomasse-Wasserstoff-Wasserstoffderivale",
- "Waermepumpen-Hybridheizung",
- "Solarthermie-Hybridheizung",
- "Dezentral-elektrische-Warmwasserbereitung"
- ],
- "properties": {
- "Hausuebergabestation": {
- "description": "Hausübergabestation (Wärmenetz) §71b",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Waermepumpe": {
- "description": "Wärmepumpe (§71 c)",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Stromdirektheizung": {
- "description": "Stromdirektheizung (§71d)",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Solarthermische-Anlage": {
- "description": "Solarthermische Anlage (§71e)",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Heizungsanlage-Biomasse-Wasserstoff-Wasserstoffderivale": {
- "description": "Heizungsanlage für Biomasse, grünen oder blauen Wasserstoff oder Wasserstoffderivale (§71f,g)",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Waermepumpen-Hybridheizung": {
- "description": "Wärmepumpen-Hybridheizung (§71h)",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Solarthermie-Hybridheizung": {
- "description": "Solarthermie-Hybridheizung (§71h)",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Dezentral-elektrische-Warmwasserbereitung": {
- "description": "Dezentral-elektrische Warmwasserbereitung (§71 Abs. 5)",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- }
- ]
- },
- {
- "oneOf": [
- {
- "required": [
- "Wohngebaeude"
- ],
- "properties": {
- "Wohngebaeude": {
- "$ref": "#/definitions/Wohngebaeude-Daten"
- }
- }
- },
- {
- "required": [
- "Nichtwohngebaeude"
- ],
- "properties": {
- "Nichtwohngebaeude": {
- "$ref": "#/definitions/Nichtwohngebaeude-Daten"
- }
- }
- }
- ]
- },
- {
- "oneOf": [
- {
- "required": [
- "Keine-Modernisierung-Erweiterung-Vorhaben"
- ],
- "properties": {
- "Keine-Modernisierung-Erweiterung-Vorhaben": {
- "description": "Der Austellungsanlass ist anders als \"Modernisierung-Erweiterung\", also: Neubau, Vermietung-Verkauf, Aushangspflicht oder sonstiges.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- },
- {
- "required": [
- "Modernisierung-Erweiterung-anzeigepflichtiges-Vorhaben"
- ],
- "properties": {
- "Modernisierung-Erweiterung-anzeigepflichtiges-Vorhaben": {
- "description": "Austellungsanlass Modernisierung (140% Nachweis) nach § 50 (1).",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- },
- {
- "required": [
- "Modernisierung-Erweiterung-genehmigungspflichtiges-Vorhaben"
- ],
- "properties": {
- "Modernisierung-Erweiterung-genehmigungspflichtiges-Vorhaben": {
- "description": "Austellungsanlass Modernisierung (140% Nachweis) nach § 50 (1).",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- }
- }
- ]
- }
- ]
- },
- "Gesetzesgrundlage-enum": {
- "enum": [
- "GEG-2024"
- ],
- "type": "string"
- },
- "Rechtsstand-Grund-enum": {
- "enum": [
- "Bauantrag bei genehmigungspflichtigen Vorhaben (Ausstellungsanlässe Neubau und Modernisierung)",
- "Bauanzeige bei anzeigepflichtigen Vorhaben (Ausstellungsanlässe Neubau und Modernisierung)",
- "Baubeginn (Ausstellungsanlass Modernisierung)",
- "Wunsch des Bauherrn neues Recht anzuwenden (gemäß GEG § 111 Absatz 3)",
- "Ausweisausstellung (bei Verbrauchsausweisen und alle anderen Fälle)"
- ],
- "type": "string"
- },
- "Bundesland-enum": {
- "enum": [
- "Baden-Württemberg",
- "Bayern",
- "Berlin",
- "Brandenburg",
- "Bremen",
- "Hamburg",
- "Hessen",
- "Mecklenburg-Vorpommern",
- "Niedersachsen",
- "Nordrhein-Westfalen",
- "Rheinland-Pfalz",
- "Saarland",
- "Sachsen",
- "Sachsen-Anhalt",
- "Schleswig-Holstein",
- "Thüringen"
- ],
- "type": "string"
- },
- "Gebaeudeteil-enum": {
- "enum": [
- "Ganzes Gebäude",
- "Teil des Wohngebäudes",
- "Teil des Nichtwohngebäudes"
- ],
- "type": "string"
- },
- "Altersklasse-enum": {
- "enum": [
- "bis 1918",
- "1919...1948",
- "1949...1957",
- "1958...1968",
- "1969...1978",
- "1979...1983",
- "1984...1994",
- "1995...2002",
- "2003...2009",
- "2010...2016",
- "ab 2017"
- ],
- "type": "string"
- },
- "Anlass-enum": {
- "enum": [
- "Neubau",
- "Modernisierung-Erweiterung",
- "Vermietung-Verkauf",
- "Aushangpflicht",
- "Sonstiges"
- ],
- "type": "string"
- },
- "Wohngebaeude-Daten": {
- "description": "Dieser Block enthält entweder Verbrauchsdaten oder Bedarfswerte; beim Bedarfsausweis können zusätzliche Verbrauchsangaben mit angeführt werden.",
- "required": [
- "Gebaeudetyp",
- "Anzahl-Wohneinheiten",
- "Gebaeudenutzflaeche"
- ],
- "properties": {
- "Gebaeudetyp": {
- "$ref": "#/definitions/Gebaeudetyp-enum",
- "description": "Grundsätzlicher Gebäudetypus des Gebäudes bzw. Gebäudeteils; die Angaben EFH mit ELW und Zweifamilienhaus sind gleichwertig und können je nach ortsüblichem Gebrauch oder Bauhistorie usw. verwendet werden."
- },
- "Anzahl-Wohneinheiten": {
- "description": "Anzahl der Wohneinheiten im Gebäude/Gebäudeteil.",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "Gebaeudenutzflaeche": {
- "description": "Energetische Nutzfläche AN des Gebäudes/Gebäudeteils (ganze Quadratmeter) (Gebäudenutzfläche AN).",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object",
- "oneOf": [
- {
- "required": [
- "Verbrauchswerte"
- ],
- "properties": {
- "Verbrauchswerte": {
- "$ref": "#/definitions/Wohngebaeude-Verbrauchs-Daten"
- }
- }
- },
- {
- "required": [
- "Bedarfswerte-easy"
- ],
- "properties": {
- "Bedarfswerte-easy": {
- "$ref": "#/definitions/Wohngebaeude-Bedarfs-Daten-easy"
- }
- }
- },
- {
- "required": [
- "Bedarfswerte-18599"
- ],
- "properties": {
- "Bedarfswerte-18599": {
- "$ref": "#/definitions/Wohngebaeude-Bedarfs-Daten-18599"
- }
- }
- }
- ]
- },
- "Gebaeudetyp-enum": {
- "enum": [
- "Einfamilienhaus",
- "Zweifamilienhaus",
- "Mehrfamilienhaus",
- "Wohnteil gemischt genutztes Gebäude",
- "Beidseitig angebautes Gebäude",
- "Einseitig angebautes Gebäude",
- "Sonstiges"
- ],
- "type": "string"
- },
- "Wohngebaeude-Verbrauchs-Daten": {
- "description": "Dieser Block enthält im Falle eines Wohngebäude-Verbrauchsausweises die Verbrauchsdaten.",
- "required": [
- "Flaechenermittlung-AN-aus-Wohnflaeche",
- "Energietraeger",
- "Leerstandszuschlag-Heizung",
- "Leerstandszuschlag-Warmwasser",
- "Mittlerer-Endenergieverbrauch",
- "Mittlerer-Primaerenergieverbrauch",
- "Energieeffizienzklasse"
- ],
- "properties": {
- "Flaechenermittlung-AN-aus-Wohnflaeche": {
- "description": "Ermittlung der Energiebezugsfläche aus der Wohnfläche mit amtlichem Umrechnungsfaktor nach § 82 GEG.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Wohnflaeche": {
- "description": "Wohnfläche des Gebäudes/Gebäudeteils (ganze Quadratmeter), nur erforderlich bei Ermittlung der energ. Nutzfläche aus der Wohnfläche.",
- "maximum": 1000000,
- "minimum": 0,
- "type": "integer"
- },
- "Keller-beheizt": {
- "description": "Wenn die Energiebezugsfläche aus der Wohnfläche mit amtlichem Umrechnungsfaktor ermittelt wurde, Angabe, ob Ein-/Zweifamilienhaus mit beheiztem Keller (und daher erhöhter Umrechnungsfaktor) oder nicht.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Energietraeger": {
- "oneOf": [
- {
- "$ref": "#/definitions/Energietraeger-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Energietraeger-Daten"
- },
- "maxItems": 8,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Leerstandszuschlag-Heizung": {
- "$ref": "#/definitions/Leerstandszuschlag-Heizung-Daten",
- "description": "Leerstandzuschlag für Heizung gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit."
- },
- "Leerstandszuschlag-Warmwasser": {
- "$ref": "#/definitions/Leerstandszuschlag-Warmwasser-Daten",
- "description": "Leerstandzuschlag für Warmwasser gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit."
- },
- "Warmwasserzuschlag": {
- "$ref": "#/definitions/Warmwasserzuschlag-Daten",
- "description": "Im Fall dezentraler Warmwasserbereitung erforderliche Angaben für den Zuschlag zur Einfügung in die Verbauchsliste des Energieausweises gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit; in der Tabelle ist statt des Energieträgers das Wort \"Warmwasserzuschlag\" einzusetzen, die Felder Anteil Kälte, Anteil Heizung und Klimafaktor bleiben in dieser Zeile leer."
- },
- "Kuehlzuschlag": {
- "$ref": "#/definitions/Kuehlzuschlag-Daten",
- "description": "Im Falle eines maschinell gekühlten Wohngebäudes erforderliche Angaben für den Zuschlag zur Einfügung in die Verbrauchsliste des Energieausweises; in der Tabelle ist statt des Energieträgers das Wort \"Kühlzuschlag\" einzusetzen, die Felder Anteil Warmwasser, Anteil Heizung und Klimafaktor bleiben in dieser Zeile leer."
- },
- "Mittlerer-Endenergieverbrauch": {
- "description": "Endenergiekennwert in kWh/m²a bezogen auf die Energiebezugsfläche (Mittlerer Endenergieverbrauch: e(Strich)_Vb,12mth).",
- "exclusiveMaximum": 100000,
- "type": "number"
- },
- "Mittlerer-Primaerenergieverbrauch": {
- "description": "Primärenergiekennwert in kWh/m²a bezogen auf die Energiebezugsfläche.",
- "exclusiveMaximum": 100000,
- "type": "number"
- },
- "Energieeffizienzklasse": {
- "$ref": "#/definitions/Energieeffizienzklasse-enum",
- "description": "Energieeffizienzklasse des Gebäudes."
- }
- },
- "type": "object"
- },
- "Energietraeger-Daten": {
- "description": "Block, der einen Energieträger mit seinen einzelnen Verbrauchsperioden enthält.",
- "required": [
- "Unterer-Heizwert",
- "Primaerenergiefaktor",
- "Emissionsfaktor",
- "Zeitraum"
- ],
- "properties": {
- "Unterer-Heizwert": {
- "description": "Umrechnung der erfassten verbrauchten Menge des Energieträgers in Energieverbrauch in kWh_Heizwert, wenn schon in kWh_Heizwert angegeben, dann \"1,0\" (Unterer Heizwert: H_i).",
- "maximum": 2500,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiefaktor": {
- "description": "Verwendeter Primärenergiefaktor des Energieträgers (Primärenergiefaktor: f_p) entsprechend Anlage 4 GEG.",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Emissionsfaktor": {
- "description": "Emissionsfaktor für den jeweils eingesetzen Energieträger zur Umrechnung in Treibhausemissionen gemäß Anlage 9 des GEG.",
- "maximum": 100000,
- "minimum": 0,
- "type": "integer"
- },
- "Zeitraum": {
- "oneOf": [
- {
- "$ref": "#/definitions/Zeitraum-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Zeitraum-Daten"
- },
- "maxItems": 40,
- "minItems": 1,
- "type": "array"
- }
- ]
- }
- },
- "type": "object",
- "oneOf": [
- {
- "required": [
- "Energietraeger-Verbrauch"
- ],
- "properties": {
- "Energietraeger-Verbrauch": {
- "$ref": "#/definitions/Energietraeger-Verbrauch-enum",
- "description": "Bezeichnung und Verbrauchsmengen-Einheit des Energieträgers, zu dem die anschliessenden Verbrauchswerte gehören."
- }
- }
- },
- {
- "required": [
- "Sonstiger-Energietraeger-Verbrauch"
- ],
- "properties": {
- "Sonstiger-Energietraeger-Verbrauch": {
- "description": "Bezeichnung und Verbrauchsmengen-Einheit des Energieträgers, zu dem die anschliessenden Verbrauchswerte gehören, wenn ein nicht aufgelisteter Energieträger vorliegt.",
- "pattern": "[w].{1,39}",
- "type": "string"
- }
- }
- }
- ]
- },
- "Energietraeger-Verbrauch-enum": {
- "enum": [
- "Heizöl in Liter",
- "Heizöl in kWh Heizwert",
- "Heizöl in kWh Brennwert",
- "Erdgas in m³",
- "Erdgas in kWh Heizwert",
- "Erdgas in kWh Brennwert",
- "Flüssiggas in m³ gasförmig",
- "Flüssiggas in Liter flüssig",
- "Flüssiggas in kg",
- "Flüssiggas in kWh Heizwert",
- "Steinkohle in kg",
- "Steinkohle in kWh Heizwert",
- "Braunkohle in kg",
- "Braunkohle in kWh Heizwert",
- "Biogas in m³",
- "Biogas in kWh Heizwert",
- "Biogas in kWh Brennwert",
- "Biogas, gebäudenah erzeugt in m³",
- "Biogas, gebäudenah erzeugt in kWh Heizwert",
- "Biogas, gebäudenah erzeugt in kWh Brennwert",
- "biogenes Flüssiggas in m³ gasförmig",
- "biogenes Flüssiggas in Liter flüssig",
- "biogenes Flüssiggas in kg",
- "biogenes Flüssiggas in kWh Heizwert",
- "Bioöl in Liter",
- "Bioöl in kWh Heizwert",
- "Bioöl in kWh Brennwert",
- "Bioöl, gebäudenah erzeugt in Liter",
- "Bioöl, gebäudenah erzeugt in kWh Heizwert",
- "Bioöl, gebäudenah erzeugt in kWh Brennwert",
- "Holz in Raummeter",
- "Holz in kg",
- "Holz in kWh Heizwert",
- "Holz in kWh Brennwert",
- "Holz in Schüttraummeter",
- "Strom netzbezogen in kWh",
- "Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft) in kWh",
- "Verdrängungsstrommix für KWK in kWh",
- "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme) in kWh",
- "Kälte (Erdkälte, Umgebungskälte) in kWh",
- "Abwärme aus Prozessen (prod) in kWh",
- "Abwärme aus Prozessen (out) in kWh",
- "Wärme aus KWK, gebäudeintegriert oder gebäudenah in kWh",
- "Wärme aus Verbrennung von Siedlungsabfällen in kWh",
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger in kWh",
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger in kWh",
- "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger in kWh",
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger in kWh",
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger in kWh",
- "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger in kWh"
- ],
- "type": "string"
- },
- "Zeitraum-Daten": {
- "description": "Block, der eine einzelne Verbrauchsperiode enthält.",
- "required": [
- "Startdatum",
- "Enddatum",
- "Verbrauchte-Menge",
- "Energieverbrauch",
- "Energieverbrauchsanteil-Warmwasser-zentral",
- "Warmwasserwertermittlung",
- "Energieverbrauchsanteil-Heizung",
- "Klimafaktor"
- ],
- "properties": {
- "Startdatum": {
- "description": "Anfangsdatum der Periode, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Enddatum": {
- "description": "Enddatum der Periode, angegeben als YYYY-MM-DD",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Verbrauchte-Menge": {
- "description": "Erfasste verbrauchte Menge in der zum ausgewählten Energieträger gehörigen Einheit, brutto einschliesslich eventuell enthaltenem Warmwasser und ggf. enthaltene thermisch erzeugte Kälte bei Nichtwohngebäude (Verbrauchte Menge: B_Vg,Zeitabschnitt).",
- "maximum": 2147483647,
- "exclusiveMaximum": 1000000000,
- "minimum": 0,
- "type": "integer"
- },
- "Energieverbrauch": {
- "description": "Verbrauchswert in kWh Heizwert als Einheit, brutto einschliesslich eventuell enthaltenem Warmwasser und ggf. enthaltene thermisch erzeugte Kälte bei Nichtwohngebäude (Energieverbrauch: E_Vg,Zeitabschnitt).",
- "maximum": 2147483647,
- "exclusiveMaximum": 1000000000,
- "minimum": 0,
- "type": "integer"
- },
- "Energieverbrauchsanteil-Warmwasser-zentral": {
- "description": "Im Verbrauchswert enthaltener Wert für zentrale Warmwasserbereitung (ggfs. 0 wenn keine Warmwasserbereitung über diesen Energieträger) in kWh (Energieverbrauchsanteil für zentrale Warmwasserbereitung: E_VWW,Zeitabschnitt).",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Warmwasserwertermittlung": {
- "$ref": "#/definitions/Warmwasserwertermittlung-enum",
- "description": "Art, wie der Warmwasserwert ggfs. aus Messungen oder Berechnungen ermittelt wurde. Bei dezentraler Warmwasserbereitung in Wohngebäuden ist die Auswahl \"Pauschale für dezentrale...\" auszuwählen und das entsprechende Korrekturverfahren anzuwenden (siehe Element Warmwasserzuschlag-Daten). Die Auswahl \"keine Warmwasserbereitung enthalten\" ist bei Wohngebäuden zu wählen, wenn ein anderer ebenfalls gelisteter Energieträger die zentrale Warmwasserbereitung versorgt. Bei Nichtwohngebäuden ist sie zu wählen, wenn die Warmwasserbereitung im Stromverbrauch erfasst ist oder generell kein Warmwasser mit gebäudetechnischen Anlagen im Gebäude erzeugt wird."
- },
- "Energieverbrauchsanteil-thermisch-erzeugte-Kaelte": {
- "description": "Im Verbrauchswert ggf. enthaltener Wert für thermisch erzeugte Kälte (nur bei Nichtwohngebäuden) in kWh.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Energieverbrauchsanteil-Heizung": {
- "description": "Im Verbrauchswert enthaltener Wert für Heizung in kWh.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Klimafaktor": {
- "description": "Klimafaktor dieser Periode entsprechend Gebäudestandort (Klimafaktor: f_Klima).",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Verbrauchswert-kWh-Strom": {
- "description": "Verbrauchswert Strom in kWh zum Betreiben des jeweiligen Wärmeerzeugers (Pumpen etc.), sofern dieser ermittelt wird.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Warmwasserzuschlag-Daten": {
- "description": "Angabe des Warmwasserzuschlags für dezentrale Trinkwarmwasserbereitung in Wohngebäuden",
- "required": [
- "Startdatum",
- "Enddatum",
- "Primaerenergiefaktor",
- "Warmwasserzuschlag-kWh"
- ],
- "properties": {
- "Startdatum": {
- "description": "Anfangsdatum des Zeitraums, in dem dezentrale Trinkwarmwasserbereitung bestand, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Enddatum": {
- "description": "Enddatum des Zeitraums, in dem dezentrale Trinkwarmwasserbereitung bestand, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Primaerenergiefaktor": {
- "description": "Primärenergiefaktor (entsprechend Anlage 4 GEG) des wesentlichen Energieträgers für die Beheizung, damit das dezentrale Warmwasser als virtueller Mehrverbrauch einer fiktiven zentralen Warmwasserbereitung verrechnet werden kann (Primärenergiefaktor: f_p).",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Warmwasserzuschlag-kWh": {
- "description": "Zuschlagswert Warmwasser in kWh für den betroffenen Zeitraum, in der Tabelle einzusetzen in die Spalten \"Energieverbrauch\" und \"Anteil Warmwasser\".",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Kuehlzuschlag-Daten": {
- "description": "Angaben für den Verbrauchs-Zuschlag für gekühlte Wohngebäude.",
- "required": [
- "Startdatum",
- "Enddatum",
- "Gebaeudenutzflaeche-gekuehlt",
- "Primaerenergiefaktor",
- "Kuehlzuschlag-kWh"
- ],
- "properties": {
- "Startdatum": {
- "description": "Anfangsdatum des Zeitraums, in dem die Einrichtung zur Kühlung des Gebäudes bestand, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Enddatum": {
- "description": "Enddatum des Zeitraums, in dem die Einrichtung zur Kühlung des Gebäudes bestand, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Gebaeudenutzflaeche-gekuehlt": {
- "description": "Energiebezugsfläche AN des Gebäudes/Gebäudeteils, der maschinell gekühlt wird (ganze Quadratmeter); die Angabe erscheint nicht im Energieausweis, ist aber für die Zuschlagsberechnung relevant.",
- "maximum": 1000000,
- "minimum": 0,
- "type": "integer"
- },
- "Primaerenergiefaktor": {
- "description": "Primärenergiefaktor (entsprechend Anlage 4 GEG) Strom für die Wohnungskühlung (Primärenergiefaktor: f_p).",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Kuehlzuschlag-kWh": {
- "description": "Zuschlagswert für Kühlenergie in kWh für den betroffenen Zeitraum, in der Tabelle einzusetzen in die Spalte \"Energieverbrauch\".",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Leerstandszuschlag-Heizung-Daten": {
- "type": "object",
- "oneOf": [
- {
- "required": [
- "kein-Leerstand"
- ],
- "properties": {
- "kein-Leerstand": {
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Heizung erforderlich ist.",
- "pattern": "Kein längerer Leerstand Heizung zu berücksichtigen.",
- "type": "string"
- }
- }
- },
- {
- "required": [
- "Leerstandszuschlag-nach-Bekanntmachung",
- "Zuschlagsfaktor",
- "witterungsbereinigter-Endenergieverbrauchsanteil-fuer-Heizung"
- ],
- "properties": {
- "Leerstandszuschlag-nach-Bekanntmachung": {
- "$ref": "#/definitions/Leerstandszuschlag-Bekanntmachung-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand Heizung aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- },
- "Zuschlagsfaktor": {
- "description": "Wohngebäude: Zuschlagsfaktor f(eVhb, 12mth) nach der Formel f(eVhb, 12mth) = - 0,0028 * eVhb, 12mth + 0,9147 Nichtwohngebäude: Zuschlagsfaktor f(eVhb, 12mth) nach der Formel f(eVhb, 12mth) = - 0,0083 * eVhb, 12mth + 1,3982 gemäß GEG § 82 und gemeinsamen Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit.",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "witterungsbereinigter-Endenergieverbrauchsanteil-fuer-Heizung": {
- "description": "Witterungsbereinigter Endenergieverbrauchsanteil für Heizung eVhb, 12mth ist Teil der Formel für Berechnung der Zuschlagsfaktor, Einheit in kWh/m²a; gemäß GEG § 82 und gemeinsamer Bekanntmachung des Bundesministeriums für Wirtschaft und Energie und des Bundesministerium für Umwelt, Naturschutz, Bau und Reaktorsicherheit.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- }
- }
- }
- ]
- },
- "Leerstandszuschlag-Warmwasser-Daten": {
- "required": [
- "keine-Nutzung-von-WW"
- ],
- "properties": {
- "keine-Nutzung-von-WW": {
- "description": "true: Warmwasser ist nicht vorhanden (nur bei NWG), oder dezentrale elektrische Warmwasserbereitung ist beim Stromanteil mit erfasst, die Leerstandskorrektur erfolgt in diesem Fall zusammen mit den übrigen elektrischen Verbrauchsanteilen. In diesem Fall ist \"kein-Leerstand\" anzugeben. false: Einer der anderen Fälle hat Gültigkeit (kein Leerstand oder Leerstand nach Bekanntmachung).",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- },
- "type": "object",
- "oneOf": [
- {
- "required": [
- "kein-Leerstand"
- ],
- "properties": {
- "kein-Leerstand": {
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Warmwasser erforderlich ist.",
- "pattern": "Kein längerer Leerstand Warmwasser zu berücksichtigen.",
- "type": "string"
- }
- }
- },
- {
- "required": [
- "Leerstandszuschlag-nach-Bekanntmachung"
- ],
- "properties": {
- "Leerstandszuschlag-nach-Bekanntmachung": {
- "$ref": "#/definitions/Leerstandszuschlag-Bekanntmachung-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand Warmwasser aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- }
- }
- }
- ]
- },
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte-Daten": {
- "type": "object",
- "oneOf": [
- {
- "required": [
- "kein-Leerstand"
- ],
- "properties": {
- "kein-Leerstand": {
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur thermisch erzeugter Kälte erforderlich ist.",
- "pattern": "Kein längerer Leerstand thermisch erzeugte Kälte zu berücksichtigen.",
- "type": "string"
- }
- }
- },
- {
- "required": [
- "Leerstandszuschlag-nach-Bekanntmachung"
- ],
- "properties": {
- "Leerstandszuschlag-nach-Bekanntmachung": {
- "$ref": "#/definitions/Leerstandszuschlag-Bekanntmachung-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand für thermisch erzeugte Kälte aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- }
- }
- }
- ]
- },
- "Leerstandszuschlag-Strom-Daten": {
- "type": "object",
- "oneOf": [
- {
- "required": [
- "kein-Leerstand"
- ],
- "properties": {
- "kein-Leerstand": {
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum hat keine Nutzungseinheit so lange leer gestanden, dass eine Leerstandskorrektur Strom erforderlich ist.",
- "pattern": "Kein längerer Leerstand Strom zu berücksichtigen.",
- "type": "string"
- }
- }
- },
- {
- "required": [
- "Leerstandszuschlag-nach-Bekanntmachung"
- ],
- "properties": {
- "Leerstandszuschlag-nach-Bekanntmachung": {
- "$ref": "#/definitions/Leerstandszuschlag-Bekanntmachung-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand Strom aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- }
- }
- }
- ]
- },
- "Leerstandszuschlag-Bekanntmachung-Daten": {
- "description": "Daten für die Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte.",
- "required": [
- "Leerstandsfaktor",
- "Startdatum",
- "Enddatum",
- "Leerstandszuschlag-kWh",
- "Primaerenergiefaktor"
- ],
- "properties": {
- "Leerstandsfaktor": {
- "description": "Leerstandsfaktor bezogen auf die anteilige Gebäudenutzfläche AN und den Zeitanteil innerhalb des gesamten aufgeführten Verbrauchszeitraums: f_leer.",
- "maximum": 0.99,
- "minimum": 0,
- "type": "number"
- },
- "Startdatum": {
- "description": "Anfangsdatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Enddatum": {
- "description": "Enddatum des Gesamt-Zeitraums, der dem Energieausweis zugrunde liegt, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Leerstandszuschlag-kWh": {
- "description": "Je nach Betrachtung von \"Heizung\", \"Warmwasser\", oder \"Strom\" bei NWG, ist der Leerstandszuschlag für den Energieverbrauchsanteil für: - Heizung in kWh: delta_E_Vh in der Tabelle in die Spalte \"Anteil Heizung\" einzusetzen - zentrale Warmwasserbereitung in kWh: delta_E_VWW in der Tabelle in die Spalte \"Anteil Warmwasser\" einzusetzen - Strom in kWh: delta_E_Vs in der Tabelle in die Spalte \"Energieverbrauch Strom\" einzusetzen",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "Primaerenergiefaktor": {
- "description": "Primärenergiefaktor (entsprechend Anlage 4 GEG) des wesentlichen Energieträgers: f_p.",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "Warmwasserwertermittlung-enum": {
- "enum": [
- "direkter Messwert Wärmemenge",
- "Pauschale für dezentrale Warmwasserbereitung (Wohngebäude)",
- "Rechenwert nach Heizkostenverordnung (Wohngebäude)",
- "Rechenwert nach GEG / DIN V 18599 (Nichtwohngebäude)",
- "Rechenwert nach Heizkostenverordnung (Nichtwohngebäude)",
- "Pauschale 5 % Warmwasserbereitung (Nichtwohngebäude)",
- "Pauschale 50 % Warmwasserbereitung (Nichtwohngebäude)",
- "monatsweise Erfassung Wärmeverbrauch Sommer (Nichtwohngebäude)",
- "sonstige Ermittlung des Verbrauchsanteils der Warmwasserbereitung",
- "keine Warmwasserbereitung enthalten"
- ],
- "type": "string"
- },
- "Wohngebaeude-Bedarfs-Daten-easy": {
- "description": "Dieser Block enthält im Falle eines Wohngebäudes, für welches das vereinfachte Nachweisverfahren/ Modellgebäudeverfahren nach § 31 GEG, nach vorgegebenen Maßgaben in Anlage 5 (informell EnEV easy) die erforderlichen Bedarfswerte.",
- "required": [
- "Wohngebaeude-Anbaugrad",
- "Anzahl-Geschosse",
- "Geschoss-Bruttogeschossflaechenumfang",
- "Geschoss-Bruttogeschossflaeche",
- "Dach-Bruttogeschossflaechenumfang",
- "Dach-Bruttogeschossflaeche",
- "Aufsummierte-Bruttogeschossflaeche",
- "Mittlere-Geschosshoehe",
- "Kompaktheit",
- "Deckungsgleichheit",
- "Fensterflaechenanteil-Nordost-Nord-Nordwest",
- "Fensterflaechenanteil-Gesamt",
- "Dach-transparente-Bauteile-Fensterflaechenanteil",
- "Spezielle-Fenstertueren-Flaechenanteil",
- "Außentueren-Flaechenanteil",
- "Keine-Anlage-zur-Kuehlung",
- "Anforderung-Waermebruecken-erfuellt",
- "Gebaeudedichtheit",
- "Heiz-Warmwassersystem",
- "Lueftungsanlagenanforderungen",
- "Waermeschutz-Variante",
- "Endenergiebedarf",
- "Energieeffizienzklasse",
- "Primaerenergiebedarf-Ist-Wert",
- "Primaerenergiebedarf-Anforderungswert",
- "Energetische-Qualitaet-Ist-Wert",
- "Energetische-Qualitaet-Anforderungs-Wert",
- "Sommerlicher-Waermeschutz",
- "Abminderung-Sonnenschutz"
- ],
- "properties": {
- "Wohngebaeude-Anbaugrad": {
- "$ref": "#/definitions/Wohngebaeude-Anbaugrad-enum",
- "description": "Anbaugrad des Gebäudes bzw. Gebäudeteils an (beheizte) Nachbargebäude."
- },
- "Anzahl-Geschosse": {
- "description": "Anzahl beheizter Geschosse im Gebäude (inkl. Keller, wenn beheizt).",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Geschoss-Bruttogeschossflaechenumfang": {
- "description": "Der beheizte Bruttogeschossflächenumfang des ersten Geschosses in m (Bruttogeschossflächenumfang: u).",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Geschoss-Bruttogeschossflaeche": {
- "description": "Die beheizte Bruttogeschossfläche des ersten Geschosses in m² (Bruttogeschossfläche: A_G).",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Dach-Bruttogeschossflaechenumfang": {
- "description": "Der beheizte Bruttogeschossflächenumfang des Dachgeschosses in m (Bruttogeschossflächenumfang: u).",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Dach-Bruttogeschossflaeche": {
- "description": "Die beheizte Bruttogeschossfläche des Dachgeschosses in m² (Bruttogeschossfläche: A_G).",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Aufsummierte-Bruttogeschossflaeche": {
- "description": "Die aufsummierte Bruttogeschossfläche des Gebäudes über alle Geschosse (einschließlich Dachgeschoss, jedoch bei Gebäuden mit zwei oder mehr beheizten Geschossen werden nur 80% A_G des Dachgeschosses angerechnet, wenn die mittlere Dachgeschosshöhe kleiner ist als 2,5 m) in m² (Bruttogeschossfläche: A_GS).",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Mittlere-Geschosshoehe": {
- "description": "Mittlere Geschosshöhe über alle Geschosse (einschließlich Dachgeschoss) in m.",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Kompaktheit": {
- "description": "Anforderung u² ≤ 20*AG über alle Geschosse erfüllt?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Deckungsgleichheit": {
- "description": "Die beheizten Bruttogeschossflächen aller Geschosse sind ohne Vor- oder Rücksprünge deckungsgleich; nur das oberste Geschoss weist ggf. eine kleinere Bruttogeschossfläche auf.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Fensterflaechenanteil-Nordost-Nord-Nordwest": {
- "description": "Die Fensterfläche der in nördliche Richtung orientierten Fenster des Gebäudes in Prozent. Diese Fläche ist nicht größer als der Mittelwert der Fensterflächen anderer Orientierungen (vgl. GEG § 31, Anlage 5, Modellgebäudeverfahren).",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Fensterflaechenanteil-Gesamt": {
- "description": "Angabe des Fensterflächenanteiles bezogen auf die Fassadenfläche des gesamten Gebäudes in Prozent. Der Höchstwert für zweiseitig angebaute Gebäude: 35 %, ansonsten 30 %.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Dach-transparente-Bauteile-Fensterflaechenanteil": {
- "description": "Flächenanteil von Dachflächenfenstern, Lichtkuppeln und ähnliche transparente Bauteile der gesamten Dachfläche in Prozent.",
- "maximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Spezielle-Fenstertueren-Flaechenanteil": {
- "description": "Spezielle Fenstertüren-Flächenanteil der Fassade des gesamten Gebäudes in Prozent. Der Höchstwert ist 4,5 %, bei zweiseitig angebauten Gebäuden 5,5 %.",
- "maximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Außentueren-Flaechenanteil": {
- "description": "Außentüren-Flächenanteil bezogen auf die Fassadenfläche des gesamten Gebäudes in m², max. 2,7% bei Ein- und Zweifamilienhäusern, ansonsten 1,5 %.",
- "maximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Keine-Anlage-zur-Kuehlung": {
- "description": "Das Gebäude ist nicht mit einer Anlage zur Raumkühlung (Klimaanlage) ausgestattet.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Anforderung-Waermebruecken-erfuellt": {
- "description": "Die Wärmebrücken, die im Rahmen rechnerischer Nachweise zu berücksichtigen wären, sind so ausgeführt, dass sie mindestens gleichwertig zu den Musterlösungen nach DIN 4108 Beiblatt 2 sind. (§ 24 GEG über Fälle, in denen auf Gleichwertigkeitsnachweise verzichtet werden kann, bleibt unberührt)",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Gebaeudedichtheit": {
- "description": "Dichtheit des Gebäudes nach § 26 GEG erfolgreich geprüft (n_50-Wert)?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Heiz-Warmwassersystem": {
- "$ref": "#/definitions/Heizwaermeerzeuger-Typ-easy-enum",
- "description": "Angaben zum Heiz- und Warmwassersystem nach Anlage 5 Tabelle 1 bis 3 GEG."
- },
- "Lueftungsanlagenanforderungen": {
- "description": "Lüftungsanlagenanforderungen gemäß Anlage 5 GEG erfüllt?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Waermeschutz-Variante": {
- "$ref": "#/definitions/Waermeschutz-Variante-enum",
- "description": "Angewendete Wärmeschutzvariante nach Anlage 5 Tabelle 1 bis 3 GEG."
- },
- "Endenergiebedarf": {
- "description": "Endenergiebedarf in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "maximum": 1000,
- "minimum": 0,
- "type": "number"
- },
- "Energieeffizienzklasse": {
- "$ref": "#/definitions/Energieeffizienzklasse-enum",
- "description": "Energieeffizienzklasse des Gebäudes."
- },
- "Primaerenergiebedarf-Ist-Wert": {
- "description": "Primärenergiebedarf-Ist-Wert in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "maximum": 1000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-Anforderungswert": {
- "description": "Primärenergiebedarf-Anforderungswert in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "maximum": 1000,
- "minimum": 0,
- "type": "number"
- },
- "Energetische-Qualitaet-Ist-Wert": {
- "description": "Energetische Qualität Gebäudehülle HT´ in W/m²K, Ist-Wert.",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "Energetische-Qualitaet-Anforderungs-Wert": {
- "description": "Energetische Qualität Gebäudehülle HT´ in W/m²K, Anforderungs-Wert.",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "Sommerlicher-Waermeschutz": {
- "description": "Das Gebäude erfüllt die Voraussetzungen, unter denen der sommerliche Wärmeschutz auch ohne rechnerischen Nachweis als erfüllt gilt (neue Normungsverweise). aa) Beim kritischen Raum (Raum mit der höchsten Wärmeeinstrahlung im Sommer) beträgt der Fensterflächenanteil bezogen auf die Grundfläche dieses Raums nicht mehr als 35 vom Hundert, bb) sämtliche Fenster in Ost-, Süd- oder Westorientierung (inkl. derer eines eventuellen Glasvorbaus) sind mit außenliegenden Sonnenschutzvorrichtun-gen mit einem Abminderungsfaktor FC ≤ 0,30 ausgestattet.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Abminderung-Sonnenschutz": {
- "description": "Abminderungsfaktor der verwendeten Sonnenschutzvorrichtung für Fenster mit Ost-, Süd- oder Westorientierung.",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Art-der-Nutzung-erneuerbaren-Energie-1": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum",
- "description": "Es wird die erste Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau."
- },
- "Deckungsanteil-1": {
- "description": "Deckungsanteil in % für erste Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anteil-der-Pflichterfuellung-1": {
- "description": "Pflichterfüllungsanteil in % für die erste Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)",
- "maximum": 999,
- "minimum": 0,
- "type": "integer"
- },
- "Art-der-Nutzung-erneuerbaren-Energie-2": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum",
- "description": "Es wird die zweite Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach GEG Abschnit 4 § 34 erwartet, relevant nur bei Neubau."
- },
- "Deckungsanteil-2": {
- "description": "Deckungsanteil in % für zweite Angabe Angabe zur Nutzung erneuerbarer Energien nach GEG Abschnitt 4 § 34 (Neubau), relevant nur bei Neubau.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anteil-der-Pflichterfuellung-2": {
- "description": "Pflichterfüllungsanteil in % für die zweite Angabe zur Nutzung erneuerbarer Energien nach GEG. (§ 34: Die prozentualen Anteile der tatsächlichen Nutzung der einzelnen Maßnahmen im Verhältnis der jeweils nach den § 35 bis § 45 vorgesehenen Nutzung müssen in der Summe mindestens 100 Prozent Erfüllungsgrad ergeben.)",
- "maximum": 999,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Heizwaermeerzeuger-Typ-easy-enum": {
- "enum": [
- "Zentrale Biomasse-Heizungsanlage auf Basis von Holzpellets, Hackschnitzeln oder Scheitholz, zentrale Abluftanlage, solarthermische Anlage zur Trinkwarmwasser-Bereitung",
- "Zentrale Biomasse-Heizungsanlage auf Basis von Holzpellets, Hackschnitzeln oder Scheitholz, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlage zur Trinkwarmwasser-Bereitung",
- "Fernwärme mit zertifiziertem Primärenergiefaktor fp ≤ 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %)",
- "Fernwärme mit zertifiziertem Primärenergiefaktor fp ≤ 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), solarthermische Anlagen",
- "Fernwärme mit zertifiziertem Primärenergiefaktor fp ≤ 0,7, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), Photovoltaik-Anlagen",
- "Luft-Wasser-Wärmepumpe, dezentrale Trinkwassererwärmung, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %)",
- "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %)",
- "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), solarthermische Anlagen",
- "Luft-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung (Wärmebereitstellungsgrad ≥ 80 %), Photovoltaik-Anlagen",
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage",
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, solarthermische Anlagen",
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, Photovoltaik-Anlagen",
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung",
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlagen",
- "Wasser-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, Photovoltaik-Anlagen",
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage",
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, solarthermische Anlagen",
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, zentrale Abluftanlage, Photovoltaik-Anlagen",
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung",
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, solarthermische Anlagen",
- "Sole-Wasser-Wärmepumpe mit Flächenheizsystem zur Wärmeübergabe, Lüftungsanlage mit Wärmerückgewinnung, Photovoltaik-Anlagen"
- ],
- "type": "string"
- },
- "Waermeschutz-Variante-enum": {
- "enum": [
- "Wärmeschutz-Variante A",
- "Wärmeschutz-Variante B",
- "Wärmeschutz-Variante C",
- "Wärmeschutz-Variante D"
- ],
- "type": "string"
- },
- "Wohngebaeude-Anbaugrad-enum": {
- "enum": [
- "freistehend",
- "einseitig angebaut",
- "zweiseitig angebaut"
- ],
- "type": "string"
- },
- "Luftdichtheit-18599-enum": {
- "description": "Luftdichtheit nach DIN V 18599",
- "enum": [
- "Gebäudekategorie I",
- "Gebäudekategorie II",
- "Gebäudekategorie III",
- "Gebäudekategorie IV"
- ],
- "type": "string"
- },
- "Heizungsanlage-Daten": {
- "description": "Angaben zum jeweiligen Wärmeerzeuger",
- "required": [
- "Waermeerzeuger-Bauweise-18599",
- "Nennleistung",
- "Waermeerzeuger-Baujahr",
- "Anzahl-baugleiche",
- "Energietraeger",
- "Primaerenergiefaktor",
- "Emissionsfaktor"
- ],
- "properties": {
- "Waermeerzeuger-Bauweise-18599": {
- "$ref": "#/definitions/Heizwaermeerzeuger-Typ-18599-enum",
- "description": "Dieser Block enthält die Beizeichung für die Waermeerzeuger Bauweise nach DIN V 18599."
- },
- "Nennleistung": {
- "description": "Nennleistung des Wärmeerzeugers in kW, falls aus technischen Gründen keine Angabe der Nennleistung möglich, 0 angeben.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Waermeerzeuger-Baujahr": {
- "description": "Baujahr dieses Wärmeerzeugers oder Jahr der massgeblichen letzten baulichen Veränderung des Wärmeerzeugers.",
- "maximum": 2100,
- "minimum": 1800,
- "pattern": "^(-?[0-9]+)(Z|[+-][0-9][0-9]:[0-9][0-9])?$",
- "type": "string"
- },
- "Anzahl-baugleiche": {
- "description": "Anzahl ggfs. baugleich vorhandener Geräte (Mehrfach-Kessel, Einzelraumheizer usw.), bei nur einem Gerät Angabe \"1\".",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Energietraeger": {
- "$ref": "#/definitions/Energietraeger-enum",
- "description": "vom Wärmeerzeuger verwendeter Energieträger"
- },
- "Primaerenergiefaktor": {
- "description": "Verwendeter Primärenergiefaktor (nicht erneuerbarer Anteil) des Energieträgers (Primärenergiefaktor: f_p) entsprechend Anlage 4 GEG.",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Emissionsfaktor": {
- "description": "Emissionsfaktor für den jeweils eingesetzen Energieträger zur Umrechnung in Treibhausemissionen gemäß Anlage 9 des GEG.",
- "maximum": 100000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Heizwaermeerzeuger-Typ-18599-enum": {
- "description": "Geräte-Grundtyp des Wärmeerzeugers nach DIN V 18599 ergänzt um §71 GEG 2024. Die Anforderungen nach §71 (3) sind zu berücksichtigen.",
- "enum": [
- "Standard-Heizkessel als Umstell-/Wechselbrandkessel",
- "Standard-Heizkessel als Feststoffkessel (fossiler und biogener Brennstoff)",
- "Standard-Heizkessel als Gas-Spezial-Heizkessel",
- "Standard-Heizkessel als Gebläsekessel (fossiler und biogener Brennstoff)",
- "Standard-Heizkessel als Gebläsekessel mit Brennertausch",
- "Standard-Heizkessel als Pelletkessel",
- "Standard-Heizkessel als Hackschnitzelkessel",
- "Niedertemperatur-Heizkessel als Gas-Spezial-Heizkessel",
- "Niedertemperatur-Heizkessel als Umlaufwasserheizer",
- "Niedertemperatur-Heizkessel als Kombikessel KSp",
- "Niedertemperatur-Heizkessel als Kombikessel DL",
- "Niedertemperatur-Heizkessel als Gebläsekessel",
- "Niedertemperatur-Heizkessel als Gebläsekessel mit Brennertausch",
- "Brennwertkessel (Pellet)",
- "Brennwertkessel (Öl/Gas)",
- "Brennwertkessel (Öl, Gas), verbessert",
- "Dezentrale KWK-Systeme, motorische Systeme",
- "Dezentrale KWK-Systeme, Systeme mit Brennstoffzellen",
- "Elektrisch angetriebene Luft/Wasser-Heizungswärmepumpe",
- "Elektrisch angetriebene Wasser/Wasser-Heizungswärmepumpe",
- "Elektrisch angetriebene Sole/Wasser-Heizungswärmepumpe",
- "Elektrisch angetriebene Abluft/Wasser-Heizungswärmepumpe",
- "Gasmotorisch angetriebene Luft/Wasser-Heizungswärmepumpe",
- "Elektrisch angetriebene Außenluft/Raumluft-Heizungswärmepumpe",
- "Sorptions-Gaswärmepumpe",
- "Gasraumheizer, schornsteingebunden",
- "Gasraumheizer, Außenwand-Gerät",
- "Dezentrale Einzelfeuerstätten",
- "Dezentrale Einzelfeuerstätten, hydraulisch eingebunden",
- "Ölbefeuerter Einzelofen mit Verdampfungsbrenner",
- "Kachelofen",
- "Kohlebefeuerter eisener Ofen",
- "Dezentrale Hallenheizung - indirekte Abgasabfuhr - Hellstrahler",
- "Dezentrale Hallenheizung - direkte Abgasabfuhr - Hellstrahler",
- "Dezentrale Hallenheizung - direkte Abgasabfuhr - Dunkelstrahler",
- "Dezentrale Hallenheizung - direkte Abgasabfuhr - Warmlufterzeuger",
- "Dezentral elektrisch beheizte Speicherheizung",
- "Dezentrale elektrische Direktheizung",
- "Zentral elektrisch beheizte Wärmeerzeuger",
- "Solaranlagen zur Trinkwassererwärmung und Heizungsunterstützung (Solare Kombianlagen)",
- "Hausübergabestation zum Anschluss an ein Wärmenetz",
- "Solarthermische Anlage",
- "Heizungsanlage zur Nutzung von Biomasse",
- "Heizungsanlage zur Nutzung von grünem Wasserstoff",
- "Heizungsanlage zur Nutzung von blauem Wasserstoff",
- "Wärmepumpen-Hybridheizung aus elektrisch angetriebenen Wärmepumpe in Kombination mit einer Gasbrennstofffeuerung",
- "Wärmepumpen-Hybridheizung aus elektrisch angetriebenen Wärmepumpe in Kombination mit einer Biomassebrennstofffeuerung",
- "Wärmepumpen-Hybridheizung aus elektrisch angetriebenen Wärmepumpe in Kombination mit einer Flüssigbrennstofffeuerung",
- "Solarthermie-Hybridheizung aus solarthermischen Anlage in Kombination mit einer Gasbrennstofffeuerung",
- "Solarthermie-Hybridheizung bestehend aus einer solarthermischen Anlage in Kombination mit einer Biomassebrennstofffeuerung",
- "Solarthermie-Hybridheizung bestehend aus einer solarthermischen Anlage in Kombination mit Flüssigbrennstofffeuerung"
- ],
- "type": "string"
- },
- "Energietraeger-enum": {
- "enum": [
- "Heizöl",
- "Erdgas",
- "Flüssiggas",
- "Steinkohle",
- "Braunkohle",
- "Biogas",
- "Biogas, gebäudenah erzeugt",
- "biogenes Flüssiggas",
- "Bioöl",
- "Bioöl, gebäudenah erzeugt",
- "Holz",
- "Strom netzbezogen",
- "Strom gebäudenah erzeugt (aus Photovoltaik, Windkraft)",
- "Verdrängungsstrommix für KWK",
- "Wärme (Erdwärme, Geothermie, Solarthermie, Umgebungswärme)",
- "Kälte (Erdkälte, Umgebungskälte)",
- "Abwärme aus Prozessen (prod)",
- "Abwärme aus Prozessen (out)",
- "Wärme aus KWK, gebäudeintegriert oder gebäudenah",
- "Wärme aus Verbrennung von Siedlungsabfällen",
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger",
- "Nah-/Fernwärme aus KWK, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger",
- "Nah-/Fernwärme aus KWK, erneuerbarer Brennstoff bzw. Energieträger",
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Stein-/Braunkohle) bzw. Energieträger",
- "Nah-/Fernwärme aus Heizwerken, fossiler Brennstoff (Gasförmige und flüssige Brennstoffe) bzw. Energieträger",
- "Nah-/Fernwärme aus Heizwerken, erneuerbarer Brennstoff bzw. Energieträger"
- ],
- "type": "string"
- },
- "Heizkreisauslegungstemperatur-enum": {
- "enum": [
- "90/70",
- "70/55",
- "55/45",
- "45/35",
- "35/28",
- "Warmluftheizung",
- "nur Einzelraum-Heizgeräte"
- ],
- "type": "string"
- },
- "Trinkwarmwasseranlage-Daten": {
- "description": "Angaben zum jeweiligen Warmwassererzeuger.",
- "required": [
- "Trinkwarmwassererzeuger-Bauweise-18599",
- "Trinkwarmwassererzeuger-Baujahr",
- "Anzahl-baugleiche"
- ],
- "properties": {
- "Trinkwarmwassererzeuger-Bauweise-18599": {
- "$ref": "#/definitions/Trinkwarmwassererzeuger-Typ-18599-enum",
- "description": "Dieser Block enthält die Bezeichung für die Wärmeerzeuger Bauweise nach DIN V 18599."
- },
- "Trinkwarmwassererzeuger-Baujahr": {
- "description": "Baujahr dieses Trinkwarmwassererzeugers oder Jahr der massgeblichen letzten baulichen Veränderung des Trinkwarmwassererzeugers.",
- "maximum": 2100,
- "minimum": 1800,
- "pattern": "^(-?[0-9]+)(Z|[+-][0-9][0-9]:[0-9][0-9])?$",
- "type": "string"
- },
- "Anzahl-baugleiche": {
- "description": "Anzahl ggfs. baugleich vorhandener Geräte (mehrfach vorhandene Untertischgeräte usw.), bei nur einem Gerät Angabe \"1\".",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Trinkwarmwassererzeuger-Typ-18599-enum": {
- "description": "Geräte-Grundtyp des Warmwassererzeugers nach DIN V 18599.",
- "enum": [
- "Standard-Heizkessel als Umstell-/Wechselbrandkessel",
- "Standard-Heizkessel als Feststoffkessel (fossiler und biogener Brennstoff)",
- "Standard-Heizkessel als Gas-Spezial-Heizkessel",
- "Standard-Heizkessel als Gebläsekessel (fossiler und biogener Brennstoff)",
- "Standard-Heizkessel als Gebläsekessel mit Brennertausch",
- "Standard-Heizkessel als Pelletkessel",
- "Standard-Heizkessel als Hackschnitzelkessel",
- "Niedertemperatur-Heizkessel als Gas-Spezial-Heizkessel",
- "Niedertemperatur-Heizkessel als Umlaufwasserheizer",
- "Niedertemperatur-Heizkessel als Kombikessel KSp",
- "Niedertemperatur-Heizkessel als Kombikessel DL",
- "Niedertemperatur-Heizkessel als Gebläsekessel",
- "Niedertemperatur-Heizkessel als Gebläsekessel mit Brennertausch",
- "Brennwertkessel (Pellet)",
- "Brennwertkessel (Öl/Gas)",
- "Brennwertkessel (Öl, Gas), verbessert",
- "Gas-Durchlauferhitzer",
- "Fern-/Nahwärme",
- "Dezentrale Kraft-Wärme-Kopplung, motorische Systeme",
- "Dezentrale Kraft-Wärme-Kopplung, Systeme mit Brennstoffzellen",
- "Dezentrale Einzelfeuerstätten, hydraulisch eingebunden",
- "Elektrisch angetriebene Kellerluft/Wasser-Wärmepumpe",
- "Elektrisch angetriebene Luft/Wasser-Wärmepumpe",
- "Elektrisch angetriebene Abluft/Trinkwasser-Wärmepumpe",
- "Elektrisch angetriebene Abluft/Zuluft-Trinkwasser-Wärmepumpe",
- "Elektrisch angetriebene Kellerluft/Trinkwasser-Wärmepumpe",
- "Elektrisch angetriebene Wasser/Wasser-Wärmepumpe",
- "Elektrisch angetriebene Sole/Wasser-Wärmepumpe",
- "Elektrisch angetriebene Abluft/Wasser-Wärmepumpe",
- "Gasmotorisch angetriebene Luft/Wasser-Wärmepumpe",
- "Sorptions-Gaswärmepumpe",
- "Direkt beheizter Trinkwarmwasserspeicher (Gas)",
- "Elektro-Durchlauferhitzer",
- "Elektrisch beheizter Trinkwarmwasserspeicher",
- "Solaranlagen zur Trinkwassererwärmung"
- ],
- "type": "string"
- },
- "Wohngebaeude-Bedarfs-Daten-18599": {
- "description": "Dieser Block enthält im Falle eines Wohngebäudes mit Nachweis nach DIN V 18599 die Bedarfswerte.",
- "required": [
- "Wohngebaeude-Anbaugrad",
- "Bruttovolumen",
- "durchschnittliche-Geschosshoehe",
- "Bauteil-Opak",
- "Waermebrueckenzuschlag",
- "Transmissionswaermesenken",
- "Luftdichtheit",
- "Lueftungswaermesenken",
- "Waermequellen-durch-solare-Einstrahlung",
- "Interne-Waermequellen",
- "Heizsystem",
- "Pufferspeicher-Nenninhalt",
- "Auslegungstemperatur",
- "Heizsystem-innerhalb-Huelle",
- "Warmwasserbereitungssystem",
- "Trinkwarmwasserspeicher-Nenninhalt",
- "Trinkwarmwasserverteilung-Zirkulation",
- "Vereinfachte-Datenaufnahme",
- "spezifischer-Transmissionswaermetransferkoeffizient-Ist",
- "Innovationsklausel",
- "Quartiersregelung",
- "Primaerenergiebedarf-Hoechstwert-Bestand",
- "Energietraeger-Liste",
- "Endenergiebedarf-Waerme-AN",
- "Endenergiebedarf-Hilfsenergie-AN",
- "Endenergiebedarf-Gesamt",
- "Primaerenergiebedarf-AN",
- "Energieeffizienzklasse",
- "Anteil-an-Waermeenergiebedarf-Berechnung",
- "Weitere-Eintraege-und-Erlaeuterungen-in-der-Anlage"
- ],
- "properties": {
- "Wohngebaeude-Anbaugrad": {
- "$ref": "#/definitions/Wohngebaeude-Anbaugrad-enum",
- "description": "Anbaugrad des Gebäudes bzw. Gebäudeteils an (beheizte) Nachbargebäude."
- },
- "Bruttovolumen": {
- "description": "Beheiztes Gebäudevolumen des Gebäudes/Gebäudeteils (ganze Kubikmeter) (Bruttovolumen: V_e).",
- "maximum": 1000000,
- "minimum": 0,
- "type": "integer"
- },
- "durchschnittliche-Geschosshoehe": {
- "description": "Durchschnittliche Geschosshöhe hG des Gebäudes/Gebäudeteils in m zur Festlegung, über welche Formel (Anl. 1 Nr. 1.3.3 Satz 1 oder 2) die Nutzfläche AN bestimmt wurde (Durchschnittliche Geschosshöhe: h_G).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Bauteil-Opak": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Opak-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Opak-Daten"
- },
- "maxItems": 10000,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Bauteil-Transparent": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Transparent-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Transparent-Daten"
- },
- "maxItems": 10000,
- "type": "array"
- }
- ]
- },
- "Bauteil-Dach": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Dach-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Dach-Daten"
- },
- "maxItems": 10000,
- "type": "array"
- }
- ]
- },
- "Waermebrueckenzuschlag": {
- "description": "Wert des Wärmebrückenzuschlags für die Gebäudehülle (Wärmebrückenzuschlag: delta_U_WB).",
- "maximum": 0.999,
- "minimum": -0.999,
- "type": "number"
- },
- "Transmissionswaermesenken": {
- "description": "Transmissionswärmesenken in kWh/a (Transmissionswärmesenken: Q_T).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Luftdichtheit": {
- "$ref": "#/definitions/Luftdichtheit-18599-enum",
- "description": "Luftdichtheit der Gebäudehülle."
- },
- "Lueftungswaermesenken": {
- "description": "Lüftungswärmesenken in kWh/a (Lüftungswärmesenken: Q_V).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Waermequellen-durch-solare-Einstrahlung": {
- "description": "Summe der Wärmequellen durch solare Einstrahlung in kWh/a (Wärmequellen durch solare Einstrahlung: Q_S).",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "Interne-Waermequellen": {
- "description": "Summe der inneren Gewinne in kWh/a (Interne-Wärmequellen: Q_I,source) Info: Interne Wärmequellen nach DIN V 18599 berücksichtigen die ungeregelten Wärmequellen aus der Anlagentechnik nicht.",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "Heizsystem": {
- "oneOf": [
- {
- "$ref": "#/definitions/Heizungsanlage-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Heizungsanlage-Daten"
- },
- "maxItems": 200,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Pufferspeicher-Nenninhalt": {
- "description": "Volumen eines ggfs. vorhandenen Heizungs-Pufferspeichers (keiner =0) in Liter (Pufferspeicher-Nenninhalt: V_s).",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Auslegungstemperatur": {
- "$ref": "#/definitions/Heizkreisauslegungstemperatur-enum",
- "description": "Temperaturniveau der Heizungsverteilung Vorlauf/Rücklauf, bzw. Angabe von Luftheizsystem oder ausschliesslicher Beheizung über Einzelraumheizgeräte; anzugeben ist die Temperatur des höchsten Kreises, bei krummen Werten ist die nach Vorlauftemperatur nächst höhere Auswahl anzugeben."
- },
- "Heizsystem-innerhalb-Huelle": {
- "description": "TRUE, wenn alle Wärmeerzeuger innerhalb der thermischen Gebäudehülle stehen.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Warmwasserbereitungssystem": {
- "oneOf": [
- {
- "$ref": "#/definitions/Trinkwarmwasseranlage-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Trinkwarmwasseranlage-Daten"
- },
- "maxItems": 200,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Trinkwarmwasserspeicher-Nenninhalt": {
- "description": "Volumen eines ggfs. vorhandenen Warmwasserspeichers (kein Speicher = 0) bzw. Summe der Volumina bei mehreren Speichern, in Liter (Trinkwarmwasserspeicher-Nenninhalt: V_s).",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Trinkwarmwasserverteilung-Zirkulation": {
- "description": "Ist zur Warmwasserverteilung eine Trinkwasser-seitige Zirkulation vorhanden?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Vereinfachte-Datenaufnahme": {
- "description": "Wurden Regeln zur vereinfachten Datenaufnahme nach § 50 (4) GEG bzw. Bekanntmachungen angewendet?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "spezifischer-Transmissionswaermetransferkoeffizient-Ist": {
- "description": "Spezifischer auf die wärmeübertragende Umfassungsfläche bezogener Transmissionswärmeverlust HT', Ist-Wert des Gebäudes, in W/m²K (spezifischer Transmissionswärmetransferkoeffizient: H_T(Strich)).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "spezifischer-Transmissionswaermetransferkoeffizient-Hoechstwert": {
- "description": "Spezifischer auf die wärmeübertragende Umfassungsfläche bezogener Transmissionswärmeverlust HT', Anforderungswert, in W/m²K, nur bei Neubau und wesentlicher Modernisierung/Erweiterungen (spezifischer Transmissionswärmetransferkoeffizient: H_T(Strich)).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "angerechneter-lokaler-erneuerbarer-Strom": {
- "description": "Größe des Abzugs (in kWh/a m2) bei der Primärenergie bzw. bei der Endenergie für den gebäudenah erzeugten Strom aus erneuerbarer Energie nach der entsprechenden Bilanzierungsregel (vgl. GEG §23 (4))",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Innovationsklausel": {
- "description": "Angabe ob Innovationsklausel gemäß § 103 (1) GEG 2020 angewendet wurde. (Alternative Anforderungen: Treibhausgasemissionen, Höchstwert der Endenergiebedarfs + Transmissionswärmeverlust (nur für Neubau und WG) + Wärmedurchgangskoeffizienten der wärmeübertragenden Umfassungsfläche (nur für Neubau und NWG) - Aussetzung der Hauptanforderungen (Neubau § 10, Bestand § 50))",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Quartiersregelung": {
- "description": "Angabe ob Quartiersregelung gemäß § 103 (3) - Gesamtbilanzierung für Wärmeversorgung zusammenhängender Gebäude - zutreffend ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Primaerenergiebedarf-Hoechstwert-Bestand": {
- "description": "Primärenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Energietraeger-Liste": {
- "oneOf": [
- {
- "$ref": "#/definitions/Endenergie-Energietraeger-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Endenergie-Energietraeger-Daten"
- },
- "maxItems": 10,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Endenergiebedarf-Waerme-AN": {
- "description": "Endenergiekennwert Wärme in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergiebedarf-Wärme: Q_f).",
- "exclusiveMaximum": 10000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Hilfsenergie-AN": {
- "description": "Endenergiekennwert Hilfsenergie in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergiebedarf-Hilfsenergie: W_f).",
- "exclusiveMaximum": 10000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Gesamt": {
- "description": "Endenergiekennwert Gesamt in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "exclusiveMaximum": 10000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-AN": {
- "description": "Primärenergiekennwert in kWh/m²a bezogen auf die energetische Nutzfläche (Primärenergiebedarf: Q_p).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Energieeffizienzklasse": {
- "$ref": "#/definitions/Energieeffizienzklasse-enum",
- "description": "Energieeffizienzklasse des Gebäudes."
- },
- "Anteil-an-Waermeenergiebedarf-Berechnung": {
- "description": "Anteil am Wärmeenergiebedarf auf Grundlage von Berechnungen nach DIN V 18599:2018-09",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Weitere-Eintraege-und-Erlaeuterungen-in-der-Anlage": {
- "description": "Für weitere Einträge un Erläuterungen in der Anlage.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Angaben-erneuerbare-Energien-65EE-Regel": {
- "oneOf": [
- {
- "$ref": "#/definitions/Angaben-erneuerbare-Energien-65EE-Regel-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Angaben-erneuerbare-Energien-65EE-Regel-Daten"
- },
- "maxItems": 100,
- "type": "array"
- }
- ]
- },
- "Angaben-erneuerbare-Energien-keine-65EE-Regel": {
- "oneOf": [
- {
- "$ref": "#/definitions/Angaben-erneuerbare-Energien-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Angaben-erneuerbare-Energien-Daten"
- },
- "maxItems": 100,
- "type": "array"
- }
- ]
- },
- "spezifischer-Transmissionswaermetransferkoeffizient-verschaerft": {
- "description": "Nach EEWärmeG verschärfter Anforderungswert für den spezifischen auf die wärmeübertragende Umfassungsfläche bezogenen Transmissionswärmeverlust HT' in W/m²K (spezifischer-Transmissionswärmetransferkoeffizient-verschärft: H_T(Strich)).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Sommerlicher-Waermeschutz": {
- "description": "Sind die Anforderungen an den sommerlichen Wärmeschutz eingehalten? Relevant nur bei Neubau.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Treibhausgasemissionen-Zusaetzliche-Verbrauchsdaten": {
- "description": "Angabe der Treibhausgasemissionen in kg als CO2 Äquivalent/(m²a); nur bei kombinierten Energieausweisen (Bedarf/Verbrauch), zusammen mit der Übermittlung der zusätzlichen Verbrauchsdaten.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- },
- "Zusaetzliche-Verbrauchsdaten": {
- "$ref": "#/definitions/Wohngebaeude-Verbrauchs-Daten",
- "description": "Bei Energieausweisen auf Bedarfsbasis können neben den Bedarfsangaben zusätzlich Angaben zum Verbrauch im Energieausweis dargestellt werden, die dann hier entsprechend integriert werden. Die Ermittlung der Fläche AN aus der Wohnfläche darf in den Wohngebäude-Verbrauchs-Daten dann nicht angekreuzt sein, da die Fläche nach einem für Bedarfsausweise zulässigen Verfahren ermittelt worden sein muss."
- }
- },
- "type": "object",
- "oneOf": [
- {
- "required": [
- "Endenergiebedarf-Hoechstwert-Bestand",
- "Treibhausgasemissionen-Hoechstwert-Bestand"
- ],
- "properties": {
- "Endenergiebedarf-Hoechstwert-Bestand": {
- "description": "Endenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Treibhausgasemissionen-Hoechstwert-Bestand": {
- "description": "Anforderungswert für Treibhausgasemissionen Modernisierter Altbau in kg/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- }
- }
- },
- {
- "required": [
- "Primaerenergiebedarf-Hoechstwert-Neubau",
- "Endenergiebedarf-Hoechstwert-Neubau",
- "Treibhausgasemissionen-Hoechstwert-Neubau"
- ],
- "properties": {
- "Primaerenergiebedarf-Hoechstwert-Neubau": {
- "description": "Primärenergie-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche, bei Neubau im Energieausweis einzutragen. (Primärenergiebedarf: Q_p,Ref).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Hoechstwert-Neubau": {
- "description": "Endenergiebedarf-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Treibhausgasemissionen-Hoechstwert-Neubau": {
- "description": "Anforderungswert für Treibhausgasemissionen Neubau (Kennwert des Referenzgebäudes) in kg/m²a bezogen auf die energetische Nutzfläche.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- }
- }
- }
- ]
- },
- "Nichtwohngebaeude-Daten": {
- "description": "Dieser Block enthält entweder Verbrauchs- oder Bedarfswerte; beim Bedarfsausweis können zusätzliche Verbrauchsangaben angeführt werden.",
- "required": [
- "Hauptnutzung-Gebaeudekategorie",
- "Nettogrundflaeche"
- ],
- "properties": {
- "Hauptnutzung-Gebaeudekategorie": {
- "$ref": "#/definitions/Nutzung-Gebaeudekategorie-enum",
- "description": "Pflichtangabe der Hauptnutzungsart des Gebäudes. Die Auswahl der Hauptnutzung-Gebaeudekategorie ergibt sich aus der \"Bekanntmachung der Regeln für Energieverbrauchswerte und der Vergleichswerte im Nichtwohngebäudebestand\" unter der Anlage 1 Tabelle 1 Teilenergiekennwerte (TEK) nach Gebäudekategorien."
- },
- "Hauptnutzung-Gebaeudekategorie-Sonstiges-Beschreibung": {
- "description": "Sollte keine der 52 Gebäudekategorien laut Bekanntmachung für die Hauptnutzung zutreffend sein, muss in Hauptnutzung-Gebaeudekategorie-Sonstiges-Beschreibung eine alternative Bezeichnung eingetragen werden. Für die Seite 3 im Energieverbrauchsausweis Nichtwohngebäude darf die Gebäudekategorie '53:Sonstiges' nicht verwendet werden.",
- "pattern": ".{1,84}",
- "type": "string"
- },
- "Nettogrundflaeche": {
- "description": "Nettogrundfläche als energetische Nutzfläche eines Gebäudes/Gebäudeteils nach DIN V 18599: 2018-09 (ganze Quadratmeter) (Nettogrundfläche: A_NGF).",
- "maximum": 1000000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object",
- "oneOf": [
- {
- "required": [
- "Verbrauchswerte-NWG"
- ],
- "properties": {
- "Verbrauchswerte-NWG": {
- "$ref": "#/definitions/Nichtwohngebaeude-Verbrauchs-Daten"
- }
- }
- },
- {
- "required": [
- "Bedarfswerte-NWG"
- ],
- "properties": {
- "Bedarfswerte-NWG": {
- "$ref": "#/definitions/Nichtwohngebaeude-Bedarfs-Daten"
- }
- }
- }
- ]
- },
- "Energieeffizienzklasse-enum": {
- "enum": [
- "A+",
- "A",
- "B",
- "C",
- "D",
- "E",
- "F",
- "G",
- "H"
- ],
- "type": "string"
- },
- "Nichtwohngebaeude-Verbrauchs-Daten": {
- "description": "Dieser Block enthält im Falle eines Nichtwohngebäude-Verbrauchsausweises die Verbrauchsdaten.",
- "required": [
- "Energietraeger",
- "Warmwasser-enthalten",
- "Kuehlung-enthalten",
- "Strom-Daten",
- "Leerstandszuschlag-Heizung",
- "Leerstandszuschlag-Warmwasser",
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte",
- "Leerstandszuschlag-Strom",
- "Nutzung-Gebaeudekategorie",
- "Endenergieverbrauch-Waerme",
- "Endenergieverbrauch-Strom",
- "Endenergieverbrauch-Waerme-Vergleichswert",
- "Endenergieverbrauch-Strom-Vergleichswert",
- "Primaerenergieverbrauch"
- ],
- "properties": {
- "Energietraeger": {
- "oneOf": [
- {
- "$ref": "#/definitions/Energietraeger-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Energietraeger-Daten"
- },
- "maxItems": 8,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Warmwasser-enthalten": {
- "description": "Ist als TRUE anzugeben, wenn mindestens einer der (ggfs. mehreren) Heizenergieträger auch zur Warmwasserbereitung dient, die entspr. Mengen sind in der Verbrauchsliste anzugeben, entspricht dem Kreuzchenfeld im Energieausweis-Nichtwohngebäude, Verbrauchsseite, direkt links unter der Verbrauchsskala Endenergieverbrauch Wärme.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Kuehlung-enthalten": {
- "description": "Ist als TRUE anzugeben, wenn mindestens einer der (ggfs. mehreren) Heizenergieträger auch zur Kühlung dient, die entspr. Mengen sind in der Verbrauchsliste anzugeben, entspricht dem Kreuzchenfeld im Energieausweis-Nichtwohngebäude, Verbrauchsseite, direkt links unter der Verbrauchsskala Endenergieverbrauch Kühlung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Strom-Daten": {
- "description": "Es ist anzugeben, was im Stromverbrauch alles enthalten ist, entsprechend der Kreuzchenfelder im Energieausweis sowie zusätzlich Verbrauchsperioden-Strom.",
- "required": [
- "Stromverbrauch-enthaelt-Zusatzheizung",
- "Stromverbrauch-enthaelt-Warmwasser",
- "Stromverbrauch-enthaelt-Lueftung",
- "Stromverbrauch-enthaelt-Beleuchtung",
- "Stromverbrauch-enthaelt-Kuehlung",
- "Stromverbrauch-enthaelt-Sonstiges",
- "Zeitraum-Strom"
- ],
- "properties": {
- "Stromverbrauch-enthaelt-Zusatzheizung": {
- "description": "Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Zusatzheizung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Stromverbrauch-enthaelt-Warmwasser": {
- "description": "Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Warmwasserbereitung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Stromverbrauch-enthaelt-Lueftung": {
- "description": "Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Lüftung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Stromverbrauch-enthaelt-Beleuchtung": {
- "description": "Angaben, was der Stromverbrauch für Funktionalitäten umfasst: eingebaute Beleuchtung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Stromverbrauch-enthaelt-Kuehlung": {
- "description": "Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Kühlung",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Stromverbrauch-enthaelt-Sonstiges": {
- "description": "Angaben, was der Stromverbrauch für Funktionalitäten umfasst: Sonstiges.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Zeitraum-Strom": {
- "oneOf": [
- {
- "$ref": "#/definitions/Zeitraum-Strom-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Zeitraum-Strom-Daten"
- },
- "maxItems": 40,
- "minItems": 1,
- "type": "array"
- }
- ]
- }
- }
- },
- "Leerstandszuschlag-Heizung": {
- "$ref": "#/definitions/Leerstandszuschlag-Heizung-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- },
- "Leerstandszuschlag-Warmwasser": {
- "$ref": "#/definitions/Leerstandszuschlag-Warmwasser-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- },
- "Leerstandszuschlag-thermisch-erzeugte-Kaelte": {
- "$ref": "#/definitions/Leerstandszuschlag-thermisch-erzeugte-Kaelte-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- },
- "Leerstandszuschlag-Strom": {
- "$ref": "#/definitions/Leerstandszuschlag-Strom-Daten",
- "description": "Im dem Energieausweis zugrunde liegenden Zeitraum ist Leerstand aufgetreten, es wurde eine Leerstandskorrektur entsprechend der Bekanntmachung der Regeln für Energieverbrauchskennwerte vorgenommen."
- },
- "Nutzung-Gebaeudekategorie": {
- "oneOf": [
- {
- "$ref": "#/definitions/Nutzung-Gebaeudekategorie-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Nutzung-Gebaeudekategorie-Daten"
- },
- "maxItems": 5,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Endenergieverbrauch-Waerme": {
- "description": "Endenergiekennwert Heizung und zentrales Warmwasser in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergieverbrauch Wärme: e(Strich)_Vb,12mth).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergieverbrauch-Strom": {
- "description": "Endenergiekennwert Strom in kWh/m²a bezogen auf die energetische Nutzfläche (Endenergieverbrauch Strom: e(Strich)_Vs,12mth).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergieverbrauch-Waerme-Vergleichswert": {
- "description": "Endenergievergleichswert Heizung und zentrales Warmwasser in kWh/m²a bezogen auf die energetische Nutzfläche, entsprechend den anteiligen Nutzungen.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergieverbrauch-Strom-Vergleichswert": {
- "description": "Endenergievergleichswert Strom in kWh/m²a bezogen auf die energetische Nutzfläche, entsprechend den anteiligen Nutzungen.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergieverbrauch": {
- "description": "Primärenergiekennwert in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "Zeitraum-Strom-Daten": {
- "description": "Umfasst den allgemeinen Stromverbrauch im Gebäude.",
- "required": [
- "Startdatum",
- "Enddatum",
- "Energieverbrauch-Strom"
- ],
- "properties": {
- "Startdatum": {
- "description": "Anfangsdatum der Periode, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Enddatum": {
- "description": "Enddatum der Periode, angegeben als YYYY-MM-DD.",
- "maximum": 1,
- "minimum": 0,
- "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?",
- "type": "string"
- },
- "Energieverbrauch-Strom": {
- "description": "Verbrauchswert Strom in kWh.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Energieverbrauchsanteil-elektrisch-erzeugte-Kaelte": {
- "description": "Im Verbrauchswert enthaltener Wert für elektrisch erzeugte Kälte in kWh.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Nutzung-Gebaeudekategorie-Daten": {
- "required": [
- "Gebaeudekategorie",
- "Flaechenanteil-Nutzung",
- "Vergleichswert-Waerme",
- "Vergleichswert-Strom"
- ],
- "properties": {
- "Gebaeudekategorie": {
- "$ref": "#/definitions/Nutzung-Gebaeudekategorie-enum",
- "description": "Angabe der Nutzung des Gebäudes in Reihenfolge ihres Anteils der Energiebezugsfläche. Die Auswahl der Nutzung-Gebaeudekategorie ergibt sich aus der \"Bekanntmachung der Regeln für Energieverbrauchswerte und der Vergleichswerte im Nichtwohngebäudebestand\" unter der Anlage 1 Tabelle 1 Teilenergiekennwerte (TEK) nach Gebäudekategorien."
- },
- "Flaechenanteil-Nutzung": {
- "description": "Prozentualer Anteil dieser Nutzung an der gesamten Nettogrundfläche des Gebäudes.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Vergleichswert-Waerme": {
- "description": "Angabe zum zugehörigen Vergleichswert Wärme der angegebenen Nutzungskategorie des Gebäudes.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Vergleichswert-Strom": {
- "description": "Angabe zum zugehörigen Vergleichswert Strom der angegebenen Nutzungskategorie des Gebäudes.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "Nutzung-Gebaeudekategorie-enum": {
- "description": "Im Fall der Nutzung von '53:Sonstiges' ist dann auch das Feld 'Hauptnutzung-Gebaeudekategorie-Sonstiges-Beschreibung' zu befüllen. Für die Seite 3 im Energieverbrauchsausweis Nichtwohngebäude darf die Gebäudekategorie '53:Sonstiges' nicht verwendet werden.",
- "enum": [
- "1:Verwaltungsgebäude (allgemein)",
- "2:Parlaments- und Gerichtsgebäude",
- "3:Ministerien u. Ämter u. Behörden",
- "4:Polizeidienstgebäude",
- "5:Gebäude für öffentliche Bereitschaftsdienste",
- "6:Feuerwehrdienstgebäude",
- "7:Bürogebäude",
- "8:Bürogebäude - überwiegend Großraumbüros",
- "9:Bankgebäude",
- "10:Hochschule und Forschung (allgemein)",
- "11:Gebäude für Lehre",
- "12:Institute für Lehre und Forschung",
- "13:Gebäude für Forschung ohne Lehre",
- "14:Laborgebäude",
- "15:Gesundheitswesen (allgemein)",
- "16:Krankenhäuser (ohne Forschung und Lehre)",
- "17:Krankenhäuser (ohne Forschung und Lehre) und teilstationäre Versorgung",
- "18:Medizinische Einrichtungen für nicht stationäre Versorgung",
- "19:Gebäude für Reha, Kur und Genesung",
- "20:Bildungseinrichtungen (allgemein)",
- "21:Schulen",
- "22:Kinderbetreuungseinrichtungen",
- "23:Kultureinrichtungen (allgemein)",
- "24:Bibliotheken / Archive",
- "25:Ausstellungsgebäude",
- "26:Veranstaltungsgebäude",
- "27:Gemeinschafts- / Gemeindehäuser",
- "28:Opern / Theater",
- "29:Sporteinrichtungen (allgemein)",
- "30:Sporthallen",
- "31:Fitnessstudios",
- "32:Schwimmhallen",
- "33:Gebäude für Sportaußenanlagen",
- "34:Verpflegungseinrichtungen (allgemein)",
- "35:Beherbergungsstätten (allgemein)",
- "36:Hotels / Pensionen",
- "37:Jugendherbergen u. Ferienhäuser",
- "38:Gaststätten",
- "39:Mensen u. Kantinen",
- "40:Gewerbliche und industrielle Gebäude (allgemein)",
- "41:Gewerbliche und industrielle Gebäude - schwere Arbeit, stehende Tätigkeit",
- "42:Gewerbliche und industrielle Gebäude - Mischung aus leichter u. schwerer Arbeit",
- "43:Gewerbliche und industrielle Gebäude - leichte Arbeit, überwiegend sitzende Tätigkeit",
- "44:Gebäude für Lagerung",
- "45:Verkaufsstätten (allgemein)",
- "46:Kaufhäuser",
- "47:Kaufhauszentren / Einkaufszentren",
- "48:Märkte",
- "49:Märkte mit sehr hohem Anteil von Kühlung für Lebensmittel",
- "50:Läden",
- "51:Läden mit sehr hohem Anteil von Kühlung für Lebensmittel",
- "52:Fernmeldetechnik",
- "53:Sonstiges"
- ],
- "type": "string"
- },
- "Nichtwohngebaeude-Bedarfs-Daten": {
- "description": "Dieser Block enthält im Falle eines Nichtwohngebäudes die Bedarfswerte.",
- "required": [
- "Bruttovolumen",
- "Bauteil-Opak",
- "Waermebrueckenzuschlag",
- "Transmissionswaermesenken",
- "Luftdichtheit",
- "Zone",
- "Heizsystem",
- "Pufferspeicher-Nenninhalt",
- "Auslegungstemperatur",
- "Heizsystem-innerhalb-Huelle",
- "Trinkwarmwasserspeicher-Nenninhalt",
- "Trinkwarmwasserverteilung-Zirkulation",
- "Deckungsanteil-RLT-Kuehlung",
- "Deckungsanteil-Direkte-Raumkuehlung",
- "Automatisierungsgrad",
- "Automatisierungsgrad-Technisches-Gebaeudemanagement",
- "Innovationsklausel",
- "Quartiersregelung",
- "Primaerenergiebedarf-Hoechstwert-Bestand",
- "Energietraeger-Liste",
- "Endenergiebedarf-Waerme-NGF",
- "Endenergiebedarf-Strom-NGF",
- "Endenergiebedarf-Gesamt-NGF",
- "Primaerenergiebedarf-NGF",
- "Ein-Zonen-Modell",
- "Vereinfachte-Datenaufnahme",
- "Vereinfachungen-18599-1-D",
- "Anteil-an-Waermeenergiebedarf-Berechnung",
- "Weitere-Eintraege-und-Erlaeuterungen-in-der-Anlage"
- ],
- "properties": {
- "Bruttovolumen": {
- "description": "Konditioniertes brutto-Gebäudevolumen des Gebäudes/Gebäudeteils (ganze Kubikmeter) (Bruttovolumen: V_e) ggf. überschlägig ermittelter Wert.",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Bauteil-Opak": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Opak-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Opak-Daten"
- },
- "maxItems": 10000,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Bauteil-Transparent": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Transparent-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Transparent-Daten"
- },
- "maxItems": 10000,
- "type": "array"
- }
- ]
- },
- "Bauteil-Dach": {
- "oneOf": [
- {
- "$ref": "#/definitions/Bauteil-Dach-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Bauteil-Dach-Daten"
- },
- "maxItems": 10000,
- "type": "array"
- }
- ]
- },
- "Waermebrueckenzuschlag": {
- "description": "Wert des Wärmebrückenzuschlags für die Gebäudehülle (Wärmebrückenzuschlag: delta_U_WB).",
- "maximum": 0.999,
- "minimum": -0.999,
- "type": "number"
- },
- "mittlere-Waermedurchgangskoeffizienten": {
- "description": "Sind die Anforderungen an die mittleren Wärmedurchgangskoeffizienten der verschiedenen Hüllflächenbauteile (Anlage 3 GEG) eingehalten? Relevant nur bei Neubau und umfassender Modernisierung.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Transmissionswaermesenken": {
- "description": "Transmissionswärmesenken in kWh/a (Transmissionswärmesenken: Q_T).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Luftdichtheit": {
- "$ref": "#/definitions/Luftdichtheit-18599-enum",
- "description": "Luftdichtheit der Gebäudehülle."
- },
- "Zone": {
- "oneOf": [
- {
- "$ref": "#/definitions/Zonen-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Zonen-Daten"
- },
- "maxItems": 200,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Heizsystem": {
- "oneOf": [
- {
- "$ref": "#/definitions/Heizungsanlage-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Heizungsanlage-Daten"
- },
- "maxItems": 200,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Pufferspeicher-Nenninhalt": {
- "description": "Volumen eines ggfs. vorhandenen Heizungs-Pufferspeichers (keiner = 0) in Liter (Pufferspeicher-Nenninhalt: V_s).",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Auslegungstemperatur": {
- "$ref": "#/definitions/Heizkreisauslegungstemperatur-enum",
- "description": "Temperaturniveau der Heizungsverteilung Vorlauf/Rücklauf, bzw. Angabe von Luftheizsystem oder ausschliesslicher Beheizung über Einzelraumheizgeräte; anzugeben ist die Temperatur des höchsten Kreises, bei krummen Werten ist die nach Vorlauftemperatur nächst höhere Auswahl anzugeben."
- },
- "Heizsystem-innerhalb-Huelle": {
- "description": "TRUE, wenn alle Wärmeerzeuger innerhalb der thermischen Gebäudehülle stehen.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Warmwasserbereitungssystem": {
- "oneOf": [
- {
- "$ref": "#/definitions/Trinkwarmwasseranlage-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Trinkwarmwasseranlage-Daten"
- },
- "maxItems": 50,
- "type": "array"
- }
- ]
- },
- "Trinkwarmwasserspeicher-Nenninhalt": {
- "description": "Volumen eines ggfs. vorhandenen Warmwasserspeichers (kein Speicher = 0) bzw. Summe der Volumina bei mehreren Speichern, in Liter (Trinkwarmwasserspeicher-Nenninhalt: V_s).",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "Trinkwarmwasserverteilung-Zirkulation": {
- "description": "Ist zur Warmwasserverteilung eine Trinkwasser-seitige Zirkulation vorhanden?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Kaelteanlage": {
- "oneOf": [
- {
- "$ref": "#/definitions/Kaelteanlage-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Kaelteanlage-Daten"
- },
- "maxItems": 30,
- "type": "array"
- }
- ]
- },
- "Deckungsanteil-RLT-Kuehlung": {
- "description": "Anteil der Kälte, die über RLT-Anlagen verteilt und übergeben wird, in %.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Deckungsanteil-Direkte-Raumkuehlung": {
- "description": "Anteil der Kälte, die über Direktkühlanlagen (Kühldecken, Kühlsegel usw.) verteilt und übergeben wird, in %.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "RLT-System": {
- "oneOf": [
- {
- "$ref": "#/definitions/RLT-Anlagen-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/RLT-Anlagen-Daten"
- },
- "maxItems": 100,
- "type": "array"
- }
- ]
- },
- "Automatisierungsgrad": {
- "$ref": "#/definitions/Automatisierungsgrad-enum",
- "description": "Überwiegende Gebäueautomationsklasse für Heizen, Kühlen und mechanisches Belüften (soweit vorhanden) in den Nutzungsräumen nach DIN V 18599-11."
- },
- "Automatisierungsgrad-Technisches-Gebaeudemanagement": {
- "$ref": "#/definitions/Automatisierungsgrad-Technisches-Gebaeudemanagement-enum",
- "description": "Gebäudeautomationsklasse für das übergreifende Gebäudemanagement nach DIN V 18599-11, Tab. 3 Z. 94-96."
- },
- "angerechneter-lokaler-erneuerbarer-Strom": {
- "description": "Größe des Abzugs (in kWh/a m2) bei der Primärenergie bzw. bei der Endenergie für den gebäudenah erzeugten Strom aus erneuerbarer Energie nach der entsprechenden Bilanzierungsregel (vgl. GEG §23 (4))",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Innovationsklausel": {
- "description": "Angabe ob Innovationsklausel gemäß § 103 (1) GEG 2020 angewendet wurde. (Alternative Anforderungen: Treibhausgasemissionen, Höchstwert der Endenergiebedarfs + Transmissionswärmeverlust (nur für Neubau und WG) + Wärmedurchgangskoeffizienten der wärmeübertragenden Umfassungsfläche (nur für Neubau und NWG) - Aussetzung der Hauptanforderungen (Neubau § 10, Bestand § 50))",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Quartiersregelung": {
- "description": "Angabe ob Quartiersregelung gemäß § 103 (3) - Gesamtbilanzierung für Wärmeversorgung zusammenhängender Gebäude - zutreffend ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Primaerenergiebedarf-Hoechstwert-Bestand": {
- "description": "Primärenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche. Außerdem richtet sich die Länge der grün-rot-Skala nach diesem Wert (Skalenendewert das Dreifache des Wertes), daher ist der Wert immer erforderlich. (Primärenergiebedarf: Q_p,Ref)",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Energietraeger-Liste": {
- "oneOf": [
- {
- "$ref": "#/definitions/Endenergie-Energietraeger-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Endenergie-Energietraeger-Daten"
- },
- "maxItems": 10,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Endenergiebedarf-Waerme-NGF": {
- "description": "Endenergiekennwert Wärme in kWh/m²a bezogen auf die Nettogrundfläche (Endenergiebedarf-Wärme: Q_f).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Strom-NGF": {
- "description": "Endenergiekennwert Strom in kWh/m²a bezogen auf die Nettogrundfläche (Endenergiebedarf-Strom: Q_f).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Gesamt-NGF": {
- "description": "Endenergiekennwert Gesamt in kWh/m²a bezogen auf die Nettogrundfläche.",
- "exclusiveMaximum": 10000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-NGF": {
- "description": "Primärenergiekennwert in kWh/m²a bezogen auf die Nettogrundfläche (Primärenergiebedarf: Q_p).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Ein-Zonen-Modell": {
- "description": "Wurde das Verfahren nach Anlage 6 zu § 32 Absatz 4 GEG (Ein-Zonen-Modell) angewendet?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Vereinfachte-Datenaufnahme": {
- "description": "Wurden Regeln zur vereinfachten Datenaufnahme nach § 50 (4) GEG bzw. Bekanntmachungen angewendet?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Vereinfachungen-18599-1-D": {
- "description": "Wurden Vereinfachungen nach § 21 Absatz 2 GEG und DIN V 18599-1:2018-09 Anhang D angewendet? (auch für zu errichtende Nichtwohngebäude/ Neubau anwendbar)",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Anteil-an-Waermeenergiebedarf-Berechnung": {
- "description": "Anteil am Wärmeenergiebedarf auf Grundlage von Berechnungen nach DIN V 18599:2018-09",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Weitere-Eintraege-und-Erlaeuterungen-in-der-Anlage": {
- "description": "Für weitere Einträge un Erläuterungen in der Anlage.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Angaben-erneuerbare-Energien-65EE-Regel": {
- "oneOf": [
- {
- "$ref": "#/definitions/Angaben-erneuerbare-Energien-65EE-Regel-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Angaben-erneuerbare-Energien-65EE-Regel-Daten"
- },
- "maxItems": 100,
- "type": "array"
- }
- ]
- },
- "Angaben-erneuerbare-Energien-keine-65EE-Regel": {
- "oneOf": [
- {
- "$ref": "#/definitions/Angaben-erneuerbare-Energien-Daten"
- },
- {
- "items": {
- "$ref": "#/definitions/Angaben-erneuerbare-Energien-Daten"
- },
- "maxItems": 100,
- "type": "array"
- }
- ]
- },
- "Sommerlicher-Waermeschutz": {
- "description": "Sind die Anforderungen an den sommerlichen Wärmeschutz eingehalten? Relevant nur bei Neubau.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Treibhausgasemissionen-Zusaetzliche-Verbrauchsdaten": {
- "description": "Angabe der Treibhausgasemissionen in kg als CO2 Äquivalent/(m²a); nur bei kombinierten Energieausweisen (Bedarf/Verbrauch), zusammen mit der Übermittlung der zusätzlichen Verbrauchsdaten.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- },
- "Zusaetzliche-Verbrauchsdaten": {
- "$ref": "#/definitions/Nichtwohngebaeude-Verbrauchs-Daten",
- "description": "Bei Energieausweisen auf Bedarfsbasis können neben den Bedarfsangaben zusätzlich Angaben zum Verbrauch im Energieausweis dargestellt werden, die dann hier entsprechend integriert werden."
- }
- },
- "type": "object",
- "oneOf": [
- {
- "required": [
- "Endenergiebedarf-Hoechstwert-Bestand",
- "Treibhausgasemissionen-Hoechstwert-Bestand"
- ],
- "properties": {
- "Endenergiebedarf-Hoechstwert-Bestand": {
- "description": "Endenergie-Anforderungswert Modernisierter Altbau in kWh/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Treibhausgasemissionen-Hoechstwert-Bestand": {
- "description": "Anforderungswert für Treibhausgasemissionen Modernisierter Altbau in kg/m²a bezogen auf die energetische Nutzfläche, nur bei Ausstellungsanlass Modernisierung. Wenn entsprechend dem Ausstellungsanlass kein Wert zu übermitteln ist, kann eine 0 eingetragen werden, da dieser Wert dann nicht relevant ist.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- }
- }
- },
- {
- "required": [
- "Primaerenergiebedarf-Hoechstwert-Neubau",
- "Endenergiebedarf-Hoechstwert-Neubau",
- "Treibhausgasemissionen-Hoechstwert-Neubau"
- ],
- "properties": {
- "Primaerenergiebedarf-Hoechstwert-Neubau": {
- "description": "Primärenergie-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche, bei Neubau im Energieausweis einzutragen. (Primärenergiebedarf: Q_p,Ref).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Hoechstwert-Neubau": {
- "description": "Endenergiebedarf-Anforderungswert Neubau (Kennwert des Referenzgebäudes, ab 2016 mit Berücksichtigung des entspr. Faktors) in kWh/m²a bezogen auf die energetische Nutzfläche.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Treibhausgasemissionen-Hoechstwert-Neubau": {
- "description": "Anforderungswert für Treibhausgasemissionen Neubau (Kennwert des Referenzgebäudes) in kg/m²a bezogen auf die energetische Nutzfläche.",
- "maximum": 100000,
- "minimum": -100000,
- "type": "number"
- }
- }
- }
- ]
- },
- "Automatisierungsgrad-enum": {
- "enum": [
- "A",
- "B",
- "C",
- "D"
- ],
- "type": "string"
- },
- "Art-der-Nutzung-erneuerbaren-Energie-enum": {
- "enum": [
- "solarthermische Anlagen",
- "Strom aus erneuerbaren Energien",
- "Geothermie oder Umweltwärme",
- "feste Biomasse",
- "flüssige Biomasse",
- "gasförmige Biomasse",
- "Abwärme",
- "Fernwärme",
- "grüner Wasserstoff",
- "blauer Wasserstoff",
- "Kälte aus erneuerbaren Energien",
- "Kraft-Wärme-Kopplung hocheff. KWK-Anlage",
- "Kraft-Wärme-Kopplung Brennstoffzellenh.",
- "Fernwärme oder Fernkälte"
- ],
- "type": "string"
- },
- "Automatisierungsgrad-Technisches-Gebaeudemanagement-enum": {
- "enum": [
- "A",
- "B",
- "C",
- "D"
- ],
- "type": "string"
- },
- "Bauteil-Opak-Daten": {
- "description": "Dieser Block enthält im Falle eines Bedarfsausweises die Hüllflächendaten. Die Summe aller Flächen muss der gesamten energetisch wirksamen Hüllfläche entsprechen. Wand- und Dachflächen gegen Aussenluft sind daher netto ohne transparente Bauteile usw. anzugeben. Gleichartige Flächen gleichen U-Wertes und gleicher Orientierung können aufsummiert angegeben werden. Türen (ausser Fenstertüren), Rollladenkästen u.ä. sind als Wandstücke einzugeben.",
- "required": [
- "Flaechenbezeichnung",
- "Flaeche",
- "U-Wert",
- "Ausrichtung",
- "grenztAn",
- "Glasdach-Lichtband-Lichtkuppel",
- "Vorhangfassade"
- ],
- "properties": {
- "Flaechenbezeichnung": {
- "pattern": "[w].{1,499}",
- "type": "string"
- },
- "Flaeche": {
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "U-Wert": {
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Ausrichtung": {
- "$ref": "#/definitions/Ausrichtung-enum"
- },
- "grenztAn": {
- "$ref": "#/definitions/Medium-enum"
- },
- "Glasdach-Lichtband-Lichtkuppel": {
- "description": "Kennzeichen, ob das Bauteil ein(e) Glasdach, Lichtband oder Lichtkuppel ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Vorhangfassade": {
- "description": "Kennzeichen, ob das Bauteil eine Vorhangfassade ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- },
- "type": "object"
- },
- "Bauteil-Transparent-Daten": {
- "description": "Dieser Block enthält im Falle eines Bedarfsausweises die Hüllflächendaten. Die Summe aller Flächen muss der gesamten energetisch wirksamen Hüllfläche entsprechen. Wand- und Dachflächen gegen Aussenluft sind daher netto ohne transparente Bauteile usw. anzugeben. Gleichartige Flächen gleichen U-Wertes und gleicher Orientierung können aufsummiert angegeben werden. Türen (ausser Fenstertüren), Rollladenkästen u.ä. sind als Wandstücke einzugeben.",
- "required": [
- "Flaechenbezeichnung",
- "Flaeche",
- "U-Wert",
- "g-Wert",
- "Ausrichtung",
- "Glasdach-Lichtband-Lichtkuppel",
- "Vorhangfassade"
- ],
- "properties": {
- "Flaechenbezeichnung": {
- "pattern": "[w].{1,499}",
- "type": "string"
- },
- "Flaeche": {
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "U-Wert": {
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "g-Wert": {
- "maximum": 0.99,
- "minimum": 0,
- "type": "number"
- },
- "Ausrichtung": {
- "$ref": "#/definitions/Ausrichtung-enum"
- },
- "Glasdach-Lichtband-Lichtkuppel": {
- "description": "Kennzeichen, ob das Bauteil ein(e) Glasdach, Lichtband oder Lichtkuppel ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Vorhangfassade": {
- "description": "Kennzeichen, ob das Bauteil eine Vorhangfassade ist.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- }
- },
- "type": "object"
- },
- "Bauteil-Dach-Daten": {
- "description": "Dieser Block enthält im Falle eines Bedarfsausweises die Hüllflächendaten. Die Summe aller Flächen muss der gesamten energetisch wirksamen Hüllfläche entsprechen. Wand- und Dachflächen gegen Aussenluft sind daher netto ohne transparente Bauteile usw. anzugeben. Gleichartige Flächen gleichen U-Wertes und gleicher Orientierung können aufsummiert angegeben werden. Türen (ausser Fenstertüren), Rollladenkästen u.ä. sind als Wandstücke einzugeben.",
- "required": [
- "Flaechenbezeichnung",
- "Flaeche",
- "U-Wert"
- ],
- "properties": {
- "Flaechenbezeichnung": {
- "pattern": "[w].{1,499}",
- "type": "string"
- },
- "Flaeche": {
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "U-Wert": {
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "Ausrichtung-enum": {
- "enum": [
- "N",
- "S",
- "O",
- "W",
- "NO",
- "NW",
- "SO",
- "SW",
- "HOR"
- ],
- "type": "string"
- },
- "Medium-enum": {
- "enum": [
- "Aussenluft",
- "Raumluft",
- "Erdreich"
- ],
- "type": "string"
- },
- "Kaelteanlage-Daten": {
- "description": "Angaben zur jeweiligen Kälteerzeugung und -verteilung sowie Rückkühlung.",
- "required": [
- "Kaelteerzeuger-Bauweise",
- "Kaelteerzeuger-Regelung",
- "Rueckkuehlung-Bauweise",
- "Kaelteverteilung-Primaerkreis-Temperatur",
- "Nennkaelteleistung",
- "Kaelteerzeuger-Baujahr",
- "Anzahl-baugleiche",
- "Energietraeger",
- "Primaerenergiefaktor"
- ],
- "properties": {
- "Kaelteerzeuger-Bauweise": {
- "$ref": "#/definitions/Kaelteerzeuger-Typ-enum"
- },
- "Kaelteerzeuger-Regelung": {
- "$ref": "#/definitions/Kaelteerzeuger-Regelung-enum",
- "description": "Die Zuordnung bezieht sich auf die Art der Teillastregelung in DIN V 18599 Tab. 25, 27 und 29, z.B. auf die Formulierung \"…regelung\" = stufenlos regelnd \"mehrstufig schaltbar\" = mehrstufig taktend \"stetige Regelung\" = stufenlos regelnd \"Zweipunktregelung\" = ein-aus-Betrieb"
- },
- "Rueckkuehlung-Bauweise": {
- "$ref": "#/definitions/Rueckkuehlung-enum"
- },
- "Kaelteverteilung-Primaerkreis-Temperatur": {
- "$ref": "#/definitions/Kaelte-Temperaturniveau-enum",
- "description": "Temperaturniveau der Kälteverteilung Vorlauf/Rücklauf, bzw. Angabe von Direktkühlung mit Kältemittelkreis."
- },
- "Nennkaelteleistung": {
- "description": "Die Nennkälteleistung ist die Kälteleistung in kW, die eine Kälteanlage unter Auslegungsbedingungen abgibt (DIN V 18599-7:2011-07) (Nennkälteleistung für KKM: Q(Punkt)_C,outg).",
- "maximum": 1000000,
- "minimum": 0,
- "type": "integer"
- },
- "Kaelteerzeuger-Baujahr": {
- "description": "Baujahr dieses Kälteerzeugers oder Jahr der massgeblichen letzten baulichen Veränderung des Kälteerzeugers.",
- "maximum": 2100,
- "minimum": 1800,
- "pattern": "^(-?[0-9]+)(Z|[+-][0-9][0-9]:[0-9][0-9])?$",
- "type": "string"
- },
- "Anzahl-baugleiche": {
- "description": "Anzahl ggfs. baugleich vorhandener Geräte (mehrfache zentrale Kälteerzeuger, Splittgeräte usw.), bei nur einem Gerät Angabe \"1\".",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- },
- "Energietraeger": {
- "$ref": "#/definitions/Energietraeger-enum",
- "description": "Vom Kälteerzeuger verwendeter Energieträger."
- },
- "Primaerenergiefaktor": {
- "description": "Verwendeter Primärenergiefaktor des Energieträgers (Primärenergiefaktor: f_p)",
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "Kaelteerzeuger-Typ-enum": {
- "enum": [
- "Kolben- und Scrollverdichteranlagen",
- "Schraubenverdichteranlagen",
- "Turboverdichteranlagen",
- "Sorptionskältemaschine",
- "Sonstiges"
- ],
- "type": "string"
- },
- "Kaelteerzeuger-Regelung-enum": {
- "enum": [
- "ein-aus",
- "Heißgasbypass oder ähnliches",
- "mehrstufig schaltend",
- "invertergeregelt"
- ],
- "type": "string"
- },
- "Kaelte-Temperaturniveau-enum": {
- "enum": [
- "direktverdampfend",
- "6/12 oder kälter",
- "über 6/12"
- ],
- "type": "string"
- },
- "Rueckkuehlung-enum": {
- "enum": [
- "Luftgekühlt-Kompaktbauweise",
- "Luftgekühlt-Splitbauweise",
- "Wassergekühlt-Verdunstungskühler",
- "Wassergekühlt-Trockenkühler",
- "Sonstiges"
- ],
- "type": "string"
- },
- "RLT-Anlagen-Daten": {
- "description": "Angaben zur jeweiligen Lüftungsanlage.",
- "required": [
- "Funktion-Zuluft",
- "Funktion-Abluft",
- "Funktion-Heizregister",
- "Funktion-Kuehlregister",
- "Funktion-Dampfbefeuchter",
- "Funktion-Wasserbefeuchter",
- "Anzahl-baugleiche"
- ],
- "properties": {
- "Funktion-Zuluft": {
- "description": "Anlage führt den Räumen Zuluft aus (ggfs. aufbereiteter) Außenluft (evtl. zusammen mit Umluft) zu.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Funktion-Abluft": {
- "description": "Anlage führt aus den Räumen Abluft ab.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "WRG-Rueckwaermzahl": {
- "description": "Anlagenspezifische Angabe in Prozent, die den Wärmerückgewinnungsgrad der Lüftungsanlage zonenunabhängig widerspiegelt.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Funktion-Heizregister": {
- "description": "Anlage kann die Luft erwärmen.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Funktion-Kuehlregister": {
- "description": "Anlage kann die Luft kühlen.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Funktion-Dampfbefeuchter": {
- "description": "Anlage kann die Luft mittels Dampfbefeuchter befeuchten.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Funktion-Wasserbefeuchter": {
- "description": "Anlage kann die Luft mittels Sprüh- oder Rieselbefeuchter befeuchten.",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Energietraeger-Befeuchtung": {
- "description": "Vom Befeuchter verwendeter Energieträger (bei Wasserbefeuchter derjenige Energieträger, der das/die zugehörige Heizregister der Heizanlage versorgt), Angabe nur erforderlich, wenn Anlage befeuchten kann."
- },
- "Anzahl-baugleiche": {
- "description": "Anzahl ggfs. baugleich vorhandener Geräte, bei nur einem Gerät Angabe \"1\".",
- "maximum": 10000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "undefined": {
- "$ref": "#/definitions/Energietraeger-enum"
- },
- "Angaben-erneuerbare-Energien-65EE-Regel-Daten": {
- "description": "Angaben zur Nutzung erneuerbare Energien bei Erfüllung der 65%-EE-Regel auf Grundlage einer Berechnung im Einzelfall nach §71 Absatz 2 GEG.",
- "required": [
- "Waermeerzeuger-Bauweise-18599",
- "Art-der-Nutzung-erneuerbaren-Energie",
- "Deckungsanteil",
- "Anteil-der-Pflichterfuellung-Anlage",
- "Anteil-der-Pflichterfuellung-Gesamt"
- ],
- "properties": {
- "Waermeerzeuger-Bauweise-18599": {
- "$ref": "#/definitions/Heizwaermeerzeuger-Typ-18599-enum",
- "description": "Dieser Block enthält die Beizeichung für die Waermeerzeuger Bauweise nach DIN V 18599."
- },
- "Art-der-Nutzung-erneuerbaren-Energie": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum",
- "description": "Es wird eine Angabe im Energieausweis zur Nutzung erneuerbarer Energien nach §71 ff GEG erwartet."
- },
- "Deckungsanteil": {
- "description": "Anteil der Einzelanlage an der Wärmebereitstellung aller Anlagen.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Anteil-der-Pflichterfuellung-Anlage": {
- "description": "Anteil EE an der Wärmebereitstellung der Einzelanlage.",
- "maximum": 999,
- "minimum": 0,
- "type": "integer"
- },
- "Anteil-der-Pflichterfuellung-Gesamt": {
- "description": "Anteil EE an der Wärmebereitstellung aller Anlagen.",
- "maximum": 999,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Angaben-erneuerbare-Energien-Daten": {
- "description": "Angaben zur Nutzung erneuerbare Energien bei Anlagen, für die die 65%-EE-Regel nicht gilt. (Anlagen, die vor dem 1. Januar 2024 zum Zweck der Inbetriebname in einem Gebäude eingebaut oder aufgestellt worden sind oder einer Übergangsregelung nach §71 i-m GEG unterfallen, gemäß Berechnung im Einzelfall)",
- "required": [
- "Waermeerzeuger-Bauweise-18599",
- "Art-der-Nutzung-erneuerbaren-Energie",
- "Anteil-EE-Anlage"
- ],
- "properties": {
- "Waermeerzeuger-Bauweise-18599": {
- "$ref": "#/definitions/Heizwaermeerzeuger-Typ-18599-enum",
- "description": "Dieser Block enthält die Beizeichung für die Waermeerzeuger Bauweise nach DIN V 18599."
- },
- "Art-der-Nutzung-erneuerbaren-Energie": {
- "$ref": "#/definitions/Art-der-Nutzung-erneuerbaren-Energie-enum",
- "description": "Es wird eine Angabe im Energieausweis zur Nutzung erneuerbarer Energien erwartet."
- },
- "Anteil-EE-Anlage": {
- "description": "Anteil EE an der Wärmebereitstellung oder de, Wäme-/Kältebedarf",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Zonen-Daten": {
- "description": "Dieser Block enthält die Angaben zu einer einzelnen Nutzungszone bei Nichtwohngebäuden, die Zonen sollten sinnvollerweise in absteigender Flächengröße angeordnet werden, es ist eine vollständige Liste aller rechnerisch verwendeten Zonen anzugeben.",
- "required": [
- "Zonenbezeichnung",
- "Nutzung",
- "Nettogrundflaeche-Zone",
- "mittlere-lichte-Raumhoehe",
- "Sonnenschutz-System",
- "Beleuchtungs-System",
- "Beleuchtungs-Verteilung",
- "Praesenzkontrolle-Kunstlicht",
- "Tageslichtabhaengige-Kontrollsysteme",
- "Endenergiebedarf-Heizung",
- "Endenergiebedarf-Kuehlung",
- "Endenergiebedarf-Befeuchtung",
- "Endenergiebedarf-Trinkwarmwasser",
- "Endenergiebedarf-Beleuchtung",
- "Endenergiebedarf-Lufttransport",
- "Endenergiebedarf-Hilfsenergie"
- ],
- "properties": {
- "Zonenbezeichnung": {
- "pattern": "[w].{1,39}",
- "type": "string"
- },
- "Nutzung": {
- "$ref": "#/definitions/Nutzung-enum",
- "description": "Nutzungsprofil nach DIN V 18599"
- },
- "Anwenderspezifische_Nutzung_Bezeichnung": {
- "description": "Bezeichnung der anwenderspezifischen Nutzung der Zone.",
- "pattern": "[w].{1,39}",
- "type": "string"
- },
- "Zonenbesonderheiten": {
- "description": "Hinweise auf Anpassungen des Nutzungsprofils nach DIN V 18599, wenn Standard-Vorgaben nicht verwendbar; bei völlig neu definierten Profilen (weil in DIN V 18599 nicht aufgelistet) bitte eine dort nicht verwendete Nutzungsprofilnummer (z.B. ab 90) verwenden und hier alle relevanten Daten anführen.",
- "pattern": ".{0,500}",
- "type": "string"
- },
- "Nettogrundflaeche-Zone": {
- "description": "Nettogrundfläche der jeweiligen Zone in m² (Nettogrundfläche: A_NGF).",
- "maximum": 10000000,
- "minimum": 0,
- "type": "integer"
- },
- "mittlere-lichte-Raumhoehe": {
- "description": "Mittlere lichte Raumhöhe der jeweiligen Zone in m (lichte Raumhöhe: h_R).",
- "exclusiveMaximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "Sonnenschutz-System": {
- "oneOf": [
- {
- "$ref": "#/definitions/Sonnenschutz-enum"
- },
- {
- "items": {
- "$ref": "#/definitions/Sonnenschutz-enum"
- },
- "maxItems": 50,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Beleuchtungs-System": {
- "oneOf": [
- {
- "$ref": "#/definitions/Lampenart-enum"
- },
- {
- "items": {
- "$ref": "#/definitions/Lampenart-enum"
- },
- "maxItems": 50,
- "minItems": 1,
- "type": "array"
- }
- ]
- },
- "Beleuchtungs-Verteilung": {
- "$ref": "#/definitions/Beleuchtungsart-enum",
- "description": "Lichtverteilung (Kunstlicht) in der jeweiligen Zone."
- },
- "Praesenzkontrolle-Kunstlicht": {
- "description": "Wird das Kunstlicht über eine Präsenzerfassung automatisch geschaltet?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Tageslichtabhaengige-Kontrollsysteme": {
- "description": "Wird das Kunstlicht in Abhängigkeit vom Tageslicht automatisch geschaltet oder geregelt?",
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "integer"
- }
- ]
- },
- "Endenergiebedarf-Heizung": {
- "description": "Endenergiebedarf Heizung (statisch und RLT) in kWh/a ohne Hilfsenergie (Endenergiebedarf-Heizung: Q_h,f + Q_h*,f).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Endenergiebedarf-Kuehlung": {
- "description": "Endenergiebedarf Kühlung (statisch und RLT) in kWh/a ohne Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten der Zone) (Endenergiebedarf-Kuehlung: Q_c,f + Q_c*,f).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Endenergiebedarf-Befeuchtung": {
- "description": "Endenergiebedarf Befeuchtung (RLT) in kWh/a ohne Hilfsenergie (Endenergiebedarf-Befeuchtung: Q_m*,f).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Endenergiebedarf-Trinkwarmwasser": {
- "description": "Endenergiebedarf Trinkwasser-Erwärmung in kWh/a ohne Hilfsenergie (Endenergiebedarf-Trinkwarmwasser: Q_w,f).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Endenergiebedarf-Beleuchtung": {
- "description": "Endenergiebedarf Beleuchtung in kWh/a (Endenergiebedarf-Beleuchtung: Q_l,f).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Endenergiebedarf-Lufttransport": {
- "description": "Endenergiebedarf Luftförderung einer mechanischen Belüftung in kWh/a (Endenergiebedarf-Lufttransport: W_v).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- },
- "Endenergiebedarf-Hilfsenergie": {
- "description": "Endenergiebedarf Hilfsenergie in kWh/a ohne Luftförderung (Endenergiebedarf-Hilfsenergie: W_f - W_v).",
- "maximum": 100000000,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Nutzung-enum": {
- "enum": [
- "1:Einzelbüro",
- "2:Gruppenbüro (zwei bis sechs Arbeitsplätze)",
- "3:Großraumbüro (ab sieben Arbeitsplätze)",
- "4:Besprechung, Sitzung, Seminar",
- "5:Schalterhalle",
- "6:Einzelhandel / Kaufhaus",
- "7:Einzelhandel / Kaufhaus (Leb.-Abteilung mit Kühlprodukten)",
- "8:Klassenzimmer (Schule), Gruppenraum (Kindergarten)",
- "9:Hörsaal, Auditorium",
- "10:Bettenzimmer",
- "11:Hotelzimmer",
- "12:Kantine",
- "13:Restaurant",
- "14:Küchen in Nichtwohngebäuden",
- "15:Küche - Vorbereitung, Lager",
- "16:WC und Sanitärräume in Nichtwohngebäuden",
- "17:sonstige Aufenthaltsräume",
- "18:Nebenflächen ohne Aufenthaltsräume",
- "19:Verkehrsflächen",
- "20:Lager, Technik, Archiv",
- "21:Rechenzentrum",
- "22.1:Gewerbliche und industrielle Hallen - schwere Arbeit",
- "22.2:Gewerbliche und industrielle Hallen - mittelschwere Arbeit",
- "22.3:Gewerbliche und industrielle Hallen - leichte Arbeit",
- "23:Zuschauerbereich",
- "24:Theater - Foyer",
- "25:Bühne",
- "26:Messe / Kongress",
- "27:Ausstellungsräume und Museum",
- "28:Bibliothek - Lesesaal",
- "29:Bibliothek - Freihandbereich",
- "30:Bibliothek - Magazin und Depot",
- "31:Turnhalle",
- "32:Parkhäuser (Büro- und Privatnutzung)",
- "33:Parkhäuser (öffentliche Nutzung)",
- "34:Saunabereich",
- "35:Fitnessraum",
- "36:Labor",
- "37:Untersuchungs- und Behandlungsräume",
- "38:Spezialpflegebereiche",
- "39:Flure des allgemeinen Pflegebereichs",
- "40:Arztpraxen und Therapeutische Praxen",
- "41:Lagerhallen, Logistikhallen",
- "42:Wohnen (EFH)",
- "43:Wohnen (MFH)",
- "44:Anwenderspezifische Nutzung"
- ],
- "type": "string"
- },
- "Sonnenschutz-enum": {
- "description": "Sonnenschutz nicht erforderlich, da keine transparenten Flächen nach außen in sonnenbeschienene Richtungen vorhanden.",
- "enum": [
- "keine Bewertung des Sonnenschutzes (Zone: Wohnen)",
- "Kein Sonnen- und/oder Blendschutz",
- "Nur Blendschutz",
- "Sonnen- und/oder Blendschutz, automatisch betrieben",
- "Nur Blendschutz, lichtlenkend"
- ],
- "type": "string"
- },
- "Lampenart-enum": {
- "enum": [
- "Glühlampen und Halogenglühlampe",
- "Leuchtstofflampen-stabförmig-KVG/VVG",
- "Leuchtstofflampen-stabförmig-EVG",
- "Leuchtstofflampen-T5-stabförmig-EVG-effiziente Reflektoren",
- "Leuchtstofflampen-kompakt-externes VG-alle VG",
- "Leuchtstofflampen-kompakt-integriertes EVG",
- "Hochdruckentladungslampen-alle VG",
- "LED-Leuchten",
- "LED-Ersatzlampen (stab- und kolbenförmig)",
- "keine Bewertung der Beleuchtung (Zone: Wohnen)",
- "Fachplanung"
- ],
- "type": "string"
- },
- "Beleuchtungsart-enum": {
- "enum": [
- "direkt",
- "indirekt",
- "direkt-indirekt",
- "keine Bewertung der Beleuchtung vorhanden (Zone:Wohnen)",
- "Fachplanung"
- ],
- "type": "string"
- },
- "Endenergie-Energietraeger-Daten": {
- "description": "Dieser Block enthält die Angaben zu den spezifischen Endenergiebedarfswerten nach Energieträger, bezogen auf die Nettogrundfläche bei Nichtwohngebäuden, bzw. auf die Nettonutzfläche bei Wohngebäude, siehe Tabelle Endenergiebedarf im Energieausweis-Formular.",
- "required": [
- "Energietraegerbezeichnung",
- "Primaerenergiefaktor",
- "Endenergiebedarf-Heizung-spezifisch",
- "Endenergiebedarf-Kuehlung-Befeuchtung-spezifisch",
- "Endenergiebedarf-Trinkwarmwasser-spezifisch",
- "Endenergiebedarf-Beleuchtung-spezifisch",
- "Endenergiebedarf-Lueftung-spezifisch",
- "Endenergiebedarf-Energietraeger-Gesamtgebaeude-spezifisch"
- ],
- "properties": {
- "Energietraegerbezeichnung": {
- "$ref": "#/definitions/Energietraeger-enum"
- },
- "Primaerenergiefaktor": {
- "exclusiveMaximum": 10,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Heizung-spezifisch": {
- "description": "Endenergiebedarf Heizung (statisch und RLT) in kWh/m²a mit Hilfsenergie (Endenergiebedarf-Heizung: Q_h,f + Q_h*,f; W_h + W_h*).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Kuehlung-Befeuchtung-spezifisch": {
- "description": "Endenergiebedarf Kühlung (statisch und RLT) und Befeuchtung in kWh/m²a mit Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten des gesamten Gebäudes) (Endenergiebedarf-Kuehlung-Befeuchtung: Q_c,f + Q_c*,f + Q_m*,f; W_c + W_c* + W_m*).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Trinkwarmwasser-spezifisch": {
- "description": "Endenergiebedarf Trinkwasser-Erwärmung in kWh/m²a mit Hilfsenergie (Endenergiebedarf-Trinkwarmwasser: Q_w,f; W_w).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Beleuchtung-spezifisch": {
- "description": "Endenergiebedarf Beleuchtung in kWh/m²a (Endenergiebedarf-Beleuchtung: Q_l,f; W_l).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Lueftung-spezifisch": {
- "description": "Endenergiebedarf Luftförderung der mechanischen Belüftung in kWh/m²a (Endenergiebedarf-Lüftung: W_v).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Energietraeger-Gesamtgebaeude-spezifisch": {
- "description": "Endenergiebedarf dieses Energieträgers für das gesamte Gebäude und alle Konditionierungsarten in kWh/m²a (Energieträger: Q_f).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "NWG-Aushang-Daten": {
- "description": "Dieser Block enthält die Angaben zu den Nutz-, End- und Primärenergiebedarfswerten für das Balkendiagramm im Aushangformular bei Nichtwohngebäuden, GEG § 84 Absatz 8 bzw. Muster für den Aushang als Bekanntmachung im Bundesanzeiger.",
- "required": [
- "Nutzenergiebedarf-Heizung-Diagramm",
- "Nutzenergiebedarf-Trinkwarmwasser-Diagramm",
- "Nutzenergiebedarf-Beleuchtung-Diagramm",
- "Nutzenergiebedarf-Lueftung-Diagramm",
- "Nutzenergiebedarf-Kuehlung-Befeuchtung-Diagramm",
- "Endenergiebedarf-Heizung-Diagramm",
- "Endenergiebedarf-Trinkwarmwasser-Diagramm",
- "Endenergiebedarf-Beleuchtung-Diagramm",
- "Endenergiebedarf-Lueftung-Diagramm",
- "Endenergiebedarf-Kuehlung-Befeuchtung-Diagramm",
- "Primaerenergiebedarf-Heizung-Diagramm",
- "Primaerenergiebedarf-Trinkwarmwasser-Diagramm",
- "Primaerenergiebedarf-Beleuchtung-Diagramm",
- "Primaerenergiebedarf-Lueftung-Diagramm",
- "Primaerenergiebedarf-Kuehlung-Befeuchtung-Diagramm"
- ],
- "properties": {
- "Nutzenergiebedarf-Heizung-Diagramm": {
- "description": "Nutzenergiebedarf Heizung (statisch und RLT) in kWh/m²a mit Hilfsenergie (Nutzenergiebedarf-Heizung: Q_h,b + Q_h*,b).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Nutzenergiebedarf-Trinkwarmwasser-Diagramm": {
- "description": "Nutzenergiebedarf Trinkwasser-Erwärmung in kWh/m²a mit Hilfsenergie (Nutzenergiebedarf-Trinkwarmwasser: Q_w,b).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Nutzenergiebedarf-Beleuchtung-Diagramm": {
- "description": "Nutzenergiebedarf Beleuchtung in kWh/m²a (Nutzenergiebedarf-Beleuchtung: Q_l,b).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Nutzenergiebedarf-Lueftung-Diagramm": {
- "description": "Nutzenergiebedarf Luftförderung der mechanischen Belüftung in kWh/m²a.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Nutzenergiebedarf-Kuehlung-Befeuchtung-Diagramm": {
- "description": "Nutzenergiebedarf Kühlung (statisch und RLT) und Befeuchtung in kWh/m²a mit Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten des gesamten Gebäudes) (Nutzenergiebedarf-Kuehlung-Befeuchtung: Q_c,b + Q_c*,b + Q_m*,b).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Heizung-Diagramm": {
- "description": "Endenergiebedarf Heizung (statisch und RLT) in kWh/m²a mit Hilfsenergie (Endenergiebedarf-Heizung: Q_h,f + Q_h*,f + W_h + W_h*).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Trinkwarmwasser-Diagramm": {
- "description": "Endenergiebedarf Trinkwasser-Erwärmung in kWh/m²a mit Hilfsenergie (Endenergiebedarf-Trinkwarmwasser: Q_w,f + W_w).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Beleuchtung-Diagramm": {
- "description": "Endenergiebedarf Beleuchtung in kWh/m²a (Endenergiebedarf-Beleuchtung: Q_l,f + W_l).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Lueftung-Diagramm": {
- "description": "Endenergiebedarf Luftförderung der mechanischen Belüftung in kWh/m²a (Endenergiebedarf-Lueftung: W_v).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Endenergiebedarf-Kuehlung-Befeuchtung-Diagramm": {
- "description": "Endenergiebedarf Kühlung (statisch und RLT) und Befeuchtung in kWh/m²a mit Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten des gesamten Gebäudes) (Endenergiebedarf-Kuehlung-Befeuchtung: Q_c,f + Q_c*,f + Q_m*,f + W_c + W_c* + W_m*).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-Heizung-Diagramm": {
- "description": "Primärenergiebedarf Heizung (statisch und RLT) in kWh/m²a mit Hilfsenergie.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-Trinkwarmwasser-Diagramm": {
- "description": "Primärenergiebedarf Trinkwasser-Erwärmung in kWh/m²a mit Hilfsenergie.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-Beleuchtung-Diagramm": {
- "description": "Primärenergiebedarf Beleuchtung in kWh/m²a.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-Lueftung-Diagramm": {
- "description": "Primärenergiebedarf Luftförderung der mechanischen Belüftung in kWh/m²a.",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- },
- "Primaerenergiebedarf-Kuehlung-Befeuchtung-Diagramm": {
- "description": "Primärenergiebedarf Kühlung (statisch und RLT) und Befeuchtung in kWh/m²a mit Hilfsenergie; 0 wenn nicht gekühlt (gilt sinngemäß auch für andere nicht vorhandene Konditionierungsarten des gesamten Gebäudes).",
- "exclusiveMaximum": 100000,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "Modernisierungszeile": {
- "description": "Dieser Block enthält zeilenweise die Textangaben zu den Modernisierungsempfehlungen im Energieausweis.",
- "required": [
- "Nummer",
- "Bauteil-Anlagenteil",
- "Massnahmenbeschreibung",
- "Modernisierungskombination"
- ],
- "properties": {
- "Nummer": {
- "description": "Fortlaufende Nummer der Modernisierungsempfehlung",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "Bauteil-Anlagenteil": {
- "$ref": "#/definitions/Modernisierung-Teil-enum",
- "description": "Angabe des betroffenen Bauteils oder Anlagenteils; die Differenzierung ist dem Energieausweis-Aussteller überlassen, er kann also z.B. unter Heizung eine komplette neue Beheizung samt Regelung, hydr. Abgleich usw. in einer Empfehlung geben, oder einzelne Maßnahmen differenzierter auflisten."
- },
- "Massnahmenbeschreibung": {
- "description": "Beschreibung der Maßnahme, ggfs. auch in mehreren Schritten.",
- "pattern": "[w].{4,225}",
- "type": "string"
- },
- "Modernisierungskombination": {
- "$ref": "#/definitions/Modernisierung-Kombi-enum",
- "description": "Kreuzchen, ob die Maßnahme im Zusammenhang mit größeren Modernisierungsmaßnahmen oder sogar als Einzelmaßnahme sinnvoll ist"
- },
- "Amortisation": {
- "description": "Geschätzte Amortisationszeit der Maßnahme.",
- "pattern": ".{0,31}",
- "type": "string"
- },
- "spezifische-Kosten": {
- "description": "Geschätzte Kosten pro eingesparter Kilowattstunde Endenergie.",
- "pattern": ".{0,71}",
- "type": "string"
- }
- },
- "type": "object"
- },
- "Modernisierung-Teil-enum": {
- "enum": [
- "Dach",
- "oberste Geschossdecke",
- "Abseiten",
- "Gauben",
- "Dachfenster",
- "Außenwand gg. Außenluft",
- "Fenster",
- "Rollläden und -kästen",
- "Eingangstür",
- "Nebentür",
- "Kellerdecke",
- "Boden gg. Außenluft",
- "Außenwand gg. Erdreich",
- "Boden gegen Erdreich",
- "Luftundichtigkeiten",
- "Heizung",
- "Wärmeerzeuger",
- "Wärmeverteilung / -abgabe",
- "Warmwasserbereitung",
- "Lüftung",
- "Lüftungskonzept",
- "Lüftungsanlage",
- "Luftverteilung / -abgabe",
- "Kühlung",
- "Kälteerzeugung",
- "Kälteverteilung / -abgabe",
- "Be-/Entfeuchtung",
- "Beleuchtung",
- "Anlagenregelung",
- "Gebäudeautomation",
- "Sonstiges"
- ],
- "type": "string"
- },
- "Modernisierung-Kombi-enum": {
- "enum": [
- "in Zusammenhang mit größerer Modernisierung",
- "als Einzelmaßnahme"
- ],
- "type": "string"
- }
- }
-}
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 0e296ebd..a300f08f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-.PHONY: dev online-energieausweis all prod backup run-database build-database install-dependencies wait-for-database prod database prisma-studio backup-database-cronjob
+.PHONY: dev online-energieausweis all prod backup run-database build-database install-dependencies wait-for-database prod database prisma-studio backup-database-cronjob update-dwd-klimafaktoren-cron
DB_CONTAINER_NAME := database
DB_NAME := main
@@ -30,6 +30,7 @@ run-database: stop-database
docker volume create $(DB_VOLUME)
docker build -t $(DB_CONTAINER_NAME) .
docker run -d --name $(DB_CONTAINER_NAME) \
+ --restart=always \
-e POSTGRES_USER=$(DB_USER) \
-e POSTGRES_PASSWORD=$(DB_PASSWORD) \
-p $(DB_PORT):5432 \
@@ -57,7 +58,10 @@ all:
mkdir -p ~/logs
bun run dev 2>&1 | tee ~/logs/`date '+%d-%m-%Y_%H:%M:%S'`.log
-prod: install-dependencies prisma-studio backup-database-cronjob
+update-dwd-klimafaktoren-cron:
+ pm2 start bun --name "update-dwd-klimafaktoren-cron" --cron "0 12 28 * *" -- src/cronjobs/update-dwd-klimafaktoren.ts
+
+prod: install-dependencies prisma-studio backup-database-cronjob update-dwd-klimafaktoren-cron
bun run build
mkdir -p ~/logs
mkdir -p ~/persistent/online-energieausweis
diff --git a/bun.lock b/bun.lock
index 4025e1f8..8a94ea08 100644
--- a/bun.lock
+++ b/bun.lock
@@ -38,6 +38,7 @@
"nodemailer": "^6.10.0",
"pdf-lib": "^1.17.1",
"postcss-nested": "^7.0.2",
+ "puppeteer": "^24.7.2",
"radix-svelte-icons": "^1.0.0",
"sass": "^1.83.4",
"sharp": "^0.33.5",
@@ -52,6 +53,7 @@
"tailwindcss": "^3.4.17",
"trpc-openapi": "^1.2.0",
"uuid": "^9.0.1",
+ "winston": "^3.17.0",
"zod": "^3.24.1",
},
"devDependencies": {
@@ -253,7 +255,7 @@
"@cfcs/core": ["@cfcs/core@0.0.6", "", { "dependencies": { "@egjs/component": "^3.0.2" } }, "sha512-FxfJMwoLB8MEMConeXUCqtMGqxdtePQxRBOiGip9ULcYYam3WfCgoY6xdnMaSkYvRvmosp5iuG+TiPofm65+Pw=="],
- "@colors/colors": ["@colors/colors@1.5.0", "", {}, "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ=="],
+ "@colors/colors": ["@colors/colors@1.6.0", "", {}, "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA=="],
"@csstools/selector-resolve-nested": ["@csstools/selector-resolve-nested@3.0.0", "", { "peerDependencies": { "postcss-selector-parser": "^7.0.0" } }, "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ=="],
@@ -265,6 +267,8 @@
"@cypress/xvfb": ["@cypress/xvfb@1.2.4", "", { "dependencies": { "debug": "^3.1.0", "lodash.once": "^4.1.1" } }, "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q=="],
+ "@dabh/diagnostics": ["@dabh/diagnostics@2.0.3", "", { "dependencies": { "colorspace": "1.1.x", "enabled": "2.0.x", "kuler": "^2.0.0" } }, "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA=="],
+
"@daybrush/utils": ["@daybrush/utils@1.13.0", "", {}, "sha512-ALK12C6SQNNHw1enXK+UO8bdyQ+jaWNQ1Af7Z3FNxeAwjYhQT7do+TRE4RASAJ3ObaS2+TJ7TXR3oz2Gzbw0PQ=="],
"@dnd-kit/accessibility": ["@dnd-kit/accessibility@3.1.1", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "react": ">=16.8.0" } }, "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw=="],
@@ -519,6 +523,8 @@
"@proload/core": ["@proload/core@0.3.3", "", { "dependencies": { "deepmerge": "^4.2.2", "escalade": "^3.1.1" } }, "sha512-7dAFWsIK84C90AMl24+N/ProHKm4iw0akcnoKjRvbfHifJZBLhaDsDus1QJmhG12lXj4e/uB/8mB/0aduCW+NQ=="],
+ "@puppeteer/browsers": ["@puppeteer/browsers@2.10.2", "", { "dependencies": { "debug": "^4.4.0", "extract-zip": "^2.0.1", "progress": "^2.0.3", "proxy-agent": "^6.5.0", "semver": "^7.7.1", "tar-fs": "^3.0.8", "yargs": "^17.7.2" }, "bin": { "browsers": "lib/cjs/main-cli.js" } }, "sha512-i4Ez+s9oRWQbNjtI/3+jxr7OH508mjAKvza0ekPJem0ZtmsYHP3B5dq62+IaBHKaGCOuqJxXzvFLUhJvQ6jtsQ=="],
+
"@rc-component/async-validator": ["@rc-component/async-validator@5.0.4", "", { "dependencies": { "@babel/runtime": "^7.24.4" } }, "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg=="],
"@rc-component/color-picker": ["@rc-component/color-picker@2.0.1", "", { "dependencies": { "@ant-design/fast-color": "^2.0.6", "@babel/runtime": "^7.23.6", "classnames": "^2.2.6", "rc-util": "^5.38.1" }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" } }, "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q=="],
@@ -713,6 +719,8 @@
"@tailwindcss/typography": ["@tailwindcss/typography@0.5.16", "", { "dependencies": { "lodash.castarray": "^4.4.0", "lodash.isplainobject": "^4.0.6", "lodash.merge": "^4.6.2", "postcss-selector-parser": "6.0.10" }, "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" } }, "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA=="],
+ "@tootallnate/quickjs-emscripten": ["@tootallnate/quickjs-emscripten@0.23.0", "", {}, "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA=="],
+
"@trpc/client": ["@trpc/client@10.45.2", "", { "peerDependencies": { "@trpc/server": "10.45.2" } }, "sha512-ykALM5kYWTLn1zYuUOZ2cPWlVfrXhc18HzBDyRhoPYN0jey4iQHEFSEowfnhg1RvYnrAVjNBgHNeSAXjrDbGwg=="],
"@trpc/server": ["@trpc/server@10.45.2", "", {}, "sha512-wOrSThNNE4HUnuhJG6PfDRp4L2009KDVxsd+2VYH8ro6o/7/jwYZ8Uu5j+VaW+mOmc8EHerHzGcdbGNQSAUPgg=="],
@@ -813,6 +821,8 @@
"@types/ssh2-sftp-client": ["@types/ssh2-sftp-client@9.0.4", "", { "dependencies": { "@types/ssh2": "^1.0.0" } }, "sha512-gnIn56MTB9W3A3hPL/1sHI23t8YwcE3eVYa1O2XjT9vaqimFdtNHxyQiy5Y78+ociQTKazMSD8YyMEO4QjNMrg=="],
+ "@types/triple-beam": ["@types/triple-beam@1.3.5", "", {}, "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw=="],
+
"@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="],
"@types/uuid": ["@types/uuid@9.0.8", "", {}, "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA=="],
@@ -909,6 +919,8 @@
"assert-plus": ["assert-plus@1.0.0", "", {}, "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="],
+ "ast-types": ["ast-types@0.13.4", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w=="],
+
"astral-regex": ["astral-regex@2.0.0", "", {}, "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="],
"astring": ["astring@1.9.0", "", { "bin": { "astring": "bin/astring" } }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="],
@@ -939,16 +951,30 @@
"axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
+ "b4a": ["b4a@1.6.7", "", {}, "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg=="],
+
"babel-runtime": ["babel-runtime@6.26.0", "", { "dependencies": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" } }, "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g=="],
"bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="],
"balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
+ "bare-events": ["bare-events@2.5.4", "", {}, "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA=="],
+
+ "bare-fs": ["bare-fs@4.1.3", "", { "dependencies": { "bare-events": "^2.5.4", "bare-path": "^3.0.0", "bare-stream": "^2.6.4" }, "peerDependencies": { "bare-buffer": "*" }, "optionalPeers": ["bare-buffer"] }, "sha512-OeEZYIg+2qepaWLyphaOXHAHKo3xkM8y3BeGAvHdMN8GNWvEAU1Yw6rYpGzu/wDDbKxgEjVeVDpgGhDzaeMpjg=="],
+
+ "bare-os": ["bare-os@3.6.1", "", {}, "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g=="],
+
+ "bare-path": ["bare-path@3.0.0", "", { "dependencies": { "bare-os": "^3.0.1" } }, "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw=="],
+
+ "bare-stream": ["bare-stream@2.6.5", "", { "dependencies": { "streamx": "^2.21.0" }, "peerDependencies": { "bare-buffer": "*", "bare-events": "*" }, "optionalPeers": ["bare-buffer", "bare-events"] }, "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA=="],
+
"base-64": ["base-64@1.0.0", "", {}, "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg=="],
"base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="],
+ "basic-ftp": ["basic-ftp@5.0.5", "", {}, "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg=="],
+
"bcrypt-pbkdf": ["bcrypt-pbkdf@1.0.2", "", { "dependencies": { "tweetnacl": "^0.14.3" } }, "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w=="],
"binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="],
@@ -1031,6 +1057,8 @@
"chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="],
+ "chromium-bidi": ["chromium-bidi@4.1.1", "", { "dependencies": { "mitt": "^3.0.1", "zod": "^3.24.1" }, "peerDependencies": { "devtools-protocol": "*" } }, "sha512-biR7t4vF3YluE6RlMSk9IWk+b9U+WWyzHp+N2pL9vRTk+UXHYRTVp7jTK58ZNzMLBgoLMHY4QyJMbeuw3eKxqg=="],
+
"ci-info": ["ci-info@4.1.0", "", {}, "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A=="],
"cjs-module-lexer": ["cjs-module-lexer@1.4.3", "", {}, "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="],
@@ -1049,6 +1077,8 @@
"cli-truncate": ["cli-truncate@2.1.0", "", { "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" } }, "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg=="],
+ "cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="],
+
"clone": ["clone@2.1.2", "", {}, "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="],
"clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="],
@@ -1071,6 +1101,8 @@
"colorette": ["colorette@2.0.19", "", {}, "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="],
+ "colorspace": ["colorspace@1.1.4", "", { "dependencies": { "color": "^3.1.3", "text-hex": "1.0.x" } }, "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w=="],
+
"combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="],
"comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="],
@@ -1119,6 +1151,8 @@
"core-util-is": ["core-util-is@1.0.2", "", {}, "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="],
+ "cosmiconfig": ["cosmiconfig@9.0.0", "", { "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg=="],
+
"cpu-features": ["cpu-features@0.0.10", "", { "dependencies": { "buildcheck": "~0.0.6", "nan": "^2.19.0" } }, "sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA=="],
"crc-32": ["crc-32@1.2.2", "", { "bin": { "crc32": "bin/crc32.njs" } }, "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="],
@@ -1155,6 +1189,8 @@
"dashdash": ["dashdash@1.14.1", "", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g=="],
+ "data-uri-to-buffer": ["data-uri-to-buffer@6.0.2", "", {}, "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw=="],
+
"date-fns": ["date-fns@4.1.0", "", {}, "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg=="],
"dayjs": ["dayjs@1.11.13", "", {}, "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="],
@@ -1175,6 +1211,8 @@
"defu": ["defu@6.1.4", "", {}, "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="],
+ "degenerator": ["degenerator@5.0.1", "", { "dependencies": { "ast-types": "^0.13.4", "escodegen": "^2.1.0", "esprima": "^4.0.1" } }, "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ=="],
+
"del": ["del@6.1.1", "", { "dependencies": { "globby": "^11.0.1", "graceful-fs": "^4.2.4", "is-glob": "^4.0.1", "is-path-cwd": "^2.2.0", "is-path-inside": "^3.0.2", "p-map": "^4.0.0", "rimraf": "^3.0.2", "slash": "^3.0.0" } }, "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg=="],
"delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="],
@@ -1203,6 +1241,8 @@
"devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="],
+ "devtools-protocol": ["devtools-protocol@0.0.1425554", "", {}, "sha512-uRfxR6Nlzdzt0ihVIkV+sLztKgs7rgquY/Mhcv1YNCWDh5IZgl5mnn2aeEnW5stYTE0wwiF4RYVz8eMEpV1SEw=="],
+
"dezalgo": ["dezalgo@1.0.4", "", { "dependencies": { "asap": "^2.0.0", "wrappy": "1" } }, "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig=="],
"dfa": ["dfa@1.2.0", "", {}, "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q=="],
@@ -1239,6 +1279,8 @@
"emoji-regex-xs": ["emoji-regex-xs@1.0.0", "", {}, "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg=="],
+ "enabled": ["enabled@2.0.0", "", {}, "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="],
+
"encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="],
"end-of-stream": ["end-of-stream@1.4.4", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="],
@@ -1277,6 +1319,8 @@
"escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="],
+ "escodegen": ["escodegen@2.1.0", "", { "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2" }, "optionalDependencies": { "source-map": "~0.6.1" }, "bin": { "esgenerate": "bin/esgenerate.js", "escodegen": "bin/escodegen.js" } }, "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w=="],
+
"eslint": ["eslint@8.15.0", "", { "dependencies": { "@eslint/eslintrc": "^1.2.3", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.6.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "bin": { "eslint": "bin/eslint.js" } }, "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA=="],
"eslint-config-prettier": ["eslint-config-prettier@8.1.0", "", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": { "eslint-config-prettier": "bin/cli.js" } }, "sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw=="],
@@ -1337,6 +1381,8 @@
"fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
+ "fast-fifo": ["fast-fifo@1.3.2", "", {}, "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="],
+
"fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="],
"fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="],
@@ -1351,6 +1397,8 @@
"fd-slicer": ["fd-slicer@1.1.0", "", { "dependencies": { "pend": "~1.2.0" } }, "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="],
+ "fecha": ["fecha@4.2.3", "", {}, "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="],
+
"figures": ["figures@3.2.0", "", { "dependencies": { "escape-string-regexp": "^1.0.5" } }, "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg=="],
"file-entry-cache": ["file-entry-cache@6.0.1", "", { "dependencies": { "flat-cache": "^3.0.4" } }, "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg=="],
@@ -1375,6 +1423,8 @@
"flattie": ["flattie@1.1.1", "", {}, "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ=="],
+ "fn.name": ["fn.name@1.1.0", "", {}, "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="],
+
"follow-redirects": ["follow-redirects@1.15.9", "", {}, "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ=="],
"fontkit": ["fontkit@2.0.4", "", { "dependencies": { "@swc/helpers": "^0.5.12", "brotli": "^1.3.2", "clone": "^2.1.2", "dfa": "^1.2.0", "fast-deep-equal": "^3.1.3", "restructure": "^3.0.0", "tiny-inflate": "^1.0.3", "unicode-properties": "^1.4.0", "unicode-trie": "^2.0.0" } }, "sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g=="],
@@ -1421,6 +1471,8 @@
"gesto": ["gesto@1.19.4", "", { "dependencies": { "@daybrush/utils": "^1.13.0", "@scena/event-emitter": "^1.0.2" } }, "sha512-hfr/0dWwh0Bnbb88s3QVJd1ZRJeOWcgHPPwmiH6NnafDYvhTsxg+SLYu+q/oPNh9JS3V+nlr6fNs8kvPAtcRDQ=="],
+ "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="],
+
"get-east-asian-width": ["get-east-asian-width@1.3.0", "", {}, "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ=="],
"get-intrinsic": ["get-intrinsic@1.2.7", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", "get-proto": "^1.0.0", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA=="],
@@ -1433,6 +1485,8 @@
"get-tsconfig": ["get-tsconfig@4.10.0", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A=="],
+ "get-uri": ["get-uri@6.0.4", "", { "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", "debug": "^4.3.4" } }, "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ=="],
+
"getopts": ["getopts@2.3.0", "", {}, "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA=="],
"getos": ["getos@3.2.1", "", { "dependencies": { "async": "^3.2.0" } }, "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q=="],
@@ -1555,6 +1609,8 @@
"intersection-observer": ["intersection-observer@0.12.2", "", {}, "sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg=="],
+ "ip-address": ["ip-address@9.0.5", "", { "dependencies": { "jsbn": "1.1.0", "sprintf-js": "^1.1.3" } }, "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g=="],
+
"ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="],
"iron-webcrypto": ["iron-webcrypto@1.2.1", "", {}, "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg=="],
@@ -1563,7 +1619,7 @@
"is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="],
- "is-arrayish": ["is-arrayish@0.3.2", "", {}, "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="],
+ "is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="],
"is-base64": ["is-base64@1.1.0", "", { "bin": { "is-base64": "bin/is-base64", "is_base64": "bin/is-base64" } }, "sha512-Nlhg7Z2dVC4/PTvIFkgVVNvPHSO2eR/Yd0XzhGiXCXEvWnptXlXa/clQ8aePPiMuxEGcWfzWbGw2Fe3d+Y3v1g=="],
@@ -1675,6 +1731,8 @@
"knex": ["knex@2.5.1", "", { "dependencies": { "colorette": "2.0.19", "commander": "^10.0.0", "debug": "4.3.4", "escalade": "^3.1.1", "esm": "^3.2.25", "get-package-type": "^0.1.0", "getopts": "2.3.0", "interpret": "^2.2.0", "lodash": "^4.17.21", "pg-connection-string": "2.6.1", "rechoir": "^0.8.0", "resolve-from": "^5.0.0", "tarn": "^3.0.2", "tildify": "2.0.0" }, "bin": { "knex": "bin/cli.js" } }, "sha512-z78DgGKUr4SE/6cm7ku+jHvFT0X97aERh/f0MUKAKgFnwCYBEW4TFBqtHWFYiJFid7fMrtpZ/gxJthvz5mEByA=="],
+ "kuler": ["kuler@2.0.0", "", {}, "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="],
+
"lazy-ass": ["lazy-ass@1.6.0", "", {}, "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw=="],
"lazystream": ["lazystream@1.0.1", "", { "dependencies": { "readable-stream": "^2.0.5" } }, "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw=="],
@@ -1727,6 +1785,8 @@
"log-update": ["log-update@4.0.0", "", { "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", "slice-ansi": "^4.0.0", "wrap-ansi": "^6.2.0" } }, "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg=="],
+ "logform": ["logform@2.7.0", "", { "dependencies": { "@colors/colors": "1.6.0", "@types/triple-beam": "^1.3.2", "fecha": "^4.2.0", "ms": "^2.1.1", "safe-stable-stringify": "^2.3.1", "triple-beam": "^1.3.0" } }, "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ=="],
+
"longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="],
"loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="],
@@ -1891,6 +1951,8 @@
"minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="],
+ "mitt": ["mitt@3.0.1", "", {}, "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="],
+
"mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="],
"module-details-from-path": ["module-details-from-path@1.0.3", "", {}, "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A=="],
@@ -1917,6 +1979,8 @@
"neotraverse": ["neotraverse@0.6.18", "", {}, "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA=="],
+ "netmask": ["netmask@2.0.2", "", {}, "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg=="],
+
"new-github-issue-url": ["new-github-issue-url@0.2.1", "", {}, "sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA=="],
"nlcst-to-string": ["nlcst-to-string@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0" } }, "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA=="],
@@ -1967,6 +2031,8 @@
"once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
+ "one-time": ["one-time@1.0.0", "", { "dependencies": { "fn.name": "1.x.x" } }, "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g=="],
+
"onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="],
"oniguruma-to-es": ["oniguruma-to-es@2.3.0", "", { "dependencies": { "emoji-regex-xs": "^1.0.0", "regex": "^5.1.1", "regex-recursion": "^5.1.1" } }, "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g=="],
@@ -1999,6 +2065,10 @@
"p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="],
+ "pac-proxy-agent": ["pac-proxy-agent@7.2.0", "", { "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", "agent-base": "^7.1.2", "debug": "^4.3.4", "get-uri": "^6.0.1", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.6", "pac-resolver": "^7.0.1", "socks-proxy-agent": "^8.0.5" } }, "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA=="],
+
+ "pac-resolver": ["pac-resolver@7.0.1", "", { "dependencies": { "degenerator": "^5.0.0", "netmask": "^2.0.2" } }, "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg=="],
+
"package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="],
"pako": ["pako@1.0.11", "", {}, "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="],
@@ -2109,12 +2179,18 @@
"proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="],
+ "proxy-agent": ["proxy-agent@6.5.0", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", "http-proxy-agent": "^7.0.1", "https-proxy-agent": "^7.0.6", "lru-cache": "^7.14.1", "pac-proxy-agent": "^7.1.0", "proxy-from-env": "^1.1.0", "socks-proxy-agent": "^8.0.5" } }, "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A=="],
+
"proxy-from-env": ["proxy-from-env@1.0.0", "", {}, "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A=="],
"pump": ["pump@3.0.2", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw=="],
"punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
+ "puppeteer": ["puppeteer@24.7.2", "", { "dependencies": { "@puppeteer/browsers": "2.10.2", "chromium-bidi": "4.1.1", "cosmiconfig": "^9.0.0", "devtools-protocol": "0.0.1425554", "puppeteer-core": "24.7.2", "typed-query-selector": "^2.12.0" }, "bin": { "puppeteer": "lib/cjs/puppeteer/node/cli.js" } }, "sha512-ifYqoY6wGs0yZeFuFPn8BE9FhuveXkarF+eO18I2e/axdoCh4Qh1AE+qXdJBhdaeoPt6eRNTY4Dih29Jbq8wow=="],
+
+ "puppeteer-core": ["puppeteer-core@24.7.2", "", { "dependencies": { "@puppeteer/browsers": "2.10.2", "chromium-bidi": "4.1.1", "debug": "^4.4.0", "devtools-protocol": "0.0.1425554", "typed-query-selector": "^2.12.0", "ws": "^8.18.1" } }, "sha512-P9pZyTmJqKODFCnkZgemCpoFA4LbAa8+NumHVQKyP5X9IgdNS1ZnAnIh1sMAwhF8/xEUGf7jt+qmNLlKieFw1Q=="],
+
"qs": ["qs@6.13.0", "", { "dependencies": { "side-channel": "^1.0.6" } }, "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg=="],
"queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="],
@@ -2279,6 +2355,8 @@
"request-progress": ["request-progress@3.0.0", "", { "dependencies": { "throttleit": "^1.0.0" } }, "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg=="],
+ "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="],
+
"require-in-the-middle": ["require-in-the-middle@7.5.2", "", { "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3", "resolve": "^1.22.8" } }, "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ=="],
"resize-observer-polyfill": ["resize-observer-polyfill@1.5.1", "", {}, "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="],
@@ -2321,6 +2399,8 @@
"safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
+ "safe-stable-stringify": ["safe-stable-stringify@2.5.0", "", {}, "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="],
+
"safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
"sander": ["sander@0.5.1", "", { "dependencies": { "es6-promise": "^3.1.2", "graceful-fs": "^4.1.3", "mkdirp": "^0.5.1", "rimraf": "^2.5.2" } }, "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA=="],
@@ -2387,8 +2467,14 @@
"slice-ansi": ["slice-ansi@3.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ=="],
+ "smart-buffer": ["smart-buffer@4.2.0", "", {}, "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="],
+
"soap": ["soap@1.1.8", "", { "dependencies": { "axios": "^1.7.9", "axios-ntlm": "^1.4.2", "debug": "^4.4.0", "formidable": "^3.5.2", "get-stream": "^6.0.1", "lodash": "^4.17.21", "sax": "^1.4.1", "strip-bom": "^3.0.0", "whatwg-mimetype": "4.0.0", "xml-crypto": "^6.0.0" } }, "sha512-fDNGyGsPkQP3bZX/366Ud5Kpjo9mCMh7ZKYIc3uipBEPPM2ZqCNkv1Z2/w0qpzpYFLL7do8WWwVUAjAwuUe1AQ=="],
+ "socks": ["socks@2.8.4", "", { "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" } }, "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ=="],
+
+ "socks-proxy-agent": ["socks-proxy-agent@8.0.5", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" } }, "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw=="],
+
"sorcery": ["sorcery@0.11.1", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.14", "buffer-crc32": "^1.0.0", "minimist": "^1.2.0", "sander": "^0.5.0" }, "bin": { "sorcery": "bin/sorcery" } }, "sha512-o7npfeJE6wi6J9l0/5LKshFzZ2rMatRiCDwYeDQaOzqdzRJwALhX7mk/A/ecg6wjMu7wdZbmXfD2S/vpOg0bdQ=="],
"source-map": ["source-map@0.7.4", "", {}, "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="],
@@ -2415,10 +2501,14 @@
"sshpk": ["sshpk@1.18.0", "", { "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", "dashdash": "^1.12.0", "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, "bin": { "sshpk-conv": "bin/sshpk-conv", "sshpk-sign": "bin/sshpk-sign", "sshpk-verify": "bin/sshpk-verify" } }, "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ=="],
+ "stack-trace": ["stack-trace@0.0.10", "", {}, "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg=="],
+
"statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="],
"stdin-discarder": ["stdin-discarder@0.2.2", "", {}, "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ=="],
+ "streamx": ["streamx@2.22.0", "", { "dependencies": { "fast-fifo": "^1.3.2", "text-decoder": "^1.1.0" }, "optionalDependencies": { "bare-events": "^2.2.0" } }, "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw=="],
+
"string-convert": ["string-convert@0.2.1", "", {}, "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A=="],
"string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
@@ -2473,6 +2563,8 @@
"tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="],
+ "tar-fs": ["tar-fs@3.0.8", "", { "dependencies": { "pump": "^3.0.0", "tar-stream": "^3.1.5" }, "optionalDependencies": { "bare-fs": "^4.0.1", "bare-path": "^3.0.0" } }, "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg=="],
+
"tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="],
"tarn": ["tarn@3.0.2", "", {}, "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ=="],
@@ -2485,6 +2577,10 @@
"terminal-link": ["terminal-link@2.1.1", "", { "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" } }, "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ=="],
+ "text-decoder": ["text-decoder@1.2.3", "", { "dependencies": { "b4a": "^1.6.4" } }, "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA=="],
+
+ "text-hex": ["text-hex@1.0.0", "", {}, "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="],
+
"text-table": ["text-table@0.2.0", "", {}, "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="],
"thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="],
@@ -2529,6 +2625,8 @@
"trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="],
+ "triple-beam": ["triple-beam@1.4.1", "", {}, "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg=="],
+
"trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="],
"trpc-openapi": ["trpc-openapi@1.2.0", "", { "dependencies": { "co-body": "^6.1.0", "h3": "^1.6.4", "lodash.clonedeep": "^4.5.0", "node-mocks-http": "^1.12.2", "openapi-types": "^12.1.1", "zod-to-json-schema": "^3.21.1" }, "peerDependencies": { "@trpc/server": "^10.0.0", "zod": "^3.14.4" } }, "sha512-pfYoCd/3KYXWXvUPZBKJw455OOwngKN/6SIcj7Yit19OMLJ+8yVZkEvGEeg5wUSwfsiTdRsKuvqkRPXVSwV7ew=="],
@@ -2557,6 +2655,8 @@
"type-is": ["type-is@1.6.18", "", { "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="],
+ "typed-query-selector": ["typed-query-selector@2.12.0", "", {}, "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg=="],
+
"typedarray": ["typedarray@0.0.6", "", {}, "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="],
"typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="],
@@ -2655,6 +2755,10 @@
"widest-line": ["widest-line@5.0.0", "", { "dependencies": { "string-width": "^7.0.0" } }, "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA=="],
+ "winston": ["winston@3.17.0", "", { "dependencies": { "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.2", "async": "^3.2.3", "is-stream": "^2.0.0", "logform": "^2.7.0", "one-time": "^1.0.0", "readable-stream": "^3.4.0", "safe-stable-stringify": "^2.3.1", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", "winston-transport": "^4.9.0" } }, "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw=="],
+
+ "winston-transport": ["winston-transport@4.9.0", "", { "dependencies": { "logform": "^2.7.0", "readable-stream": "^3.6.2", "triple-beam": "^1.3.0" } }, "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A=="],
+
"word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="],
"wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="],
@@ -2663,16 +2767,22 @@
"wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
+ "ws": ["ws@8.18.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w=="],
+
"xml-crypto": ["xml-crypto@6.0.0", "", { "dependencies": { "@xmldom/is-dom-node": "^1.0.1", "@xmldom/xmldom": "^0.8.10", "xpath": "^0.0.33" } }, "sha512-L3RgnkaDrHaYcCnoENv4Idzt1ZRj5U1z1BDH98QdDTQfssScx8adgxhd9qwyYo+E3fXbQZjEQH7aiXHLVgxGvw=="],
"xpath": ["xpath@0.0.33", "", {}, "sha512-NNXnzrkDrAzalLhIUc01jO2mOzXGXh1JwPgkihcLLzw98c0WgYDmmjSh1Kl3wzaxSVWMuA+fe0WTWOBDWCBmNA=="],
"xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="],
+ "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="],
+
"yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="],
"yaml": ["yaml@2.7.0", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA=="],
+ "yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="],
+
"yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="],
"yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="],
@@ -2757,6 +2867,8 @@
"@prisma/schema-files-loader/fs-extra": ["fs-extra@11.1.1", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ=="],
+ "@puppeteer/browsers/semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="],
+
"@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="],
"@sveltejs/vite-plugin-svelte/vitefu": ["vitefu@0.2.5", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" }, "optionalPeers": ["vite"] }, "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q=="],
@@ -2801,8 +2913,12 @@
"chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
+ "cli-table3/@colors/colors": ["@colors/colors@1.5.0", "", {}, "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ=="],
+
"co-body/qs": ["qs@6.14.0", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w=="],
+ "colorspace/color": ["color@3.2.1", "", { "dependencies": { "color-convert": "^1.9.3", "color-string": "^1.6.0" } }, "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA=="],
+
"csvtojson/strip-bom": ["strip-bom@2.0.0", "", { "dependencies": { "is-utf8": "^0.2.0" } }, "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g=="],
"cypress/buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="],
@@ -2815,7 +2931,7 @@
"dir-glob/path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="],
- "error-ex/is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="],
+ "escodegen/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
"eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@2.1.0", "", {}, "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="],
@@ -2853,6 +2969,10 @@
"ignore-walk/minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="],
+ "ip-address/jsbn": ["jsbn@1.1.0", "", {}, "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="],
+
+ "ip-address/sprintf-js": ["sprintf-js@1.1.3", "", {}, "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="],
+
"is-wsl/is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="],
"knex/commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="],
@@ -2911,6 +3031,10 @@
"p-locate/p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="],
+ "pac-proxy-agent/http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="],
+
+ "pac-proxy-agent/https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="],
+
"parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="],
"path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
@@ -2931,6 +3055,14 @@
"prop-types/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="],
+ "proxy-agent/http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="],
+
+ "proxy-agent/https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="],
+
+ "proxy-agent/lru-cache": ["lru-cache@7.18.3", "", {}, "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="],
+
+ "proxy-agent/proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="],
+
"rc-align/rc-util": ["rc-util@4.21.1", "", { "dependencies": { "add-dom-event-listener": "^1.1.0", "prop-types": "^15.5.10", "react-is": "^16.12.0", "react-lifecycles-compat": "^3.0.4", "shallowequal": "^1.1.0" } }, "sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg=="],
"rc-animate/rc-util": ["rc-util@4.21.1", "", { "dependencies": { "add-dom-event-listener": "^1.1.0", "prop-types": "^15.5.10", "react-is": "^16.12.0", "react-lifecycles-compat": "^3.0.4", "shallowequal": "^1.1.0" } }, "sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg=="],
@@ -2963,6 +3095,8 @@
"serve-static/send": ["send@0.19.0", "", { "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" } }, "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw=="],
+ "simple-swizzle/is-arrayish": ["is-arrayish@0.3.2", "", {}, "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="],
+
"soap/strip-bom": ["strip-bom@3.0.0", "", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="],
"sorcery/buffer-crc32": ["buffer-crc32@1.0.0", "", {}, "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w=="],
@@ -2981,6 +3115,8 @@
"tar/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
+ "tar-fs/tar-stream": ["tar-stream@3.1.7", "", { "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ=="],
+
"temp-write/temp-dir": ["temp-dir@1.0.0", "", {}, "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ=="],
"temp-write/uuid": ["uuid@3.4.0", "", { "bin": { "uuid": "./bin/uuid" } }, "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="],
@@ -3043,6 +3179,8 @@
"boxen/wrap-ansi/strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="],
+ "colorspace/color/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="],
+
"express/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="],
"express/send/encodeurl": ["encodeurl@1.0.2", "", {}, "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="],
@@ -3193,6 +3331,8 @@
"boxen/wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@6.1.0", "", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="],
+ "colorspace/color/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="],
+
"form-render/color/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="],
"npm-packlist/glob/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="],
diff --git a/docker-compose.yml b/docker-compose.yml
index a0485abf..a96bb452 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -2,6 +2,7 @@ version: '3'
services:
database:
build: ./
+ restart: always
env_file:
- .env
ports:
diff --git a/index.ts b/index.ts
deleted file mode 100644
index f67b2c64..00000000
--- a/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-console.log("Hello via Bun!");
\ No newline at end of file
diff --git a/package.json b/package.json
index 2cb61050..c5f7595b 100644
--- a/package.json
+++ b/package.json
@@ -52,6 +52,7 @@
"nodemailer": "^6.10.0",
"pdf-lib": "^1.17.1",
"postcss-nested": "^7.0.2",
+ "puppeteer": "^24.7.2",
"radix-svelte-icons": "^1.0.0",
"sass": "^1.83.4",
"sharp": "^0.33.5",
@@ -66,6 +67,7 @@
"tailwindcss": "^3.4.17",
"trpc-openapi": "^1.2.0",
"uuid": "^9.0.1",
+ "winston": "^3.17.0",
"zod": "^3.24.1"
},
"devDependencies": {
diff --git a/src/astro-typesafe-api-caller.ts b/src/astro-typesafe-api-caller.ts
index 262124be..a75e2803 100644
--- a/src/astro-typesafe-api-caller.ts
+++ b/src/astro-typesafe-api-caller.ts
@@ -37,9 +37,9 @@ export const createCaller = createCallerFactory({
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
"verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"),
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
- "webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
"aufnahme/[id]/bilder": await import("../src/pages/api/aufnahme/[id]/bilder.ts"),
"aufnahme/[id]": await import("../src/pages/api/aufnahme/[id]/index.ts"),
"aufnahme/[id]/unterlagen": await import("../src/pages/api/aufnahme/[id]/unterlagen.ts"),
+ "webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
"objekt/[id]": await import("../src/pages/api/objekt/[id]/index.ts"),
})
\ No newline at end of file
diff --git a/src/client/lib/ausweisSpeichern.ts b/src/client/lib/ausweisSpeichern.ts
index 3c93be7e..ab67424c 100644
--- a/src/client/lib/ausweisSpeichern.ts
+++ b/src/client/lib/ausweisSpeichern.ts
@@ -10,8 +10,11 @@ import {
VerbrauchsausweisWohnenClient,
} from "#components/Ausweis/types.js";
import {
+ Aufnahme,
BedarfsausweisWohnen,
+ Bild,
Enums,
+ Objekt,
Unterlage,
VerbrauchsausweisGewerbe,
VerbrauchsausweisWohnen,
@@ -528,12 +531,12 @@ export async function bedarfsausweisWohnenSpeichern(
export async function ausweisSpeichern(
ausweis:
- | VerbrauchsausweisWohnenClient
- | VerbrauchsausweisGewerbeClient
- | BedarfsausweisWohnenClient,
- objekt: ObjektClient,
- aufnahme: AufnahmeClient,
- bilder: BildClient[],
+ | VerbrauchsausweisWohnen
+ | VerbrauchsausweisGewerbe
+ | BedarfsausweisWohnen,
+ objekt: Objekt,
+ aufnahme: Aufnahme,
+ bilder: Bild[],
unterlagen: Unterlage[],
ausweisart: Enums.Ausweisart
) {
diff --git a/src/client/lib/speichern.ts b/src/client/lib/speichern.ts
index e7c83331..89f6c2f0 100644
--- a/src/client/lib/speichern.ts
+++ b/src/client/lib/speichern.ts
@@ -1,5 +1,5 @@
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
-import { Aufnahme, Objekt } from "#lib/client/prisma.js";
+import { Aufnahme, Benutzer, Objekt } from "#lib/client/prisma.js";
import { api } from "astro-typesafe-api/client";
import Cookies from "js-cookie";
@@ -145,7 +145,7 @@ export async function objektSpeichern(objekt: Objekt & { id?: string }): Promise
}
})
- return objekt.id;
+ return objekt.id;
} else {
const { id } = await api.objekt.PUT.fetch({
adresse: objekt.adresse,
@@ -161,4 +161,32 @@ export async function objektSpeichern(objekt: Objekt & { id?: string }): Promise
return id;
}
+}
+
+export async function benutzerSpeichern(benutzer: Partial): Promise {
+ const completeBenutzer: Benutzer = {
+ id: benutzer.id,
+ name: benutzer.name ?? null,
+ email: benutzer.email,
+ passwort: "",
+ adresse: benutzer.adresse ?? null,
+ anrede: benutzer.anrede ?? null,
+ firma: benutzer.firma ?? null,
+ vorname: benutzer.vorname ?? null,
+ ort: benutzer.ort ?? null,
+ plz: benutzer.plz ?? null,
+ profilbild: benutzer.profilbild ?? null,
+ telefon: benutzer.telefon ?? null,
+ updated_at: new Date(),
+ verified: benutzer.verified ?? false,
+ };
+
+ await api.user.POST.fetch(completeBenutzer
+ , {
+ headers: {
+ Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
+ }
+ });
+
+ return benutzer.id;
}
\ No newline at end of file
diff --git a/src/components/Ausweis/ButtonWeiterHilfe.svelte b/src/components/Ausweis/ButtonWeiterHilfe.svelte
index 5216376b..d7c9ff88 100644
--- a/src/components/Ausweis/ButtonWeiterHilfe.svelte
+++ b/src/components/Ausweis/ButtonWeiterHilfe.svelte
@@ -131,7 +131,7 @@
window.history.pushState(
{},
"",
- `${location.pathname}?id=${ausweis.id}`
+ `${location.pathname}?ausweis_id=${ausweis.id}`
);
blockLocalStorageSync = true;
localStorage.clear()
diff --git a/src/components/Ausweis/types.ts b/src/components/Ausweis/types.ts
index 701c6ccb..fc71991c 100644
--- a/src/components/Ausweis/types.ts
+++ b/src/components/Ausweis/types.ts
@@ -100,7 +100,7 @@ export type OptionalNullable = T extends object ? {
[K in keyof PickNotNullable]: OptionalNullable
} : T;
-export const UUidWithPrefix = z.string().refine((value) => {
+export const IDWithPrefix = z.string().refine((value) => {
const prefixedUUidRegex = /^([A-Z]{2})[0-9A-Z]{6,9}$/i
const match = value.match(prefixedUUidRegex)
@@ -113,7 +113,7 @@ export const UUidWithPrefix = z.string().refine((value) => {
})
export function getAusweisartFromId(id: string): Enums.Ausweisart | null {
- if (!UUidWithPrefix.safeParse(id).success) {
+ if (!IDWithPrefix.safeParse(id).success) {
return null
}
diff --git a/src/components/AusweisPruefenBox.svelte b/src/components/AusweisPruefenBox.svelte
deleted file mode 100644
index c782deeb..00000000
--- a/src/components/AusweisPruefenBox.svelte
+++ /dev/null
@@ -1,939 +0,0 @@
-
-
-
-
-
-
- infoVisible = !infoVisible}>
-
- {#if ausweis.ausgestellt}
-
- {:else if ausweis.bestellt}
-
- {:else}
-
- {/if}
-
-
-
-
- {aufnahme.adresse} {aufnahme.plz} {aufnahme.ort}
-
- {aufnahme.gebaeudetyp}, Einheiten: {aufnahme.einheiten}
-
- {ausweisArt} - {aufnahme.id}
- {moment(aufnahme.erstellungsdatum).format("DD.MM.YYYY")}
-
-
-
-
- Baujahr Gebäude / Baujahr Heizung
-
- {aufnahme.baujahr_gebaeude.join(", ")}
- {aufnahme.baujahr_heizung.join(", ")}
-
-
-
-
-
-
-
- Wohnfläche in m²
-
- {ausweis.faktorKeller} x {aufnahme.flaeche}m² Energetische Nutzfläche (Keller {aufnahme.keller}) in m²
-
- {aufnahme.flaeche}
- {calculations?.energetischeNutzflaeche}
-
-
-
-
-
- {tooltip4Z1}
-
- {tooltip4Z2}
-
- {table4Z1}
- {table4Z2}
-
-
-
-
- {tooltip5Z1}
-
- {tooltip5Z2}
-
- {tooltip5Z3}
-
- {table5Z1}
- {table5Z2}
-
-
-
-
-
- {tooltip6Z1}
-
- {tooltip6Z2}
-
- {table6Z1}
- {table6Z2}
-
-
-
-
- {tooltip7Z1}
-
- {tooltip7Z2}
-
- {table7Z1}
- {table7Z2}
-
-
-
-
- {tooltip8Z1}
-
- {tooltip8Z2}
-
- {table8Z1}
- {table8Z2}
-
-
-
-
- {tooltip9Z1}
-
- {tooltip9Z2}
-
- {table9Z1}
- {table9Z2}
-
-
-
-
- {tooltip10Z1}
-
- {tooltip10Z2}
-
- {table10Z1}
- {table10Z2}
-
-
-
-
- ({calculations?.energieVerbrauchHeizungBereinigt_1} + {calculations?.energieVerbrauchWarmwasser_1}) / (3 Jahre x {calculations?.energetischeNutzflaeche}) Endenergieverbrauch 1 in kWh/m²a
-
- {tooltip11Z2}
-
- {table11Z1}
- {table11Z2}
-
-
-
-
- {tooltip12Z1}
-
- {tooltip12Z2}
-
- {table12Z1}
- {table12Z2}
-
-
-
-
-
- {tooltip13Z1}
-
- {tooltip13Z2}
-
- {table13Z1}
- {table13Z2}
-
-
-
-
-
- {tooltip14Z1}
-
- {tooltip14Z2}
-
- {table14Z1}
- {table14Z2}
-
-
-
-
-
- {tooltip15Z1}
-
- {tooltip15Z2}
-
- {table15Z1}
- {table15Z2}
-
-
-
-
-
- {tooltip16Z1}
-
- {tooltip16Z2}
-
- {table16Z1}
- {table16Z2}
-
-
-
- bilderModal.showModal()}>
-
-
- {#if bilder.length === 0}
-
-
Für diesen Ausweis sind noch keine Bilder vorhanden.
-
Erinnerung Verschicken
-
- {:else}
- {#each bilder as image}
-
-
{image.kategorie}
-
-
- {/each}
- {/if}
-
-
-
-
-
-
- {aufnahme.prueftext}
-
- {#if ausweis.boxpruefung}
-
- {:else}
-
- {/if}
-
-
-
- stornieren(ausweis)}>S
- ausweisAusstellen(aufnahme.uid)}>A
- ausweisAusstellenPost(aufnahme.uid)}>P
- ausweisnichtAusstellen(aufnahme.uid)}>N
- bestellBestaetigung(aufnahme.uid)}>B
- erinnern(aufnahme.uid)}
- >E
- F
- {#if aufnahme.kontrolldatei}
- {
- xmlAbschicken(aufnahme.uid)
- }}>X
- {/if}
- {#if !ausweis.registriernummer}
- {
- registriernummerAnfordern(ausweis.id)
- }}>R
- {/if}
-
-
-
-
-
-
-
-
Wichtige Daten
-
-
-
- Angewendete Berechnungsformel
- EnEV 2016
-
-
- Berechnungsergebnis
- {calculations?.endEnergieVerbrauchGesamt}kWh/m2/A - Energieeffizienzklasse {calculations?.energieEffizienzKlasse}
-
-
- Informationen des Nutzers
- {ausweis.boxpruefung}
-
-
- UID
- {ausweis.id}
-
-
-
-
-
-
Ereignisse
-
-
-
-
-
{moment(ausweis.erstellungsdatum).format("DD.MM.YYYY - HH:mm")} Uhr
-
Ausweis erstellt
-
-
-
- {#each events as event, i}
-
-
-
-
-
{moment(event.date).format("DD.MM.YYYY - HH:mm")} Uhr
-
{event.title}
- {event.description || ""}
-
-
-
- {/each}
- {#if ausweis.erledigt}
-
-
-
-
-
{moment(ausweis.ausstellungsdatum).format("DD.MM.YYYY - HH:mm")} Uhr
-
Ausweis ausgestellt
- {ausweis.registriernummer ? `Registriernummer: ${ausweis.registriernummer}` : ""}
-
-
-
- {/if}
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/Dashboard/AusweisePruefenFilter.svelte b/src/components/Dashboard/AusweisePruefenFilter.svelte
deleted file mode 100644
index d0636203..00000000
--- a/src/components/Dashboard/AusweisePruefenFilter.svelte
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-{#each filters as filter, i}
- {@const type = getZodBaseType(filter.type)}
-
- {#if i === 0}
- where
- {:else}
- and
- {/if}
-
- {filter.name}
- {#each Object.keys(filterAusweise._def.shape()) as n}
- {#if !filters.find(filter => filter.name === n)}
- {n}
- {/if}
- {/each}
-
- equals
- {#if type instanceof ZodNumber}
-
- {:else if type instanceof ZodBoolean}
-
- true
- false
-
- {:else if type instanceof ZodNativeEnum}
-
- {#each Object.entries(type._def.values) as [key, value]}
- {key}
- {/each}
-
- {:else}
-
- {/if}
-
-
-{/each}
-
- {
- const entry = Object.entries(filterAusweise._def.shape())[0]
- filters.push({
- name: entry[0],
- type: entry[1],
- value: null
- })
- filters = filters
-}}>Filter Hinzufügen
-
-
-
\ No newline at end of file
diff --git a/src/components/Dashboard/DashboardAusweis.svelte b/src/components/Dashboard/DashboardAusweis.svelte
index 036d86ff..96ea5121 100644
--- a/src/components/Dashboard/DashboardAusweis.svelte
+++ b/src/components/Dashboard/DashboardAusweis.svelte
@@ -10,7 +10,7 @@
} from "radix-svelte-icons";
import { api } from "astro-typesafe-api/client";
import Cookies from "js-cookie";
- import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
+ import { API_ACCESS_TOKEN_COOKIE_NAME, AusstellungsTyp } from "#lib/constants.js";
import { Enums, Objekt } from "#lib/client/prisma.js";
import { addNotification, updateNotification } from "#components/Notifications/shared.js";
import { endEnergieVerbrauchVerbrauchsausweis_2016_Client } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016_Client.js";
@@ -327,10 +327,15 @@
{#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL}
- mit Beratung
+ mit Beratung
{:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline || ausweis.ausweistyp === Enums.AusweisTyp.OfflineXL}
- Offline
+ Offline
{/if}
+ {#if (rechnung?.services ?? []).length > 0}
+ {#if rechnung}
+ ({rechnung.services})
+ {/if}
+ {/if}
@@ -482,32 +487,32 @@
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
Bearbeiten
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
Bearbeiten
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisWohnen}
Bearbeiten
{:else if ausweisart === Enums.Ausweisart.GEGNachweisWohnen}
Bearbeiten
{:else if ausweisart === Enums.Ausweisart.GEGNachweisGewerbe}
Bearbeiten
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe}
Bearbeiten
{/if}
{/if}
@@ -516,17 +521,17 @@
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
Formular
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
Formular
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisWohnen}
Formular
{/if}
{/if}
@@ -683,7 +688,7 @@
{aufnahme.aussenwand_min_12cm_gedaemmt ? "Außenwand min. 12cm gedämmt" : ""}
-
Hiermit bestätige ich {benutzer.vorname} {benutzer.name} als Besteller folgende Angaben:
+
Hiermit bestätige ich {benutzer.vorname} {benutzer.name} als Besteller:
{#if ausweis.pruefpunkt_heizungsalter}
Das Heizungsalter ist jünger als 3 Jahre. Es betrifft einen Heizungstausch ohne energetische Verbesserung.
{/if}
diff --git a/src/components/Dashboard/DashboardSidebar.svelte b/src/components/Dashboard/DashboardSidebar.svelte
index 9ef59cbf..5a0e4767 100644
--- a/src/components/Dashboard/DashboardSidebar.svelte
+++ b/src/components/Dashboard/DashboardSidebar.svelte
@@ -1,21 +1,11 @@
-
-
Produktübersicht: Bedarfsausweis Wohngebäude
-
Bedarfsausweis Leistungen und Preise in der Übersicht:
-
-
-
-
-
-
-
-
-
-
Leistung
online
premium
offline
-
-
- {#each bullets as [bullet,online,premium,offline]}
-
-
{@html bullet}
-
{online ? "✔" : "⁃"}
-
{premium ? "✔" : "⁃"}
-
{offline ? "✔" : "⁃"}
-
- {/each}
-
-
-
Preis inkl. MwSt.
-
{PRICES.BedarfsausweisWohnen[Enums.AusweisTyp.Standard]} €
-
{PRICES.BedarfsausweisWohnen[Enums.AusweisTyp.Beratung]} €
-
{PRICES.BedarfsausweisWohnen[Enums.AusweisTyp.Offline]} €
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+ export let ref = "";
+
+ const bullets = [
+ [
+ "Prüfung durch Dipl. Ing.
Registrierung beim DiBt
rechtssicher nach GEG",
+ true,
+ true,
+ true,
+ ],
+ [
+ "Originalausweis als PDF per
E-Mail Originalausweis per Post (zubuchbar)",
+ true,
+ true,
+ true,
+ ],
+ [
+ "Bearbeitung innerhalb 24 Stunden
Selbsteingabe",
+ true,
+ true,
+ false,
+ ],
+ ["Same day service (zubuchbar)", true, true, false],
+ ["Fotoupload", true, true, true],
+ [
+ "automatische Vorprüfung
Live Vorschau direkt bei Eingabe
Live Vorschauausweis vorab
Vorschauausweis per E-Mail
dynamische Eingabehilfe",
+ true,
+ true,
+ false,
+ ],
+ [
+ "Prüfanmerkungen per
E-Mail ",
+ true,
+ true,
+ false,
+ ],
+ ["persönlicher Support", false, true, true],
+ [
+ "telefonische Beratung
persönlicher Energieberater",
+ false,
+ true,
+ true,
+ ],
+ ["Dokumentenupload (Pläne, Bauunterlagen)", false, false, true],
+ ["Eingabe durch Dipl. Ing.", false, false, true],
+ ];
+
+
+
+ Produktübersicht: Bedarfsausweis Wohngebäude
+
+
Bedarfsausweis Leistungen und Preise in der Übersicht:
+
+
+
+
+
+
+
+
Leistung
+
online
+
premium
+
offline
+
+
+ {#each bullets as [bullet, online, premium, offline]}
+
+
{@html bullet}
+
+ {online ? "✔" : "⁃"}
+
+
+ {premium ? "✔" : "⁃"}
+
+
+ {offline ? "✔" : "⁃"}
+
+
+ {/each}
+
+
+
Preis inkl. MwSt.
+
+ {PRICES.BedarfsausweisWohnen[
+ Enums.AusweisTyp.Standard
+ ]} €
+
+
+ {PRICES.BedarfsausweisWohnen[
+ Enums.AusweisTyp.Beratung
+ ]} €
+
+
+ {PRICES.BedarfsausweisWohnen[
+ Enums.AusweisTyp.Offline
+ ]} €
+
+
+
+
+
+
+
+
diff --git a/src/components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte b/src/components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte
index b4e40033..3b524e78 100644
--- a/src/components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte
+++ b/src/components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte
@@ -1,89 +1,179 @@
-
-
Produktübersicht: Verbrauchsausweis Gewerbegebäude
-
Verbrauchsausweis Leistungen und Preise in der Übersicht:
-
-
-
-
-
-
-
-
-
-
Leistung
online
premium
offline
-
-
- {#each bullets as [bullet,online,premium,offline]}
-
-
{@html bullet}
-
{online ? "✔" : "⁃"}
-
{premium ? "✔" : "⁃"}
-
{offline ? "✔" : "⁃"}
-
- {/each}
-
-
-
Preis inkl. MwSt.
-
{PRICES.VerbrauchsausweisGewerbe[Enums.AusweisTyp.Standard]} €
-
{PRICES.VerbrauchsausweisGewerbe[Enums.AusweisTyp.Beratung]} €
-
{PRICES.VerbrauchsausweisGewerbe[Enums.AusweisTyp.Offline]} €
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+ import { PRICES } from "#lib/constants";
+ import { Enums } from "#lib/client/prisma";
+ export let ref = "";
+
+ const bullets = [
+ [
+ "Prüfung durch Dipl. Ing.
Registrierung beim DiBt
rechtssicher nach GEG",
+ true,
+ true,
+ true,
+ ],
+ [
+ "Originalausweis als PDF per
E-Mail Originalausweis per Post (zubuchbar)",
+ true,
+ true,
+ true,
+ ],
+ [
+ "Bearbeitung innerhalb 24 Stunden
Selbsteingabe",
+ true,
+ true,
+ false,
+ ],
+ ["Same day service (zubuchbar)", true, true, false],
+ ["Fotoupload", true, true, true],
+ [
+ "automatische Vorprüfung
Live Vorschau direkt bei Eingabe
Live Vorschauausweis vorab
Vorschauausweis per E-Mail
dynamische Eingabehilfe",
+ true,
+ true,
+ false,
+ ],
+ [
+ "Prüfanmerkungen per
E-Mail ",
+ true,
+ true,
+ false,
+ ],
+ ["persönlicher Support", false, true, true],
+ [
+ "telefonische Beratung
persönlicher Energieberater",
+ false,
+ true,
+ true,
+ ],
+ ["Dokumentenupload (Verbrauchsabrechnungen)", false, false, true],
+ ["Eingabe durch Dipl. Ing.", false, false, true],
+ ];
+
+
+
+ Produktübersicht: Verbrauchsausweis Gewerbegebäude
+
+
Verbrauchsausweis Leistungen und Preise in der Übersicht:
+
+
+
+
+
+
+
+
Leistung
+
online
+
premium
+
offline
+
+
+ {#each bullets as [bullet, online, premium, offline]}
+
+
{@html bullet}
+
+ {online ? "✔" : "⁃"}
+
+
+ {premium ? "✔" : "⁃"}
+
+
+ {offline ? "✔" : "⁃"}
+
+
+ {/each}
+
+
+
Preis inkl. MwSt.
+
+ {PRICES.VerbrauchsausweisGewerbe[
+ Enums.AusweisTyp.Standard
+ ]} €
+
+
+ {PRICES.VerbrauchsausweisGewerbe[
+ Enums.AusweisTyp.Beratung
+ ]} €
+
+
+ {PRICES.VerbrauchsausweisGewerbe[
+ Enums.AusweisTyp.Offline
+ ]} €
+
+
+
+
+
+
+
+
diff --git a/src/components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte b/src/components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte
index 0f7edb8a..2fb6fd88 100644
--- a/src/components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte
+++ b/src/components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte
@@ -1,93 +1,179 @@
-
Produktübersicht: Verbrauchsausweis Wohngebäude
+
+ Produktübersicht: Verbrauchsausweis Wohngebäude
+
Verbrauchsausweis Leistungen und Preise in der Übersicht:
-
-
+
+
+
+
+
Leistung
+
online
+
premium
+
offline
+
-
-
-
-
Leistung
online
premium
offline
-
-
-{#each bullets as [bullet,online,premium,offline]}
-
-
{@html bullet}
-
{online ? "✔" : "⁃"}
-
{premium ? "✔" : "⁃"}
-
{offline ? "✔" : "⁃"}
-
-{/each}
-
-
-
Preis inkl. MwSt.
-
{PRICES.VerbrauchsausweisWohnen[Enums.AusweisTyp.Standard]} €
-
{PRICES.VerbrauchsausweisWohnen[Enums.AusweisTyp.Beratung]} €
-
{PRICES.VerbrauchsausweisWohnen[Enums.AusweisTyp.Offline]} €
-
-
-
-
-
-
+ {#each bullets as [bullet, online, premium, offline]}
+
+
{@html bullet}
+
+ {online ? "✔" : "⁃"}
+
+
+ {premium ? "✔" : "⁃"}
+
+
+ {offline ? "✔" : "⁃"}
+
+
+ {/each}
+
+
Preis inkl. MwSt.
+
+ {PRICES.VerbrauchsausweisWohnen[
+ Enums.AusweisTyp.Standard
+ ]} €
+
+
+ {PRICES.VerbrauchsausweisWohnen[
+ Enums.AusweisTyp.Beratung
+ ]} €
+
+
+ {PRICES.VerbrauchsausweisWohnen[
+ Enums.AusweisTyp.Offline
+ ]} €
+
+
+
+
\ No newline at end of file
+ .price {
+ @apply text-[1.25rem] sm:text-[2rem];
+ }
+
diff --git a/src/components/design/header/AusweisHeaderPartner.astro b/src/components/design/header/AusweisHeaderPartner.astro
new file mode 100644
index 00000000..ec9328f7
--- /dev/null
+++ b/src/components/design/header/AusweisHeaderPartner.astro
@@ -0,0 +1,209 @@
+---
+export interface Props {
+ tab: number;
+}
+
+const { tab } = Astro.props;
+const { params } = Astro;
+const partner = params.partner;
+
+const pathname = Astro.url.pathname;
+const isVA = pathname.includes("verbrauchsausweis-wohngebaeude");
+const isVAG = pathname.includes("verbrauchsausweis-gewerbe");
+const isBA = pathname.includes("bedarfsausweis-wohngebaeude");
+const isBAG = pathname.includes("bedarfsausweis-gewerbe-anfragen");
+const isGGW = pathname.includes("geg-nachweis-wohnen-anfragen");
+const isGGG = pathname.includes("geg-nachweis-gewerbe-anfragen");
+const isWEA = pathname.includes("welcher-ausweis");
+
+const isWelt = pathname.includes("immowelt");
+const isNET = pathname.includes("immonet");
+---
+
+
+
+
+ {
+ isVA ? (
+
+ Hier komfortabel und einfach online den{" "}
+ Verbrauchsausweis Wohngebäude bestellen
+
+ ) : (
+ ""
+ )
+ }
+ {
+ isVAG ? (
+
+ Hier komfortabel und einfach online den{" "}
+ Verbrauchsausweis Gewerbe bestellen
+
+ ) : (
+ ""
+ )
+ }
+ {
+ isBA ? (
+
+ Hier komfortabel und einfach online den{" "}
+ Bedarfsausweis Wohngebäude bestellen
+
+ ) : (
+ ""
+ )
+ }
+ {
+ isBAG ? (
+
+ Hier komfortabel und einfach online den{" "}
+ Bedarfsausweis Gewerbe anfragen
+
+ ) : (
+ ""
+ )
+ }
+ {
+ isGGW ? (
+
+ Hier komfortabel und einfach online den{" "}
+ GEG Nachweis Wohngebäude anfragen
+
+ ) : (
+ ""
+ )
+ }
+ {
+ isGGG ? (
+
+ Hier komfortabel und einfach online den{" "}
+ GEG Nachweis Gewerbe anfragen
+
+ ) : (
+ ""
+ )
+ }
+ {
+ isWEA ? (
+
+ Hier komfortabel und einfach online den richtigen Ausweis finden
+
+ ) : (
+ ""
+ )
+ }
+
+
+
diff --git a/src/components/design/header/AusweisHeader_partner.astro b/src/components/design/header/AusweisHeader_partner.astro
deleted file mode 100644
index b7eb35db..00000000
--- a/src/components/design/header/AusweisHeader_partner.astro
+++ /dev/null
@@ -1,114 +0,0 @@
----
-import HeaderLogin from "#components/design/header/HeaderLogin.svelte";
-const { tabHover1 } = Astro.props;
-const { tabHover2 } = Astro.props;
-const { tabHover3 } = Astro.props;
-const { tabHover4 } = Astro.props;
-const { tabHover5 } = Astro.props;
-const { tabHover6 } = Astro.props;
-const { tabHover7 } = Astro.props;
-
-
-const { params, url } = Astro;
-const partner = params.partner;
-
-const url1 = new URL(Astro.request.url);
-
-const urlPath = url1.pathname;
-const isVA = urlPath.includes("verbrauchsausweis-wohngebaeude");
-const isVAG = urlPath.includes("verbrauchsausweis-gewerbe");
-const isBA = urlPath.includes("bedarfsausweis-wohngebaeude");
-const isBAG = urlPath.includes("bedarfsausweis-gewerbe-anfragen");
-const isGGW = urlPath.includes("geg-nachweis-wohnen-anfragen");
-const isGGG = urlPath.includes("geg-nachweis-gewerbe-anfragen");
-const isWEA = urlPath.includes("welcher-ausweis");
-
-const isWelt = urlPath.includes("immowelt");
-const isNET = urlPath.includes("immonet");
-
----
-
-
-
-
-
-
- {isVA ?
Hier komfortabel und einfach online den Verbrauchsausweis Wohngebäude bestellen
: ""}
- {isVAG ?
Hier komfortabel und einfach online den Verbrauchsausweis Gewerbe bestellen
: ""}
- {isBA ?
Hier komfortabel und einfach online den Bedarfsausweis Wohngebäude bestellen
: ""}
- {isBAG ?
Hier komfortabel und einfach online den Bedarfsausweis Gewerbe anfragen
: ""}
- {isGGW ?
Hier komfortabel und einfach online den GEG Nachweis Wohngebäude anfragen
: ""}
- {isGGG ?
Hier komfortabel und einfach online den GEG Nachweis Gewerbe anfragen
: ""}
- {isWEA ?
Hier komfortabel und einfach online den richtigen Ausweis finden
: ""}
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/design/header/Header_ORG.astro b/src/components/design/header/Header_ORG.astro
deleted file mode 100644
index 59bf6a9a..00000000
--- a/src/components/design/header/Header_ORG.astro
+++ /dev/null
@@ -1,82 +0,0 @@
----
-import HeaderLogin from "#components/design/header/HeaderLogin.svelte";
----
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/design/sidebars/SidebarLeft.astro b/src/components/design/sidebars/SidebarLeft.astro
index 70fcd418..c25e4580 100644
--- a/src/components/design/sidebars/SidebarLeft.astro
+++ b/src/components/design/sidebars/SidebarLeft.astro
@@ -1,19 +1,22 @@
---
import NavigationCard from "#components/design/sidebars/cards/NavigationCard.svelte";
-import CardPriceiInfo from "#components/design/sidebars/cards/cardPriceiInfo.svelte";
+import CardPriceInfo from "#components/design/sidebars/cards/CardPriceInfo.svelte";
import CardProduktSidebar from "#components/design/sidebars/cards/CardProduktSidebar.svelte";
import { PRICES } from "#lib/constants";
import { Enums } from "#lib/client/prisma";
---
-
+
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
diff --git a/src/components/design/sidebars/SidebarRight.astro b/src/components/design/sidebars/SidebarRight.astro
index 9e40318a..b882bbd6 100644
--- a/src/components/design/sidebars/SidebarRight.astro
+++ b/src/components/design/sidebars/SidebarRight.astro
@@ -1,6 +1,6 @@
---
import CardContact from "#components/design/sidebars/cards/ContactCard.svelte";
-import CardPriceiInfo from "#components/design/sidebars/cards/cardPriceiInfo.svelte";
+import CardPriceInfo from "#components/design/sidebars/cards/CardPriceInfo.svelte";
import CardProduktSidebar from "#components/design/sidebars/cards/CardProduktSidebar.svelte";
import { PRICES } from "#lib/constants";
@@ -8,16 +8,15 @@ import { Enums } from "#lib/client/prisma";
---
+
-
-
-
-
-
-
-
-
+
+
+
-
-
-
\ No newline at end of file
diff --git a/src/components/design/sidebars/cards/CardPriceInfo.svelte b/src/components/design/sidebars/cards/CardPriceInfo.svelte
new file mode 100644
index 00000000..2a0564cc
--- /dev/null
+++ b/src/components/design/sidebars/cards/CardPriceInfo.svelte
@@ -0,0 +1,66 @@
+
+
+
+
Was wird der Energieausweis kosten?
+
+
Verbrauchsausweis Wohngebäude
+
+ ab {PRICES.VerbrauchsausweisWohnen[Enums.AusweisTyp.Standard]}€ inkl. MwSt.
+
+
+
+
Bedarfsausweis Wohngebäude
+
+ ab {PRICES.BedarfsausweisWohnen[Enums.AusweisTyp.Standard]}€ inkl. MwSt.
+
+
+
+
Verbrauchsausweis Gewerbe
+
+ ab {PRICES.VerbrauchsausweisGewerbe[Enums.AusweisTyp.Standard]}€ inkl. MwSt.
+
+
+
+
Bedarfsausweis Gewerbe
+
+ ab {PRICES.BedarfsausweisGewerbe[Enums.AusweisTyp.Standard]}€ inkl. MwSt.
+
+
+
+
GEG-Nachweis Wohngebäude
+
+ ab {PRICES.GEGNachweisWohnen[Enums.AusweisTyp.Standard]}€ inkl. MwSt.
+
+
+
+
GEG-Nachweis Gewerbe
+
+ ab {PRICES.GEGNachweisGewerbe[Enums.AusweisTyp.Standard]}€ inkl. MwSt.
+
+
+
+
+
+
diff --git a/src/components/design/sidebars/cards/NavigationCard_ORG.svelte b/src/components/design/sidebars/cards/NavigationCard_ORG.svelte
deleted file mode 100644
index d8a60d3c..00000000
--- a/src/components/design/sidebars/cards/NavigationCard_ORG.svelte
+++ /dev/null
@@ -1,465 +0,0 @@
-
-
-
-
-
-
-
-
- Jetzt bestellen
-
-
-
-
-
-
-
-
-
-
-
-
-
- Produkte & Preise
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- FAQ & Hilfe
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/design/sidebars/cards/cardBAGpromo.svelte b/src/components/design/sidebars/cards/cardBAGpromo.svelte
deleted file mode 100644
index 7b1b62ae..00000000
--- a/src/components/design/sidebars/cards/cardBAGpromo.svelte
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
diff --git a/src/components/design/sidebars/cards/cardBApromo.svelte b/src/components/design/sidebars/cards/cardBApromo.svelte
deleted file mode 100644
index 6868d2e4..00000000
--- a/src/components/design/sidebars/cards/cardBApromo.svelte
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/design/sidebars/cards/cardPriceiInfo.svelte b/src/components/design/sidebars/cards/cardPriceiInfo.svelte
deleted file mode 100644
index d6d89095..00000000
--- a/src/components/design/sidebars/cards/cardPriceiInfo.svelte
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
Was wird der Energieausweis kosten?
-
-
-
Verbrauchsausweis Wohngebäude
-
ab {PRICES.VerbrauchsausweisWohnen[Enums.AusweisTyp.Standard]}€ inkl. MwSt.
-
-
-
Bedarfsausweis Wohngebäude
-
ab {PRICES.BedarfsausweisWohnen[Enums.AusweisTyp.Standard]}€ inkl. MwSt.
-
-
-
Verbrauchsausweis Gewerbe
-
ab {PRICES.VerbrauchsausweisGewerbe[Enums.AusweisTyp.Standard]}€ inkl. MwSt.
-
-
-
Bedarfsausweis Gewerbe
-
ab {PRICES.BedarfsausweisGewerbe[Enums.AusweisTyp.Standard]}€ inkl. MwSt.
-
-
-
GEG-Nachweis Wohngebäude
-
ab {PRICES.GEGNachweisWohnen[Enums.AusweisTyp.Standard]}€ inkl. MwSt.
-
-
-
GEG-Nachweis Gewerbe
-
ab {PRICES.GEGNachweisGewerbe[Enums.AusweisTyp.Standard]}€ inkl. MwSt.
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/design/sidebars/cards/cardVAGpromo.svelte b/src/components/design/sidebars/cards/cardVAGpromo.svelte
deleted file mode 100644
index 06c22d9c..00000000
--- a/src/components/design/sidebars/cards/cardVAGpromo.svelte
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
diff --git a/src/components/design/sidebars/cards/cardVApromo.svelte b/src/components/design/sidebars/cards/cardVApromo.svelte
deleted file mode 100644
index 3da67076..00000000
--- a/src/components/design/sidebars/cards/cardVApromo.svelte
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/cypress/e2e/VerbrauchsausweisWohnen/bearbeiten.cy.ts b/src/cypress/e2e/VerbrauchsausweisWohnen/bearbeiten.cy.ts
index 78559e5d..55758cca 100644
--- a/src/cypress/e2e/VerbrauchsausweisWohnen/bearbeiten.cy.ts
+++ b/src/cypress/e2e/VerbrauchsausweisWohnen/bearbeiten.cy.ts
@@ -26,7 +26,7 @@ describe("Verbrauchsausweis für Wohngebäude bearbeiten", async () => {
}).then((ausweis: VerbrauchsausweisWohnen & { benutzer: Benutzer, aufnahme: Aufnahme & { objekt: Objekt }, rechnung: Rechnung | null }) => {
cy.login("user@ib-cornelsen.de", "passwort");
- cy.visit(`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id=${ausweis.id}`);
+ cy.visit(`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweis_id=${ausweis.id}`);
cy.wait(2000);
diff --git a/src/layouts/AusweisLayoutDaten.astro b/src/layouts/AusweisLayoutDaten.astro
index cf1a4523..db6f2fa2 100644
--- a/src/layouts/AusweisLayoutDaten.astro
+++ b/src/layouts/AusweisLayoutDaten.astro
@@ -102,6 +102,13 @@ const { title } = Astro.props;
+
+
+
@@ -147,6 +154,11 @@ const { title } = Astro.props;
+
+
+
+
-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]');
-
-
-
-
- }
-
-
-});
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {title || 'Energieausweis online erstellen - Online Energieausweis'}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/layouts/AusweisLayoutDatenImmowelt2.astro b/src/layouts/AusweisLayoutDatenImmowelt2.astro
deleted file mode 100644
index f0ff2f32..00000000
--- a/src/layouts/AusweisLayoutDatenImmowelt2.astro
+++ /dev/null
@@ -1,156 +0,0 @@
----
-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;
----
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {title || 'Energieausweis online erstellen - Online Energieausweis'}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/layouts/AusweisLayoutDaten_partner.astro b/src/layouts/AusweisLayoutDatenPartner.astro
similarity index 82%
rename from src/layouts/AusweisLayoutDaten_partner.astro
rename to src/layouts/AusweisLayoutDatenPartner.astro
index e970a78f..b79bf6cb 100644
--- a/src/layouts/AusweisLayoutDaten_partner.astro
+++ b/src/layouts/AusweisLayoutDatenPartner.astro
@@ -2,31 +2,16 @@
import "../style/global.css";
import "../style/formular.css";
import "../../svelte-dialogs.config"
-import Header from "#components/design/header/AusweisHeader_partner.astro";
+import AusweisHeaderPartner from "#components/design/header/AusweisHeaderPartner.astro";
import Footer from "#components/design/footer/Footer.astro";
-import SidebarLeft from "#components/design/sidebars/SidebarLeft.astro";
import { NotificationWrapper } from "@ibcornelsen/ui";
export interface Props {
title: string;
- tabHover1: string;
- tabHover2: string;
- tabHover3: string;
- tabHover4: string;
- tabHover5: string;
- tabHover6: string;
- tabHover7: string;
-
+ tab: number;
}
-const { title } = Astro.props;
-const { tabHover1 } = Astro.props;
-const { tabHover2 } = Astro.props;
-const { tabHover3 } = Astro.props;
-const { tabHover4 } = Astro.props;
-const { tabHover5 } = Astro.props;
-const { tabHover6 } = Astro.props;
-const { tabHover7 } = Astro.props;
+const { title, tab } = Astro.props;
---
+
+
@@ -142,8 +135,12 @@ window.addEventListener("scroll", () => {
-
-
+
+
+
+
+
@@ -151,7 +148,6 @@ window.addEventListener("scroll", () => {
-
diff --git a/src/layouts/AusweisLayoutPruefung.astro b/src/layouts/AusweisLayoutPruefung.astro
index b133387a..02cba403 100644
--- a/src/layouts/AusweisLayoutPruefung.astro
+++ b/src/layouts/AusweisLayoutPruefung.astro
@@ -37,6 +37,14 @@ const { title } = Astro.props;
+
+
+
+
@@ -79,6 +87,10 @@ const { title } = Astro.props;
+
+
+
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro
index c050ca1a..5d79cd5e 100644
--- a/src/layouts/Layout.astro
+++ b/src/layouts/Layout.astro
@@ -98,6 +98,15 @@ window.addEventListener("scroll", (event) => {
+
+
+
+
+
@@ -111,6 +120,10 @@ window.addEventListener("scroll", (event) => {
+
+
+
diff --git a/src/lib/constants.ts b/src/lib/constants.ts
index 271410da..1e582f8a 100644
--- a/src/lib/constants.ts
+++ b/src/lib/constants.ts
@@ -112,4 +112,13 @@ export const SERVICES: Record<
};
export const BASE_URI = process.env.NODE_ENV == "production" ? "https://online-energieausweis.org" : "http://localhost:3000";
-export const LEX_OFFICE_API_KEY = process.env.NODE_ENV == "production" ? "iwQLCU_ZAq6bVV7hmR8RO8MiC8Q" : "iwQLCU_ZAq6bVV7hmR8RO8MiC8Q"
\ No newline at end of file
+export const LEX_OFFICE_API_KEY = process.env.NODE_ENV == "production" ? "iwQLCU_ZAq6bVV7hmR8RO8MiC8Q" : "iwQLCU_ZAq6bVV7hmR8RO8MiC8Q"
+
+export enum AusstellungsTyp {
+ // Objekt wird behalten, Aufnahme und Ausweis werden neu angelegt.
+ Neuausstellung = "Neuausstellung",
+ // Alles wird behalten, Ausweis, Aufnahme und Objekt werden gespeichert, dafür müssen alle drei bereits existieren.
+ Speichern = "Speichern",
+ // Objekt und Aufnahme werden behalten, Ausweis wird neu angelegt.
+ Alternativdokument = "Alternativdokument",
+}
\ No newline at end of file
diff --git a/src/lib/db.ts b/src/lib/db.ts
index c4be0766..32983bfd 100644
--- a/src/lib/db.ts
+++ b/src/lib/db.ts
@@ -6,7 +6,7 @@ import * as crypto from "crypto";
* @param prefix Ein Optionales Präfix, welches vor die ID geschrieben wird, damit diese identifizierbar bleibt.
* @returns Die generierte ID
*/
-export function generatePrefixedId(length: number, prefix: string = ""): string {
+export function generateIDWithPrefix(length: number, prefix: string = ""): string {
// Generating entropy is faster than complex math operations, so we use the simplest way
const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"
const characterCount = characters.length;
diff --git a/src/lib/filters.ts b/src/lib/filters.ts
index aee8ef36..b915593d 100644
--- a/src/lib/filters.ts
+++ b/src/lib/filters.ts
@@ -1,9 +1,9 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { Enums } from "#lib/client/prisma";
import { z } from "zod";
export const filterAusweise = z.object({
- uid: UUidWithPrefix.optional(),
+ uid: IDWithPrefix.optional(),
ausgestellt: z.boolean().optional(),
ausstellgrund: z.nativeEnum(Enums.Ausstellgrund).optional(),
bestellt: z.boolean().optional(),
diff --git a/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts b/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts
index 9cb0ce00..be32284f 100644
--- a/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts
+++ b/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts
@@ -199,19 +199,28 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
if (bild) {
const file = await getS3File("ibc-images", `${bild.id}.jpg`);
-
if (file) {
let image: PDFImage;
- image = await pdf.embedJpg(file)
+ image = await pdf.embedJpg(file);
+
+ const originalWidth = image.width;
+ const originalHeight = image.height;
+
+ // Calculate the scaling factor to fit within the maximum dimensions while maintaining proportions
+ const scaleFactor = Math.min(111 / originalWidth, 138 / originalHeight);
+
+ const scaledWidth = originalWidth * scaleFactor;
+ const scaledHeight = originalHeight * scaleFactor;
+
pages[0].drawImage(image, {
x: 460.5,
- y: height - 289,
- width: 111,
- height: 138
- })
+ y: (height - 289 - scaledHeight) + 138, // Adjust y to align the image properly
+ width: scaledWidth,
+ height: scaledHeight
+ });
}
}
-
+
// Checkmark Verbrauchsausweis.
pages[0].drawText("x", {
x: 41,
@@ -360,25 +369,25 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
if (endenergieverbrauchTranslationPercentage > 0.5) {
page.drawText("Endenergieverbrauch Wärme", {
- x: endenergieverbrauchTranslationX - margin - font.widthOfTextAtSize("Endenergieverbrauch Wärme", 10),
+ x: endenergieverbrauchTranslationX - margin - font.widthOfTextAtSize("Endenergieverbrauch Wärme", 10) - (pfeilWidth / 2),
y: height - 191,
size: 10
})
page.drawText(endEnergieVerbrauchGesamtText, {
- x: endenergieverbrauchTranslationX - margin - bold.widthOfTextAtSize(endEnergieVerbrauchGesamtText, 10),
+ x: endenergieverbrauchTranslationX - margin - bold.widthOfTextAtSize(endEnergieVerbrauchGesamtText, 10) - (pfeilWidth / 2),
y: height - 205,
size: 10,
font: bold
})
} else {
page.drawText("Endenergieverbrauch Wärme", {
- x: endenergieverbrauchTranslationX + pfeilWidth + margin,
+ x: endenergieverbrauchTranslationX + pfeilWidth + margin + (pfeilWidth / 2),
y: height - 191,
size: 10
})
page.drawText(endEnergieVerbrauchGesamtText, {
- x: endenergieverbrauchTranslationX + pfeilWidth + margin,
+ x: endenergieverbrauchTranslationX + pfeilWidth + margin + (pfeilWidth / 2),
y: height - 205,
size: 10,
font: bold
@@ -389,13 +398,13 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
if (vergleichsWertWaermeTranslationPercentage > 0.5) {
page.drawText("Vergleichswert Wärme", {
- x: vergleichsWertWaermeTranslationX - margin - font.widthOfTextAtSize("Vergleichswert Wärme", 10),
+ x: vergleichsWertWaermeTranslationX - margin - font.widthOfTextAtSize("Vergleichswert Wärme", 10) - (pfeilWidth / 2),
y: height - 275,
size: 10
})
page.drawText(vergleichswertWaermeText, {
- x: vergleichsWertWaermeTranslationX - margin - bold.widthOfTextAtSize(vergleichswertWaermeText, 10),
+ x: vergleichsWertWaermeTranslationX - margin - bold.widthOfTextAtSize(vergleichswertWaermeText, 10) - (pfeilWidth / 2),
y: height - 289,
size: 10,
font: bold
@@ -422,7 +431,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
})
page.drawImage(pfeilNachOben, {
- x: vergleichsWertStromTranslationX,
+ x: vergleichsWertStromTranslationX,
y: height - 437,
width: pfeilWidth,
height: 30
@@ -432,25 +441,25 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
if (stromVerbrauchTranslationPercentage > 0.5) {
page.drawText("Endenergieverbrauch Strom", {
- x: stromVerbrauchTranslationX - margin - font.widthOfTextAtSize("Endenergieverbrauch Strom", 10),
+ x: stromVerbrauchTranslationX - margin - font.widthOfTextAtSize("Endenergieverbrauch Strom", 10) - (pfeilWidth / 2),
y: height - 335,
size: 10
})
page.drawText(stromVerbrauchGesamtText, {
- x: stromVerbrauchTranslationX - margin - bold.widthOfTextAtSize(stromVerbrauchGesamtText, 10),
+ x: stromVerbrauchTranslationX - margin - bold.widthOfTextAtSize(stromVerbrauchGesamtText, 10) - (pfeilWidth / 2),
y: height - 349,
size: 10,
font: bold
})
} else {
page.drawText("Endenergieverbrauch Strom", {
- x: stromVerbrauchTranslationX + pfeilWidth + margin,
+ x: stromVerbrauchTranslationX + pfeilWidth + margin + (pfeilWidth / 2),
y: height - 335,
size: 10
})
page.drawText(stromVerbrauchGesamtText, {
- x: stromVerbrauchTranslationX + pfeilWidth + margin,
+ x: stromVerbrauchTranslationX + pfeilWidth + margin + (pfeilWidth / 2),
y: height - 349,
size: 10,
font: bold
@@ -475,12 +484,12 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
})
} else {
page.drawText("Vergleichswert Strom", {
- x: vergleichsWertStromTranslationX + pfeilWidth + margin,
+ x: vergleichsWertStromTranslationX + pfeilWidth + margin + (pfeilWidth / 2),
y: height - 420,
size: 10
})
page.drawText(vergleichswertStromText, {
- x: vergleichsWertStromTranslationX + pfeilWidth + margin,
+ x: vergleichsWertStromTranslationX + pfeilWidth + margin + (pfeilWidth / 2),
y: height - 434,
size: 10,
font: bold
diff --git a/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts b/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts
index b79385b4..d14934b2 100644
--- a/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts
+++ b/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts
@@ -59,13 +59,23 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
if (file) {
let image: PDFImage;
- image = await pdf.embedJpg(file)
+ image = await pdf.embedJpg(file);
+
+ const originalWidth = image.width;
+ const originalHeight = image.height;
+
+ // Calculate the scaling factor to fit within the maximum dimensions while maintaining proportions
+ const scaleFactor = Math.min(111 / originalWidth, 138 / originalHeight);
+
+ const scaledWidth = originalWidth * scaleFactor;
+ const scaledHeight = originalHeight * scaleFactor;
+
pages[0].drawImage(image, {
x: 460.5,
- y: height - 289,
- width: 111,
- height: 138
- })
+ y: (height - 289 - scaledHeight) + 138, // Adjust y to align the image properly
+ width: scaledWidth,
+ height: scaledHeight
+ });
}
}
@@ -333,7 +343,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
}
page.drawImage(pfeilNachUnten, {
- x: endenergieverbrauchTranslationX,
+ x: endenergieverbrauchTranslationX - (pfeilWidth / 2),
y: height - 212,
width: pfeilWidth,
height: 30
@@ -370,7 +380,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
}
page.drawImage(pfeilNachOben, {
- x: primaerenergieverbrauchTranslationX,
+ x: primaerenergieverbrauchTranslationX - (pfeilWidth / 2),
y: height - 297,
width: pfeilWidth,
height: 30
@@ -495,7 +505,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
const addVerbrauch = addVerbrauchGenerator();
- if (!ausweis.warmwasser_enthalten) {
+ if (ausweis.warmwasser_enthalten !== true) {
// Mit Warmwasserzuschlag
addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"),
@@ -545,7 +555,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
"Warmwasserzuschlag",
berechnungen?.primaerfaktorww.toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
- Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
+ Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
"0",
"0"
);
diff --git a/src/lib/server/user.ts b/src/lib/server/user.ts
index 1b6070f3..f9be1df6 100644
--- a/src/lib/server/user.ts
+++ b/src/lib/server/user.ts
@@ -1,9 +1,27 @@
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
import { checkAuthorizationHeader, checkAuthorizationHeaderNoThrow } from "#lib/middleware/authorization.js";
import { AstroGlobal } from "astro";
+import { Enums } from "#lib/client/prisma.js";
+import { prisma } from "#lib/server/prisma.js";
export function getCurrentUser(Astro: AstroGlobal) {
const accessToken = Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value;
return checkAuthorizationHeaderNoThrow(`Bearer ${accessToken}`)
+}
+
+export async function getOtherUser(Astro: AstroGlobal, userId : string) {
+ const accessToken = Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value;
+
+ let currentUser = await checkAuthorizationHeaderNoThrow(`Bearer ${accessToken}`)
+
+ if (currentUser?.rolle == Enums.BenutzerRolle.ADMIN) {
+ const user = await prisma.benutzer.findUnique({
+ where: {
+ id: userId
+ }
+ })
+ return user;
+ }
+ return null;
}
\ No newline at end of file
diff --git a/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte b/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte
index f36d3fcd..49d67059 100644
--- a/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte
+++ b/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte
@@ -57,7 +57,8 @@
"bedarfsausweis-wohnen.ausweis"
);
if (localStorageAusweis) {
- ausweis = JSON.parse(localStorageAusweis);
+ ausweis = JSON.parse(localStorageAusweis)
+ ausweis.ausweistyp = ausweistyp;
}
const localStorageAufnahme = localStorage.getItem(
@@ -147,6 +148,7 @@
{ausweisart}
{partner_code}
showWeiter={false}
+ {ausweistyp}
{form}
{skala}
>
@@ -282,6 +284,7 @@
{ausweisart}
{partner_code}
showWeiter={true}
+ {ausweistyp}
{form}
{skala}
>
diff --git a/src/modules/Dashboard/DashboardAufnahmeModule.svelte b/src/modules/Dashboard/DashboardAufnahmeModule.svelte
index 36cde94d..4def8c7b 100644
--- a/src/modules/Dashboard/DashboardAufnahmeModule.svelte
+++ b/src/modules/Dashboard/DashboardAufnahmeModule.svelte
@@ -1,10 +1,10 @@
-
-
-
-
- {#await api.ausweise.GET.fetch({
- limit: 10,
- skip: (page - 1) * 10,
- filters: filters.reduce((acc, filter) => {
- acc[filter.name] = filter.value
- return acc
- }, {})
- }, {
- headers: {
- Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
- }
- })}
-
- {:then ausweise}
- {#each ausweise as { ausweis, objekt, aufnahme, bilder, events }}
- {#await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt)}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {:then calculations}
-
- {/await}
-{/each}
- {/await}
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/modules/KundendatenModule.svelte b/src/modules/KundendatenModule.svelte
index d283d5c3..10995576 100644
--- a/src/modules/KundendatenModule.svelte
+++ b/src/modules/KundendatenModule.svelte
@@ -32,8 +32,11 @@
import { getMaximumDevitationInPercent } from "#client/lib/helpers.js";
import { endEnergieVerbrauchVerbrauchsausweis_2016_Client } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016_Client.js";
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Client } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016_Client.js";
-
+ import { benutzerSpeichern } from "#client/lib/speichern.js";
+ import { exclude } from "#lib/exclude.js";
+
export let user: Partial;
+ export let impersonatedUser: Partial | null = null;
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
export let aufnahme: AufnahmeClient;
export let objekt: ObjektClient;
@@ -59,6 +62,10 @@
ort = rechnung?.ort || localStorage.getItem("kundendaten.ort") || user.ort || "";
zusatzzeile = rechnung?.zusatzzeile || localStorage.getItem("kundendaten.zusatzzeile") || ""
telefon = rechnung?.telefon || localStorage.getItem("kundendaten.telefon") || user.telefon || "";
+ } else if (impersonatedUser) {
+ vorname = impersonatedUser.vorname || "";
+ name = impersonatedUser.name || "";
+ telefon = impersonatedUser.telefon || "";
}
let abweichende_versand_adresse = JSON.parse(localStorage.getItem("kundendaten.abweichende_versand_adresse") || "false")
@@ -104,25 +111,25 @@
name: "Qualitätsdruck per Post (zusätzlich zur PDF Version)",
id: Enums.Service.Qualitaetsdruck,
price: 9,
- selected: false,
+ selected: rechnung ? rechnung.services.indexOf(Enums.Service.Qualitaetsdruck) >= 0 : false,
},
{
name: "Aushang (für öffentliche Gebäude gesetzlich vorgeschrieben)",
id: Enums.Service.Aushang,
price: 10,
- selected: false,
+ selected: rechnung ? rechnung.services.indexOf(Enums.Service.Aushang) >= 0 : false,
},
{
name: "Same Day Service - Bestellung Werktags vor 12:00 Uhr Ausstellung bis 18:00 Uhr am gleichen Tag",
id: Enums.Service.SameDay,
price: 29,
- selected: false,
+ selected: rechnung ? rechnung.services.indexOf(Enums.Service.SameDay) >= 0 : false,
},
{
name: "Telefonische Energie-Effizienzberatung",
id: Enums.Service.Telefonberatung,
price: 75,
- selected: false,
+ selected: rechnung ? rechnung.services.indexOf(Enums.Service.Telefonberatung) >= 0 : false,
},
];
@@ -249,6 +256,19 @@
} else {
result = await ausweisSpeichern(ausweis, objekt, aufnahme, bilder, unterlagen, ausweisart)
}
+
+ let resultUser: Awaited> | Awaited> | null = null;
+ const { passwort, ...baseUser } = impersonatedUser ?? user;
+
+ const benutzerObjekt = {
+ ...baseUser,
+ name,
+ vorname,
+ telefon
+ };
+
+ resultUser = await benutzerSpeichern(benutzerObjekt);
+
} catch(e) {
addNotification({
dismissable: true,
@@ -312,6 +332,18 @@
}
}
+ let resultUser: Awaited> | Awaited> | null = null;
+ const { passwort, ...baseUser } = impersonatedUser ?? user;
+
+ const benutzerObjekt = {
+ ...baseUser,
+ name,
+ vorname,
+ telefon
+ };
+
+ resultUser = await benutzerSpeichern(benutzerObjekt);
+
if (rechnung && rechnung.status === "paid") {
window.location.href = "/dashboard"
return;
diff --git a/src/modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte b/src/modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte
index 22bfb6de..fd7b6aba 100644
--- a/src/modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte
+++ b/src/modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte
@@ -47,7 +47,7 @@
export let ausweistyp: Enums.AusweisTyp;
export let aufnahme: AufnahmeClient;
export let bilder: BildClient[];
- export let id: string | null;
+ export let ausweis_id: string | null;
export let partner_code: string;
export let loadFromDatabase: boolean = false;
@@ -63,6 +63,7 @@
const localStorageAusweis = localStorage.getItem("verbrauchsausweis-gewerbe.ausweis");
if (localStorageAusweis) {
ausweis = JSON.parse(localStorageAusweis)
+ ausweis.ausweistyp = ausweistyp;
}
const localStorageAufnahme = localStorage.getItem("verbrauchsausweis-gewerbe.aufnahme");
@@ -128,6 +129,7 @@
bind:blockLocalStorageSync
ausweisart={Enums.Ausweisart.VerbrauchsausweisGewerbe}
showWeiter={false}
+ {ausweistyp}
{form}
{partner_code}
{skala}
@@ -245,6 +247,7 @@
bind:blockLocalStorageSync
ausweisart={Enums.Ausweisart.VerbrauchsausweisGewerbe}
showWeiter={true}
+ {ausweistyp}
{form}
{partner_code}
{skala}
diff --git a/src/modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte b/src/modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte
index 0e2f0f4e..34823ce0 100644
--- a/src/modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte
+++ b/src/modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte
@@ -55,7 +55,7 @@
export let user: BenutzerClient | null;
export let bilder: BildClient[];
export let ausweistyp: Enums.AusweisTyp;
- export let id: string | null;
+ export let ausweis_id: string | null;
export let partner_code: string;
export let loadFromDatabase: boolean = false;
@@ -91,11 +91,13 @@
let speichernOverlayHidden = true;
$: {
+ if (!blockLocalStorageSync) {
localStorage.setItem("verbrauchsausweis-wohnen.ausweis", JSON.stringify(ausweis))
localStorage.setItem("verbrauchsausweis-wohnen.aufnahme", JSON.stringify(aufnahme))
localStorage.setItem("verbrauchsausweis-wohnen.objekt", JSON.stringify(objekt))
localStorage.setItem("verbrauchsausweis-wohnen.bilder", JSON.stringify(bilder))
localStorage.setItem("verbrauchsausweis-wohnen.updated_at", moment().toString())
+ }
}
$: {
@@ -113,6 +115,7 @@
const ausweisart = Enums.Ausweisart.VerbrauchsausweisWohnen
const anliegen = "Energieausweis erstellen";
+let blockLocalStorageSync: boolean = false;
let form: HTMLFormElement;
let skala: HTMLDivElement;
@@ -158,8 +161,10 @@ let skala: HTMLDivElement;
bind:user
bind:objekt
bind:aufnahme
+ bind:blockLocalStorageSync
ausweisart={Enums.Ausweisart.VerbrauchsausweisWohnen}
showWeiter={false}
+ {ausweistyp}
{partner_code}
{form}
{skala}
@@ -268,6 +273,7 @@ let skala: HTMLDivElement;
bind:user
bind:objekt
bind:aufnahme
+ bind:blockLocalStorageSync
{form}
ausweisart={Enums.Ausweisart.VerbrauchsausweisWohnen}
{ausweistyp}
diff --git a/src/pages/[partner]/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/index.astro b/src/pages/[partner]/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/index.astro
index e1a8da57..c7a9b8e2 100644
--- a/src/pages/[partner]/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/index.astro
+++ b/src/pages/[partner]/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
import { AufnahmeClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
import { Aufnahme, BedarfsausweisGewerbe, Bild, Enums, Objekt, Unterlage, VerbrauchsausweisWohnen } from "#lib/server/prisma";
diff --git a/src/pages/[partner]/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/produkt-uebersicht.astro b/src/pages/[partner]/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/produkt-uebersicht.astro
index 26b7aa8a..223942d2 100644
--- a/src/pages/[partner]/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/produkt-uebersicht.astro
+++ b/src/pages/[partner]/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/produkt-uebersicht.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import ProduktUebersichtBedarfsausweisGewerbe from "#components/design/content/ProduktUebersichtBedarfsausweisGewerbe.svelte";
---
diff --git a/src/pages/[partner]/angebot-anfragen/geg-nachweis-gewerbe-anfragen/index.astro b/src/pages/[partner]/angebot-anfragen/geg-nachweis-gewerbe-anfragen/index.astro
index 4a3788b9..90f431c6 100644
--- a/src/pages/[partner]/angebot-anfragen/geg-nachweis-gewerbe-anfragen/index.astro
+++ b/src/pages/[partner]/angebot-anfragen/geg-nachweis-gewerbe-anfragen/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import { Aufnahme, Bild, Enums, GEGNachweisGewerbe, GEGNachweisWohnen, Objekt, Unterlage } from "#lib/server/prisma";
import { getAufnahme, getObjekt, getBilder, getGEGNachweisWohnen, getUnterlagen, getGEGNachweisGewerbe } from "#lib/server/db";
import { getCurrentUser } from "#lib/server/user";
diff --git a/src/pages/[partner]/angebot-anfragen/geg-nachweis-gewerbe-anfragen/produkt-uebersicht.astro b/src/pages/[partner]/angebot-anfragen/geg-nachweis-gewerbe-anfragen/produkt-uebersicht.astro
index 2660d01b..077f8259 100644
--- a/src/pages/[partner]/angebot-anfragen/geg-nachweis-gewerbe-anfragen/produkt-uebersicht.astro
+++ b/src/pages/[partner]/angebot-anfragen/geg-nachweis-gewerbe-anfragen/produkt-uebersicht.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import ProduktUebersichtGEGNachweisGewerbe from "#components/design/content/ProduktUebersichtGEGNachweisGewerbe.svelte";
---
diff --git a/src/pages/[partner]/angebot-anfragen/geg-nachweis-wohnen-anfragen/index.astro b/src/pages/[partner]/angebot-anfragen/geg-nachweis-wohnen-anfragen/index.astro
index ee35a610..4e5309b7 100644
--- a/src/pages/[partner]/angebot-anfragen/geg-nachweis-wohnen-anfragen/index.astro
+++ b/src/pages/[partner]/angebot-anfragen/geg-nachweis-wohnen-anfragen/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import GEGNachweisWohnenModule from "#modules/angebot-anfragen/GEGNachweisWohnenModule.svelte";
import { Aufnahme, Bild, Enums, GEGNachweisWohnen, Objekt, Unterlage } from "#lib/server/prisma";
import { getAufnahme, getObjekt, getBilder, getGEGNachweisWohnen, getUnterlagen } from "#lib/server/db";
diff --git a/src/pages/[partner]/angebot-anfragen/geg-nachweis-wohnen-anfragen/produkt-uebersicht.astro b/src/pages/[partner]/angebot-anfragen/geg-nachweis-wohnen-anfragen/produkt-uebersicht.astro
index 366ea7ed..621147bc 100644
--- a/src/pages/[partner]/angebot-anfragen/geg-nachweis-wohnen-anfragen/produkt-uebersicht.astro
+++ b/src/pages/[partner]/angebot-anfragen/geg-nachweis-wohnen-anfragen/produkt-uebersicht.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import ProduktUebersichtGEGNachweisWohnen from "#components/design/content/ProduktUebersichtGEGNachweisWohnen.svelte";
---
diff --git a/src/pages/[partner]/energieausweis-erstellen/[ausweisart]/index.astro b/src/pages/[partner]/energieausweis-erstellen/[ausweisart]/index.astro
new file mode 100644
index 00000000..9dc72bad
--- /dev/null
+++ b/src/pages/[partner]/energieausweis-erstellen/[ausweisart]/index.astro
@@ -0,0 +1,265 @@
+---
+import AusweisLayoutDatenPartner from "#layouts/AusweisLayoutDatenPartner.astro";
+import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
+import {
+ Aufnahme,
+ BedarfsausweisWohnen,
+ Bild,
+ Enums,
+ Objekt,
+ prisma,
+ VerbrauchsausweisGewerbe,
+ VerbrauchsausweisWohnen,
+} from "#lib/server/prisma";
+import {
+ getAufnahme,
+ getBedarfsausweisWohnen,
+ getBilder,
+ getObjekt,
+ getVerbrauchsausweisGewerbe,
+ getVerbrauchsausweisWohnen,
+} from "#lib/server/db";
+import { getCurrentUser } from "#lib/server/user";
+import { AusstellungsTyp } from "#lib/constants";
+import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
+import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
+import { getPrismaAusweisAdapter } from "#lib/server/ausweis";
+
+const ausweisart = Astro.params.ausweisart as string;
+const partner_code = Astro.params.partner as string;
+
+if (
+ ausweisart !== "verbrauchsausweis-wohngebaeude" &&
+ ausweisart !== "verbrauchsausweis-gewerbe" &&
+ ausweisart !== "bedarfsausweis-wohngebaeude"
+) {
+ return Astro.redirect("/404");
+}
+
+const user = await getCurrentUser(Astro);
+
+const ausweis_id = Astro.url.searchParams.get("ausweis_id");
+const typ = Astro.url.searchParams.get("typ") as AusstellungsTyp;
+
+let ausweistyp =
+ (Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp) ||
+ Enums.AusweisTyp.Standard;
+
+let ausweis:
+ | VerbrauchsausweisWohnen
+ | VerbrauchsausweisGewerbe
+ | BedarfsausweisWohnen
+ | null = {} as VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
+let aufnahme: Aufnahme | null = {} as Aufnahme;
+let objekt: Objekt | null = {} as Objekt;
+let bilder: Bild[] = [];
+let loadFromDatabase = false;
+
+if (typ === AusstellungsTyp.Neuausstellung) {
+ if (!user) {
+ return Astro.redirect(`/auth/login?redirect=${Astro.url.toString()}`);
+ }
+
+ if (!ausweis_id) {
+ return Astro.redirect("/400");
+ }
+
+ const adapter = getPrismaAusweisAdapter(ausweis_id)
+
+ ausweis = await adapter?.findUnique({
+ where: {
+ id: ausweis_id
+ }
+ })
+
+ aufnahme = await prisma.aufnahme.findUnique({
+ where: {
+ id: ausweis?.aufnahme_id,
+ },
+ });
+
+ objekt = await prisma.objekt.findUnique({
+ where: {
+ id: aufnahme?.objekt_id,
+ },
+ });
+
+ if (
+ !ausweis ||
+ !aufnahme ||
+ !objekt ||
+ ((ausweis.benutzer_id !== user.id ||
+ aufnahme.benutzer_id !== user.id ||
+ objekt.benutzer_id !== user.id) && user.rolle !== Enums.BenutzerRolle.ADMIN)
+ ) {
+ return Astro.redirect("/405");
+ }
+
+ ausweis.id = null;
+ aufnahme.id = null;
+ delete aufnahme.erstellungsdatum;
+ ausweis.created_at = new Date()
+ ausweis.updated_at = new Date();
+ ausweis.alte_ausweis_id = null;
+ ausweis.ausgestellt = false;
+ ausweis.bestellt = false;
+ ausweis.kontrolldatei_angefragt = false;
+ ausweis.energieeffizienzklasse = null;
+ ausweis.ausstellungsdatum = null;
+ ausweis.ausweistyp = Enums.AusweisTyp.Standard;
+ ausweis.zurueckgestellt = false;
+ ausweis.storniert = false;
+ ausweis.rechnung_id = null;
+ ausweis.registriernummer = null;
+ // Die Daten sollen nicht aus dem localStorage genommen werden sonst kann es vorkommen, dass die ID noch besteht und der Vorgang nicht neu angelegt wird.
+ loadFromDatabase = true;
+} else if (typ === AusstellungsTyp.Speichern) {
+ if (!user) {
+ return Astro.redirect(`/auth/login?redirect=${Astro.url.toString()}`);
+ }
+
+ if (!ausweis_id) {
+ return Astro.redirect("/400");
+ }
+
+ if (ausweisart === "verbrauchsausweis-wohngebaeude") {
+ ausweis = await getVerbrauchsausweisWohnen(ausweis_id);
+ } else if (ausweisart === "verbrauchsausweis-gewerbe") {
+ ausweis = await getVerbrauchsausweisGewerbe(ausweis_id);
+ } else {
+ ausweis = await getBedarfsausweisWohnen(ausweis_id);
+ }
+
+ ausweistyp = ausweis.ausweistyp;
+
+ aufnahme = (await getAufnahme(ausweis.aufnahme_id)) as Aufnahme;
+
+ objekt = (await getObjekt(aufnahme.objekt_id)) as Objekt;
+
+ if (
+ !ausweis ||
+ !aufnahme ||
+ !objekt ||
+ ((ausweis.benutzer_id !== user.id ||
+ aufnahme.benutzer_id !== user.id ||
+ objekt.benutzer_id !== user.id) && user.rolle !== Enums.BenutzerRolle.ADMIN)
+ ) {
+ return Astro.redirect("/405");
+ }
+
+ bilder = await getBilder(aufnahme.id);
+ loadFromDatabase = true;
+} else if (typ === AusstellungsTyp.Alternativdokument) {
+ if (!user) {
+ return Astro.redirect(`/auth/login?redirect=${Astro.url.toString()}`);
+ }
+
+ if (!ausweis_id) {
+ return Astro.redirect("/400");
+ }
+
+ const adapter = getPrismaAusweisAdapter(ausweis_id)
+
+ ausweis = await adapter?.findUnique({
+ where: {
+ id: ausweis_id
+ }
+ })
+
+ aufnahme = await prisma.aufnahme.findUnique({
+ where: {
+ id: ausweis?.aufnahme_id,
+ },
+ });
+
+ objekt = await prisma.objekt.findUnique({
+ where: {
+ id: aufnahme?.objekt_id,
+ },
+ });
+
+ if (
+ !ausweis ||
+ !aufnahme ||
+ !objekt ||
+ ((ausweis.benutzer_id !== user.id ||
+ aufnahme.benutzer_id !== user.id ||
+ objekt.benutzer_id !== user.id) && user.rolle !== Enums.BenutzerRolle.ADMIN)
+ ) {
+ return Astro.redirect("/405");
+ }
+
+ ausweis.id = null;
+ delete aufnahme.erstellungsdatum;
+ ausweis.created_at = new Date()
+ ausweis.updated_at = new Date();
+ ausweis.alte_ausweis_id = null;
+ ausweis.ausgestellt = false;
+ ausweis.bestellt = false;
+ ausweis.kontrolldatei_angefragt = false;
+ ausweis.energieeffizienzklasse = null;
+ ausweis.ausstellungsdatum = null;
+ ausweis.ausweistyp = Enums.AusweisTyp.Standard;
+ ausweis.zurueckgestellt = false;
+ ausweis.storniert = false;
+ ausweis.rechnung_id = null;
+ ausweis.registriernummer = null;
+ // Die Daten sollen nicht aus dem localStorage genommen werden sonst kann es vorkommen, dass die ID noch besteht und der Vorgang nicht neu angelegt wird.
+ loadFromDatabase = true;
+}
+---
+
+
+ {
+ ausweisart === "verbrauchsausweis-wohngebaeude" && (
+
+ )
+ }
+ {
+ ausweisart === "verbrauchsausweis-gewerbe" && (
+
+ )
+ }
+ {
+ ausweisart === "bedarfsausweis-wohngebaeude" && (
+
+ )
+ }
+
diff --git a/src/pages/[partner]/energieausweis-erstellen/[ausweisart]/produkt-uebersicht.astro b/src/pages/[partner]/energieausweis-erstellen/[ausweisart]/produkt-uebersicht.astro
new file mode 100644
index 00000000..af1efc03
--- /dev/null
+++ b/src/pages/[partner]/energieausweis-erstellen/[ausweisart]/produkt-uebersicht.astro
@@ -0,0 +1,24 @@
+---
+import Layout from "#layouts/Layout.astro";
+import ProduktUebersichtBedarfsausweisWohnen from "#components/design/content/ProduktUebersichtBedarfsausweisWohnen.svelte";
+import ProduktUebersichtVerbrauchsausweisGewerbe from "#components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte";
+import ProduktUebersichtVerbrauchsausweisWohnen from "#components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte";
+
+const ausweisart = Astro.params.ausweisart;
+const partner = Astro.params.partner;
+
+if (ausweisart !== "verbrauchsausweis-wohngebaeude" && ausweisart !== "verbrauchsausweis-gewerbe" && ausweisart !== "bedarfsausweis-wohngebaeude") {
+ return Astro.redirect("/404")
+}
+
+let title: string = "";
+if (ausweisart === "verbrauchsausweis-wohngebaeude") title = "Verbrauchsausweis Wohngebäude Produktübersicht";
+if (ausweisart === "verbrauchsausweis-gewerbe") title = "Verbrauchsausweis Gewerbe Produktübersicht";
+if (ausweisart === "bedarfsausweis-wohngebaeude") title = "Bedarfsausweis Wohngebäude Produktübersicht";
+---
+
+
+ {ausweisart === "verbrauchsausweis-wohngebaeude" && }
+ {ausweisart === "verbrauchsausweis-gewerbe" && }
+ {ausweisart === "bedarfsausweis-wohngebaeude" && }
+
\ No newline at end of file
diff --git a/src/pages/[partner]/energieausweis-erstellen/bedarfsausweis-wohngebaeude/index.astro b/src/pages/[partner]/energieausweis-erstellen/bedarfsausweis-wohngebaeude/index.astro
deleted file mode 100644
index 929beaf4..00000000
--- a/src/pages/[partner]/energieausweis-erstellen/bedarfsausweis-wohngebaeude/index.astro
+++ /dev/null
@@ -1,91 +0,0 @@
----
-
-import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
-import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
-import { Aufnahme, BedarfsausweisWohnen, Bild, Enums, Objekt } from "#lib/server/prisma";
-import { getAufnahme, getObjekt, getBilder, getBedarfsausweisWohnen } from "#lib/server/db";
-import { getCurrentUser } from "#lib/server/user";
-
-const id = Astro.url.searchParams.get("id");
-const aufnahme_id = Astro.url.searchParams.get("aufnahme")
-let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
-const partner_code = Astro.params.partner as string;
-
-let ausweis: BedarfsausweisWohnen = {} as BedarfsausweisWohnen;
-let aufnahme: Aufnahme = {} as Aufnahme;
-let objekt: Objekt = {} as Objekt;
-let bilder: Bild[] = []
-
-const user = await getCurrentUser(Astro)
-
-if (id) {
- if (!user) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- ausweis = await getBedarfsausweisWohnen(id) as BedarfsausweisWohnen
- ausweistyp = ausweis.ausweistyp;
-
- if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
- // Der Ausweis scheint nicht zu existieren.
- // Wir leiten auf die generische Ausweisseite ohne ID weiter.
- return Astro.redirect(
- "/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
- );
- }
-
- aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
-
- if (!aufnahme) {
- // Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
- return Astro.redirect(
- "/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
- );
- }
-
- objekt = await getObjekt(aufnahme.objekt_id) as Objekt
-
- if (!objekt) {
- // Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
- return Astro.redirect(
- "/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
- );
- }
-
- bilder = await getBilder(aufnahme.id);
-} else if (aufnahme_id) {
- if (!user) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
-
- if (!aufnahme) {
- // Die Aufnahme existiert wohl nicht.
- return Astro.redirect(
- "/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
- );
- }
-
- objekt = await getObjekt(aufnahme.objekt_id) as Objekt
-
- if (!objekt) {
- // Das Objekt existiert nicht.
- return Astro.redirect(
- "/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
- );
- }
-}
-
-console.log(ausweistyp);
-
-
-
----
-
-
-
\ No newline at end of file
diff --git a/src/pages/[partner]/energieausweis-erstellen/bedarfsausweis-wohngebaeude/produkt-uebersicht.astro b/src/pages/[partner]/energieausweis-erstellen/bedarfsausweis-wohngebaeude/produkt-uebersicht.astro
deleted file mode 100644
index f2aa1985..00000000
--- a/src/pages/[partner]/energieausweis-erstellen/bedarfsausweis-wohngebaeude/produkt-uebersicht.astro
+++ /dev/null
@@ -1,13 +0,0 @@
----
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
-import ProduktUebersichtBedarfsausweisWohnen from "#components/design/content/ProduktUebersichtBedarfsausweisWohnen.svelte";
----
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/pages/[partner]/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro b/src/pages/[partner]/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro
deleted file mode 100644
index 190b9acc..00000000
--- a/src/pages/[partner]/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro
+++ /dev/null
@@ -1,87 +0,0 @@
----
-import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
-import { AufnahmeClient, ObjektClient, BildClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types";
-import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
-import { Aufnahme, Enums, Objekt, VerbrauchsausweisGewerbe } from "#lib/server/prisma";
-import { getAufnahme, getObjekt, getBilder, getVerbrauchsausweisGewerbe } from "#lib/server/db";
-import { getCurrentUser } from "#lib/server/user";
-
-const id = Astro.url.searchParams.get("id");
-const aufnahme_id = Astro.url.searchParams.get("aufnahme")
-let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
-const partner_code = Astro.params.partner as string;
-
-let ausweis: VerbrauchsausweisGewerbeClient = {} as VerbrauchsausweisGewerbeClient;
-let aufnahme: AufnahmeClient = {} as AufnahmeClient;
-let objekt: ObjektClient = {} as ObjektClient;
-let bilder: BildClient[] = []
-
-const user = await getCurrentUser(Astro)
-
-if (id) {
- if (!user) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- ausweis = await getVerbrauchsausweisGewerbe(id) as VerbrauchsausweisGewerbe
- ausweistyp = ausweis.ausweistyp;
-
- if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
- // Der Ausweis scheint nicht zu existieren.
- // Wir leiten auf die generische Ausweisseite ohne ID weiter.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-gewerbe"
- );
- }
-
- aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
-
- if (!aufnahme) {
- // Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-gewerbe"
- );
- }
-
- objekt = await getObjekt(aufnahme.objekt_id) as Objekt
-
- if (!objekt) {
- // Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-gewerbe"
- );
- }
-
- bilder = await getBilder(aufnahme.id);
-} else if (aufnahme_id) {
- if (!user) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
-
- if (!aufnahme) {
- // Die Aufnahme existiert wohl nicht.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-gewerbe"
- );
- }
-
- objekt = await getObjekt(aufnahme.objekt_id) as Objekt
-
- if (!objekt) {
- // Das Objekt existiert nicht.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-gewerbe"
- );
- }
-}
----
-
-
-
-
\ No newline at end of file
diff --git a/src/pages/[partner]/energieausweis-erstellen/verbrauchsausweis-gewerbe/produkt-uebersicht.astro b/src/pages/[partner]/energieausweis-erstellen/verbrauchsausweis-gewerbe/produkt-uebersicht.astro
deleted file mode 100644
index 96edc43f..00000000
--- a/src/pages/[partner]/energieausweis-erstellen/verbrauchsausweis-gewerbe/produkt-uebersicht.astro
+++ /dev/null
@@ -1,14 +0,0 @@
----
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
-import ProduktUebersichtVerbrauchsausweisGewerbe from "#components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte";
----
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/pages/[partner]/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro b/src/pages/[partner]/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro
deleted file mode 100644
index 467385b4..00000000
--- a/src/pages/[partner]/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro
+++ /dev/null
@@ -1,87 +0,0 @@
----
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
-import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
-import { Aufnahme, Bild, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/server/prisma";
-import { getVerbrauchsausweisWohnen, getAufnahme, getObjekt, getBilder } from "#lib/server/db";
-import { getCurrentUser } from "#lib/server/user";
-
-const id = Astro.url.searchParams.get("id");
-const aufnahme_id = Astro.url.searchParams.get("aufnahme")
-let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
-const partner_code = Astro.params.partner as string;
-
-let ausweis: VerbrauchsausweisWohnen = {} as VerbrauchsausweisWohnen;
-let aufnahme: Aufnahme = {} as Aufnahme;
-let objekt: Objekt = {} as Objekt;
-let bilder: Bild[] = []
-
-const user = await getCurrentUser(Astro)
-
-if (id) {
- if (!user) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- ausweis = await getVerbrauchsausweisWohnen(id) as VerbrauchsausweisWohnen
- ausweistyp = ausweis.ausweistyp;
-
- if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
- // Der Ausweis scheint nicht zu existieren.
- // Wir leiten auf die generische Ausweisseite ohne ID weiter.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
- );
- }
-
- aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
-
- if (!aufnahme) {
- // Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
- );
- }
-
- objekt = await getObjekt(aufnahme.objekt_id) as Objekt
-
- if (!objekt) {
- // Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
- );
- }
-
- bilder = await getBilder(aufnahme.id);
-} else if (aufnahme_id) {
- if (!user) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
-
- if (!aufnahme) {
- // Die Aufnahme existiert wohl nicht.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
- );
- }
-
- objekt = await getObjekt(aufnahme.objekt_id) as Objekt
-
- if (!objekt) {
- // Das Objekt existiert nicht.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
- );
- }
-}
-
----
-
-
-
-
diff --git a/src/pages/[partner]/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/produkt-uebersicht.astro b/src/pages/[partner]/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/produkt-uebersicht.astro
deleted file mode 100644
index cbcd0b17..00000000
--- a/src/pages/[partner]/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/produkt-uebersicht.astro
+++ /dev/null
@@ -1,13 +0,0 @@
----
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
-import ProduktUebersichtVerbrauchsausweisWohnen from "#components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte";
----
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/pages/[partner]/welcher-ausweis/immonet/index.astro b/src/pages/[partner]/welcher-ausweis/immonet/index.astro
index 2151c1b2..196cb547 100644
--- a/src/pages/[partner]/welcher-ausweis/immonet/index.astro
+++ b/src/pages/[partner]/welcher-ausweis/immonet/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import WelcherAusweisWidget from "#components/widgets/immonet/WelcherAusweisWidget_immonet.svelte";
---
diff --git a/src/pages/[partner]/welcher-ausweis/immowelt/index.astro b/src/pages/[partner]/welcher-ausweis/immowelt/index.astro
index 5eef7e0f..956e86e0 100644
--- a/src/pages/[partner]/welcher-ausweis/immowelt/index.astro
+++ b/src/pages/[partner]/welcher-ausweis/immowelt/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import WelcherAusweisWidget from "#components/widgets/immowelt/WelcherAusweisWidget_immowelt.svelte";
---
diff --git a/src/pages/[partner]/welcher-ausweis/index.astro b/src/pages/[partner]/welcher-ausweis/index.astro
index c54d07fe..c20d7b50 100644
--- a/src/pages/[partner]/welcher-ausweis/index.astro
+++ b/src/pages/[partner]/welcher-ausweis/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import WelcherAusweisWidget from "#components/widgets/ibcornelsen/WelcherAusweisWidget_ibcornelsen.svelte";
---
diff --git a/src/pages/[partner]/welcher-ausweis/ohne-makler/index.astro b/src/pages/[partner]/welcher-ausweis/ohne-makler/index.astro
index dac593a3..464fdfdc 100644
--- a/src/pages/[partner]/welcher-ausweis/ohne-makler/index.astro
+++ b/src/pages/[partner]/welcher-ausweis/ohne-makler/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import WelcherAusweisWidget from "#components/widgets/ohnemakler/WelcherAusweisWidget_ohnemakler.svelte";
---
diff --git a/src/pages/api/admin/ausstellen.ts b/src/pages/api/admin/ausstellen.ts
index 763080f5..c30f00fc 100644
--- a/src/pages/api/admin/ausstellen.ts
+++ b/src/pages/api/admin/ausstellen.ts
@@ -329,14 +329,14 @@ export const GET = defineApiRoute({
im Anhang finden Sie Ihren geprüften Energieusweis inkl. Rechnung als PDF-Datei. ${
post ? "Zusätzlich haben wir Ihren Ausweis per Post verschickt" : ""
- } Nachfolgend finden Sie unsere Bankverbindung. Bitte geben Sie als Verwendungszweck die Rechnungsnummer an (siehe unten). Vielen Dank.
+ } Bitte beachten Sie unsere neue Bankverbindung. Bitte geben Sie als Verwendungszweck die Rechnungsnummer an (siehe unten). Vielen Dank.
- Kreditinstitut : \t Commerzbank AG
+ Kreditinstitut : \t Volksbank eG
Empfänger : \t IB Cornelsen
- IBAN : \t DE81 2004 0000 0348 6008 00
- BIC : \t COBADEFFXXX
+ IBAN : \t DE13 2519 3331 7209 0731 00
+ BIC : \t GENODEF1PAT
Betrag : \t ${rechnung.betrag}€
Verwendungszweck : \t ${voucherNumber}
diff --git a/src/pages/api/admin/bedarfsausweis-ausstellen.ts b/src/pages/api/admin/bedarfsausweis-ausstellen.ts
index 66944cc2..a67e8b02 100644
--- a/src/pages/api/admin/bedarfsausweis-ausstellen.ts
+++ b/src/pages/api/admin/bedarfsausweis-ausstellen.ts
@@ -197,7 +197,7 @@ export const POST = defineApiRoute({
let filename: string;
if (type === "Ausweis") {
- filename = `ID_${ausweis.id}_Ausweis.pdf`
+ filename = `ID_${ausweis.id}_Energieausweis.pdf`
} else {
filename = `ID_${ausweis.id}_${name}`;
}
@@ -212,7 +212,7 @@ export const POST = defineApiRoute({
const command = new PutObjectCommand({
Bucket: "ibc-pdfs",
- Key: name,
+ Key: filename,
Body: buffer,
ACL: "private",
});
@@ -336,14 +336,14 @@ export const POST = defineApiRoute({
im Anhang finden Sie Ihren geprüften Energieusweis inkl. Rechnung als PDF-Datei. ${
post ? "Zusätzlich haben wir Ihren Ausweis per Post verschickt" : ""
- } Nachfolgend finden Sie unsere Bankverbindung. Bitte geben Sie als Verwendungszweck die Rechnungsnummer an (siehe unten). Vielen Dank.
+ } Bitte beachten Sie unsere neue Bankverbindung. Bitte geben Sie als Verwendungszweck die Rechnungsnummer an (siehe unten). Vielen Dank.
- Kreditinstitut : \t Commerzbank AG
+ Kreditinstitut : \t Volksbank eG
Empfänger : \t IB Cornelsen
- IBAN : \t DE81 2004 0000 0348 6008 00
- BIC : \t COBADEFFXXX
+ IBAN : \t DE13 2519 3331 7209 0731 00
+ BIC : \t GENODEF1PAT
Betrag : \t ${rechnung.betrag}€
Verwendungszweck : \t ${voucherNumber}
diff --git a/src/pages/api/admin/registriernummer.ts b/src/pages/api/admin/registriernummer.ts
index bf3f3ddc..20bbc581 100644
--- a/src/pages/api/admin/registriernummer.ts
+++ b/src/pages/api/admin/registriernummer.ts
@@ -1,6 +1,6 @@
import {
getAusweisartFromId,
- UUidWithPrefix,
+ IDWithPrefix,
} from "#components/Ausweis/types.js";
import {
adminMiddleware,
@@ -18,7 +18,7 @@ import { getPrismaAusweisAdapter } from "#lib/server/ausweis.js";
export const GET = defineApiRoute({
input: z.object({
- id: UUidWithPrefix,
+ id: IDWithPrefix,
}),
headers: authorizationHeaders,
middleware: adminMiddleware,
diff --git a/src/pages/api/admin/stornieren.ts b/src/pages/api/admin/stornieren.ts
index 2eb551fd..b9ab2cbb 100644
--- a/src/pages/api/admin/stornieren.ts
+++ b/src/pages/api/admin/stornieren.ts
@@ -1,4 +1,4 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { transport } from "#lib/mail.js";
import { adminMiddleware } from "#lib/middleware/authorization.js";
import { mollieClient } from "#lib/mollie.js";
@@ -10,7 +10,7 @@ import { z } from "zod";
export const PUT = defineApiRoute({
input: z.object({
- ausweis_id: UUidWithPrefix
+ ausweis_id: IDWithPrefix
}),
middleware: adminMiddleware,
async fetch(input, context, transfer) {
diff --git a/src/pages/api/aufnahme/[id]/bilder.ts b/src/pages/api/aufnahme/[id]/bilder.ts
index 47b6f10a..8cf0d3fa 100644
--- a/src/pages/api/aufnahme/[id]/bilder.ts
+++ b/src/pages/api/aufnahme/[id]/bilder.ts
@@ -2,11 +2,11 @@ import { authorizationMiddleware } from "#lib/middleware/authorization.js";
import { Enums, prisma } from "#lib/server/prisma.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { BildSchema } from "src/generated/zod/bild.js";
export const PUT = defineApiRoute({
- input: z.array(UUidWithPrefix),
+ input: z.array(IDWithPrefix),
output: z.void(),
middleware: authorizationMiddleware,
async fetch(input, ctx, user) {
diff --git a/src/pages/api/aufnahme/[id]/index.ts b/src/pages/api/aufnahme/[id]/index.ts
index 49f72673..3f330279 100644
--- a/src/pages/api/aufnahme/[id]/index.ts
+++ b/src/pages/api/aufnahme/[id]/index.ts
@@ -1,4 +1,4 @@
-import { AufnahmeClient, OptionalNullable, UUidWithPrefix, ZodOverlap } from "#components/Ausweis/types.js";
+import { AufnahmeClient, OptionalNullable, IDWithPrefix, ZodOverlap } from "#components/Ausweis/types.js";
import { exclude } from "#lib/exclude.js";
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
import { Enums, prisma } from "#lib/server/prisma.js";
diff --git a/src/pages/api/aufnahme/[id]/unterlagen.ts b/src/pages/api/aufnahme/[id]/unterlagen.ts
index b1ec91da..7b5eae4f 100644
--- a/src/pages/api/aufnahme/[id]/unterlagen.ts
+++ b/src/pages/api/aufnahme/[id]/unterlagen.ts
@@ -2,11 +2,11 @@ import { authorizationMiddleware } from "#lib/middleware/authorization.js";
import { prisma } from "#lib/server/prisma.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { UnterlageSchema } from "src/generated/zod/unterlage.js";
export const PUT = defineApiRoute({
- input: z.array(UUidWithPrefix),
+ input: z.array(IDWithPrefix),
output: z.void(),
middleware: authorizationMiddleware,
async fetch(input, ctx, user) {
diff --git a/src/pages/api/aufnahme/index.ts b/src/pages/api/aufnahme/index.ts
index 9a836b2d..6f15b4fd 100644
--- a/src/pages/api/aufnahme/index.ts
+++ b/src/pages/api/aufnahme/index.ts
@@ -1,6 +1,6 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js"
+import { IDWithPrefix } from "#components/Ausweis/types.js"
import { VALID_UUID_PREFIXES } from "#lib/constants.js"
-import { generatePrefixedId } from "#lib/db.js"
+import { generateIDWithPrefix } from "#lib/db.js"
import { authorizationMiddleware } from "#lib/middleware/authorization.js"
import { prisma } from "#lib/server/prisma.js"
import { APIError, defineApiRoute } from "astro-typesafe-api/server"
@@ -16,10 +16,10 @@ export const PUT = defineApiRoute({
}).merge(z.object({
baujahr_klima: z.array(z.number().int().positive()).optional()
})),
- objekt_id: UUidWithPrefix
+ objekt_id: IDWithPrefix
}),
output: z.object({
- id: UUidWithPrefix
+ id: IDWithPrefix
}),
middleware: authorizationMiddleware,
async fetch(input, context, user) {
@@ -39,7 +39,7 @@ export const PUT = defineApiRoute({
})
}
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.Aufnahme)
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.Aufnahme)
const aufnahme = await prisma.aufnahme.create({
data: {
diff --git a/src/pages/api/ausweise/index.ts b/src/pages/api/ausweise/index.ts
index a03fbad3..353976c4 100644
--- a/src/pages/api/ausweise/index.ts
+++ b/src/pages/api/ausweise/index.ts
@@ -1,4 +1,4 @@
-import { AufnahmeClient, ObjektClient, BildClient, UUidWithPrefix, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
+import { AufnahmeClient, ObjektClient, BildClient, IDWithPrefix, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { filterAusweise } from "#lib/filters.js";
import { omit } from "#lib/helpers.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
diff --git a/src/pages/api/auth/refresh-token.ts b/src/pages/api/auth/refresh-token.ts
index 7d041cc4..3ed57135 100644
--- a/src/pages/api/auth/refresh-token.ts
+++ b/src/pages/api/auth/refresh-token.ts
@@ -5,7 +5,7 @@ import { encodeToken } from "../../../lib/auth/token.js";
import { validatePassword } from "../../../lib/password.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { TokenType } from "#lib/auth/types.js";
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
export const GET = defineApiRoute({
@@ -20,7 +20,7 @@ export const GET = defineApiRoute({
passwort: z.string().min(8).max(100),
}),
output: z.object({
- id: UUidWithPrefix,
+ id: IDWithPrefix,
accessToken: z.string(),
refreshToken: z.string(),
refreshTokenBase64: z.string(),
diff --git a/src/pages/api/bedarfsausweis-gewerbe/[id].ts b/src/pages/api/bedarfsausweis-gewerbe/[id].ts
index be3a40f1..c2c74657 100644
--- a/src/pages/api/bedarfsausweis-gewerbe/[id].ts
+++ b/src/pages/api/bedarfsausweis-gewerbe/[id].ts
@@ -1,6 +1,6 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { exclude } from "#lib/exclude.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js";
@@ -64,7 +64,7 @@ export const DELETE = defineApiRoute({
async fetch(input, ctx, user) {
const { id } = ctx.params;
- if (!UUidWithPrefix.safeParse(id).success) {
+ if (!IDWithPrefix.safeParse(id).success) {
throw new APIError({
code: "BAD_REQUEST",
message: "UID konnte nicht verifiziert werden."
@@ -122,7 +122,7 @@ export const DELETE = defineApiRoute({
}
})
- const event_id = generatePrefixedId(9, VALID_UUID_PREFIXES.Ticket)
+ const event_id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.Ticket)
// Wir erstellen ein Event, dass der Nachweis storniert wurde
// Dann können wir das in der Historie anzeigen
@@ -164,9 +164,9 @@ export const GET = defineApiRoute({
}
},
output: BedarfsausweisGewerbeSchema.merge(z.object({
- aufnahme_id: UUidWithPrefix,
- objekt_id: UUidWithPrefix,
- benutzer_id: UUidWithPrefix.optional()
+ aufnahme_id: IDWithPrefix,
+ objekt_id: IDWithPrefix,
+ benutzer_id: IDWithPrefix.optional()
})).omit({
id: true,
aufnahme_id: true,
diff --git a/src/pages/api/bedarfsausweis-gewerbe/index.ts b/src/pages/api/bedarfsausweis-gewerbe/index.ts
index 726a3b70..af81a364 100644
--- a/src/pages/api/bedarfsausweis-gewerbe/index.ts
+++ b/src/pages/api/bedarfsausweis-gewerbe/index.ts
@@ -1,6 +1,6 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js";
import { Enums, prisma } from "#lib/server/prisma.js";
@@ -29,9 +29,9 @@ export const PUT = defineApiRoute({
zurueckgestellt: true,
ausweisart: true
}),
- aufnahme_id: UUidWithPrefix
+ aufnahme_id: IDWithPrefix
}),
- output: UUidWithPrefix,
+ output: IDWithPrefix,
headers: authorizationHeaders,
middleware: authorizationMiddleware,
async fetch(input, ctx, user) {
@@ -48,7 +48,7 @@ export const PUT = defineApiRoute({
})
}
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.BedarfsausweisGewerbe)
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.BedarfsausweisGewerbe)
const nachweis = await prisma.bedarfsausweisGewerbe.create({
data: {
diff --git a/src/pages/api/bedarfsausweis-wohnen/[id].ts b/src/pages/api/bedarfsausweis-wohnen/[id].ts
index 1dccd9c8..75901097 100644
--- a/src/pages/api/bedarfsausweis-wohnen/[id].ts
+++ b/src/pages/api/bedarfsausweis-wohnen/[id].ts
@@ -1,6 +1,6 @@
-import { BedarfsausweisWohnenClient, OptionalNullable, UUidWithPrefix, ZodOverlap } from "#components/Ausweis/types.js";
+import { BedarfsausweisWohnenClient, OptionalNullable, IDWithPrefix, ZodOverlap } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { exclude } from "#lib/exclude.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js";
@@ -63,7 +63,7 @@ export const DELETE = defineApiRoute({
async fetch(input, ctx, user) {
const { id } = ctx.params;
- if (!UUidWithPrefix.safeParse(id).success) {
+ if (!IDWithPrefix.safeParse(id).success) {
throw new APIError({
code: "BAD_REQUEST",
message: "UID konnte nicht verifiziert werden."
@@ -124,7 +124,7 @@ export const DELETE = defineApiRoute({
}
})
- const event_id = generatePrefixedId(9, VALID_UUID_PREFIXES.Ticket)
+ const event_id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.Ticket)
// Wir erstellen ein Event, dass der Ausweis storniert wurde
// Dann können wir das in der Historie anzeigen
@@ -166,9 +166,9 @@ export const GET = defineApiRoute({
}
},
output: ZodOverlap>(BedarfsausweisWohnenSchema.merge(z.object({
- aufnahme_id: UUidWithPrefix,
- objekt_id: UUidWithPrefix,
- benutzer_id: UUidWithPrefix.optional()
+ aufnahme_id: IDWithPrefix,
+ objekt_id: IDWithPrefix,
+ benutzer_id: IDWithPrefix.optional()
})).omit({
id: true,
aufnahme_id: true,
diff --git a/src/pages/api/bedarfsausweis-wohnen/index.ts b/src/pages/api/bedarfsausweis-wohnen/index.ts
index ca6e96f2..8fbe1439 100644
--- a/src/pages/api/bedarfsausweis-wohnen/index.ts
+++ b/src/pages/api/bedarfsausweis-wohnen/index.ts
@@ -1,6 +1,6 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import {
authorizationHeaders,
authorizationMiddleware,
@@ -32,9 +32,9 @@ export const PUT = defineApiRoute({
storniert: true,
ausweisart: true
}),
- aufnahme_id: UUidWithPrefix,
+ aufnahme_id: IDWithPrefix,
}),
- output: UUidWithPrefix,
+ output: IDWithPrefix,
headers: authorizationHeaders,
middleware: authorizationMiddleware,
async fetch(input, ctx, user) {
@@ -52,7 +52,7 @@ export const PUT = defineApiRoute({
});
}
- const id = generatePrefixedId(
+ const id = generateIDWithPrefix(
9,
VALID_UUID_PREFIXES.BedarfsausweisWohnen
);
diff --git a/src/pages/api/bild.ts b/src/pages/api/bild.ts
index 2670cb61..498507b3 100644
--- a/src/pages/api/bild.ts
+++ b/src/pages/api/bild.ts
@@ -3,23 +3,25 @@ import { prisma } from "#lib/server/prisma.js";
import { defineApiRoute, APIError } from "astro-typesafe-api/server";
import { z } from "astro:content";
import isBase64 from "is-base64";
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { BildSchema } from "src/generated/zod/bild.js";
-import sharp from "sharp"
+import sharp from "sharp";
import { PutObjectCommand } from "@aws-sdk/client-s3";
import { s3Client } from "#lib/s3.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
export const PUT = defineApiRoute({
input: BildSchema.pick({
kategorie: true,
- name: true
- }).merge(z.object({
- data: z.string()
- })),
+ name: true,
+ }).merge(
+ z.object({
+ data: z.string(),
+ })
+ ),
output: z.object({
- id: z.string({ description: "Die id des Bildes." })
+ id: z.string({ description: "Die id des Bildes." }),
}),
async fetch(input) {
const data = input.data;
@@ -31,44 +33,40 @@ export const PUT = defineApiRoute({
});
}
- const dataWithoutPrefix = data.replace(
- /^data:image\/\w+;base64,/,
- ""
- );
+ const dataWithoutPrefix = data.replace(/^data:image\/\w+;base64,/, "");
const buffer = Buffer.from(dataWithoutPrefix, "base64");
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.Bild)
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.Bild);
const bild = await prisma.bild.create({
data: {
id,
kategorie: input.kategorie,
- name: input.name
- }
+ name: input.name,
+ },
});
-
-
-
try {
// Wir optimieren das Bild und konvertieren es in JPEG
- const optimizedBuffer = await sharp(buffer).jpeg({ quality: 80 }).toBuffer();
+ const optimizedBuffer = await sharp(buffer)
+ .jpeg({ quality: 80 })
+ .toBuffer();
const command = new PutObjectCommand({
Bucket: "ibc-images",
Key: `${id}.jpg`,
Body: optimizedBuffer,
- ACL: "private"
- })
+ ACL: "private",
+ });
- const response = await s3Client.send(command)
- } catch(e) {
+ const response = await s3Client.send(command);
+ } catch (e) {
// Bild wurde nicht gespeichert, wir löschen den Eintrag wieder
await prisma.bild.delete({
where: {
- id
- }
- })
+ id,
+ },
+ });
// Und geben einen Fehler zurück
throw new APIError({
code: "INTERNAL_SERVER_ERROR",
@@ -77,14 +75,14 @@ export const PUT = defineApiRoute({
}
return {
- id
+ id,
};
},
-})
+});
export const DELETE = defineApiRoute({
input: z.object({
- id: UUidWithPrefix
+ id: IDWithPrefix,
}),
middleware: maybeAuthorizationMiddleware,
async fetch(input, context, user) {
@@ -95,24 +93,24 @@ export const DELETE = defineApiRoute({
id: input.id,
aufnahme: {
benutzer: {
- id: user.id
- }
- }
- }
- })
+ id: user.id,
+ },
+ },
+ },
+ });
} else {
await prisma.bild.delete({
where: {
id: input.id,
- aufnahme_id: null
- }
- })
+ aufnahme_id: null,
+ },
+ });
}
- } catch(e) {
+ } catch (e) {
throw new APIError({
code: "INTERNAL_SERVER_ERROR",
- message: "Bild konnte nicht gelöscht werden."
- })
+ message: "Bild konnte nicht gelöscht werden.",
+ });
}
},
-})
\ No newline at end of file
+});
diff --git a/src/pages/api/bilder/[id].ts b/src/pages/api/bilder/[id].ts
index 0a1730d5..2204f371 100644
--- a/src/pages/api/bilder/[id].ts
+++ b/src/pages/api/bilder/[id].ts
@@ -5,7 +5,7 @@ import { z } from "zod";
import isBase64 from "is-base64";
import { fileURLToPath } from "url";
import { writeFileSync } from "fs";
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import sharp from "sharp"
import { BildSchema } from "src/generated/zod/bild.js";
import { PERSISTENT_DIR } from "#lib/server/constants.js";
@@ -19,7 +19,7 @@ export const PATCH = defineApiRoute({
output: z.void(),
middleware: authorizationMiddleware,
async fetch(input, ctx, user) {
- if (!UUidWithPrefix.safeParse(ctx.params.uid).success) {
+ if (!IDWithPrefix.safeParse(ctx.params.uid).success) {
throw new APIError({
code: "BAD_REQUEST",
message: "UID konnte nicht verifiziert werden."
diff --git a/src/pages/api/geg-nachweis-gewerbe/[id].ts b/src/pages/api/geg-nachweis-gewerbe/[id].ts
index da805fb1..1c5419fc 100644
--- a/src/pages/api/geg-nachweis-gewerbe/[id].ts
+++ b/src/pages/api/geg-nachweis-gewerbe/[id].ts
@@ -1,6 +1,6 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { exclude } from "#lib/exclude.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js";
@@ -63,7 +63,7 @@ export const DELETE = defineApiRoute({
async fetch(input, ctx, user) {
const { id } = ctx.params;
- if (!UUidWithPrefix.safeParse(id).success) {
+ if (!IDWithPrefix.safeParse(id).success) {
throw new APIError({
code: "BAD_REQUEST",
message: "UID konnte nicht verifiziert werden."
@@ -122,7 +122,7 @@ export const DELETE = defineApiRoute({
})
- const event_id = generatePrefixedId(9, VALID_UUID_PREFIXES.Ticket)
+ const event_id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.Ticket)
// Wir erstellen ein Event, dass der Nachweis storniert wurde
// Dann können wir das in der Historie anzeigen
await prisma.event.create({
@@ -163,9 +163,9 @@ export const GET = defineApiRoute({
}
},
output: GEGNachweisGewerbeSchema.merge(z.object({
- aufnahme_id: UUidWithPrefix,
- objekt_id: UUidWithPrefix,
- benutzer_id: UUidWithPrefix.optional()
+ aufnahme_id: IDWithPrefix,
+ objekt_id: IDWithPrefix,
+ benutzer_id: IDWithPrefix.optional()
})).omit({
id: true,
aufnahme_id: true,
diff --git a/src/pages/api/geg-nachweis-gewerbe/index.ts b/src/pages/api/geg-nachweis-gewerbe/index.ts
index 82c253a0..f1e0f2a7 100644
--- a/src/pages/api/geg-nachweis-gewerbe/index.ts
+++ b/src/pages/api/geg-nachweis-gewerbe/index.ts
@@ -1,6 +1,6 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js";
import { Enums, prisma } from "#lib/server/prisma.js";
@@ -29,12 +29,12 @@ export const PUT = defineApiRoute({
zurueckgestellt: true,
ausweisart: true
}),
- aufnahme_id: UUidWithPrefix
+ aufnahme_id: IDWithPrefix
}),
output: z.object({
- id: UUidWithPrefix,
- objekt_id: UUidWithPrefix,
- aufnahme_id: UUidWithPrefix,
+ id: IDWithPrefix,
+ objekt_id: IDWithPrefix,
+ aufnahme_id: IDWithPrefix,
}),
headers: authorizationHeaders,
middleware: authorizationMiddleware,
@@ -52,7 +52,7 @@ export const PUT = defineApiRoute({
})
}
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.GEGNachweisGewerbe)
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.GEGNachweisGewerbe)
const nachweis = await prisma.gEGNachweisGewerbe.create({
data: {
diff --git a/src/pages/api/geg-nachweis-wohnen/[id].ts b/src/pages/api/geg-nachweis-wohnen/[id].ts
index 81bd7b19..34b4830a 100644
--- a/src/pages/api/geg-nachweis-wohnen/[id].ts
+++ b/src/pages/api/geg-nachweis-wohnen/[id].ts
@@ -1,6 +1,6 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { exclude } from "#lib/exclude.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js";
@@ -63,7 +63,7 @@ export const DELETE = defineApiRoute({
async fetch(input, ctx, user) {
const { id } = ctx.params;
- if (!UUidWithPrefix.safeParse(id).success) {
+ if (!IDWithPrefix.safeParse(id).success) {
throw new APIError({
code: "BAD_REQUEST",
message: "UID konnte nicht verifiziert werden."
@@ -127,7 +127,7 @@ export const DELETE = defineApiRoute({
// Dann können wir das in der Historie anzeigen
await prisma.event.create({
data: {
- id: generatePrefixedId(9, VALID_UUID_PREFIXES.Event),
+ id: generateIDWithPrefix(9, VALID_UUID_PREFIXES.Event),
title: "Nachweis storniert",
description: ((user.rolle === "ADMIN") && (nachweis.benutzer_id !== user.id)) ? "Nachweis wurde von einem Administrator storniert." : "Nachweis wurde vom Besitzer storniert.",
benutzer: {
@@ -163,9 +163,9 @@ export const GET = defineApiRoute({
}
},
output: GEGNachweisWohnenSchema.merge(z.object({
- aufnahme_id: UUidWithPrefix,
- objekt_id: UUidWithPrefix,
- benutzer_id: UUidWithPrefix.optional()
+ aufnahme_id: IDWithPrefix,
+ objekt_id: IDWithPrefix,
+ benutzer_id: IDWithPrefix.optional()
})).omit({
id: true,
aufnahme_id: true,
diff --git a/src/pages/api/geg-nachweis-wohnen/index.ts b/src/pages/api/geg-nachweis-wohnen/index.ts
index 3de71e47..b0f8c420 100644
--- a/src/pages/api/geg-nachweis-wohnen/index.ts
+++ b/src/pages/api/geg-nachweis-wohnen/index.ts
@@ -1,6 +1,6 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js";
import { Enums, prisma } from "#lib/server/prisma.js";
@@ -29,12 +29,12 @@ export const PUT = defineApiRoute({
zurueckgestellt: true,
ausweisart: true
}),
- aufnahme_id: UUidWithPrefix
+ aufnahme_id: IDWithPrefix
}),
output: z.object({
- id: UUidWithPrefix,
- objekt_id: UUidWithPrefix,
- aufnahme_id: UUidWithPrefix,
+ id: IDWithPrefix,
+ objekt_id: IDWithPrefix,
+ aufnahme_id: IDWithPrefix,
}),
headers: authorizationHeaders,
middleware: authorizationMiddleware,
@@ -52,7 +52,7 @@ export const PUT = defineApiRoute({
})
}
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.GEGNachweisWohnen)
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.GEGNachweisWohnen)
const nachweis = await prisma.gEGNachweisWohnen.create({
data: {
diff --git a/src/pages/api/objekt/index.ts b/src/pages/api/objekt/index.ts
index 6f17a37a..6fbe0177 100644
--- a/src/pages/api/objekt/index.ts
+++ b/src/pages/api/objekt/index.ts
@@ -1,5 +1,5 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
import { prisma } from "#lib/server/prisma.js";
import { defineApiRoute } from "astro-typesafe-api/server";
@@ -13,11 +13,11 @@ export const PUT = defineApiRoute({
erstellungsdatum: true
}),
output: z.object({
- id: UUidWithPrefix
+ id: IDWithPrefix
}),
middleware: authorizationMiddleware,
async fetch(input, context, user) {
- const id = generatePrefixedId(9, "OB")
+ const id = generateIDWithPrefix(9, "OB")
console.log(id);
diff --git a/src/pages/api/rechnung/[id].ts b/src/pages/api/rechnung/[id].ts
index 9eb8a345..e19131b3 100644
--- a/src/pages/api/rechnung/[id].ts
+++ b/src/pages/api/rechnung/[id].ts
@@ -1,4 +1,4 @@
-import { UUidWithPrefix, getAusweisartFromId } from "#components/Ausweis/types.js"
+import { IDWithPrefix, getAusweisartFromId } from "#components/Ausweis/types.js"
import { Enums } from "#lib/client/prisma.js"
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"
import { mollieClient } from "#lib/mollie.js"
@@ -25,7 +25,7 @@ export const PATCH = defineApiRoute({
}),
output: z.object({
checkout_url: z.string().optional(),
- id: UUidWithPrefix,
+ id: IDWithPrefix,
}),
middleware: authorizationMiddleware,
headers: authorizationHeaders,
diff --git a/src/pages/api/rechnung/anfordern.ts b/src/pages/api/rechnung/anfordern.ts
index ba1a21cf..4339623f 100644
--- a/src/pages/api/rechnung/anfordern.ts
+++ b/src/pages/api/rechnung/anfordern.ts
@@ -1,6 +1,6 @@
-import { getAusweisartFromId, UUidWithPrefix } from "#components/Ausweis/types.js";
+import { getAusweisartFromId, IDWithPrefix } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { omit } from "#lib/helpers.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { sendGEGAnforderungsMail } from "#lib/server/mail/geg-anfordern.js";
@@ -15,10 +15,10 @@ export const PUT = defineApiRoute({
id: true,
status: true,
}).merge(z.object({
- nachweis_id: UUidWithPrefix
+ nachweis_id: IDWithPrefix
})),
output: z.object({
- id: UUidWithPrefix
+ id: IDWithPrefix
}),
headers: authorizationHeaders,
middleware: authorizationMiddleware,
@@ -59,7 +59,7 @@ export const PUT = defineApiRoute({
})
}
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.GEGEinpreisung)
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.GEGEinpreisung)
if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) {
einpreisung = await prisma.gEGEinpreisung.create({
diff --git a/src/pages/api/rechnung/index.ts b/src/pages/api/rechnung/index.ts
index 7550e8ac..466d3e4e 100644
--- a/src/pages/api/rechnung/index.ts
+++ b/src/pages/api/rechnung/index.ts
@@ -7,12 +7,12 @@ import {
authorizationHeaders,
authorizationMiddleware,
} from "#lib/middleware/authorization.js";
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { getPrismaAusweisAdapter } from "#lib/server/ausweis.js";
import { PRICES, SERVICES, VALID_UUID_PREFIXES } from "#lib/constants.js";
import { Rechnung } from "#lib/client/prisma.js";
import { RechnungSchema } from "src/generated/zod/rechnung.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
export const PUT = defineApiRoute({
meta: {
@@ -25,7 +25,7 @@ export const PUT = defineApiRoute({
input: z
.object({
ausweisart: z.nativeEnum(Enums.Ausweisart),
- ausweis_id: UUidWithPrefix,
+ ausweis_id: IDWithPrefix,
})
.merge(
RechnungSchema.omit({
@@ -43,7 +43,7 @@ export const PUT = defineApiRoute({
),
output: z.object({
checkout_url: z.string().optional(),
- id: UUidWithPrefix,
+ id: IDWithPrefix,
}),
headers: authorizationHeaders,
middleware: authorizationMiddleware,
@@ -99,7 +99,7 @@ export const PUT = defineApiRoute({
betrag += servicePriceList[service]
}
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.Rechnung);
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.Rechnung);
// Wir erstellen eine neue Rechnung in unserer Datenbank.
let rechnung: Rechnung | null = null;
diff --git a/src/pages/api/ticket/index.ts b/src/pages/api/ticket/index.ts
index 46a4f722..1367b309 100644
--- a/src/pages/api/ticket/index.ts
+++ b/src/pages/api/ticket/index.ts
@@ -1,9 +1,9 @@
import { z } from "zod";
import { prisma } from "#lib/server/prisma.js";
import { defineApiRoute } from "astro-typesafe-api/server";
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { TicketsSchema } from "src/generated/zod/tickets.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
export const PUT = defineApiRoute({
@@ -25,10 +25,10 @@ export const PUT = defineApiRoute({
updated_at: true,
}),
output: z.object({
- id: UUidWithPrefix,
+ id: IDWithPrefix,
}),
async fetch(input, ctx) {
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.Ticket)
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.Ticket)
const ticket = await prisma.tickets.create({
data: {
diff --git a/src/pages/api/unterlage.ts b/src/pages/api/unterlage.ts
index 84516d8c..c12ae602 100644
--- a/src/pages/api/unterlage.ts
+++ b/src/pages/api/unterlage.ts
@@ -3,9 +3,9 @@ import { prisma } from "#lib/server/prisma.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";
import { UnterlageSchema } from "src/generated/zod/unterlage.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { PutObjectCommand } from "@aws-sdk/client-s3";
import { s3Client } from "#lib/s3.js";
import mime from "mime"
@@ -18,7 +18,7 @@ export const PUT = defineApiRoute({
data: z.string(),
})),
output: z.object({
- id: UUidWithPrefix
+ id: IDWithPrefix
}),
async fetch({ data, name, kategorie, mime: mimeType }, ctx, user) {
const extension = mime.getExtension(mimeType);
@@ -29,7 +29,7 @@ export const PUT = defineApiRoute({
})
}
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.Unterlage)
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.Unterlage)
await prisma.unterlage.create({
data: {
diff --git a/src/pages/api/user/index.ts b/src/pages/api/user/index.ts
index beb42b3c..43050ab0 100644
--- a/src/pages/api/user/index.ts
+++ b/src/pages/api/user/index.ts
@@ -1,22 +1,21 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { adminMiddleware, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { hashPassword } from "#lib/password.js";
import { createLexOfficeCustomer } from "#lib/server/lexoffice.js";
import { sendRegisterMail } from "#lib/server/mail/registrierung.js";
-import { prisma } from "#lib/server/prisma.js";
+import { Benutzer, prisma } from "#lib/server/prisma.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { BenutzerSchema } from "src/generated/zod/benutzer.js";
import { z } from "zod";
+import { Enums } from "#lib/client/prisma.js";
export const POST = defineApiRoute({
input: BenutzerSchema.omit({
- id: true,
lex_office_id: true,
rolle: true,
- created_at: true,
- updated_at: true
+ created_at: true
}),
middleware: authorizationMiddleware,
async fetch(input, context, user) {
@@ -24,30 +23,42 @@ export const POST = defineApiRoute({
// TODO: Email wurde geändert, neue Bestätigunsmail schicken.
}
+ const updateData: any = {};
+ updateData.id = user.id;
+ if (input.adresse) updateData.adresse = input.adresse;
+ if (input.anrede) updateData.anrede = input.anrede;
+ if (input.email) updateData.email = input.email;
+ if (input.firma) updateData.firma = input.firma;
+ if (input.name) updateData.name = input.name;
+ if (input.vorname) updateData.vorname = input.vorname;
+ if (input.ort) updateData.ort = input.ort;
+ if (input.passwort.length != 0) updateData.passwort = hashPassword(input.passwort);
+ if (input.plz) updateData.plz = input.plz;
+ if (input.profilbild) updateData.profilbild = input.profilbild;
+ if (input.telefon) updateData.telefon = input.telefon;
+ if (input.verified) updateData.telefon = input.verified;
+
+ //Admin may update other users
+ if (user.rolle == Enums.BenutzerRolle.ADMIN && input.id != user.id) {
+ updateData.id = input.id;
+ } else if(user.rolle != Enums.BenutzerRolle.ADMIN && input.id != user.id){
+ return;
+ }
+
await prisma.benutzer.update({
where: {
- id: user.id
+ id: updateData.id
},
- data: {
- adresse: input.adresse,
- anrede: input.anrede,
- email: input.email,
- firma: input.firma,
- name: input.name,
- vorname: input.vorname,
- ort: input.ort,
- passwort: hashPassword(input.passwort),
- plz: input.plz,
- profilbild: input.profilbild,
- telefon: input.telefon,
- }
- })
+ data: updateData
+ });
+
+
},
})
export const GET = defineApiRoute({
input: z.object({
- id: UUidWithPrefix
+ id: IDWithPrefix
}).or(z.object({
take: z.number(),
email: z.string()
@@ -90,7 +101,7 @@ export const PUT = defineApiRoute({
name: z.string()
}),
output: z.object({
- id: UUidWithPrefix
+ id: IDWithPrefix
}),
async fetch(input) {
const existingUser = await prisma.benutzer.findUnique({
@@ -106,7 +117,7 @@ export const PUT = defineApiRoute({
})
}
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.User);
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.User);
const user = await prisma.benutzer.create({
data: {
diff --git a/src/pages/api/verbrauchsausweis-gewerbe/[id].ts b/src/pages/api/verbrauchsausweis-gewerbe/[id].ts
index 8a90b0f4..6c6f52ef 100644
--- a/src/pages/api/verbrauchsausweis-gewerbe/[id].ts
+++ b/src/pages/api/verbrauchsausweis-gewerbe/[id].ts
@@ -1,6 +1,6 @@
-import { OptionalNullable, UUidWithPrefix, VerbrauchsausweisGewerbeClient, ZodOverlap } from "#components/Ausweis/types.js";
+import { OptionalNullable, IDWithPrefix, VerbrauchsausweisGewerbeClient, ZodOverlap } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { exclude } from "#lib/exclude.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js";
@@ -61,7 +61,7 @@ export const DELETE = defineApiRoute({
async fetch(input, ctx, user) {
const { id } = ctx.params;
- if (!UUidWithPrefix.safeParse(id).success) {
+ if (!IDWithPrefix.safeParse(id).success) {
throw new APIError({
code: "BAD_REQUEST",
message: "id konnte nicht verifiziert werden."
@@ -123,7 +123,7 @@ export const DELETE = defineApiRoute({
// Dann können wir das in der Historie anzeigen
await prisma.event.create({
data: {
- id: generatePrefixedId(9, VALID_UUID_PREFIXES.Event),
+ id: generateIDWithPrefix(9, VALID_UUID_PREFIXES.Event),
title: "Ausweis storniert",
description: ((user.rolle === "ADMIN") && (ausweis.benutzer_id !== user.id)) ? "Ausweis wurde von einem Administrator storniert." : "Ausweis wurde vom Besitzer storniert.",
benutzer: {
@@ -159,7 +159,7 @@ export const GET = defineApiRoute({
}
},
output: ZodOverlap>(VerbrauchsausweisGewerbeSchema.merge(z.object({
- objekt_id: UUidWithPrefix,
+ objekt_id: IDWithPrefix,
}))),
middleware: authorizationMiddleware,
async fetch(input, context, user) {
diff --git a/src/pages/api/verbrauchsausweis-gewerbe/index.ts b/src/pages/api/verbrauchsausweis-gewerbe/index.ts
index d5127bbf..b9d9ff51 100644
--- a/src/pages/api/verbrauchsausweis-gewerbe/index.ts
+++ b/src/pages/api/verbrauchsausweis-gewerbe/index.ts
@@ -1,6 +1,6 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js";
import { prisma } from "#lib/server/prisma.js";
@@ -27,12 +27,12 @@ export const PUT = defineApiRoute({
}).merge(z.object({
startdatum: z.coerce.date().nullable()
})),
- aufnahme_id: UUidWithPrefix
+ aufnahme_id: IDWithPrefix
}),
output: z.object({
- id: UUidWithPrefix,
- objekt_id: UUidWithPrefix,
- aufnahme_id: UUidWithPrefix,
+ id: IDWithPrefix,
+ objekt_id: IDWithPrefix,
+ aufnahme_id: IDWithPrefix,
}),
headers: authorizationHeaders,
middleware: authorizationMiddleware,
@@ -50,7 +50,7 @@ export const PUT = defineApiRoute({
})
}
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.VerbrauchsausweisGewerbe)
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.VerbrauchsausweisGewerbe)
const createdAusweis = await prisma.verbrauchsausweisGewerbe.create({
data: {
diff --git a/src/pages/api/verbrauchsausweis-wohnen/[id].ts b/src/pages/api/verbrauchsausweis-wohnen/[id].ts
index 43678e8e..b960bf04 100644
--- a/src/pages/api/verbrauchsausweis-wohnen/[id].ts
+++ b/src/pages/api/verbrauchsausweis-wohnen/[id].ts
@@ -1,6 +1,6 @@
-import { OptionalNullable, UUidWithPrefix, VerbrauchsausweisWohnenClient, ZodOverlap } from "#components/Ausweis/types.js";
+import { OptionalNullable, IDWithPrefix, VerbrauchsausweisWohnenClient, ZodOverlap } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { exclude } from "#lib/exclude.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js";
@@ -62,7 +62,7 @@ export const DELETE = defineApiRoute({
async fetch(input, ctx, user) {
const { id } = ctx.params;
- if (!UUidWithPrefix.safeParse(id).success) {
+ if (!IDWithPrefix.safeParse(id).success) {
throw new APIError({
code: "BAD_REQUEST",
message: "UID konnte nicht verifiziert werden."
@@ -124,7 +124,7 @@ export const DELETE = defineApiRoute({
// Dann können wir das in der Historie anzeigen
await prisma.event.create({
data: {
- id: generatePrefixedId(9, VALID_UUID_PREFIXES.Event),
+ id: generateIDWithPrefix(9, VALID_UUID_PREFIXES.Event),
title: "Ausweis storniert",
description: ((user.rolle === "ADMIN") && (ausweis.benutzer_id !== user.id)) ? "Ausweis wurde von einem Administrator storniert." : "Ausweis wurde vom Besitzer storniert.",
benutzer: {
@@ -160,7 +160,7 @@ export const GET = defineApiRoute({
}
},
output: ZodOverlap>(VerbrauchsausweisWohnenSchema.merge(z.object({
- objekt_id: UUidWithPrefix
+ objekt_id: IDWithPrefix
}))),
middleware: authorizationMiddleware,
async fetch(input, context, user) {
diff --git a/src/pages/api/verbrauchsausweis-wohnen/index.ts b/src/pages/api/verbrauchsausweis-wohnen/index.ts
index 7f01fe4f..f2708961 100644
--- a/src/pages/api/verbrauchsausweis-wohnen/index.ts
+++ b/src/pages/api/verbrauchsausweis-wohnen/index.ts
@@ -1,7 +1,10 @@
-import { UUidWithPrefix } from "#components/Ausweis/types.js";
+import { IDWithPrefix } from "#components/Ausweis/types.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
-import { generatePrefixedId } from "#lib/db.js";
-import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
+import { generateIDWithPrefix } from "#lib/db.js";
+import {
+ authorizationHeaders,
+ authorizationMiddleware,
+} from "#lib/middleware/authorization.js";
import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js";
import { Enums, prisma } from "#lib/server/prisma.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
@@ -20,87 +23,102 @@ export const PUT = defineApiRoute({
tags: ["Verbrauchsausweis Wohnen"],
},
input: z.object({
- ausweis: VerbrauchsausweisWohnenSchema.merge(z.object({
- startdatum: z.coerce.date().nullable()
- })).omit({
+ ausweis: VerbrauchsausweisWohnenSchema.merge(
+ z.object({
+ startdatum: z.coerce.date().nullable(),
+ })
+ ).omit({
id: true,
benutzer_id: true,
aufnahme_id: true,
rechnung_id: true,
created_at: true,
updated_at: true,
- ausweisart: true
+ ausweisart: true,
+ alte_ausweis_id: true,
+ ausgestellt: true,
+ bestellt: true,
+ ausstellungsdatum: true,
+ kontrolldatei_angefragt: true,
+ registriernummer: true,
+ storniert: true,
+ zurueckgestellt: true,
}),
- aufnahme_id: UUidWithPrefix
+ aufnahme_id: IDWithPrefix,
}),
output: z.object({
- id: UUidWithPrefix,
- objekt_id: UUidWithPrefix,
- aufnahme_id: UUidWithPrefix,
+ id: IDWithPrefix,
+ objekt_id: IDWithPrefix,
+ aufnahme_id: IDWithPrefix,
}),
headers: authorizationHeaders,
middleware: authorizationMiddleware,
async fetch(input, ctx, user) {
const aufnahme = await prisma.aufnahme.findUnique({
where: {
- id: input.aufnahme_id
- }
- })
+ id: input.aufnahme_id,
+ },
+ });
if (!aufnahme || aufnahme.benutzer_id !== user.id) {
throw new APIError({
code: "FORBIDDEN",
- message: "Aufnahme konnte nicht gefunden werden oder gehört nicht zu diesem Benutzer."
- })
+ message:
+ "Aufnahme konnte nicht gefunden werden oder gehört nicht zu diesem Benutzer.",
+ });
}
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.VerbrauchsausweisWohnen);
+ const id = generateIDWithPrefix(
+ 9,
+ VALID_UUID_PREFIXES.VerbrauchsausweisWohnen
+ );
- const createdAusweis = await prisma.verbrauchsausweisWohnen.create({
- data: {
- id,
- ...input.ausweis,
- benutzer: {
- connect: {
- id: user.id,
- },
- },
- aufnahme: {
- connect: {
- id: aufnahme.id,
- },
+ const ausweis = await prisma.verbrauchsausweisWohnen.create({
+ data: {
+ id,
+ ...input.ausweis,
+ benutzer: {
+ connect: {
+ id: user.id,
},
},
- select: {
- id: true,
- aufnahme: {
- select: {
- id: true,
- objekt: {
- select: {
- id: true,
- },
+ aufnahme: {
+ connect: {
+ id: aufnahme.id,
+ },
+ },
+ },
+ select: {
+ id: true,
+ aufnahme: {
+ select: {
+ id: true,
+ objekt: {
+ select: {
+ id: true,
},
},
},
},
- });
-
- if (user.rolle === Enums.BenutzerRolle.USER) {
- await sendAusweisGespeichertMail(user, id)
- }
- return {
- id: createdAusweis.id,
- objekt_id: createdAusweis.aufnahme.objekt.id,
- aufnahme_id: createdAusweis.aufnahme.id,
- };
+ },
+ });
+
+ if (user.rolle === Enums.BenutzerRolle.USER) {
+ await sendAusweisGespeichertMail(user, id);
+ }
+ return {
+ id: ausweis.id,
+ objekt_id: ausweis.aufnahme.objekt.id,
+ aufnahme_id: ausweis.aufnahme.id,
+ };
},
});
export const GET = defineApiRoute({
meta: {
- description: "Gibt ein spezifisches Gebäude des Benutzers zurück.",
- tags: ["Gebäude"],
+ description:
+ "Gibt einen spezifischen Verbrauchsausweis Wohngebäude des Benutzers zurück.",
+ tags: ["Verbrauchsausweis Wohnen"],
headers: {
Authorization: {
description: "Ein gültiger Authentifizierungstoken",
diff --git a/src/pages/dashboard/admin/ausweise-pruefen/[page].astro b/src/pages/dashboard/admin/ausweise-pruefen/[page].astro
deleted file mode 100644
index 07a91020..00000000
--- a/src/pages/dashboard/admin/ausweise-pruefen/[page].astro
+++ /dev/null
@@ -1,69 +0,0 @@
----
-import { AufnahmeClient, BenutzerClient, ObjektClient, BildClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
-import UserLayout from "#layouts/DashboardLayout.astro";
-import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
-import { omit } from "#lib/helpers";
-import DashboardAusweisePruefenModule from "#modules/Dashboard/DashboardAusweisePruefenModule.svelte";
-import { Enums, prisma } from "#lib/server/prisma";
-import { createCaller } from "src/astro-typesafe-api-caller";
-
-const caller = createCaller(Astro)
-
-const params = Astro.params;
-const page = Number(params.page)
-
-
-let user: BenutzerClient;
-try {
- user = (await caller.user.self.GET.fetch(undefined, {
- headers: {
- Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
- }
-})) || {} as BenutzerClient;
-} catch(e) {
- return Astro.redirect("/auth/login")
-}
-
-if (user.rolle !== Enums.BenutzerRolle.ADMIN) {
- return Astro.redirect("/dashboard")
-}
-
-const ausweise = await prisma.verbrauchsausweisWohnen.findMany({
- where: {
- benutzer: {
- id: user.id
- }
- },
- include: {
- aufnahme: {
- include: {
- objekt: true,
- bilder: true,
- events: true
- }
- }
- },
- skip: (page - 1) * 10,
- take: 10
-})
-
-const totalPages = await prisma.verbrauchsausweisWohnen.count({
- where: {
- benutzer: {
- id: user.id
- }
- }
-})
-
-const reformedAusweise = ausweise.map(ausweis => ({
- ausweis: omit(ausweis, ["aufnahme"]) as VerbrauchsausweisWohnenClient,
- aufnahme: omit(omit(ausweis.aufnahme, ["events"]), ["objekt"]) as AufnahmeClient,
- objekt: omit(ausweis.aufnahme.objekt, ["bilder"]) as ObjektClient,
- bilder: ausweis.aufnahme.bilder as unknown as BildClient[],
- events: ausweis.aufnahme.events
-}))
----
-
-
-
-
\ No newline at end of file
diff --git a/src/pages/dashboard/admin/ausweise-pruefen/index.astro b/src/pages/dashboard/admin/ausweise-pruefen/index.astro
deleted file mode 100644
index 4eaa6708..00000000
--- a/src/pages/dashboard/admin/ausweise-pruefen/index.astro
+++ /dev/null
@@ -1,3 +0,0 @@
----
-return Astro.redirect("/dashboard/admin/ausweise-pruefen/1");
----
\ No newline at end of file
diff --git a/src/pages/dashboard/objekte/index.astro b/src/pages/dashboard/objekte/index.astro
index 77c97617..2985d835 100644
--- a/src/pages/dashboard/objekte/index.astro
+++ b/src/pages/dashboard/objekte/index.astro
@@ -50,9 +50,9 @@ if (user.rolle === Enums.BenutzerRolle.USER) {
// SELECT id, updated_at FROM "GEGNachweisGewerbe" WHERE created_at >= ${date} AND bestellt = ${true}
result =
- await prisma.$queryRaw`SELECT id, updated_at FROM "VerbrauchsausweisWohnen" UNION ALL
- SELECT id, updated_at FROM "VerbrauchsausweisGewerbe" UNION ALL
- SELECT id, updated_at FROM "BedarfsausweisWohnen" UNION ALL
+ await prisma.$queryRaw`SELECT id, updated_at FROM "VerbrauchsausweisWohnen" WHERE ausgestellt = ${false} AND bestellt = ${true} UNION ALL
+ SELECT id, updated_at FROM "VerbrauchsausweisGewerbe" WHERE ausgestellt = ${false} AND bestellt = ${true} UNION ALL
+ SELECT id, updated_at FROM "BedarfsausweisWohnen" WHERE ausgestellt = ${false} AND bestellt = ${true} UNION ALL
SELECT id, updated_at FROM "BedarfsausweisGewerbe" UNION ALL
SELECT id, updated_at FROM "GEGNachweisWohnen" UNION ALL
SELECT id, updated_at FROM "GEGNachweisGewerbe"
diff --git a/src/pages/energieausweis-erstellen/[ausweisart]/index.astro b/src/pages/energieausweis-erstellen/[ausweisart]/index.astro
new file mode 100644
index 00000000..b6cf3be6
--- /dev/null
+++ b/src/pages/energieausweis-erstellen/[ausweisart]/index.astro
@@ -0,0 +1,258 @@
+---
+import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
+import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
+import {
+ Aufnahme,
+ BedarfsausweisWohnen,
+ Bild,
+ Enums,
+ Objekt,
+ prisma,
+ VerbrauchsausweisGewerbe,
+ VerbrauchsausweisWohnen,
+} from "#lib/server/prisma";
+import {
+ getAufnahme,
+ getBedarfsausweisWohnen,
+ getBilder,
+ getObjekt,
+ getVerbrauchsausweisGewerbe,
+ getVerbrauchsausweisWohnen,
+} from "#lib/server/db";
+import { getCurrentUser } from "#lib/server/user";
+import { AusstellungsTyp } from "#lib/constants";
+import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
+import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
+import { getPrismaAusweisAdapter } from "#lib/server/ausweis";
+
+const ausweisart = Astro.params.ausweisart as string;
+
+if (
+ ausweisart !== "verbrauchsausweis-wohngebaeude" &&
+ ausweisart !== "verbrauchsausweis-gewerbe" &&
+ ausweisart !== "bedarfsausweis-wohngebaeude"
+) {
+ return Astro.redirect("/404");
+}
+
+const user = await getCurrentUser(Astro);
+
+const ausweis_id = Astro.url.searchParams.get("ausweis_id");
+const typ = Astro.url.searchParams.get("typ") as AusstellungsTyp;
+
+let ausweistyp =
+ (Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp) ||
+ Enums.AusweisTyp.Standard;
+
+let ausweis:
+ | VerbrauchsausweisWohnen
+ | VerbrauchsausweisGewerbe
+ | BedarfsausweisWohnen
+ | null = {} as VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
+let aufnahme: Aufnahme | null = {} as Aufnahme;
+let objekt: Objekt | null = {} as Objekt;
+let bilder: Bild[] = [];
+let loadFromDatabase = false;
+
+if (typ === AusstellungsTyp.Neuausstellung) {
+ if (!user) {
+ return Astro.redirect(`/auth/login?redirect=${Astro.url.toString()}`);
+ }
+
+ if (!ausweis_id) {
+ return Astro.redirect("/400");
+ }
+
+ const adapter = getPrismaAusweisAdapter(ausweis_id)
+
+ ausweis = await adapter?.findUnique({
+ where: {
+ id: ausweis_id
+ }
+ })
+
+ aufnahme = await prisma.aufnahme.findUnique({
+ where: {
+ id: ausweis?.aufnahme_id,
+ },
+ });
+
+ objekt = await prisma.objekt.findUnique({
+ where: {
+ id: aufnahme?.objekt_id,
+ },
+ });
+
+ if (
+ !ausweis ||
+ !aufnahme ||
+ !objekt ||
+ ((ausweis.benutzer_id !== user.id ||
+ aufnahme.benutzer_id !== user.id ||
+ objekt.benutzer_id !== user.id) && user.rolle !== Enums.BenutzerRolle.ADMIN)
+ ) {
+ return Astro.redirect("/405");
+ }
+
+ ausweis.id = null;
+ aufnahme.id = null;
+ delete aufnahme.erstellungsdatum;
+ ausweis.created_at = new Date()
+ ausweis.updated_at = new Date();
+ ausweis.alte_ausweis_id = null;
+ ausweis.ausgestellt = false;
+ ausweis.bestellt = false;
+ ausweis.kontrolldatei_angefragt = false;
+ ausweis.energieeffizienzklasse = null;
+ ausweis.ausstellungsdatum = null;
+ ausweis.ausweistyp = Enums.AusweisTyp.Standard;
+ ausweis.zurueckgestellt = false;
+ ausweis.storniert = false;
+ ausweis.rechnung_id = null;
+ ausweis.registriernummer = null;
+ // Die Daten sollen nicht aus dem localStorage genommen werden sonst kann es vorkommen, dass die ID noch besteht und der Vorgang nicht neu angelegt wird.
+ loadFromDatabase = true;
+} else if (typ === AusstellungsTyp.Speichern) {
+ if (!user) {
+ return Astro.redirect(`/auth/login?redirect=${Astro.url.toString()}`);
+ }
+
+ if (!ausweis_id) {
+ return Astro.redirect("/400");
+ }
+
+ if (ausweisart === "verbrauchsausweis-wohngebaeude") {
+ ausweis = await getVerbrauchsausweisWohnen(ausweis_id);
+ } else if (ausweisart === "verbrauchsausweis-gewerbe") {
+ ausweis = await getVerbrauchsausweisGewerbe(ausweis_id);
+ } else {
+ ausweis = await getBedarfsausweisWohnen(ausweis_id);
+ }
+
+ ausweistyp = ausweis.ausweistyp;
+
+ aufnahme = (await getAufnahme(ausweis.aufnahme_id)) as Aufnahme;
+
+ objekt = (await getObjekt(aufnahme.objekt_id)) as Objekt;
+
+ if (
+ !ausweis ||
+ !aufnahme ||
+ !objekt ||
+ ((ausweis.benutzer_id !== user.id ||
+ aufnahme.benutzer_id !== user.id ||
+ objekt.benutzer_id !== user.id) && user.rolle !== Enums.BenutzerRolle.ADMIN)
+ ) {
+ return Astro.redirect("/405");
+ }
+
+ bilder = await getBilder(aufnahme.id);
+ loadFromDatabase = true;
+} else if (typ === AusstellungsTyp.Alternativdokument) {
+ if (!user) {
+ return Astro.redirect(`/auth/login?redirect=${Astro.url.toString()}`);
+ }
+
+ if (!ausweis_id) {
+ return Astro.redirect("/400");
+ }
+
+ const adapter = getPrismaAusweisAdapter(ausweis_id)
+
+ ausweis = await adapter?.findUnique({
+ where: {
+ id: ausweis_id
+ }
+ })
+
+ aufnahme = await prisma.aufnahme.findUnique({
+ where: {
+ id: ausweis?.aufnahme_id,
+ },
+ });
+
+ objekt = await prisma.objekt.findUnique({
+ where: {
+ id: aufnahme?.objekt_id,
+ },
+ });
+
+ if (
+ !ausweis ||
+ !aufnahme ||
+ !objekt ||
+ ((ausweis.benutzer_id !== user.id ||
+ aufnahme.benutzer_id !== user.id ||
+ objekt.benutzer_id !== user.id) && user.rolle !== Enums.BenutzerRolle.ADMIN)
+ ) {
+ return Astro.redirect("/405");
+ }
+
+ ausweis.id = null;
+ delete aufnahme.erstellungsdatum;
+ ausweis.created_at = new Date()
+ ausweis.updated_at = new Date();
+ ausweis.alte_ausweis_id = null;
+ ausweis.ausgestellt = false;
+ ausweis.bestellt = false;
+ ausweis.kontrolldatei_angefragt = false;
+ ausweis.energieeffizienzklasse = null;
+ ausweis.ausstellungsdatum = null;
+ ausweis.ausweistyp = Enums.AusweisTyp.Standard;
+ ausweis.zurueckgestellt = false;
+ ausweis.storniert = false;
+ ausweis.rechnung_id = null;
+ ausweis.registriernummer = null;
+ // Die Daten sollen nicht aus dem localStorage genommen werden sonst kann es vorkommen, dass die ID noch besteht und der Vorgang nicht neu angelegt wird.
+ loadFromDatabase = true;
+}
+---
+
+
+ {
+ ausweisart === "verbrauchsausweis-wohngebaeude" && (
+
+ )
+ }
+ {
+ ausweisart === "verbrauchsausweis-gewerbe" && (
+
+ )
+ }
+ {
+ ausweisart === "bedarfsausweis-wohngebaeude" && (
+
+ )
+ }
+
diff --git a/src/pages/energieausweis-erstellen/[ausweisart]/produkt-uebersicht.astro b/src/pages/energieausweis-erstellen/[ausweisart]/produkt-uebersicht.astro
new file mode 100644
index 00000000..540bce23
--- /dev/null
+++ b/src/pages/energieausweis-erstellen/[ausweisart]/produkt-uebersicht.astro
@@ -0,0 +1,23 @@
+---
+import Layout from "#layouts/Layout.astro";
+import ProduktUebersichtBedarfsausweisWohnen from "#components/design/content/ProduktUebersichtBedarfsausweisWohnen.svelte";
+import ProduktUebersichtVerbrauchsausweisGewerbe from "#components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte";
+import ProduktUebersichtVerbrauchsausweisWohnen from "#components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte";
+
+const ausweisart = Astro.params.ausweisart;
+
+if (ausweisart !== "verbrauchsausweis-wohngebaeude" && ausweisart !== "verbrauchsausweis-gewerbe" && ausweisart !== "bedarfsausweis-wohngebaeude") {
+ return Astro.redirect("/404")
+}
+
+let title: string = "";
+if (ausweisart === "verbrauchsausweis-wohngebaeude") title = "Verbrauchsausweis Wohngebäude Produktübersicht";
+if (ausweisart === "verbrauchsausweis-gewerbe") title = "Verbrauchsausweis Gewerbe Produktübersicht";
+if (ausweisart === "bedarfsausweis-wohngebaeude") title = "Bedarfsausweis Wohngebäude Produktübersicht";
+---
+
+
+ {ausweisart === "verbrauchsausweis-wohngebaeude" && }
+ {ausweisart === "verbrauchsausweis-gewerbe" && }
+ {ausweisart === "bedarfsausweis-wohngebaeude" && }
+
\ No newline at end of file
diff --git a/src/pages/energieausweis-erstellen/bedarfsausweis-wohngebaeude/index.astro b/src/pages/energieausweis-erstellen/bedarfsausweis-wohngebaeude/index.astro
deleted file mode 100644
index 6bae0ec2..00000000
--- a/src/pages/energieausweis-erstellen/bedarfsausweis-wohngebaeude/index.astro
+++ /dev/null
@@ -1,90 +0,0 @@
----
-
-import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
-import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
-import { Aufnahme, BedarfsausweisWohnen, Bild, Enums, Objekt } from "#lib/server/prisma";
-import { getAufnahme, getObjekt, getBilder, getBedarfsausweisWohnen } from "#lib/server/db";
-import { getCurrentUser } from "#lib/server/user";
-
-const id = Astro.url.searchParams.get("id");
-const aufnahme_id = Astro.url.searchParams.get("aufnahme")
-let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
-
-let ausweis: BedarfsausweisWohnen = {} as BedarfsausweisWohnen;
-let aufnahme: Aufnahme = {} as Aufnahme;
-let objekt: Objekt = {} as Objekt;
-let bilder: Bild[] = []
-
-const user = await getCurrentUser(Astro)
-
-if (id) {
- if (!user) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- ausweis = await getBedarfsausweisWohnen(id) as BedarfsausweisWohnen
- ausweistyp = ausweis.ausweistyp;
-
- if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
- // Der Ausweis scheint nicht zu existieren.
- // Wir leiten auf die generische Ausweisseite ohne ID weiter.
- return Astro.redirect(
- "/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
- );
- }
-
- aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
-
- if (!aufnahme) {
- // Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
- return Astro.redirect(
- "/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
- );
- }
-
- objekt = await getObjekt(aufnahme.objekt_id) as Objekt
-
- if (!objekt) {
- // Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
- return Astro.redirect(
- "/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
- );
- }
-
- bilder = await getBilder(aufnahme.id);
-} else if (aufnahme_id) {
- if (!user) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- aufnahme = await getAufnahme(aufnahme_id) as Aufnahme
-
- if (!aufnahme) {
- // Die Aufnahme existiert wohl nicht.
- return Astro.redirect(
- "/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
- );
- }
-
- objekt = await getObjekt(aufnahme.objekt_id) as Objekt
-
- if (!objekt) {
- // Das Objekt existiert nicht.
- return Astro.redirect(
- "/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
- );
- }
-}
-
-console.log(ausweistyp);
-
-
-
----
-
-
-
\ No newline at end of file
diff --git a/src/pages/energieausweis-erstellen/bedarfsausweis-wohngebaeude/produkt-uebersicht.astro b/src/pages/energieausweis-erstellen/bedarfsausweis-wohngebaeude/produkt-uebersicht.astro
deleted file mode 100644
index 34126951..00000000
--- a/src/pages/energieausweis-erstellen/bedarfsausweis-wohngebaeude/produkt-uebersicht.astro
+++ /dev/null
@@ -1,13 +0,0 @@
----
-import Layout from "#layouts/Layout.astro";
-import ProduktUebersichtBedarfsausweisWohnen from "#components/design/content/ProduktUebersichtBedarfsausweisWohnen.svelte";
----
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/pages/energieausweis-erstellen/bezahlung.astro b/src/pages/energieausweis-erstellen/bezahlung.astro
index ef1a437c..48fda87c 100644
--- a/src/pages/energieausweis-erstellen/bezahlung.astro
+++ b/src/pages/energieausweis-erstellen/bezahlung.astro
@@ -3,10 +3,11 @@ import { getAusweisartFromId } from "#components/Ausweis/types";
import AusweisLayoutPruefung from "#layouts/AusweisLayoutPruefung.astro";
import { getPrismaAusweisAdapter } from "#lib/server/ausweis";
import { Enums } from "#lib/server/prisma";
-import { getCurrentUser } from "#lib/server/user";
+import { getCurrentUser, getOtherUser } from "#lib/server/user";
import KundendatenModule from "#modules/KundendatenModule.svelte";
import { PaymentStatus } from "@mollie/api-client";
import { AusweisTyp } from "src/generated/enums";
+import { BenutzerClient } from "#components/Ausweis/types.js";
const uid = Astro.url.searchParams.get("uid")
@@ -45,8 +46,16 @@ if (!ausweis) {
if (ausweis.rechnung.status === PaymentStatus.paid) {
return Astro.redirect("/dashboard")
}
+
+let impersonatedUser: Partial | null = null;
+
+if (user){
+ if (user.id !== ausweis.benutzer_id && ausweis.benutzer_id !== undefined){
+ impersonatedUser = await getOtherUser(Astro, ausweis.benutzer_id) || {}
+ }
+}
---
-
+
diff --git a/src/pages/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro b/src/pages/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro
deleted file mode 100644
index 80ff48c2..00000000
--- a/src/pages/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro
+++ /dev/null
@@ -1,86 +0,0 @@
----
-import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
-import { AufnahmeClient, ObjektClient, BildClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types";
-import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte";
-import { Aufnahme, Enums, Objekt, VerbrauchsausweisGewerbe } from "#lib/server/prisma";
-import { getAufnahme, getObjekt, getBilder, getVerbrauchsausweisGewerbe } from "#lib/server/db";
-import { getCurrentUser } from "#lib/server/user";
-
-const id = Astro.url.searchParams.get("id");
-const aufnahme_id = Astro.url.searchParams.get("aufnahme")
-let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
-
-let ausweis: VerbrauchsausweisGewerbeClient = {} as VerbrauchsausweisGewerbeClient;
-let aufnahme: AufnahmeClient = {} as AufnahmeClient;
-let objekt: ObjektClient = {} as ObjektClient;
-let bilder: BildClient[] = []
-
-const user = await getCurrentUser(Astro)
-
-if (id) {
- if (!user) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- ausweis = await getVerbrauchsausweisGewerbe(id) as VerbrauchsausweisGewerbe
- ausweistyp = ausweis.ausweistyp;
-
- if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
- // Der Ausweis scheint nicht zu existieren.
- // Wir leiten auf die generische Ausweisseite ohne ID weiter.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-gewerbe"
- );
- }
-
- aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
-
- if (!aufnahme) {
- // Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-gewerbe"
- );
- }
-
- objekt = await getObjekt(aufnahme.objekt_id) as Objekt
-
- if (!objekt) {
- // Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-gewerbe"
- );
- }
-
- bilder = await getBilder(aufnahme.id);
-} else if (aufnahme_id) {
- if (!user) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- aufnahme = await getAufnahme(aufnahme_id) as Aufnahme
-
- if (!aufnahme) {
- // Die Aufnahme existiert wohl nicht.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-gewerbe"
- );
- }
-
- objekt = await getObjekt(aufnahme.objekt_id) as Objekt
-
- if (!objekt) {
- // Das Objekt existiert nicht.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-gewerbe"
- );
- }
-}
----
-
-
-
-
\ No newline at end of file
diff --git a/src/pages/energieausweis-erstellen/verbrauchsausweis-gewerbe/produkt-uebersicht.astro b/src/pages/energieausweis-erstellen/verbrauchsausweis-gewerbe/produkt-uebersicht.astro
deleted file mode 100644
index f1b2e25d..00000000
--- a/src/pages/energieausweis-erstellen/verbrauchsausweis-gewerbe/produkt-uebersicht.astro
+++ /dev/null
@@ -1,13 +0,0 @@
----
-import Layout from "#layouts/Layout.astro";
-import ProduktUebersichtVerbrauchsausweisGewerbe from "#components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte";
----
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/datenblatt-verbrauchsausweis-wohngebaeude.astro b/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/datenblatt-verbrauchsausweis-wohngebaeude.astro
deleted file mode 100644
index 552d81e8..00000000
--- a/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/datenblatt-verbrauchsausweis-wohngebaeude.astro
+++ /dev/null
@@ -1,111 +0,0 @@
----
-import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
-import DatenblattVerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/DatenblattVerbrauchsausweisWohnen.svelte";
-import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
-import { createCaller } from "src/astro-typesafe-api-caller";
-import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
-import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
-import { Enums } from "#lib/server/prisma";
-
-const uid = Astro.url.searchParams.get("uid");
-const uid_aufnahme = Astro.url.searchParams.get("aufnahme")
-const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
-
-
-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.aufnahme._uid.bilder.GET.fetch(null, {
- headers: {
- authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
- },
- params: {
- uid: ausweis.uid_aufnahme
- }
- })
-
- if (!ausweis) {
- // Der Ausweis scheint nicht zu existieren.
- // Wir leiten auf die generische Ausweisseite ohne UID weiter.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
- );
- }
- } catch(e) {
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
- );
- }
-} else if (uid_aufnahme) {
- if (!valid) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- let { uid_objekt, ...result} = await caller.aufnahme._uid.GET.fetch(null, {
- headers: {
- authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
- },
- params: {
- uid: uid_aufnahme
- }
- })
-
- aufnahme = result;
-
- objekt = await caller.objekt._uid.GET.fetch(null, {
- headers: {
- authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
- },
- params: {
- uid: uid_objekt
- }
- })
-}
----
-
-
-
-
\ No newline at end of file
diff --git a/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro b/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro
deleted file mode 100644
index 89401e7c..00000000
--- a/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro
+++ /dev/null
@@ -1,85 +0,0 @@
----
-import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
-import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
-import { Aufnahme, Bild, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/server/prisma";
-import { getAufnahme, getBilder, getObjekt, getVerbrauchsausweisWohnen } from "#lib/server/db";
-import { getCurrentUser } from "#lib/server/user";
-
-const id = Astro.url.searchParams.get("id");
-const aufnahme_id = Astro.url.searchParams.get("aufnahme")
-let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
-
-let ausweis: VerbrauchsausweisWohnen = {} as VerbrauchsausweisWohnen;
-let aufnahme: Aufnahme = {} as Aufnahme;
-let objekt: Objekt = {} as Objekt;
-let bilder: Bild[] = []
-
-const user = await getCurrentUser(Astro)
-
-if (id) {
- if (!user) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- ausweis = await getVerbrauchsausweisWohnen(id) as VerbrauchsausweisWohnen
- ausweistyp = ausweis.ausweistyp;
-
- if (!ausweis || (ausweis.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) {
- // Der Ausweis scheint nicht zu existieren.
- // Wir leiten auf die generische Ausweisseite ohne ID weiter.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
- );
- }
-
- aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
-
- if (!aufnahme) {
- // Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
- );
- }
-
- objekt = await getObjekt(aufnahme.objekt_id) as Objekt
-
- if (!objekt) {
- // Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
- );
- }
-
- bilder = await getBilder(aufnahme.id);
-} else if (aufnahme_id) {
- if (!user) {
- return Astro.redirect(
- `/auth/login?redirect=${Astro.url.toString()}`
- );
- }
-
- aufnahme = await getAufnahme(aufnahme_id) as Aufnahme
-
- if (!aufnahme) {
- // Die Aufnahme existiert wohl nicht.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
- );
- }
-
- objekt = await getObjekt(aufnahme.objekt_id) as Objekt
-
- if (!objekt) {
- // Das Objekt existiert nicht.
- return Astro.redirect(
- "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
- );
- }
-}
----
-
-
-
-
diff --git a/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/produkt-uebersicht.astro b/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/produkt-uebersicht.astro
deleted file mode 100644
index 80a4fe17..00000000
--- a/src/pages/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/produkt-uebersicht.astro
+++ /dev/null
@@ -1,13 +0,0 @@
----
-import Layout from "#layouts/Layout.astro";
-import ProduktUebersichtVerbrauchsausweisWohnen from "#components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte";
----
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/pages/immowelt-old/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/index.astro b/src/pages/immowelt-old/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/index.astro
index 96a97daa..99de3256 100644
--- a/src/pages/immowelt-old/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/index.astro
+++ b/src/pages/immowelt-old/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import { AufnahmeClient, GEGNachweisWohnenClient, ObjektClient, UnterlageClient, UploadedGebaeudeBild } from "#components/Ausweis/types";
import { createCaller } from "src/astro-typesafe-api-caller";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
diff --git a/src/pages/immowelt-old/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/produkt-uebersicht.astro b/src/pages/immowelt-old/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/produkt-uebersicht.astro
index 988aec09..ca6df85c 100644
--- a/src/pages/immowelt-old/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/produkt-uebersicht.astro
+++ b/src/pages/immowelt-old/angebot-anfragen/bedarfsausweis-gewerbe-anfragen/produkt-uebersicht.astro
@@ -1,5 +1,5 @@
---
-import Layout from "#layouts/AusweisLayoutDaten_partner.astro";
+import Layout from "#layouts/AusweisLayoutDatenPartner.astro";
import ProduktUebersichtBedarfsausweisGewerbe from "#components/design/content/ProduktUebersichtBedarfsausweisGewerbe.svelte";
---
diff --git a/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-gewerbe-anfragen/index.astro b/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-gewerbe-anfragen/index.astro
index 3efede6b..fb57cda9 100644
--- a/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-gewerbe-anfragen/index.astro
+++ b/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-gewerbe-anfragen/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import { AufnahmeClient, GEGNachweisWohnenClient, ObjektClient, UnterlageClient, UploadedGebaeudeBild } from "#components/Ausweis/types";
import { createCaller } from "src/astro-typesafe-api-caller";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
diff --git a/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-gewerbe-anfragen/produkt-uebersicht.astro b/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-gewerbe-anfragen/produkt-uebersicht.astro
index fc482bab..298905ac 100644
--- a/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-gewerbe-anfragen/produkt-uebersicht.astro
+++ b/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-gewerbe-anfragen/produkt-uebersicht.astro
@@ -1,5 +1,5 @@
---
-import Layout from "#layouts/AusweisLayoutDaten_partner.astro";
+import Layout from "#layouts/AusweisLayoutDatenPartner.astro";
import ProduktUebersichtGEGNachweisGewerbe from "#components/design/content/ProduktUebersichtGEGNachweisGewerbe.svelte";
---
diff --git a/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-wohnen-anfragen/index.astro b/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-wohnen-anfragen/index.astro
index 6190484c..7afa9be9 100644
--- a/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-wohnen-anfragen/index.astro
+++ b/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-wohnen-anfragen/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import { AufnahmeClient, GEGNachweisWohnenClient, ObjektClient, UnterlageClient, UploadedGebaeudeBild } from "#components/Ausweis/types";
import { createCaller } from "src/astro-typesafe-api-caller";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
diff --git a/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-wohnen-anfragen/produkt-uebersicht.astro b/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-wohnen-anfragen/produkt-uebersicht.astro
index e10294a3..81b3d502 100644
--- a/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-wohnen-anfragen/produkt-uebersicht.astro
+++ b/src/pages/immowelt-old/angebot-anfragen/geg-nachweis-wohnen-anfragen/produkt-uebersicht.astro
@@ -1,5 +1,5 @@
---
-import Layout from "#layouts/AusweisLayoutDaten_partner.astro";
+import Layout from "#layouts/AusweisLayoutDatenPartner.astro";
import ProduktUebersichtGEGNachweisWohnen from "#components/design/content/ProduktUebersichtGEGNachweisWohnen.svelte";
---
diff --git a/src/pages/immowelt-old/energieausweis-erstellen/bedarfsausweis-wohngebaeude/index.astro b/src/pages/immowelt-old/energieausweis-erstellen/bedarfsausweis-wohngebaeude/index.astro
index a532961a..96d1a944 100644
--- a/src/pages/immowelt-old/energieausweis-erstellen/bedarfsausweis-wohngebaeude/index.astro
+++ b/src/pages/immowelt-old/energieausweis-erstellen/bedarfsausweis-wohngebaeude/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
import { AufnahmeClient, BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
import { createCaller } from "src/astro-typesafe-api-caller";
diff --git a/src/pages/immowelt-old/energieausweis-erstellen/bedarfsausweis-wohngebaeude/produkt-uebersicht.astro b/src/pages/immowelt-old/energieausweis-erstellen/bedarfsausweis-wohngebaeude/produkt-uebersicht.astro
index 3ea62094..d04ee56d 100644
--- a/src/pages/immowelt-old/energieausweis-erstellen/bedarfsausweis-wohngebaeude/produkt-uebersicht.astro
+++ b/src/pages/immowelt-old/energieausweis-erstellen/bedarfsausweis-wohngebaeude/produkt-uebersicht.astro
@@ -1,5 +1,5 @@
---
-import Layout from "#layouts/AusweisLayoutDaten_partner.astro";
+import Layout from "#layouts/AusweisLayoutDatenPartner.astro";
import ProduktUebersichtBedarfsausweisWohnen from "#components/design/content/ProduktUebersichtBedarfsausweisWohnen.svelte";
---
diff --git a/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro b/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro
index 90793f9d..7b7048eb 100644
--- a/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro
+++ b/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types";
import { createCaller } from "src/astro-typesafe-api-caller";
import { inferOutput } from "astro-typesafe-api/client";
diff --git a/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-gewerbe/produkt-uebersicht.astro b/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-gewerbe/produkt-uebersicht.astro
index 91075a82..19f20e9e 100644
--- a/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-gewerbe/produkt-uebersicht.astro
+++ b/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-gewerbe/produkt-uebersicht.astro
@@ -1,5 +1,5 @@
---
-import Layout from "#layouts/AusweisLayoutDaten_partner.astro";
+import Layout from "#layouts/AusweisLayoutDatenPartner.astro";
import ProduktUebersichtVerbrauchsausweisGewerbe from "#components/design/content/ProduktUebersichtVerbrauchsausweisGewerbe.svelte";
---
diff --git a/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro b/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro
index a0b1cf47..fb4ff665 100644
--- a/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro
+++ b/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/index.astro
@@ -1,5 +1,5 @@
---
-import AusweisLayout from "#layouts/AusweisLayoutDaten_partner.astro";
+import AusweisLayout from "#layouts/AusweisLayoutDatenPartner.astro";
import VerbrauchsausweisWohnenModule from "#modules/VerbrauchsausweisWohnen/VerbrauchsausweisWohnenModule.svelte";
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
import { createCaller } from "src/astro-typesafe-api-caller";
diff --git a/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/produkt-uebersicht.astro b/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/produkt-uebersicht.astro
index 86c31476..7a342c00 100644
--- a/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/produkt-uebersicht.astro
+++ b/src/pages/immowelt-old/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/produkt-uebersicht.astro
@@ -1,5 +1,5 @@
---
-import Layout from "#layouts/AusweisLayoutDaten_partner.astro";
+import Layout from "#layouts/AusweisLayoutDatenPartner.astro";
import ProduktUebersichtVerbrauchsausweisWohnen from "#components/design/content/ProduktUebersichtVerbrauchsausweisWohnen.svelte";
---
diff --git a/src/pages/kundendaten.astro b/src/pages/kundendaten.astro
index a06a1b86..7b5a31b6 100644
--- a/src/pages/kundendaten.astro
+++ b/src/pages/kundendaten.astro
@@ -3,9 +3,10 @@
import KundendatenModule from "#modules/KundendatenModule.svelte";
import AusweisLayout from "#layouts/AusweisLayoutPruefung.astro";
import { Enums } from "#lib/client/prisma";
-import { getCurrentUser } from "#lib/server/user";
+import { getCurrentUser, getOtherUser } from "#lib/server/user";
import { getAusweisartFromId } from "#components/Ausweis/types";
import { getAufnahme, getBedarfsausweisWohnen, getBilder, getObjekt, getRechnung, getUnterlagen, getVerbrauchsausweisGewerbe, getVerbrauchsausweisWohnen } from "#lib/server/db";
+import { BenutzerClient } from "#components/Ausweis/types.js";
// Man sollte nur auf diese Seite kommen, wenn ein Ausweis bereits vorliegt und in der Datenbank abgespeichert wurde.
@@ -40,6 +41,7 @@ if (!params.has("ausweis") || !params.has("aufnahme") || !params.has("objekt") |
objekt = await getObjekt(aufnahme?.objekt_id)
bilder = await getBilder(ausweis.aufnahme_id)
unterlagen = await getUnterlagen(ausweis.aufnahme_id)
+
if (ausweis.rechnung_id) {
rechnung = await getRechnung(ausweis.rechnung_id)
}
@@ -56,6 +58,10 @@ if (!params.has("ausweis") || !params.has("aufnahme") || !params.has("objekt") |
bilder = JSON.parse(params.get("bilder") || "");
unterlagen = JSON.parse(params.get("unterlagen") || "[]")
partner_code = params.get("partner_code") || ""
+
+ if (ausweis.rechnung_id) {
+ rechnung = await getRechnung(ausweis.rechnung_id)
+ }
if (!ausweisart || !Object.keys(Enums.Ausweisart).includes(ausweisart)) {
throw new Error()
@@ -65,9 +71,16 @@ if (!params.has("ausweis") || !params.has("aufnahme") || !params.has("objekt") |
}
}
+let impersonatedUser: Partial | null = null;
+
+if (user){
+ if (user.id !== ausweis.benutzer_id && ausweis.benutzer_id !== undefined){
+ impersonatedUser = await getOtherUser(Astro, ausweis.benutzer_id) || {}
+ }
+}
---
-
+
diff --git a/src/pages/pdf/ansichtsausweis.ts b/src/pages/pdf/ansichtsausweis.ts
index 5b4028f2..84e1623b 100644
--- a/src/pages/pdf/ansichtsausweis.ts
+++ b/src/pages/pdf/ansichtsausweis.ts
@@ -45,14 +45,23 @@ export const GET: APIRoute = async (Astro) => {
user = await getCurrentUser(Astro)
let pdf: Uint8Array | null = null;
- if (/[A-Z]{2}[0-9]{8}/.test(ausweis.id)) {
- const id = ausweis.id.match(/[A-Z]{2}([0-9]{8})/) as RegExpMatchArray
- // Dieser Ausweis wurde mit der alten Version erstellt, das PDF sollte bereits existieren.
- pdf = await getS3File("ibc-pdfs", `ID_${id[1]}_Energieausweis.pdf`)
- } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
- pdf = await pdfVerbrauchsausweisWohnen(ausweis as VerbrauchsausweisWohnenClient, aufnahme, objekt, bilder, user, !ausweis.ausgestellt);
- } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
- pdf = await pdfVerbrauchsausweisGewerbe(ausweis as VerbrauchsausweisGewerbeClient, aufnahme, objekt, bilder, user, !ausweis.ausgestellt);
+
+ if (ausweis.ausgestellt) {
+ if (/[A-Z]{2}[0-9]{8}/.test(ausweis.id)) {
+ const id = ausweis.id.match(/[A-Z]{2}([0-9]{8})/) as RegExpMatchArray
+ // Dieser Ausweis wurde mit der alten Version erstellt, das PDF sollte bereits existieren.
+ pdf = await getS3File("ibc-pdfs", `ID_${id[1]}_Energieausweis.pdf`)
+ } else {
+ pdf = await getS3File("ibc-pdfs", `ID_${ausweis.id}_Energieausweis.pdf`)
+ }
+ } else {
+ if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
+ pdf = await pdfVerbrauchsausweisWohnen(ausweis as VerbrauchsausweisWohnenClient, aufnahme, objekt, bilder, user, !ausweis.ausgestellt);
+ } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
+ pdf = await pdfVerbrauchsausweisGewerbe(ausweis as VerbrauchsausweisGewerbeClient, aufnahme, objekt, bilder, user, !ausweis.ausgestellt);
+ } else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
+ //todo
+ }
}
return new Response(pdf, {
diff --git a/src/testing/ausweise-fix-rechnungsid.ts b/src/testing/ausweise-fix-rechnungsid.ts
index 4d9aced7..a64e718c 100644
--- a/src/testing/ausweise-fix-rechnungsid.ts
+++ b/src/testing/ausweise-fix-rechnungsid.ts
@@ -2,7 +2,7 @@ import { Enums, prisma } from "#lib/server/prisma.js";
import Papa from "papaparse"
import * as fs from "fs";
import { fileURLToPath } from "url";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
const path = fileURLToPath(new URL("./rechnungen.csv", import.meta.url));
diff --git a/src/testing/daten-umziehen.ts b/src/testing/daten-umziehen.ts
index 915d2f40..48c3a5ce 100644
--- a/src/testing/daten-umziehen.ts
+++ b/src/testing/daten-umziehen.ts
@@ -4,7 +4,7 @@ import * as fs from "fs";
import { fileURLToPath } from "url";
import { hashPassword } from "#lib/password.js";
import Papa from "papaparse";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
import { tryCatch } from "#lib/tryCatch.js";
@@ -78,7 +78,7 @@ Papa.parse(file, {
console.log(`Missing user ${user_id}`);
if (email) {
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.User);
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.User);
user = await prisma.benutzer.create({
data: {
@@ -104,7 +104,7 @@ Papa.parse(file, {
}
}
- const objekt_id = generatePrefixedId(9, VALID_UUID_PREFIXES.Objekt);
+ const objekt_id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.Objekt);
const [objekt, objekt_error] = await tryCatch(prisma.objekt.create({
data: {
id: objekt_id,
@@ -137,7 +137,7 @@ Papa.parse(file, {
continue;
}
- const aufnahme_id = generatePrefixedId(
+ const aufnahme_id = generateIDWithPrefix(
9,
VALID_UUID_PREFIXES.Aufnahme
);
@@ -263,7 +263,7 @@ Papa.parse(file, {
heizung: Enums.BilderKategorie.Heizung,
};
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.Bild);
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.Bild);
const img = await prisma.bild.create({
data: {
id,
diff --git a/src/testing/nutzer-fix-alteid.ts b/src/testing/nutzer-fix-alteid.ts
index 4eca767c..5adfdf3f 100644
--- a/src/testing/nutzer-fix-alteid.ts
+++ b/src/testing/nutzer-fix-alteid.ts
@@ -2,7 +2,7 @@ import { Enums, prisma } from "#lib/server/prisma.js";
import Papa from "papaparse"
import * as fs from "fs";
import { fileURLToPath } from "url";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
const path = fileURLToPath(new URL("./users.csv", import.meta.url));
diff --git a/src/testing/nutzer-umziehen.ts b/src/testing/nutzer-umziehen.ts
index 157e0e6b..a66ac642 100644
--- a/src/testing/nutzer-umziehen.ts
+++ b/src/testing/nutzer-umziehen.ts
@@ -2,7 +2,7 @@ import { Enums, prisma } from "#lib/server/prisma.js";
import Papa from "papaparse"
import * as fs from "fs";
import { fileURLToPath } from "url";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
const path = fileURLToPath(new URL("./users.csv", import.meta.url));
@@ -36,7 +36,7 @@ Papa.parse(file, {
}
try {
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.User)
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.User)
await prisma.benutzer.create({
data: {
diff --git a/src/testing/rechnungen-umziehen.ts b/src/testing/rechnungen-umziehen.ts
index de56470a..51fe974b 100644
--- a/src/testing/rechnungen-umziehen.ts
+++ b/src/testing/rechnungen-umziehen.ts
@@ -2,7 +2,7 @@ import { Enums, Prisma, prisma } from "#lib/server/prisma.js";
import Papa from "papaparse"
import * as fs from "fs";
import { fileURLToPath } from "url";
-import { generatePrefixedId } from "#lib/db.js";
+import { generateIDWithPrefix } from "#lib/db.js";
import { VALID_UUID_PREFIXES } from "#lib/constants.js";
import moment from "moment";
@@ -45,7 +45,7 @@ Papa.parse(file, {
}
try {
- const id = generatePrefixedId(9, VALID_UUID_PREFIXES.Rechnung)
+ const id = generateIDWithPrefix(9, VALID_UUID_PREFIXES.Rechnung)
const services: Enums.Service[] = []
diff --git a/tests/bilder/upload.test.ts b/tests/bilder/upload.test.ts
deleted file mode 100644
index 7145fb91..00000000
--- a/tests/bilder/upload.test.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-import { Enums } from "#lib/client/prisma";
-import { test, describe, expect } from "bun:test";
-import {faker} from "@faker-js/faker";
-// import { client } from "src/trpc";
-import { Buffer } from 'buffer';
-
-describe("Bilder hochladen", async () => {
-
- // Erstmal lesen wir ein Bild ein, mit dem wir testen können
- const arrayBuffer = await Bun.file("cypress/fixtures/images/daemmung/1.jpeg").arrayBuffer();
- const buffer = Buffer.from(arrayBuffer)
- const base64 = buffer.toString("base64");
-
- // Im Browser hätten wir noch einen Mime Type vor dem base64-String
- const base64WithMimeType = "data:image/jpeg;base64," + base64;
-
- // Wir müssen uns einloggen, da wir für das Hochladen von Bildern einen Access Token brauchen
- const email = faker.internet.email();
- const passwort = faker.internet.password();
- const signUpResponse = await client.v1.benutzer.erstellen.mutate({
- email,
- passwort,
- name: faker.person.lastName(),
- vorname: faker.person.firstName(),
- })
-
- // Jetzt loggen wir uns ein
- const loginResponse = await client.v1.benutzer.getRefreshToken.query({
- email,
- passwort,
- })
-
- // Wir brauchen den Access Token
- const accessToken = loginResponse.accessToken;
-
- // Der Default Client versucht den Cookie zu lesen, das geht hier natürlich nicht
- const newClient = createTRPCProxyClient({
- links: [
- httpBatchLink({
- url: 'http://localhost:3001/',
- headers() {
- if (!accessToken) return {};
-
- const buffer = Buffer.from(accessToken, 'utf-8');
- const base64 = buffer.toString('base64')
-
- return {
- 'Authorization': `Bearer ${base64}`,
- };
- },
- }),
- ],
- });
-
- // Wir brauchen noch ein Gebäude, damit wir das Bild hochladen können
- const gebaeude = await newClient.v1.gebaeude.erstellen.mutate({})
-
- // Jetzt laden wir das Bild hoch
- const image = await newClient.v1.bilder.upload.mutate({
- base64: base64WithMimeType,
- gebaeude_uid: gebaeude.uid,
- kategorie: Enums.BilderKategorie.Daemmung,
- })
-
- test("sollte ohne Fehler hochladen", async () => {
- expect(image).toHaveProperty("uid");
- expect(image.uid).toBeTypeOf("string")
- })
-
- test("bild sollte in der Datenbank und abrufbar sein", async () => {
- const bild = await newClient.v1.bilder.getBase64.query({ uid: image.uid });
-
- expect(bild).toHaveProperty("base64");
- expect(bild.data).toBeTypeOf("string");
- expect(bild.data).toEqual(base64);
- })
-
- test("bild sollte entfernbar sein", async () => {
- const response = await newClient.v1.bilder.entfernen.mutate({ uid: image.uid });
-
- expect(response).toBeEmpty();
-
- // Einmal nachschauen ob es tatächlich gelöscht wurde
- expect(newClient.v1.bilder.getBase64.query({ uid: image.uid })).rejects.toThrow()
- })
-
-});
\ No newline at end of file
diff --git a/tests/verbrauchsausweis-wohnen/ausweis-pdf.test.ts b/tests/verbrauchsausweis-wohnen/ausweis-pdf.test.ts
deleted file mode 100644
index a75b2b86..00000000
--- a/tests/verbrauchsausweis-wohnen/ausweis-pdf.test.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { test, describe, expect } from "bun:test";
-import { pdfVerbrauchsausweisWohnen } from "#lib/pdf/pdfVerbrauchsausweisWohnen.js";
-import { fakeVerbrauchsausweisWohnen } from "#lib/faker.js";
-import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
-
-
-describe('Verbrauchsausweis Wohnen PDF', async () => {
- const ausweis: VerbrauchsausweisWohnenClient = fakeVerbrauchsausweisWohnen(42);
-
- test("Ausweis Erstellung", async () => {
- const pdf = await pdfVerbrauchsausweisWohnen(ausweis);
-
- // Wir können das PDF nicht richtig überprüfen, dafür brauchen wir manuelle Tests
- // Allerdings können wir überprüfen, ob das PDF erstellt wurde.
- expect(pdf).toBeDefined();
- expect(pdf).toBeInstanceOf(Uint8Array);
- expect(pdf.length).toBeGreaterThan(0);
- })
-})
\ No newline at end of file
diff --git a/tests/verbrauchsausweis-wohnen/energieverbrauch.test.ts b/tests/verbrauchsausweis-wohnen/energieverbrauch.test.ts
deleted file mode 100644
index f46c9ff9..00000000
--- a/tests/verbrauchsausweis-wohnen/energieverbrauch.test.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import { test, describe, expect } from "bun:test";
-import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
-import { importVerbrauchsausweisWohnenAltesSystem, verbrauchsausweisWohnenImportTranslate } from "#lib/altes-system/import.js";
-
-describe('Energieverbrauch', async () => {
- const request = await importVerbrauchsausweisWohnenAltesSystem();
-
- for (const ausweis of request.data) {
- if (ausweis.ausweisart !== "VA" || !ausweis.objekt_plz) {
- continue;
- }
-
- const ausweisNeu = verbrauchsausweisWohnenImportTranslate(ausweis);
- const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweisNeu);
- const berechnungenAlt = ausweis.calculations;
-
- let missingKlimafaktoren: boolean = false;
-
- test("Klimafaktoren", async () => {
- console.log("PLZ: " + ausweisNeu.aufnahme.plz)
- console.log("Startdatum: " + ausweisNeu.startdatum)
- expect(berechnungen?.klimafaktoren).toHaveLength(3)
- try {
- expect(berechnungen?.klimafaktoren.map(x => x.klimafaktor)).toEqual(berechnungenAlt.klimafaktoren)
- } catch(e) {
- missingKlimafaktoren = true;
- }
- })
-
-
- test.skipIf(missingKlimafaktoren)("Endenergieverbrauch", async () => {
- expect(berechnungen?.endEnergieVerbrauchGesamt).toBeCloseTo(berechnungenAlt.endEnergieVerbrauchGesamt, 0)
- })
-
- test.skipIf(missingKlimafaktoren)("Primärenergieverbrauch", async () => {
- expect(berechnungen?.primaerEnergieVerbrauchGesamt).toBeCloseTo(berechnungenAlt.primaerEnergieVerbrauchGesamt, 0)
- })
- }
-})
\ No newline at end of file