@open3cl/engine 1.3.24 → 1.4.0
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/16.2_production_enr.js +56 -3
- package/README.md +85 -72
- package/conso.js +36 -13
- package/engine.js +47 -11
- package/features/dpe/domain/models/mur.model.ts +2 -0
- package/features/dpe/domain/models/plancher.model.ts +2 -1
- package/package.json +5 -2
package/16.2_production_enr.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import enums from './enums.js';
|
|
2
2
|
import { mois_liste, tv } from './utils.js';
|
|
3
3
|
import tvs from './tv.js';
|
|
4
|
+
import { COEFF_EP_1_9, COEFF_EP_2_3 } from './conso.js';
|
|
4
5
|
|
|
5
6
|
export class ProductionENR {
|
|
6
7
|
#taplpi = {
|
|
@@ -19,7 +20,7 @@ export class ProductionENR {
|
|
|
19
20
|
* @param productionElecEnr
|
|
20
21
|
* @param Sh {string}
|
|
21
22
|
*/
|
|
22
|
-
calculateEnr(productionElecEnr, conso, Sh, th, zc_id) {
|
|
23
|
+
calculateEnr(productionElecEnr, conso, Sh, th, zc_id, use_coeff_ch_elec_2_3) {
|
|
23
24
|
const productionElectricite = {
|
|
24
25
|
conso_elec_ac: 0,
|
|
25
26
|
production_pv: 0,
|
|
@@ -40,8 +41,11 @@ export class ProductionENR {
|
|
|
40
41
|
// Calcul de l'électricité auto-consommée pour chaque enveloppe
|
|
41
42
|
this.calculateConsoElecAc(productionElectricite, productionElecEnr, conso, zc_id, th, Sh);
|
|
42
43
|
|
|
43
|
-
// Mise à jour des consommations
|
|
44
|
+
// Mise à jour des consommations d'énergie finale en minorant l'énergie consommée par l'énergie autoconsommée par le poste
|
|
44
45
|
this.updateEfConso(productionElectricite, conso, Sh);
|
|
46
|
+
|
|
47
|
+
// Mise à jour des consommations d'énergie primaire en minorant l'énergie consommée par l'énergie autoconsommée par le poste
|
|
48
|
+
this.updateEPConso(productionElectricite, conso, Sh, use_coeff_ch_elec_2_3);
|
|
45
49
|
}
|
|
46
50
|
|
|
47
51
|
return {
|
|
@@ -150,7 +154,7 @@ export class ProductionENR {
|
|
|
150
154
|
}
|
|
151
155
|
|
|
152
156
|
/**
|
|
153
|
-
* Mise à jour des consommations ef en minorant l'énergie consommée par l'énergie autoconsommée par chaque enveloppe
|
|
157
|
+
* Mise à jour des consommations ef en minorant l'énergie finale consommée par l'énergie autoconsommée par chaque enveloppe
|
|
154
158
|
* @param productionElectricite
|
|
155
159
|
* @param conso
|
|
156
160
|
* @param Sh
|
|
@@ -172,6 +176,55 @@ export class ProductionENR {
|
|
|
172
176
|
conso.ef_conso.conso_5_usages_m2 = Math.floor(conso.ef_conso.conso_5_usages / Sh);
|
|
173
177
|
}
|
|
174
178
|
|
|
179
|
+
/**
|
|
180
|
+
* Mise à jour des consommations ef en minorant l'énergie primaire consommée par l'énergie autoconsommée par chaque enveloppe
|
|
181
|
+
* @param productionElectricite
|
|
182
|
+
* @param conso {{ep_conso: Ep_conso}}
|
|
183
|
+
* @param Sh {number}
|
|
184
|
+
* @param use_coeff_ch_elec_2_3 {boolean} "true" pour ne pas utiliser le dernier coeff de chauffage électrique
|
|
185
|
+
*/
|
|
186
|
+
updateEPConso(productionElectricite, conso, Sh, use_coeff_ch_elec_2_3) {
|
|
187
|
+
if (use_coeff_ch_elec_2_3) {
|
|
188
|
+
conso.ep_conso.ep_conso_ecs -= COEFF_EP_2_3 * productionElectricite.conso_elec_ac_ecs;
|
|
189
|
+
conso.ep_conso.ep_conso_ch -= COEFF_EP_2_3 * productionElectricite.conso_elec_ac_ch;
|
|
190
|
+
conso.ep_conso.ep_conso_fr -= COEFF_EP_2_3 * productionElectricite.conso_elec_ac_fr;
|
|
191
|
+
conso.ep_conso.ep_conso_eclairage -=
|
|
192
|
+
COEFF_EP_2_3 * productionElectricite.conso_elec_ac_eclairage;
|
|
193
|
+
conso.ep_conso.ep_conso_totale_auxiliaire -=
|
|
194
|
+
COEFF_EP_2_3 * productionElectricite.conso_elec_ac_auxiliaire;
|
|
195
|
+
|
|
196
|
+
const conso_elec =
|
|
197
|
+
productionElectricite.conso_elec_ac_ecs +
|
|
198
|
+
productionElectricite.conso_elec_ac_ch +
|
|
199
|
+
productionElectricite.conso_elec_ac_fr +
|
|
200
|
+
productionElectricite.conso_elec_ac_eclairage +
|
|
201
|
+
productionElectricite.conso_elec_ac_auxiliaire;
|
|
202
|
+
|
|
203
|
+
conso.ep_conso.ep_conso_5_usages -= COEFF_EP_2_3 * conso_elec;
|
|
204
|
+
|
|
205
|
+
conso.ep_conso.ep_conso_5_usages_m2 = Math.floor(conso.ep_conso.ep_conso_5_usages / Sh);
|
|
206
|
+
} else {
|
|
207
|
+
conso.ep_conso.ep_conso_ecs -= COEFF_EP_1_9 * productionElectricite.conso_elec_ac_ecs;
|
|
208
|
+
conso.ep_conso.ep_conso_ch -= COEFF_EP_1_9 * productionElectricite.conso_elec_ac_ch;
|
|
209
|
+
conso.ep_conso.ep_conso_fr -= COEFF_EP_1_9 * productionElectricite.conso_elec_ac_fr;
|
|
210
|
+
conso.ep_conso.ep_conso_eclairage -=
|
|
211
|
+
COEFF_EP_1_9 * productionElectricite.conso_elec_ac_eclairage;
|
|
212
|
+
conso.ep_conso.ep_conso_totale_auxiliaire -=
|
|
213
|
+
COEFF_EP_1_9 * productionElectricite.conso_elec_ac_auxiliaire;
|
|
214
|
+
|
|
215
|
+
const conso_elec =
|
|
216
|
+
productionElectricite.conso_elec_ac_ecs +
|
|
217
|
+
productionElectricite.conso_elec_ac_ch +
|
|
218
|
+
productionElectricite.conso_elec_ac_fr +
|
|
219
|
+
productionElectricite.conso_elec_ac_eclairage +
|
|
220
|
+
productionElectricite.conso_elec_ac_auxiliaire;
|
|
221
|
+
|
|
222
|
+
conso.ep_conso.ep_conso_5_usages -= COEFF_EP_1_9 * conso_elec;
|
|
223
|
+
|
|
224
|
+
conso.ep_conso.ep_conso_5_usages_m2 = Math.floor(conso.ep_conso.ep_conso_5_usages / Sh);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
175
228
|
/**
|
|
176
229
|
* Calcul des taux d'autoproduction consommés pour chaque enveloppe
|
|
177
230
|
* @param efConso {Ef_conso}
|
package/README.md
CHANGED
|
@@ -71,11 +71,14 @@ Vous devez d'abord installer [NodeJS](https://nodejs.org/en) en version 20 ou su
|
|
|
71
71
|
npm install @open3cl/engine
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
## Démonstration
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
Il est possible d'analyser un dpe pour tester la lib
|
|
77
|
+
Open3CL: [https://open3cl.github.io/engine](https://open3cl.github.io/engine/build/).
|
|
78
|
+
Un dpe au format XML peut être chargé, il sera envoyé à la lib Open3CL. Un visuel permet de voir les informations
|
|
79
|
+
du dpe d'origine ainsi que du dpe en sortie de la lib ainsi qu'un différentiel.
|
|
77
80
|
|
|
78
|
-
|
|
81
|
+
C'est un bon moyen de détecter un éventuel problème dans le dpe ou la librairie.
|
|
79
82
|
|
|
80
83
|
## Utilisation
|
|
81
84
|
|
|
@@ -180,6 +183,8 @@ Il existe actuellement 8 corpus (avec 10000 dpe analysés dans chaque corpus) :
|
|
|
180
183
|
Par défaut, le corpus utilisé est présent ici : [test/corpus/corpus_dpe.csv](test/corpus/files/corpus_dpe.csv)
|
|
181
184
|
- `npm run test:corpus -- dpes-folder-path=/home/user/dpes`. Chemin vers le dossier ou les DPE seront téléchargés. Si un
|
|
182
185
|
fichier DPE est déjà présent dans ce dossier, il ne sera pas retéléchargé.
|
|
186
|
+
- `npm run test:corpus -- dpes-code=2592E1233185X`. Execution du corpus sur le dpe spécifié.
|
|
187
|
+
- Si le dpe n'est pas présent en local, il sera téléchargé sur le site de l'ADEME.
|
|
183
188
|
|
|
184
189
|
### Résultats corpus
|
|
185
190
|
|
|
@@ -188,78 +193,86 @@ Résultats des tests de corpus avec le mode de compatibilité activé.
|
|
|
188
193
|
<details>
|
|
189
194
|
<summary>Voir les versions précédents</summary>
|
|
190
195
|
|
|
191
|
-
| Version librairie | corpus
|
|
192
|
-
| :------------------- |
|
|
193
|
-
| <ins>**1.2.3**<ins> | <ins>**corpus_dpe.csv**<ins>
|
|
194
|
-
| 1.2.3 | dpe_immeuble_chauffage_individuel.csv
|
|
195
|
-
| 1.2.3 | dpe_immeuble_chauffage_collectif.csv
|
|
196
|
-
| 1.2.3 | dpe_immeuble_chauffage_mixte.csv
|
|
197
|
-
| <ins>**1.2.8**<ins> | <ins>**corpus_dpe.csv**<ins>
|
|
198
|
-
| 1.2.8 | dpe_immeuble_chauffage_individuel.csv
|
|
199
|
-
| 1.2.8 | dpe_immeuble_chauffage_collectif.csv
|
|
200
|
-
| 1.2.8 | dpe_immeuble_chauffage_mixte.csv
|
|
201
|
-
| <ins>**1.3.1**<ins> | <ins>**corpus_dpe.csv**<ins>
|
|
202
|
-
| 1.3.1 | dpe_immeuble_chauffage_individuel.csv
|
|
203
|
-
| 1.3.1 | dpe_immeuble_chauffage_collectif.csv
|
|
204
|
-
| 1.3.1 | dpe_immeuble_chauffage_mixte.csv
|
|
205
|
-
| <ins>**1.3.2**<ins> | <ins>**corpus_dpe.csv**<ins>
|
|
206
|
-
| 1.3.2 | dpe_immeuble_chauffage_individuel.csv
|
|
207
|
-
| 1.3.2 | dpe_immeuble_chauffage_collectif.csv
|
|
208
|
-
| 1.3.2 | dpe_immeuble_chauffage_mixte.csv
|
|
209
|
-
| <ins>**1.3.5**<ins> | <ins>**corpus_dpe.csv**<ins>
|
|
210
|
-
| 1.3.5 | dpe_immeuble_chauffage_individuel.csv
|
|
211
|
-
| 1.3.5 | dpe_immeuble_chauffage_collectif.csv
|
|
212
|
-
| 1.3.5 | dpe_immeuble_chauffage_mixte.csv
|
|
213
|
-
| <ins>**1.3.6**<ins> | <ins>**corpus_dpe.csv**<ins>
|
|
214
|
-
| 1.3.6 | dpe_immeuble_chauffage_individuel.csv
|
|
215
|
-
| 1.3.6 | dpe_immeuble_chauffage_collectif.csv
|
|
216
|
-
| 1.3.6 | dpe_immeuble_chauffage_mixte.csv
|
|
217
|
-
| <ins>**1.3.7**<ins> | <ins>**corpus_dpe.csv**<ins>
|
|
218
|
-
| 1.3.7 | dpe_immeuble_chauffage_individuel.csv
|
|
219
|
-
| 1.3.7 | dpe_immeuble_chauffage_collectif.csv
|
|
220
|
-
| 1.3.7 | dpe_immeuble_chauffage_mixte.csv
|
|
221
|
-
| <ins>**1.3.8**<ins> | <ins>**corpus_dpe.csv**<ins>
|
|
222
|
-
| 1.3.8 | dpe_immeuble_chauffage_individuel.csv
|
|
223
|
-
| 1.3.8 | dpe_immeuble_chauffage_collectif.csv
|
|
224
|
-
| 1.3.8 | dpe_immeuble_chauffage_mixte.csv
|
|
225
|
-
| <ins>**1.3.9**<ins> | <ins>**corpus_dpe.csv**<ins>
|
|
226
|
-
| 1.3.9 | dpe_immeuble_chauffage_individuel.csv
|
|
227
|
-
| 1.3.9 | dpe_immeuble_chauffage_collectif.csv
|
|
228
|
-
| 1.3.9 | dpe_immeuble_chauffage_mixte.csv
|
|
229
|
-
| <ins>**1.3.11**<ins> | <ins>**corpus_dpe.csv**<ins>
|
|
230
|
-
| 1.3.11 | dpe_immeuble_chauffage_individuel.csv
|
|
231
|
-
| 1.3.11 | dpe_immeuble_chauffage_collectif.csv
|
|
232
|
-
| 1.3.11 | dpe_immeuble_chauffage_mixte.csv
|
|
233
|
-
| <ins>**1.3.12**<ins> | <ins>**corpus_dpe.csv**<ins>
|
|
234
|
-
| 1.3.12 | dpe_logement_individuel_2025.csv
|
|
235
|
-
| 1.3.12 | dpe_immeuble_chauffage_individuel.csv
|
|
236
|
-
| 1.3.12 | dpe_immeuble_chauffage_collectif.csv
|
|
237
|
-
| 1.3.12 | dpe_immeuble_chauffage_mixte.csv
|
|
238
|
-
| <ins>**1.3.15**<ins> | <ins>**corpus_dpe.csv**<ins>
|
|
239
|
-
| 1.3.15 | dpe_logement_individuel_2025.csv
|
|
240
|
-
| 1.3.15 | dpe_immeuble_chauffage_individuel.csv
|
|
241
|
-
| 1.3.15 | dpe_immeuble_chauffage_collectif.csv
|
|
242
|
-
| 1.3.15 | dpe_immeuble_chauffage_mixte.csv
|
|
196
|
+
| Version librairie | corpus | Nb en dessous du taux d'erreur | Taux de réussite | Description |
|
|
197
|
+
| :------------------- | -------------------------------------------------------- | ------------------------------ | ----------------------- | ------------------------------------------------- |
|
|
198
|
+
| <ins>**1.2.3**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4489**<ins> | <ins>**45%**<ins> | |
|
|
199
|
+
| 1.2.3 | dpe_immeuble_chauffage_individuel.csv | 3257 | 32% | |
|
|
200
|
+
| 1.2.3 | dpe_immeuble_chauffage_collectif.csv | 5279 | 53% | |
|
|
201
|
+
| 1.2.3 | dpe_immeuble_chauffage_mixte.csv | 2728 | 27% | |
|
|
202
|
+
| <ins>**1.2.8**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**489**<ins> | <ins>**45%**<ins> | |
|
|
203
|
+
| 1.2.8 | dpe_immeuble_chauffage_individuel.csv | 5275 (+2018) | 53% (+21%) | |
|
|
204
|
+
| 1.2.8 | dpe_immeuble_chauffage_collectif.csv | 5747 (+468) | 57% (+4%) | |
|
|
205
|
+
| 1.2.8 | dpe_immeuble_chauffage_mixte.csv | 3142 (+414) | 31% (+4%) | |
|
|
206
|
+
| <ins>**1.3.1**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4508 (+19)**<ins> | <ins>**45%**<ins> | |
|
|
207
|
+
| 1.3.1 | dpe_immeuble_chauffage_individuel.csv | 5459 (+184) | 55% (+2%) | |
|
|
208
|
+
| 1.3.1 | dpe_immeuble_chauffage_collectif.csv | 5848 (+101) | 58% (+1%) | |
|
|
209
|
+
| 1.3.1 | dpe_immeuble_chauffage_mixte.csv | 4018 (+876) | 40% (+9%) | |
|
|
210
|
+
| <ins>**1.3.2**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4519 (+11)**<ins> | <ins>**45%**<ins> | |
|
|
211
|
+
| 1.3.2 | dpe_immeuble_chauffage_individuel.csv | 5476 (+17) | 55% | |
|
|
212
|
+
| 1.3.2 | dpe_immeuble_chauffage_collectif.csv | 5869 (+21) | 58% | |
|
|
213
|
+
| 1.3.2 | dpe_immeuble_chauffage_mixte.csv | 4040 (+22) | 40% | |
|
|
214
|
+
| <ins>**1.3.5**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4522 (+3)**<ins> | <ins>**45%**<ins> | |
|
|
215
|
+
| 1.3.5 | dpe_immeuble_chauffage_individuel.csv | 5488 (+12) | 55% | |
|
|
216
|
+
| 1.3.5 | dpe_immeuble_chauffage_collectif.csv | 5869 | 58% | |
|
|
217
|
+
| 1.3.5 | dpe_immeuble_chauffage_mixte.csv | 4082 (+42) | 40% | |
|
|
218
|
+
| <ins>**1.3.6**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4522**<ins> | <ins>**45%**<ins> | |
|
|
219
|
+
| 1.3.6 | dpe_immeuble_chauffage_individuel.csv | 5650 (+162) | 56% | |
|
|
220
|
+
| 1.3.6 | dpe_immeuble_chauffage_collectif.csv | 5894 (+25) | 59% (+1%) | |
|
|
221
|
+
| 1.3.6 | dpe_immeuble_chauffage_mixte.csv | 4141 (+59) | 41% (+1%) | |
|
|
222
|
+
| <ins>**1.3.7**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4522**<ins> | <ins>**45%**<ins> | |
|
|
223
|
+
| 1.3.7 | dpe_immeuble_chauffage_individuel.csv | 6960 (+1310) | 69% (+13%) | |
|
|
224
|
+
| 1.3.7 | dpe_immeuble_chauffage_collectif.csv | 6106 (+212) | 61% (+2%) | |
|
|
225
|
+
| 1.3.7 | dpe_immeuble_chauffage_mixte.csv | 4730 (+589) | 47% (+6%) | |
|
|
226
|
+
| <ins>**1.3.8**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4522**<ins> | <ins>**45%**<ins> | |
|
|
227
|
+
| 1.3.8 | dpe_immeuble_chauffage_individuel.csv | 6965 (+5) | 69% | |
|
|
228
|
+
| 1.3.8 | dpe_immeuble_chauffage_collectif.csv | 6110 (+4) | 61% | |
|
|
229
|
+
| 1.3.8 | dpe_immeuble_chauffage_mixte.csv | 4735 (+5) | 47% | |
|
|
230
|
+
| <ins>**1.3.9**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4460**<ins> (-62) | <ins>**44% (-1%)**<ins> | Pertes liés au fix bug tribu zone 2hd valeur dh19 |
|
|
231
|
+
| 1.3.9 | dpe_immeuble_chauffage_individuel.csv | 6901 (-64) | 69% | Pertes liés au fix bug tribu zone 2hd valeur dh19 |
|
|
232
|
+
| 1.3.9 | dpe_immeuble_chauffage_collectif.csv | 6058 (-58) | 60% (-1%) | Pertes liés au fix bug tribu zone 2hd valeur dh19 |
|
|
233
|
+
| 1.3.9 | dpe_immeuble_chauffage_mixte.csv | 4728 (-7) | 47% | Pertes liés au fix bug tribu zone 2hd valeur dh19 |
|
|
234
|
+
| <ins>**1.3.11**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4468**<ins> (+8) | <ins>**44%**<ins> | |
|
|
235
|
+
| 1.3.11 | dpe_immeuble_chauffage_individuel.csv | 6901 | 69% | |
|
|
236
|
+
| 1.3.11 | dpe_immeuble_chauffage_collectif.csv | 6058 | 60% | |
|
|
237
|
+
| 1.3.11 | dpe_immeuble_chauffage_mixte.csv | 4727 (-1) | 47% | Dpes erronés sur le calcul volume ballon ecs |
|
|
238
|
+
| <ins>**1.3.12**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4467**<ins> (-1) | <ins>**44%**<ins> | Dpe erroné avec surface chauffée invalide |
|
|
239
|
+
| 1.3.12 | dpe_logement_individuel_2025.csv | 8429 | 84% | |
|
|
240
|
+
| 1.3.12 | dpe_immeuble_chauffage_individuel.csv | 6900 (-1) | 69% | Dpe erroné avec surface chauffée invalide |
|
|
241
|
+
| 1.3.12 | dpe_immeuble_chauffage_collectif.csv | 6058 | 60% | |
|
|
242
|
+
| 1.3.12 | dpe_immeuble_chauffage_mixte.csv | 4725 (-2) | 47% | Dpe erroné avec surface chauffée invalide |
|
|
243
|
+
| <ins>**1.3.15**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4481**<ins> (+14) | <ins>**45 (+1%)**<ins> | |
|
|
244
|
+
| 1.3.15 | dpe_logement_individuel_2025.csv | 8453 | 84% | |
|
|
245
|
+
| 1.3.15 | dpe_immeuble_chauffage_individuel.csv | 7106 (+205) | 71% (+2%) | |
|
|
246
|
+
| 1.3.15 | dpe_immeuble_chauffage_collectif.csv | 6083 (+25) | 61% (+1%) | |
|
|
247
|
+
| 1.3.15 | dpe_immeuble_chauffage_mixte.csv | 4751 (+24) | 47% | |
|
|
248
|
+
| <ins>**1.3.20**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4500**<ins> (+19) | <ins>**45%**<ins> | |
|
|
249
|
+
| 1.3.20 | dpe_logement_individuel_2025.csv | 8459 (+6) | 84% | |
|
|
250
|
+
| 1.3.20 | dpe_maison_individuelle_2025.csv | 8638 | 86% | |
|
|
251
|
+
| 1.3.20 | dpe_appartement_individuel_chauffage_individuel_2025.csv | 8561 | 86% | |
|
|
252
|
+
| 1.3.20 | dpe_immeuble_chauffage_individuel.csv | 7106 | 71% | |
|
|
253
|
+
| 1.3.20 | dpe_immeuble_chauffage_collectif.csv | 6083 | 61% | |
|
|
254
|
+
| 1.3.20 | dpe_immeuble_chauffage_mixte.csv | 4751 | 47% | |
|
|
243
255
|
|
|
244
256
|
</details>
|
|
245
257
|
|
|
246
|
-
| Version librairie | corpus | Nb en dessous du taux d'erreur | Taux de réussite | Description
|
|
247
|
-
| :------------------- | -------------------------------------------------------- | ------------------------------ | ----------------- |
|
|
248
|
-
| <ins>**1.3.
|
|
249
|
-
| 1.3.
|
|
250
|
-
| 1.3.
|
|
251
|
-
| 1.3.
|
|
252
|
-
| 1.3.
|
|
253
|
-
| 1.3.
|
|
254
|
-
| 1.3.
|
|
255
|
-
|
|
|
256
|
-
| 1.3.
|
|
257
|
-
| 1.3.
|
|
258
|
-
| 1.3.
|
|
259
|
-
| 1.3.
|
|
260
|
-
| 1.3.
|
|
261
|
-
| 1.3.
|
|
262
|
-
| 1.3.
|
|
258
|
+
| Version librairie | corpus | Nb en dessous du taux d'erreur | Taux de réussite | Description |
|
|
259
|
+
| :------------------- | -------------------------------------------------------- | ------------------------------ | ----------------- | ----------------------------- |
|
|
260
|
+
| <ins>**1.3.21**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4502**<ins> (+2) | <ins>**45%**<ins> | |
|
|
261
|
+
| 1.3.21 | dpe_logement_individuel_2025.csv | 8504 (+45) | 85% (+1%) | |
|
|
262
|
+
| 1.3.21 | dpe_maison_individuelle_2025.csv | 8652 (+14) | 86% | |
|
|
263
|
+
| 1.3.21 | dpe_appartement_individuel_chauffage_individuel_2025.csv | 8578 (+17) | 86% | |
|
|
264
|
+
| 1.3.21 | dpe_appartement_individuel_chauffage_collectif_2025.csv | 6681 | 67% | |
|
|
265
|
+
| 1.3.21 | dpe_immeuble_chauffage_individuel.csv | 7144 (+38) | 71% | |
|
|
266
|
+
| 1.3.21 | dpe_immeuble_chauffage_collectif.csv | 6144 (+61) | 61% | |
|
|
267
|
+
| 1.3.21 | dpe_immeuble_chauffage_mixte.csv | 4760 (+9) | 47% | |
|
|
268
|
+
| <ins>**1.3.25**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4515**<ins> (+2) | <ins>**45%**<ins> | |
|
|
269
|
+
| 1.3.25 | dpe_logement_individuel_2025.csv | 8512 (+8) | 85% | |
|
|
270
|
+
| 1.3.25 | dpe_maison_individuelle_2025.csv | 8674 (+22) | 87% (+1%) | |
|
|
271
|
+
| 1.3.25 | dpe_appartement_individuel_chauffage_individuel_2025.csv | 8581 (+3) | 86% | |
|
|
272
|
+
| 1.3.25 | dpe_appartement_individuel_chauffage_collectif_2025.csv | 6680 (-1) | 67% | Dpe erronés enlevés du corpus |
|
|
273
|
+
| 1.3.25 | dpe_immeuble_chauffage_individuel.csv | 7142 (-2) | 71% | Dpe erronés enlevés du corpus |
|
|
274
|
+
| 1.3.25 | dpe_immeuble_chauffage_collectif.csv | 6144 | 61% | |
|
|
275
|
+
| 1.3.25 | dpe_immeuble_chauffage_mixte.csv | 4758 (-2) | 47% | Dpe erronés enlevés du corpus |
|
|
263
276
|
|
|
264
277
|
## Roadmap
|
|
265
278
|
|
package/conso.js
CHANGED
|
@@ -3,16 +3,36 @@ import calc_conso_eclairage from './16_conso_eclairage.js';
|
|
|
3
3
|
import tvs from './tv.js';
|
|
4
4
|
import { tv } from './utils.js';
|
|
5
5
|
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
export const COEFF_EP_2_3 = 2.3;
|
|
7
|
+
export const COEFF_EP_1_9 = 1.9;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Coeff de chauffage 1.9 au 01/01/2026
|
|
11
|
+
* @link {https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000052134589}
|
|
12
|
+
*/
|
|
13
|
+
export const coef_ep = {
|
|
14
|
+
'électricité ch': COEFF_EP_1_9,
|
|
15
|
+
'électricité ecs': COEFF_EP_1_9,
|
|
16
|
+
'électricité fr': COEFF_EP_1_9,
|
|
17
|
+
'électricité éclairage': COEFF_EP_1_9,
|
|
18
|
+
'électricité auxiliaire': COEFF_EP_1_9
|
|
12
19
|
};
|
|
13
20
|
|
|
14
|
-
|
|
15
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Coeff de chauffage 2.3 avant le 01/01/2026
|
|
23
|
+
*/
|
|
24
|
+
export const coef_ep_2_3 = {
|
|
25
|
+
'électricité ch': COEFF_EP_2_3,
|
|
26
|
+
'électricité ecs': COEFF_EP_2_3,
|
|
27
|
+
'électricité fr': COEFF_EP_2_3,
|
|
28
|
+
'électricité éclairage': COEFF_EP_2_3,
|
|
29
|
+
'électricité auxiliaire': COEFF_EP_2_3
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Au 31 mars 2021
|
|
34
|
+
* @link {https://www.legifrance.gouv.fr/download/pdf?id=doxMrRr0wbfJVvtWjfDP4gHzzERt1iX0PtobthCE6A0=}
|
|
35
|
+
*/
|
|
16
36
|
const coef_ges = {
|
|
17
37
|
'bois – bûches': 0.03,
|
|
18
38
|
'bois – granulés (pellets) ou briquettes': 0.03,
|
|
@@ -32,8 +52,11 @@ const coef_ges = {
|
|
|
32
52
|
'électricité auxiliaire': 0.064
|
|
33
53
|
};
|
|
34
54
|
|
|
35
|
-
|
|
36
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Annexe 7
|
|
57
|
+
* @link {https://www.legifrance.gouv.fr/download/file/doxMrRr0wbfJVvtWjfDP4qE7zNsiFZL-4wqNyqoY-CA=/JOE_TEXTE}
|
|
58
|
+
* @link {https://www.legifrance.gouv.fr/download/pdf?id=7hpbVyq228foxHzNM7WleDImAyXlPNb9zULelSY01V8=}
|
|
59
|
+
*/
|
|
37
60
|
const coef_cout = {
|
|
38
61
|
'fioul domestique': 0.09142,
|
|
39
62
|
'réseau de chauffage urbain': 0.0787,
|
|
@@ -44,7 +67,6 @@ const coef_cout = {
|
|
|
44
67
|
'bois – bûches': 0.03201,
|
|
45
68
|
'bois – plaquettes forestières': 0.03201,
|
|
46
69
|
'bois – plaquettes d’industrie': 0.03201,
|
|
47
|
-
// https://www.legifrance.gouv.fr/download/pdf?id=7hpbVyq228foxHzNM7WleDImAyXlPNb9zULelSY01V8=
|
|
48
70
|
'gaz naturel': cout_gaz_naturel,
|
|
49
71
|
"électricité d'origine renouvelable utilisée dans le bâtiment": cout_electricite,
|
|
50
72
|
'électricité ch': cout_electricite,
|
|
@@ -161,7 +183,8 @@ export default function calc_conso(
|
|
|
161
183
|
fr,
|
|
162
184
|
prorataECS,
|
|
163
185
|
prorataChauffage,
|
|
164
|
-
dateDpe
|
|
186
|
+
dateDpe,
|
|
187
|
+
coeffEp
|
|
165
188
|
) {
|
|
166
189
|
const gen_ch = ch.reduce((acc, ch) => {
|
|
167
190
|
const generateur_chauffage = ch.generateur_chauffage_collection.generateur_chauffage;
|
|
@@ -217,7 +240,7 @@ export default function calc_conso(
|
|
|
217
240
|
gen_ecs,
|
|
218
241
|
fr,
|
|
219
242
|
'ep_conso',
|
|
220
|
-
|
|
243
|
+
coeffEp,
|
|
221
244
|
prorataECS,
|
|
222
245
|
prorataChauffage
|
|
223
246
|
),
|
package/engine.js
CHANGED
|
@@ -7,7 +7,12 @@ import calc_besoin_ch from './9_besoin_ch.js';
|
|
|
7
7
|
import calc_chauffage, { tauxChargeForGenerator } from './9_chauffage.js';
|
|
8
8
|
import calc_confort_ete from './2021_04_13_confort_ete.js';
|
|
9
9
|
import calc_qualite_isolation from './2021_04_13_qualite_isolation.js';
|
|
10
|
-
import calc_conso, {
|
|
10
|
+
import calc_conso, {
|
|
11
|
+
classe_bilan_dpe,
|
|
12
|
+
classe_emission_ges,
|
|
13
|
+
coef_ep,
|
|
14
|
+
coef_ep_2_3
|
|
15
|
+
} from './conso.js';
|
|
11
16
|
import {
|
|
12
17
|
add_references,
|
|
13
18
|
bug_for_bug_compat,
|
|
@@ -20,7 +25,7 @@ import { Inertie } from './7_inertie.js';
|
|
|
20
25
|
import getFicheTechnique from './ficheTechnique.js';
|
|
21
26
|
import { ProductionENR } from './16.2_production_enr.js';
|
|
22
27
|
|
|
23
|
-
const LIB_VERSION = '1.
|
|
28
|
+
const LIB_VERSION = '1.4.0';
|
|
24
29
|
|
|
25
30
|
function calc_th(map_id) {
|
|
26
31
|
const map = enums.methode_application_dpe_log[map_id];
|
|
@@ -38,6 +43,10 @@ export function getVersion() {
|
|
|
38
43
|
return LIB_VERSION;
|
|
39
44
|
}
|
|
40
45
|
|
|
46
|
+
/**
|
|
47
|
+
* @param dpe {FullDpe}
|
|
48
|
+
* @return {FullDpe}
|
|
49
|
+
*/
|
|
41
50
|
export function calcul_3cl(dpe) {
|
|
42
51
|
sanitize_dpe(dpe);
|
|
43
52
|
const modele = enums.modele_dpe[dpe.administratif.enum_modele_dpe_id];
|
|
@@ -507,7 +516,8 @@ export function calcul_3cl(dpe) {
|
|
|
507
516
|
clim,
|
|
508
517
|
prorataECS,
|
|
509
518
|
prorataChauffage,
|
|
510
|
-
dateDpe
|
|
519
|
+
dateDpe,
|
|
520
|
+
coef_ep
|
|
511
521
|
);
|
|
512
522
|
|
|
513
523
|
const production_electricite = productionENR.calculateEnr(
|
|
@@ -515,9 +525,26 @@ export function calcul_3cl(dpe) {
|
|
|
515
525
|
conso,
|
|
516
526
|
Sh,
|
|
517
527
|
th,
|
|
518
|
-
zc_id
|
|
528
|
+
zc_id,
|
|
529
|
+
false
|
|
519
530
|
);
|
|
520
531
|
|
|
532
|
+
const conso2_3 = calc_conso(
|
|
533
|
+
Sh,
|
|
534
|
+
zc_id,
|
|
535
|
+
ca_id,
|
|
536
|
+
vt_list,
|
|
537
|
+
instal_ch,
|
|
538
|
+
ecs,
|
|
539
|
+
clim,
|
|
540
|
+
prorataECS,
|
|
541
|
+
prorataChauffage,
|
|
542
|
+
dateDpe,
|
|
543
|
+
coef_ep_2_3
|
|
544
|
+
);
|
|
545
|
+
|
|
546
|
+
productionENR.calculateEnr(dpe.logement.production_elec_enr, conso2_3, Sh, th, zc_id, true);
|
|
547
|
+
|
|
521
548
|
// get all baie_vitree orientations
|
|
522
549
|
const ph_list = env.plancher_haut_collection.plancher_haut || [];
|
|
523
550
|
logement.sortie = {
|
|
@@ -529,8 +556,17 @@ export function calcul_3cl(dpe) {
|
|
|
529
556
|
...conso
|
|
530
557
|
};
|
|
531
558
|
|
|
532
|
-
|
|
533
|
-
|
|
559
|
+
logement.sortie.ep_conso = {
|
|
560
|
+
...logement.sortie.ep_conso,
|
|
561
|
+
coeff_2_3_classe_bilan_dpe: conso2_3.ep_conso.classe_bilan_dpe,
|
|
562
|
+
coeff_2_3_ep_conso_5_usages: conso2_3.ep_conso.ep_conso_5_usages,
|
|
563
|
+
coeff_2_3_ep_conso_5_usages_m2: conso2_3.ep_conso.ep_conso_5_usages_m2
|
|
564
|
+
};
|
|
565
|
+
|
|
566
|
+
logement.sortie.ep_conso.classe_bilan_dpe_2026 = logement.sortie.ep_conso.classe_bilan_dpe;
|
|
567
|
+
logement.sortie.ep_conso.ep_conso_5_usages_2026 = logement.sortie.ep_conso.ep_conso_5_usages;
|
|
568
|
+
logement.sortie.ep_conso.ep_conso_5_usages_2026_m2 =
|
|
569
|
+
logement.sortie.ep_conso.ep_conso_5_usages_m2;
|
|
534
570
|
|
|
535
571
|
return dpe;
|
|
536
572
|
}
|
|
@@ -568,14 +604,14 @@ export function get_classe_ges_dpe(dpe) {
|
|
|
568
604
|
* {@link https://www.ecologie.gouv.fr/actualites/evolutions-du-calcul-du-dpe-reponses-vos-questions#:~:text=Les%20DPE%20r%C3%A9alis%C3%A9s%20avant%20le,%2DAudit%20de%20l'Ademe.}
|
|
569
605
|
*
|
|
570
606
|
* @param dpe {FullDpe}
|
|
571
|
-
* @returns {{
|
|
607
|
+
* @returns {{ep_conso_5_usages: number; ep_conso_5_usages_m2: number; classe_bilan_dpe: string}}
|
|
572
608
|
*/
|
|
573
609
|
export function get_conso_coeff_1_9_2026(dpe) {
|
|
574
610
|
const zc_id = dpe.logement.meteo.enum_zone_climatique_id;
|
|
575
611
|
const ca_id = dpe.logement.meteo.enum_classe_altitude_id;
|
|
576
612
|
const th = calc_th(dpe.logement.caracteristique_generale.enum_methode_application_dpe_log_id);
|
|
577
613
|
|
|
578
|
-
const
|
|
614
|
+
const ep_conso_5_usages =
|
|
579
615
|
(0.9 / 1.3) *
|
|
580
616
|
(Number(dpe.logement.sortie.ep_conso.ep_conso_5_usages) -
|
|
581
617
|
Number(dpe.logement.sortie.ef_conso.conso_5_usages)) +
|
|
@@ -587,8 +623,8 @@ export function get_conso_coeff_1_9_2026(dpe) {
|
|
|
587
623
|
else if (th === 'immeuble')
|
|
588
624
|
Sh = Number(dpe.logement.caracteristique_generale.surface_habitable_immeuble);
|
|
589
625
|
|
|
590
|
-
const
|
|
591
|
-
const
|
|
626
|
+
const ep_conso_5_usages_m2 = Math.floor(ep_conso_5_usages / Sh);
|
|
627
|
+
const classe_dpe = classe_bilan_dpe(ep_conso_5_usages_m2, zc_id, ca_id, Sh);
|
|
592
628
|
|
|
593
|
-
return {
|
|
629
|
+
return { classe_bilan_dpe: classe_dpe, ep_conso_5_usages_m2, ep_conso_5_usages };
|
|
594
630
|
}
|
|
@@ -14,6 +14,7 @@ export interface MurDE extends DE {
|
|
|
14
14
|
enum_type_adjacence_id?: number; // ENUM type_adjacence
|
|
15
15
|
enum_orientation_id?: number; // ENUM orientation
|
|
16
16
|
surface_paroi_totale?: number;
|
|
17
|
+
surface_paroi_opaque?: number;
|
|
17
18
|
umur0_saisi?: number;
|
|
18
19
|
tv_umur0_id?: number; // TV
|
|
19
20
|
epaisseur_structure?: number;
|
|
@@ -28,6 +29,7 @@ export interface MurDE extends DE {
|
|
|
28
29
|
epaisseur_isolation?: number;
|
|
29
30
|
tv_umur_id?: number; // TV
|
|
30
31
|
enum_methode_saisie_u_id?: number; // ENUM methode_saisie_u
|
|
32
|
+
paroi_lourde?: boolean;
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
export interface MurDI {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open3cl/engine",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Open Source 3CL-DPE engine",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"directories": {
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"access": "public"
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
15
|
+
"http-server": "http-server",
|
|
15
16
|
"test": "vitest run",
|
|
16
17
|
"test:ci": "vitest run --coverage",
|
|
17
18
|
"test:corpus": "node test/corpus/run_all_corpus_checks.js",
|
|
@@ -25,7 +26,8 @@
|
|
|
25
26
|
"release:dry": "semantic-release --dry-run",
|
|
26
27
|
"prepare": "husky install",
|
|
27
28
|
"assets:sync": "node scripts/synchronize_assets.js",
|
|
28
|
-
"version:update": "node scripts/update_version.js"
|
|
29
|
+
"version:update": "node scripts/update_version.js",
|
|
30
|
+
"reports:preview": "npm run http-server dist/reports/corpus -o"
|
|
29
31
|
},
|
|
30
32
|
"repository": {
|
|
31
33
|
"type": "git",
|
|
@@ -38,6 +40,7 @@
|
|
|
38
40
|
"dependencies": {
|
|
39
41
|
"dioma": "^0.4.6",
|
|
40
42
|
"fast-xml-parser": "^4.5.0",
|
|
43
|
+
"http-server": "^14.1.1",
|
|
41
44
|
"lodash-es": "4.17.21",
|
|
42
45
|
"mathjs": "^15.1.0",
|
|
43
46
|
"winston": "3.13.0"
|