Formule MiroxQL (riferimento API)
Una formula MiroxQL combina metriche giornaliere dell'esportazione legacy in una colonna calcolata, ad esempio un performance ratio a partire da un'energia e da un target.
L'editor delle formule è stato ritirato dall'app
Le formule non vengono più create né modificate in Mirox. Questa pagina è il riferimento dell'API, che resta pienamente utilizzabile:
- Le formule esistenti continuano a essere valutate ovunque siano usate: nei modelli di esportazione legacy e sui link di esportazione legacy.
- Le formule possono ancora essere elencate, create, modificate ed eliminate tramite l'API qui descritta.
- Il successore per i valori che definisci tu è Metriche. Una metrica viene valutata sui valori a 15 minuti di un impianto, può essere riportata per componente, compare nei report e può essere esportata a ogni passo con il Metric Export.
Apri in Mirox
Esportazione dati ▸ Glossario — definisci un nuovo valore come metrica della tua organizzazione.
MiroxQL o Metriche?
| Formula MiroxQL | Metrica | |
|---|---|---|
| Lavora su | valori giornalieri di un impianto | i valori a 15 minuti di un impianto |
| Riporta per componente | no | sì |
| Usata in | modelli di esportazione legacy | report, il Metric Export e i suoi modelli |
| Passo più fine | giorno | 15 minuti |
| Si modifica in | l'API | l'app, con convalida in tempo reale e un assistente, e l'API |
Route delle formule
Tutti i percorsi seguono https://service.mirox.io/api/v1/export/metric/formula. Le route richiedono un accesso oppure un token API del gruppo Full Access; un token Metric Export non le raggiunge. La lettura è aperta ai membri dell'organizzazione, la scrittura ai ruoli organizzativi Admin, Moderatore, Asset Manager (tecnico) e Asset Manager (commerciale).
| Richiesta | Scopo |
|---|---|
GET (senza altro percorso) | Elenca le formule della tua organizzazione e le formule fornite da Mirox. Parametri: page, limit, include_system (predefinito true), only_active (predefinito false), search. |
GET /{org_uid}/{metric_id} | Legge una formula. org_uid è system per una formula fornita da Mirox. |
GET /{org_uid}/{metric_id}/references | I modelli e le formule che usano la formula. |
GET /config-fields | I valori di configurazione dell'impianto che una formula può leggere. |
POST /validate | Verifica il testo di una formula. La risposta elenca le metriche e i valori di configurazione che legge. |
POST /test | Valuta una formula sui valori che invii. |
POST /preview | Valuta una formula sui dati degli impianti, con park o portfolio, year e quarter, month, week o day, e resolution. |
POST /{org_uid} | Crea una formula nella tua organizzazione. |
PUT /{org_uid}/{metric_id} | Modifica una formula. |
DELETE /{org_uid}/{metric_id} | Elimina una formula. |
Le formule fornite da Mirox non possono essere modificate né eliminate.
Campi di una formula
| Campo | Valori | Predefinito | Significato |
|---|---|---|---|
metric_id | lettere minuscole, cifre e trattini bassi, con una lettera all'inizio; fino a 100 caratteri | obbligatorio | L'ID usato da altre formule e dai modelli. |
name | fino a 100 caratteri | obbligatorio | Il nome della colonna. |
description | fino a 1000 caratteri | vuoto | Che cosa calcola la formula. |
unit | fino a 50 caratteri | obbligatorio | L'unità del risultato, ad esempio kWh o %. |
formula | testo | obbligatorio | L'espressione. Deve leggere almeno una metrica. |
scale | numero | 1.0 | Il risultato viene moltiplicato per questo fattore quando viene esportato. |
digits | da 0 a 10 | 2 | I decimali del valore esportato. |
calculation_level | daily, period | period | Quando viene eseguita la formula. Vedi Livello di calcolo. |
aggregation_method | sum, average | average | Come i risultati giornalieri diventano un valore di periodo, con calculation_level=daily. |
active | true, false | true | Solo quando si modifica una formula. Una formula inattiva non viene valutata. |
{
"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"
}
ID
Un ID deve essere libero. 409 metric_id_taken significa che una formula o una metrica della tua organizzazione, oppure una metrica di Mirox, ha già quell'ID. Questo vale anche quando modifichi una formula esistente il cui ID nel frattempo è stato occupato; disattivarla con active=false resta possibile.
Scala e cifre
Calcola nelle unità di base e converti con scale. Le metriche giornaliere vengono valutate nelle unità di base (Wh, W, Wh/m²), quindi una somma di energie con scale=0.001 viene esportata in kWh. scale e digits si applicano solo al valore esportato. Una formula che legge un'altra formula ne riceve il risultato non scalato e non arrotondato.
Livello di calcolo
calculation_level | Come si forma un valore mensile | Usalo per |
|---|---|---|
daily | La formula viene eseguita per ogni giorno. I risultati giornalieri vengono sommati (sum) o mediati (average). | somme di energia |
period | Le metriche vengono prima riepilogate sul mese. La formula viene eseguita una sola volta sui valori mensili. | rapporti come un performance ratio |
Sintassi
Riferimenti
Una metrica si legge con @ e il suo ID. Gli ID sono gli ID di metrica legacy e gli ID di altre formule.
@energy_grid_daily
@gti_sensor_daily
Un valore della configurazione dell'impianto si legge con $ e il suo percorso:
| Riferimento | Descrizione | Unità |
|---|---|---|
$park.peak_production_w | Potenza di picco totale | W |
$park.latitude | Latitudine geografica | ° |
$park.longitude | Longitudine geografica | ° |
$park.self_consumption | Fattore di autoconsumo (da 0.0 a 1.0) | rapporto |
$park.information.string_peak_power_w | Potenza di picco totale di tutte le stringhe | W |
$park.information.inverter_max_power_w | Potenza massima degli inverter | W |
$park.information.inverter_total | Numero di inverter | — |
$park.information.gak_total | Numero di quadri di campo | — |
$park.information.strings_total | Numero di stringhe | — |
$park.information.modules_total | Numero di moduli | — |
GET /config-fields restituisce l'elenco attuale.
Operatori
| Tipo | Operatori | Esempio |
|---|---|---|
| Aritmetica | + - * / % | @energy_grid_daily / $park.peak_production_w |
| Confronto | == != < <= > >= | @gti_sensor_daily > 0 |
| Logica | && || ! | @gti_sensor_daily > 0 && @energy_grid_daily > 0 |
| Condizione | condition ? a : b | @gti_sensor_daily > 0 ? @gti_sensor_daily : @gti_weather_daily |
| Funzioni | max(a, b), min(a, b) | max(@energy_grid_daily, 0) |
Un confronto restituisce 1 o 0. Una divisione per zero restituisce 0. Una metrica senza dati conta come 0.
Le operazioni vengono valutate in questo ordine, dalla più alta: parentesi, funzioni, * / %, + -, < <= > >=, == !=, &&, ||.
Esempi
Resa specifica:
@energy_grid_daily / $park.peak_production_w
Irradiazione dal sensore, oppure dal modello meteo dove il sensore non ha un valore:
@gti_sensor_daily > 0 ? @gti_sensor_daily : @gti_weather_daily
Quota delle perdite per spegnimento:
(@energy_shutdown_grid_daily + @energy_shutdown_external_daily) / (@energy_grid_daily + @energy_shutdown_grid_daily + @energy_shutdown_external_daily) * 100
Regole
- Una formula legge almeno una metrica.
- Le parentesi sono bilanciate e due operatori non si susseguono, tranne
!. - Una formula non deve dipendere da se stessa, né direttamente né tramite altre formule.
- Una formula lavora su valori giornalieri. Non può leggere valori all'interno di un giorno e non può guardare indietro alle righe precedenti.
Spostare una formula nelle Metriche
Una formula e una metrica sono scritte in linguaggi diversi, quindi una formula viene riscritta, non convertita. Nella maggior parte dei casi la metrica è più breve, perché dice che cosa accade in un intervallo di 15 minuti e lascia il resto alla sua Aggregazione.
- Apri Esportazione dati ▸ Glossario e fai clic su Nuova metrica.
- Descrivi il valore all'assistente nell'editor, oppure scrivi tu l'espressione. Il pannello laterale elenca le serie da cui puoi partire.
- Scegli l'Aggregazione che corrisponde alla formula:
| Formula | Aggregazione della metrica |
|---|---|
Una somma di energie, calculation_level=daily con sum | Somma |
| Una media | Media |
Un rapporto tra due somme, calculation_level=period | Rapporto, oppure Media ponderata |
| Una quota di tempo in cui vale una condizione | Rapporto con un'espressione che restituisce 1 o 0 |
- Controlla l'anteprima su un impianto, poi usa la metrica in un report oppure esportala.
Il performance ratio, la produzione attesa e la resa specifica non richiedono una metrica tua. La raccolta li ha già: plant.pr_weather, plant.pr_pyranometer, plant.expected_weather, plant.expected_pyranometer, plant.specific_yield.
Funzionalità correlate
- Metriche — il successore: i valori che la tua organizzazione definisce da sé
- Metric Export — esporta le metriche a ogni passo
- API di esportazione legacy — i modelli e i link che valutano le formule
- Migrare al Metric Export — le colonne calcolate e i loro equivalenti
- Token API — un token Full Access per le route delle formule