Zum Hauptinhalt springen

Stromtarife

Indem du Stromtarife für Netzbezug, Einspeisung und CO₂-Intensität konfigurierst kann evcc deine Ersparnis berechnen und Ladevorgänge automatisch auf günstige Zeiten verschieben.

Fester Strompreis

Der einfachste Fall sind feste Werte für Netzbezug (grid) und Einspeisung (feedin).

tariffs:
currency: EUR # (default EUR)
grid:
type: fixed
price: 0.294 # EUR/kWh
feedin:
type: fixed
price: 0.08 # EUR/kWh
co2:
...

Zeitabhängiger Strompreis

Stromtarife mit festen zeitabhängigen Preisen können ebenfalls definiert werden.

tariffs:
grid:
type: fixed
price: 0.294 # EUR/kWh (default)
zones:
- days: Mo-Fr
hours: 2-5
price: 0.2 # EUR/kWh
- days: Sa,So
price: 0.15 # EUR/kWh

Unter zones kann eine Liste von Preiszonen definiert werden. Der Geltungszeitraum wird durch days und/oder hours definiert. Ist für einen Zeitpunkt keine Preiszone definiert, wird der Standardpreis verwendet.

Der Befehl evcc tariff zeigt die Preisliste der kommenden Stunden an.

$ ./evcc tariff

grid:
From To Price/Cost
2026-05-03 00:00:00 2026-05-03 01:00:00 0.399
...

feedin:
From To Price/Cost
2026-05-03 00:00:00 2026-05-03 01:00:00 0.080
...

Börsenstrompreise

Du hast einen Vertrag der nach Börsenpreisen berechnet wird? Für viele Anbieter haben wir eine eigene Schnittstelle angebunden (z.B. Awattar oder Tibber). Die Liste aller verfügbaren Anbieter findest du im Abschnitt Dynamischer Strompreis.

Gebühren und Steuern

Falls dein Anbieter nicht dabei ist, kannst du deinen Tarif auf Basis der Day-Ahead-Preise der europäischen Strombörse selbst berechnen. Die Energy-Charts API vom Fraunhofer ISE liefert aktuelle und prognostizierte Preise. Diese werden von fast allen Anbietern als Grundlage für die Berechnung ihrer Energiepreise verwendet.

tariffs:
grid:
type: template
template: energy-charts-api
bzn: DE-LU # Gebotszone, siehe https://api.energy-charts.info/#/prices/day_ahead_price_price_get
charges: 0.22 # Fester Aufschlag pro kWh (z.B. 20ct Netzentgelt, 2ct Gebühren)
tax: 0.19 # Prozentualer Aufschlag (z.B. 19% MwSt.)

Die Schnittstelle liefert die Börsenpreise in Euro ohne lokale Gebühren oder Steuern. Mit den Parametern charges und tax kannst du einen zusätzlichen festen und prozentualen Aufschlag pro kWh definieren. Die genauen Werte kannst du deinem Vertrag entnehmen.

Eigene Berechnungsformeln

Falls das Modell des festen und prozentualen Aufschlags nicht ausreicht, kannst du eine individuelle Formel definieren. Verwende dafür den formula Parameter.

tariffs:
grid:
type: template
template: energy-charts-api
bzn: DE-LU
charges: 0.22 # Fester Aufschlag pro kWh
tax: 0.19 # Prozentualer Aufschlag
formula: math.Min(0.5, (price + charges) * (1 + tax))

Im obigen Beispiel wird eine Preisobergrenze von 50 ct/kWh definiert. Die Formel wird in Go-Syntax geschrieben. Neben den Werten price, charges und tax steht dir die math-Bibliothek zur Verfügung.

Börsenpreise mit Zeitkomponente

Die Formel wird für den aktuellen Strompreis und jeden Zeitslot in der Prognose ausgeführt. Ist die Berechnung zeitabhängig, kannst du über ts auch auf die Zeit des jeweiligen Slots zugreifen.

tariffs:
grid:
type: template
template: energy-charts-api
bzn: DE-LU
formula: extra := 0.1; if ts.Hour() < 6 || ts.Hour() > 22 { extra = 0.0 }; price + extra

In diesem Beispiel gibt es einen Aufschlag von 10 ct/kWh. In der Zeit von 22:00 Uhr bis 06:00 Uhr wird kein Aufschlag berechnet. Der Fantasie sind hier keine Grenzen gesetzt.

Der formula Mechanismus funktioniert auch für viele andere Datenquellen. Schau dir die Konfigurationsoptionen der jeweiligen Quellen an.

Der CLI Befehl evcc tariff ist hilfreich um die Berechnungsergebnisse zu überprüfen.

CO₂ Vorhersage

Electricity Maps

Commercial API

CO₂-Daten für viele Länder von https://electricitymaps.com/. Der 'Free Personal Tier' beinhaltet leider keine Prognosedaten. Dafür benötigst du einen kommerziellen Account von https://api-portal.electricitymaps.com/. Kostenloser Testmonat verfügbar.

tariffs:
co2:
type: template
template: electricitymaps
uri: https://api-access.electricitymaps.com/2w...1g/ # HTTP(S) Adresse
token:
zone: DE # siehe https://api.electricitymap.org/v3/zones

Free API

CO₂-Daten für viele Länder von https://electricitymaps.com/. Der 'Free Personal Tier' beinhaltet leider keine Prognosedaten. Dafür benötigst du einen kommerziellen Account von https://api-portal.electricitymaps.com/. Kostenloser Testmonat verfügbar.

tariffs:
co2:
type: template
template: electricitymaps-free
token:
zone: DE # siehe https://api.electricitymap.org/v3/zones

Grünstromindex

Regionale Emissionsdaten von https://gruenstromindex.de. Nur für Deutschland verfügbar.

tariffs:
co2:
type: template
template: grünstromindex
zip:

National Grid ESO

Nur für Großbritannien verfügbar.

tariffs:
co2:
type: template
template: ngeso
region: 1 # Ungenauer als die Verwendung eines Postleitzahl. Siehe https://carbon-intensity.github.io/api-definitions/#region-list (optional)
postalcode: SW1 # Postleitzahl z.B. RG41 oder SW1 oder TF8. Nicht die vollständige Postleitzahl, nur die ersten Stellen. (optional)

Dynamischer Strompreis

Eigenes Plugin

Über mit dem Plugin Mechanismus kann eine eigene Tarif-Quelle angebunden werden.

Beispiel: Aktueller Preis via HTTP

tariffs:
grid:
type: custom
price:
source: http
uri: https://example.com/api/price

Der vom Endpunkt zurückgegebene Wert wird als Netzbezugspreis verwendet.

Beispiel: Vorhersagen via HTTP

tariffs:
grid:
type: custom
forecast:
source: http
uri: https://api.allinpower.nl/troodon/api/p/spot_market/prices/?product_type=ELK
jq: '[.timestamps, .prices] | transpose | map({ "start": (.[0] | strptime("%Y-%m-%dT%H:%M:%S.%f%z") | strftime("%Y-%m-%dT%H:%M:%SZ")), "end": (.[0] | strptime("%Y-%m-%dT%H:%M:%S.%f%z") | mktime + 3600 | strftime("%Y-%m-%dT%H:%M:%SZ")), "price": .[1] }) | tostring'

Das Plugin muss eine JSON-Struktur zurückgeben, welches eine Liste von Zeiträumen und Preisen enthält. Die Datumsfelder müssen in der Form YYYY-MM-DDTHH:MM:SSZ und der Preis in der korrekten Währungseinheit (bspw. EUR) angegeben werden. Siehe nachfolgendes Beispiel:

[
{ "start": "2025-01-01T00:00:00Z", "end": "2025-01-01T01:00:00Z", "price": 25.0 },
{ "start": "2025-01-01T01:00:00Z", "end": "2025-01-01T02:00:00Z", "price": 30.0 },
]

Das Plugin wird einmal pro Stunde aktualisiert.

Amber Electric

Nur für Australien verfügbar.

tariffs:
grid:
type: template
template: amber
token: # optional
siteid: # optional
channel: # optional

Awattar

Nur für Deutschland und Österreich verfügbar.

tariffs:
grid:
type: template
template: awattar
region: AT # optional

Energinet

Nur für Dänemark verfügbar.

tariffs:
grid:
type: template
template: energinet
region: dk1 # optional

Enever

Nur für Niederlande verfügbar.

tariffs:
grid:
type: template
template: enever
token:
provider:

ENTSO-E

Day-ahead-Preise für den europäischen Strommarkt. Siehe https://transparency.entsoe.eu für weitere Informationen. Basis für viele dynamische Tarife.

tariffs:
grid:
type: template
template: entsoe
securitytoken: # Registrierung und anschließende Helpdesk-Anfrage erforderlich. Details zum Ablauf gibts hier https://transparency.entsoe.eu/content/static_content/Static%20content/web%20api/Guide.html#_authentication_and_authorisation (optional)
domain: BZN|DE-LU # siehe https://transparency.entsoe.eu/content/static_content/Static%20content/web%20api/Guide.html#_areas (optional)

Fraunhofer ISE

Day-ahead Energiepreise (je kWh) an der Börse. Kann ohne vorherige Anmeldung auf https://api.energy-charts.info/ abgerufen werden. Nutzbar u.a. für dynamische Stromtarife, wo der Anbieter bis dato auf der Kundenschnittstelle noch kein Preis-Vorhersagen anbietet.

tariffs:
grid:
type: template
template: energy-charts-api
bzn: DE-LU # Gebotszonen - https://api.energy-charts.info/#/prices/day_ahead_price_price_get

Groupe E Vario Plus

Nur für die Schweiz verfügbar.

tariffs:
grid:
type: template
template: groupe-e

Nordpool spot prices

Nordpool Spot Preise im Day-Ahead-Markt für alle Märkte in der Nordpool-Region.

tariffs:
grid:
type: template
template: nordpool
region: GER # optional
currency: EUR # optional

Octopus Energy

API

Den API-Key bekommst du im Octopus Portal https://octopus.energy/dashboard/new/accounts/personal-details/api-access

tariffs:
grid:
type: template
template: octopus-api
apiKey: # Octopus Energy API Key.

Product Code

tariffs:
grid:
type: template
template: octopus-productcode
productCode: AGILE-FLEX-22-11-25 # Der Tarifcode für Ihren Energievertrag. Stellen Sie sicher, dass dieser auf Ihren Importtarifcode eingestellt ist.
region: # Die DNO-Region, in der Sie sich befinden. Weitere Informationen: https://www.energy-stats.uk/dno-region-codes-explained/

Ostrom

Erzeuge einen 'Production Client' im Ostrom-Entwicklerportal: https://developer.ostrom-api.io/

tariffs:
grid:
type: template
template: ostrom
clientid: 476c477d8a039529478ebd690d35ddd80e3308ffc49b59c65b142321aee963a4
clientsecret: 476c477d8a039529478ebd690d35ddd80e3308ffc49b59c65b142321aee963a4476c477d8a039529478ebd690d35ddd80e3308ffc49b59c65b142321aee963a4a
contract: 100523456 # Nur erforderlich, wenn mehrere Verträge unter einem Benutzer existieren (optional)

PUN Orario

Preisdaten von https://www.mercatoelettrico.org/it/. Wird oft zur Einspeisung ins Netz verwendet. Nur für Italien verfügbar.

tariffs:
grid:
type: template
template: pun

SmartEnergy smartCONTROL

Nur für Österreich verfügbar.

tariffs:
grid:
type: template
template: smartenergy

Spotty Energie

Nur für Österreich verfügbar.

tariffs:
grid:
type: template
template: spottyenergy
contractid: ffffffff-4444-6666-2222-aaaaaabbbbbb # Die Vertragsnummer bekommst du im Kundenportal https://i.spottyenergie.at/
pricetype: CONSUMPTION # Preistyp, entweder Börsenpreis, Verbrauchspreis oder Einspeisevergütung (falls vereinbart), siehe https://www.spottyenergie.at/blog/energie-smart-produzieren

Tibber

Hol dir deinen API-Token aus dem Tibber-Entwicklerportal: https://developer.tibber.com/

tariffs:
grid:
type: template
template: tibber
token: 476c477d8a039529478ebd690d35ddd80e3308ffc49b59c65b142321aee963a4
homeid: cc83e83e-8cbf-4595-9bf7-c3cf192f7d9c # Nur erforderlich, wenn du mehrere Häuser in deinem Tibber-Konto hast. (optional)