npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@open3cl/engine

v1.3.25

Published

Open Source 3CL-DPE engine

Downloads

863

Readme

Contributors Forks Stargazers Issues  GPL-3.0 license

Javascript

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.

Démarrage

Pre-requis

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

Installation

  npm install @open3cl/engine

Démonstration

Il est possible d'analyser un dpe pour tester la lib Open3CL: https://open3cl.github.io/engine. Un dpe au format XML peut être chargé, il sera envoyé à la lib Open3CL. Un visuel permet de voir les informations du dpe d'origine ainsi que du dpe en sortie de la lib ainsi qu'un différentiel.

C'est un bon moyen de détecter un éventuel problème dans le dpe ou la librairie.

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

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 8 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_maison_individuelle_2025.csv: Corpus avec uniquement des dpe maison individuelle réalisés en 2025
  • dpe_appartement_individuel_chauffage_individuel_2025.csv: Corpus avec uniquement des dpe appartement avec chauffage individuel réalisés en 2025
  • dpe_appartement_individuel_chauffage_collectif_2025.csv: Corpus avec uniquement des dpe appartement avec chauffage collectif 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é.

| 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 | | | 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.15 | corpus_dpe.csv | 4481 (+14) | 45 (+1%) | | | | 1.3.15 | dpe_logement_individuel_2025.csv | 8453 | 84% | | | | 1.3.15 | dpe_immeuble_chauffage_individuel.csv | 7106 (+205) | 71% (+2%) | | | | 1.3.15 | dpe_immeuble_chauffage_collectif.csv | 6083 (+25) | 61% (+1%) | | | | 1.3.15 | dpe_immeuble_chauffage_mixte.csv | 4751 (+24) | 47% | | |

| Version librairie | corpus | Nb en dessous du taux d'erreur | Taux de réussite | Description | Détail des valeurs | | :------------------- | -------------------------------------------------------- | ------------------------------ | ----------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 1.3.20 | corpus_dpe.csv | 4500 (+19) | 45% | | | | 1.3.20 | dpe_logement_individuel_2025.csv | 8459 (+6) | 84% | | | | 1.3.20 | dpe_maison_individuelle_2025.csv | 8638 | 86% | | | | 1.3.20 | dpe_appartement_individuel_chauffage_individuel_2025.csv | 8561 | 86% | | | | 1.3.20 | dpe_immeuble_chauffage_individuel.csv | 7106 | 71% | | | | 1.3.20 | dpe_immeuble_chauffage_collectif.csv | 6083 | 61% | | | | 1.3.20 | dpe_immeuble_chauffage_mixte.csv | 4751 | 47% | | | | 1.3.21 | corpus_dpe.csv | 4502 (+2) | 45% | | Voir le détail | | 1.3.21 | dpe_logement_individuel_2025.csv | 8504 (+45) | 85% (+1%) | | Voir le détail | | 1.3.21 | dpe_maison_individuelle_2025.csv | 8652 (+14) | 86% | | Voir le détail | | 1.3.21 | dpe_appartement_individuel_chauffage_individuel_2025.csv | 8578 (+17) | 86% | | Voir le détail | | 1.3.21 | dpe_appartement_individuel_chauffage_collectif_2025.csv | 6681 | 67% | | Voir le détail | | 1.3.21 | dpe_immeuble_chauffage_individuel.csv | 7144 (+38) | 71% | | Voir le détail | | 1.3.21 | dpe_immeuble_chauffage_collectif.csv | 6144 (+61) | 61% | | Voir le détail | | 1.3.21 | dpe_immeuble_chauffage_mixte.csv | 4760 (+9) | 47% | | Voir le détail |

Roadmap

  • [x] 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.

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

Licence

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

Contact

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

Remerciements

A compléter