@open3cl/engine 1.3.14 → 1.3.16

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.
@@ -4,6 +4,7 @@ import { updateGenerateurBouilleurs } from './13.2_generateur_combustion_bouille
4
4
  import { updateGenerateurChaudieres } from './13.2_generateur_combustion_chaudiere.js';
5
5
  import { updateGenerateurPacs } from './13.2_generateur_pac.js';
6
6
  import getFicheTechnique from './ficheTechnique.js';
7
+ import { evaluate } from 'mathjs';
7
8
 
8
9
  function criterePn(Pn, matcher) {
9
10
  let critere_list = tvColumnLines('generateur_combustion', 'critere_pn', matcher);
@@ -36,20 +37,16 @@ const F_tab = {
36
37
  1: -0.55
37
38
  };
38
39
 
39
- function excel_to_js_exec(box, pn, E, F) {
40
- const formula = box
41
- .replace(/ /g, '')
42
- .replace(/,/g, '.')
43
- .replace(/\*logPn/g, '*Math.log10(Pn)')
44
- .replace(/\+logPn/g, '+Math.log10(Pn)')
45
- .replace(/logPn/g, '*Math.log10(Pn)')
46
- .replace(/%/g, '/100')
47
- .replace(/\^/g, '**');
48
- const js = `let Pn=${pn / 1000}, E=${E}, F=${F}; (${formula})`;
49
- /* console.warn(js) */
50
- const result = eval(js);
51
- /* console.warn(result) */
52
- return result;
40
+ function evaluateFormula(formulaOrValue, pn, E, F) {
41
+ const pnVariable = pn / 1000;
42
+ if (!isNaN(formulaOrValue)) {
43
+ return Number(formulaOrValue);
44
+ }
45
+ const variables = new Map();
46
+ variables.set('Pn', pnVariable);
47
+ variables.set('E', E);
48
+ variables.set('F', F);
49
+ return evaluate(formulaOrValue, variables);
53
50
  }
54
51
 
55
52
  /**
@@ -155,6 +152,8 @@ export function tv_generateur_combustion(dpe, di, de, type, GV, tbase, methodeSa
155
152
  const E = E_tab[de.presence_ventouse];
156
153
  const F = F_tab[de.presence_ventouse];
157
154
 
155
+ const ratioVirtualisation = de.ratio_virtualisation || 1;
156
+
158
157
  /**
159
158
  * Si la consommation ECS est obtenue par virtualisation du générateur collectif pour les besoins individuels
160
159
  * la puissance nominale est obtenu à partir de la puissance nominale du générateur collectif multiplié par le
@@ -163,22 +162,26 @@ export function tv_generateur_combustion(dpe, di, de, type, GV, tbase, methodeSa
163
162
  */
164
163
  if (![3, 4, 5].includes(methodeSaisie)) {
165
164
  if (row.rpn) {
166
- di.rpn = excel_to_js_exec(row.rpn, di.pn / (de.ratio_virtualisation || 1), E, F) / 100;
165
+ di.rpn = evaluateFormula(row.rpn, di.pn / ratioVirtualisation, E, F) / 100;
167
166
  }
168
167
  if (type === 'ch' && row.rpint) {
169
- di.rpint = excel_to_js_exec(row.rpint, di.pn / (de.ratio_virtualisation || 1), E, F) / 100;
168
+ di.rpint = evaluateFormula(row.rpint, di.pn / ratioVirtualisation, E, F) / 100;
170
169
  }
171
170
  }
172
171
 
173
172
  if (![4, 5].includes(methodeSaisie)) {
174
173
  if (row.qp0_perc) {
175
- const qp0_calc = excel_to_js_exec(row.qp0_perc, di.pn / (de.ratio_virtualisation || 1), E, F);
174
+ const qp0_calc = evaluateFormula(row.qp0_perc, di.pn / ratioVirtualisation, E, F);
176
175
  // Certaines chaudières ont un qp0 en % de pn, d'autres ont des valeurs constantes
177
- di.qp0 = row.qp0_perc.includes('Pn')
178
- ? qp0_calc * 1000 * (de.ratio_virtualisation || 1)
179
- : row.qp0_perc.includes('%')
180
- ? qp0_calc * di.pn
181
- : qp0_calc * 1000;
176
+ if (row.qp0_perc.includes('Pn')) {
177
+ di.qp0 = qp0_calc * 1000 * ratioVirtualisation;
178
+ } else {
179
+ if (row.qp0_perc.includes('%')) {
180
+ di.qp0 = qp0_calc * di.pn;
181
+ } else {
182
+ di.qp0 = qp0_calc * 1000 * ratioVirtualisation;
183
+ }
184
+ }
182
185
  } else {
183
186
  di.qp0 = 0;
184
187
  }
package/README.md CHANGED
@@ -235,11 +235,11 @@ Résultats des tests de corpus avec le mode de compatibilité activé.
235
235
  | 1.3.12 | dpe_immeuble_chauffage_individuel.csv | 6900 (-1) | 69% | Dpe erroné avec surface chauffée invalide | |
236
236
  | 1.3.12 | dpe_immeuble_chauffage_collectif.csv | 6058 | 60% | | |
237
237
  | 1.3.12 | dpe_immeuble_chauffage_mixte.csv | 4725 (-2) | 47% | Dpe erroné avec surface chauffée invalide | |
238
- | <ins>**1.3.13**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4481**<ins> (+14) | <ins>**45 (+1%)**<ins> | | <a href="https://open3cl.github.io/engine/reports/corpus?corpus_file=corpus_dpe.csv" target="_blank">Voir le détail</a> |
239
- | 1.3.13 | dpe_logement_individuel_2025.csv | 8453 | 84% (+24) | | <a href="https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_logement_individuel_2025.csv" target="_blank">Voir le détail</a> |
240
- | 1.3.13 | dpe_immeuble_chauffage_individuel.csv | 7106 (+205) | 71% (+2%) | | <a href="https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_individuel.csv" target="_blank">Voir le détail</a> |
241
- | 1.3.13 | dpe_immeuble_chauffage_collectif.csv | 6083 (+25) | 61% (+1%) | | <a href="https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_collectif.csv" target="_blank">Voir le détail</a> |
242
- | 1.3.13 | dpe_immeuble_chauffage_mixte.csv | 4751 (+24) | 47% | | <a href="https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_mixte.csv" target="_blank">Voir le détail</a> |
238
+ | <ins>**1.3.15**<ins> | <ins>**corpus_dpe.csv**<ins> | <ins>**4481**<ins> (+14) | <ins>**45 (+1%)**<ins> | | <a href="https://open3cl.github.io/engine/reports/corpus?corpus_file=corpus_dpe.csv" target="_blank">Voir le détail</a> |
239
+ | 1.3.15 | dpe_logement_individuel_2025.csv | 8453 | 84% (+24) | | <a href="https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_logement_individuel_2025.csv" target="_blank">Voir le détail</a> |
240
+ | 1.3.15 | dpe_immeuble_chauffage_individuel.csv | 7106 (+205) | 71% (+2%) | | <a href="https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_individuel.csv" target="_blank">Voir le détail</a> |
241
+ | 1.3.15 | dpe_immeuble_chauffage_collectif.csv | 6083 (+25) | 61% (+1%) | | <a href="https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_collectif.csv" target="_blank">Voir le détail</a> |
242
+ | 1.3.15 | dpe_immeuble_chauffage_mixte.csv | 4751 (+24) | 47% | | <a href="https://open3cl.github.io/engine/reports/corpus?corpus_file=dpe_immeuble_chauffage_mixte.csv" target="_blank">Voir le détail</a> |
243
243
 
244
244
  ## Roadmap
245
245
 
@@ -98,6 +98,14 @@ export class SynchronizeValeurTables {
98
98
  return v;
99
99
  });
100
100
  }
101
+ if (['qp0_perc', 'rpn', 'rpint'].includes(key)) {
102
+ return value
103
+ .replace(/ /g, '')
104
+ .replace(/,/g, '.')
105
+ .replace(/\*logPn/g, '*log10(Pn)')
106
+ .replace(/\+logPn/g, '+log10(Pn)')
107
+ .replace(/logPn/g, '*log10(Pn)');
108
+ }
101
109
 
102
110
  // Reformat all number with only one decimal to be compatible with the legacy `tv.js` file
103
111
  if (!isNaN(Number(value)) && value.endsWith('0') && value.includes('.')) {
package/engine.js CHANGED
@@ -20,7 +20,9 @@ import { Inertie } from './7_inertie.js';
20
20
  import getFicheTechnique from './ficheTechnique.js';
21
21
  import { ProductionENR } from './16.2_production_enr.js';
22
22
 
23
- import { version } from 'package.json';
23
+ import { createRequire } from 'module';
24
+ const require = createRequire(import.meta.url);
25
+ const version = require('../package.json').version;
24
26
 
25
27
  function calc_th(map_id) {
26
28
  const map = enums.methode_application_dpe_log[map_id];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open3cl/engine",
3
- "version": "1.3.14",
3
+ "version": "1.3.16",
4
4
  "description": "Open Source 3CL-DPE engine",
5
5
  "main": "index.js",
6
6
  "directories": {
@@ -38,6 +38,7 @@
38
38
  "dioma": "^0.4.6",
39
39
  "fast-xml-parser": "^4.5.0",
40
40
  "lodash-es": "4.17.21",
41
+ "mathjs": "^15.1.0",
41
42
  "winston": "3.13.0"
42
43
  },
43
44
  "devDependencies": {
package/tv.js CHANGED
@@ -24888,8 +24888,8 @@ export const tvs = {
24888
24888
  "enum_type_generateur_ecs_id": "45|92",
24889
24889
  "type_generateur": "Chaudière gaz classique avant 1981",
24890
24890
  "pn": "Pn",
24891
- "rpn": "84 + 2 logPn",
24892
- "rpint": "80 + 3 logPn",
24891
+ "rpn": "84+2*log10(Pn)",
24892
+ "rpint": "80+3*log10(Pn)",
24893
24893
  "qp0_perc": "4%",
24894
24894
  "pveil": "240"
24895
24895
  },
@@ -24899,8 +24899,8 @@ export const tvs = {
24899
24899
  "enum_type_generateur_ecs_id": "46|93",
24900
24900
  "type_generateur": "Chaudière gaz classique 1981-1985",
24901
24901
  "pn": "Pn",
24902
- "rpn": "84 + 2 logPn",
24903
- "rpint": "80 + 3 logPn",
24902
+ "rpn": "84+2*log10(Pn)",
24903
+ "rpint": "80+3*log10(Pn)",
24904
24904
  "qp0_perc": "2%",
24905
24905
  "pveil": "150"
24906
24906
  },
@@ -24910,8 +24910,8 @@ export const tvs = {
24910
24910
  "enum_type_generateur_ecs_id": "47|94",
24911
24911
  "type_generateur": "Chaudière gaz classique 1986-1990",
24912
24912
  "pn": "Pn",
24913
- "rpn": "84 + 2 logPn",
24914
- "rpint": "80 + 3 logPn",
24913
+ "rpn": "84+2*log10(Pn)",
24914
+ "rpint": "80+3*log10(Pn)",
24915
24915
  "qp0_perc": "1.50%",
24916
24916
  "pveil": "150"
24917
24917
  },
@@ -24921,8 +24921,8 @@ export const tvs = {
24921
24921
  "enum_type_generateur_ecs_id": "48|95",
24922
24922
  "type_generateur": "Chaudière gaz standard 1991-2000",
24923
24923
  "pn": "Pn",
24924
- "rpn": "84 + 2 logPn",
24925
- "rpint": "80 + 3 logPn",
24924
+ "rpn": "84+2*log10(Pn)",
24925
+ "rpint": "80+3*log10(Pn)",
24926
24926
  "qp0_perc": "1.20%",
24927
24927
  "pveil": "120"
24928
24928
  },
@@ -24932,8 +24932,8 @@ export const tvs = {
24932
24932
  "enum_type_generateur_ecs_id": "49|96",
24933
24933
  "type_generateur": "Chaudière gaz standard 2001-2015",
24934
24934
  "pn": "Pn",
24935
- "rpn": "84 + 2 logPn",
24936
- "rpint": "80 + 3 logPn",
24935
+ "rpn": "84+2*log10(Pn)",
24936
+ "rpint": "80+3*log10(Pn)",
24937
24937
  "qp0_perc": "1%"
24938
24938
  },
24939
24939
  {
@@ -24942,9 +24942,9 @@ export const tvs = {
24942
24942
  "enum_type_generateur_ecs_id": "50|97",
24943
24943
  "type_generateur": "Chaudière gaz standard après 2015",
24944
24944
  "pn": "Pn",
24945
- "rpn": "84 + 2 logPn",
24946
- "rpint": "80 + 3 logPn",
24947
- "qp0_perc": "Pn * (E + F * logPn) / 100"
24945
+ "rpn": "84+2*log10(Pn)",
24946
+ "rpint": "80+3*log10(Pn)",
24947
+ "qp0_perc": "Pn*(E+F*log10(Pn))/100"
24948
24948
  },
24949
24949
  {
24950
24950
  "tv_generateur_combustion_id": "7",
@@ -24952,8 +24952,8 @@ export const tvs = {
24952
24952
  "enum_type_generateur_ecs_id": "51|98",
24953
24953
  "type_generateur": "Chaudière gaz basse température 1991-2000",
24954
24954
  "pn": "Pn",
24955
- "rpn": "87,5 + 1,5logPn",
24956
- "rpint": "87,5 + 1,5logPn",
24955
+ "rpn": "87.5+1.5*log10(Pn)",
24956
+ "rpint": "87.5+1.5*log10(Pn)",
24957
24957
  "qp0_perc": "1.20%",
24958
24958
  "pveil": "120"
24959
24959
  },
@@ -24963,8 +24963,8 @@ export const tvs = {
24963
24963
  "enum_type_generateur_ecs_id": "52|99",
24964
24964
  "type_generateur": "Chaudière gaz basse température 2001-2015",
24965
24965
  "pn": "Pn",
24966
- "rpn": "87,5 + 1,5logPn",
24967
- "rpint": "87,5 + 1,5logPn",
24966
+ "rpn": "87.5+1.5*log10(Pn)",
24967
+ "rpint": "87.5+1.5*log10(Pn)",
24968
24968
  "qp0_perc": "1%"
24969
24969
  },
24970
24970
  {
@@ -24973,9 +24973,9 @@ export const tvs = {
24973
24973
  "enum_type_generateur_ecs_id": "53|100",
24974
24974
  "type_generateur": "Chaudière gaz basse température après 2015",
24975
24975
  "pn": "Pn",
24976
- "rpn": "87,5 + 1,5logPn",
24977
- "rpint": "87,5 + 1,5logPn",
24978
- "qp0_perc": "Pn * (E + F * logPn) / 100"
24976
+ "rpn": "87.5+1.5*log10(Pn)",
24977
+ "rpint": "87.5+1.5*log10(Pn)",
24978
+ "qp0_perc": "Pn*(E+F*log10(Pn))/100"
24979
24979
  },
24980
24980
  {
24981
24981
  "tv_generateur_combustion_id": "10",
@@ -24983,8 +24983,8 @@ export const tvs = {
24983
24983
  "enum_type_generateur_ecs_id": "54|101",
24984
24984
  "type_generateur": "Chaudière gaz à condensation 1981-1985",
24985
24985
  "pn": "Pn",
24986
- "rpn": "91 + logPn",
24987
- "rpint": "97 + logPn",
24986
+ "rpn": "91+log10(Pn)",
24987
+ "rpint": "97+log10(Pn)",
24988
24988
  "qp0_perc": "1%",
24989
24989
  "pveil": "150"
24990
24990
  },
@@ -24994,8 +24994,8 @@ export const tvs = {
24994
24994
  "enum_type_generateur_ecs_id": "55|102",
24995
24995
  "type_generateur": "Chaudière gaz à condensation 1986-2000",
24996
24996
  "pn": "Pn",
24997
- "rpn": "91 + logPn",
24998
- "rpint": "97 + logPn",
24997
+ "rpn": "91+log10(Pn)",
24998
+ "rpint": "97+log10(Pn)",
24999
24999
  "qp0_perc": "1%",
25000
25000
  "pveil": "120"
25001
25001
  },
@@ -25005,8 +25005,8 @@ export const tvs = {
25005
25005
  "enum_type_generateur_ecs_id": "56|103|120|132",
25006
25006
  "type_generateur": "Chaudière gaz à condensation 2001-2015",
25007
25007
  "pn": "Pn",
25008
- "rpn": "91 + logPn",
25009
- "rpint": "97 + logPn",
25008
+ "rpn": "91+log10(Pn)",
25009
+ "rpint": "97+log10(Pn)",
25010
25010
  "qp0_perc": "1%"
25011
25011
  },
25012
25012
  {
@@ -25016,8 +25016,8 @@ export const tvs = {
25016
25016
  "type_generateur": "Chaudière gaz à condensation après 2015",
25017
25017
  "critere_pn": "Pn≤70",
25018
25018
  "pn": "Pn",
25019
- "rpn": "91 + 3 logPn",
25020
- "rpint": "103 + 2,5logPn",
25019
+ "rpn": "91+3*log10(Pn)",
25020
+ "rpint": "103+2.5*log10(Pn)",
25021
25021
  "qp0_perc": "0.50%"
25022
25022
  },
25023
25023
  {
@@ -25027,8 +25027,8 @@ export const tvs = {
25027
25027
  "type_generateur": "Chaudière gaz à condensation après 2015",
25028
25028
  "critere_pn": "70<Pn≤400",
25029
25029
  "pn": "Pn",
25030
- "rpn": "94 + logPn",
25031
- "rpint": "105 + 0,5logPn",
25030
+ "rpn": "94+log10(Pn)",
25031
+ "rpint": "105+0.5*log10(Pn)",
25032
25032
  "qp0_perc": "0.30%"
25033
25033
  },
25034
25034
  {
@@ -25048,8 +25048,8 @@ export const tvs = {
25048
25048
  "enum_type_generateur_ecs_id": "35|84",
25049
25049
  "type_generateur": "Chaudière fioul classique avant 1970",
25050
25050
  "pn": "Pn",
25051
- "rpn": "84 + 2 logPn",
25052
- "rpint": "80 + 3 logPn",
25051
+ "rpn": "84+2*log10(Pn)",
25052
+ "rpint": "80+3*log10(Pn)",
25053
25053
  "qp0_perc": "4%"
25054
25054
  },
25055
25055
  {
@@ -25058,8 +25058,8 @@ export const tvs = {
25058
25058
  "enum_type_generateur_ecs_id": "36|84",
25059
25059
  "type_generateur": "Chaudière fioul classique 1970-1975",
25060
25060
  "pn": "Pn",
25061
- "rpn": "84 + 2 logPn",
25062
- "rpint": "80 + 3 logPn",
25061
+ "rpn": "84+2*log10(Pn)",
25062
+ "rpint": "80+3*log10(Pn)",
25063
25063
  "qp0_perc": "3%"
25064
25064
  },
25065
25065
  {
@@ -25068,8 +25068,8 @@ export const tvs = {
25068
25068
  "enum_type_generateur_ecs_id": "37|84",
25069
25069
  "type_generateur": "Chaudière fioul classique 1976-1980",
25070
25070
  "pn": "Pn",
25071
- "rpn": "84 + 2 logPn",
25072
- "rpint": "80 + 3 logPn",
25071
+ "rpn": "84+2*log10(Pn)",
25072
+ "rpint": "80+3*log10(Pn)",
25073
25073
  "qp0_perc": "2%"
25074
25074
  },
25075
25075
  {
@@ -25078,8 +25078,8 @@ export const tvs = {
25078
25078
  "enum_type_generateur_ecs_id": "38|84",
25079
25079
  "type_generateur": "Chaudière fioul classique 1981-1990",
25080
25080
  "pn": "Pn",
25081
- "rpn": "84 + 2 logPn",
25082
- "rpint": "80 + 3 logPn",
25081
+ "rpn": "84+2*log10(Pn)",
25082
+ "rpint": "80+3*log10(Pn)",
25083
25083
  "qp0_perc": "1%"
25084
25084
  },
25085
25085
  {
@@ -25088,8 +25088,8 @@ export const tvs = {
25088
25088
  "enum_type_generateur_ecs_id": "39|84",
25089
25089
  "type_generateur": "Chaudière fioul standard 1991-2015",
25090
25090
  "pn": "Pn",
25091
- "rpn": "84 + 2 logPn",
25092
- "rpint": "80 + 3 logPn",
25091
+ "rpn": "84+2*log10(Pn)",
25092
+ "rpint": "80+3*log10(Pn)",
25093
25093
  "qp0_perc": "1%"
25094
25094
  },
25095
25095
  {
@@ -25098,9 +25098,9 @@ export const tvs = {
25098
25098
  "enum_type_generateur_ecs_id": "40|84",
25099
25099
  "type_generateur": "Chaudière fioul standard après 2015",
25100
25100
  "pn": "Pn",
25101
- "rpn": "84 + 2 logPn",
25102
- "rpint": "80 + 3 logPn",
25103
- "qp0_perc": "Pn * (E + F * logPn) / 100"
25101
+ "rpn": "84+2*log10(Pn)",
25102
+ "rpint": "80+3*log10(Pn)",
25103
+ "qp0_perc": "Pn*(E+F*log10(Pn))/100"
25104
25104
  },
25105
25105
  {
25106
25106
  "tv_generateur_combustion_id": "22",
@@ -25108,8 +25108,8 @@ export const tvs = {
25108
25108
  "enum_type_generateur_ecs_id": "41",
25109
25109
  "type_generateur": "Chaudière fioul basse température 1991-2015",
25110
25110
  "pn": "Pn",
25111
- "rpn": "87,5 + 1,5 logPn",
25112
- "rpint": "87,5 + 1,5 logPn",
25111
+ "rpn": "87.5+1.5*log10(Pn)",
25112
+ "rpint": "87.5+1.5*log10(Pn)",
25113
25113
  "qp0_perc": "1%"
25114
25114
  },
25115
25115
  {
@@ -25118,9 +25118,9 @@ export const tvs = {
25118
25118
  "enum_type_generateur_ecs_id": "42",
25119
25119
  "type_generateur": "Chaudière fioul basse température après 2015",
25120
25120
  "pn": "Pn",
25121
- "rpn": "87,5 + 1,5 logPn",
25122
- "rpint": "87,5 + 1,5 logPn",
25123
- "qp0_perc": "Pn * (E + F * logPn) / 100"
25121
+ "rpn": "87.5+1.5*log10(Pn)",
25122
+ "rpint": "87.5+1.5*log10(Pn)",
25123
+ "qp0_perc": "Pn*(E+F*log10(Pn))/100"
25124
25124
  },
25125
25125
  {
25126
25126
  "tv_generateur_combustion_id": "24",
@@ -25128,8 +25128,8 @@ export const tvs = {
25128
25128
  "enum_type_generateur_ecs_id": "43|122",
25129
25129
  "type_generateur": "Chaudière fioul à condensation 1996-2015",
25130
25130
  "pn": "Pn",
25131
- "rpn": "91 + logPn",
25132
- "rpint": "97 + logPn",
25131
+ "rpn": "91+log10(Pn)",
25132
+ "rpint": "97+log10(Pn)",
25133
25133
  "qp0_perc": "1%"
25134
25134
  },
25135
25135
  {
@@ -25139,8 +25139,8 @@ export const tvs = {
25139
25139
  "type_generateur": "Chaudière fioul à condensation après 2015",
25140
25140
  "critere_pn": "Pn≤70",
25141
25141
  "pn": "Pn",
25142
- "rpn": "91 + 3 logPn",
25143
- "rpint": "98 + 3 logPn",
25142
+ "rpn": "91+3*log10(Pn)",
25143
+ "rpint": "98+3*log10(Pn)",
25144
25144
  "qp0_perc": "0.50%"
25145
25145
  },
25146
25146
  {
@@ -25150,8 +25150,8 @@ export const tvs = {
25150
25150
  "type_generateur": "Chaudière fioul à condensation après 2015",
25151
25151
  "critere_pn": "70<Pn≤400",
25152
25152
  "pn": "Pn",
25153
- "rpn": "94 + logPn",
25154
- "rpint": "100 + logPn",
25153
+ "rpn": "94+log10(Pn)",
25154
+ "rpint": "100+log10(Pn)",
25155
25155
  "qp0_perc": "0.60%"
25156
25156
  },
25157
25157
  {
@@ -25172,9 +25172,9 @@ export const tvs = {
25172
25172
  "type_generateur": "Chaudière bois bûche ou plaquette <1978",
25173
25173
  "critere_pn": "Pn≤70",
25174
25174
  "pn": "Pn",
25175
- "rpn": "47 + 6logPn",
25176
- "rpint": "48+6logPn",
25177
- "qp0_perc": "0,08*Pn*(Pn)^-0,27"
25175
+ "rpn": "47+6*log10(Pn)",
25176
+ "rpint": "48+6*log10(Pn)",
25177
+ "qp0_perc": "0.08*Pn*(Pn)^-0.27"
25178
25178
  },
25179
25179
  {
25180
25180
  "tv_generateur_combustion_id": "29",
@@ -25205,9 +25205,9 @@ export const tvs = {
25205
25205
  "type_generateur": "Chaudière bois bûche ou plaquette 1978-1994",
25206
25206
  "critere_pn": "Pn≤70",
25207
25207
  "pn": "Pn",
25208
- "rpn": "47 + 6logPn",
25209
- "rpint": "48+6logPn",
25210
- "qp0_perc": "0,07*Pn*(Pn)^-0,3"
25208
+ "rpn": "47+6*log10(Pn)",
25209
+ "rpint": "48+6*log10(Pn)",
25210
+ "qp0_perc": "0.07*Pn*(Pn)^-0.3"
25211
25211
  },
25212
25212
  {
25213
25213
  "tv_generateur_combustion_id": "32",
@@ -25237,9 +25237,9 @@ export const tvs = {
25237
25237
  "enum_type_generateur_ecs_id": "17|24|87",
25238
25238
  "type_generateur": "Chaudière bois bûche ou plaquette 1995-2003",
25239
25239
  "critere_pn": "Pn≤70",
25240
- "rpn": "47 + 6logPn",
25241
- "rpint": "48+6logPn",
25242
- "qp0_perc": "0,085*Pn*(Pn)^-0,4"
25240
+ "rpn": "47+6*log10(Pn)",
25241
+ "rpint": "48+6*log10(Pn)",
25242
+ "qp0_perc": "0.085*Pn*(Pn)^-0.4"
25243
25243
  },
25244
25244
  {
25245
25245
  "tv_generateur_combustion_id": "35",
@@ -25269,9 +25269,9 @@ export const tvs = {
25269
25269
  "enum_type_generateur_ecs_id": "18|25|88|14",
25270
25270
  "type_generateur": "Chaudière bois bûche ou plaquette 2004-2012",
25271
25271
  "critere_pn": "Pn≤70",
25272
- "rpn": "57 + 6logPn",
25273
- "rpint": "58+6logPn",
25274
- "qp0_perc": "0,085*Pn*(Pn)^-0,4"
25272
+ "rpn": "57+6*log10(Pn)",
25273
+ "rpint": "58+6*log10(Pn)",
25274
+ "qp0_perc": "0.085*Pn*(Pn)^-0.4"
25275
25275
  },
25276
25276
  {
25277
25277
  "tv_generateur_combustion_id": "38",
@@ -25301,9 +25301,9 @@ export const tvs = {
25301
25301
  "enum_type_generateur_ecs_id": "19|26|89|126|129",
25302
25302
  "type_generateur": "Chaudière bois bûche ou plaquette 2013-2017",
25303
25303
  "critere_pn": "Pn≤70",
25304
- "rpn": "67 + 6logPn",
25305
- "rpint": "68+6logPn",
25306
- "qp0_perc": "0,085*Pn*(Pn)^-0,4"
25304
+ "rpn": "67+6*log10(Pn)",
25305
+ "rpint": "68+6*log10(Pn)",
25306
+ "qp0_perc": "0.085*Pn*(Pn)^-0.4"
25307
25307
  },
25308
25308
  {
25309
25309
  "tv_generateur_combustion_id": "41",
@@ -25333,9 +25333,9 @@ export const tvs = {
25333
25333
  "enum_type_generateur_ecs_id": "20|27|90|127|130",
25334
25334
  "type_generateur": "Chaudière bois bûche ou plaquette 2018-2019",
25335
25335
  "critere_pn": "Pn≤70",
25336
- "rpn": "80 + 2logPn",
25337
- "rpint": "77+3logPn",
25338
- "qp0_perc": "0,085*Pn*(Pn)^-0,4"
25336
+ "rpn": "80+2*log10(Pn)",
25337
+ "rpint": "77+3*log10(Pn)",
25338
+ "qp0_perc": "0.085*Pn*(Pn)^-0.4"
25339
25339
  },
25340
25340
  {
25341
25341
  "tv_generateur_combustion_id": "44",
@@ -25365,9 +25365,9 @@ export const tvs = {
25365
25365
  "enum_type_generateur_ecs_id": "21|28|91|128|131",
25366
25366
  "type_generateur": "Chaudière bois bûche ou plaquette >2019",
25367
25367
  "critere_pn": "Pn≤20",
25368
- "rpn": "89 + 2logPn",
25369
- "rpint": "84+2logPn",
25370
- "qp0_perc": "0,085*Pn*(Pn)^-0,4"
25368
+ "rpn": "89+2*log10(Pn)",
25369
+ "rpint": "84+2*log10(Pn)",
25370
+ "qp0_perc": "0.085*Pn*(Pn)^-0.4"
25371
25371
  },
25372
25372
  {
25373
25373
  "tv_generateur_combustion_id": "47",
@@ -25375,9 +25375,9 @@ export const tvs = {
25375
25375
  "enum_type_generateur_ecs_id": "21|28|91|128|131",
25376
25376
  "type_generateur": "Chaudière bois bûche ou plaquette >2019",
25377
25377
  "critere_pn": "20<Pn≤70",
25378
- "rpn": "90 + 2logPn",
25379
- "rpint": "85+2logPn",
25380
- "qp0_perc": "0,085*Pn*(Pn)^-0,4"
25378
+ "rpn": "90+2*log10(Pn)",
25379
+ "rpint": "85+2*log10(Pn)",
25380
+ "qp0_perc": "0.085*Pn*(Pn)^-0.4"
25381
25381
  },
25382
25382
  {
25383
25383
  "tv_generateur_combustion_id": "48",
@@ -25407,9 +25407,9 @@ export const tvs = {
25407
25407
  "enum_type_generateur_ecs_id": "29",
25408
25408
  "type_generateur": "Chaudière bois granulés <1978",
25409
25409
  "critere_pn": "Pn≤70",
25410
- "rpn": "47 + 6logPn",
25411
- "rpint": "48+6logPn",
25412
- "qp0_perc": "0,08*Pn*(Pn)^-0,27"
25410
+ "rpn": "47+6*log10(Pn)",
25411
+ "rpint": "48+6*log10(Pn)",
25412
+ "qp0_perc": "0.08*Pn*(Pn)^-0.27"
25413
25413
  },
25414
25414
  {
25415
25415
  "tv_generateur_combustion_id": "51",
@@ -25439,9 +25439,9 @@ export const tvs = {
25439
25439
  "enum_type_generateur_ecs_id": "30|115",
25440
25440
  "type_generateur": "Chaudière bois granulés 1978-1994",
25441
25441
  "critere_pn": "Pn≤70",
25442
- "rpn": "47 + 6logPn",
25443
- "rpint": "48+6logPn",
25444
- "qp0_perc": "0,08*Pn*(Pn)^-0,3"
25442
+ "rpn": "47+6*log10(Pn)",
25443
+ "rpint": "48+6*log10(Pn)",
25444
+ "qp0_perc": "0.08*Pn*(Pn)^-0.3"
25445
25445
  },
25446
25446
  {
25447
25447
  "tv_generateur_combustion_id": "54",
@@ -25471,9 +25471,9 @@ export const tvs = {
25471
25471
  "enum_type_generateur_ecs_id": "31",
25472
25472
  "type_generateur": "Chaudière bois granulés 1995-2003",
25473
25473
  "critere_pn": "Pn≤70",
25474
- "rpn": "57 + 6logPn",
25475
- "rpint": "58+6logPn",
25476
- "qp0_perc": "0,085*Pn*(Pn)^-0,4"
25474
+ "rpn": "57+6*log10(Pn)",
25475
+ "rpint": "58+6*log10(Pn)",
25476
+ "qp0_perc": "0.085*Pn*(Pn)^-0.4"
25477
25477
  },
25478
25478
  {
25479
25479
  "tv_generateur_combustion_id": "57",
@@ -25503,9 +25503,9 @@ export const tvs = {
25503
25503
  "enum_type_generateur_ecs_id": "32|116",
25504
25504
  "type_generateur": "Chaudière bois granulés 2004-2012",
25505
25505
  "critere_pn": "Pn≤70",
25506
- "rpn": "67 + 6logPn",
25507
- "rpint": "68+6logPn",
25508
- "qp0_perc": "0,085*Pn*(Pn)^-0,4"
25506
+ "rpn": "67+6*log10(Pn)",
25507
+ "rpint": "68+6*log10(Pn)",
25508
+ "qp0_perc": "0.085*Pn*(Pn)^-0.4"
25509
25509
  },
25510
25510
  {
25511
25511
  "tv_generateur_combustion_id": "60",
@@ -25535,9 +25535,9 @@ export const tvs = {
25535
25535
  "enum_type_generateur_ecs_id": "33|124",
25536
25536
  "type_generateur": "Chaudière bois granulés 2013-2019",
25537
25537
  "critere_pn": "Pn≤70",
25538
- "rpn": "80 + 2logPn",
25539
- "rpint": "77+3logPn",
25540
- "qp0_perc": "0,085*Pn*(Pn)^-0,4"
25538
+ "rpn": "80+2*log10(Pn)",
25539
+ "rpint": "77+3*log10(Pn)",
25540
+ "qp0_perc": "0.085*Pn*(Pn)^-0.4"
25541
25541
  },
25542
25542
  {
25543
25543
  "tv_generateur_combustion_id": "63",
@@ -25567,9 +25567,9 @@ export const tvs = {
25567
25567
  "enum_type_generateur_ecs_id": "34|125",
25568
25568
  "type_generateur": "Chaudière bois granulés >2019",
25569
25569
  "critere_pn": "Pn≤20",
25570
- "rpn": "91 + 2logPn",
25571
- "rpint": "88+2logPn",
25572
- "qp0_perc": "0,085*Pn*(Pn)^-0,4"
25570
+ "rpn": "91+2*log10(Pn)",
25571
+ "rpint": "88+2*log10(Pn)",
25572
+ "qp0_perc": "0.085*Pn*(Pn)^-0.4"
25573
25573
  },
25574
25574
  {
25575
25575
  "tv_generateur_combustion_id": "66",
@@ -25577,9 +25577,9 @@ export const tvs = {
25577
25577
  "enum_type_generateur_ecs_id": "34|125",
25578
25578
  "type_generateur": "Chaudière bois granulés >2019",
25579
25579
  "critere_pn": "20<Pn≤70",
25580
- "rpn": "92 + 2logPn",
25581
- "rpint": "89+2logPn",
25582
- "qp0_perc": "0,085*Pn*(Pn)^-0,4"
25580
+ "rpn": "92+2*log10(Pn)",
25581
+ "rpint": "89+2*log10(Pn)",
25582
+ "qp0_perc": "0.085*Pn*(Pn)^-0.4"
25583
25583
  },
25584
25584
  {
25585
25585
  "tv_generateur_combustion_id": "67",
@@ -25610,7 +25610,7 @@ export const tvs = {
25610
25610
  "critere_pn": "Pn≤300",
25611
25611
  "rpn": "77",
25612
25612
  "rpint": "74",
25613
- "qp0_perc": "Pn*(1.75-0.55*logPn)"
25613
+ "qp0_perc": "Pn*(1.75-0.55*log10(Pn))"
25614
25614
  },
25615
25615
  {
25616
25616
  "tv_generateur_combustion_id": "70",
@@ -25620,7 +25620,7 @@ export const tvs = {
25620
25620
  "pn": "300",
25621
25621
  "rpn": "77",
25622
25622
  "rpint": "74",
25623
- "qp0_perc": "Pn*(1.75-0.55*logPn)"
25623
+ "qp0_perc": "Pn*(1.75-0.55*log10(Pn))"
25624
25624
  },
25625
25625
  {
25626
25626
  "tv_generateur_combustion_id": "71",
@@ -25629,7 +25629,7 @@ export const tvs = {
25629
25629
  "critere_pn": "Pn≤300",
25630
25630
  "rpn": "84",
25631
25631
  "rpint": "77",
25632
- "qp0_perc": "Pn*(1.75-0.55*logPn)"
25632
+ "qp0_perc": "Pn*(1.75-0.55*log10(Pn))"
25633
25633
  },
25634
25634
  {
25635
25635
  "tv_generateur_combustion_id": "72",
@@ -25639,7 +25639,7 @@ export const tvs = {
25639
25639
  "pn": "300",
25640
25640
  "rpn": "84",
25641
25641
  "rpint": "77",
25642
- "qp0_perc": "Pn*(1.75-0.55*logPn)"
25642
+ "qp0_perc": "Pn*(1.75-0.55*log10(Pn))"
25643
25643
  },
25644
25644
  {
25645
25645
  "tv_generateur_combustion_id": "73",
@@ -25648,7 +25648,7 @@ export const tvs = {
25648
25648
  "critere_pn": "Pn≤300",
25649
25649
  "rpn": "90",
25650
25650
  "rpint": "83",
25651
- "qp0_perc": "Pn*(1.75-0.55*logPn)"
25651
+ "qp0_perc": "Pn*(1.75-0.55*log10(Pn))"
25652
25652
  },
25653
25653
  {
25654
25654
  "tv_generateur_combustion_id": "74",
@@ -25658,7 +25658,7 @@ export const tvs = {
25658
25658
  "pn": "300",
25659
25659
  "rpn": "90",
25660
25660
  "rpint": "83",
25661
- "qp0_perc": "Pn*(1.75-0.55*logPn)"
25661
+ "qp0_perc": "Pn*(1.75-0.55*log10(Pn))"
25662
25662
  },
25663
25663
  {
25664
25664
  "tv_generateur_combustion_id": "75",
@@ -25727,7 +25727,7 @@ export const tvs = {
25727
25727
  "type_generateur": "Chauffe-eau gaz à production instantanée avant 1980",
25728
25728
  "critere_pn": "Pn≤10",
25729
25729
  "rpn": "70",
25730
- "qp0_perc": "4.0 %",
25730
+ "qp0_perc": "4.0%",
25731
25731
  "pveil": "150"
25732
25732
  },
25733
25733
  {
@@ -25736,7 +25736,7 @@ export const tvs = {
25736
25736
  "type_generateur": "Chauffe-eau gaz à production instantanée 1981-1989",
25737
25737
  "critere_pn": "Pn≤10",
25738
25738
  "rpn": "75",
25739
- "qp0_perc": "2.0 %",
25739
+ "qp0_perc": "2.0%",
25740
25740
  "pveil": "120"
25741
25741
  },
25742
25742
  {
@@ -25745,7 +25745,7 @@ export const tvs = {
25745
25745
  "type_generateur": "Chauffe-eau gaz à production instantanée 1990-2000",
25746
25746
  "critere_pn": "Pn≤10",
25747
25747
  "rpn": "81",
25748
- "qp0_perc": "1.2 %",
25748
+ "qp0_perc": "1.2%",
25749
25749
  "pveil": "120"
25750
25750
  },
25751
25751
  {
@@ -25754,7 +25754,7 @@ export const tvs = {
25754
25754
  "type_generateur": "Chauffe-eau gaz à production instantanée 2001-2015",
25755
25755
  "critere_pn": "Pn≤10",
25756
25756
  "rpn": "82",
25757
- "qp0_perc": "1.0 %",
25757
+ "qp0_perc": "1.0%",
25758
25758
  "pveil": "100"
25759
25759
  },
25760
25760
  {
@@ -25763,7 +25763,7 @@ export const tvs = {
25763
25763
  "type_generateur": "Chauffe-eau gaz à production instantanée après 2015",
25764
25764
  "critere_pn": "Pn≤10",
25765
25765
  "rpn": "82",
25766
- "qp0_perc": "1.0 %"
25766
+ "qp0_perc": "1.0%"
25767
25767
  },
25768
25768
  {
25769
25769
  "tv_generateur_combustion_id": "89",
@@ -25771,7 +25771,7 @@ export const tvs = {
25771
25771
  "type_generateur": "Chauffe-eau gaz à production instantanée avant 1980",
25772
25772
  "critere_pn": "Pn>10",
25773
25773
  "rpn": "70",
25774
- "qp0_perc": "4.0 %",
25774
+ "qp0_perc": "4.0%",
25775
25775
  "pveil": "150"
25776
25776
  },
25777
25777
  {
@@ -25780,7 +25780,7 @@ export const tvs = {
25780
25780
  "type_generateur": "Chauffe-eau gaz à production instantanée 1981-1989",
25781
25781
  "critere_pn": "Pn>10",
25782
25782
  "rpn": "75",
25783
- "qp0_perc": "2.0 %",
25783
+ "qp0_perc": "2.0%",
25784
25784
  "pveil": "120"
25785
25785
  },
25786
25786
  {
@@ -25789,7 +25789,7 @@ export const tvs = {
25789
25789
  "type_generateur": "Chauffe-eau gaz à production instantanée 1990-2000",
25790
25790
  "critere_pn": "Pn>10",
25791
25791
  "rpn": "82",
25792
- "qp0_perc": "1.2 %",
25792
+ "qp0_perc": "1.2%",
25793
25793
  "pveil": "120"
25794
25794
  },
25795
25795
  {
@@ -25798,7 +25798,7 @@ export const tvs = {
25798
25798
  "type_generateur": "Chauffe-eau gaz à production instantanée 2001-2015",
25799
25799
  "critere_pn": "Pn>10",
25800
25800
  "rpn": "84",
25801
- "qp0_perc": "1.0 %",
25801
+ "qp0_perc": "1.0%",
25802
25802
  "pveil": "100"
25803
25803
  },
25804
25804
  {
@@ -25807,7 +25807,7 @@ export const tvs = {
25807
25807
  "type_generateur": "Chauffe-eau gaz à production instantanée après 2015",
25808
25808
  "critere_pn": "Pn>10",
25809
25809
  "rpn": "84",
25810
- "qp0_perc": "0.6 %"
25810
+ "qp0_perc": "0.6%"
25811
25811
  }
25812
25812
  ],
25813
25813
  "pertes_stockage": [