Repository navigation
fix(ecs): reconstituer le rdim des installations ECS individuelles multiples en immeuble - #321
Open
elliot-redfroggy wants to merge 1 commit into
Open
elliot-redfroggy wants to merge 1 commit into
elliot-redfroggy wants to merge 1 commit into
Conversation
…ltiples en immeuble Dans un DPE immeuble décrivant plusieurs installations ECS individuelles pour un logement type (surface_habitable d'un logement, nombre_logement = N, sans rdim, avec Σ Sh × N ≈ SH à 5 % près et au moins un N > 1), chaque installation reçoit rdim = nombre_logement, comme le fait Tribu (Calcul_batiment.cs l. 581-588 et 1660-1662) : besoin ramené à un logement, conso remultipliée par N à l'agrégation. Étend le cas de l'installation unique (#288) à plusieurs installations.
michaeldesigaud
self-requested a review
October 30, 2026 15:31
michaeldesigaud
approved these changes
Oct 30, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexte
La PR #288 reconstitue
rdim = nombre_logementpour une installation ECS individuelle unique décritepour un logement type dans un DPE immeuble. Certains logiciels (3.0.x, 2.0.x, 1.1.x…) exportent de la
même façon plusieurs installations individuelles : pour chaque installation i,
surface_habitable= Sh_i d'un logement type,nombre_logement= N_i, pas derdim, avecΣ Sh_i × N_i = SH.
Sans rdim, Open3CL attribue à chaque installation le besoin d'un « logement moyen » et ne remultiplie pas
sa consommation par N_i. Sur ces DPE, la conso ECS sort à environ 25 % de la valeur ADEME.
Règle Tribu
DPE.Core/Calcul_batiment.csl. 581-588 (Calcul_Cecs) : la boucle traite chaque installationindépendamment. Pour une installation individuelle en immeuble collectif :
Ratio = Sh_ecs × Rdim / SH, puisBecs = Becs1 × Ratio / Rdim, soit le besoin d'un logement.DPE.Core/Calcul_batiment.csl. 1660-1662 (Calcul_Cecs_installation_2) :Cecs_i = Becs1 × Ratio × (1 − Fecs) × Iecs / Rdim, puisCecs_bat += Cecs_i × Rdim.DPE.Core/Calcul_installation_ECS.csl. 75 :Rdimest lu tel quel dans la saisie, sansagrégation entre installations.
immeuble collectif » :
Sh_ecs= surface affectée à une installation,Rdim= nombred'installations identiques.
d'appartements équipés du type de système considéré, puis additionnées ». Le § 11.4 (0,5 × Becs
par système) concerne un logement équipé de deux systèmes, pas ce cas.
Contrôle sur l'export ADEME (3cl_tribu 1.4.23 à 1.4.25) :
besoin_ecs_i = Becs_immeuble × Sh_i / SHet
conso_ecs = Σ conso_ecs_i × N_ià 0,01 % près. Exemples : 2244E3039157K (2 inst., N = 2 et 6),2275E2551585V (N = 7 et 7), 2293E0504226Y (N = 7 et 5).
Correctif
src/11_rdim_ecs_individuelle_unique.jsgagne deux fonctions,rdimsImplicitesEcsIndividuellesMultiplesetreconstituerRdimEcsIndividuellesMultiples, appeléesdans
engine.jsjuste après la reconstitution de l'installation unique. La règle s'applique si :avec un
rdim;Elle pose alors
rdim_i = N_i(1 si absent) etrdim_reconstitue = truesur chaque installation, etréutilise la chaîne existante : besoin / rdim dans
11_ecs.js, conso × rdim dansconso.js.La garde de surface écarte les exports où Sh_i est déjà la surface desservie (Σ Sh_i = SH, N_i parfois
fractionnaires). Sur le corpus mixte, aucun cas n'est proche de la limite : les cas retenus sont à
≤ 0,3 % et les cas exclus à ≥ 10 %.
Mesure corpus (runner officiel, origin/main 221ee3a → branche)
Le seul OK→KO est 2359E0854624N (logiciel 4.1.1, 3cl_tribu 1.4.25.1), et son export est
incohérent : la conso ECS ADEME (4 048 kWh) est inférieure au besoin ECS de l'immeuble (7 068 kWh)
alors que l'immeuble est équipé de ballons électriques (rendement < 1). Le logiciel a calculé avec
Rdim = 1 tout en exportant N = 2 et 4, si bien que seuls 2 logements sur 6 sont couverts. Ce DPE n'est
pas reproductible de façon cohérente.
Contrôle des scénarios de travaux (un seul DPE modifié, sans purge)
4 DPE qui diffèrent sont des immeubles concernés par la règle (2371E1607682T, 2344E0419229Z,
2286E1357778P, 2321E0986207Y). L'état initial s'y rapproche de l'ADEME, « sans purge » reste égal à
« purge », et le gain des travaux est du même ordre que sur main (−50 contre −46, −133 contre −135,
−52 contre −55, −53 contre −57 kWh/m²).
Tests
src/11_rdim_ecs_individuelle_unique.spec.jscouvre :nombre_logementabsent ;src/engine.spec.jsvérifie l'appel avantcalc_ecs.ajoutés, tous verts.