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)