@open3cl/engine 1.3.4 → 1.3.5

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/9_conso_ch.js CHANGED
@@ -38,8 +38,8 @@ function coef_ch(Fch) {
38
38
  1: 0.25 * (1 - Fch)
39
39
  },
40
40
  'installation de chauffage avec chaudière en relève de pac': {
41
- 0: 1, // deja proratisé en amont, voir 9_chauffage.js#getProrataGenerateur
42
- 1: 1
41
+ 0: 0.8,
42
+ 1: 0.2
43
43
  },
44
44
  'installation de chauffage avec chaudière en relève de pac avec insert ou poêle bois en appoint':
45
45
  {
package/README.md CHANGED
@@ -167,32 +167,32 @@ deperdition_mur,
167
167
 
168
168
  Résultats des tests de corpus avec le mode de compatibilité activé.
169
169
 
170
- | Version librairie | corpus | Taux d'erreur | Nb de DPES analysés | Nb en dessous du taux d'erreur | Taux de réussite | Détail des valeurs |
171
- | :----------------- | :------------------------------------- | :------------- | --------------------- | -------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------- |
172
- | 1.2.3 | corpus_dpe.csv | 5% | 9980 | 4489 | 45% | |
173
- | 1.2.3 | dpe_immeuble_chauffage_individuel.csv | 5% | 9998 | 3257 | 32% | |
174
- | 1.2.3 | dpe_immeuble_chauffage_collectif.csv | 5% | 10000 | 5279 | 53% | |
175
- | 1.2.3 | dpe_immeuble_chauffage_mixte.csv | 5% | 10000 | 2728 | 27% | |
176
- | ------------------ | -------------------------------------- | -------------- | --------------------- | -------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------- |
177
- | 1.2.8 | corpus_dpe.csv | 5% | 9980 | 4489 | 45% | |
178
- | 1.2.8 | dpe_immeuble_chauffage_individuel.csv | 5% | 9998 | 5275 (+2018) | 53% (+21%) | |
179
- | 1.2.8 | dpe_immeuble_chauffage_collectif.csv | 5% | 10000 | 5747 (+468) | 57% (+4%) | |
180
- | 1.2.8 | dpe_immeuble_chauffage_mixte.csv | 5% | 10000 | 3142 (+414) | 31% (+4%) | |
181
- | ------------------ | -------------------------------------- | -------------- | --------------------- | -------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------- |
182
- | 1.3.1 | corpus_dpe.csv | 5% | 9980 | 4508 (+19) | 45% | |
183
- | 1.3.1 | dpe_immeuble_chauffage_individuel.csv | 5% | 9998 | 5459 (+184) | 55% (+2%) | |
184
- | 1.3.1 | dpe_immeuble_chauffage_collectif.csv | 5% | 10000 | 5848 (+101) | 58% (+1%) | |
185
- | 1.3.1 | dpe_immeuble_chauffage_mixte.csv | 5% | 10000 | 4018 (+876) | 40% (+9%) | |
186
- | ------------------ | -------------------------------------- | -------------- | --------------------- | -------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------- |
187
- | 1.3.2 | corpus_dpe.csv | 5% | 9980 | 4519 (+11) | 45% | |
188
- | 1.3.2 | dpe_immeuble_chauffage_individuel.csv | 5% | 9998 | 5476 (+17) | 55% | |
189
- | 1.3.2 | dpe_immeuble_chauffage_collectif.csv | 5% | 10000 | 5869 (+21) | 58% | |
190
- | 1.3.2 | dpe_immeuble_chauffage_mixte.csv | 5% | 10000 | 4040 (+22) | 40% | |
191
- | ------------------ | -------------------------------------- | -------------- | --------------------- | -------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------- |
192
- | 1.3.3 | corpus_dpe.csv | 5% | 9980 | 4522 (+3) | 45% | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=corpus_dpe.csv) |
193
- | 1.3.3 | dpe_immeuble_chauffage_individuel.csv | 5% | 9998 | 5488 (+12) | 55% | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_individuel.csv) |
194
- | 1.3.3 | dpe_immeuble_chauffage_collectif.csv | 5% | 10000 | 5869 | 58% | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_collectif.csv) |
195
- | 1.3.3 | dpe_immeuble_chauffage_mixte.csv | 5% | 10000 | 4082 (+42) | 40% | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_mixte.csv) |
170
+ | Version librairie | corpus | Nb en dessous du taux d'erreur | Taux de réussite | Détail des valeurs |
171
+ | :------------------ | ------------------------------------- | ------------------------------ | ----------------------- | ------------------------------------------------------------------------------------------------------------------- |
172
+ | <ins>**1.2.3**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4489**<ins> | <ins>**45%**<ins> | |
173
+ | 1.2.3 | dpe_immeuble_chauffage_individuel.csv | 3257 | 32% | |
174
+ | 1.2.3 | dpe_immeuble_chauffage_collectif.csv | 5279 | 53% | |
175
+ | 1.2.3 | dpe_immeuble_chauffage_mixte.csv | 2728 | 27% | |
176
+ | <ins>**1.2.8**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**489**<ins> | <ins>**45%**<ins> | |
177
+ | 1.2.8 | dpe_immeuble_chauffage_individuel.csv | 5275 (+2018) | 53% (+21%) | |
178
+ | 1.2.8 | dpe_immeuble_chauffage_collectif.csv | 5747 (+468) | 57% (+4%) | |
179
+ | 1.2.8 | dpe_immeuble_chauffage_mixte.csv | 3142 (+414) | 31% (+4%) | |
180
+ | <ins>**1.3.1**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4508 (+19)**<ins> | <ins>**45%**<ins> | |
181
+ | 1.3.1 | dpe_immeuble_chauffage_individuel.csv | 5459 (+184) | 55% (+2%) | |
182
+ | 1.3.1 | dpe_immeuble_chauffage_collectif.csv | 5848 (+101) | 58% (+1%) | |
183
+ | 1.3.1 | dpe_immeuble_chauffage_mixte.csv | 4018 (+876) | 40% (+9%) | |
184
+ | <ins>**1.3.2**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4519 (+11)**<ins> | <ins>**45%**<ins> | |
185
+ | 1.3.2 | dpe_immeuble_chauffage_individuel.csv | 5476 (+17) | 55% | |
186
+ | 1.3.2 | dpe_immeuble_chauffage_collectif.csv | 5869 (+21) | 58% | |
187
+ | 1.3.2 | dpe_immeuble_chauffage_mixte.csv | 4040 (+22) | 40% | |
188
+ | <ins>**1.3.3**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4522 (+3)**<ins> | <ins>**45%**<ins> | |
189
+ | 1.3.3 | dpe_immeuble_chauffage_individuel.csv | 5488 (+12) | 55% | |
190
+ | 1.3.3 | dpe_immeuble_chauffage_collectif.csv | 5869 | 58% | |
191
+ | 1.3.3 | dpe_immeuble_chauffage_mixte.csv | 4082 (+42) | 40% | |
192
+ | <ins>**1.3.4**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4600 (+79)**<ins> | <ins>**46% (+1%)**<ins> | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=corpus_dpe.csv) |
193
+ | 1.3.4 | dpe_immeuble_chauffage_individuel.csv | 5488 | 55% | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_individuel.csv) |
194
+ | 1.3.4 | dpe_immeuble_chauffage_collectif.csv | 5876 (+7) | 58% | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_collectif.csv) |
195
+ | 1.3.4 | dpe_immeuble_chauffage_mixte.csv | 4082 (-7) | 40% | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_mixte.csv) |
196
196
 
197
197
  ## Roadmap
198
198
 
package/conso.js CHANGED
@@ -103,11 +103,29 @@ function getConso(coef, type_energie, conso) {
103
103
  * Récupération du coefficient d'émission GES pour le générateur
104
104
  * @param gen_ch {GenerateurChauffageItem||GenerateurEcsItem}
105
105
  * @param suffix {'ch'|'ecs'}
106
+ * @param dateDpe {string} date d'établissement du DPE
106
107
  * @returns {number}
107
108
  */
108
- function getGesCoeffForGenerateur(gen_ch, suffix) {
109
+ function getGesCoeffForGenerateur(gen_ch, suffix, dateDpe) {
109
110
  const typeEnergie = getTypeEnergie(gen_ch.donnee_entree, suffix);
110
111
 
112
+ let anneeDpe;
113
+ try {
114
+ if (gen_ch.donnee_entree.date_arrete_reseau_chaleur) {
115
+ anneeDpe = new Date(gen_ch.donnee_entree.date_arrete_reseau_chaleur).getFullYear() - 1;
116
+ } else {
117
+ anneeDpe = new Date(dateDpe).getFullYear() - 1;
118
+ }
119
+
120
+ if (anneeDpe < 2024) {
121
+ anneeDpe = 2022;
122
+ }
123
+ } catch (e) {
124
+ anneeDpe = 2022;
125
+ }
126
+
127
+ const key_reseau_chaleur = `reseau_chaleur_${anneeDpe}`;
128
+
111
129
  /**
112
130
  * Cas spécifique des réseaux de chaleur urbain qui ont des coefficients différents en fonction de réseau de distribution
113
131
  */
@@ -115,7 +133,7 @@ function getGesCoeffForGenerateur(gen_ch, suffix) {
115
133
  const identifiant_reseau = gen_ch.donnee_entree.identifiant_reseau_chaleur;
116
134
 
117
135
  if (identifiant_reseau) {
118
- const row = tv('reseau_chaleur_2022', { identifiant_reseau });
136
+ const row = tv(key_reseau_chaleur, { identifiant_reseau });
119
137
 
120
138
  if (row) {
121
139
  return row.contenu_co2_acv;
@@ -142,7 +160,8 @@ export default function calc_conso(
142
160
  ecs,
143
161
  fr,
144
162
  prorataECS,
145
- prorataChauffage
163
+ prorataChauffage,
164
+ dateDpe
146
165
  ) {
147
166
  const gen_ch = ch.reduce((acc, ch) => {
148
167
  const generateur_chauffage = ch.generateur_chauffage_collection.generateur_chauffage;
@@ -158,7 +177,7 @@ export default function calc_conso(
158
177
  ch.donnee_entree.enum_methode_calcul_conso_id;
159
178
  value.donnee_entree.enum_type_installation_id = ch.donnee_entree.enum_type_installation_id;
160
179
  (value.donnee_utilisateur = value.donnee_utilisateur || {}).coeffEmissionGes =
161
- getGesCoeffForGenerateur(value, 'ch');
180
+ getGesCoeffForGenerateur(value, 'ch', dateDpe);
162
181
  });
163
182
  return acc.concat(generateur_chauffage);
164
183
  }, []);
@@ -171,7 +190,7 @@ export default function calc_conso(
171
190
  value.donnee_entree.cle_repartition_ecs =
172
191
  (ecs.donnee_entree.cle_repartition_ecs || 1) * (ecs.donnee_entree.rdim || 1);
173
192
  (value.donnee_utilisateur = value.donnee_utilisateur || {}).coeffEmissionGes =
174
- getGesCoeffForGenerateur(value, 'ecs');
193
+ getGesCoeffForGenerateur(value, 'ecs', dateDpe);
175
194
  });
176
195
  }
177
196
  return acc.concat(generateur_ecs);
@@ -1,6 +1,6 @@
1
1
  export class ApplicationConfig {
2
2
  get ademeRepositoryVersion() {
3
- return 'dpe-mdd-v8.2.1-controle-1.21.8-audit-mdd-v4.4.0-controle-1.9.9-ajout-nom-organisme-qualification';
3
+ return 'fix-pont-thermique-et-warning-audit-copro';
4
4
  }
5
5
 
6
6
  get ademeRepositoryUrl() {
@@ -26,9 +26,13 @@ export class FileStore {
26
26
  resolve(data);
27
27
  }
28
28
  });
29
- }).then((fileContent) =>
30
- this.#excelWorkBookToJson(XLSX.read(fileContent, { type: 'buffer', raw: false }))
31
- );
29
+ })
30
+ .then((fileContent) =>
31
+ this.#excelWorkBookToJson(XLSX.read(fileContent, { type: 'buffer', raw: false }))
32
+ )
33
+ .catch((error) => {
34
+ console.error(`Could not parse file: ${filePath}, reason: ${error.message}`);
35
+ });
32
36
  }
33
37
 
34
38
  /**
package/engine.js CHANGED
@@ -35,6 +35,7 @@ const productionENR = new ProductionENR();
35
35
  export function calcul_3cl(dpe) {
36
36
  sanitize_dpe(dpe);
37
37
  const modele = enums.modele_dpe[dpe.administratif.enum_modele_dpe_id];
38
+ const dateDpe = dpe.administratif.date_etablissement_dpe;
38
39
  if (modele !== 'dpe 3cl 2021 méthode logement') {
39
40
  console.error('Moteur dpe non implémenté pour le modèle: ' + modele);
40
41
  return null;
@@ -500,7 +501,8 @@ export function calcul_3cl(dpe) {
500
501
  ecs,
501
502
  clim,
502
503
  prorataECS,
503
- prorataChauffage
504
+ prorataChauffage,
505
+ dateDpe
504
506
  );
505
507
 
506
508
  const production_electricite = productionENR.calculateEnr(
package/enums.js CHANGED
@@ -7,7 +7,8 @@ const enums = {
7
7
  "2.1": "version de fin de validation incluant les contrôles de cohérences",
8
8
  "2.2": "version de préparation de compatibilité audit/dpe",
9
9
  "2.3": "version corrective de janvier 2023",
10
- "2.4": "version correspondant à l'arrêté des seuils pour les petites surfaces"
10
+ "2.4": "version correspondant à l'arrêté des seuils pour les petites surfaces",
11
+ "2.5": "version correspondant à l'obligation de saisie du numéro fiscal de local"
11
12
  },
12
13
  "modele_dpe": {
13
14
  "1": "dpe 3cl 2021 méthode logement",
@@ -49,6 +50,15 @@ const enums = {
49
50
  "31": "locaux d'entreprise (bureaux)",
50
51
  "32": "autres tertiaires non erp"
51
52
  },
53
+ "consentement_formulaire": {
54
+ "0": "absence de consentement",
55
+ "1": "consentement fourni",
56
+ "2": "consentement non requis"
57
+ },
58
+ "commanditaire": {
59
+ "1": "propriétaire",
60
+ "2": "non propriétaire"
61
+ },
52
62
  "categorie_erp": {
53
63
  "1": "1ère catégorie",
54
64
  "2": "2ème catégorie",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open3cl/engine",
3
- "version": "1.3.4",
3
+ "version": "1.3.5",
4
4
  "description": "Open Source 3CL-DPE engine",
5
5
  "main": "index.js",
6
6
  "directories": {
@@ -19,6 +19,7 @@
19
19
  "test:corpus:ch-col": "node test/corpus/run_corpus_checks.js --corpus-file-path=test/corpus/dpe_immeuble_chauffage_collectif.csv",
20
20
  "test:corpus:ch-mix": "node test/corpus/run_corpus_checks.js --corpus-file-path=test/corpus/dpe_immeuble_chauffage_mixte.csv",
21
21
  "test:corpus:all": "npm run test:corpus && npm run test:corpus:ch-ind && npm run test:corpus:ch-col && npm run test:corpus:ch-mix",
22
+ "test:corpus:all+database": "npm run test:corpus:all && node test/corpus/corpus_database.js",
22
23
  "qa:lint": "eslint .",
23
24
  "qa:lint:fix": "npm run qa:lint -- --fix",
24
25
  "qa:duplication": "jscpd",
Binary file