Die Daten sind nach Anlage organisiert. Diese Seite erklärt die Grundbegriffe, listet die Endpoints auf und zeigt zwei typische Responses: Momentanleistung und Energiesummen.
Grundbegriffe
- Anlage. Die Einheit jedes Requests. Jede Anlage hat eine stabile
plant_id(UUID), einen Namen, ein Land und eine IANA-Zeitzone. - Gateway. Das Gerät vor Ort, das die Daten der Anlage sendet, identifiziert durch die auf dem Gerät aufgedruckte Seriennummer (zum Beispiel
2527-35520819PH). Eine Anlage hat ein oder mehrere Gateways. Seriennummern erscheinen in der Konnektivität, im Ladezustand der Batterien und in den Alarmen; alle übrigen Daten beziehen sich auf die Anlage. - Batterien. Der Ladezustand wird pro Gateway geliefert, als Liste
batteries: [{serial, soc_pct}]. Er wird nie über Gateways gemittelt: Bei Batterien unterschiedlicher Kapazität wäre ein Mittelwert irreführend. - Anlagen mit mehreren Gateways. PV- und Batterieleistung sind die Summe über die Gateways. Netz- und Verbrauchsleistung sind die des gemeinsamen Netzanschlusses.
- Zeiträume. Historische Daten werden mit einem festen
periodabgefragt, nicht mit einem freien Datumsbereich:
| Daten | Zeitraum | Fenster |
|---|---|---|
| Energie | day, week, month |
Kalenderfenster in der Zeitzone der Anlage: ab lokaler Mitternacht (Tag), Montag (Woche) oder dem 1. (Monat) bis jetzt |
| Leistungsreihe | hour, day |
gleitend: letzte 60 Minuten, letzte 24 Stunden |
| Alarmhistorie | day, week, month |
gleitend: letzte 24 Stunden, 7 Tage, 30 Tage |
Endpoints für mehrere Anlagen (Bulk)
Verwenden Sie diese drei Endpoints für jede periodische Abfrage mehrerer Anlagen. Sie liefern für eine Seite von bis zu 100 Anlagen genau das, was der Endpoint pro Anlage für jede einzelne liefert, und zählen als ein einziger Request.
| Endpoint | Scope | Parameter | Liefert |
|---|---|---|---|
GET /v1/telemetry/latest |
read:telemetry | plant_ids, limit (1–100), cursor |
letzte Leistung und Ladezustand |
GET /v1/connectivity |
read:plants | plant_ids, limit (1–100), cursor |
online / offline pro Anlage und Gateway |
GET /v1/energy/totals |
read:energy | period, plant_ids, limit (1–100), cursor |
Energiesummen |
Ohne plant_ids umfassen sie alle für Ihren Client sichtbaren Anlagen. Nicht sichtbare Kennungen werden ohne Fehler ausgelassen. Die Ergebnisse sind nach plant_id sortiert.
Endpoints pro Anlage
| Endpoint | Scope | Parameter | Liefert |
|---|---|---|---|
GET /v1/plants |
read:plants | limit (1–200), cursor |
Anlagen, paginiert |
GET /v1/plants/{plant_id} |
read:plants | — | Anlagendetails mit Adresse |
GET /v1/plants/{plant_id}/connectivity |
read:plants | — | online / offline pro Anlage und Gateway |
GET /v1/plants/{plant_id}/telemetry/latest |
read:telemetry | — | letzte Leistung und Ladezustand |
GET /v1/plants/{plant_id}/telemetry/series |
read:telemetry | period (hour, day), measures |
Leistungsreihe |
GET /v1/plants/{plant_id}/energy/totals |
read:energy | period (day, week, month) |
Energiesummen |
GET /v1/plants/{plant_id}/energy/series |
read:energy | period (day, month), include_previous |
Energie pro Teilzeitraum |
GET /v1/plants/{plant_id}/alarms/active |
read:alarms | — | aktuell offene Alarme |
GET /v1/plants/{plant_id}/alarms/history |
read:alarms | period (day, week, month), severity |
im Fenster ausgelöste Alarme |
Beispiel: Momentanleistung
GET /v1/plants/7b0728a9-853c-4b31-8446-a4eb00607566/telemetry/latest
{
"plant_id": "7b0728a9-853c-4b31-8446-a4eb00607566",
"timestamp": "2026-10-13T12:21:00Z",
"measurements": {
"grid_power_w": 0,
"battery_power_w": 18,
"batteries": [ { "serial": "2527-35520819PH", "soc_pct": 100.0 } ],
"pv_power_w": 2521,
"load_power_w": 2503
}
}
Mittag, Batterie voll: Die PV-Anlage deckt den Verbrauch, kein Austausch mit dem Netz. telemetry/series liefert dieselben Felder als Liste von samples, jeweils mit eigenem timestamp: einen Wert pro Minute mit period=hour, einen Wert alle 15 Minuten mit period=day (angegeben in resolution_seconds). measures schränkt die Felder ein, zum Beispiel measures=pv_power_w,load_power_w.
Beispiel: Energiesummen
GET /v1/plants/7b0728a9-853c-4b31-8446-a4eb00607566/energy/totals?period=day
{
"plant_id": "7b0728a9-853c-4b31-8446-a4eb00607566",
"period": "day",
"period_start": "2026-10-13T00:00:00+02:00",
"period_end": "2026-10-13T14:23:15+02:00",
"totals_wh": {
"consumed": 4950, "produced": 10380,
"imported": 100, "exported": 0,
"charged": 8070, "discharged": 3350
}
}
| Feld | Bedeutung |
|---|---|
produced |
von der PV-Anlage erzeugte Energie |
consumed |
von den Verbrauchern des Standorts genutzte Energie, aus jeder Quelle |
imported / exported |
aus dem Netz bezogene / ins Netz eingespeiste Energie |
charged / discharged |
in die Batterien geladene / aus ihnen entladene Energie |
Ein Wert ist null, wenn die Anlage für diese Größe im Fenster keine Daten geliefert hat. energy/series teilt dasselbe Fenster in Teilzeiträume von einer Stunde (resolution_seconds); include_previous=true fügt den gesamten vorherigen Tag oder Monat hinzu. Die Summe einer Reihe entspricht den Summen über dasselbe Fenster.
Konnektivität und Alarme
Ein Gateway ist online, wenn es in den letzten 5 Minuten Daten gesendet hat, sonst offline; die Anlage ist online, wenn mindestens ein Gateway online ist. unknown bedeutet, dass der Status nicht bestimmt werden konnte, zum Beispiel bei einer Anlage ohne Gateway. last_seen_at deckt die letzten 7 Tage ab und ist darüber hinaus null.
Jeder Alarm enthält code und message des Geräts, raised_at, cleared_at und source, die auslösende Komponente (Gateway, Wechselrichter, Zähler). Der Schweregrad steht in severity:
severity |
Bedeutung |
|---|---|
W |
warning (Warnung) |
A |
alarm (Alarm) |
F |
fault (Störung) |
Behandeln Sie jeden anderen Wert als relevant. Der Parameter severity filtert ohne Unterscheidung von Groß- und Kleinschreibung (severity=F). alarms/active liefert die noch offenen Alarme, ohne cleared_at; in der Historie ist cleared_at bei einem noch offenen Alarm null.