Zustimmungsfluss im Detail
Nach dem Anlegen eines Zählers fließen keine Daten, bis Sie Zustimmung anfordern und der Netzbetreiber (VNB) sie erteilt. Dieser Artikel dokumentiert die status-Werte eines Zählers, das empfohlene Polling-Muster und externe Ereignisse, die eine bestehende Zustimmung beenden können.
status-Werte eines Zählers
Das status-Feld zeigt den aktuellen Stand der Zustimmung:
status |
Bedeutung |
|---|---|
not_connected |
Es wurde keine Zustimmung angefordert oder der Zähler wurde getrennt. |
pending |
Die Anfrage wurde an den VNB gesendet. Wir warten auf die erste Antwort. |
processing |
Der VNB hat die Anfrage bestätigt, der Kunde muss aber noch im Portal des VNB bestätigen. |
connected |
Zustimmung ist aktiv. Daten fließen. |
failed |
Der VNB hat abgelehnt oder der Kunde hat nicht rechtzeitig bestätigt. Korrigieren Sie den Zähler und versuchen Sie es erneut. |
disconnecting |
Eine Aufhebung wurde gesendet. Der VNB hat sie noch nicht bestätigt. |
unknown |
Der Zustand ließ sich nicht zuordnen. Tritt im Normalbetrieb nicht auf; behandeln Sie ihn wie einen unbekannten Wert und pollen Sie weiter. |
Nur Zähler mit connected liefern Daten. processing ist normal: je nach Netzbetreiber hat der Kunde mehrere Tage Zeit, im Portal des VNB zu bestätigen.
Zustimmung anfordern
curl -X POST https://energiedaten.at/api/v1/smart-meters/«meter.id»/consent \
-H "Authorization: Bearer $API_TOKEN" \
-H "Energiedaten-Version: 2026-05-08" \
-H "Idempotency-Key: $(uuidgen)"
Der Aufruf ist asynchron. Die Antwort bestätigt, dass die Zustimmungsnachricht versendet wurde. Sie bestätigt nicht, dass Zustimmung erteilt wurde. Pollen Sie den status des Zählers, um den Fortschritt zu verfolgen.
Polling-Muster
Die meisten Zustimmungen sind innerhalb weniger Stunden abgeschlossen. Manche VNBs antworten innerhalb von Minuten; Fälle, in denen der Kunde im Portal des VNB bestätigen muss, können deutlich länger dauern. Verwenden Sie ein Backoff:
import time, requests
def wait_for_consent(meter_id: str, token: str, timeout_hours: int = 2):
url = f"https://energiedaten.at/api/v1/smart-meters/{meter_id}"
headers = {"Authorization": f"Bearer {token}"}
terminal = {"connected", "failed"}
elapsed = 0
interval = 10 # erste Minute: alle 10 Sekunden
while elapsed < timeout_hours * 3600:
meter = requests.get(url, headers=headers).json()["data"]
if meter["status"] in terminal:
return meter["status"]
time.sleep(interval)
elapsed += interval
if elapsed >= 60:
interval = 60
return "timeout"
async function waitForConsent(meterId, token, timeoutHours = 2) {
const url = `https://energiedaten.at/api/v1/smart-meters/${meterId}`
const terminal = new Set(['connected', 'failed'])
let elapsed = 0
let interval = 10_000
while (elapsed < timeoutHours * 3_600_000) {
const res = await fetch(url, { headers: { Authorization: `Bearer ${token}` } })
const { data: meter } = await res.json()
if (terminal.has(meter.status)) return meter.status
await new Promise((r) => setTimeout(r, interval))
elapsed += interval
if (elapsed >= 60_000) interval = 60_000
}
return 'timeout'
}
Empfohlenes Backoff: alle 10 Sekunden in der ersten Minute, dann alle 60 Sekunden für eine Stunde, danach einmal pro Stunde. Schneller pollen führt nicht dazu, dass der VNB schneller antwortet — es verbraucht nur Ihr Stundenkontingent. Das Rate-Limit wird pro Stunde gezählt: 100 Anfragen im Community-Plan, 500 im Light-Plan, 2.000 im Plus-Plan und 5.000 im Pro-Plan. BYO Pro und Enterprise liegen darüber.
Externe Aufhebungen
Ein Zähler in connected kann ohne Zutun Ihrerseits zurück nach not_connected wechseln:
- Der Kunde widerruft die Zustimmung direkt beim VNB.
- Der VNB hebt die Zustimmung auf, etwa nach einem Zählerwechsel oder -ausbau.
Beobachten Sie zwischen den Polls Wechsel weg von connected. Wenn Ihre Anwendung auf den Datenstrom angewiesen ist, behandeln Sie jeden anderen Status als Unterbrechung und melden Sie ihn an die zuständige Stelle.