@open3cl/engine 1.11.3 → 1.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/10_besoin_fr.spec.js +1 -1
- package/10_clim.js +1 -1
- package/10_clim.spec.js +5 -9
- package/11_besoin_ecs.spec.js +1 -1
- package/11_ecs.js +2 -1
- package/11_ecs.spec.js +2 -2
- package/11_nadeq.js +1 -0
- package/11_nadeq.spec.js +1 -1
- package/12.4_pac.js +5 -3
- package/12.4_pac.spec.js +10 -18
- package/13.2_generateur_combustion.js +19 -16
- package/13.2_generateur_combustion.spec.js +10 -10
- package/13.2_generateur_combustion_bouilleur.js +5 -2
- package/13.2_generateur_combustion_bouilleur.spec.js +1 -1
- package/13.2_generateur_combustion_ch.js +8 -7
- package/13.2_generateur_combustion_ch.spec.js +7 -7
- package/13.2_generateur_combustion_chaudiere.js +5 -2
- package/13.2_generateur_combustion_chaudiere.spec.js +2 -2
- package/13.2_generateur_combustion_pdim.js +6 -6
- package/13.2_generateur_combustion_pdim.spec.js +1 -1
- package/13.2_generateur_combustion_pn.spec.js +1 -1
- package/13.2_generateur_pac.js +4 -1
- package/13.2_generateur_pac.spec.js +1 -1
- package/13_rendement_distribution_ecs.spec.js +1 -1
- package/14_generateur_ecs.js +2 -1
- package/14_generateur_ecs.spec.js +4 -4
- package/15_conso_aux.js +19 -17
- package/15_conso_aux.spec.js +8 -8
- package/16.2_production_enr.js +4 -3
- package/16.2_production_enr.spec.js +1 -1
- package/16_conso_eclairage.spec.js +1 -1
- package/2021_04_13_confort_ete.spec.js +1 -1
- package/2021_04_13_qualite_isolation.js +1 -1
- package/2021_04_13_qualite_isolation.spec.js +2 -2
- package/3.1_b.spec.js +1 -1
- package/3.2.1_mur.js +10 -9
- package/3.2.1_mur.spec.js +11 -19
- package/3.2.2_plancher_bas.js +4 -3
- package/3.2.2_plancher_bas.spec.js +10 -20
- package/3.2.3_plancher_haut.js +1 -1
- package/3.2.3_plancher_haut.spec.js +2 -2
- package/3.3.1.4_porte.js +1 -1
- package/3.3.1.4_porte.spec.js +2 -2
- package/3.3_baie_vitree.js +2 -2
- package/3.3_baie_vitree.spec.js +3 -3
- package/3.4_pont_thermique.js +6 -4
- package/3.4_pont_thermique.spec.js +7 -7
- package/3_deperdition.js +1 -0
- package/3_deperdition.spec.js +3 -3
- package/4_ventilation.js +2 -2
- package/4_ventilation.spec.js +1 -1
- package/5_conso_ventilation.spec.js +1 -1
- package/6.1_apport_gratuit.spec.js +2 -2
- package/6.2_surface_sud_equivalente.js +12 -9
- package/6.2_surface_sud_equivalente.spec.js +3 -3
- package/7_inertie.js +7 -4
- package/7_inertie.spec.js +1 -1
- package/8_intermittence.spec.js +1 -1
- package/9_besoin_ch.js +5 -3
- package/9_besoin_ch.spec.js +3 -3
- package/9_chauffage.js +12 -11
- package/9_chauffage.spec.js +7 -7
- package/9_conso_ch.spec.js +3 -3
- package/9_emetteur_ch.js +5 -5
- package/9_emetteur_ch.spec.js +1 -1
- package/9_generateur_ch.js +16 -13
- package/9_generateur_ch.spec.js +6 -6
- package/README.md +19 -19
- package/apport_et_besoin.spec.js +1 -1
- package/conso.js +18 -14
- package/conso.spec.js +3 -3
- package/core/assets/domain/synchronize-assets.js +2 -0
- package/core/assets/domain/synchronize-c1-tables.js +2 -0
- package/core/assets/domain/synchronize-dpe-ges-limit-values-tables.js +2 -0
- package/core/assets/domain/synchronize-enum-tables.js +2 -0
- package/core/assets/domain/synchronize-solicitations-tables.js +2 -0
- package/core/assets/domain/synchronize-valeur-tables.js +6 -0
- package/core/file/infrastructure/adapter/csv-parser.store.js +2 -1
- package/dpe-sanitizer.service.js +1 -0
- package/engine.js +2 -1
- package/enums.d.ts +1257 -0
- package/features/dpe/domain/models/baie-ets.model.ts +1 -1
- package/features/dpe/domain/models/baie-vitree.model.ts +6 -2
- package/features/dpe/domain/models/climatisation.model.ts +1 -1
- package/features/dpe/domain/models/dpe.model.ts +16 -23
- package/features/dpe/domain/models/ets.model.ts +1 -1
- package/features/dpe/domain/models/installation-chauffage.model.ts +54 -8
- package/features/dpe/domain/models/installation-ecs.model.ts +24 -6
- package/features/dpe/domain/models/mur.model.ts +1 -1
- package/features/dpe/domain/models/plancher.model.ts +1 -1
- package/features/dpe/domain/models/pont-thermique.model.ts +1 -1
- package/features/dpe/domain/models/porte.model.ts +1 -1
- package/features/dpe/domain/models/production-elec-enr.model.ts +1 -1
- package/features/dpe/domain/models/sortie.model.ts +1 -1
- package/features/dpe/domain/models/type-generateur.model.js +4 -3
- package/features/dpe/domain/models/type-habitation.model.js +8 -6
- package/features/dpe/domain/models/type-stockage.model.js +4 -3
- package/features/dpe/domain/models/type-ventilation.model.js +4 -3
- package/features/dpe/domain/models/ventilation.model.ts +1 -1
- package/features/dpe/infrastructure/ch/chTv.store.js +2 -2
- package/features/dpe/infrastructure/ecs/ecsTv.store.js +3 -3
- package/features/dpe/infrastructure/enveloppe/baieVitreeTv.store.js +1 -1
- package/features/dpe/infrastructure/froid/frTv.store.js +3 -3
- package/features/dpe/infrastructure/froid/frTv.store.spec.js +1 -1
- package/features/dpe/infrastructure/tv.store.js +1 -1
- package/features/engine/domain/apport_et_besoin/apport-et-besoin.service.js +3 -0
- package/features/engine/domain/apport_et_besoin/apport_gratuit/apport-gratuit.service.js +3 -1
- package/features/engine/domain/apport_et_besoin/ch/besoin-ch.service.js +3 -1
- package/features/engine/domain/apport_et_besoin/ch/perte-ch-recup.service.js +9 -3
- package/features/engine/domain/apport_et_besoin/ch/perte-ch-recup.service.spec.js +1 -1
- package/features/engine/domain/apport_et_besoin/ecs/besoin-ecs.service.js +2 -1
- package/features/engine/domain/apport_et_besoin/ecs/perte-ecs-recup.service.js +4 -1
- package/features/engine/domain/apport_et_besoin/froid/besoin-froid.service.js +3 -1
- package/features/engine/domain/apport_et_besoin/surface-sud-equivalente.service.js +7 -2
- package/features/engine/domain/apport_et_besoin/surface-sud-equivalente.service.spec.js +1 -1
- package/features/engine/domain/ch/emetteur-ch.service.js +3 -1
- package/features/engine/domain/ch/emetteur-ch.service.spec.js +1 -1
- package/features/engine/domain/ch/generateur-ch.service.js +4 -1
- package/features/engine/domain/ch/generateur-ch.service.spec.js +3 -3
- package/features/engine/domain/ch/installation-ch.service.js +2 -0
- package/features/engine/domain/conso/conso.service.js +2 -0
- package/features/engine/domain/conso/froid/conso-froid.service.js +5 -1
- package/features/engine/domain/contexte.builder.js +2 -0
- package/features/engine/domain/ecs/generateur-ecs.service.js +1 -0
- package/features/engine/domain/ecs/installation-ecs.service.js +3 -0
- package/features/engine/domain/engine.service.js +1 -0
- package/features/engine/domain/enveloppe/baie_vitree/deperdition-baie-vitree.service.js +4 -1
- package/features/engine/domain/enveloppe/deperdition-enveloppe.service.js +3 -0
- package/features/engine/domain/enveloppe/deperdition.service.js +8 -4
- package/features/engine/domain/enveloppe/espace_tampon/espace-tampon.service.js +4 -1
- package/features/engine/domain/enveloppe/mur/deperdition-mur.service.js +3 -1
- package/features/engine/domain/enveloppe/plancher_bas/deperdition-plancher-bas.service.js +3 -1
- package/features/engine/domain/enveloppe/plancher_bas/deperdition-plancher-bas.service.spec.js +2 -2
- package/features/engine/domain/enveloppe/plancher_haut/deperdition-plancher-haut.service.js +4 -2
- package/features/engine/domain/enveloppe/pont_thermique/deperdition-pont-thermique.service.js +9 -1
- package/features/engine/domain/enveloppe/pont_thermique/deperdition-pont-thermique.service.spec.js +1 -1
- package/features/engine/domain/enveloppe/porte/deperdition-porte.service.js +3 -1
- package/features/engine/domain/enveloppe/ventilation/deperdition-ventilation.service.js +3 -1
- package/features/engine/domain/enveloppe/ventilation/deperdition-ventilation.service.spec.js +1 -1
- package/features/engine/domain/logement/nadeq.service.js +1 -1
- package/features/engine/domain/logement/nadeq.service.spec.js +1 -1
- package/features/engine/domain/models/contexte.model.ts +2 -2
- package/features/normalizer/domain/dpe-normalizer.service.js +1 -0
- package/ficheTechnique.js +4 -2
- package/globals.d.ts +14 -0
- package/package.json +3 -3
- package/preprocessor/index.js +1 -0
- package/tv.d.ts +759 -0
- package/tvs.d.ts +2 -7
- package/utils.js +8 -6
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import type {
|
|
4
4
|
XsdLogementEnveloppeEtsBaieEts,
|
|
5
5
|
XsdLogementEnveloppeEtsBaieEtsDonneeEntree
|
|
6
|
-
} from './dpe-xsd.generated';
|
|
6
|
+
} from './dpe-xsd.generated.js';
|
|
7
7
|
|
|
8
8
|
export type BaieEts = XsdLogementEnveloppeEtsBaieEts;
|
|
9
9
|
export type BaieEtsDE = XsdLogementEnveloppeEtsBaieEtsDonneeEntree;
|
|
@@ -8,14 +8,18 @@ import type {
|
|
|
8
8
|
XsdLogementEnveloppeBaieVitreeDonneeEntree,
|
|
9
9
|
XsdLogementEnveloppeBaieVitreeDonneeEntreeMasqueLointainNonHomogene,
|
|
10
10
|
XsdLogementEnveloppeBaieVitreeDonneeIntermediaire
|
|
11
|
-
} from './dpe-xsd.generated';
|
|
11
|
+
} from './dpe-xsd.generated.js';
|
|
12
12
|
|
|
13
13
|
/** + `donnee_utilisateur` Open3CL hors XSD. */
|
|
14
14
|
export type BaieVitree = XsdLogementEnveloppeBaieVitree & {
|
|
15
15
|
donnee_utilisateur?: Record<string, any>;
|
|
16
16
|
};
|
|
17
17
|
export type BaieVitreeDE = XsdLogementEnveloppeBaieVitreeDonneeEntree;
|
|
18
|
-
|
|
18
|
+
/** + facteurs d'ensoleillement `fe1` / `fe2` (masques proches / lointains) calculés par le moteur hors XSD. */
|
|
19
|
+
export type BaieVitreeDI = XsdLogementEnveloppeBaieVitreeDonneeIntermediaire & {
|
|
20
|
+
fe1?: number;
|
|
21
|
+
fe2?: number;
|
|
22
|
+
};
|
|
19
23
|
export type BaieVitreeDoubleFenetre = XsdLogementEnveloppeBaieVitreeBaieVitreeDoubleFenetre;
|
|
20
24
|
export type BaieVitreeDoubleFenetreDE =
|
|
21
25
|
XsdLogementEnveloppeBaieVitreeBaieVitreeDoubleFenetreDonneeEntree;
|
|
@@ -4,7 +4,7 @@ import type {
|
|
|
4
4
|
XsdLogementClimatisation,
|
|
5
5
|
XsdLogementClimatisationDonneeEntree,
|
|
6
6
|
XsdLogementClimatisationDonneeIntermediaire
|
|
7
|
-
} from './dpe-xsd.generated';
|
|
7
|
+
} from './dpe-xsd.generated.js';
|
|
8
8
|
|
|
9
9
|
export interface Climatisation extends Omit<XsdLogementClimatisation, 'donnee_intermediaire'> {
|
|
10
10
|
donnee_intermediaire?: ClimatisationDI;
|
|
@@ -11,19 +11,19 @@ import type {
|
|
|
11
11
|
XsdLogementEnveloppe,
|
|
12
12
|
XsdLogementMeteo,
|
|
13
13
|
XsdTAdresse
|
|
14
|
-
} from './dpe-xsd.generated';
|
|
15
|
-
import type { BaieVitree } from './baie-vitree.model';
|
|
16
|
-
import type { Climatisation } from './climatisation.model';
|
|
17
|
-
import type { Ets } from './ets.model';
|
|
18
|
-
import type { InstallationChauffage } from './installation-chauffage.model';
|
|
19
|
-
import type { InstallationEcs } from './installation-ecs.model';
|
|
20
|
-
import type { Mur } from './mur.model';
|
|
21
|
-
import type { PlancherBas, PlancherHaut } from './plancher.model';
|
|
22
|
-
import type { PontThermique } from './pont-thermique.model';
|
|
23
|
-
import type { Porte } from './porte.model';
|
|
24
|
-
import type { ProductionElecEnr } from './production-elec-enr.model';
|
|
25
|
-
import type { Sortie } from './sortie.model';
|
|
26
|
-
import type { Ventilation } from './ventilation.model';
|
|
14
|
+
} from './dpe-xsd.generated.js';
|
|
15
|
+
import type { BaieVitree } from './baie-vitree.model.js';
|
|
16
|
+
import type { Climatisation } from './climatisation.model.js';
|
|
17
|
+
import type { Ets } from './ets.model.js';
|
|
18
|
+
import type { InstallationChauffage } from './installation-chauffage.model.js';
|
|
19
|
+
import type { InstallationEcs } from './installation-ecs.model.js';
|
|
20
|
+
import type { Mur } from './mur.model.js';
|
|
21
|
+
import type { PlancherBas, PlancherHaut } from './plancher.model.js';
|
|
22
|
+
import type { PontThermique } from './pont-thermique.model.js';
|
|
23
|
+
import type { Porte } from './porte.model.js';
|
|
24
|
+
import type { ProductionElecEnr } from './production-elec-enr.model.js';
|
|
25
|
+
import type { Sortie } from './sortie.model.js';
|
|
26
|
+
import type { Ventilation } from './ventilation.model.js';
|
|
27
27
|
|
|
28
28
|
// Types issus du XSD (générés) : voir dpe-xsd.generated.ts
|
|
29
29
|
export type Administratif = XsdAdministratif;
|
|
@@ -124,15 +124,8 @@ export interface DE {
|
|
|
124
124
|
reference?: string;
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
IMMEUBLE = 'IMMEUBLE'
|
|
131
|
-
}
|
|
132
|
-
export enum TypeDpe {
|
|
133
|
-
MAISON = 'MAISON',
|
|
134
|
-
APPARTEMENT = 'APPARTEMENT',
|
|
135
|
-
IMMEUBLE = 'IMMEUBLE'
|
|
136
|
-
}
|
|
127
|
+
/** Types définis à l'exécution dans type-habitation.model.js. */
|
|
128
|
+
export type TypeHabitation = 'MAISON' | 'APPARTEMENT' | 'IMMEUBLE';
|
|
129
|
+
export type TypeDpe = 'MAISON' | 'APPARTEMENT' | 'APPARTEMENT_A_PARTIR_IMMEUBLE' | 'IMMEUBLE';
|
|
137
130
|
|
|
138
131
|
export type FullDpe = Dpe;
|
|
@@ -4,7 +4,7 @@ import type {
|
|
|
4
4
|
XsdLogementEnveloppeEts,
|
|
5
5
|
XsdLogementEnveloppeEtsDonneeEntree,
|
|
6
6
|
XsdLogementEnveloppeEtsDonneeIntermediaire
|
|
7
|
-
} from './dpe-xsd.generated';
|
|
7
|
+
} from './dpe-xsd.generated.js';
|
|
8
8
|
|
|
9
9
|
export type Ets = XsdLogementEnveloppeEts;
|
|
10
10
|
export type EtsDE = XsdLogementEnveloppeEtsDonneeEntree;
|
|
@@ -8,7 +8,7 @@ import type {
|
|
|
8
8
|
XsdLogementInstallationChauffageGenerateurChauffage,
|
|
9
9
|
XsdLogementInstallationChauffageGenerateurChauffageDonneeEntree,
|
|
10
10
|
XsdLogementInstallationChauffageGenerateurChauffageDonneeIntermediaire
|
|
11
|
-
} from './dpe-xsd.generated';
|
|
11
|
+
} from './dpe-xsd.generated.js';
|
|
12
12
|
|
|
13
13
|
/** + champ Open3CL hors XSD : `ficheTechniqueComptage` (fiche technique). */
|
|
14
14
|
export type InstallationChauffageDE = XsdLogementInstallationChauffageDonneeEntree & {
|
|
@@ -27,15 +27,56 @@ export type EmetteurChauffageDI =
|
|
|
27
27
|
XsdLogementInstallationChauffageEmetteurChauffageDonneeIntermediaire & {
|
|
28
28
|
lb?: number;
|
|
29
29
|
};
|
|
30
|
-
|
|
31
|
-
export
|
|
32
|
-
|
|
30
|
+
/** Champs communs aux générateurs (chauffage et ECS) ajoutés par le moteur hors XSD, en entrée. */
|
|
31
|
+
export interface GenerateurDEMoteur {
|
|
32
|
+
/** Année d'installation (issue de la saisie ou de la fiche technique). */
|
|
33
|
+
annee_installation?: number | string;
|
|
34
|
+
/** 1 si le générateur a un ventilateur (chaudières bois). */
|
|
35
|
+
presenceVentilateur?: number;
|
|
36
|
+
/** 1 si le générateur est à ventilateur de combustion (renseigné par le moteur, §13.2). */
|
|
37
|
+
ventilateurCombustion?: number;
|
|
38
|
+
ratio_virtualisation?: number | null;
|
|
39
|
+
enum_type_installation_id?: string | null;
|
|
40
|
+
enum_type_generateur_ecs_id?: string | null;
|
|
41
|
+
enum_periode_installation_ecs_thermo_id?: string | null;
|
|
42
|
+
volume_stockage?: number | null;
|
|
43
|
+
/** Clé de répartition de la consommation ECS (copiée de l'installation par le moteur). */
|
|
44
|
+
cle_repartition_ecs?: number | null;
|
|
45
|
+
/** Clé de répartition de la consommation de chauffage (copiée de l'installation par le moteur). */
|
|
46
|
+
cle_repartition_ch?: number | null;
|
|
47
|
+
}
|
|
33
48
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
/** Champs communs aux générateurs (chauffage et ECS) calculés par le moteur hors XSD. */
|
|
50
|
+
export interface GenerateurDIMoteur {
|
|
51
|
+
/** Rendement de génération (PAC) : scop ou cop. */
|
|
52
|
+
rg?: number | null;
|
|
53
|
+
/** Rendement de génération du cas dépensier (PAC). */
|
|
54
|
+
rg_dep?: number | null;
|
|
55
|
+
scop?: number | null;
|
|
56
|
+
cop?: number | null;
|
|
57
|
+
/** Puissance de la veilleuse (W). */
|
|
58
|
+
pveil?: number | null;
|
|
37
59
|
}
|
|
38
60
|
|
|
61
|
+
/** + champs calculés/renseignés par le moteur hors XSD. */
|
|
62
|
+
export type GenerateurChauffageDE =
|
|
63
|
+
XsdLogementInstallationChauffageGenerateurChauffageDonneeEntree &
|
|
64
|
+
GenerateurDEMoteur & {
|
|
65
|
+
/** Nombre d'installations de chauffage de l'immeuble (rdim). */
|
|
66
|
+
rdim_installation_ch?: number;
|
|
67
|
+
/** true si `rdim` a été reconstitué pour un DPE à l'immeuble. */
|
|
68
|
+
rdim_reconstitue?: boolean;
|
|
69
|
+
/** Nombre de niveaux de l'installation (copié de l'installation par le moteur). */
|
|
70
|
+
nombre_niveau_installation_ch?: number;
|
|
71
|
+
/** Surface chauffée par l'installation (copiée de l'installation par le moteur). */
|
|
72
|
+
surface_chauffee?: number;
|
|
73
|
+
};
|
|
74
|
+
export type GenerateurChauffageDI =
|
|
75
|
+
XsdLogementInstallationChauffageGenerateurChauffageDonneeIntermediaire & GenerateurDIMoteur;
|
|
76
|
+
|
|
77
|
+
/** Type de générateur (défini à l'exécution dans type-generateur.model.js). */
|
|
78
|
+
export type TypeGenerateur = 'CHAUDIERE' | 'OTHER';
|
|
79
|
+
|
|
39
80
|
/** Donnée utilisateur propre à Open3CL (absente du XSD). */
|
|
40
81
|
export interface GenerateurChauffageDU {
|
|
41
82
|
/** Valeurs intermédiaires ajoutées dynamiquement par le moteur (ex. conso_ch_appoint_bijonction). */
|
|
@@ -57,7 +98,12 @@ export interface GenerateurChauffageDU {
|
|
|
57
98
|
};
|
|
58
99
|
}
|
|
59
100
|
|
|
60
|
-
export interface GenerateurChauffage extends
|
|
101
|
+
export interface GenerateurChauffage extends Omit<
|
|
102
|
+
XsdLogementInstallationChauffageGenerateurChauffage,
|
|
103
|
+
'donnee_entree' | 'donnee_intermediaire'
|
|
104
|
+
> {
|
|
105
|
+
donnee_entree: GenerateurChauffageDE;
|
|
106
|
+
donnee_intermediaire?: GenerateurChauffageDI;
|
|
61
107
|
donnee_utilisateur?: GenerateurChauffageDU;
|
|
62
108
|
}
|
|
63
109
|
|
|
@@ -5,12 +5,24 @@ import type {
|
|
|
5
5
|
XsdLogementInstallationEcsGenerateurEcs,
|
|
6
6
|
XsdLogementInstallationEcsGenerateurEcsDonneeEntree,
|
|
7
7
|
XsdLogementInstallationEcsGenerateurEcsDonneeIntermediaire
|
|
8
|
-
} from './dpe-xsd.generated';
|
|
8
|
+
} from './dpe-xsd.generated.js';
|
|
9
|
+
import type { GenerateurDEMoteur, GenerateurDIMoteur } from './installation-chauffage.model.js';
|
|
9
10
|
|
|
10
11
|
export type InstallationEcsDE = XsdLogementInstallationEcsDonneeEntree;
|
|
11
|
-
|
|
12
|
-
export type
|
|
13
|
-
|
|
12
|
+
/** + champs calculés par le moteur hors XSD. */
|
|
13
|
+
export type InstallationEcsDI = XsdLogementInstallationEcsDonneeIntermediaire & {
|
|
14
|
+
/** Longueur de boucle de distribution ECS (m). */
|
|
15
|
+
lb?: number;
|
|
16
|
+
/** Consommation des auxiliaires de distribution ECS. */
|
|
17
|
+
conso_auxiliaire_distribution_ecs?: number;
|
|
18
|
+
/** true si rdim est neutralisé pour l'installation. */
|
|
19
|
+
rdim_neutralise?: boolean;
|
|
20
|
+
};
|
|
21
|
+
/** + champs calculés/renseignés par le moteur hors XSD. */
|
|
22
|
+
export type GenerateurEcsDE = XsdLogementInstallationEcsGenerateurEcsDonneeEntree &
|
|
23
|
+
GenerateurDEMoteur;
|
|
24
|
+
export type GenerateurEcsDI = XsdLogementInstallationEcsGenerateurEcsDonneeIntermediaire &
|
|
25
|
+
GenerateurDIMoteur;
|
|
14
26
|
|
|
15
27
|
/** Donnée utilisateur propre à Open3CL (absente du XSD) : valeurs intermédiaires du moteur. */
|
|
16
28
|
export interface InstallationEcsDU {
|
|
@@ -26,14 +38,20 @@ export interface GenerateurEcsDU {
|
|
|
26
38
|
Qgw?: number;
|
|
27
39
|
}
|
|
28
40
|
|
|
29
|
-
export interface GenerateurEcs extends
|
|
41
|
+
export interface GenerateurEcs extends Omit<
|
|
42
|
+
XsdLogementInstallationEcsGenerateurEcs,
|
|
43
|
+
'donnee_entree' | 'donnee_intermediaire'
|
|
44
|
+
> {
|
|
45
|
+
donnee_entree: GenerateurEcsDE;
|
|
46
|
+
donnee_intermediaire?: GenerateurEcsDI;
|
|
30
47
|
donnee_utilisateur?: GenerateurEcsDU;
|
|
31
48
|
}
|
|
32
49
|
|
|
33
50
|
export interface InstallationEcs extends Omit<
|
|
34
51
|
XsdLogementInstallationEcs,
|
|
35
|
-
'generateur_ecs_collection'
|
|
52
|
+
'generateur_ecs_collection' | 'donnee_intermediaire'
|
|
36
53
|
> {
|
|
54
|
+
donnee_intermediaire?: InstallationEcsDI;
|
|
37
55
|
donnee_utilisateur?: InstallationEcsDU;
|
|
38
56
|
generateur_ecs_collection: { generateur_ecs: GenerateurEcs[] };
|
|
39
57
|
}
|
|
@@ -4,7 +4,7 @@ import type {
|
|
|
4
4
|
XsdLogementEnveloppeMur,
|
|
5
5
|
XsdLogementEnveloppeMurDonneeEntree,
|
|
6
6
|
XsdLogementEnveloppeMurDonneeIntermediaire
|
|
7
|
-
} from './dpe-xsd.generated';
|
|
7
|
+
} from './dpe-xsd.generated.js';
|
|
8
8
|
|
|
9
9
|
export type Mur = XsdLogementEnveloppeMur;
|
|
10
10
|
export type MurDE = XsdLogementEnveloppeMurDonneeEntree;
|
|
@@ -7,7 +7,7 @@ import type {
|
|
|
7
7
|
XsdLogementEnveloppePlancherHaut,
|
|
8
8
|
XsdLogementEnveloppePlancherHautDonneeEntree,
|
|
9
9
|
XsdLogementEnveloppePlancherHautDonneeIntermediaire
|
|
10
|
-
} from './dpe-xsd.generated';
|
|
10
|
+
} from './dpe-xsd.generated.js';
|
|
11
11
|
|
|
12
12
|
export type PlancherBas = XsdLogementEnveloppePlancherBas;
|
|
13
13
|
export type PlancherBasDE = XsdLogementEnveloppePlancherBasDonneeEntree;
|
|
@@ -4,7 +4,7 @@ import type {
|
|
|
4
4
|
XsdLogementEnveloppePontThermique,
|
|
5
5
|
XsdLogementEnveloppePontThermiqueDonneeEntree,
|
|
6
6
|
XsdLogementEnveloppePontThermiqueDonneeIntermediaire
|
|
7
|
-
} from './dpe-xsd.generated';
|
|
7
|
+
} from './dpe-xsd.generated.js';
|
|
8
8
|
|
|
9
9
|
export type PontThermique = XsdLogementEnveloppePontThermique;
|
|
10
10
|
export type PontThermiqueDE = XsdLogementEnveloppePontThermiqueDonneeEntree;
|
|
@@ -4,7 +4,7 @@ import type {
|
|
|
4
4
|
XsdLogementEnveloppePorte,
|
|
5
5
|
XsdLogementEnveloppePorteDonneeEntree,
|
|
6
6
|
XsdLogementEnveloppePorteDonneeIntermediaire
|
|
7
|
-
} from './dpe-xsd.generated';
|
|
7
|
+
} from './dpe-xsd.generated.js';
|
|
8
8
|
|
|
9
9
|
export type Porte = XsdLogementEnveloppePorte;
|
|
10
10
|
export type PorteDE = XsdLogementEnveloppePorteDonneeEntree;
|
|
@@ -5,7 +5,7 @@ import type {
|
|
|
5
5
|
XsdLogementProductionElecEnrDonneeEntree,
|
|
6
6
|
XsdLogementProductionElecEnrDonneeIntermediaire,
|
|
7
7
|
XsdLogementProductionElecEnrPanneauxPv
|
|
8
|
-
} from './dpe-xsd.generated';
|
|
8
|
+
} from './dpe-xsd.generated.js';
|
|
9
9
|
|
|
10
10
|
export type ProductionElecEnr = XsdLogementProductionElecEnr;
|
|
11
11
|
export type ProductionElecEnrDE = XsdLogementProductionElecEnrDonneeEntree;
|
|
@@ -12,7 +12,7 @@ import type {
|
|
|
12
12
|
XsdLogementSortieProductionElectricite,
|
|
13
13
|
XsdLogementSortieQualiteIsolation,
|
|
14
14
|
XsdLogementSortieSortieParEnergie
|
|
15
|
-
} from './dpe-xsd.generated';
|
|
15
|
+
} from './dpe-xsd.generated.js';
|
|
16
16
|
|
|
17
17
|
export interface Sortie extends Omit<XsdLogementSortie, 'ep_conso'> {
|
|
18
18
|
ep_conso: EpConso;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Valeur de TypeGenerateur.
|
|
3
|
+
* @typedef {'CHAUDIERE' | 'OTHER'} TypeGenerateur
|
|
3
4
|
*/
|
|
4
|
-
export const TypeGenerateur = {
|
|
5
|
+
export const TypeGenerateur = /** @type {const} */ ({
|
|
5
6
|
CHAUDIERE: 'CHAUDIERE',
|
|
6
7
|
OTHER: 'OTHER'
|
|
7
|
-
};
|
|
8
|
+
});
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Valeur d'un type d'habitation (MAISON | APPARTEMENT | IMMEUBLE).
|
|
3
|
+
* @typedef {'MAISON' | 'APPARTEMENT' | 'IMMEUBLE'} TypeHabitation
|
|
3
4
|
*/
|
|
4
|
-
export const TypeHabitation = {
|
|
5
|
+
export const TypeHabitation = /** @type {const} */ ({
|
|
5
6
|
MAISON: 'MAISON',
|
|
6
7
|
APPARTEMENT: 'APPARTEMENT',
|
|
7
8
|
IMMEUBLE: 'IMMEUBLE'
|
|
8
|
-
};
|
|
9
|
+
});
|
|
9
10
|
/**
|
|
10
|
-
*
|
|
11
|
+
* Valeur d'un type de DPE.
|
|
12
|
+
* @typedef {'MAISON' | 'APPARTEMENT' | 'APPARTEMENT_A_PARTIR_IMMEUBLE' | 'IMMEUBLE'} TypeDpe
|
|
11
13
|
*/
|
|
12
|
-
export const TypeDpe = {
|
|
14
|
+
export const TypeDpe = /** @type {const} */ ({
|
|
13
15
|
MAISON: 'MAISON',
|
|
14
16
|
APPARTEMENT: 'APPARTEMENT',
|
|
15
17
|
APPARTEMENT_A_PARTIR_IMMEUBLE: 'APPARTEMENT_A_PARTIR_IMMEUBLE',
|
|
16
18
|
IMMEUBLE: 'IMMEUBLE'
|
|
17
|
-
};
|
|
19
|
+
});
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Valeur de TypeStockage.
|
|
3
|
+
* @typedef {'INSTANTANE' | 'INTEGRE' | 'INDEPENDANT'} TypeStockage
|
|
3
4
|
*/
|
|
4
|
-
export const TypeStockage = {
|
|
5
|
+
export const TypeStockage = /** @type {const} */ ({
|
|
5
6
|
INSTANTANE: 'INSTANTANE',
|
|
6
7
|
INTEGRE: 'INTEGRE',
|
|
7
8
|
INDEPENDANT: 'INDEPENDANT'
|
|
8
|
-
};
|
|
9
|
+
});
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Valeur de TypeVentilation.
|
|
3
|
+
* @typedef {'SIMPLE_FLUX_AUTO' | 'SIMPLE_FLUX_HYGRO' | 'DOUBLE_FLUX'} TypeVentilation
|
|
3
4
|
*/
|
|
4
|
-
export const TypeVentilation = {
|
|
5
|
+
export const TypeVentilation = /** @type {const} */ ({
|
|
5
6
|
SIMPLE_FLUX_AUTO: 'SIMPLE_FLUX_AUTO',
|
|
6
7
|
SIMPLE_FLUX_HYGRO: 'SIMPLE_FLUX_HYGRO',
|
|
7
8
|
DOUBLE_FLUX: 'DOUBLE_FLUX'
|
|
8
|
-
};
|
|
9
|
+
});
|
|
@@ -4,7 +4,7 @@ import type {
|
|
|
4
4
|
XsdLogementVentilation,
|
|
5
5
|
XsdLogementVentilationDonneeEntree,
|
|
6
6
|
XsdLogementVentilationDonneeIntermediaire
|
|
7
|
-
} from './dpe-xsd.generated';
|
|
7
|
+
} from './dpe-xsd.generated.js';
|
|
8
8
|
|
|
9
9
|
export interface Ventilation extends Omit<XsdLogementVentilation, 'donnee_entree'> {
|
|
10
10
|
donnee_entree: VentilationDE;
|
|
@@ -10,14 +10,14 @@ import { logger } from '../../../../core/util/logger/log-service.js';
|
|
|
10
10
|
export class ChTvStore extends TvStore {
|
|
11
11
|
/**
|
|
12
12
|
* Récupération des ids des générateurs de chauffage à combustion
|
|
13
|
-
* @return {[
|
|
13
|
+
* @return {number[]}
|
|
14
14
|
*/
|
|
15
15
|
getCombustionGenerateurs() {
|
|
16
16
|
return this.#getTypeGenerateurChId('generateur_combustion');
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Récupération des ids des générateurs de chauffage pompes à chaleur
|
|
20
|
-
* @return {[
|
|
20
|
+
* @return {number[]}
|
|
21
21
|
*/
|
|
22
22
|
getPacGenerateurs() {
|
|
23
23
|
return this.#getTypeGenerateurChId('scop');
|
|
@@ -9,7 +9,7 @@ export class EcsTvStore extends TvStore {
|
|
|
9
9
|
/**
|
|
10
10
|
* Température moyenne d’eau froide sanitaire sur le mois j (°C).
|
|
11
11
|
* La température d’eau froide est une donnée climatique mensuelle pour chacune des 8 zones climatiques
|
|
12
|
-
* @see 11.1 Calcul du besoin d’ECS : Tefs
|
|
12
|
+
* @see Chapitre 11.1 Calcul du besoin d’ECS : Tefs
|
|
13
13
|
*
|
|
14
14
|
* @param classeAltitude {string}
|
|
15
15
|
* @param zoneClimatique {string}
|
|
@@ -23,7 +23,7 @@ export class EcsTvStore extends TvStore {
|
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Coefficient de perte du ballon de stockage
|
|
26
|
-
* @see 11.6.2 Pertes des ballons électriques
|
|
26
|
+
* @see Chapitre 11.6.2 Pertes des ballons électriques
|
|
27
27
|
*
|
|
28
28
|
* @param enumTypeGenerateurEcsId {string}
|
|
29
29
|
* @param volumeStockage {number}
|
|
@@ -55,7 +55,7 @@ export class EcsTvStore extends TvStore {
|
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
57
|
* Récupération des ids des générateurs électriques ECS
|
|
58
|
-
* @return {[
|
|
58
|
+
* @return {number[]}
|
|
59
59
|
*/
|
|
60
60
|
getElectriqueEcsGenerateurs() {
|
|
61
61
|
return [
|
|
@@ -349,7 +349,7 @@ export class BaieVitreeTvStore extends TvStore {
|
|
|
349
349
|
}
|
|
350
350
|
|
|
351
351
|
/**
|
|
352
|
-
* @see 18.5 - Coefficients d’orientation et d’inclinaison des parois vitrées : C1
|
|
352
|
+
* @see Chapitre 18.5 - Coefficients d’orientation et d’inclinaison des parois vitrées : C1
|
|
353
353
|
*
|
|
354
354
|
* @param enumOrientationId {number}
|
|
355
355
|
* @param enumInclinaisonVitrageId {number}
|
|
@@ -8,7 +8,7 @@ import { logger } from '../../../../core/util/logger/log-service.js';
|
|
|
8
8
|
export class FrTvStore extends TvStore {
|
|
9
9
|
/**
|
|
10
10
|
* Recherche des valeurs nécessaires au calcul du besoin en froid
|
|
11
|
-
* @see 10.2 Calcul du besoin mensuel de froid
|
|
11
|
+
* @see Chapitre 10.2 Calcul du besoin mensuel de froid
|
|
12
12
|
* — e : nombre d’heures de chauffage pour un mois donné et une consigne de refroidissement à 26°C (comportement dépensier).
|
|
13
13
|
* — nref26 : nombre d’heures de chauffage pour un mois donné et une consigne de refroidissement à 26°C (comportement dépensier).
|
|
14
14
|
* — nref28 : nombre d’heures de chauffage pour un mois donné et une consigne de refroidissement à 28°C (comportement conventionnel).
|
|
@@ -19,7 +19,7 @@ export class FrTvStore extends TvStore {
|
|
|
19
19
|
* — dh19 : degrés heures de chauffage pour un mois donné à 19°C (comportement conventionnel).
|
|
20
20
|
* — dh21 : degrés heures de chauffage pour un mois donné à 21°C (comportement dépensier).
|
|
21
21
|
*
|
|
22
|
-
* @param type {'e'
|
|
22
|
+
* @param type {'e' | 'nref26' | 'nref28' | 'e_fr_26' | 'e_fr_28' | 'textmoy_clim_26' | 'textmoy_clim_28'| 'dh19'| 'dh21'}
|
|
23
23
|
* @param classeAltitude {string}
|
|
24
24
|
* @param zoneClimatique {string}
|
|
25
25
|
* @param mois {string}
|
|
@@ -39,7 +39,7 @@ export class FrTvStore extends TvStore {
|
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
41
|
* Coefficient d’efficience énergétique
|
|
42
|
-
* @see 10.3 - Les consommations de refroidissement
|
|
42
|
+
* @see Chapitre 10.3 - Les consommations de refroidissement
|
|
43
43
|
*
|
|
44
44
|
* @param zoneClimatiqueId {string}
|
|
45
45
|
* @param periodeInstallationId {number}
|
|
@@ -54,7 +54,7 @@ describe('Lecture des tables de valeurs', () => {
|
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
56
|
* Nombre d’heures de refroidissement Nref entre 400 m et 800 m d’altitude
|
|
57
|
-
* @see
|
|
57
|
+
* @see Methode_de_calcul_3CL_DPE_2021-338.pdf - Annexe 18.2.2 (tableaux Nref (26°C) et Nref (28°C))
|
|
58
58
|
*/
|
|
59
59
|
describe('lecture des heures de refroidissement Nref entre 400m et 800m', () => {
|
|
60
60
|
const zones = ['h1a', 'h1b', 'h1c', 'h2a', 'h2b', 'h2c', 'h2d', 'h3'];
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/** @import { Logement } from '../../../dpe/domain/models/dpe.model.js' */
|
|
2
|
+
/** @import { ApportEtBesoin } from '../../../dpe/domain/models/sortie.model.js' */
|
|
3
|
+
/** @import { Contexte } from '../models/contexte.model.js' */
|
|
1
4
|
import { inject } from 'dioma';
|
|
2
5
|
import { BesoinEcsService } from './ecs/besoin-ecs.service.js';
|
|
3
6
|
import { SurfaceSudEquivalenteService } from './surface-sud-equivalente.service.js';
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** @import { Enveloppe, Logement } from '../../../../dpe/domain/models/dpe.model.js' */
|
|
2
|
+
/** @import { Contexte } from '../../models/contexte.model.js' */
|
|
1
3
|
import { inject } from 'dioma';
|
|
2
4
|
import { SurfaceSudEquivalenteService } from '../surface-sud-equivalente.service.js';
|
|
3
5
|
import { mois_liste } from '../../../../../utils.js';
|
|
@@ -9,7 +11,7 @@ import { FrTvStore } from '../../../../dpe/infrastructure/froid/frTv.store.js';
|
|
|
9
11
|
*
|
|
10
12
|
* Methode_de_calcul_3CL_DPE_2021 - Page 42
|
|
11
13
|
* Octobre 2021
|
|
12
|
-
* @see
|
|
14
|
+
* @see consolide_annexe_arrete_du_31_03_2021_relatif_aux_methodes_et_procedures_applicables.pdf
|
|
13
15
|
*/
|
|
14
16
|
export class ApportGratuitService {
|
|
15
17
|
/**
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** @import { Logement } from '../../../../dpe/domain/models/dpe.model.js' */
|
|
2
|
+
/** @import { Contexte } from '../../models/contexte.model.js' */
|
|
1
3
|
import { mois_liste } from '../../../../../utils.js';
|
|
2
4
|
import { inject } from 'dioma';
|
|
3
5
|
import { FrTvStore } from '../../../../dpe/infrastructure/froid/frTv.store.js';
|
|
@@ -8,7 +10,7 @@ import { FrTvStore } from '../../../../dpe/infrastructure/froid/frTv.store.js';
|
|
|
8
10
|
*
|
|
9
11
|
* Methode_de_calcul_3CL_DPE_2021 - Page 7
|
|
10
12
|
* Octobre 2021
|
|
11
|
-
* @see
|
|
13
|
+
* @see consolide_annexe_arrete_du_31_03_2021_relatif_aux_methodes_et_procedures_applicables.pdf
|
|
12
14
|
*/
|
|
13
15
|
export class BesoinChService {
|
|
14
16
|
/**
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/** @import { Logement } from '../../../../dpe/domain/models/dpe.model.js' */
|
|
2
|
+
/** @import { GenerateurChauffage } from '../../../../dpe/domain/models/installation-chauffage.model.js' */
|
|
3
|
+
/** @import { GenerateurEcs, GenerateurEcsDE, GenerateurEcsDI } from '../../../../dpe/domain/models/installation-ecs.model.js' */
|
|
4
|
+
/** @import { Contexte } from '../../models/contexte.model.js' */
|
|
1
5
|
import { mois_liste } from '../../../../../utils.js';
|
|
2
6
|
import { inject } from 'dioma';
|
|
3
7
|
import { FrTvStore } from '../../../../dpe/infrastructure/froid/frTv.store.js';
|
|
@@ -12,7 +16,7 @@ import { FrTvStore } from '../../../../dpe/infrastructure/froid/frTv.store.js';
|
|
|
12
16
|
*
|
|
13
17
|
* Methode_de_calcul_3CL_DPE_2021 - Page 57
|
|
14
18
|
* Octobre 2021
|
|
15
|
-
* @see
|
|
19
|
+
* @see consolide_annexe_arrete_du_31_03_2021_relatif_aux_methodes_et_procedures_applicables.pdf
|
|
16
20
|
*/
|
|
17
21
|
export class PerteChRecupService {
|
|
18
22
|
/**
|
|
@@ -93,8 +97,10 @@ export class PerteChRecupService {
|
|
|
93
97
|
|
|
94
98
|
return installationsEcs.flatMap((installation) =>
|
|
95
99
|
(installation.generateur_ecs_collection?.generateur_ecs || []).filter((generateurEcs) => {
|
|
96
|
-
const generateurEcsDE = generateurEcs.donnee_entree || {};
|
|
97
|
-
const generateurEcsDI =
|
|
100
|
+
const generateurEcsDE = /** @type {GenerateurEcsDE} */ (generateurEcs.donnee_entree || {});
|
|
101
|
+
const generateurEcsDI = /** @type {GenerateurEcsDI} */ (
|
|
102
|
+
generateurEcs.donnee_intermediaire || {}
|
|
103
|
+
);
|
|
98
104
|
return (
|
|
99
105
|
Number(generateurEcsDI.qp0 || 0) > 0 &&
|
|
100
106
|
Number(generateurEcsDE.position_volume_chauffe ?? 0) === 1 &&
|
|
@@ -12,7 +12,7 @@ let tvStore;
|
|
|
12
12
|
/**
|
|
13
13
|
* 9.1.1 Pertes récupérées de génération pour le chauffage
|
|
14
14
|
* Qgen_rec_j = 0,48 * Cper * Qp0 * Dperj
|
|
15
|
-
* @see
|
|
15
|
+
* @see Methode_de_calcul_3CL_DPE_2021-338.pdf - §9.1.1
|
|
16
16
|
*/
|
|
17
17
|
describe('Calcul des pertes récupérées de génération pour le chauffage', () => {
|
|
18
18
|
/** @type {Contexte} */
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @import { Contexte } from '../../models/contexte.model.js' */
|
|
1
2
|
import { mois_liste, Njj } from '../../../../../utils.js';
|
|
2
3
|
import { EcsTvStore } from '../../../../dpe/infrastructure/ecs/ecsTv.store.js';
|
|
3
4
|
import { inject } from 'dioma';
|
|
@@ -8,7 +9,7 @@ import { inject } from 'dioma';
|
|
|
8
9
|
*
|
|
9
10
|
* Methode_de_calcul_3CL_DPE_2021 - Page 70
|
|
10
11
|
* Octobre 2021
|
|
11
|
-
* @see
|
|
12
|
+
* @see consolide_annexe_arrete_du_31_03_2021_relatif_aux_methodes_et_procedures_applicables.pdf
|
|
12
13
|
*/
|
|
13
14
|
export class BesoinEcsService {
|
|
14
15
|
/**
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/** @import { Logement } from '../../../../dpe/domain/models/dpe.model.js' */
|
|
2
|
+
/** @import { InstallationEcsDU } from '../../../../dpe/domain/models/installation-ecs.model.js' */
|
|
3
|
+
/** @import { Contexte } from '../../models/contexte.model.js' */
|
|
1
4
|
import { mois_liste } from '../../../../../utils.js';
|
|
2
5
|
import { inject } from 'dioma';
|
|
3
6
|
import { FrTvStore } from '../../../../dpe/infrastructure/froid/frTv.store.js';
|
|
@@ -13,7 +16,7 @@ import { FrTvStore } from '../../../../dpe/infrastructure/froid/frTv.store.js';
|
|
|
13
16
|
*
|
|
14
17
|
* Methode_de_calcul_3CL_DPE_2021 - Page 57
|
|
15
18
|
* Octobre 2021
|
|
16
|
-
* @see
|
|
19
|
+
* @see consolide_annexe_arrete_du_31_03_2021_relatif_aux_methodes_et_procedures_applicables.pdf
|
|
17
20
|
*/
|
|
18
21
|
export class PerteEcsRecupService {
|
|
19
22
|
/**
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** @import { Logement } from '../../../../dpe/domain/models/dpe.model.js' */
|
|
2
|
+
/** @import { Contexte } from '../../models/contexte.model.js' */
|
|
1
3
|
import { mois_liste } from '../../../../../utils.js';
|
|
2
4
|
import { inject } from 'dioma';
|
|
3
5
|
import { FrTvStore } from '../../../../dpe/infrastructure/froid/frTv.store.js';
|
|
@@ -9,7 +11,7 @@ import { ApportGratuitService } from '../apport_gratuit/apport-gratuit.service.j
|
|
|
9
11
|
*
|
|
10
12
|
* Methode_de_calcul_3CL_DPE_2021 - Page 68
|
|
11
13
|
* Octobre 2021
|
|
12
|
-
* @see
|
|
14
|
+
* @see consolide_annexe_arrete_du_31_03_2021_relatif_aux_methodes_et_procedures_applicables.pdf
|
|
13
15
|
*/
|
|
14
16
|
export class BesoinFroidService {
|
|
15
17
|
/**
|