@open3cl/engine 1.3.11 → 1.3.12

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.
Files changed (3) hide show
  1. package/9_conso_ch.js +38 -3
  2. package/README.md +27 -17
  3. package/package.json +1 -1
package/9_conso_ch.js CHANGED
@@ -3,6 +3,7 @@ import { rendement_emission } from './9_emetteur_ch.js';
3
3
  import { calc_intermittence } from './8_intermittence.js';
4
4
  import tvs from './tv.js';
5
5
  import enums from './enums.js';
6
+ import { isNil } from 'lodash-es';
6
7
 
7
8
  function coef_ch(Fch) {
8
9
  return {
@@ -147,7 +148,10 @@ export function conso_ch(
147
148
  em_filt,
148
149
  GV,
149
150
  Sh,
150
- hsp
151
+ hsp,
152
+ undefined,
153
+ _pos,
154
+ cfg_ch
151
155
  );
152
156
  di.conso_ch = conso_ch;
153
157
  di.conso_ch_depensier = conso_ch_dep;
@@ -156,10 +160,26 @@ export function conso_ch(
156
160
  }
157
161
  }
158
162
 
159
- function calc_conso_ch_default(di, de, bch, bch_dep, coeff, em_filt, GV, Sh, hsp, i0) {
163
+ function calc_conso_ch_default(
164
+ di,
165
+ de,
166
+ bch,
167
+ bch_dep,
168
+ coeff,
169
+ em_filt,
170
+ GV,
171
+ Sh,
172
+ hsp,
173
+ i0,
174
+ _pos,
175
+ cfg_ch
176
+ ) {
160
177
  const hasMultipleEmetteur = em_filt.length > 1;
161
178
 
162
- const emetteur_eq = em_filt.reduce((acc, em) => {
179
+ // On recherche les emetteurs en fonction de la configuration de l'installation et du type de chauffage
180
+ const emetteurs = getEmetteursFromGenerateur(de, em_filt, _pos, cfg_ch);
181
+
182
+ const emetteur_eq = emetteurs.reduce((acc, em) => {
163
183
  const int = calc_intermittence(GV, Sh, hsp, i0 ? i0 : em.donnee_intermediaire.i0);
164
184
  const r_em = rendement_emission(em);
165
185
 
@@ -286,3 +306,18 @@ function calc_ch_base_appoint(
286
306
  di.conso_ch = Math.max(di.conso_ch, 0);
287
307
  }
288
308
  }
309
+
310
+ function getEmetteursFromGenerateur(de, em_filt, pos, cfg_ch) {
311
+ // Cas installation simple + generateurs electriques
312
+ if (
313
+ isChauffageElectrique(de.enum_type_generateur_ch_id) &&
314
+ cfg_ch === 'installation de chauffage simple'
315
+ ) {
316
+ return !isNil(pos) ? [em_filt[pos]] : em_filt;
317
+ }
318
+ return em_filt;
319
+ }
320
+
321
+ function isChauffageElectrique(id) {
322
+ return ['98', '99', '100', '101', '102', '103', '104'].includes(id);
323
+ }
package/README.md CHANGED
@@ -110,11 +110,14 @@ const result = calcul_3cl(dpeData);
110
110
 
111
111
  ## Variables d'environnements
112
112
 
113
- | Nom | Description |
114
- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------- |
115
- | ADEME_API_CLIENT_ID | Client id pour l'api de l'ademe |
116
- | ADEME_API_CLIENT_SECRET | Client secret pour l'api de l'ademe |
117
- | DPE_FOLDER_PATH | Chemin vers lequel sont stockés les fichiers DPE (si non précisé, utiliser `dpes-folder-path` dans la ligne de commande |
113
+ | Nom | Description |
114
+ | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
115
+ | DPE_FOLDER_PATH | **Obligatoire**: Chemin vers lequel sont stockés les fichiers DPE (si non précisé, utiliser `dpes-folder-path` dans la ligne de commande |
116
+ | ADEME_API_CLIENT_ID | Client id pour l'api de l'ademe |
117
+ | ADEME_API_CLIENT_SECRET | Client secret pour l'api de l'ademe |
118
+ | MAX_WORKER_THREADS | Nombre de threads maximum pour les tests de corpus, par défaut: os.availableParallelism \* 1.5 |
119
+ | WORKER_THREADS_CHUNKS | Nombre de dpe à analyser par thread, par défaut: 200 |
120
+ | API_ADEME_DOWNLOAD_WAIT | Temps d'attente en ms entre chaque dpe à télécharger via l'api de l'ademe, par défaut: 1s |
118
121
 
119
122
  Attention aux quotas sur l'api:
120
123
 
@@ -122,6 +125,12 @@ Attention aux quotas sur l'api:
122
125
  - 1000 requêtes / minute
123
126
  - 10000 requêtes / jour
124
127
 
128
+ Dans le cas où un corpus est joué avec beaucoup de dpe à télécharger via l'api de l'ademe (car non présent en local), la meilleure configuration est:
129
+
130
+ - `export MAX_WORKER_THREADS=10`
131
+ - `export API_ADEME_DOWNLOAD_WAIT=1000`
132
+ - `export WORKER_THREADS_CHUNKS=300`
133
+
125
134
  <p align="right">(<a href="#readme-top">Retour sommaire</a>)</p>
126
135
 
127
136
  ## Lancement des tests sur des corpus de DPE
@@ -157,10 +166,11 @@ deperdition_mur,
157
166
  emission_ges_5_usages_m2;
158
167
  ```
159
168
 
160
- - `npm run test:corpus`. Va générer 2 rapports de sortie au format csv (détaillé) et json (global)
169
+ - `npm run test:corpus:all`: Joue l'intégralité des corpus et génère les rapports associés.
170
+ - `npm run test:corpus`. Joue le corpus [corpus_dpe.csv](test/corpus/corpus_dpe.csv) et génère les rapports associés.
161
171
  - `npm run test:corpus -- corpus-file-path=corpus.csv`. Chemin relatif vers le fichier de corpus à analyser
162
172
  Par défaut, le corpus utilisé est présent ici : [test/corpus/corpus_dpe.csv](test/corpus/corpus_dpe.csv)
163
- - `npm run test:corpus -- dpes-folder-path=/home/user/dpes`. Chemin vers le dossier les DPE seront téléchargés. Si un
173
+ - `npm run test:corpus -- dpes-folder-path=/home/user/dpes`. Chemin vers le dossier ou les DPE seront téléchargés. Si un
164
174
  fichier DPE est déjà présent dans ce dossier, il ne sera pas retéléchargé.
165
175
 
166
176
  ### Résultats corpus
@@ -207,16 +217,16 @@ Résultats des tests de corpus avec le mode de compatibilité activé.
207
217
 
208
218
  </details>
209
219
 
210
- | Version librairie | corpus | Nb en dessous du taux d'erreur | Taux de réussite | Description | Détail des valeurs |
211
- | :------------------ | ------------------------------------- | ------------------------------ | ----------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
212
- | <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 | |
213
- | 1.3.9 | dpe_immeuble_chauffage_individuel.csv | 6901 (-64) | 69% | Pertes liés au fix bug tribu zone 2hd valeur dh19 | |
214
- | 1.3.9 | dpe_immeuble_chauffage_collectif.csv | 6058 (-58) | 60% (-1%) | Pertes liés au fix bug tribu zone 2hd valeur dh19 | |
215
- | 1.3.9 | dpe_immeuble_chauffage_mixte.csv | 4728 (-7) | 47% | Pertes liés au fix bug tribu zone 2hd valeur dh19 | |
216
- | <ins>**1.4.0**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4468**<ins> (+8) | <ins>**44%**<ins> | | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=corpus_dpe.csv) |
217
- | 1.4.0 | dpe_immeuble_chauffage_individuel.csv | 6900 (-1) | 69% | Dpes erronés sur le calcul volume ballon ecs | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_individuel.csv) |
218
- | 1.4.0 | dpe_immeuble_chauffage_collectif.csv | 6056 (-2) | 60% | Dpes erronés sur le calcul volume ballon ecs | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_collectif.csv) |
219
- | 1.4.0 | dpe_immeuble_chauffage_mixte.csv | 4727 (-1) | 47% | Dpes erronés sur le calcul volume ballon ecs | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_mixte.csv) |
220
+ | Version librairie | corpus | Nb en dessous du taux d'erreur | Taux de réussite | Description | Détail des valeurs |
221
+ | :------------------- | ------------------------------------- | ------------------------------ | ----------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
222
+ | <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 | |
223
+ | 1.3.9 | dpe_immeuble_chauffage_individuel.csv | 6901 (-64) | 69% | Pertes liés au fix bug tribu zone 2hd valeur dh19 | |
224
+ | 1.3.9 | dpe_immeuble_chauffage_collectif.csv | 6058 (-58) | 60% (-1%) | Pertes liés au fix bug tribu zone 2hd valeur dh19 | |
225
+ | 1.3.9 | dpe_immeuble_chauffage_mixte.csv | 4728 (-7) | 47% | Pertes liés au fix bug tribu zone 2hd valeur dh19 | |
226
+ | <ins>**1.3.11**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4468**<ins> (+8) | <ins>**44%**<ins> | | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=corpus_dpe.csv) |
227
+ | 1.3.11 | dpe_immeuble_chauffage_individuel.csv | 6901 | 69% | | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_individuel.csv) |
228
+ | 1.3.11 | dpe_immeuble_chauffage_collectif.csv | 6058 | 60% | | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_collectif.csv) |
229
+ | 1.3.11 | dpe_immeuble_chauffage_mixte.csv | 4727 (-1) | 47% | Dpes erronés sur le calcul volume ballon ecs | [Voir le détail](https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_mixte.csv) |
220
230
 
221
231
  ## Roadmap
222
232
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open3cl/engine",
3
- "version": "1.3.11",
3
+ "version": "1.3.12",
4
4
  "description": "Open Source 3CL-DPE engine",
5
5
  "main": "index.js",
6
6
  "directories": {