Fórmulas MiroxQL (referência da API)
Uma fórmula MiroxQL combina métricas diárias da exportação legada numa coluna calculada, por exemplo um performance ratio a partir de uma energia e de uma meta.
O editor de fórmulas foi retirado da aplicação
As fórmulas já não são criadas nem editadas no próprio Mirox. Esta página é a referência da API, que continua totalmente utilizável:
- As fórmulas existentes continuam a ser avaliadas onde quer que sejam usadas: nos modelos de exportação legados e nas ligações de exportação legadas.
- As fórmulas continuam a poder ser listadas, criadas, alteradas e eliminadas através da API aqui descrita.
- O sucessor para os indicadores que define por si são as Métricas. Uma métrica é avaliada sobre os valores de 15 minutos de uma central, pode ser reportada por componente, aparece nos relatórios e pode ser exportada em qualquer passo com a exportação de métricas.
Abrir no Mirox
Exportação de dados ▸ Glossário — defina um novo indicador como métrica da sua organização.
MiroxQL ou Métricas?
| Fórmula MiroxQL | Métrica | |
|---|---|---|
| Trabalha sobre | valores diários de uma central | os valores de 15 minutos de uma central |
| Reporta por componente | não | sim |
| Usada em | modelos de exportação legados | relatórios, a exportação de métricas e os seus modelos |
| Passo mais fino | dia | 15 minutos |
| Editada em | a API | a aplicação, com validação em tempo real e um assistente, e a API |
Rotas de fórmulas
Todos os caminhos são relativos a https://service.mirox.io/api/v1/export/metric/formula. As rotas requerem uma sessão iniciada ou um token de API do grupo Acesso total; um token Metric Export não lhes chega. A leitura está aberta aos membros da organização, a escrita às funções de organização Administrador, Moderador, Gestor de ativos (técnico) e Gestor de ativos (comercial).
| Pedido | Finalidade |
|---|---|
GET (sem mais caminho) | Listar as fórmulas da sua organização e as fórmulas que o Mirox fornece. Parâmetros: page, limit, include_system (predefinição true), only_active (predefinição false), search. |
GET /{org_uid}/{metric_id} | Ler uma fórmula. org_uid é system para uma fórmula que o Mirox fornece. |
GET /{org_uid}/{metric_id}/references | Os modelos e as fórmulas que usam a fórmula. |
GET /config-fields | Os valores de configuração da central que uma fórmula pode ler. |
POST /validate | Verificar o texto de uma fórmula. A resposta lista as métricas e os valores de configuração que ela lê. |
POST /test | Avaliar uma fórmula sobre valores que envia. |
POST /preview | Avaliar uma fórmula sobre os dados de centrais, com park ou portfolio, year e quarter, month, week ou day, e resolution. |
POST /{org_uid} | Criar uma fórmula na sua organização. |
PUT /{org_uid}/{metric_id} | Alterar uma fórmula. |
DELETE /{org_uid}/{metric_id} | Eliminar uma fórmula. |
As fórmulas que o Mirox fornece não podem ser alteradas nem eliminadas.
Campos de uma fórmula
| Campo | Valores | Predefinição | Significado |
|---|---|---|---|
metric_id | letras minúsculas, algarismos e sublinhados, a começar por uma letra; até 100 caracteres | obrigatório | O ID que outras fórmulas e modelos usam. |
name | até 100 caracteres | obrigatório | O nome da coluna. |
description | até 1000 caracteres | vazio | O que a fórmula calcula. |
unit | até 50 caracteres | obrigatório | A unidade do resultado, por exemplo kWh ou %. |
formula | texto | obrigatório | A expressão. Tem de ler pelo menos uma métrica. |
scale | número | 1.0 | O resultado é multiplicado por este fator quando é exportado. |
digits | 0 a 10 | 2 | As casas decimais do valor exportado. |
calculation_level | daily, period | period | Quando a fórmula é executada. Consulte Nível de cálculo. |
aggregation_method | sum, average | average | Como os resultados diários se tornam um valor do período, com calculation_level=daily. |
active | true, false | true | Apenas ao alterar uma fórmula. Uma fórmula inativa não é avaliada. |
{
"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
Um ID tem de estar livre. 409 metric_id_taken significa que uma fórmula ou uma métrica da sua organização, ou uma métrica do Mirox, já tem esse ID. Isto aplica-se também quando altera uma fórmula existente cujo ID foi entretanto ocupado; desativá-la com active=false continua a ser possível.
Escala e casas decimais
Calcule em unidades base e converta com scale. As métricas diárias são avaliadas em unidades base (Wh, W, Wh/m²), pelo que uma soma de energias com scale=0.001 é exportada em kWh. scale e digits aplicam-se apenas ao valor exportado. Uma fórmula que lê outra fórmula recebe o resultado desta sem escala e sem arredondamento.
Nível de cálculo
calculation_level | Como se forma um valor mensal | Use-o para |
|---|---|---|
daily | A fórmula é executada para cada dia. Os resultados diários são somados (sum) ou é feita a sua média (average). | somas de energia |
period | As métricas são primeiro consolidadas no mês. A fórmula é executada uma vez sobre os valores mensais. | rácios como um performance ratio |
Sintaxe
Referências
Uma métrica é lida com @ e o seu ID. Os IDs são os IDs de métricas legadas e os IDs de outras fórmulas.
@energy_grid_daily
@gti_sensor_daily
Um valor da configuração da central é lido com $ e o seu caminho:
| Referência | Descrição | Unidade |
|---|---|---|
$park.peak_production_w | Potência de pico total | W |
$park.latitude | Latitude geográfica | ° |
$park.longitude | Longitude geográfica | ° |
$park.self_consumption | Fator de autoconsumo (0.0 a 1.0) | rácio |
$park.information.string_peak_power_w | Potência de pico total de todas as strings | W |
$park.information.inverter_max_power_w | Potência máxima dos inversores | W |
$park.information.inverter_total | Número de inversores | — |
$park.information.gak_total | Número de caixas de junção | — |
$park.information.strings_total | Número de strings | — |
$park.information.modules_total | Número de módulos | — |
GET /config-fields responde com a lista atual.
Operadores
| Tipo | Operadores | Exemplo |
|---|---|---|
| Aritmética | + - * / % | @energy_grid_daily / $park.peak_production_w |
| Comparação | == != < <= > >= | @gti_sensor_daily > 0 |
| Lógica | && || ! | @gti_sensor_daily > 0 && @energy_grid_daily > 0 |
| Condição | condition ? a : b | @gti_sensor_daily > 0 ? @gti_sensor_daily : @gti_weather_daily |
| Funções | max(a, b), min(a, b) | max(@energy_grid_daily, 0) |
Uma comparação responde 1 ou 0. Uma divisão por zero responde 0. Uma métrica sem dados conta como 0.
As operações são avaliadas por esta ordem, da prioridade mais alta para a mais baixa: parênteses, funções, * / %, + -, < <= > >=, == !=, &&, ||.
Exemplos
Produção específica:
@energy_grid_daily / $park.peak_production_w
Irradiação do sensor, ou do modelo meteorológico quando o sensor não tem valor:
@gti_sensor_daily > 0 ? @gti_sensor_daily : @gti_weather_daily
Proporção das perdas por corte:
(@energy_shutdown_grid_daily + @energy_shutdown_external_daily) / (@energy_grid_daily + @energy_shutdown_grid_daily + @energy_shutdown_external_daily) * 100
Regras
- Uma fórmula lê pelo menos uma métrica.
- Os parênteses estão equilibrados, e dois operadores não se seguem um ao outro, exceto
!. - Uma fórmula não pode depender de si própria, diretamente ou através de outras fórmulas.
- Uma fórmula trabalha sobre valores diários. Não pode ler valores dentro de um dia, nem recuar a linhas anteriores.
Passar uma fórmula para Métricas
Uma fórmula e uma métrica são escritas em linguagens diferentes, pelo que uma fórmula é reescrita, não convertida. Na maioria dos casos a métrica é mais curta, porque indica o que acontece num intervalo de 15 minutos e deixa o resto à sua Agregação.
- Abra Exportação de dados ▸ Glossário e clique em Nova métrica.
- Descreva o indicador ao assistente no editor, ou escreva a expressão por si. O painel lateral lista as séries a partir das quais pode construir.
- Escolha a Agregação que corresponde à fórmula:
| Fórmula | Agregação da métrica |
|---|---|
Uma soma de energias, calculation_level=daily com sum | Soma |
| Uma média | Média |
Um rácio de duas somas, calculation_level=period | Rácio, ou Média ponderada |
| Uma fração do tempo em que uma condição se verifica | Rácio com uma expressão que responde 1 ou 0 |
- Verifique a pré-visualização numa central e depois use a métrica num relatório ou exporte-a.
O performance ratio, a produção esperada e a produção específica não precisam de uma métrica sua. A coleção tem-nos: plant.pr_weather, plant.pr_pyranometer, plant.expected_weather, plant.expected_pyranometer, plant.specific_yield.
Funcionalidades relacionadas
- Métricas — o sucessor: indicadores que a sua organização define por si
- Exportação de métricas — exportar métricas em qualquer passo
- API de exportação legada — os modelos e as ligações que avaliam fórmulas
- Migrar para a exportação de métricas — as colunas calculadas e os seus equivalentes
- Tokens de API — um token Acesso total para as rotas de fórmulas