MiroxMirox
  • Plattform

    • Philosophie
    • Plattform-Übersicht
    • Plattform-Ressourcen
    • Verfügbarkeit und Wartungsfenster
    • Releases und Versionen
  • Mirox-Cloud

    • Cloud-Übersicht
    • Verbundene Microservices
  • Mirox-Agent

    • Agent-Übersicht
    • Bereitstellungsoptionen
    • Data Scraper
    • Digital Twin
  • Technische Details

    • Metriksammlung
  • Information

    • Unterstützte Anlagen
  • Anlagentypen

    • Solaranlagen
    • Solartracker und Parkregler
    • Windanlagen
    • Batteriespeicher
    • Alarmanlage
  • Überwachung & Visualisierung

    • Echtzeit-Monitoring
    • Digitaler Zwilling
    • Komponentenzustände
    • Wechselrichter-Statuscodes
    • Wechselrichter-Ereignisse
    • Verlusterkennung
    • Leistungsgrenzen & Abregelung
    • Effizienzerkennung
    • KPI-Dashboard
  • Datenverwaltung

    • Ereignisse
    • Alarmstufen
    • Tickets
    • Prognosen
    • Berichte
    • Metriken
  • Alert Manager

    • Übersicht
    • Alarmregeln
    • Alarme & Benachrichtigungen
    • Beispiele
  • Integration & Freigabe

    • Kooperationen
    • API-Tokens
    • VPN
    • VPN-Adresskonflikte
    • Proxy
  • KI

    • KI-Assistent & Wizards
    • Agentischer Zugriff (MCP)
  • Abrechnung

    • Markt & Tarife
    • So werden Erlöse berechnet
    • Buchhaltung & Abrechnung
    • Verträge
  • Kollaboration

    • Einladungen
  • Sicherheit

    • Authentifizierung
    • Kontosperre
    • Sicherheitsrichtlinie der Organisation
    • Berechtigungssystem
    • Netzsegmentierung
    • Kooperationsbeschränkungen
    • Zugriffs-Audit-Logging
    • Aktivität & Audit-Trail
    • Datenisolierung
  • Erste Schritte

    • Onboarding
    • Einrichtung
  • Persönlich

    • VPN verwenden
    • Proxy verwenden
    • Zwei-Faktor-Authentifizierung
    • Sitzungen
    • API-Tokens
    • Benachrichtigungen
    • Microsoft Teams verbinden
  • Pro Anlage

    • Kontakte
    • Netzwerkgeräte
    • Datenlogger
    • Generischer Modbus-Leser
    • Komponenten
    • Direktes VPN (pro Agent)
    • Datenvolumen
    • Historie importieren
  • Organisation

    • Mitgliederberechtigungen
    • Sicherheitsrichtlinie
    • Kooperationen
    • Dateispeicher
    • VPN-Dienste
    • Mit Berichten arbeiten
  • Datenexport

    • Metric Export
    • Metric-Export-API
    • Umstieg auf den Metric Export
    • Legacy-Export-API
    • Externe Berichterstellung
    • Grafana
    • Grafana-Dashboards
    • API-Überblick
    • MiroxQL-Formeln (API)
  • Unterstützung

    • Eine Integration anfragen
  • Berichterstellung

    • Externer Berichtgenerator
    • Metric Export für Excel
  • Fernzugriff
  • Kontosicherheit
  • KI in Mirox
  • Historie importieren
  • Berichte
  • Daten-Export
  • English
  • Deutsch
  • Español
  • Français
  • Português
  • Italiano
  • English
  • Plattform

    • Philosophie
    • Plattform-Übersicht
    • Plattform-Ressourcen
    • Verfügbarkeit und Wartungsfenster
    • Releases und Versionen
  • Mirox-Cloud

    • Cloud-Übersicht
    • Verbundene Microservices
  • Mirox-Agent

    • Agent-Übersicht
    • Bereitstellungsoptionen
    • Data Scraper
    • Digital Twin
  • Technische Details

    • Metriksammlung
  • Information

    • Unterstützte Anlagen
  • Anlagentypen

    • Solaranlagen
    • Solartracker und Parkregler
    • Windanlagen
    • Batteriespeicher
    • Alarmanlage
  • Überwachung & Visualisierung

    • Echtzeit-Monitoring
    • Digitaler Zwilling
    • Komponentenzustände
    • Wechselrichter-Statuscodes
    • Wechselrichter-Ereignisse
    • Verlusterkennung
    • Leistungsgrenzen & Abregelung
    • Effizienzerkennung
    • KPI-Dashboard
  • Datenverwaltung

    • Ereignisse
    • Alarmstufen
    • Tickets
    • Prognosen
    • Berichte
    • Metriken
  • Alert Manager

    • Übersicht
    • Alarmregeln
    • Alarme & Benachrichtigungen
    • Beispiele
  • Integration & Freigabe

    • Kooperationen
    • API-Tokens
    • VPN
    • VPN-Adresskonflikte
    • Proxy
  • KI

    • KI-Assistent & Wizards
    • Agentischer Zugriff (MCP)
  • Abrechnung

    • Markt & Tarife
    • So werden Erlöse berechnet
    • Buchhaltung & Abrechnung
    • Verträge
  • Kollaboration

    • Einladungen
  • Sicherheit

    • Authentifizierung
    • Kontosperre
    • Sicherheitsrichtlinie der Organisation
    • Berechtigungssystem
    • Netzsegmentierung
    • Kooperationsbeschränkungen
    • Zugriffs-Audit-Logging
    • Aktivität & Audit-Trail
    • Datenisolierung
  • Erste Schritte

    • Onboarding
    • Einrichtung
  • Persönlich

    • VPN verwenden
    • Proxy verwenden
    • Zwei-Faktor-Authentifizierung
    • Sitzungen
    • API-Tokens
    • Benachrichtigungen
    • Microsoft Teams verbinden
  • Pro Anlage

    • Kontakte
    • Netzwerkgeräte
    • Datenlogger
    • Generischer Modbus-Leser
    • Komponenten
    • Direktes VPN (pro Agent)
    • Datenvolumen
    • Historie importieren
  • Organisation

    • Mitgliederberechtigungen
    • Sicherheitsrichtlinie
    • Kooperationen
    • Dateispeicher
    • VPN-Dienste
    • Mit Berichten arbeiten
  • Datenexport

    • Metric Export
    • Metric-Export-API
    • Umstieg auf den Metric Export
    • Legacy-Export-API
    • Externe Berichterstellung
    • Grafana
    • Grafana-Dashboards
    • API-Überblick
    • MiroxQL-Formeln (API)
  • Unterstützung

    • Eine Integration anfragen
  • Berichterstellung

    • Externer Berichtgenerator
    • Metric Export für Excel
  • Fernzugriff
  • Kontosicherheit
  • KI in Mirox
  • Historie importieren
  • Berichte
  • Daten-Export
  • English
  • Deutsch
  • Español
  • Français
  • Português
  • Italiano
  • English
  • Erste Schritte

    • Onboarding
    • Einrichtung
  • Persönlich

    • Das VPN nutzen
    • Proxy nutzen
    • Zwei-Faktor-Authentifizierung einrichten
    • Ihre Sitzungen verwalten
    • API-Tokens
    • Benachrichtigungen
    • Microsoft Teams verbinden
  • Pro Anlage

    • Anlagenkontakte verwalten
    • Netzwerkgeräte verwalten
    • Datenlogger konfigurieren
    • Generischer Modbus-Leser
    • Komponenten konfigurieren
    • VPN-Server pro Agent konfigurieren (Direkt-VPN)
    • Datenvolumen pro Anlage
    • Historie einer Anlage importieren
  • Organisation

    • Mitgliederberechtigungen verwalten
    • Sicherheitsrichtlinie Ihrer Organisation festlegen
    • Kooperationen erstellen
    • Die Datei-Ablage nutzen
    • Organisations-VPN-Dienste
    • Mit Berichten arbeiten
  • Datenexport

    • Metric Export
    • Metric-Export-API
    • Umstieg auf den Metric Export
    • Legacy-Export-API
    • Externe Berichtserstellung
    • Grafana als externe Read-Plattform nutzen
    • Eigene Grafana-Dashboards erstellen
    • API-Übersicht
    • MiroxQL-Formeln (API-Referenz)
  • Unterstützung

    • Eine Integration anfragen

Metric-Export-API

Die Metric-Export-API liefert jede Metrik Ihrer Anlagen als Zeitreihe, als CSV oder JSON, mit einer einzigen GET-Anfrage. Sie liest dieselbe Metriksammlung wie die Berichte, einschließlich der Metriken, die Ihre Organisation selbst definiert hat.

Jeder Link, den die Seite Daten-Export zeigt, ist ein Aufruf dieser API. Der einfachste Weg zu einer funktionierenden Anfrage ist also, sie dort zusammenzustellen und zu kopieren.

In Mirox öffnen

Daten-Export ▸ Metriken für eine freie Auswahl, Daten-Export ▸ API-Builder für eine Vorlage. Beide zeigen den Link zu dem, was Sie gewählt haben.

Die Export-Links des bisherigen Exports funktionieren unverändert weiter. Sie sind in der Legacy-Export-API beschrieben; wie Sie vom einen zum anderen wechseln, steht im Leitfaden zum Umstieg.

Routen

Alle Pfade folgen auf https://service.mirox.io/api.

RouteAntwortZweck
GET /v1/export/seriesCSV, oder JSON mit format=jsonMetriken als Zeitreihe exportieren
GET /v1/export/series/estimateJSONGröße und Dauer eines Exports, ohne Daten zu lesen
GET /v1/export/series/catalogJSON, oder ein CSV-Glossar mit format=csvDie Metriken, die Sie exportieren können
GET /v1/export/series/lanesJSONDie Komponenten einer Anlage
GET /v1/export/series/template/{template_uid}CSV, oder JSON mit format=jsonEine Vorlage exportieren
POST /v1/export/template/{template_uid}/convertJSONEine Legacy-Vorlage umwandeln

Authentifizierung

Senden Sie ein API-Token der Gruppe Metric Export im Header Authorization:

Authorization: Bearer YOUR_API_TOKEN

Das Token liest jede Export-Route dieser Seite und die Legacy-Routen. Es kann nichts erstellen, ändern oder löschen. In einem Browser, in dem Sie bei Mirox angemeldet sind, funktionieren die Links ohne Token.

Sie erhalten nur Daten der Anlagen, deren Messwerte Sie lesen dürfen. Die Metriken Ihrer Organisation werden von jeder Organisationsrolle außer Extern exportiert. Siehe Wer was exportieren kann.

Metriken werden über die ID gewählt; eine Abfrage ist auf die Anlage begrenzt

Ein Export benennt Metriken über ihre ID. Mirox löst jede ID in ihre eigene Abfrage auf, begrenzt auf die Anlage. Die Metriken Ihrer Organisation sind validierte Einträge der Sammlung, die auf dieselbe Weise auf die Anlage begrenzt sind. Der einzige Abfragetext, den ein Aufrufer senden kann, ist ein MetricsQL-Ausdruck in expr: Er läuft nur auf den Anlagen der Anfrage, mit der Anlage in jedem Selektor, und wird abgelehnt, wenn er selbst eine Anlage, einen Park oder eine Organisation nennt.

Eine Zeitreihe exportieren

GET /v1/export/series

Netzeinspeisung einer Anlage über den Vormonat, je Tag:

curl --compressed "https://service.mirox.io/api/v1/export/series?park=ABC123DEF456&metrics=plant.grid_feedin&window=previous_month&step=day" \
  -H "Authorization: Bearer YOUR_API_TOKEN" -o feedin.csv
Date;Grid feed-in (kWh)
2026-08-01;5321,4
2026-08-02;4980,2
...

Parameter

ParameterWerteStandardBedeutung
metrics1 bis 20 Metrik-IDs, durch Komma getrennterforderlich, sofern kein expr angegeben istDie Spalten, in dieser Reihenfolge. Siehe Metriken und Werte.
exprein MetricsQL-Ausdruck, bis zu 5-mal wiederholbar—Rohe Abfragen der Zeitreihendatenbank, je ein Satz Spalten, nach den Metriken. Siehe Rohe MetricsQL-Abfragen.
parkAnlagen-UIDs, durch Komma getrennt—Die Anlagen. park oder portfolio ist erforderlich.
portfolioPortfolio-UIDs, durch Komma getrennt—Alle Anlagen dieser Portfolios, zusätzlich zu park. Insgesamt höchstens 50 Anlagen.
start, endDatum oder Datum mit Uhrzeit—Ein freier Zeitraum. Siehe Zeitraum.
year, quarter, month, week, dayZahlen—Ein Kalenderzeitraum.
windowVoreinstellungprevious_monthEin benannter Zeitraum.
stepauto, 1min, 5min, 15min, 1h, day, week, month, quarter, yearautoDie Länge einer Zeile. Siehe Schrittweiten.
mismatchrefuse, sparserefuseWas mit einer Metrik geschieht, die die Schrittweite nicht bedient: die Anfrage ablehnen oder sie in ihrer eigenen Schrittweite exportieren. Siehe Metriken mit verschiedenen Schrittweiten.
valuesauto, delta, cumulative, nativeautoDer Wertemodus aller Metriken.
tzlocal, utclocalDer Kalender der Zeilen. Siehe Zeitraster.
multi_park_aggmerge, splitmergeMehrere Anlagen zusammengefasst oder eine Spalte je Anlage. Siehe Mehrere Anlagen.
componentsbis zu 100 Komponentenreferenzen, durch Komma getrenntalleSchränkt Komponenten-Metriken auf diese Komponenten ein. Siehe Komponenten.
lane_limit1 bis 10050Komponenten je Metrik und Seite.
lane_page1 und größer1Die Seite der Komponenten.
formatcsv, jsoncsvDas Format der Antwort.
languageen, de, es, fr, it, ptenDie Sprache der Spaltennamen.
separator_csv, ; Tab |;Das Spaltentrennzeichen.
separator_decimal. ,,Das Dezimaltrennzeichen. Es muss sich von separator_csv unterscheiden.
datetime_formatstrftime-Muster, bis zu 64 Zeichenje SchrittweiteDas Format der Zeitspalte.
headername, idnameSpaltenköpfe als Namen oder als IDs. Siehe CSV-Antwort.
emptyblank, zeroblankEin fehlender Wert als leere Zelle oder als 0.
offset_columntrue, falsetrueDie Spalte UTC-Versatz. Sie erscheint nur bei Schrittweiten unter einem Tag in der Ortszeit der Anlage.
precisiondisplay, fulldisplayWerte auf die Stellen der Metrik gerundet oder ungerundet.

lane_limit und lane_page außerhalb ihrer Grenzen werden auf die nächste Grenze gesetzt. Ein Parameter, den die Route nicht kennt, wird ignoriert.

Metriken und Werte

Eine Metrik-ID hat die Form <Präfix>.<Name>, zum Beispiel plant.grid_feedin, inverter.ac_power oder sensor.irradiance. Eine Metrik Ihrer Organisation lautet organization.<ID der Metrik>. Der Katalog listet sie alle.

Jede Metrik hat eine Größenart, die bestimmt, welche Wertemodi sie anbietet:

valuesEine Zeile zeigtGilt für
deltadie Menge innerhalb des Intervallsnur Energie
cumulativedie laufende Summe seit Beginn des ZeitraumsEnergie und andere gezählte Größen
nativeden Wert, wie die Metrik ihn liefertjede Metrik
autodelta für Energie, native für alles andere

Ein Suffix legt den Modus einer einzelnen Metrik fest und hat Vorrang vor values:

metrics=plant.grid_feedin:cumulative,plant.grid_power

Ein Modus, der für eine Metrik nicht gilt, ist nie ein Fehler. Die Metrik wird als native exportiert, und der Hinweis value_mode_ignored sagt das. delta wird nie auf eine Leistung angewendet.

Dieselbe Metrik in zwei Modi ergibt zwei Spalten. Dieselbe Metrik zweimal im selben Modus ergibt eine.

Energie je Intervall unter 15 Minuten

Ein Zähler zählt Energie in ganzen Schritten. Bei 1min oder 5min springt eine Energie im Modus delta daher zwischen null und einem Schritt. Der Export liefert sie und fügt den Hinweis energy_delta_fine_step hinzu, der die passende Leistungs-Metrik nennt, sofern die Sammlung eine hat. Nutzen Sie für eine Kurve die Leistungs-Metrik; für Energie 15min oder länger.

Zeitraum

Geben Sie den Zeitraum auf eine von drei Arten an. Zwei Arten in einer Anfrage antworten mit 400 window_conflict.

ArtParameterBeispiel
Freier Zeitraumstart, endstart=2026-07-01&end=2026-07-31
Kalenderyear mit quarter, month, week oder dayyear=2026&quarter=2
Voreinstellungwindowwindow=previous_week

Freier Zeitraum. start und end sind ein Datum (2026-07-01) oder ein Datum mit Uhrzeit (2026-07-01T06:00, 2026-07-01T06:00:00Z, 2026-07-01T06:00:00+02:00). Ein Wert ohne Zeitzone wird in der Zeitzone der Zeilen gelesen. Ein end, das ein Datum ist, schließt diesen Tag ein; ein end mit Uhrzeit ist der Moment, in dem der Zeitraum endet. Ohne end endet der Zeitraum jetzt. end allein, ohne start, wird abgelehnt.

Kalender. year von 2020 bis 2100, quarter 1 bis 4, month 1 bis 12, week 1 bis 53 (ISO-Woche), day 1 bis 31. day braucht month. Ohne year ist das laufende Jahr gemeint. day hat Vorrang vor week, week vor month, month vor quarter.

Voreinstellungen. today, yesterday, last_7_days, last_30_days, this_week, previous_week, this_month, previous_month, this_quarter, previous_quarter, this_year, previous_year. Die this_-Voreinstellungen laufen bis jetzt; last_7_days und last_30_days laufen bei Schrittweiten unter einem Tag rollierend bis jetzt (dieselbe Uhrzeit 7 bzw. 30 Tage zurück); ab day sind es die letzten 7 bzw. 30 Tage der Anlage einschließlich heute. Ab day wird jedes Zeitfenster auf ganze Tage (Wochen, Monate …) in der Zeitzone der Anlage erweitert; die Antwort nennt das tatsächliche Zeitfenster.

Ein Zeitraum beginnt frühestens 2020 und umfasst höchstens 1827 Tage (fünf Jahre). Ein Zeitraum, der in die Zukunft reicht, endet jetzt, mit dem Hinweis end_clamped.

Schrittweiten

step=auto wählt eine Schrittweite, die jede angefragte Metrik bedient und die in die Grenzen passt: 15min bis zu zwei Tagen, 1h bis zu 62 Tagen, day bis zu drei Jahren, darüber month. Passt diese Schrittweite nicht, wird die nächstgröbere versucht, danach die feineren. Der Hinweis step_auto und der Header X-Mirox-Step nennen die gewählte Schrittweite.

Jede Metrik bietet ihre eigenen Schrittweiten an. Der Katalog listet sie als export_steps:

Art der MetrikSchrittweiten
Energie aus einem Zähler, der jede Minute zählt1min bis year
Energie, die seltener gezählt wird — Windturbinen, abgerechnete Abregelung15min bis year
Leistung (W, var, VA, W/m²), Spannung, Strom, Frequenz1min, 5min, 15min
Temperatur, Ladezustand und andere gemessene Pegelvom Messintervall bis year
Betriebszustände und Statuscodes15min
Performance Ratioday, week, month, quarter, year
Verfügbarkeit15min, 1h, day, week, month, quarter, year
Metriken Ihrer Organisationvon ihrer feinsten Auflösung bis year, nie feiner als 15min

Leistung wird nur bei 15 Minuten oder feiner angeboten. Eine Tages- oder Monatsleistung ist ein Mittelwert, der verbirgt, was geschehen ist; die Energie-Metrik liefert die Zahl, die gemeint ist.

Eine Schrittweite wird nie stillschweigend geändert. Mit mismatch=refuse, der Voreinstellung, antwortet eine Schrittweite, die eine der Metriken nicht bedient, mit 400 step_not_served und den Schrittweiten jeder Metrik, und mit step=auto antworten Metriken ohne gemeinsame Schrittweite mit 400 no_common_step. Mit mismatch=sparse wird eine solche Anfrage stattdessen geliefert — siehe Metriken mit verschiedenen Schrittweiten.

Schrittweiten von einem Tag oder länger umfassen ganze Intervalle. Ein Zeitraum, der innerhalb eines Intervalls beginnt oder endet, wird nach außen erweitert, mit dem Hinweis window_aligned. Wochen beginnen am Montag.

Metriken mit verschiedenen Schrittweiten

mismatch=sparse liefert eine Anfrage, deren Metriken nicht alle die Schrittweite bedienen, solange jede von ihnen irgendeine Schrittweite bedient. Das Raster der Datei ist die angeforderte Schrittweite; mit step=auto ist es die Schrittweite, die die meisten Metriken unverändert bedienen, wie üblich nach Zeitraum und Grenzen gewählt. Spaltenpositionen und die Form der CSV- und JSON-Antwort ändern sich nicht.

Die Metrik bedientWas der Export tutHinweis
nur feinere SchrittweitenLiest sie in der gröbsten davon und fasst sie nach der Regel ihrer Größe auf das Raster zusammen: Eine Energie wird addiert, ein Messwert gemittelt, ein Verhältnis aus seinen Hälften neu berechnet, ein Zustand behält seinen letzten Code.step_folded mit der gelesenen step
nur gröbere SchrittweitenLiest sie in der feinsten davon und schreibt jeden Wert in die Zeile, in der sein eigenes Intervall beginnt — den Wert eines Tages in die Zeile seiner örtlichen Mitternacht, den eines Monats in die Zeile seines ersten Tages. Die Zeilen dazwischen bleiben leer.step_sparse mit dieser step
eine gröbere Schrittweite, aber keines ihrer Intervalle beginnt in einer ZeileDie Spalte ist leer, zum Beispiel ein Tageswert in einer Datei, die um 06:00 beginnt.metric_unavailable mit reason off_grid

Zwei Fälle werden in beiden Modi mit 400 step_not_served abgelehnt: ein Wert je Monat, Quartal oder Jahr in einer week-Datei, weil sein erster Tag kaum je ein Montag ist; und ein Monatswert wie der Marktwert in einer quarter- oder year-Datei, weil eine Summe oder ein Mittel von Monaten nicht dieser Wert ist. In einer month-Datei wird er unverändert gelesen, in einer feineren Datei ist er dünn besetzt.

Die Schätzung listet dieselben Hinweise, zählt die Lesevorgänge in der eigenen Schrittweite jeder Metrik und markiert eine Schrittweite in per_step auch dann als innerhalb der Grenzen, wenn nicht jede Metrik sie bedient. Die Seite Datenexport fragt immer mit mismatch=sparse an; eine Vorlage trägt ihr eigenes mismatch in ihrer spec.

Zeitraster

Mit tz=local folgen die Zeilen der Ortszeit der Anlage, einschließlich der Sommerzeit: Ein Tag ist ein lokaler Tag mit 23, 24 oder 25 Stunden, ein Monat ist ein lokaler Monat. Mit tz=utc folgen die Zeilen dem UTC-Kalender.

  • Bei Schrittweiten unter einem Tag in Ortszeit folgt die Spalte UTC-Versatz auf die Zeitspalte (+02:00). Am Tag, an dem die Uhren zurückgestellt werden, erscheint eine Stunde zweimal; der Versatz unterscheidet die beiden. offset_column=false lässt die Spalte weg.
  • Anlagen in verschiedenen Zeitzonen teilen sich eine Zeitspalte. Eine solche Anfrage wird auf dem UTC-Kalender beantwortet, mit dem Hinweis merged_on_utc, gleich ob die Anlagen zusammengefasst oder getrennt werden.
  • Mit tz=utc und einer Schrittweite von einem Tag oder länger hat eine Metrik, die es nur je lokalem Tag gibt, keinen UTC-Wert. Ihre Spalte bleibt leer, mit dem Hinweis utc_calendar_unsupported.

Der Header X-Mirox-Grid nennt den verwendeten Kalender: local:Europe/Berlin oder utc.

Mehrere Anlagen

Mit multi_park_agg=merge ist jede Metrik eine Spalte für alle Anlagen, zusammengefasst nach der Regel der Metrik. Der Katalog listet die Regel als merge:

mergeZusammengefasster WertMetriken
sumüber die Anlagen addiertEnergie, gezählte Größen, Leistung
meanüber die Anlagen gemitteltEinstrahlung, Temperatur, Ladezustand und andere Pegel
pair_ratioaus den Summen der Anlagen neu berechnetPerformance Ratio, Verfügbarkeit und andere Verhältnisse
firstder gemeinsame WertPreise, wenn alle Anlagen in einer Marktzone liegen
split_onlylässt sich nicht zusammenfassenZustände und Statuscodes

Eine Metrik, die sich nicht zusammenfassen lässt, wird je Anlage exportiert, mit dem Hinweis merge_not_meaningful. Das gilt auch für ein Verhältnis in einer Schrittweite, in der seine beiden Hälften nicht verfügbar sind, und für Preise von Anlagen in verschiedenen Marktzonen.

Mit multi_park_agg=split ist jede Metrik eine Spalte je Anlage. Bei einer einzelnen Anlage ergeben beide dieselbe Datei.

Komponenten-Metriken sind immer je Anlage (Hinweis components_split_by_park).

Komponenten

Eine Metrik einer Komponentenebene ergibt eine Spalte je Komponente. Die Ebenen sind inverter, gak (Generatoranschlusskasten), string, turbine, sensor, meter, battery_box (Container), battery_storage (Rack), battery_module, battery_cell und battery_pcs (Umrichter).

Ohne components enthält der Export alle sichtbaren Komponenten der Anlagen, lane_limit je Metrik und Seite. Gibt es mehr, nennt der Hinweis lanes_truncated die Gesamtzahl; fordern Sie die nächste Seite mit lane_page an.

components schränkt den Export auf die Komponenten ein, die Sie nennen. Eine Referenz hat die Form <Ebene>:<ID>, zum Beispiel inverter:1043. Ein Sensor oder Zähler, den Mirox misst, der aber keinen Eintrag in den Komponenten der Anlage hat, hat eine Referenz der Form sensor:h3f9c2a71b04e6d5. Die Komponenten-Route listet die Referenzen einer Anlage. Eine Referenz, die zu keiner der gewählten Anlagen gehört, antwortet mit 400 unknown_lane.

metrics=inverter.ac_power&components=inverter:1043,inverter:1044

Rohe MetricsQL-Abfragen

expr fügt einem Export eine rohe Abfrage in MetricsQL hinzu, der Abfragesprache der Zeitreihendatenbank der Plattform — für eine Reihe, für die die Sammlung keine Metrik hat. Der Parameter kann bis zu fünfmal wiederholt werden; jeder Ausdruck darf bis zu 4 000 Zeichen haben. Eine Anfrage kann expr allein oder metrics und expr zusammen tragen; die Metrik-Spalten kommen zuerst.

expr=sum by (inverter_id) (powerplant_inverter_power_ac)&park=ABC123DEF456&window=yesterday&step=15min

Ein Ausdruck wird je Anlage ausgewertet, so wie ein Dashboard ihn auswertet: auf den Daten der Anlage, in der angeforderten Schrittweite, als Rohwerte — jede Schrittweite ist erlaubt, values und die Zusammenfassungsregeln der Metriken gelten nicht. Mirox fügt die Anlage in jeden Selektor des Ausdrucks ein; ein Ausdruck, der selbst ein Label park, organization oder plant nennt, wird mit 400 expr_forbidden_label abgelehnt.

Fallheader=nameheader=id
Eine Reihe je AnlageMetricsQL sum by (inverter_id) (powerplant_inverter_power_ac)expr1
Mehrere Reihen an irgendeiner Anlageder Kopf, gefolgt vom eigenen name{labels} jeder Reiheexpr1{inverter_id="INV1"}
Mehrere Anlagender Anlagenname voran, wie bei jeder SpalteABC123DEF456/expr1

Liefert ein Ausdruck an irgendeiner seiner Anlagen mehrere Reihen, tragen die Spalten dieses Ausdrucks an jeder Anlage die Reihen-Labels, sodass eine Datei je Ausdruck eine Benennung hat. Ein Kopf länger als 1 000 Zeichen wird mit … innerhalb des Ausdrucks gekürzt, nie im Reihentext. In der JSON-Antwort ist columns[].key der Text von header=id und columns[].metric die ID des Ausdrucks, expr.e1, expr.e2, …, die Hinweise und Ablehnungen verwenden. Eine Anlage, an der der Ausdruck nichts liefert, behält eine leere Spalte, mit dem Hinweis expr_no_series; bei mehreren Anlagen erhält jede Anlage ihre eigenen Spalten, mit dem Hinweis expr_split_by_park.

Ein Ausdruck darf an einer Anlage höchstens 500 Reihen liefern (400 expr_too_many_series); fassen Sie ihn zusammen, etwa mit sum by (…). Die Reihen zählen gegen dieselben 400 Spalten und 1 800 000 Werte wie jeder Export: Der erste Lesevorgang jedes Ausdrucks an jeder Anlage ist eine kurze Probe, die Breiten werden über die ganze Anfrage summiert, und eine Anfrage, die die Grenzen überschreitet, wird mit 400 over_budget und params.series abgelehnt, bevor irgendein Ausdruck vollständig gelesen wird. Ein Ausdruck, der nicht geparst werden kann, leer oder zu lang ist oder den die Datenbank ablehnt, antwortet mit 400 expr_invalid und dem reason.

Die Schätzung zählt einen Ausdruck als eine Spalte je Anlage, weil seine Reihen erst beim Lesen bekannt sind. Ausdrücke werden nicht in Vorlagen gespeichert.

CSV-Antwort

Die Antwort ist UTF-8, mit dem Dateinamen series_export_<erster Tag>_<letzter Tag>_<Schrittweite>.csv. Eine Antwort über etwa 1 MB wird komprimiert, wenn die Anfrage Accept-Encoding: gzip enthält (curl: --compressed).

Die Spalten sind, in dieser Reihenfolge: die Zeit, der UTC-Versatz, wo er zutrifft, danach die Metriken in der Reihenfolge von metrics.

Fallheader=nameheader=id
ZeitDatetimestamp
UTC-VersatzUTC offsetutc_offset
Eine Anlage, oder Anlagen zusammengefasstGrid feed-in (kWh)plant.grid_feedin
Anlagen getrenntSunnyside - Grid feed-in (kWh)ABC123DEF456/plant.grid_feedin
KomponenteWR 01.01 - AC power per inverter (W)ABC123DEF456/inverter:1043/inverter.ac_power
Komponente, mehrere AnlagenSunnyside - WR 01.01 - AC power per inverter (W)ABC123DEF456/inverter:1043/inverter.ac_power
Metrik mit Varianten, etwa drei Phasender Name, gefolgt von der Variantedie ID, gefolgt von #<Variante>
Eine Metrik in zwei Wertemodiderselbe Name zweimalplant.grid_feedin:delta, plant.grid_feedin:cumulative
Rohe MetricsQL-AbfrageMetricsQL <Ausdruck>, gefolgt von den Reihen-Labels, wenn es mehrere sindexpr1, expr1{inverter_id="INV1"} — siehe Rohe MetricsQL-Abfragen

Nutzen Sie header=id in Skripten und Arbeitsmappen

Namen sind für Menschen gemacht: Sie folgen language und ändern sich, wenn eine Metrik umbenannt wird. IDs sind stabil. Ein Skript oder eine Arbeitsmappe, die ihre Spalten über den Spaltenkopf findet, sollte header=id anfordern. In einer Vorlage können Sie außerdem jeder Spalte einen eigenen Spaltennamen geben.

Die Zeitspalte wird je Schrittweite formatiert, sofern datetime_format nicht angegeben ist:

SchrittweiteFormatBeispiel
1min, 5min, 15min, 1h%Y-%m-%d %H:%M2026-08-01 06:15
day, week%Y-%m-%d2026-08-01
month, quarter, year%Y-%m2026-08

Jede Zeile trägt den Beginn ihres Intervalls als Zeitstempel. Ein fehlender Wert ist eine leere Zelle, sodass sich „keine Daten“ und „null“ unterscheiden lassen; empty=zero schreibt stattdessen 0.

Vier Header der Antwort wiederholen, was aufgelöst wurde:

HeaderInhaltBeispiel
X-Mirox-Stepdie Schrittweiteday
X-Mirox-Gridder Kalenderlocal:Europe/Berlin
X-Mirox-WindowBeginn und Ende des exportierten Zeitraums2026-08-01T00:00:00+02:00/2026-09-01T00:00:00+02:00
X-Mirox-Notesdie Hinweise, getrennt durch ;step_auto:step=day

JSON-Antwort

format=json beantwortet dieselbe Tabelle als strukturierte Daten:

FeldInhalt
windowstart, end, grid, tz_name, step und aligned, wenn der Zeitraum erweitert wurde
parksdie exportierten Anlagen mit uid, name und timezone
bucketsdie Zeilen: start als Zeit mit Versatz, ts als Unix-Sekunden
columnsein Eintrag je Spalte: key (der Text von header=id), metric, name, unit, digits, quantity, values_mode, merge, park_uid, lane (ref, level, title), variant und values in der Reihenfolge von buckets; ein fehlender Wert ist null
notesdie Hinweise mit code, metric und params
lanes_totalKomponenten je Komponenten-Metrik, vor dem Blättern
lane_page, lane_limitdie gelieferte Seite
totalsvalues, queries und duration_ms des Exports

Hinweise

Ein Hinweis sagt Ihnen, was Mirox von sich aus getan hat. Er lässt einen Export nie scheitern. Hinweise sind Teil der JSON-Antwort und des Headers X-Mirox-Notes. Der Header enthält bis zu 1 KB an Hinweisen, geschrieben als code:key=value,key=value und getrennt durch ;. Passen nicht alle hinein, endet der Header mit notes_omitted:count=<n>; die JSON-Antwort enthält alle.

HinweisBedeutung
parks_droppedAnlagen, die Sie genannt haben, aber nicht lesen können, wurden ausgelassen. uids nennt sie.
grant_requiredEine Geld-Metrik bleibt für eine Anlage leer, auf der Ihnen die Buchhaltungsberechtigung fehlt.
value_mode_ignoredDer angefragte Wertemodus gilt für die Metrik nicht; sie wurde als native exportiert.
energy_delta_fine_stepEine Energie je Intervall in einer Schrittweite unter 15 Minuten zeigt Zählerschritte. twin nennt die passende Leistungs-Metrik.
legacy_id_mappedEine ID des bisherigen Exports wurde übersetzt. from, to und exactness sagen, wie.
merge_not_meaningfulDie Metrik lässt sich nicht über Anlagen zusammenfassen und wird je Anlage gezeigt.
components_split_by_parkKomponenten-Metriken werden je Anlage gezeigt.
merged_on_utcDie Anlagen liegen in verschiedenen Zeitzonen; die Zeilen sind in UTC.
utc_calendar_unsupportedDie Metrik hat keinen Wert im UTC-Kalender; ihre Spalte ist leer.
window_alignedDer Zeitraum wurde auf ganze Intervalle erweitert. start und end geben das Ergebnis an.
end_clampedDer Zeitraum reichte in die Zukunft und endet jetzt.
step_autoDie Schrittweite, die auto gewählt hat.
step_foldedMit mismatch=sparse: Die Metrik wurde in einer feineren step gelesen und auf das Raster zusammengefasst.
step_sparseMit mismatch=sparse: Die Metrik hat einen Wert je step, in der ersten Zeile jedes ihrer Intervalle.
lanes_truncatedDie Metrik hat mehr Komponenten, als die Seite fasst. total, page und limit sagen, wo Sie sind.
lanes_unpagedGemessene Reihen ohne Eintrag in den Komponenten der Anlage wurden wie gemessen exportiert.
metric_unavailableDie Metrik hat für eine Anlage keine Werte; die Spalte ist leer. reason ist planned, not_applicable, no_data_source, draft, deleted, unknown_lane, off_grid oder, in einer Vorlage, not_permitted.
expr_no_seriesEine rohe Abfrage hat an einer Anlage keine Reihe geliefert; ihre Spalte ist leer.
expr_split_by_parkRohe Abfragen werden je Anlage gelesen und erhalten je Anlage einen Satz Spalten.
provider_noteEine Anmerkung der Metrik selbst, zum Beispiel welche Quelle geantwortet hat.

Eine leere Spalte bleibt immer erhalten. Eine Metrik, die für eine der Anlagen nicht gilt, oder eine Geld-Metrik ohne Buchhaltungsberechtigung lässt ihre Spalte an ihrem Platz, sodass sich die Positionen der übrigen Spalten nie verschieben.

Vor dem Export schätzen

GET /v1/export/series/estimate

Die Route nimmt die Parameter des Exports, ohne das Dateiformat, und beantwortet, was der Export wäre — ohne Daten zu lesen und ohne auf das stündliche Kontingent zu zählen.

FeldInhalt
step, grid, windowworauf sich die Anfrage auflöst
parks, columns, rows, values, queriesdie Größe
bytes_csv, seconds_estimateungefähre Dateigröße und Dauer
within_budgetob der Export geliefert würde
preview_okob er klein genug für die Vorschau in der App ist (200 000 Werte)
limitsdie geltenden Grenzen
per_stepfür jede Schrittweite: served_by_all, values, within_budget und, falls nicht, der reason
refusalsjeder Fehler, mit dem der Export antworten würde, mit code, params und hint
notesdie Hinweise, die der Export tragen würde

Eine Ablehnung lässt die Schätzung nie scheitern: Sie antwortet mit 200 und listet die Ablehnung. Die Schätzung zählt, sie rendert nichts: Zeilenbeschriftungen und Spaltenköpfe sind die des Exports. Eine rohe Abfrage zählt als eine Spalte je Anlage, und mit mismatch=sparse nennen die Hinweise die zusammengefassten und dünn besetzten Spalten.

Der Metrikkatalog

GET /v1/export/series/catalog
ParameterWerteStandardBedeutung
park, portfolioUIDs—Die Anlagen, gegen die die Metriken beurteilt werden. Ohne Anlagen wird die ganze Sammlung gelistet.
languageen, de, es, fr, it, ptenDie Sprache der Namen und Beschreibungen.
leveleine EbenealleNur eine Ebene.
quantityenergy, amount, rate, level, ratio, state, pricealleNur eine Größenart.
searchText, bis zu 100 Zeichen—Durchsucht Name, Beschreibung, Einheit, ID und die IDs des bisherigen Exports.
include_unavailabletrue, falsetrueListet auch Metriken, die sich für die gewählten Anlagen nicht exportieren lassen.
page, limitZahlen, limit bis 1001, 100Blättern.
sortorder, name, id, level, mit - davor für absteigendorderDie Reihenfolge der Liste.
formatjson, csvjsoncsv beantwortet das Glossar.

Jede Metrik trägt neben ID, Name, Beschreibung, Einheit und Ebene:

FeldInhalt
quantitywas die Zahl ist: energy, amount (eine andere gezählte Größe), rate (Leistung), level, ratio, state oder price
value_modes, default_value_modedie Wertemodi, die sie anbietet, und der, den auto wählt
export_stepsdie Schrittweiten, die sie anbietet
native_step_secondswie oft sie gemessen wird
mergewie mehrere Anlagen zusammengefasst werden
twin_item_idbei einer Energie-Metrik ihre Leistungs-Metrik
lane_levelbei einer Komponenten-Metrik die Ebene ihrer Komponenten
legacy_idsdie IDs des bisherigen Exports, für die sie antwortet
applies_parksauf wie vielen der gewählten Anlagen sie gilt
exportable, export_reasonob sie sich exportieren lässt, und falls nicht, warum: draft, planned, grant_required, not_applicable oder no_source

Bei bis zu 10 Anlagen wird jede Anlage auf die Ausstattung geprüft, die eine Metrik braucht. Darüber werden Anlagen nur nach ihrem Typ beurteilt; was einer einzelnen Anlage fehlt, zeigt sich beim Export als Hinweis metric_unavailable.

Glossar. format=csv beantwortet die ganze gefilterte Liste als Datei, metric_catalog_<Sprache>.csv, mit den Spalten ID, Ebene, Name, Einheit, Beschreibung, Größenart, Wertemodi, Schrittweiten, Messintervall, Zusammenfassung über Anlagen, Hinweis und bisherige IDs. page und limit gelten nicht.

curl "https://service.mirox.io/api/v1/export/series/catalog?format=csv&language=en" \
  -H "Authorization: Bearer YOUR_API_TOKEN" -o metric_catalog_en.csv

Verfügbare Metriken

Die Sammlung ist nach Ebene geordnet. Das Präfix einer ID sagt, wohin eine Metrik gehört.

EbenelevelID-PräfixWas sie enthält
Anlage · gemessenplantplant.Was die Anlage selbst misst: der Netzzähler, die Wechselrichtersummen, die Sensoren vor Ort, die Leistungsgrenzen, die ihr vorgegeben wurden.
Anlage · Referenzplant_referenceplant.Was die Anlage hätte leisten sollen: Einstrahlung in der Modulebene, erwartete Erzeugung, Performance Ratio, spezifischer Ertrag, Verluste.
Anlage · Entschädigungplant_compensationplant.Abregelungs- und Abschaltverluste als Energie und Leistung, je Empfänger und Verfahren.
Metrikenmetricsavailability., organization.Verfügbarkeitswerte, Sonnenstunden und die Metriken Ihrer Organisation.
Wechselrichterinverterinverter.Eine Spalte je Wechselrichter.
Generatoranschlusskastengakgak.Eine Spalte je Generatoranschlusskasten.
Stringstringstring.Eine Spalte je String.
Batteriebatterybattery.Der Speicher als Ganzes: Energie, Leistung, Ladezustand, Sollwerte.
Batteriecontainerbattery_boxbattery_box.Eine Spalte je Container.
Batterierackbattery_storagebattery_storage.Eine Spalte je Rack.
Batteriemodulbattery_modulebattery_module.Eine Spalte je Modul.
Batteriezellebattery_cellbattery_cell.Eine Spalte je Zelle oder Messpunkt.
Batterie-Umrichter (PCS)battery_pcsbattery_pcs.Eine Spalte je Umrichter.
Windturbineturbineturbine.Eine Spalte je Turbine.
Sensorsensorsensor.Eine Spalte je Sensor: Einstrahlung, Einstrahlungsenergie, Temperatur, Luftfeuchtigkeit, Wind.
Zählermetermeter.Eine Spalte je Energiezähler.
Infrastrukturinfrastructureinfrastructure.Der Datenweg und der Standort: Vollständigkeit, Logger-Zustand, Netzwerk, Alarme, Steuerverbindungen.
Wetterweatherweather.Wetter am Standort, einschließlich Wind und Temperatur in 80, 120 und 180 m.
Marktmarketmarket.Preise und Marktwerte.
Anlage · Finanzenfinancialfinancial.Geldwerte der Anlage. Sie brauchen die Buchhaltungsberechtigung.

Die vollständige Liste mit Namen, Einheiten und Beschreibungen in Ihrer Sprache ist der Katalog, die Glossardatei oder Erklärungen auf dem Tab Metriken. Die Wettervorhersage-Werte des bisherigen Exports sind nicht Teil der Sammlung; siehe den Leitfaden zum Umstieg.

Komponenten einer Anlage

GET /v1/export/series/lanes
ParameterWerteStandardBedeutung
parkeine Anlagen-UIDerforderlichDie Anlage.
leveleine KomponentenebeneerforderlichSiehe Komponenten.
metriceine Metrik-ID—Für Sensoren und Zähler: listet diejenigen, die diese Metrik in den letzten 30 Tagen geliefert haben.
searchText—Durchsucht die Namen.
include_hiddentrue, falsefalseListet auch ausgeblendete Komponenten.
page, limitZahlen, limit bis 1001, 50Blättern.
sortorder, name, mit - davor für absteigendorderorder ist die Reihenfolge der Spalten im Export.

Jeder Eintrag hat die Referenz ref für den Parameter components, den name, das level, das übergeordnete Element (parent_ref, parent_name — zum Beispiel den Wechselrichter eines Strings), attributes (role eines Zählers, position eines Einstrahlungssensors, vendor), hidden und source: db für einen Eintrag der Komponenten der Anlage, store für eine Reihe, die gemessen wird, aber keinen solchen Eintrag hat.

Eine Anlage, die nicht existiert, und eine Anlage, die Sie nicht lesen können, antworten beide mit 404 park_not_found.

Vorlagensystem

Eine Vorlage ist eine gespeicherte Liste von Metriken mit Voreinstellungen für Schrittweite, Zeitraum, Werte, Zeitzone, Zusammenfassung der Anlagen, Seitengröße der Komponenten und Spaltenköpfe. Wofür Vorlagen da sind und wie Sie sie in der App verwalten, steht in der Anleitung zum Metric Export.

Eine Vorlage exportieren

GET /v1/export/series/template/{template_uid}

Die Route nimmt die Parameter des Exports außer metrics, components und values, die die Vorlage festlegt. Jeder Parameter, den Sie weglassen, nimmt die Voreinstellung der Vorlage; jeder Parameter, den Sie angeben, hat Vorrang.

curl --compressed "https://service.mirox.io/api/v1/export/series/template/CAFE1000CAFE?park=ABC123DEF456&window=previous_month&header=id" \
  -H "Authorization: Bearer YOUR_API_TOKEN" -o standard.csv
  • Eine Vorlage einer anderen Organisation antwortet mit 404 template_not_found.
  • Eine Legacy-Vorlage antwortet mit 400 template_is_legacy; params.legacy_url ist der Link, der sie exportiert.
  • Eine Spalte, deren Metrik nicht mehr verfügbar ist, wird leer unter ihrem Spaltenkopf exportiert, mit dem Hinweis metric_unavailable. Dasselbe gilt für eine Metrik Ihrer Organisation, wenn Sie als Extern exportieren (reason not_permitted).

Systemvorlagen

VorlageUIDSchrittweiteZeitraum
Standard-ExportCAFE1000CAFEdayprevious_month
Erweiterter ExportCAFE1001CAFEdayprevious_month
Erweiterter Export (Wechselrichter-Verfügbarkeit)CAFE1002CAFEdayprevious_month
Export EnergieverfügbarkeitCAFE1003CAFEdayprevious_month
Technischer BerichtABCD12340002dayprevious_month
WindturbinenCAFE1010CAFEdayprevious_month
BatteriespeicherCAFE1020CAFEdayprevious_month
EinstrahlungssensorenCAFE1030CAFE15minyesterday

Die ersten fünf lösen CAFE0000CAFE, CAFE0001CAFE, CAFE0002CAFE, CAFE0003CAFE und ABCD12340001 ab, die auf der Legacy-Route weiter funktionieren. Ihre Spalten stehen im Leitfaden zum Umstieg. Sie bieten die Schrittweiten day, week, month, quarter und year an; die ersten vier zusätzlich 15min und 1h.

Vorlagen verwalten

Vorlagen werden unter /v1/export/template gelistet, gelesen, erstellt, geändert und gelöscht. Das Lesen funktioniert mit einem Token Metric Export. Das Schreiben braucht die Organisationsrolle Admin, Moderator, Asset Manager (Technisch) oder Asset Manager (Kaufmännisch) und eine Anmeldung oder ein Token Voller Zugriff.

AnfrageZweck
GET /v1/export/templateVorlagen listen. view=current listet die Systemvorlagen dieser Seite und die Vorlagen Ihrer Organisation; view=legacy, der Standard, listet die gespeicherten Vorlagen wie bisher; view=all listet beide. kind=series oder kind=legacy filtert.
GET /v1/export/template/{template_uid}Eine Vorlage lesen.
POST /v1/export/templateEine Vorlage mit kind=series und dem Inhalt in spec erstellen. Ohne kind erstellt die Anfrage wie bisher eine Legacy-Vorlage aus metric_ids.
PUT /v1/export/template/{template_uid}Name, Beschreibung oder spec ändern. Die Art lässt sich nicht ändern.
DELETE /v1/export/template/{template_uid}Eine Vorlage löschen. Systemvorlagen lassen sich weder ändern noch löschen.

Die spec einer Vorlage:

FeldWerteStandard
items1 bis 40 Einträge, jeweils mit metric, optional values und labelerforderlich
stepeine Schrittweiteauto
valuesein Wertemodusauto
tzlocal, utclocal
windoweine Voreinstellungprevious_month
multi_park_aggmerge, splitmerge
lane_limit1 bis 10050
headername, idname
mismatchrefuse, sparserefuse

label ist der Spaltenname der Spalte bei header=name. Eine Metrik darf einmal vorkommen, und eine Vorlage enthält keine rohen Abfragen. Beim Speichern einer Vorlage muss jede Metrik exportierbar sein, und die Metriken müssen eine gemeinsame Schrittweite haben — unter mismatch=sparse muss jede irgendeine Schrittweite bedienen; andernfalls lautet die Antwort 422 spec_invalid, und params.problems nennt die Metrik und den Grund. Eine Vorlage läuft mit ihrem eigenen mismatch (die App zeigt es als Metriken mit anderem Schritt: Strikt oder Tolerant); der Parameter im Export-Link hat Vorrang.

Eine Legacy-Vorlage umwandeln

POST /v1/export/template/{template_uid}/convert
FeldWerteBedeutung
namebis zu 100 ZeichenDer Name der neuen Vorlage. Standard: der Name der Legacy-Vorlage, gefolgt von „(new)“.
dry_runtrue, falsetrue beantwortet die Zuordnung, ohne etwas zu erstellen.

Die Antwort listet mapped (legacy_id, metric, values, exactness: exact oder approximate) und unmapped (legacy_id, reason: formula, no_equivalent, report_value oder instant, und bis zu drei suggestions) und, sofern es kein Probelauf war, die neue template. Ein Probelauf antwortet mit 200, eine Umwandlung mit 201.

Die neue Vorlage exportiert Tage über den Vormonat. Die Legacy-Vorlage wird nie verändert. Zwei Legacy-Spalten, die denselben Zähler lesen, werden zu einer Spalte. 422 nothing_to_convert bedeutet, dass keine Spalte eine Entsprechung hat oder dass die Vorlage keine Legacy-Vorlage ist.

Grenzen

Ein Export wird innerhalb einer Anfrage beantwortet, daher ist seine Größe begrenzt. Jede Grenze wird geprüft, bevor Daten gelesen werden; eine zu große Anfrage wird sofort abgelehnt und sagt Ihnen, was passen würde.

GrenzeWert
Metriken je Anfrage20; in einer Vorlage 40
Rohe MetricsQL-Abfragen je Anfrage5, mit je 4 000 Zeichen und höchstens 500 Reihen je Anlage
Anlagen je Anfrage50
Komponenten je Metrik und Seitestandardmäßig 50, höchstens 100
Spalten400
Werte je Spalte180 000 — 125 Tage bei 1min, 625 Tage bei 5min, fünf Jahre bei 15min
Werte insgesamt1 800 000 (Zeilen × Spalten)
Zeitraum1827 Tage
Lesezugriffe auf den Messdatenspeicher je Anfrage1 500
Dauer50 Sekunden
Exporte je Benutzer und Stunde240
Gleichzeitig laufende Exporte3 je Organisation

Einen großen Export aufteilen

400 over_budget nennt in params, was gebraucht wurde und was erlaubt ist, und in hint den Ausweg: step, die nächstgröbere Schrittweite, die passt, und max_days, den längsten Zeitraum, der in der angefragten Schrittweite passt. Fragen Sie zuerst die Schätzung, wenn Sie Anfragen in einem Skript zusammenstellen; ihr per_step listet die Größe für jede Schrittweite.

Wenn weder eine gröbere Schrittweite noch ein kürzerer Zeitraum das ist, was Sie möchten, teilen Sie den Export auf:

Aufteilen nachWie
ZeitEine Anfrage je Monat oder Quartal. Nutzen Sie die Kalenderparameter (year=2026&month=7) und fügen Sie die Dateien zusammen.
AnlageEine Anfrage je Anlage oder Portfolio.
MetrikKomponenten-Metriken in eigenen Anfragen. Eine Komponenten-Metrik auf einer Anlage mit 200 Wechselrichtern sind 200 Spalten.
Seitelane_page=1, 2, … für die Komponenten einer Metrik.

Manche Metriken werden für jeden Tag aus mehreren Quellen ermittelt, allen voran plant.production_reported (Produktion, aufgelöst). Sie brauchen in jeder Schrittweite deutlich mehr Lesezugriffe auf den Messdatenspeicher als ein Zählerstand. Eine Anfrage oder eine Vorlage, die eine solche Metrik enthält, erreicht derzeit etwa neun Anlagenmonate: eine Anlage über neun Monate oder neun Anlagen über einen Monat. Eine Schrittweite von einer Woche oder länger weitet den Zeitraum auf ganze Intervalle aus, und der ausgeweitete Zeitraum zählt. Teilen Sie solche Exporte nach Zeit oder nach Anlage auf, oder exportieren Sie die Metrik in einer eigenen Anfrage.

429 busy und 429 rate_limited tragen den Header Retry-After mit den Sekunden, die zu warten sind.

Fehler

Ein Fehler der Routen dieser Seite hat diese Form:

{
  "detail": {
    "code": "step_not_served",
    "message": "The step is not served by every requested metric.",
    "params": {"step": "1h", "metrics": {"plant.grid_power": ["1min", "5min", "15min"]}},
    "hint": {"offered_common": ["1min", "5min", "15min"]}
  }
}

code ist stabil und für Programme gedacht. message ist ein englischer Text für Menschen. params sagt, was falsch war, hint, was funktionieren würde.

StatuscodeBedeutungparams und hint
400scope_requiredWeder park noch portfolio wurde angegeben.hint.example
400unknown_metricEine Metrik-ID existiert nicht.params.ids; hint.suggestions mit ähnlichen IDs
400legacy_metric_idEine ID des bisherigen Exports hat keine Entsprechung in der Sammlung.params.id, params.legacy_url; hint.reason, hint.closest, hint.pending, hint.legacy_url
400metric_not_exportableDie Metrik existiert, ist aber keine Zeitreihe, die Sie exportieren können.params.id, params.reason: draft, planned, no_source, events oder master
400window_conflictDer Zeitraum wurde auf mehr als eine Art angegeben.params.families
400window_invalidDer Zeitraum ist ungültig.params.reason: end_before_start, start_in_future, before_2020, too_long, day_requires_month, start_required oder invalid_date
400step_not_servedEine Metrik bietet die angefragte Schrittweite nicht an.params.metrics mit den Schrittweiten jeder Metrik; hint.offered_common
400no_common_stepDie Metriken haben keine gemeinsame Schrittweite.params.metrics; hint.split
400over_budgetDer Export ist größer als eine Grenze.params.values, limit, queries, query_limit, columns, column_limit, parks; bei mehr als 50 Anlagen params.parks und park_limit; bei einer rohen Abfrage params.series; hint.step, hint.max_days, hint.lane_limit, hint.reduce
400unknown_laneEine Komponentenreferenz gehört zu keiner der Anlagen.params.refs
400expr_invalidEine rohe Abfrage kann nicht ausgeführt werden.params.expr, params.reason: empty, syntax (mit detail), too_long, too_large, store (mit dem detail der Datenbank) oder parser_unavailable
400expr_forbidden_labelEine rohe Abfrage nennt selbst eine Anlage, einen Park oder eine Organisation.params.expr, params.labels
400expr_too_many_seriesEine rohe Abfrage liefert an einer Anlage mehr als 500 Reihen.params.expr, params.park, params.series, params.limit; hint.reduce
400separator_conflictSpaltentrennzeichen und Dezimaltrennzeichen sind gleich.—
400invalid_datetime_formatdatetime_format ist kein gültiges Muster.hint.example
400template_is_legacyDie Vorlage ist eine Legacy-Vorlage.params.legacy_url
403no_accessible_parksSie können keine der gewählten Anlagen lesen.—
403metric_forbiddenEine Metrik Ihrer Organisation wurde mit der Organisationsrolle Extern angefragt.params.ids
404template_not_found, park_not_foundDie Vorlage oder die Anlage existiert nicht, oder Sie können sie nicht lesen.—
409name_conflictEine Vorlage mit diesem Namen existiert bereits.params.name
422—Ein Parameter hat einen Wert außerhalb seiner Liste, oder metrics enthält mehr als 20 IDs.das Feld und der Grund
422spec_invalid, use_spec, nothing_to_convertEine Vorlage lässt sich so, wie sie gesendet wurde, nicht speichern oder umwandeln.params.problems
429busyEs laufen zu viele Exporte.Header Retry-After
429rate_limitedDas stündliche Kontingent ist aufgebraucht.Header Retry-After
502store_errorDer Messdatenspeicher hat mit einem Fehler geantwortet. Es wurde nichts exportiert; ein Wert wird nie durch null ersetzt.params.metric
503store_timeoutDer Messdatenspeicher hat nicht rechtzeitig geantwortet.hint.step mit einer gröberen Schrittweite

401 bedeutet, dass das Token fehlt, abgelaufen oder widerrufen ist.

IDs des bisherigen Exports

Der Parameter metrics akzeptiert auch die IDs des bisherigen Exports, etwa energy_grid_daily oder raw_grid_power. Eine ID mit Entsprechung wird in ihre Metrik übersetzt, in dem Wertemodus, der der bisherigen Zahl am nächsten kommt, und der Hinweis legacy_id_mapped sagt, welche Metrik geantwortet hat und ob die Zahl dieselbe ist (exact) oder dieselbe Größe auf bessere Weise gelesen wird (approximate).

Eine ID ohne Entsprechung antwortet mit 400 legacy_metric_id. hint.reason sagt, warum, hint.closest nennt die nächstliegende Metrik, sofern es eine gibt, hint.pending nennt die Metrik, die sie künftig tragen soll, und legacy_url ist der Link des bisherigen Exports, der die ID weiterhin liefert. Bei mehr Anlagen, als ein Link nennen kann, nennt legacy_url die erste Anlage, und params.legacy_url_scope ist first. Eine Komponenten-ID einer Batterie-Ebene hat keinen Link des bisherigen Exports; hint.legacy_route ist dann none. Der Leitfaden zum Umstieg listet jede ID.

Excel und Skripte

  • Metric Export für Excel — Rezepte und die Power-Query-Verbindung mit dem Header Authorization
  • Externer Berichtsgenerator — ein vollständiges Python-Beispiel

Verwandte Funktionen

  • Metric Export — die Seite Daten-Export
  • Umstieg auf den Metric Export — alte IDs, neue Metriken und was sich ändert
  • Legacy-Export-API — die bisherigen Export-Links
  • Metriken — eigene Metriken definieren und exportieren
  • API-Tokens — das Token Metric Export erstellen
  • API-Übersicht — die interaktive Referenz aller Routen
Prev
Metric Export
Next
Umstieg auf den Metric Export
© 2026 Mirox Verwaltungs GmbH. Alle Rechte vorbehalten. | Datenschutz