Skip to content

Open3CL/engine

Repository files navigation

Contributors Forks Stargazers Issues  GPL-3.0 license


Logo

Open3CL

Implémentation open source du moteur Open3CL de l'ADEME.

Javascript


Créer un bug · Créer une feature

Sommaire
  1. A propos du projet
  2. Démarrage
  3. Usage
  4. Rapports
  5. Roadmap
  6. Contribution
  7. License
  8. Contact
  9. Acknowledgments

A propos du projet

Open3CL est une librairie JavaScript open source, spécialement conçue pour faciliter le calcul des Diagnostics de Performance Énergétique (DPE). Elle implémente la norme définie dans l'annexe 1 de l'arrêté du 31 mars 2021. Elle est destinée aux développeurs qui souhaitent intégrer des calculs énergétiques précis et conformes à la réglementation dans leurs applications.

(Retour sommaire)

Démarrage

Pre-requis

Vous devez d'abord installer NodeJS en version 20 ou supérieure.

Installation

  npm install @open3cl/engine

Documentation

Lien à faire vers les wiki

(Retour sommaire)

Utilisation

import { calcul_3cl } from 'open3cl';

// Exemple d'objet JSON issu d'un fichier XML DPE
const dpeData = {
  numero_dpe: '2113E1018248X',
  statut: 'ACTIF',
  logement: {
    caracteristique_generale: {
      annee_construction: 1948,
      surface_habitable_logement: 49.96
    },
    installation_chauffage_collection: {
      installation_chauffage: [
        {
          description: 'Chaudière individuelle gaz standard',
          surface_chauffee: 49.96,
          generateur_chauffage_collection: {
            generateur_chauffage: [{ description: '...' }]
          }
        }
      ]
    }
  }
};

const result = calcul_3cl(dpeData);

Variables d'environnements

Nom Description
DPE_FOLDER_PATH Obligatoire: Chemin vers lequel sont stockés les fichiers DPE (si non précisé, utiliser dpes-folder-path dans la ligne de commande
ADEME_API_CLIENT_ID Client id pour l'api de l'ademe
ADEME_API_CLIENT_SECRET Client secret pour l'api de l'ademe
MAX_WORKER_THREADS Nombre de threads maximum pour les tests de corpus, par défaut: os.availableParallelism * 1.5
WORKER_THREADS_CHUNKS Nombre de dpe à analyser par thread, par défaut: 200
API_ADEME_DOWNLOAD_WAIT Temps d'attente en ms entre chaque dpe à télécharger via l'api de l'ademe, par défaut: 1s

Attention aux quotas sur l'api:

  • 100 requêtes / seconde
  • 1000 requêtes / minute
  • 10000 requêtes / jour

Dans le cas où un corpus est joué avec beaucoup de dpe à télécharger via l'api de l'ademe (car non présent en local), la meilleure configuration est:

  • export MAX_WORKER_THREADS=10
  • export API_ADEME_DOWNLOAD_WAIT=1000
  • export WORKER_THREADS_CHUNKS=300

(Retour sommaire)

Corpus

Introduction

Les tests de corpus consistent à analyser une liste de numéro de DPE présent dans un fichier CSV.

  • Pour chaque DPE, le fichier est téléchargé si pas déjà présent en local, et il est envoyé à la librairie Open3CL.
  • On analyse en sortie de la lib certaines valeurs que l'on compare aux valeurs du DPE initial.
  • Le seuil de tolérance est fixé par défaut à 5%.

Qu'est-ce qui est contrôlé ?

Les informations contrôlées et qui doivent obligatoirement ne pas dépasser le seuil des 5% entre le dpe d'origine et le dpe proposé par la librairie Open3CL sont :

  • logement.sortie.ef_conso.conso_ecs
  • logement.sortie.ef_conso.conso_ch
  • logement.sortie.ep_conso.ep_conso_5_usages ou logement.sortie.ep_conso.ep_conso_5_usages_m2
  • logement.sortie.emission_ges.emission_ges_5_usages ou logement.sortie.emission_ges.emission_ges_5_usages_m2

Liste des corpus

Il existe actuellement 5 corpus (avec 10000 dpe analysés dans chaque corpus) :

  • corpus.csv: Corpus généraliste
  • dpe_logement_individuel_2025.csv: Corpus avec uniquement des dpe individuels réalisés en 2025
  • dpe_immeuble_chauffage_individuel.csv: Corpus avec uniquement des dpe immeuble pour des logements avec chauffage individuel
  • dpe_immeuble_chauffage_collectif.csv: Corpus avec uniquement des dpe immeuble pour des logements avec chauffage collectif
  • dpe_immeuble_chauffage_mixte.csv: Corpus avec uniquement des dpe immeuble pour des logements avec chauffage mixte

Comment lancer les corpus ?

  • npm run test:corpus:all: Joue l'intégralité des corpus et génère les rapports associés.
  • npm run test:corpus. Joue le corpus corpus_dpe.csv et génère les rapports associés.
  • npm run test:corpus -- corpus-file-path=corpus.csv. Chemin relatif vers le fichier de corpus à analyser Par défaut, le corpus utilisé est présent ici : test/corpus/corpus_dpe.csv
  • npm run test:corpus -- dpes-folder-path=/home/user/dpes. Chemin vers le dossier ou les DPE seront téléchargés. Si un fichier DPE est déjà présent dans ce dossier, il ne sera pas retéléchargé.

Résultats corpus

Résultats des tests de corpus avec le mode de compatibilité activé.

Voir les versions précédents
Version librairie corpus Nb en dessous du taux d'erreur Taux de réussite Description Détail des valeurs
1.2.3 corpus_dpe.csv 4489 45%
1.2.3 dpe_immeuble_chauffage_individuel.csv 3257 32%
1.2.3 dpe_immeuble_chauffage_collectif.csv 5279 53%
1.2.3 dpe_immeuble_chauffage_mixte.csv 2728 27%
1.2.8 corpus_dpe.csv 489 45%
1.2.8 dpe_immeuble_chauffage_individuel.csv 5275 (+2018) 53% (+21%)
1.2.8 dpe_immeuble_chauffage_collectif.csv 5747 (+468) 57% (+4%)
1.2.8 dpe_immeuble_chauffage_mixte.csv 3142 (+414) 31% (+4%)
1.3.1 corpus_dpe.csv 4508 (+19) 45%
1.3.1 dpe_immeuble_chauffage_individuel.csv 5459 (+184) 55% (+2%)
1.3.1 dpe_immeuble_chauffage_collectif.csv 5848 (+101) 58% (+1%)
1.3.1 dpe_immeuble_chauffage_mixte.csv 4018 (+876) 40% (+9%)
1.3.2 corpus_dpe.csv 4519 (+11) 45%
1.3.2 dpe_immeuble_chauffage_individuel.csv 5476 (+17) 55%
1.3.2 dpe_immeuble_chauffage_collectif.csv 5869 (+21) 58%
1.3.2 dpe_immeuble_chauffage_mixte.csv 4040 (+22) 40%
1.3.5 corpus_dpe.csv 4522 (+3) 45%
1.3.5 dpe_immeuble_chauffage_individuel.csv 5488 (+12) 55%
1.3.5 dpe_immeuble_chauffage_collectif.csv 5869 58%
1.3.5 dpe_immeuble_chauffage_mixte.csv 4082 (+42) 40%
1.3.6 corpus_dpe.csv 4522 45%
1.3.6 dpe_immeuble_chauffage_individuel.csv 5650 (+162) 56%
1.3.6 dpe_immeuble_chauffage_collectif.csv 5894 (+25) 59% (+1%)
1.3.6 dpe_immeuble_chauffage_mixte.csv 4141 (+59) 41% (+1%)
1.3.7 corpus_dpe.csv 4522 45%
1.3.7 dpe_immeuble_chauffage_individuel.csv 6960 (+1310) 69% (+13%)
1.3.7 dpe_immeuble_chauffage_collectif.csv 6106 (+212) 61% (+2%)
1.3.7 dpe_immeuble_chauffage_mixte.csv 4730 (+589) 47% (+6%)
1.3.8 corpus_dpe.csv 4522 45%
1.3.8 dpe_immeuble_chauffage_individuel.csv 6965 (+5) 69%
1.3.8 dpe_immeuble_chauffage_collectif.csv 6110 (+4) 61%
1.3.8 dpe_immeuble_chauffage_mixte.csv 4735 (+5) 47%
1.3.9 corpus_dpe.csv 4460 (-62) 44% (-1%) Pertes liés au fix bug tribu zone 2hd valeur dh19
1.3.9 dpe_immeuble_chauffage_individuel.csv 6901 (-64) 69% Pertes liés au fix bug tribu zone 2hd valeur dh19
1.3.9 dpe_immeuble_chauffage_collectif.csv 6058 (-58) 60% (-1%) Pertes liés au fix bug tribu zone 2hd valeur dh19
1.3.9 dpe_immeuble_chauffage_mixte.csv 4728 (-7) 47% Pertes liés au fix bug tribu zone 2hd valeur dh19
1.3.11 corpus_dpe.csv 4468 (+8) 44%
1.3.11 dpe_immeuble_chauffage_individuel.csv 6901 69%
1.3.11 dpe_immeuble_chauffage_collectif.csv 6058 60%
1.3.11 dpe_immeuble_chauffage_mixte.csv 4727 (-1) 47% Dpes erronés sur le calcul volume ballon ecs
Version librairie corpus Nb en dessous du taux d'erreur Taux de réussite Description Détail des valeurs
1.3.12 corpus_dpe.csv 4467 (-1) 44% Dpe erroné avec surface chauffée invalide
1.3.12 dpe_logement_individuel_2025.csv 8429 84%
1.3.12 dpe_immeuble_chauffage_individuel.csv 6900 (-1) 69% Dpe erroné avec surface chauffée invalide
1.3.12 dpe_immeuble_chauffage_collectif.csv 6058 60%
1.3.12 dpe_immeuble_chauffage_mixte.csv 4725 (-2) 47% Dpe erroné avec surface chauffée invalide
1.3.13 corpus_dpe.csv 4481 (+14) 45 (+1%) Voir le détail
1.3.13 dpe_logement_individuel_2025.csv 8453 84% (+24) Voir le détail
1.3.13 dpe_immeuble_chauffage_individuel.csv 7106 (+205) 71% (+2%) Voir le détail
1.3.13 dpe_immeuble_chauffage_collectif.csv 6083 (+25) 61% (+1%) Voir le détail
1.3.13 dpe_immeuble_chauffage_mixte.csv 4751 (+24) 47% Voir le détail

Roadmap

  • Site Open 3CL
  • Refacto technique
  • Rapports de tests
  • Certification ADEME
  • Fonctionnalités
    • DPE à l'immeuble
    • Photovoltaïque

Voir la liste des issues pour avoir le détail complet des bugs et fonctionnalités en cours de réalisation.

(Retour sommaire)

Contribution

Nous accueillons les contributions avec plaisir ! Si vous souhaitez améliorer Open3CL, veuillez :

  • Forker le dépôt.
  • Créer une branche pour vos modifications.
  • Soumettre une pull request avec une description claire des changements apportés.
  • Consultez le fichier CONTRIBUTING.md pour plus de détails.

Meilleurs contributeurs

contrib.rocks image

(Retour sommaire)

Licence

Distribué sous la license GPL-3.0 license. Lire le fichier LICENSE pour plus d'informations.

(Retour sommaire)

Contact

Pour plus d'informations merci de nous contacter à cette adresse : [email protected]

(Retour sommaire)

Remerciements

A compléter

(Retour sommaire)

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

Languages