Sélection des émetteurs de chauffage et de rafraîchissement PRO

Documentation par l'exemple — saisie, algorithme et résultats

Outil
rubrique-CVC/selectionEmetteurs.php — Bâti'Tools (compte PRO)
Ce que fait l'outil
À partir d'un tableau de besoins pièce par pièce (déperditions, apports) et d'une base d'émetteurs saisie par l'utilisateur, propose automatiquement, pour chaque local, la combinaison d'émetteurs qui couvre le besoin de chauffage au plus juste, puis calcule les puissances installées et les écarts au besoin

Tout se passe dans le navigateur : le tableau des besoins (issu d'un logiciel tiers de calcul de déperditions, type Climawin ou Pléiade) est importé par glisser-déposer d'un fichier CSV/texte, et la base d'émetteurs — les fiches constructeur de l'utilisateur — est saisie ou importée en .json et conservée dans le navigateur (localStorage) d'une session à l'autre. Rien n'est transmis à un serveur : ni les données du projet en cours, ni la base d'émetteurs.

Format du tableau de besoins importé

Fichier texte (CSV, point-virgule, tabulation ou virgule — détecté automatiquement), avec ou sans ligne d'en-tête (détectée en testant si la 3e colonne d'une ligne est un nombre pur), sept colonnes dans cet ordre :

1 — Zone / logement
Regroupement utilisé par le report des besoins entre locaux (voir plus bas)
2 — Local
Nom de la pièce
3 — Surface (m²)
4 — Hauteur (m)
Sert au calcul du volume (surface × hauteur), sauf si l'utilisateur force le volume à la main
5 — Famille d'émetteurs
Doit correspondre au nom d'une famille saisie en partie 2 pour que la sélection automatique s'applique
6 — Déperditions (W)
7 — Apports sensibles (W)

Exemple de tableau des besoins importable

Voici, colonne par colonne, à quoi doit ressembler le tableau — c'est exactement le contenu que produit le bouton « Télécharger un modèle de tableau » de l'outil. L'ordre des colonnes est imposé ; leurs intitulés, non (la ligne d'en-tête est facultative et peut être rédigée librement).

1 Zone / logement 2 Local 3 Surface (m²) 4 Hauteur (m) 5 Famille d'émetteurs 6 Déperditions (W) 7 Apports sensibles (W)
Logement A101 Séjour 28,5 2,50 Ventilo-convecteur mural 1450 1850
Logement A101 Chambre 1 13,2 2,50 Ventilo-convecteur mural 720 640
Logement A101 Salle de bains 5,4 2,50 Radiateur sèche-serviettes 480 (vide)
Logement A101 Dégagement 6,1 2,50 aucun émetteur 160 (vide)
Bureaux R+1 Open space 96,0 2,80 Ventilo-convecteur plafonnier 5200 7400
Bureaux R+1 Salle de réunion 31,0 2,80 Ventilo-convecteur plafonnier 1900 3100
Atelier Hall de production 420,0 6,50 Aérotherme 38000 (vide)
Le même tableau, tel qu'il s'écrit dans le fichier .csv

Une ligne par local, les colonnes séparées par des points-virgules, le tout encodé en UTF-8. Copié dans un fichier texte nommé besoins.csv, ce contenu se glisse-dépose directement dans la zone d'import.

Zone / logement;Local;Surface (m2);Hauteur (m);Famille emetteurs;Deperditions (W);Apports sensibles (W)
Logement A101;Sejour;28,5;2,50;Ventilo-convecteur mural;1450;1850
Logement A101;Chambre 1;13,2;2,50;Ventilo-convecteur mural;720;640
Logement A101;Salle de bains;5,4;2,50;Radiateur seche-serviettes;480;
Logement A101;Degagement;6,1;2,50;aucun emetteur;160;
Bureaux R+1;Open space;96,0;2,80;Ventilo-convecteur plafonnier;5200;7400
Bureaux R+1;Salle de reunion;31,0;2,80;Ventilo-convecteur plafonnier;1900;3100
Atelier;Hall de production;420,0;6,50;Aerotherme;38000;

En pratique, le plus simple est de construire ce tableau dans un tableur (ou de l'exporter depuis le logiciel de déperditions), puis d'enregistrer la feuille en « CSV ». La ligne d'en-tête, le séparateur (point-virgule, tabulation ou virgule) et les décimales à la virgule ou au point sont détectés automatiquement.

Le tableau ci-dessus montre les deux cas particuliers du format : un local sans apports (colonne 7 laissée vide — salle de bains, hall de production) et un local sans émetteur (« aucun emetteur » en colonne 5 — le dégagement, dont les 160 W seront reportés sur un autre local de la zone « Logement A101 »). Les décimales s'écrivent avec une virgule ou un point indifféremment, et les valeurs reconnues comme « pas d'émetteur » sont : aucun, aucun émetteur, aucune, sans émetteur, sans, néant, non, n/a, na, . ou une case vide.

Une ligne sans nom de local, sans surface et sans déperdition est ignorée (ligne de total ou ligne vide du tableur). Un local dont la colonne famille contient une mention explicite d'absence d'émetteur (par exemple « aucun ») peut être rattaché à un autre local de la même zone, qui reprend alors ses besoins — colonne « report ».

Format de la base d'émetteurs importable (.json)

La base d'émetteurs se saisit à la main en partie 2 de l'outil, mais elle s'importe aussi en .json — c'est le format que produit le bouton « Exporter les familles ». L'import ajoute les familles du fichier à la base existante (il ne l'écrase pas), et plusieurs fichiers peuvent être sélectionnés d'un coup : constituer sa base en assemblant des fichiers fournisseurs est l'usage prévu.

nom (famille)
Doit correspondre à la 5e colonne du tableau des besoins (comparaison insensible à la casse, aux accents et aux espaces multiples)
nom (émetteur)
Référence constructeur, affichée dans les colonnes de résultat et le récapitulatif
puissanceChaud
W — seul champ obligatoire pour que la sélection automatique fonctionne
puissanceFroid
W — null ou absent pour un appareil statique
debitVentilation
m³/h — null ou absent pour un appareil sans ventilateur

Exemple de fichier de familles importable

Deux familles : des ventilo-convecteurs (chaud + froid + débit) et des radiateurs statiques (chaud seul). Le copier dans un fichier nommé familles-emetteurs.json.

{
  "outil": "batitools/selectionEmetteurs",
  "version": 1,
  "date": "2026-09-02",
  "familles": [
    {
      "nom": "Ventilo-convecteur mural",
      "emetteurs": [
        { "nom": "VCM-12", "puissanceChaud": 1500, "puissanceFroid": 1200, "debitVentilation": 350 },
        { "nom": "VCM-20", "puissanceChaud": 2500, "puissanceFroid": 2000, "debitVentilation": 500 },
        { "nom": "VCM-28", "puissanceChaud": 3500, "puissanceFroid": 2800, "debitVentilation": 650 }
      ]
    },
    {
      "nom": "Radiateur seche-serviettes",
      "emetteurs": [
        { "nom": "SS-500",  "puissanceChaud": 500,  "puissanceFroid": null, "debitVentilation": null },
        { "nom": "SS-750",  "puissanceChaud": 750,  "puissanceFroid": null, "debitVentilation": null },
        { "nom": "SS-1000", "puissanceChaud": 1000, "puissanceFroid": null, "debitVentilation": null }
      ]
    }
  ]
}

L'en-tête (outil, version, date) est facultatif à l'import : un simple tableau de familles [ { "nom": …, "emetteurs": [ … ] } ] est accepté tel quel. Les noms de clés courts utilisés en interne sont également reconnus — pc, pf et debit à la place de puissanceChaud, puissanceFroid et debitVentilation, et famille/reference/appareils à la place de nom/nom/emetteurs. Un fichier illisible ou sans aucune famille est signalé par un message, sans toucher à la base en place.

Paramètres et algorithme de sélection

Coefficient de majoration déperditions
Multiplie la déperdition brute importée pour obtenir la déperdition majorée (colonne servant de cible à la sélection)
Coefficient de majoration apports
Multiplie les apports sensibles bruts pour obtenir les apports majorés
Taux de brassage minimum
Valeur de référence (vol/h) pour l'écart de brassage des appareils à ventilateur

Pour chaque local dont la famille est reconnue, l'outil cherche, parmi les émetteurs de puissance chaud non nulle de cette famille triés par puissance croissante, le plus petit appareil dont la puissance couvre à elle seule la déperdition majorée restante. S'il en existe un, il est retenu seul et la recherche s'arrête. Sinon, l'appareil le plus puissant de la famille est ajouté, la déperdition restante est diminuée de sa puissance, et la recherche recommence sur le reste — jusqu'à couverture complète. Le résultat est une combinaison d'un ou plusieurs émetteurs (avec quantités), jamais optimale au sens du nombre minimal d'appareils, mais simple et prévisible.

Écart chaud (%) = (puissance chaud installée − déperdition majorée) / déperdition majorée × 100
Écart froid (%) = (puissance froid installée − apports majorés) / apports majorés × 100
Taux de brassage = débit installé / volume du local · Écart brassage (%) = (brassage installé − brassage minimum) / brassage minimum × 100

La sélection automatique ne se déclenche qu'au clic sur le bouton dédié : l'utilisateur peut forcer manuellement les émetteurs d'un local (colonne « Émetteurs chaud »), et un recalcul automatique n'écraserait pas cette saisie. Changer un coefficient recalcule aussitôt les écarts affichés, mais un bandeau invite à relancer la sélection si elle est devenue périmée.

U1 — Sélection gloutonne sur une famille de radiateurs

Famille « Radiateurs acier » avec quatre puissances disponibles : 800, 1 200, 1 800 et 2 500 W (pas de puissance froid ni de débit — appareils statiques).

Résultat pour trois locaux

Déperdition majorée 2 100 W
Sélection : 1 × 2 500 W — écart chaud +19,05 % (le plus petit appareil qui couvre 2 100 W à lui seul)
Déperdition majorée 1 000 W
Sélection : 1 × 1 200 W — écart chaud +20 %
Déperdition majorée 3 200 W
Sélection : 1 × 2 500 W + 1 × 800 W (total 3 300 W) — écart chaud +3,13 %. Aucun appareil seul ne couvrant 3 200 W, l'outil retient d'abord le plus puissant (2 500 W), puis referme le reste (700 W) avec le plus petit appareil qui le couvre (800 W)

U2 — Local chaud + froid + contrôle de brassage

Famille « Ventilo-convecteurs » avec trois appareils : puissance chaud 1 500 / 2 500 / 3 500 W, puissance froid respective 1 200 / 2 000 / 2 800 W, débit de ventilation respectif 350 / 500 / 650 m³/h. Salle de réunion : surface 45 m², hauteur 2,7 m (volume 121,5 m³), déperdition brute 2 500 W (coefficient 1,2 → déperdition majorée 3 000 W), apports sensibles bruts 2 200 W (coefficient 1,15 → apports majorés 2 530 W), taux de brassage minimum 3 vol/h.

Résultat

Émetteurs chaud sélectionnés
1 × appareil 3 500 W (seul appareil de la famille couvrant 3 000 W à lui seul)
P. chaud installée
3 500 W — écart chaud +16,67 %
Émetteurs froid
Le même appareil, colonne recopiée depuis la sélection chaud et limitée à ceux qui portent une puissance froid : 2 800 W
Écart froid
+10,67 % par rapport aux apports majorés (2 530 W)
Débit installé
650 m³/h
Taux de brassage installé
5,35 vol/h (650 / 121,5)
Écart brassage
+78,33 % par rapport au minimum de 3 vol/h

La colonne « Émetteurs froid » n'est jamais choisie indépendamment : elle est entièrement déduite de la sélection chaud. Un local dont tous les émetteurs sélectionnés sont statiques (sans puissance froid) donne donc une colonne froid vide — c'est un local uniquement chauffé, sans que cela déclenche d'alerte.

U3 — Aperçu du tableau de résultats après une sélection automatique

Un logement chauffé par radiateurs. Famille « Radiateurs acier » avec quatre références : RA-800 (800 W), RA-1200 (1 200 W), RA-1800 (1 800 W) et RA-2500 (2 500 W) — appareils statiques, donc ni puissance froid ni débit. Coefficient de majoration des déperditions : 1,25. Après import du tableau des besoins et clic sur « Sélection automatique », voici ce que montrent les colonnes principales.

5 locaux équipés sur 5.

Local Volume (m³) Déperditions (W) Déperditions majorées (W) Famille d'émetteurs Émetteurs chaud P. chaud installée (W) Écart chaud (%)
Séjour 71,25 2 560 3 200 Radiateurs acier 1 × RA-25001 × RA-800 3 300 +3,1 %
Chambre 1 33,00 800 1 000 Radiateurs acier 1 × RA-1200 1 200 +20,0 %
Chambre 2 29,50 1 680 2 100 Radiateurs acier 1 × RA-2500 2 500 +19,0 %
Salle de bains 13,50 1 200 1 500 Radiateurs acier 2 × RA-800 1 600 +6,7 %
Bureau 30,00 2 880 3 600 Radiateurs acier 1 × RA-18001 × RA-12001 × RA-800 3 800 +5,6 %

Les colonnes non montrées ici (hauteur, apports bruts et majorés, émetteurs froid, puissance froid et écart froid, débit, brassage et écart de brassage) restent vides sur ce projet : les radiateurs n'ont ni puissance frigorifique ni ventilateur. Chacune des 19 colonnes se masque individuellement pour obtenir exactement le tableau ci-dessus.

Comment lire les trois premières lignes — la sélection automatique

Séjour — 3 200 W à couvrir
Aucune référence ne couvre 3 200 W à elle seule : l'outil pose d'abord le plus gros radiateur (RA-2500), puis referme le solde de 700 W avec le plus petit appareil qui le couvre (RA-800). Deux émetteurs de tailles différentes, 3 300 W installés
Chambre 1 — 1 000 W
Le RA-1200 est le plus petit appareil couvrant le besoin seul : un seul émetteur, et l'écart de +20 % est simplement l'effet du pas de la gamme
Chambre 2 — 2 100 W
Même logique, mais le RA-1800 ne suffit pas : c'est le RA-2500 qui est retenu

Les deux lignes en bleu — saisie forcée par l'utilisateur

Une puce bleue signale un local dont la sélection a été reprise à la main, par la liste déroulante et le bouton + de la colonne « Émetteurs chaud » (ou par la croix qui retire une unité). C'est la même convention que dans le reste de l'outil : toute valeur en bleu a été décidée par l'utilisateur, pas par le calcul — comme le volume forcé quand la hauteur sous plafond n'est pas constante. Les puces noires, elles, sortent de la dernière sélection automatique.

Salle de bains — deux appareils identiques
La sélection automatique proposait 1 × RA-1800 (+20 %). L'utilisateur a préféré deux radiateurs identiques de part et d'autre de la porte : 2 × RA-800, soit 1 600 W et +6,7 %. Deux appareils de même référence se présentent comme une seule puce portant la quantité — la croix en retire une unité à la fois, pas la pile entière
Bureau — trois appareils différents
Faute d'allège assez longue pour un seul gros radiateur, l'utilisateur a réparti sur trois émetteurs : 1 × RA-1800 + 1 × RA-1200 + 1 × RA-800, soit 3 800 W et +5,6 %. Chaque référence a sa propre puce, dans l'ordre où elle a été ajoutée
Relancer la sélection automatique recalcule tous les locaux et efface les forçages : les deux lignes bleues repasseraient en 1 × RA-1800 et 1 × RA-2500 + 1 × RA-1200. En revanche, un simple changement de coefficient ne touche pas à la sélection : il met à jour les besoins majorés et les écarts, et affiche le bandeau invitant à relancer la sélection si on le souhaite.

Récapitulatif des quantités correspondant

Partie 4 de l'outil — le bordereau, trié par famille puis par puissance décroissante. Il compte aussi bien les appareils issus de la sélection automatique que ceux forcés à la main.

Famille Émetteur Quantité P. chaud unit. (W) P. chaud totale (W)
Radiateurs acierRA-2500 2 2 500 5 000
Radiateurs acierRA-1800 1 1 800 1 800
Radiateurs acierRA-1200 2 1 200 2 400
Radiateurs acierRA-800 4 800 3 200
Total4 références 9 12 400

Les 12 400 W du bordereau sont bien la somme des puissances installées local par local (3 300 + 1 200 + 2 500 + 1 600 + 3 800). Le récapitulatif comporte en outre les colonnes de puissance froid et de débit, vides ici, et l'ensemble des résultats s'exporte en CSV.

Report des besoins entre locaux

Un local dont la famille indique explicitement l'absence d'émetteur (par exemple un WC ou un dégagement chauffé par transfert depuis la pièce voisine) peut être rattaché, dans la même zone, à un autre local qui porte lui-même un émetteur : ses déperditions et apports propres sont alors ajoutés à ceux du local cible, qui est dimensionné sur le total. Le besoin propre du local d'origine reste affiché sur sa ligne pour rester vérifiable, mais additionner la colonne des déperditions majorées sur l'ensemble du tableau compte alors deux fois les besoins reportés — l'outil grise les lignes reportées pour que cela reste visible. Un local chauffé indirectement dont personne n'a désigné le local qui reprend ses besoins est signalé après la sélection automatique : « ses besoins ne sont comptés nulle part ».

Messages de la sélection automatique

Bilan
« N locaux équipés sur M. »
Famille introuvable
« Famille introuvable dans la base : … — vérifiez l'orthographe en partie 2. »
Famille sans puissance
« Aucune puissance de chauffage saisie dans : … »
Report sans cible
« N locaux chauffés indirectement sans local désigné : leurs besoins ne sont comptés nulle part. Choisissez le local qui les traite en colonne « Émetteurs chaud ». »
Sélection périmée
Bandeau invitant à relancer la sélection automatique après modification d'un coefficient ou de la base d'émetteurs

Résultats et export

Le tableau de résultats présente 19 colonnes (zone, local, surface, hauteur, volume, déperditions et apports bruts et majorés, famille, émetteurs chaud et froid avec puissances et écarts, débit et taux de brassage avec écart), certaines masquables individuellement. Un récapitulatif totalise les quantités par famille et par référence d'émetteur. Les résultats s'exportent en CSV (pour un tableur) ou la base d'émetteurs en .json (pour la réutiliser sur un autre projet ou la partager) — aucun de ces exports ne transite par le serveur.