Glossar
Ein Nachschlagewerk für die Fachbegriffe und projektspezifischen Begriffe, die in
smard-cli verwendet werden. Die SMARD-Domäne ist deutsch; dieses Glossar nennt den
englischen Begriff aus CLI und Bibliothek (sofern es einen gibt) neben dem deutschen Original.
Übersetzungstabelle (die Bezeichnungen aus dem
filters-Katalog). Die Filterbezeichnungen der CLI sind deutsch, mit einer englischen Erläuterung in Klammern:
Deutsch Englisch Stromerzeugung (electricity) generation Stromverbrauch (electricity) consumption Residuallast residual load Großhandelspreis wholesale price Prognose forecast Braunkohle / Steinkohle lignite / hard coal Kernenergie nuclear Wasserkraft / Pumpspeicher hydropower / pumped storage Erdgas natural gas Photovoltaik photovoltaics
SMARD & die Plattform
SMARD – Strommarktdaten. Die deutsche Strommarkt-Datenplattform der
Bundesnetzagentur unter smard.de. Sie veröffentlicht
Stromerzeugung, Stromverbrauch, Residuallast und Großhandelspreise.
Bundesnetzagentur (BNetzA). Die deutsche Regulierungsbehörde für die Märkte Strom, Gas, Telekommunikation, Post und Eisenbahn und Betreiberin von SMARD.
Chart-Data-API. Die offene HTTP-Schnittstelle ohne Authentifizierung, die dieses Tool
kapselt. Sie ist keine Abfrage-API, sondern ein statischer Dateibaum: Für jede
Kombination aus (Filter, Region, Auflösung) veröffentlicht SMARD einen Index der
verfügbaren Fenster-Zeitstempel sowie eine Datendatei pro Fenster. Die Basis-URL ist
https://www.smard.de.
Nur lesend, ohne Authentifizierung. Die Chart-Data-Endpoints benötigen keinen
API-Schlüssel. Dieser Client führt ausschließlich GET-Anfragen aus und schreibt nie.
Es wird nie ein Credential-Header erzeugt. Weiterleitungen werden nicht verfolgt –
ein 3xx erscheint als SmardApiError –, und es werden nur Basis-URLs mit
http:/https: akzeptiert (durchgesetzt im Standard-Transport). Diese bewussten
Abweichungen vom Workspace-Blueprint beschreibt DEVELOPING.md im Abschnitt „Design notes“.
Das Anfrage-Tripel
Fast jeder Datenabruf wird über drei Koordinaten adressiert – einen Filter, eine Region und eine Auflösung – sowie, für ein bestimmtes Fenster, einen Zeitstempel.
Filter. Eine numerische Reihen-ID, die festlegt, welche Zeitreihe Sie abrufen
(z. B. 410 = Gesamtnetzlast, 4068 = Erzeugung Photovoltaik,
4169 = Großhandelspreis DE/LU). Die API akzeptiert jede ganzzahlige Filter-ID,
deshalb akzeptieren CLI und Client jede ganze Zahl; der mitgelieferte FILTERS-Katalog
(siehe smard filters) dokumentiert die bekannten IDs, ist aber nicht vollständig.
Region. Ein Code für ein Marktgebiet oder eine Netzregion. Siehe smard regions; die
gültige Menge (RegionValues) ist DE, AT, LU, DE-LU, DE-AT-LU, 50Hertz, Amprion,
TenneT, TransnetBW, APG, Creos.
Auflösung (resolution). Die zeitliche Granularität einer Reihe: einer der Werte hour,
quarterhour, day, week, month, year (ResolutionValues). Siehe
smard resolutions.
Zeitstempel (timestamp). Ein Wert in Epoch-Millisekunden, der den Beginn eines
Datenfensters markiert. Gültige Werte liefert smard timestamps; einen davon übergeben Sie an
series. Jede Datendatei deckt ein festes Fenster ab (z. B. eine Woche mit Stundenwerten).
Filtergruppen
Der FILTERS-Katalog ordnet jeden dokumentierten Filter einer von vier Gruppen zu
(smard filters --group <group>):
generation (Stromerzeugung). Tatsächliche Stromerzeugung nach Energieträger, z. B.
Braunkohle (1223), Kernenergie (1224), Wind Offshore
(1225), Wasserkraft (1226), Biomasse (4066), Wind Onshore
(4067), Photovoltaik (4068), Steinkohle (4069),
Pumpspeicher (4070), Erdgas (4071).
consumption (Stromverbrauch). Gesamtnetzlast (410), Residuallast
(4359) und Verbrauch der Pumpspeicher (4387).
forecast (Prognose). Prognostizierte Erzeugung, z. B. Wind Offshore (3791),
Wind Onshore (123), Photovoltaik (125), Wind und PV zusammen (5097) sowie
gesamt (122).
price (Großhandelspreis). Day-Ahead-Großhandelspreise für Deutschland/Luxemburg
(4169) und benachbarte Gebotszonen (z. B. Österreich 4170,
Frankreich 254, Niederlande 256, Schweiz 259). Seit dem 1. Oktober 2025 bildet der
Day-Ahead-Markt einen Preis je Viertelstunde, und die hour-Reihe enthält den Mittelwert der
vier Viertelstundenpreise (davor wiederholt die quarterhour-Reihe den Stundenpreis).
Die Preise des Folgetags erscheinen nach der Auktion zur Mittagszeit, ab dem Nachmittag enthält
das neueste Zeitfenster also bereits Werte von morgen.
Regionen im Detail
DE / AT / LU. Deutschland, Österreich und Luxemburg.
DE-LU. Die deutsch-luxemburgische Gebotszone, das Preisgebiet der meisten aktuellen Großhandelspreis-Reihen.
DE-AT-LU. Die frühere gemeinsame Gebotszone Deutschland–Österreich–Luxemburg (2018 aufgeteilt), verwendet für historische Daten.
Regelzonen der Übertragungsnetzbetreiber. 50Hertz, Amprion, TenneT und
TransnetBW sind die vier deutschen Regelzonen der Übertragungsnetzbetreiber.
APG / Creos. Die Übertragungsnetzbetreiber Österreichs (Austrian Power Grid) und Luxemburgs (Creos).
Auflösungen
hour / quarterhour / day / week / month / year. Die unterstützten
Aggregationsintervalle einer Reihe. quarterhour (15 Minuten) ist zugleich die
Granularität der ausführlicheren table_data-Antwort.
Datenstrukturen
Index (TimestampIndex). Die Antwort einer Anfrage an index_{resolution}.json:
{ timestamps: number[] } – der Beginn jedes verfügbaren Datenfensters in
Epoch-Millisekunden. Bereitgestellt über client.timestamps() / smard timestamps.
series (SeriesResult). Die Antwort einer chart_data-Anfrage:
{ meta_data, series }, wobei series ein Array von SeriesPoints ist. Rückgabewert von
client.series() / client.latest().
SeriesPoint. Ein einzelnes Tupel [timestampMs, value]. Das zweite Element ist
bei einer Lücke null (keine Daten für diesen Punkt).
SeriesMetaData (meta_data). { version, created } – die Datenversion und ihr
Erstellungszeitpunkt, die eine Reihen- oder Tabellenantwort begleiten.
table_data (TableResult). Eine ausführlichere Viertelstunden-Antwort
(smard table). Ihr series ist ein Array von TableSeriesEntry-Objekten, die die
eigentlichen Punkte jeweils in einem values-Array von TablePoints verschachteln.
TablePoint. { timestamp, versions } – ein Viertelstunden-Punkt mit mehreren
versionierten Werten.
TableVersion. Ein versionierter Wert eines Tabellenpunkts: { value, name }. Beachten
Sie, dass name die Datenversion bezeichnet und zur Laufzeit eine Zahl ist, keine
Bezeichnung als Zeichenkette. Beide Felder können null sein.
Einheiten und Bedeutung
MWh – Megawattstunde. Die Einheit der Erzeugungs- und Verbrauchsreihen (Energie pro Fenster). Hinweis: Im JSON sind die Werte Zahlen ohne Einheit; die Einheit ergibt sich aus dem gewählten Filter.
EUR/MWh – Euro pro Megawattstunde. Die Einheit der Großhandelspreis-Filter
(die Gruppe price).
Residuallast. Gesamtnetzlast abzüglich der Erzeugung aus fluktuierenden
erneuerbaren Energien (Wind + Solar) – die Last, die andere Quellen decken müssen.
Filter 4359.
Gesamtstromverbrauch. Der gesamte Stromverbrauch in einer Region. Filter 410.
Fenster / Datendatei. Der feste Zeitraum, den eine Datendatei *_{timestamp}.json
abdeckt (z. B. eine Woche mit Stundenwerten). Für die neuesten Daten rufen Sie den Index
ab, nehmen den letzten Zeitstempel und laden dann diese Datei – genau das erledigt
latest in einem Aufruf.
Befehle & Methoden
timestamps. smard timestamps <filter> <region> <resolution> /
client.timestamps(...) – listet die verfügbaren Fenster-Zeitstempel einer Reihe.
series. smard series <filter> <region> <resolution> <timestamp> /
client.series(...) – ruft die Daten eines Fensters ab.
latest. smard latest <filter> <region> <resolution> /
client.latest(...) – Komfortfunktion, die den Index liest, den neuesten Zeitstempel
wählt und dieses Fenster in einem Aufruf abruft.
table. smard table <filter> <region> <timestamp> /
client.tableData(...) – Viertelstunden-table_data für ein Fenster. Die gültigen
Zeitstempel dafür sind eine andere Menge als die von timestamps (das
chart_data-Fenster auflistet); für table_data-Zeitstempel gibt es keinen
Discovery-Endpoint, daher kann ein table-Aufruf mit 404 scheitern, obwohl der
Zeitstempel für series gültig ist.
filters / regions / resolutions. Katalogbefehle, die die dokumentierten Filter-IDs
(optional nur eine --group), die gültigen Regionscodes und die gültigen Auflösungswerte
ausgeben – lokal aus den mitgelieferten Enums, ohne Netzwerkaufruf.
Bibliothek & Interna. Begriffe zum TypeScript-Client und seinen Interna –
SmardClient, die Request-Engine, Transport, Retry/Backoff, Fehlertypen,FILTERS/RegionValues/ResolutionValuesund die Validierungsgrenze – stehen jetzt in DEVELOPING.md.