3480 lines
114 KiB
TypeScript
3480 lines
114 KiB
TypeScript
// 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(),
|
|
})
|
|
)
|
|
);
|