API de exportação legada
Esta página descreve as ligações de exportação que existiam antes da exportação de métricas. São legadas: são servidas sem alterações, com os mesmos parâmetros, IDs de métricas e colunas, e já não são ampliadas.
Os livros e scripts existentes continuam a funcionar
As ligações legadas não têm data de remoção. Nada do que construiu sobre elas tem de mudar. Para trabalho novo, use a API de exportação de métricas; o guia de migração faz corresponder cada ID legado à sua métrica.
Rotas
Todos os caminhos são relativos a https://service.mirox.io/api. Um token de API do grupo Metric Export lê todas elas.
| Rota | Resposta | Estado |
|---|---|---|
GET /v1/export/metrics/template/{template_uid} | CSV | legada — Exportação por modelo |
GET /v1/export/metrics/query | CSV | legada — Exportação por ID de métrica |
GET /v1/export/raw/query | CSV | legada — Exportação de séries temporais brutas |
GET /v1/export/raw/component/query | CSV | legada — Exportação bruta de componentes |
GET /v1/metrics/raw | JSON | legada — a lista de IDs de métricas brutas |
GET /v1/metrics/components | JSON | legada — a lista de IDs de métricas de componentes por tipo de componente |
GET /v1/export/report/{park_uid}/info | JSON | atual — Informações da central |
GET /v1/export/report/{park_uid}/events.csv | CSV | atual — Eventos |
GET /v1/export/report/{park_uid}/data/template/{template_uid}/metrics.csv | CSV | obsoleta |
POST /v1/export/metrics/query, POST /v1/export/raw/query, POST /v1/export/raw/component/query | JSON | obsoleta |
GET /v1/export/template/metrics | JSON | obsoleta |
O que está obsoleto
Uma rota obsoleta continua a responder, mas pode ser removida numa versão posterior, e a referência interativa da API marca-a como obsoleta.
- A rota de modelo para uma só central em
/v1/export/report/{park_uid}/data/template/…. Use antes a exportação por modelo; aceita os mesmos modelos. - As três rotas
POSTque respondiam às exportações em JSON. A API de exportação de métricas responde em JSON comformat=json. GET /v1/export/template/metrics, a lista de IDs de métricas legadas para o editor de modelos. O catálogo de métricas substitui-a.
Tudo o resto nesta página é legado, mas não obsoleto.
Várias centrais: combinar ou separar
As quatro exportações aceitam os parâmetros park e portfolio separados por vírgulas. Quando ambos são indicados, as centrais de cada carteira são acrescentadas às centrais listadas.
multi_park_agg decide como várias centrais são representadas. Está disponível na exportação por modelo, por ID de métrica e bruta; a exportação de componentes tem, em vez dele, multi_component_agg.
| Valor | Resultado |
|---|---|
merge (predefinição) | Uma coluna por métrica. As centrais são combinadas com o operador que a métrica declara — a energia e a potência são somadas; das tensões, temperaturas e rácios é feita a média. |
split | Uma coluna por central e por métrica, chamada <nome da central> - <nome da métrica>. Todas as métricas de uma central ficam juntas, com as centrais ordenadas por nome. |
Com uma única central, os dois são idênticos e o parâmetro é ignorado.
Exportação por modelo
GET /v1/export/metrics/template/{template_uid}
| Parâmetro | Finalidade |
|---|---|
park / portfolio | UIDs separados por vírgulas que delimitam a exportação |
resolution | daily, weekly, monthly, quarterly ou yearly; predefinição monthly |
year + quarter / month / week / day | O período de calendário (day requer month); year tem de ser 2020 ou posterior |
full_week | Apenas na resolução semanal: alargar o período a semanas ISO completas |
multi_park_agg | merge (predefinição) ou split |
separator_csv / separator_decimal / datetime_format / language | Formatação CSV e nomes de colunas traduzidos |
curl "https://service.mirox.io/api/v1/export/metrics/template/ABCD12340001?park=ABC123DEF456&resolution=monthly" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Modelos do sistema legados
| Modelo | UID | Sucessor |
|---|---|---|
| Standard Export v1 | CAFE0000CAFE | CAFE1000CAFE |
| Extended Export v1 | CAFE0001CAFE | CAFE1001CAFE |
| Extended Export v2 | CAFE0002CAFE | CAFE1002CAFE |
| Energy Availability Export | CAFE0003CAFE | CAFE1003CAFE |
| Report Technical v1 | ABCD12340001 | ABCD12340002 |
Na aplicação, estes cinco são substituídos pelos seus sucessores no separador Modelos. As suas ligações continuam a responder como antes.
Report Technical v1 (ABCD12340001) contém:
Métricas de séries temporais:
- Energy Production (kWh) -
energy_grid_daily - Energy Radiation Total (kWh) -
energy_radiation_daily - GTI Sensor (kWh/m²) -
gti_sensor_daily - GTI Weather (kWh/m²) -
gti_weather_daily - Sunhours (h) -
sunhours_daily - Availability Inverter (%) -
availability_inverter - Availability Energy (%) -
availability_energy - Availability Data (%) -
availability_data - Availability Sensor (%) -
availability_sensor - Energy Shutdown by Grid (kWh) -
energy_shutdown_grid_daily - Energy Shutdown by External (kWh) -
energy_shutdown_external_daily
Métricas de configuração do relatório:
- Energy Report (kWh) -
energy_report - GTI Report Incident (kWh/m²) -
gti_report - GTI Report Effective (kWh/m²) -
gti_report_eff - PR Report Target (%) -
pr_report
Métricas calculadas (com MiroxQL):
- Análise de irradiância (real, utilização meteorológica, diferença sensor-meteorologia)
- Metas de produção (baseada na meteorologia, baseada em sensores, real, corrigida)
- Performance ratios (meteorologia, sensor, real, corrigido)
- Produção específica (Wh/W)
- Análise de perdas (perdas não compensáveis)
Modelos da exportação de métricas nesta rota
A exportação por modelo também aceita o ID de um modelo da exportação de métricas, por exemplo CAFE1000CAFE. Responde então com a exportação de métricas desse modelo: os parâmetros de calendário selecionam o período, resolution seleciona o passo, e o ficheiro segue as convenções da exportação de métricas. Não tem coluna «Days in Month» nem «Calendar Week», e os erros são respondidos com um code. Sem resolution, aplica-se o passo do modelo.
A rota obsoleta para uma só central não aceita um modelo destes e responde 400 com a ligação a usar.
Saída CSV
Os ficheiros têm uma linha de cabeçalho com os nomes das métricas e as unidades. A estrutura segue a resolução:
- Diária — uma linha por dia.
- Semanal — uma coluna «Date» em formato de semana ISO e uma coluna «Calendar Week» com o número da semana.
- Mensal — uma coluna «Days in Month» para normalização.
Os valores são agregados por dia e depois consolidados: a energia e as horas são somadas, de tudo o resto é feita a média. Um dia é um dia UTC. Um valor em falta é escrito como 0.
Exportação por ID de métrica
GET /v1/export/metrics/query exporta um conjunto de IDs de métricas legadas sem modelo, com os parâmetros de período e o formato CSV da exportação por modelo.
| Parâmetro | Finalidade |
|---|---|
metrics | IDs de métricas separados por vírgulas (1-20), p. ex. energy_grid_daily,energy_ac_daily |
park / portfolio | UIDs separados por vírgulas que delimitam a exportação |
year + quarter / month / week / day | O período de calendário (day requer month) |
resolution | daily, weekly, monthly, quarterly ou yearly |
full_week | Apenas na resolução semanal: alargar o período a semanas ISO completas |
multi_park_agg | merge (predefinição) ou split |
separator_csv / separator_decimal / datetime_format / language | Formatação CSV e nomes de colunas traduzidos |
Exportação de séries temporais brutas
GET /v1/export/raw/query devolve séries temporais brutas ao nível da central. GET /v1/metrics/raw lista cada ID bruto com o seu nome, unidade, categoria e o operador que aplica entre séries (sum, avg, min ou max).
| Parâmetro | Finalidade |
|---|---|
metrics | IDs de métricas brutas separados por vírgulas (1-20), p. ex. raw_grid_energy_total,raw_power_ac |
start / end / step | Qualquer período ISO 8601 em qualquer passo (5m, 15m, 1h, 1d) |
value | plain (tal como registado), start_at_zero (o primeiro valor passa a 0) ou use_delta (variação por intervalo em vez do total acumulado). Uma só escolha para todas as métricas. |
multi_park_agg | Com mais de uma central: merge ou split |
park / portfolio | UIDs separados por vírgulas que delimitam a exportação |
separator_csv / separator_decimal / language | Formatação CSV e nomes de colunas traduzidos |
curl --compressed "https://service.mirox.io/api/v1/export/raw/query?metrics=raw_grid_energy_total&park=ABC123DEF456&start=2026-07-01T00:00:00Z&end=2026-07-08T00:00:00Z&step=15m&value=use_delta" \
-H "Authorization: Bearer YOUR_API_TOKEN" -o production_week.csv
Date;Grid Production (Wh)
2026-07-01 00:00;0,00
2026-07-01 06:15;1250,50
...
A energia está em Wh, e a hora em UTC.
Exportação bruta de componentes
GET /v1/export/raw/component/query exporta as séries temporais brutas de componentes individuais — inversores, caixas de junção ou strings individuais — de exatamente uma central. Os IDs de métricas de componentes têm o prefixo comp_raw_ e estão listados, por tipo de componente, em GET /v1/metrics/components.
| Parâmetro | Finalidade |
|---|---|
metrics | IDs de métricas brutas de componentes separados por vírgulas (1-20), p. ex. comp_raw_inverter_energy_ac — cada ID tem de corresponder ao component_type escolhido |
park | Exatamente um UID de central |
component_type | inverter, gak ou string |
components | IDs de componentes opcionais, separados por vírgulas — exatamente esses, pela ordem indicada |
page / limit | Sem components: percorrer por páginas todos os componentes do tipo (até 50 por página) |
multi_component_agg | split (predefinição — uma coluna por componente e por métrica, chamada <nome do componente> - <nome da métrica>) ou merge (a soma ou a média dos componentes) |
start / end / step / value / separadores / language | Como na exportação de séries temporais brutas |
Limites
Ambas as exportações brutas recusam com 400 tudo o que for maior:
| Limite | Valor |
|---|---|
| IDs de métricas por pedido | 20 |
| Pontos de dados por série, exportação ao nível da central | 180 000 — 5 anos com resolução de 15 minutos |
| Amostras no total, exportação ao nível da central | 1 800 000 (séries × pontos de dados por série) |
| Pontos de dados por série, exportação ao nível do componente | 36 000 — um ano completo com resolução de 15 minutos |
Séries numa exportação split de centrais | 50 (métricas × centrais) |
| Componentes selecionados explicitamente | 50 |
Colunas numa exportação split de componentes | 100 (métricas × componentes) |
As respostas acima de cerca de 1 MB são comprimidas quando o pedido contém Accept-Encoding: gzip.
IDs de métricas legadas
As métricas diárias da exportação por modelo e por ID de métrica. Cada uma pode ser agregada em valores semanais, mensais, trimestrais ou anuais. A coluna da fórmula mostra, de forma simplificada, como um valor é derivado. A métrica que responde por cada ID na exportação de métricas está na correspondência de IDs.
Métricas de produção de energia
| ID da métrica | Nome | Unidade | Descrição | Fórmula |
|---|---|---|---|---|
energy_grid_daily | Energy Production | kWh | Energia diária injetada na rede | sum(delta(grid_energy_total)) por componente |
energy_ac_daily | AC Production | kWh | Produção diária de energia CA | sum(delta(ac_energy_total)) por componente |
energy_inverter_daily | Inverter Production | kWh | Produção diária de energia dos inversores | sum(delta(inverter_ac_energy_total)) por inversor |
energy_radiation_daily | Energy Radiation Total | kWh | Energia de radiação total diária | sum(delta(radiation_energy_total)) por componente |
Métricas de corte e perda
| ID da métrica | Nome | Unidade | Descrição | Fórmula |
|---|---|---|---|---|
energy_shutdown_grid_daily | Energy Shutdown by Grid | kWh | Perda diária de energia devido a restrições da rede | sum(delta(energy_loss_total)) onde type='grid', por componente |
energy_shutdown_external_daily | Energy Shutdown by External | kWh | Perda diária de energia devido a controlo externo | sum(delta(energy_loss_total)) onde type='external', por componente |
Métricas de irradiância
| ID da métrica | Nome | Unidade | Descrição | Fórmula |
|---|---|---|---|---|
gti_sensor_daily | GTI Sensor | kWh/m² | Irradiação global inclinada diária a partir de sensores | avg(delta(irradiation_total)) onde position='module-level' ou alternativa |
gti_weather_daily | GTI Weather | kWh/m² | Irradiação global inclinada diária a partir da previsão meteorológica | sum(weather_gti) / 4, amostragem: intervalos de 15min |
gti_report | GTI Report | kWh/m² | Meta de GTI da configuração da central | valor da configuração da central |
Métricas meteorológicas
| ID da métrica | Nome | Unidade | Descrição | Fórmula |
|---|---|---|---|---|
solar_radiation_daily | Solar Radiation | Wh | Radiação solar diária média | avg(solar_radiation) ao longo de 24h |
sunhours_daily | Sunhours | h | Horas diárias de sol | count(weather_gti > 0) / 4, amostragem: 15min |
Métricas ambientais
| ID da métrica | Nome | Unidade | Descrição | Fórmula |
|---|---|---|---|---|
temperature_ambient_avg | Ambient Temperature | °C | Temperatura ambiente diária média | avg(ambient_temperature) ao longo de 24h |
temperature_module_avg | Module Temperature | °C | Temperatura diária média dos módulos | avg(module_temperature) ao longo de 24h |
wind_speed_avg | Wind Speed | m/s | Velocidade do vento diária média | avg(wind_speed) ao longo de 24h |
humidity_avg | Humidity | % | Humidade diária média | avg(humidity) ao longo de 24h |
Métricas de disponibilidade
| ID da métrica | Nome | Unidade | Descrição | Fórmula |
|---|---|---|---|---|
availability_inverter | Availability Inverter | % | Disponibilidade dos inversores com base na potência de saída e nas condições de GTI | avg(1 - count(inverter_power ≤ 0 AND weather_gti > 100)), amostragem: 15min |
availability_technical | Availability Technical | % | Disponibilidade técnica do sistema | avg(sum(scraper_health == 1) / count(scraper_health)) por fonte, amostragem: 15min |
availability_data | Availability Data | % | Disponibilidade de dados da central | 1 - avg(count(grid_energy_total)) onde ausente, amostragem: 15min |
availability_sensor | Availability Sensor | % | Disponibilidade dos sensores | 1 - avg(count(solar_radiation)) onde ausente, amostragem: 15min |
availability_energy | Availability Energy | % | Aproximação da disponibilidade baseada na energia | 1 - (sum(energy_loss_total) / (sum(grid_energy_total) + sum(energy_loss_total))) |
Métricas de bateria
| ID da métrica | Nome | Unidade | Descrição | Fórmula |
|---|---|---|---|---|
battery_energy_in_daily | Battery Energy Charged | kWh | Energia CC diária carregada na bateria | sum(delta(battery_box_energy_dc_in_total)) por contentor |
battery_energy_out_daily | Battery Energy Discharged | kWh | Energia CC diária descarregada da bateria | sum(delta(battery_box_energy_dc_out_total)) por contentor |
battery_soc_avg | Battery State of Charge | % | Estado de carga médio diário ao nível do contentor | avg(battery_box_soc) ao longo de 24h |
battery_soh_avg | Battery State of Health | % | Estado de saúde médio diário ao nível do contentor | avg(battery_box_soh) ao longo de 24h |
battery_energy_charged_avg | Battery Stored Energy | kWh | Energia média diária atualmente armazenada | avg(sum(battery_box_energy_charged)) ao longo de 24h |
temperature_battery_avg | Battery Temperature | °C | Temperatura média diária da bateria ao nível do contentor | avg(battery_box_temperature) ao longo de 24h |
Métricas de relatório
| ID da métrica | Nome | Unidade | Descrição | Fórmula |
|---|---|---|---|---|
energy_report | Energy Report | kWh | Meta de energia da configuração da central | valor da configuração da central |
Os IDs brutos e de componentes são listados por GET /v1/metrics/raw e GET /v1/metrics/components, e na correspondência de IDs.
Comportamento conhecido que se mantém
Os números das exportações legadas mantêm-se como estão, para que um livro mostre amanhã o que mostrou ontem. Isto inclui três leituras que a exportação de métricas faz de forma diferente:
| ID ou opção legada | O que a exportação legada faz | Na exportação de métricas |
|---|---|---|
raw_irradiation_energy_total, irradiation_energy_daily | Soma a irradiação de todos os sensores de uma central. Uma central com três sensores mostra cerca de três vezes a irradiação. | sensor.irradiation dá uma coluna por sensor; plant.rad_pyranometer dá o valor da central. |
raw_solar_radiation | Faz a média de todos os sensores de irradiância de uma central, juntando sensores horizontais e sensores no plano dos módulos. | sensor.irradiance dá uma coluna por sensor. |
multi_component_agg=merge com códigos de estado ou estados de alarme | Soma os códigos dos componentes. | Os códigos de estado e os estados são exportados por componente. |
Correções
Dois grupos de colunas da exportação de séries temporais brutas estavam vazios e passam a conter valores. Um livro que os leia mostra números onde antes mostrava células vazias.
| Colunas | O que mudou |
|---|---|
raw_availability_technical, raw_availability_data, raw_availability_sensor, raw_availability_network, raw_availability_inverter, raw_availability_grid | As colunas contêm valores. Cada linha é a disponibilidade ao longo de um período com a duração do período exportado, que termina nessa linha. A última linha é, portanto, a disponibilidade do período exportado, o mesmo valor que os mosaicos de disponibilidade mostram; as linhas anteriores recuam para antes do início do período. |
raw_curtailment_grid_nacelle, raw_curtailment_grid_windref, raw_curtailment_grid_windfixed, os mesmos com marketer, e cada um com _energy | As colunas de curtailment eólico contêm o curtailment liquidado das centrais eólicas. |
Informações da central
GET /v1/export/report/{park_uid}/info
Responde com os dados base de uma central em JSON: nome, tipo e descrição, localização e fuso horário, potência de pico, organização e carteira, morada e datas de entrada em serviço. Há um exemplo no Gerador de relatórios externo.
Eventos
GET /v1/export/report/{park_uid}/events.csv
| Parâmetro | Finalidade |
|---|---|
year, quarter, month | O período. Sem nenhum deles, a exportação cobre o ano em curso. |
separator_csv / separator_decimal / datetime_format | Formatação CSV; predefinições ;, , e %Y-%m-%d %H:%M |
As colunas são Event ID, Start Date, End Date, Duration (hours), Type, Creator, Description e Priority. A data de fim de um evento ainda aberto é Ongoing. Uma prioridade de 1000 ou mais assinala um evento importante.
Funcionalidades relacionadas
- API de exportação de métricas — a exportação atual
- Migrar para a exportação de métricas — o que muda, e a correspondência de IDs
- Fórmulas MiroxQL — a API de fórmulas por detrás das colunas calculadas
- Gerador de relatórios externo — informações da central e eventos num exemplo em Python
- Tokens de API — o token Metric Export