Skip to content

Commit 537ed93

Browse files
feat: add coeff 1.9 in primary conso
1 parent 2ac4962 commit 537ed93

File tree

7 files changed

+56
-54
lines changed

7 files changed

+56
-54
lines changed

index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ import {
55
getVersion
66
} from './src/index.js';
77
export { calcul_3cl, get_classe_ges_dpe, get_conso_coeff_1_9_2026, getVersion };
8+
import { Umur, Uph, Upb, Uporte, Ubv, Upt, calc_deperdition } from './src/3_deperdition.js';
9+
export { Umur, Uph, Upb, Uporte, Ubv, Upt, calc_deperdition };

src/16.2_production_enr.js

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import enums from './enums.js';
22
import { mois_liste, tv } from './utils.js';
33
import tvs from './tv.js';
4-
import { COEFF_EP, PREVIOUS_COEFF_EP } from './conso.js';
4+
import { COEFF_EP_1_9, COEFF_EP_2_3 } from './conso.js';
55

66
export class ProductionENR {
77
#taplpi = {
@@ -20,7 +20,7 @@ export class ProductionENR {
2020
* @param productionElecEnr
2121
* @param Sh {string}
2222
*/
23-
calculateEnr(productionElecEnr, conso, Sh, th, zc_id, use_previous_coeff_ch_elec) {
23+
calculateEnr(productionElecEnr, conso, Sh, th, zc_id, use_coeff_ch_elec_2_3) {
2424
const productionElectricite = {
2525
conso_elec_ac: 0,
2626
production_pv: 0,
@@ -45,7 +45,7 @@ export class ProductionENR {
4545
this.updateEfConso(productionElectricite, conso, Sh);
4646

4747
// 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_previous_coeff_ch_elec);
48+
this.updateEPConso(productionElectricite, conso, Sh, use_coeff_ch_elec_2_3);
4949
}
5050

5151
return {
@@ -181,17 +181,17 @@ export class ProductionENR {
181181
* @param productionElectricite
182182
* @param conso {{ep_conso: Ep_conso}}
183183
* @param Sh {number}
184-
* @param use_previous_coeff_ch_elec {boolean} "true" pour ne pas utiliser le dernier coeff de chauffage électrique
184+
* @param use_coeff_ch_elec_2_3 {boolean} "true" pour ne pas utiliser le dernier coeff de chauffage électrique
185185
*/
186-
updateEPConso(productionElectricite, conso, Sh, use_previous_coeff_ch_elec) {
187-
if (use_previous_coeff_ch_elec) {
188-
conso.ep_conso.ep_conso_ecs -= PREVIOUS_COEFF_EP * productionElectricite.conso_elec_ac_ecs;
189-
conso.ep_conso.ep_conso_ch -= PREVIOUS_COEFF_EP * productionElectricite.conso_elec_ac_ch;
190-
conso.ep_conso.ep_conso_fr -= PREVIOUS_COEFF_EP * productionElectricite.conso_elec_ac_fr;
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;
191191
conso.ep_conso.ep_conso_eclairage -=
192-
PREVIOUS_COEFF_EP * productionElectricite.conso_elec_ac_eclairage;
192+
COEFF_EP_2_3 * productionElectricite.conso_elec_ac_eclairage;
193193
conso.ep_conso.ep_conso_totale_auxiliaire -=
194-
PREVIOUS_COEFF_EP * productionElectricite.conso_elec_ac_auxiliaire;
194+
COEFF_EP_2_3 * productionElectricite.conso_elec_ac_auxiliaire;
195195

196196
const conso_elec =
197197
productionElectricite.conso_elec_ac_ecs +
@@ -200,16 +200,17 @@ export class ProductionENR {
200200
productionElectricite.conso_elec_ac_eclairage +
201201
productionElectricite.conso_elec_ac_auxiliaire;
202202

203-
conso.ep_conso.ep_conso_5_usages -= PREVIOUS_COEFF_EP * conso_elec;
203+
conso.ep_conso.ep_conso_5_usages -= COEFF_EP_2_3 * conso_elec;
204204

205205
conso.ep_conso.ep_conso_5_usages_m2 = Math.floor(conso.ep_conso.ep_conso_5_usages / Sh);
206206
} else {
207-
conso.ep_conso.ep_conso_ecs -= COEFF_EP * productionElectricite.conso_elec_ac_ecs;
208-
conso.ep_conso.ep_conso_ch -= COEFF_EP * productionElectricite.conso_elec_ac_ch;
209-
conso.ep_conso.ep_conso_fr -= COEFF_EP * productionElectricite.conso_elec_ac_fr;
210-
conso.ep_conso.ep_conso_eclairage -= COEFF_EP * productionElectricite.conso_elec_ac_eclairage;
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;
211212
conso.ep_conso.ep_conso_totale_auxiliaire -=
212-
COEFF_EP * productionElectricite.conso_elec_ac_auxiliaire;
213+
COEFF_EP_1_9 * productionElectricite.conso_elec_ac_auxiliaire;
213214

214215
const conso_elec =
215216
productionElectricite.conso_elec_ac_ecs +
@@ -218,7 +219,7 @@ export class ProductionENR {
218219
productionElectricite.conso_elec_ac_eclairage +
219220
productionElectricite.conso_elec_ac_auxiliaire;
220221

221-
conso.ep_conso.ep_conso_5_usages -= COEFF_EP * conso_elec;
222+
conso.ep_conso.ep_conso_5_usages -= COEFF_EP_1_9 * conso_elec;
222223

223224
conso.ep_conso.ep_conso_5_usages_m2 = Math.floor(conso.ep_conso.ep_conso_5_usages / Sh);
224225
}

src/conso.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,30 @@ import calc_conso_eclairage from './16_conso_eclairage.js';
33
import tvs from './tv.js';
44
import { tv } from './utils.js';
55

6-
export const PREVIOUS_COEFF_EP = 2.3;
7-
export const COEFF_EP = 1.9;
6+
export const COEFF_EP_2_3 = 2.3;
7+
export const COEFF_EP_1_9 = 1.9;
88

99
/**
1010
* Coeff de chauffage 1.9 au 01/01/2026
1111
* @link {https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000052134589}
1212
*/
1313
export const coef_ep = {
14-
'électricité ch': COEFF_EP,
15-
'électricité ecs': COEFF_EP,
16-
'électricité fr': COEFF_EP,
17-
'électricité éclairage': COEFF_EP,
18-
'électricité auxiliaire': COEFF_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
1919
};
2020

2121
/**
2222
* Coeff de chauffage 2.3 avant le 01/01/2026
2323
*/
2424
export const coef_ep_2_3 = {
25-
'électricité ch': PREVIOUS_COEFF_EP,
26-
'électricité ecs': PREVIOUS_COEFF_EP,
27-
'électricité fr': PREVIOUS_COEFF_EP,
28-
'électricité éclairage': PREVIOUS_COEFF_EP,
29-
'électricité auxiliaire': PREVIOUS_COEFF_EP
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
3030
};
3131

3232
/**

src/engine.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -556,12 +556,11 @@ export function calcul_3cl(dpe) {
556556
...conso
557557
};
558558

559-
// previous => coeff_2_3
560559
logement.sortie.ep_conso = {
561560
...logement.sortie.ep_conso,
562-
previous_classe_bilan_dpe: conso2_3.ep_conso.classe_bilan_dpe,
563-
previous_ep_conso_5_usages: conso2_3.ep_conso.ep_conso_5_usages,
564-
previous_ep_conso_5_usages_m2: conso2_3.ep_conso.ep_conso_5_usages_m2
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
565564
};
566565

567566
logement.sortie.ep_conso.classe_bilan_dpe_2026 = logement.sortie.ep_conso.classe_bilan_dpe;

test/corpus/corpus_worker.mjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,12 +169,12 @@ const runEngineAndVerifyOutput = (inputDpe, dpeOutputs) => {
169169
if (inputPropertyPath.includes('ep_conso_5_usages') && isDpeBeforeJanvier2026) {
170170
outputPropertyPath = outputPropertyPath.replace(
171171
'ep_conso_5_usages',
172-
'previous_ep_conso_5_usages'
172+
'coeff_2_3_ep_conso_5_usages'
173173
);
174174
} else if (inputPropertyPath.includes('ep_conso_5_usages_m2') && isDpeBeforeJanvier2026) {
175175
outputPropertyPath = outputPropertyPath.replace(
176176
'ep_conso_5_usages_m2',
177-
'previous_ep_conso_5_usages_m2'
177+
'coeff_2_3_ep_conso_5_usages_m2'
178178
);
179179
}
180180

@@ -202,12 +202,12 @@ const runEngineAndVerifyOutput = (inputDpe, dpeOutputs) => {
202202
if (inputPropertyPath.includes('ep_conso_5_usages') && isDpeBeforeJanvier2026) {
203203
outputPropertyPath = outputPropertyPath.replace(
204204
'ep_conso_5_usages',
205-
'previous_ep_conso_5_usages'
205+
'coeff_2_3_ep_conso_5_usages'
206206
);
207207
} else if (inputPropertyPath.includes('ep_conso_5_usages_m2') && isDpeBeforeJanvier2026) {
208208
outputPropertyPath = outputPropertyPath.replace(
209209
'ep_conso_5_usages_m2',
210-
'previous_ep_conso_5_usages_m2'
210+
'coeff_2_3_ep_conso_5_usages_m2'
211211
);
212212
}
213213

test/open3cl-coeff-1-9.spec.js

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,67 +6,67 @@ describe('Open3cl misc unit tests', () => {
66
test('should calculate primary conso with coeff 1.9 (since janvier 2026) for dpe: 2369E2791083C', async () => {
77
const inputDpe = await getAdemeFileJsonOrDownload('2369E2791083C');
88
const outputDpe = calcul_3cl(structuredClone(inputDpe));
9-
expect(outputDpe.logement.sortie.ep_conso.previous_classe_bilan_dpe).toBe('G');
9+
expect(outputDpe.logement.sortie.ep_conso.coeff_2_3_classe_bilan_dpe).toBe('G');
1010
expect(outputDpe.logement.sortie.ep_conso.classe_bilan_dpe).toBe('F');
1111
expect(outputDpe.logement.sortie.ep_conso.classe_bilan_dpe_2026).toBe('F');
1212

1313
expect(outputDpe.logement.sortie.ep_conso.ep_conso_5_usages).toBeLessThan(
14-
outputDpe.logement.sortie.ep_conso.previous_ep_conso_5_usages
14+
outputDpe.logement.sortie.ep_conso.coeff_2_3_ep_conso_5_usages
1515
);
1616

1717
expect(outputDpe.logement.sortie.ep_conso.ep_conso_5_usages).toBeLessThan(
18-
outputDpe.logement.sortie.ep_conso.previous_ep_conso_5_usages
18+
outputDpe.logement.sortie.ep_conso.coeff_2_3_ep_conso_5_usages
1919
);
2020

2121
expect(outputDpe.logement.sortie.ep_conso.ep_conso_5_usages_m2).toBeLessThan(
22-
outputDpe.logement.sortie.ep_conso.previous_ep_conso_5_usages_m2
22+
outputDpe.logement.sortie.ep_conso.coeff_2_3_ep_conso_5_usages_m2
2323
);
2424
});
2525

2626
test('should calculate primary conso with coeff 1.9 (since janvier 2026) for dpe: 2513E1166911W', async () => {
2727
const inputDpe = await getAdemeFileJsonOrDownload('2513E1166911W');
2828
const outputDpe = calcul_3cl(structuredClone(inputDpe));
29-
expect(outputDpe.logement.sortie.ep_conso.previous_classe_bilan_dpe).toBe('C');
29+
expect(outputDpe.logement.sortie.ep_conso.coeff_2_3_classe_bilan_dpe).toBe('C');
3030
expect(outputDpe.logement.sortie.ep_conso.classe_bilan_dpe).toBe('B');
3131
expect(outputDpe.logement.sortie.ep_conso.classe_bilan_dpe_2026).toBe('B');
3232

3333
expect(outputDpe.logement.sortie.ep_conso.ep_conso_5_usages).toBeLessThan(
34-
outputDpe.logement.sortie.ep_conso.previous_ep_conso_5_usages
34+
outputDpe.logement.sortie.ep_conso.coeff_2_3_ep_conso_5_usages
3535
);
3636

3737
expect(outputDpe.logement.sortie.ep_conso.ep_conso_5_usages).toBeLessThan(
38-
outputDpe.logement.sortie.ep_conso.previous_ep_conso_5_usages
38+
outputDpe.logement.sortie.ep_conso.coeff_2_3_ep_conso_5_usages
3939
);
4040

4141
expect(outputDpe.logement.sortie.ep_conso.ep_conso_5_usages_m2).toBeLessThan(
42-
outputDpe.logement.sortie.ep_conso.previous_ep_conso_5_usages_m2
42+
outputDpe.logement.sortie.ep_conso.coeff_2_3_ep_conso_5_usages_m2
4343
);
4444
});
4545

4646
test('should calculate primary conso with coeff 1.9 (since janvier 2026) for dpe: 2528E1249844E', async () => {
4747
const inputDpe = await getAdemeFileJsonOrDownload('2528E1249844E');
4848
const outputDpe = calcul_3cl(structuredClone(inputDpe));
49-
expect(outputDpe.logement.sortie.ep_conso.previous_classe_bilan_dpe).toBe('A');
49+
expect(outputDpe.logement.sortie.ep_conso.coeff_2_3_classe_bilan_dpe).toBe('A');
5050
expect(outputDpe.logement.sortie.ep_conso.classe_bilan_dpe).toBe('A');
5151
expect(outputDpe.logement.sortie.ep_conso.classe_bilan_dpe_2026).toBe('A');
5252

5353
expect(outputDpe.logement.sortie.ep_conso.ep_conso_5_usages).toBeLessThan(
54-
outputDpe.logement.sortie.ep_conso.previous_ep_conso_5_usages
54+
outputDpe.logement.sortie.ep_conso.coeff_2_3_ep_conso_5_usages
5555
);
5656

5757
expect(outputDpe.logement.sortie.ep_conso.ep_conso_5_usages).toBeLessThan(
58-
outputDpe.logement.sortie.ep_conso.previous_ep_conso_5_usages
58+
outputDpe.logement.sortie.ep_conso.coeff_2_3_ep_conso_5_usages
5959
);
6060

6161
expect(outputDpe.logement.sortie.ep_conso.ep_conso_5_usages_m2).toBeLessThan(
62-
outputDpe.logement.sortie.ep_conso.previous_ep_conso_5_usages_m2
62+
outputDpe.logement.sortie.ep_conso.coeff_2_3_ep_conso_5_usages_m2
6363
);
6464
});
6565

6666
test('should calculate primary conso with coeff 1.9 (since janvier 2026) for dpe: 2464E1799476F', async () => {
6767
const inputDpe = await getAdemeFileJsonOrDownload('2464E1799476F');
6868
const outputDpe = calcul_3cl(structuredClone(inputDpe));
69-
expect(outputDpe.logement.sortie.ep_conso.previous_ep_conso_5_usages).toBeCloseTo(
69+
expect(outputDpe.logement.sortie.ep_conso.coeff_2_3_ep_conso_5_usages).toBeCloseTo(
7070
44852.95,
7171
0.5
7272
);

types.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -419,13 +419,13 @@ interface Ep_conso {
419419
ep_conso_fr: number;
420420
ep_conso_fr_depensier: number;
421421
ep_conso_5_usages: number;
422-
previous_ep_conso_5_usages?: number;
422+
coeff_2_3_ep_conso_5_usages?: number;
423423
ep_conso_5_usages_2026?: number;
424424
ep_conso_5_usages_m2: number;
425-
previous_ep_conso_5_usages_m2?: number;
425+
coeff_2_3_ep_conso_5_usages_m2?: number;
426426
ep_conso_5_usages_2026_m2?: number;
427427
classe_bilan_dpe: string;
428-
previous_classe_bilan_dpe?: string;
428+
coeff_2_3_classe_bilan_dpe?: string;
429429
classe_bilan_dpe_2026?: string;
430430
}
431431
interface Emission_ges {

0 commit comments

Comments
 (0)