Formules MiroxQL (référence API)
Une formule MiroxQL combine des métriques journalières de l'ancien export en une colonne calculée, par exemple un ratio de performance à partir d'une énergie et d'une cible.
L'éditeur de formules a été retiré de l'application
Les formules ne se créent plus et ne se modifient plus dans Mirox lui-même. Cette page est la référence de l'API, qui reste pleinement utilisable :
- Les formules existantes continuent d'être évaluées partout où elles sont utilisées : dans les anciens modèles d'export et sur les anciens liens d'export.
- Les formules peuvent toujours être listées, créées, modifiées et supprimées par l'API décrite ici.
- Pour les grandeurs que vous définissez vous-même, le successeur est Indicateurs. Un indicateur est évalué sur les valeurs 15 minutes d'une centrale, peut être restitué par composant, apparaît dans les rapports et peut être exporté à chaque pas avec le Metric Export.
Ouvrir dans Mirox
Export de données ▸ Glossaire — définissez une nouvelle grandeur comme indicateur de votre organisation.
MiroxQL ou Indicateurs ?
| Formule MiroxQL | Indicateur | |
|---|---|---|
| Travaille sur | les valeurs journalières d'une centrale | les valeurs 15 minutes d'une centrale |
| Restitution par composant | non | oui |
| Utilisé dans | les anciens modèles d'export | les rapports, le Metric Export et ses modèles |
| Pas le plus fin | jour | 15 minutes |
| Modifié dans | l'API | l'application, avec validation en direct et assistant, et l'API |
Routes de formules
Tous les chemins suivent https://service.mirox.io/api/v1/export/metric/formula. Les routes exigent une connexion ou un jeton d'API du groupe Accès complet ; un jeton Metric Export ne les atteint pas. La lecture est ouverte aux membres de l'organisation, l'écriture aux rôles d'organisation Admin, Modérateur, Gestionnaire d’actifs (technique) et Gestionnaire d’actifs (commercial).
| Requête | Rôle |
|---|---|
GET (sans autre chemin) | Lister les formules de votre organisation et les formules fournies par Mirox. Paramètres : page, limit, include_system (par défaut true), only_active (par défaut false), search. |
GET /{org_uid}/{metric_id} | Lire une formule. org_uid vaut system pour une formule fournie par Mirox. |
GET /{org_uid}/{metric_id}/references | Les modèles et les formules qui utilisent la formule. |
GET /config-fields | Les valeurs de configuration de la centrale qu'une formule peut lire. |
POST /validate | Vérifier le texte d'une formule. La réponse liste les métriques et les valeurs de configuration qu'elle lit. |
POST /test | Évaluer une formule sur des valeurs que vous envoyez. |
POST /preview | Évaluer une formule sur les données de centrales, avec park ou portfolio, year et quarter, month, week ou day, et resolution. |
POST /{org_uid} | Créer une formule dans votre organisation. |
PUT /{org_uid}/{metric_id} | Modifier une formule. |
DELETE /{org_uid}/{metric_id} | Supprimer une formule. |
Les formules fournies par Mirox ne peuvent être ni modifiées ni supprimées.
Champs d'une formule
| Champ | Valeurs | Par défaut | Signification |
|---|---|---|---|
metric_id | lettres minuscules, chiffres et tirets bas, commençant par une lettre ; jusqu'à 100 caractères | obligatoire | L'identifiant qu'utilisent les autres formules et les modèles. |
name | jusqu'à 100 caractères | obligatoire | Le nom de la colonne. |
description | jusqu'à 1000 caractères | vide | Ce que calcule la formule. |
unit | jusqu'à 50 caractères | obligatoire | L'unité du résultat, par exemple kWh ou %. |
formula | texte | obligatoire | L'expression. Elle doit lire au moins une métrique. |
scale | nombre | 1.0 | Le résultat est multiplié par ce facteur lors de l'export. |
digits | 0 à 10 | 2 | Les décimales de la valeur exportée. |
calculation_level | daily, period | period | Le moment où la formule s'exécute. Voir Niveau de calcul. |
aggregation_method | sum, average | average | Comment les résultats journaliers deviennent une valeur de période, avec calculation_level=daily. |
active | true, false | true | Uniquement lors de la modification d'une formule. Une formule inactive n'est pas évaluée. |
{
"metric_id": "energy_total_incl_losses",
"name": "Total Energy Including Losses",
"description": "Sum of grid energy and all shutdown losses",
"unit": "kWh",
"scale": 0.001,
"digits": 2,
"formula": "@energy_grid_daily + @energy_shutdown_grid_daily + @energy_shutdown_external_daily",
"calculation_level": "daily",
"aggregation_method": "sum"
}
Identifiants
Un identifiant doit être libre. 409 metric_id_taken signifie qu'une formule ou un indicateur de votre organisation, ou un indicateur de Mirox, porte déjà cet identifiant. Cela vaut aussi lorsque vous modifiez une formule existante dont l'identifiant a été pris entre-temps ; la désactiver avec active=false reste possible.
Échelle et décimales
Calculez en unités de base et convertissez avec scale. Les métriques journalières sont évaluées en unités de base (Wh, W, Wh/m²) ; une somme d'énergies avec scale=0.001 est donc exportée en kWh. scale et digits ne s'appliquent qu'à la valeur exportée. Une formule qui lit une autre formule reçoit son résultat non mis à l'échelle et non arrondi.
Niveau de calcul
calculation_level | Comment se forme une valeur mensuelle | À utiliser pour |
|---|---|---|
daily | La formule s'exécute pour chaque jour. Les résultats journaliers sont additionnés (sum) ou moyennés (average). | les sommes d'énergie |
period | Les métriques sont d'abord regroupées au mois. La formule s'exécute une seule fois sur les valeurs mensuelles. | les ratios tels qu'un ratio de performance |
Syntaxe
Références
Une métrique se lit avec @ et son identifiant. Les identifiants sont les anciens identifiants de métrique et les identifiants d'autres formules.
@energy_grid_daily
@gti_sensor_daily
Une valeur de la configuration de la centrale se lit avec $ et son chemin :
| Référence | Description | Unité |
|---|---|---|
$park.peak_production_w | Puissance crête totale | W |
$park.latitude | Latitude géographique | ° |
$park.longitude | Longitude géographique | ° |
$park.self_consumption | Facteur d'autoconsommation (0.0 à 1.0) | ratio |
$park.information.string_peak_power_w | Puissance crête totale de tous les strings | W |
$park.information.inverter_max_power_w | Puissance maximale des onduleurs | W |
$park.information.inverter_total | Nombre d'onduleurs | — |
$park.information.gak_total | Nombre de boîtes de jonction | — |
$park.information.strings_total | Nombre de strings | — |
$park.information.modules_total | Nombre de modules | — |
GET /config-fields répond la liste actuelle.
Opérateurs
| Type | Opérateurs | Exemple |
|---|---|---|
| Arithmétique | + - * / % | @energy_grid_daily / $park.peak_production_w |
| Comparaison | == != < <= > >= | @gti_sensor_daily > 0 |
| Logique | && || ! | @gti_sensor_daily > 0 && @energy_grid_daily > 0 |
| Condition | condition ? a : b | @gti_sensor_daily > 0 ? @gti_sensor_daily : @gti_weather_daily |
| Fonctions | max(a, b), min(a, b) | max(@energy_grid_daily, 0) |
Une comparaison répond 1 ou 0. Une division par zéro répond 0. Une métrique sans données compte pour 0.
Les opérations sont évaluées dans cet ordre, de la plus prioritaire à la moins prioritaire : parenthèses, fonctions, * / %, + -, < <= > >=, == !=, &&, ||.
Exemples
Productible spécifique :
@energy_grid_daily / $park.peak_production_w
Irradiation issue du capteur, ou du modèle météo lorsque le capteur n'a pas de valeur :
@gti_sensor_daily > 0 ? @gti_sensor_daily : @gti_weather_daily
Part des pertes par limitation :
(@energy_shutdown_grid_daily + @energy_shutdown_external_daily) / (@energy_grid_daily + @energy_shutdown_grid_daily + @energy_shutdown_external_daily) * 100
Règles
- Une formule lit au moins une métrique.
- Les parenthèses sont équilibrées, et deux opérateurs ne se suivent pas, sauf
!. - Une formule ne doit pas dépendre d'elle-même, directement ou par l'intermédiaire d'autres formules.
- Une formule travaille sur des valeurs journalières. Elle ne peut pas lire de valeurs à l'intérieur d'un jour, ni revenir sur des lignes antérieures.
Transformer une formule en indicateur
Une formule et un indicateur sont écrits dans des langages différents : une formule se réécrit donc, elle ne se convertit pas. Dans la plupart des cas, l'indicateur est plus court, car il énonce ce qui se passe dans un intervalle de 15 minutes et laisse le reste à son Agrégation.
- Ouvrez Export de données ▸ Glossaire et cliquez sur Nouvel indicateur.
- Décrivez la grandeur à l'assistant dans l'éditeur, ou écrivez l'expression vous-même. Le panneau latéral liste les séries à partir desquelles vous pouvez construire.
- Choisissez l'Agrégation qui correspond à la formule :
| Formule | Agrégation de l'indicateur |
|---|---|
Une somme d'énergies, calculation_level=daily avec sum | Somme |
| Une moyenne | Moyenne |
Un ratio de deux sommes, calculation_level=period | Rapport, ou Moyenne pondérée |
| Une part du temps pendant laquelle une condition est remplie | Rapport avec une expression qui répond 1 ou 0 |
- Vérifiez l'aperçu sur une centrale, puis utilisez l'indicateur dans un rapport ou exportez-le.
Le ratio de performance, la production attendue et le productible spécifique n'exigent pas d'indicateur de votre part. La collection les contient : plant.pr_weather, plant.pr_pyranometer, plant.expected_weather, plant.expected_pyranometer, plant.specific_yield.
Fonctionnalités associées
- Indicateurs — le successeur : les grandeurs que votre organisation définit elle-même
- Metric Export — exporter les indicateurs à chaque pas
- API de l'ancien export — les modèles et les liens qui évaluent les formules
- Migrer vers le Metric Export — les colonnes calculées et leurs équivalents
- Jetons d'API — un jeton Accès complet pour les routes de formules