@open3cl/engine 1.3.3 → 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/README.md +26 -21
- package/conso.js +24 -5
- package/core/conf/infrastructure/application.config.js +1 -1
- package/core/file/infrastructure/adapter/file.store.js +7 -3
- package/engine.js +3 -1
- package/enums.js +11 -1
- package/package.json +2 -1
- package/tv/18.2_sollicitations_ext.ods +0 -0
- package/tv.js +90927 -78582
package/README.md
CHANGED
|
@@ -167,27 +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
|
|
171
|
-
|
|
|
172
|
-
| 1.2.3
|
|
173
|
-
| 1.2.3
|
|
174
|
-
| 1.2.3
|
|
175
|
-
| 1.2.3
|
|
176
|
-
|
|
|
177
|
-
| 1.2.8
|
|
178
|
-
| 1.2.8
|
|
179
|
-
| 1.2.8
|
|
180
|
-
| 1.
|
|
181
|
-
|
|
|
182
|
-
| 1.3.1
|
|
183
|
-
| 1.3.1
|
|
184
|
-
| 1.3.
|
|
185
|
-
| 1.3.
|
|
186
|
-
|
|
|
187
|
-
| 1.3.2
|
|
188
|
-
| 1.3.
|
|
189
|
-
| 1.3.
|
|
190
|
-
| 1.3.
|
|
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) |
|
|
191
196
|
|
|
192
197
|
## Roadmap
|
|
193
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(
|
|
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);
|
|
@@ -26,9 +26,13 @@ export class FileStore {
|
|
|
26
26
|
resolve(data);
|
|
27
27
|
}
|
|
28
28
|
});
|
|
29
|
-
})
|
|
30
|
-
|
|
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.
|
|
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
|