Fórmulas MiroxQL (referencia de la API)
Una fórmula MiroxQL combina métricas diarias de la exportación heredada en una columna calculada, por ejemplo un performance ratio a partir de una energía y un objetivo.
El editor de fórmulas se retiró de la aplicación
Las fórmulas ya no se crean ni se editan en Mirox. Esta página es la referencia de la API, que sigue siendo plenamente utilizable:
- Las fórmulas existentes siguen evaluándose allí donde se usan: en las plantillas de exportación heredadas y en los enlaces de exportación heredados.
- Las fórmulas se pueden seguir enumerando, creando, modificando y eliminando mediante la API descrita aquí.
- El sucesor para las cifras que defines tú es Métricas. Una métrica se evalúa sobre los valores de 15 minutos de una planta, puede informarse por componente, aparece en los informes y puede exportarse con cualquier paso mediante Metric Export.
Abrir en Mirox
Exportación de datos ▸ Glosario — define una cifra nueva como métrica de tu organización.
¿MiroxQL o Métricas?
| Fórmula MiroxQL | Métrica | |
|---|---|---|
| Trabaja sobre | los valores diarios de una planta | los valores de 15 minutos de una planta |
| Informa por componente | no | sí |
| Se usa en | plantillas de exportación heredadas | informes, Metric Export y sus plantillas |
| Paso más fino | día | 15 minutos |
| Se edita en | la API | la aplicación, con validación en vivo y un asistente, y la API |
Rutas de fórmulas
Todas las rutas siguen a https://service.mirox.io/api/v1/export/metric/formula. Las rutas necesitan un inicio de sesión o un token de API del grupo Acceso completo; un token Metric Export no llega a ellas. La lectura está abierta a los miembros de la organización; la escritura, a los roles de organización Administrador, Moderador, Gestor de activos (técnico) y Gestor de activos (comercial).
| Solicitud | Propósito |
|---|---|
GET (sin más ruta) | Enumerar las fórmulas de tu organización y las fórmulas que entrega Mirox. Parámetros: page, limit, include_system (predeterminado true), only_active (predeterminado false), search. |
GET /{org_uid}/{metric_id} | Leer una fórmula. org_uid es system para una fórmula que entrega Mirox. |
GET /{org_uid}/{metric_id}/references | Las plantillas y fórmulas que usan la fórmula. |
GET /config-fields | Los valores de configuración de la planta que puede leer una fórmula. |
POST /validate | Comprobar el texto de una fórmula. La respuesta enumera las métricas y los valores de configuración que lee. |
POST /test | Evaluar una fórmula con valores que envías. |
POST /preview | Evaluar una fórmula con los datos de plantas, con park o portfolio, year y quarter, month, week o day, y resolution. |
POST /{org_uid} | Crear una fórmula en tu organización. |
PUT /{org_uid}/{metric_id} | Modificar una fórmula. |
DELETE /{org_uid}/{metric_id} | Eliminar una fórmula. |
Las fórmulas que entrega Mirox no se pueden modificar ni eliminar.
Campos de una fórmula
| Campo | Valores | Predeterminado | Significado |
|---|---|---|---|
metric_id | letras minúsculas, dígitos y guiones bajos, empezando por una letra; hasta 100 caracteres | obligatorio | El id que usan otras fórmulas y las plantillas. |
name | hasta 100 caracteres | obligatorio | El nombre de la columna. |
description | hasta 1000 caracteres | vacío | Qué calcula la fórmula. |
unit | hasta 50 caracteres | obligatorio | La unidad del resultado, por ejemplo kWh o %. |
formula | texto | obligatorio | La expresión. Debe leer al menos una métrica. |
scale | número | 1.0 | El resultado se multiplica por este factor al exportarse. |
digits | de 0 a 10 | 2 | Los decimales del valor exportado. |
calculation_level | daily, period | period | Cuándo se ejecuta la fórmula. Consulta Nivel de cálculo. |
aggregation_method | sum, average | average | Cómo los resultados diarios se convierten en un valor del periodo, con calculation_level=daily. |
active | true, false | true | Solo al modificar una fórmula. Una fórmula inactiva no se evalúa. |
{
"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"
}
Ids
Un id debe estar libre. 409 metric_id_taken significa que una fórmula o una métrica de tu organización, o una métrica de Mirox, ya tiene ese id. Esto se aplica también cuando modificas una fórmula existente cuyo id se ha ocupado entretanto; desactivarla con active=false sigue siendo posible.
Escala y decimales
Calcula en unidades base y convierte con scale. Las métricas diarias se evalúan en unidades base (Wh, W, Wh/m²), así que una suma de energías con scale=0.001 se exporta en kWh. scale y digits se aplican solo al valor exportado. Una fórmula que lee otra fórmula recibe su resultado sin escalar y sin redondear.
Nivel de cálculo
calculation_level | Cómo se forma un valor mensual | Úsalo para |
|---|---|---|
daily | La fórmula se ejecuta para cada día. Los resultados diarios se suman (sum) o se promedian (average). | sumas de energía |
period | Las métricas se acumulan primero al mes. La fórmula se ejecuta una vez sobre los valores mensuales. | ratios como un performance ratio |
Sintaxis
Referencias
Una métrica se lee con @ y su id. Los ids son los ids de métricas heredadas y los ids de otras fórmulas.
@energy_grid_daily
@gti_sensor_daily
Un valor de la configuración de la planta se lee con $ y su ruta:
| Referencia | Descripción | Unidad |
|---|---|---|
$park.peak_production_w | Potencia pico total | W |
$park.latitude | Latitud geográfica | ° |
$park.longitude | Longitud geográfica | ° |
$park.self_consumption | Factor de autoconsumo (de 0.0 a 1.0) | ratio |
$park.information.string_peak_power_w | Potencia pico total de todos los strings | W |
$park.information.inverter_max_power_w | Potencia máxima de los inversores | W |
$park.information.inverter_total | Número de inversores | — |
$park.information.gak_total | Número de cajas de conexión | — |
$park.information.strings_total | Número de strings | — |
$park.information.modules_total | Número de módulos | — |
GET /config-fields responde la lista actual.
Operadores
| Tipo | Operadores | Ejemplo |
|---|---|---|
| Aritmética | + - * / % | @energy_grid_daily / $park.peak_production_w |
| Comparación | == != < <= > >= | @gti_sensor_daily > 0 |
| Lógica | && || ! | @gti_sensor_daily > 0 && @energy_grid_daily > 0 |
| Condición | condition ? a : b | @gti_sensor_daily > 0 ? @gti_sensor_daily : @gti_weather_daily |
| Funciones | max(a, b), min(a, b) | max(@energy_grid_daily, 0) |
Una comparación responde 1 o 0. Una división por cero responde 0. Una métrica sin datos cuenta como 0.
Las operaciones se evalúan en este orden, de mayor a menor prioridad: paréntesis, funciones, * / %, + -, < <= > >=, == !=, &&, ||.
Ejemplos
Producción específica:
@energy_grid_daily / $park.peak_production_w
Irradiación del sensor, o del modelo meteorológico cuando el sensor no tiene valor:
@gti_sensor_daily > 0 ? @gti_sensor_daily : @gti_weather_daily
Proporción de las pérdidas por limitación:
(@energy_shutdown_grid_daily + @energy_shutdown_external_daily) / (@energy_grid_daily + @energy_shutdown_grid_daily + @energy_shutdown_external_daily) * 100
Reglas
- Una fórmula lee al menos una métrica.
- Los paréntesis están equilibrados, y dos operadores no van seguidos, salvo
!. - Una fórmula no debe depender de sí misma, ni directamente ni a través de otras fórmulas.
- Una fórmula trabaja sobre valores diarios. No puede leer valores dentro de un día, y no puede mirar hacia atrás a filas anteriores.
Pasar una fórmula a Métricas
Una fórmula y una métrica se escriben en lenguajes distintos, así que una fórmula se reescribe, no se convierte. En la mayoría de los casos la métrica es más corta, porque expresa lo que ocurre en un intervalo de 15 minutos y deja el resto a su Agregación.
- Abre Exportación de datos ▸ Glosario y haz clic en Nueva métrica.
- Describe la cifra al asistente del editor, o escribe tú la expresión. El panel lateral enumera las series con las que puedes construir.
- Elige la Agregación que corresponde a la fórmula:
| Fórmula | Agregación de la métrica |
|---|---|
Una suma de energías, calculation_level=daily con sum | Suma |
| Un promedio | Media |
Un ratio de dos sumas, calculation_level=period | Relación, o Media ponderada |
| Una proporción del tiempo en la que se cumple una condición | Relación con una expresión que responde 1 o 0 |
- Comprueba la vista previa en una planta, y después usa la métrica en un informe o expórtala.
El performance ratio, la producción esperada y la producción específica no necesitan una métrica propia. La colección los tiene: plant.pr_weather, plant.pr_pyranometer, plant.expected_weather, plant.expected_pyranometer, plant.specific_yield.
Funciones relacionadas
- Métricas: el sucesor: cifras que tu organización define por sí misma
- Metric Export: exporta métricas con cualquier paso
- API de exportación heredada: las plantillas y los enlaces que evalúan fórmulas
- Migrar a Metric Export: las columnas calculadas y sus equivalentes
- Tokens de API: un token Acceso completo para las rutas de fórmulas