Repository navigation
fix(pont-thermique): reprendre la ligne PT du DPE si seul le dormant diffère (#296) - #309
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
…diffère (#296) En mode bug_for_bug_compat, pour une liaison menuiserie / mur, la ligne tv_pont_thermique_id exportée par le DPE est reprise lorsqu'elle ne diffère de la ligne recalculée que par la largeur du dormant et que son k est égal au k exporté. Comportement normatif inchangé hors bug_for_bug_compat. Appliqué au legacy et à la nouvelle architecture.
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
Issue #296 : sur les DPE DPEWIN 3.1.x / 5.1.x (moteur
3cl_tribu_1.4.25.1, méthodes 26/31-34), la menuiserie exportelargeur_dormant = 5alors que le pont thermique « menuiserie / mur » exporte letv_pont_thermique_idde la ligne « dormant 10 », avec le k qui va avec. Open3CL recalcule la ligne « dormant 5 », ce qui donne desdeperdition_pont_thermiquetrop fortes (ex. 2375E2293948T : 1 182 ADEME contre 1 407 O3CL).Avis de l'expert (Olivier) : normativement, c'est à SORTIR (§3.4.5, largeur du dormant « arrondie à la valeur la plus proche » : la ligne recalculée est la bonne). Un redressement en
bug_for_bug_compatreste « défendable comme redressement tracé ». On applique la même politique que pour #292, #293 et #294 (PR #304, #305, #306).Règle (uniquement en
bug_for_bug_compat)Pour un pont thermique menuiserie / mur en valeur forfaitaire, on reprend la ligne
tv_pont_thermique_idexportée par le DPE à la place de la ligne recalculée si toutes ces conditions sont réunies :largeur_dormant(mêmeisolation_mur, même type de pose, mêmepresence_retour_isolation, et une largeur de dormant renseignée mais différente) ;pont_thermique.donnee_intermediaire.k).Dans tous les autres cas, et toujours hors
bug_for_bug_compat, le comportement normatif ne change pas.Implémentation
src/3.4_pont_thermique.js) : nouvelle fonction exportéeligneDpeSiSeulDormantDiffere(row, tv_id_dpe, pt_di), appelée danstv_kaprès la recherche de la ligne, et seulement pourmenuiserie / muren b4b. Letv_pont_thermique_iddu DPE est lu avant d'être écrasé.PontThermiqueTvStore: ajout degetByIdet degetForMenuiserie(ligne complète).getKForMenuiseries'appuie désormais surgetForMenuiserie, sans changement de comportement.DeperditionPontThermiqueService: la même règle est appliquée danspontThermiqueMenuiserieMur(méthodeligneDpeSiSeulDormantDiffere), à partir d'unkExportepassé en paramètre.DeperditionEnveloppeServicetransmet lept.donnee_intermediaire?.kexporté.EngineService.#removeComputedDataconserve uniquement lekexporté des ponts thermiques (au lieu de supprimer toute ladonnee_intermediaire). Le reste est recalculé comme avant.Tests
bug_for_bug_compatparvi.hoisted+vi.mock), store (getById,getForMenuiserie),EngineServiceetDeperditionEnveloppeService.3.4_pont_thermique.spec.jsont été adaptés : en b4b,tv()reçoit maintenant un 3ᵉ appel de vérification, donc l'assertion porte sur le 2ᵉ appel.src/3.4_pont_thermique.js,pontThermiqueTv.store.jsetengine.service.js.Mesure corpus (main vs branche, b4b, seuil 5 %)
Le scan de
corpus_immeuble+corpus_autres(~90 k DPE) trouve 70 492 DPE avec au moins un PT menuiserie / mur forfaitaire. Parmi eux, 4 760 DPE ont un PT dont la ligne exportée a une largeur de dormant différente de celle de la menuiserie et un k exporté égal à celui de cette ligne.Détail sur les 4 760 DPE concernés :
deperdition_enveloppeOK 4 650 → 4 693 ;conso_ch3 225 → 3 280 ;ges2 505 → 2 565.Analyse des 63 OK→KO et des 85 dp_PT dégradés (k par PT rejoués sur les deux versions) :
sortie.deperdition_pont_thermiqueADEME qui ne correspond pas à Σ l·k·pc des PT exportés (incohérence de l'export, ex. 2378E3808797H). Les 3 restants ont d'autres PT encore en écart, qui ne relèvent pas de cette règle.Tous les scripts sont dans
~/work/i296(scan.py, replay.mjs, an.py, ptbatch.mjs).Closes #296