@likewatt/models-front 1.103.0 → 1.104.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/Site.types.d.ts +6 -0
- package/dist/core/SiteConstants.d.ts +6 -0
- package/dist/core/SiteConstants.js +6 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/site/OpenDataProfile.types.d.ts +116 -0
- package/dist/site/OpenDataProfile.types.js +74 -0
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { BuildingData } from '../site/BuildingData.types';
|
|
|
3
3
|
import { ConsumptionIndexes } from '../site/ConsumptionIndexes.types';
|
|
4
4
|
import { CustomerInfos } from '../site/CustomerInfos.types';
|
|
5
5
|
import { DataSourceHistory } from '../site/DataSourceHistory.types';
|
|
6
|
+
import { OpenDataProfile } from '../site/OpenDataProfile.types';
|
|
6
7
|
import { ExtractionData } from '../site/ExtractionData.types';
|
|
7
8
|
import { EnergyPrice } from '../site/EnergyPrice.types';
|
|
8
9
|
import { EnergyPriceTempo } from '../site/EnergyPriceTempo.types';
|
|
@@ -107,6 +108,11 @@ export interface Site {
|
|
|
107
108
|
*/
|
|
108
109
|
extractionType?: 'COURBE' | 'INDEX' | 'HYBRIDE';
|
|
109
110
|
dataSourceHistory: DataSourceHistory[];
|
|
111
|
+
/**
|
|
112
|
+
* Trace de la récupération d'une courbe de charge depuis l'Open Data Enedis,
|
|
113
|
+
* quand `dataSource` vaut `OPENDATA`. Absent sur tout site alimenté autrement.
|
|
114
|
+
*/
|
|
115
|
+
openDataProfile?: OpenDataProfile;
|
|
110
116
|
disabled: boolean;
|
|
111
117
|
strasbourgData?: boolean;
|
|
112
118
|
enedisData?: boolean;
|
|
@@ -408,6 +408,12 @@ export declare const SiteConstants: {
|
|
|
408
408
|
readonly DAILY_INDEX: "INDEX J.";
|
|
409
409
|
readonly HYBRID: "HYBRIDE";
|
|
410
410
|
readonly STRASBOURG: "STRASBOURG";
|
|
411
|
+
/**
|
|
412
|
+
* Courbe de charge reconstituée depuis un profil de l'Open Data Enedis
|
|
413
|
+
* (moyenne des 500 courbes fictives du secteur, mise à l'échelle). Les
|
|
414
|
+
* détails de la récupération sont dans `Site.openDataProfile`.
|
|
415
|
+
*/
|
|
416
|
+
readonly OPENDATA: "OPENDATA";
|
|
411
417
|
};
|
|
412
418
|
readonly purchaseContractType: {
|
|
413
419
|
readonly 'CARD/T': "CARD/T";
|
|
@@ -76,6 +76,12 @@ exports.SiteConstants = {
|
|
|
76
76
|
DAILY_INDEX: 'INDEX J.',
|
|
77
77
|
HYBRID: 'HYBRIDE',
|
|
78
78
|
STRASBOURG: 'STRASBOURG',
|
|
79
|
+
/**
|
|
80
|
+
* Courbe de charge reconstituée depuis un profil de l'Open Data Enedis
|
|
81
|
+
* (moyenne des 500 courbes fictives du secteur, mise à l'échelle). Les
|
|
82
|
+
* détails de la récupération sont dans `Site.openDataProfile`.
|
|
83
|
+
*/
|
|
84
|
+
OPENDATA: 'OPENDATA',
|
|
79
85
|
},
|
|
80
86
|
purchaseContractType: {
|
|
81
87
|
'CARD/T': 'CARD/T',
|
package/dist/index.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export * from './site/BuildingStats.types';
|
|
|
39
39
|
export * from './site/ConsumptionIndexes.types';
|
|
40
40
|
export * from './site/CustomerInfos.types';
|
|
41
41
|
export * from './site/DataSourceHistory.types';
|
|
42
|
+
export * from './site/OpenDataProfile.types';
|
|
42
43
|
export * from './site/EnergyPrice.types';
|
|
43
44
|
export * from './site/ExtractionData.types';
|
|
44
45
|
export * from './site/EnergyPriceTempo.types';
|
package/dist/index.js
CHANGED
|
@@ -58,6 +58,7 @@ __exportStar(require("./site/BuildingStats.types"), exports);
|
|
|
58
58
|
__exportStar(require("./site/ConsumptionIndexes.types"), exports);
|
|
59
59
|
__exportStar(require("./site/CustomerInfos.types"), exports);
|
|
60
60
|
__exportStar(require("./site/DataSourceHistory.types"), exports);
|
|
61
|
+
__exportStar(require("./site/OpenDataProfile.types"), exports);
|
|
61
62
|
__exportStar(require("./site/EnergyPrice.types"), exports);
|
|
62
63
|
__exportStar(require("./site/ExtractionData.types"), exports);
|
|
63
64
|
__exportStar(require("./site/EnergyPriceTempo.types"), exports);
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/** Catégorie fonctionnelle du profil Open Data, telle que présentée à l'utilisateur. */
|
|
2
|
+
export type EnedisOpenDataCategory =
|
|
3
|
+
/** Secteur d'activité (code NAF), décliné en Professionnels / Entreprises. */
|
|
4
|
+
'NAF'
|
|
5
|
+
/** Type de profil (RES/PRO/ENT) décliné par plage de puissance souscrite. */
|
|
6
|
+
| 'PROFILE';
|
|
7
|
+
/**
|
|
8
|
+
* Segment de la catégorie NAF. Discriminant et non décoratif : 3600, 7010 et
|
|
9
|
+
* 8411 existent dans les deux segments, donc le code NAF seul ne désigne pas un
|
|
10
|
+
* dataset.
|
|
11
|
+
*/
|
|
12
|
+
export type EnedisOpenDataSegment = 'PRO' | 'ENT';
|
|
13
|
+
/**
|
|
14
|
+
* Type de profil de la catégorie PROFILE. Restreint à ce que l'Open Data
|
|
15
|
+
* publie : ni `RES5` ni `RES3-F` n'y figurent, contrairement aux fichiers de
|
|
16
|
+
* coefficients `.xlsx`.
|
|
17
|
+
*/
|
|
18
|
+
export type EnedisOpenDataProfileType = 'RES1' | 'RES11' | 'RES2' | 'PRO1' | 'PRO2' | 'ENT1' | 'ENT3';
|
|
19
|
+
/**
|
|
20
|
+
* Profils de courbes de charge publiés par l'Open Data Enedis.
|
|
21
|
+
*
|
|
22
|
+
* La valeur **est** le suffixe du slug du dataset Data Fair :
|
|
23
|
+
* `courbes-de-charges-fictives-<valeur>`. C'est cette valeur que le front envoie
|
|
24
|
+
* au back, qui en déduit seul la catégorie, le segment et le code ou la plage.
|
|
25
|
+
*
|
|
26
|
+
* Union plate plutôt que produit (catégorie × segment × code) parce que le
|
|
27
|
+
* catalogue Enedis est creux : `ENT1` n'a pas la tranche 50-120 kVA alors que
|
|
28
|
+
* `ENT3` a 36-120, et les codes NAF diffèrent d'un segment à l'autre. Utiliser
|
|
29
|
+
* `ENEDIS_OPENDATA_CATALOG` pour construire des listes en cascade sans jamais
|
|
30
|
+
* proposer une combinaison inexistante.
|
|
31
|
+
*/
|
|
32
|
+
export type EnedisOpenDataProfile = 'pro-naf3600' | 'pro-naf3700' | 'pro-naf5510' | 'pro-naf5610' | 'pro-naf6831' | 'pro-naf7010' | 'pro-naf8411' | 'pro-naf8413' | 'pro-naf8790' | 'ent-naf10' | 'ent-naf55' | 'ent-naf3600' | 'ent-naf4711' | 'ent-naf7010' | 'ent-naf8411' | 'res1-3-6' | 'res11-6-9' | 'res11-9-18' | 'res2-3-6' | 'res2-6-9' | 'res2-9-12' | 'pro1-0-6' | 'pro1-6-12' | 'pro1-12-sup' | 'pro2-0-6' | 'pro2-6-12' | 'pro2-12-24' | 'pro2-24-sup' | 'ent1-36-50' | 'ent1-120-250' | 'ent1-250-sup' | 'ent3-36-120' | 'ent3-120-250' | 'ent3-250-sup';
|
|
33
|
+
/**
|
|
34
|
+
* Catalogue réel des 34 datasets exploitables, pour bâtir des listes en cascade.
|
|
35
|
+
*
|
|
36
|
+
* Confronté au portail le 2026-08-19 (diff vide). Les 15 variantes `-gan` en sont
|
|
37
|
+
* absentes : elles sont titrées « – archives » (ancien modèle GAN, remplacé par
|
|
38
|
+
* diffusion latente).
|
|
39
|
+
*
|
|
40
|
+
* Noter les asymétries, qui sont la raison d'être de cette table : 5510 et 5610
|
|
41
|
+
* n'existent qu'en `PRO`, 4711 qu'en `ENT`, et `ENT1` saute la tranche
|
|
42
|
+
* 50-120 kVA que `ENT3` couvre.
|
|
43
|
+
*/
|
|
44
|
+
export declare const ENEDIS_OPENDATA_CATALOG: {
|
|
45
|
+
readonly NAF: {
|
|
46
|
+
readonly PRO: readonly ["3600", "3700", "5510", "5610", "6831", "7010", "8411", "8413", "8790"];
|
|
47
|
+
readonly ENT: readonly ["10", "55", "3600", "4711", "7010", "8411"];
|
|
48
|
+
};
|
|
49
|
+
readonly PROFILE: {
|
|
50
|
+
readonly RES1: readonly ["3-6"];
|
|
51
|
+
readonly RES11: readonly ["6-9", "9-18"];
|
|
52
|
+
readonly RES2: readonly ["3-6", "6-9", "9-12"];
|
|
53
|
+
readonly PRO1: readonly ["0-6", "6-12", "12-sup"];
|
|
54
|
+
readonly PRO2: readonly ["0-6", "6-12", "12-24", "24-sup"];
|
|
55
|
+
readonly ENT1: readonly ["36-50", "120-250", "250-sup"];
|
|
56
|
+
readonly ENT3: readonly ["36-120", "120-250", "250-sup"];
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Bornes réelles de chaque plage de puissance souscrite, en kVA, indexées par la
|
|
61
|
+
* valeur `powerRange` du slug.
|
|
62
|
+
*
|
|
63
|
+
* Nécessaire parce que trois plages sont notées `-sup` dans les slugs sans que la
|
|
64
|
+
* borne haute y figure : le front ne peut pas la deviner. Elle est bornée, pas
|
|
65
|
+
* infinie — `12-sup` s'arrête à 36 kVA, `24-sup` à 36 également, `250-sup` à
|
|
66
|
+
* 25 000.
|
|
67
|
+
*
|
|
68
|
+
* `label` reprend **verbatim** la chaîne du champ `plage_ps` d'Enedis, à titre
|
|
69
|
+
* indicatif ; l'affichage reste libre côté front, qui dispose de `min`/`max`
|
|
70
|
+
* pour composer le sien.
|
|
71
|
+
*
|
|
72
|
+
* Provenance : les 13 valeurs distinctes du champ `plage_ps` du dataset
|
|
73
|
+
* `courbes-de-charges-fictives-caracteristiques`. Dix s'apparient directement aux
|
|
74
|
+
* plages non-`sup` des slugs ; les trois restantes (`]12-36]`, `]24-36]`,
|
|
75
|
+
* `]250-25000]`) s'apparient sans ambiguïté aux trois `-sup` par leur borne basse.
|
|
76
|
+
* La borne 25 000 est corroborée par le nom du fichier source côté Enedis,
|
|
77
|
+
* `ENT3-250-25000.csv`.
|
|
78
|
+
*/
|
|
79
|
+
export declare const ENEDIS_OPENDATA_POWER_RANGES: Record<string, {
|
|
80
|
+
min: number;
|
|
81
|
+
max: number;
|
|
82
|
+
label: string;
|
|
83
|
+
}>;
|
|
84
|
+
/**
|
|
85
|
+
* Trace de la récupération d'une courbe de charge depuis l'Open Data Enedis.
|
|
86
|
+
* Écrit par le back, jamais par le front.
|
|
87
|
+
*/
|
|
88
|
+
export interface OpenDataProfile {
|
|
89
|
+
category: EnedisOpenDataCategory;
|
|
90
|
+
/** Catégorie NAF uniquement. */
|
|
91
|
+
segment?: EnedisOpenDataSegment;
|
|
92
|
+
/** Catégorie NAF uniquement — `'10'`, `'55'`, `'3600'`… Chaîne, pas nombre. */
|
|
93
|
+
nafCode?: string;
|
|
94
|
+
/** Catégorie PROFILE uniquement. */
|
|
95
|
+
profileType?: EnedisOpenDataProfileType;
|
|
96
|
+
/** Catégorie PROFILE uniquement — `'3-6'`, `'6-12'`, `'250-sup'`. */
|
|
97
|
+
powerRange?: string;
|
|
98
|
+
/** Slug du dataset Data Fair, clé externe immuable. */
|
|
99
|
+
datasetSlug: string;
|
|
100
|
+
/**
|
|
101
|
+
* Bornes de la fenêtre réellement couverte.
|
|
102
|
+
*
|
|
103
|
+
* À afficher : l'Open Data ne publie **pas** d'année civile, la seule fenêtre
|
|
104
|
+
* disponible court du 2023-11-01 au 2024-10-29 (364 jours). Les composants qui
|
|
105
|
+
* raisonnent en années civiles doivent en tenir compte.
|
|
106
|
+
*/
|
|
107
|
+
periodStart?: Date | string;
|
|
108
|
+
periodEnd?: Date | string;
|
|
109
|
+
retrievedAt?: Date | string;
|
|
110
|
+
/** Nombre de courbes agrégées pour produire la moyenne (500 nominalement). */
|
|
111
|
+
curveCount?: number;
|
|
112
|
+
/** Consommation annuelle typique du secteur, en kWh, avant mise à l'échelle. */
|
|
113
|
+
referenceAnnualConsumptionKwh?: number;
|
|
114
|
+
/** Consommation annuelle réellement appliquée, en kWh. */
|
|
115
|
+
appliedAnnualConsumptionKwh?: number;
|
|
116
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ENEDIS_OPENDATA_POWER_RANGES = exports.ENEDIS_OPENDATA_CATALOG = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Catalogue réel des 34 datasets exploitables, pour bâtir des listes en cascade.
|
|
6
|
+
*
|
|
7
|
+
* Confronté au portail le 2026-08-19 (diff vide). Les 15 variantes `-gan` en sont
|
|
8
|
+
* absentes : elles sont titrées « – archives » (ancien modèle GAN, remplacé par
|
|
9
|
+
* diffusion latente).
|
|
10
|
+
*
|
|
11
|
+
* Noter les asymétries, qui sont la raison d'être de cette table : 5510 et 5610
|
|
12
|
+
* n'existent qu'en `PRO`, 4711 qu'en `ENT`, et `ENT1` saute la tranche
|
|
13
|
+
* 50-120 kVA que `ENT3` couvre.
|
|
14
|
+
*/
|
|
15
|
+
exports.ENEDIS_OPENDATA_CATALOG = {
|
|
16
|
+
NAF: {
|
|
17
|
+
PRO: [
|
|
18
|
+
'3600',
|
|
19
|
+
'3700',
|
|
20
|
+
'5510',
|
|
21
|
+
'5610',
|
|
22
|
+
'6831',
|
|
23
|
+
'7010',
|
|
24
|
+
'8411',
|
|
25
|
+
'8413',
|
|
26
|
+
'8790',
|
|
27
|
+
],
|
|
28
|
+
ENT: ['10', '55', '3600', '4711', '7010', '8411'],
|
|
29
|
+
},
|
|
30
|
+
PROFILE: {
|
|
31
|
+
RES1: ['3-6'],
|
|
32
|
+
RES11: ['6-9', '9-18'],
|
|
33
|
+
RES2: ['3-6', '6-9', '9-12'],
|
|
34
|
+
PRO1: ['0-6', '6-12', '12-sup'],
|
|
35
|
+
PRO2: ['0-6', '6-12', '12-24', '24-sup'],
|
|
36
|
+
ENT1: ['36-50', '120-250', '250-sup'],
|
|
37
|
+
ENT3: ['36-120', '120-250', '250-sup'],
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Bornes réelles de chaque plage de puissance souscrite, en kVA, indexées par la
|
|
42
|
+
* valeur `powerRange` du slug.
|
|
43
|
+
*
|
|
44
|
+
* Nécessaire parce que trois plages sont notées `-sup` dans les slugs sans que la
|
|
45
|
+
* borne haute y figure : le front ne peut pas la deviner. Elle est bornée, pas
|
|
46
|
+
* infinie — `12-sup` s'arrête à 36 kVA, `24-sup` à 36 également, `250-sup` à
|
|
47
|
+
* 25 000.
|
|
48
|
+
*
|
|
49
|
+
* `label` reprend **verbatim** la chaîne du champ `plage_ps` d'Enedis, à titre
|
|
50
|
+
* indicatif ; l'affichage reste libre côté front, qui dispose de `min`/`max`
|
|
51
|
+
* pour composer le sien.
|
|
52
|
+
*
|
|
53
|
+
* Provenance : les 13 valeurs distinctes du champ `plage_ps` du dataset
|
|
54
|
+
* `courbes-de-charges-fictives-caracteristiques`. Dix s'apparient directement aux
|
|
55
|
+
* plages non-`sup` des slugs ; les trois restantes (`]12-36]`, `]24-36]`,
|
|
56
|
+
* `]250-25000]`) s'apparient sans ambiguïté aux trois `-sup` par leur borne basse.
|
|
57
|
+
* La borne 25 000 est corroborée par le nom du fichier source côté Enedis,
|
|
58
|
+
* `ENT3-250-25000.csv`.
|
|
59
|
+
*/
|
|
60
|
+
exports.ENEDIS_OPENDATA_POWER_RANGES = {
|
|
61
|
+
'0-6': { min: 0, max: 6, label: ']0-6 kVA]' },
|
|
62
|
+
'3-6': { min: 3, max: 6, label: ']3-6 kVA]' },
|
|
63
|
+
'6-9': { min: 6, max: 9, label: ']6-9 kVA]' },
|
|
64
|
+
'6-12': { min: 6, max: 12, label: ']6-12 kVA]' },
|
|
65
|
+
'9-12': { min: 9, max: 12, label: ']9-12 kVA]' },
|
|
66
|
+
'9-18': { min: 9, max: 18, label: ']9-18 kVA]' },
|
|
67
|
+
'12-24': { min: 12, max: 24, label: ']12-24 kVA]' },
|
|
68
|
+
'12-sup': { min: 12, max: 36, label: ']12-36 kVA]' },
|
|
69
|
+
'24-sup': { min: 24, max: 36, label: ']24-36 kVA]' },
|
|
70
|
+
'36-50': { min: 36, max: 50, label: ']36-50 kVA]' },
|
|
71
|
+
'36-120': { min: 36, max: 120, label: ']36-120 kVA]' },
|
|
72
|
+
'120-250': { min: 120, max: 250, label: ']120-250 kVA]' },
|
|
73
|
+
'250-sup': { min: 250, max: 25000, label: ']250-25000 kVA]' },
|
|
74
|
+
};
|