jzck / open3cl Goto Github PK
View Code? Open in Web Editor NEWMoteur de calcul 3CL / DPE
License: GNU General Public License v3.0
Moteur de calcul 3CL / DPE
License: GNU General Public License v3.0
Describe the bug
Dans les tests actuels on contrôle la valeur de la fraction d'apport gratuit, cependant, dans beaucoup de logiciels, il semble que cette valeur sont arrondie à 1 si elle n'est pas nulle.
To Reproduce
Dans le DPE 2187E0981996L,
<fraction_apport_gratuit_ch>1</fraction_apport_gratuit_ch>
<fraction_apport_gratuit_depensier_ch>1</fraction_apport_gratuit_depensier_ch>
le résultat du calcul étant :
<fraction_apport_gratuit_ch>0.16292857201616517</fraction_apport_gratuit_ch>
<fraction_apport_gratuit_depensier_ch>0.13390710099435527</fraction_apport_gratuit_depensier_ch>
Expected behavior
Le test devrait essayer d'arrondir la valeur à 1 si elle n'est pas nulle pour voir si elle corresponds à la valeur du DPE d'origine.
Additional context
Describe the bug
Le DPE 2287E2021836I comporte des erreurs sur les valeurs de déperdition des murs.
Cependant, les données intermédiaires sont toutes identiques sur les murs. Les calculs devraient donc sortir la même chose (aux arrondis près).
To Reproduce
J'ai utilisé un autre logiciel pour faire l'analyse de ce DPE et le résultat de la déperdition des murs est cohérente avec celle trouvée par la librairie.
En excluant les plancher et plafond, on retrouve une déperdition de 72,27 cohérente avec le résultat Open3CL.
Expected behavior
La valeur de deperdition des murs devrait être la somme de deperdition de chaque mur soit 72,27.
Additional context
Describe the bug
Le DPE 2287E1724516Y comporte des erreurs sur les valeurs de uMur et de uMur0.
{
donnee_entree: {
description:
"Mur 4 Nord, Sud (p1) - Mur en pan de bois sans remplissage tout venant d'épaisseur 18 cm avec isolation intérieure (R=2.5m².K/W) donnant sur l'extérieur",
reference: '2022_07_28_05_58_44_4984876005871074',
tv_coef_reduction_deperdition_id: 1,
enum_type_adjacence_id: '1',
enum_orientation_id: '2',
surface_paroi_totale: 10.4,
surface_paroi_opaque: 10.4,
tv_umur0_id: 34,
epaisseur_structure: 18,
enum_materiaux_structure_mur_id: '5', // Murs en pan de bois sans remplissage tout venant
enum_methode_saisie_u0_id: '2', // déterminé selon le matériau et épaisseur à partir de la table de valeur forfaitaire
paroi_ancienne: 1,
enum_type_doublage_id: '2', // absence de doublage
enum_type_isolation_id: '3', // ITI
resistance_isolation: 2.5,
enum_methode_saisie_u_id: '6' // Resistance isolation saisie justifiée à partir des documents justificatifs autorisés
},
donnee_intermediaire: {
b: 1,
umur: 0.26990177584075975,
umur0: 0.8298399999999999
}
}
En sortie de calcul on obtient :
{
donnee_entree: {
description:
"Mur 4 Nord, Sud (p1) - Mur en pan de bois sans remplissage tout venant d'épaisseur 18 cm avec isolation intérieure (R=2.5m².K/W) donnant sur l'extérieur",
reference: '2022_07_28_05_58_44_4984876005871074',
tv_coef_reduction_deperdition_id: 1,
enum_type_adjacence_id: '1',
enum_orientation_id: '2',
surface_paroi_totale: 10.4,
surface_paroi_opaque: 10.4,
tv_umur0_id: 34,
epaisseur_structure: 18,
enum_materiaux_structure_mur_id: '5', // Murs en pan de bois sans remplissage tout venant
enum_methode_saisie_u0_id: '2', // déterminé selon le matériau et épaisseur à partir de la table de valeur forfaitaire
paroi_ancienne: 1,
enum_type_doublage_id: '2', // absence de doublage
enum_type_isolation_id: '3', // ITI
resistance_isolation: 2.5,
enum_methode_saisie_u_id: '6' // Resistance isolation saisie justifiée à partir des documents justificatifs autorisés
},
donnee_intermediaire: {
b: 1,
umur: 0.33277310924369746,
umur0: 1.98
}
}
umur_nu = 1.98
umur = 1 / ((1/1.98) + 2.5) = 0,332773109
Expected behavior
La valeur de uMur devrait être 0,332773109 et uMur0 1.98
Additional context
Describe the bug
Dans le DPE 2187E0982591I, la déperdition des planchers bas n'est pas cohérente entre le résultat de la lib et la valeur du DPE d'origine.
Les données intermédiaires ne sont pas les mêmes.
Dans le DPE d'origine
{
"donnee_entree": {
"description": "Plancher 1 - Plancher avec ou sans remplissage non isolé donnant sur un terre-plein",
"enum_type_adjacence_id": "5", // terre-plein
"surface_paroi_opaque": 44.8,
"tv_upb0_id": 2,
"enum_type_plancher_bas_id": "2", // Plancher avec ou sans remplissage
"enum_methode_saisie_u0_id": "2", // déterminé selon le matériau et épaisseur à partir de la table de valeur forfaitaire
"enum_type_isolation_id": "2", // Non isolé
"enum_methode_saisie_u_id": "1", // Non isolé
"calcul_ue": 1,
"perimetre_ue": 12.8,
"ue": 0.38538462
},
"donnee_intermediaire": {
"b": 1,
"upb": 1.45,
"upb_final": 0.38538462,
"upb0": 1.45
}
}
En sortie de calcul on obtient :
{
"donnee_entree": {
"description": "Plancher 1 - Plancher avec ou sans remplissage non isolé donnant sur un terre-plein",
"enum_type_adjacence_id": "5",
"surface_paroi_opaque": 44.8,
"tv_upb0_id": 2,
"enum_type_plancher_bas_id": "2",
"enum_methode_saisie_u0_id": "2",
"enum_type_isolation_id": "2",
"enum_methode_saisie_u_id": "1",
"calcul_ue": 1,
"perimetre_ue": 12.8,
"ue": 0.3361538461538462,
"reference": "plancher_bas_0",
"tv_coef_reduction_deperdition_id": 5
},
"donnee_intermediaire": {
"b": 1,
"upb0": 1.45,
"upb": 1.45,
"upb_final": 0.3361538461538462
}
}
To Reproduce
Surface sur terre plein
P = 12.8
S = 44.8
2S/P = (2 * 44.8) / 12.8 = 7 (arrondi à l'entier le plus proche)
upb0 = 1.45
upb = 1.45
upbInf = 0.85
upbSup = 1.5
ueInf = 0.33
ueSup = 0.39
D'après la norme :
Les données ne figurant pas dans le tableau peuvent être obtenues par interpolation et extrapolation en traçant des
droites entre les valeurs les plus proches présentes dans le tableau
ue = ueInf + ( ueSup - ueInf ) * (upb - upbInf) / (upbSup - upbInf)
ue = 0.33 + ( 0.39 - 0.33 ) * (1.45 - 0.85) / ( 1.5 - 0.85)
ue = 0,385384615
upb_final = ue = 0,385384615
Expected behavior
Le calcul de la lib n'est pas bon et devrait retourner upb_final = ue = 0,385384615
Le problème semble venir de la fonction tv_ue
qui fait la somme des surfaces de tous les planches sans distinction du type d'adjacence. Les planchers donnant sur des terre plein sont ajouté à ceux donnant sur vide sanitaire alors que les règles ne sont pas les mêmes.
Additional context
Describe the bug
Le DPE 2187E0982013C comporte des erreurs sur les valeurs de uMur et de uMur0.
{
"donnee_entree": {
"description": "Mur Nord, Sud, Est, Ouest - Mur en pierre de taille et moellons avec remplissage tout venant d'épaisseur 50 cm non isolé donnant sur l'extérieur",
"enum_type_adjacence_id": "1",
"enum_orientation_id": "4",
"surface_paroi_totale": 134.76,
"surface_paroi_opaque": 134.76,
"tv_umur0_id": 15,
"enum_materiaux_structure_mur_id": "3",
"enum_methode_saisie_u0_id": "2",
"paroi_ancienne": 1,
"enum_type_doublage_id": "2",
"enum_type_isolation_id": "2",
"enum_methode_saisie_u_id": "1"
},
"donnee_intermediaire": {
"b": 1,
"umur": 0.81545,
"umur0": 0.81545
}
}
En sortie de calcul on obtient :
{
"donnee_entree": {
"description": "Mur Nord, Sud, Est, Ouest - Mur en pierre de taille et moellons avec remplissage tout venant d'épaisseur 50 cm non isolé donnant sur l'extérieur",
"enum_type_adjacence_id": "1",
"enum_orientation_id": "4",
"surface_paroi_totale": 134.76,
"surface_paroi_opaque": 134.76,
"tv_umur0_id": 15,
"enum_materiaux_structure_mur_id": "3",
"enum_methode_saisie_u0_id": "2",
"paroi_ancienne": 1,
"enum_type_doublage_id": "2",
"enum_type_isolation_id": "2",
"enum_methode_saisie_u_id": "1"
},
"donnee_intermediaire": {
"b": 1,
"umur": 1.9,
"umur0": 1.9
}
}
Umur inconnu
Type de mur “Murs en pierre de taille et moellons avec remplissage tout venant"
Umur0 = 1.9 (l'épaisseur du mur n'étant pas indiqué, on prends la valeur la plus défavorable)
Umur_nu=Min(Umur0 ; 2,5)=1.9
Pas d’isolation (type d’isolation = non isolé)
Umur = Umur_nu = 1.9
Expected behavior
La valeur de uMur et de uMur0 devrait être 1.9
Additional context
Describe the bug
Le calcul des apports gratuit (solaire et interne) retourne des valeurs erronées.
Exemple avec l'apport solaire :
Expected: 1551436.4819200002
Received: 1551.4364819200002
Avec l'apport interne :
Expected: 1459229.75
Received: 1459.22975
Ce sont les bonnes valeurs, mais un coefficient de 1000 est manquant.
D'après le document "Annexe 1 - Méthode de calcul 3CL-DPE 2021 – juin 2021" pages 43 et 44 les formules de calcul sont :
et
To Reproduce
Tous les DPE.
Expected behavior
On devrait retrouver la même valeur que le DPE d'origine (valeur retournée divisée par 1000).
Additional context
Describe the bug
Une différence sur les données intermédiaire est présente sur le DPE 2287E1327399F.
Cela concerne le mur "Mur 1 Nord - ", premier de la collection.
{
"donnee_entree": {
"description": "Mur 1 Nord - Mur en pierre de taille et moellons avec remplissage tout venant d'épaisseur 60 cm avec isolation intérieure (R=3,7m².K/W) donnant sur un bâtiment ou local à usage autre que d'habitation",
"reference": "2022_06_15_14_48_45_6578917004465132",
"tv_coef_reduction_deperdition_id": 4,
"enum_type_adjacence_id": "4",
"enum_orientation_id": "2",
"surface_paroi_totale": 48.39,
"surface_paroi_opaque": 48.39,
"tv_umur0_id": 17,
"epaisseur_structure": 60,
"enum_materiaux_structure_mur_id": "3",
"enum_methode_saisie_u0_id": "2",
"paroi_ancienne": 1,
"enum_type_doublage_id": "2",
"enum_type_isolation_id": "3",
"resistance_isolation": 3.7,
"enum_methode_saisie_u_id": "6"
},
"donnee_intermediaire": {
"b": 0.2,
"umur": 0.19900518501955455,
"umur0": 0.7547200000000001
}
}
En sortie de calcul on obtient :
{
"donnee_entree": {
"description": "Mur 1 Nord - Mur en pierre de taille et moellons avec remplissage tout venant d'épaisseur 60 cm avec isolation intérieure (R=3,7m².K/W) donnant sur un bâtiment ou local à usage autre que d'habitation",
"reference": "2022_06_15_14_48_45_6578917004465132",
"tv_coef_reduction_deperdition_id": 4,
"enum_type_adjacence_id": "4",
"enum_orientation_id": "2",
"surface_paroi_totale": 48.39,
"surface_paroi_opaque": 48.39,
"tv_umur0_id": 17,
"epaisseur_structure": 60,
"enum_materiaux_structure_mur_id": "3",
"enum_methode_saisie_u0_id": "2",
"paroi_ancienne": 1,
"enum_type_doublage_id": "2",
"enum_type_isolation_id": "3",
"resistance_isolation": 3.7,
"enum_methode_saisie_u_id": "6"
},
"donnee_intermediaire": {
"umur0": 1.6,
"b": 0.2,
"umur": 0.23121387283236994
}
}
uMur0 = 1.6
umur_nu = Min(uMur0; 2.5) = 1.6
umur = 1 / ((1/umur_nu)+Risolant) = 1 / ((1 / 1.6) + 3.7) = 0,231213873
Expected behavior
La valeur de uMur devrait être 0,231213873 et uMur0 1.6
Additional context
Describe the bug
Pour calculer l'intermittence, la valeur tv_intermittence_id
est détectée dans le fichier de table de valeurs (onglet intermittence).
Pour enum_methode_application_dpe_log_id
différentes de 1 (maison individuelle), la colonne enum_classe_inertie_id
n'est pas renseignée.
Or dans le code on recherche systématiquement une correspondance avec une classe d'inertie pour trouver un identifiant d'intermittence.
const matcher = {
enum_methode_application_dpe_log_id: map_id,
enum_type_installation_id: inst_ch_de.enum_type_installation_id,
enum_type_chauffage_id: de.enum_type_chauffage_id,
enum_equipement_intermittence_id: de.enum_equipement_intermittence_id,
enum_type_regulation_id: de.enum_type_regulation_id,
enum_type_emission_distribution_id: de.enum_type_emission_distribution_id,
enum_classe_inertie_id: inertie_id,
/* TODO */
comptage_individuel: 'Absence'
};
Du coup on trouve un mauvais type d'intermittence et donc un mauvais u0
, je pense qu'il faut conditionner le fait de chercher par enum_classe_inertie_id
au logements individuels ?
To Reproduce
2344E0308327N
Expected behavior
Le bon i0
est calculé pour un logement de type "immeuble"
Additional context
Describe the bug
Dans la recherche des données intermédiaire des baies vitrées, la valeur ujn
utilisée n'est pas la bonne si la valeur de uw
est un entier.
Cela vient de la structuration du fichier tv.js
et de la manière dont on recherche dedans.
To Reproduce
Exemple avec les baies vitrées 2, 3, 4 et 5 du fichier ademe 2187E0982013C.
Expected behavior
Si la valeur de uw
est 3, il ne faut pas chercher "3.0" mais "3".
Additional context
Describe the bug
Le DPE 2387E0045247S comporte des erreurs sur les valeurs de uMur et de uMur0.
{
donnee_entree: {
description:
"Mur 2 Est - Mur en pierre de taille et moellons avec remplissage tout venant d'épaisseur 50 cm avec un doublage rapporté non isolé donnant sur un garage",
reference: '2023_01_05_11_43_33_3939838001416257',
reference_lnc: 'LNC2023_01_05_11_43_33_3939838001416257',
tv_coef_reduction_deperdition_id: 105,
surface_aiu: 29,
surface_aue: 120,
enum_cfg_isolation_lnc_id: '2', // lc non isolé + lnc non isolé
enum_type_adjacence_id: '8', // Garage
enum_orientation_id: '3', // Est
surface_paroi_totale: 29,
surface_paroi_opaque: 29,
tv_umur0_id: 15,
epaisseur_structure: 50,
enum_materiaux_structure_mur_id: '3', // Mur en pierre de taille et moellons avec remplissage tout venant
enum_methode_saisie_u0_id: '2', // déterminé selon le matériau et épaisseur à partir de la table de valeur forfaitaire
paroi_ancienne: 1,
enum_type_doublage_id: '4', // doublage indéterminé avec lame d'air sup 15 mm
enum_type_isolation_id: '2', // Non isolé
enum_methode_saisie_u_id: '1' // Non isolé
},
donnee_intermediaire: {
b: 0.9,
umur: 0.6962300000000001,
umur0: 0.69623
}
}
En sortie de calcul on obtient :
{
donnee_entree: {
description:
"Mur 2 Est - Mur en pierre de taille et moellons avec remplissage tout venant d'épaisseur 50 cm avec un doublage rapporté non isolé donnant sur un garage",
reference: '2023_01_05_11_43_33_3939838001416257',
reference_lnc: 'LNC2023_01_05_11_43_33_3939838001416257',
tv_coef_reduction_deperdition_id: 105,
surface_aiu: 29,
surface_aue: 120,
enum_cfg_isolation_lnc_id: '2', // lc non isolé + lnc non isolé
enum_type_adjacence_id: '8', // Garage
enum_orientation_id: '3', // Est
surface_paroi_totale: 29,
surface_paroi_opaque: 29,
tv_umur0_id: 15,
epaisseur_structure: 50,
enum_materiaux_structure_mur_id: '3', // Mur en pierre de taille et moellons avec remplissage tout venant
enum_methode_saisie_u0_id: '2', // déterminé selon le matériau et épaisseur à partir de la table de valeur forfaitaire
paroi_ancienne: 1,
enum_type_doublage_id: '4', // doublage indéterminé avec lame d'air sup 15 mm
enum_type_isolation_id: '2', // Non isolé
enum_methode_saisie_u_id: '1' // Non isolé
},
donnee_intermediaire: {
b: 0.9,
umur: 1.3581129378127235,
umur0: 1.3581129378127235
}
}
Ajouter la correction liée au doublage :
Pour un mur avec un doublage rapporté avec une lame d’air de plus de 15 mm ou avec un matériau de doublage
connu (plâtre, brique, bois) : Rdoublage = 0,21 m2.K/W
umur0_corrige = 1 / ((1 / 1.9) + 0.21) = 1,358112938
Expected behavior
La valeur de uMur et de uMur0 devrait être 1,358112938
Additional context
Describe the bug
Le DPE 2287E2336469P comporte des erreurs sur les valeurs de uMur et de uMur0.
{
donnee_entree: {
description:
"Mur 1 Est - Mur en pierre de taille et moellons avec remplissage tout venant d'épaisseur 50 cm non isolé donnant sur l'extérieur",
reference: '2022_10_09_17_17_06_68960810009669888',
reference_lnc: '',
tv_coef_reduction_deperdition_id: 1,
enum_type_adjacence_id: '1', // Exterieur
enum_orientation_id: '3', // Est
surface_paroi_totale: 44.22,
surface_paroi_opaque: 44.22,
tv_umur0_id: 15,
epaisseur_structure: 50,
enum_materiaux_structure_mur_id: '3', // Mur en pierre de taille et moellons avec remplissage tout venant
enum_methode_saisie_u0_id: '2', // déterminé selon le matériau et épaisseur à partir de la table de valeur forfaitaire
paroi_ancienne: 1,
enum_type_doublage_id: '2', // absence de doublage
enum_type_isolation_id: '2', // Non isolé
enum_methode_saisie_u_id: '1' // non isolé
},
donnee_intermediaire: {
b: 1,
umur: 0.81545,
umur0: 0.81545
}
}
En sortie de calcul on obtient :
{
donnee_entree: {
description:
"Mur 1 Est - Mur en pierre de taille et moellons avec remplissage tout venant d'épaisseur 50 cm non isolé donnant sur l'extérieur",
reference: '2022_10_09_17_17_06_68960810009669888',
reference_lnc: '',
tv_coef_reduction_deperdition_id: 1,
enum_type_adjacence_id: '1', // Exterieur
enum_orientation_id: '3', // Est
surface_paroi_totale: 44.22,
surface_paroi_opaque: 44.22,
tv_umur0_id: 15,
epaisseur_structure: 50,
enum_materiaux_structure_mur_id: '3', // Mur en pierre de taille et moellons avec remplissage tout venant
enum_methode_saisie_u0_id: '2', // déterminé selon le matériau et épaisseur à partir de la table de valeur forfaitaire
paroi_ancienne: 1,
enum_type_doublage_id: '2', // absence de doublage
enum_type_isolation_id: '2', // Non isolé
enum_methode_saisie_u_id: '1' // non isolé
},
donnee_intermediaire: {
b: 1,
umur: 1.9,
umur0: 1.9
}
}
Expected behavior
La valeur de uMur et de uMur0 devrait être 1,9
Additional context
Description du bug
Certaines comparaisons échoues dans les tableaux de valeurs car le type est différent.
To Reproduce
Exemple dans le fichier 3.2.1_mur.js
:
if (!['1', '20'].includes(de.enum_materiaux_structure_mur_id)) {
1 et 20 sont des valeurs string
mais de.enum_materiaux_structure_mur_id
est une valeur numérique.
Exemple : https://jsfiddle.net/8h03L2bc/1/
Comportement attendu
Que la valeur soit numérique ou chaîne de caractère on devrait la trouver dans le tableau si elle existe.
Contexte technique
Describe the bug
Dans le DPE 2287E1043883T, la déperdition des planchers bas n'est pas cohérente entre le résultat de la lib et la valeur du DPE d'origine.
Les données intermédiaires ne sont pas les mêmes.
Dans le DPE d'origine
{
"donnee_entree": {
"description": "Plancher 2 - Dalle béton donnant sur un terre-plein",
"reference": "2022_05_11_17_10_51_2415353009491032",
"tv_coef_reduction_deperdition_id": 5,
"enum_type_adjacence_id": "5",
"surface_paroi_opaque": 24.34,
"tv_upb0_id": 9,
"enum_type_plancher_bas_id": "9",
"enum_methode_saisie_u0_id": "2",
"enum_type_isolation_id": "1",
"enum_periode_isolation_id": "1",
"tv_upb_id": 2,
"enum_methode_saisie_u_id": "8",
"calcul_ue": 1,
"perimetre_ue": 22,
"surface_ue": 24.34,
"ue": 0.61789474
},
"donnee_intermediaire": {
"b": 1,
"upb": 2,
"upb_final": 0.61789474,
"upb0": 2
}
}
En sortie de calcul on obtient :
{
"donnee_entree": {
"description": "Plancher 2 - Dalle béton donnant sur un terre-plein",
"reference": "2022_05_11_17_10_51_2415353009491032",
"tv_coef_reduction_deperdition_id": 5,
"enum_type_adjacence_id": "5",
"surface_paroi_opaque": 24.34,
"tv_upb0_id": 9,
"enum_type_plancher_bas_id": "9",
"enum_methode_saisie_u0_id": "2",
"enum_type_isolation_id": "1",
"enum_periode_isolation_id": "1",
"tv_upb_id": 8,
"enum_methode_saisie_u_id": "8",
"calcul_ue": 1,
"perimetre_ue": 22,
"surface_ue": 24.34,
"ue": 0.44
},
"donnee_intermediaire": {
"b": 1,
"upb0": 2,
"upb": 0.9,
"upb_final": 0.44
}
P = 22
S = 24.34
2S/P = (2 * 24.34) / 22 = 2,212727273 = 2 (arrondi à l'entier le plus proche)
upb0 = 2
upb = Min(upb0; upbtab) = Min(2; 2) = 2
ue = Umoyen pour tous les planchers du batiment
upb_final = ue
Expected behavior
Les valeurs du DPE d'origine sont bonnes et devraient correspondre au résultat de la lib.
Additional context
Describe the bug
Pour identifier un pont thermique on utilise isolation_mur
. Or si la valeur contient un +
(ex: ^iti+ite$
) alors la regex ne passe pas et un mauvais tv_pont_thermique_id
est retenu (K= 0.47 au lieu de 0.08
)
To Reproduce
2302E4043473J
Expected behavior
Le bon tv_pont_thermique_id
est retenu. K=0.08
Additional context
Describe the bug
Je pense qu'il y a une erreur dans le choix de prendre ou pas la date de construction comme date d'isolation.
Dans mon cas de figure j'ai la date d'isolation qui est renseignée et elle est remplacée par la date de construction alors qu'elle ne devrait pas il me semble.
To Reproduce
Fichier ademe : 2213E0696993Z
Test unitaire
Expected behavior
La date d'isolation renseignée enum_periode_isolation_id: '2', // 1948-1974
ne devrait pas être remplacée par la date par défaut "75-77" car l'année d'isolation est connue.
Describe the bug
Dans le cas d'une valeur uw_saisi
qui contient deux chiffres après la virgule (ex: 2.35
), la correspondance dans le fichier tv.js
n'est pas la bonne car les valeurs possibles sont: 2.3
ou 2.4
. Le tv_ujn_id
sélectionné n'est pas le bon.
Avant d'appeler tv('ujn', matcher)
, il faut forcer la précision de uw
à un chiffre apres la virgule : 2.35 => 2.4
, 2.28 => 2.3
, etc..
To Reproduce
2302E4043473J
Expected behavior
La valeur tv_ujn_id
sélectionné est la bonne.
Description du bug
Lorsque je veux utiliser le DPE 2387E2058698D comme entrée du moteur de calcul, une erreur est retournée.
Pour reproduire
./test.sh _download_one 2387E2058698D
./test.sh _run_one 2387E2058698D
./test.sh _diff_one 2387E2058698D
Le fichier /tmp/dpe/2387E2058698D.open3cl.json
est vide. Le fichier /tmp/dpe/2387E2058698D.err.log
contient :
q4pa_env: 412.50000000000006 q4pa: 515.1 n50: 17.383291178499736 qvinf: 159.16950791423542 e: 0.07 f: 15 Sh: 76
94 | }
95 |
96 | let coef = 1;
97 | if (th === 'maison') {
98 | if (hybride) coef = 14 / (24 * 7);
99 | di.pvent_moy = pvent_moy_maison[type][post_2012] * coef;
^
TypeError: undefined is not an object (evaluating 'pvent_moy_maison[type][post_2012]')
at calc_pvent (/home/florent/dev/redfroggy/open3cl/src/5_conso_ventilation.js:99:20)
at calc_ventilation (/home/florent/dev/redfroggy/open3cl/src/4_ventilation.js:131:3)
at /home/florent/dev/redfroggy/open3cl/src/3_deperdition.js:83:5
at forEach (:1:21)
at calc_deperdition (/home/florent/dev/redfroggy/open3cl/src/3_deperdition.js:82:3)
at calcul_3cl (/home/florent/dev/redfroggy/open3cl/src/engine.js:60:23)
at /home/florent/dev/redfroggy/open3cl/test/run_one_dpe.js:31:19
Comportement attendu
Le fichier /tmp/dpe/2387E2058698D.open3cl.json
devrait contenir le format JSON du fichier XML de l'ADEME.
Additional context
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.