Skip to content

Commit f0411f6

Browse files
authored
add chargezones (#1081)
1 parent 089612c commit f0411f6

6 files changed

Lines changed: 106 additions & 16 deletions

File tree

src/content/docs/de/features/dynamic-prices.mdx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ tariffs:
6161
Unter [Stromtarife](../tariffs) findest du eine Liste aller unterstützten Tarife.
6262
Wenn dein Anbieter eine Schnittstelle hat, aber noch nicht von evcc unterstützt wird, dann mach gerne einen [Feature Request](https://github.com/evcc-io/evcc/issues/new/choose) auf.
6363

64+
### Zeitabhängige Netzentgelte
65+
66+
Berechnet dein Netzbetreiber zeitvariable Netzentgelte (z. B. nach § 14a EnWG), kannst du diese über `chargesZones` zusätzlich zu jedem Tarif abbilden.
67+
Details unter [zeitabhängige Netzentgelte](/de/reference/configuration/tariffs#charges-zones).
68+
6469
## Günstiges Netzladen
6570

6671
Hast du einen zeitabhängigen oder dynamischen Stromtarif konfiguriert, erscheint im Einstellungsdialog am Ladepunkt der Bereich "Günstiges Netzladen".

src/content/docs/de/reference/configuration/tariffs.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,45 @@ tariffs:
4040
4141
Mehr Beispiele und eine Übersicht der verfügbaren Anbieter findest du unter [Stromtarife](/de/tariffs).
4242
43+
## Zeitabhängige Netzentgelte {#charges-zones}
44+
45+
Über `charges` kannst du einen festen Aufschlag pro kWh auf jeden Preiswert addieren.
46+
Berechnet dein Netzbetreiber zeitvariable Netzentgelte (z. B. nach § 14a EnWG), kannst du über `chargesZones` den Standardaufschlag `charges` für bestimmte Zeiträume überschreiben.
47+
Das funktioniert mit jedem Netztarif, egal ob Anbieter-Template, `fixed`-Preis oder `custom`-Quelle.
48+
49+
Jede Zone hat folgende Felder:
50+
51+
| Feld | Erfordert | Beschreibung |
52+
| --------- | --------- | ----------------------------------------------------------------- |
53+
| `charges` | ja | Aufschlag pro kWh in dieser Zone. Ersetzt den Standard-`charges`. |
54+
| `months` | nein | z. B. `Nov-Mär` oder `Jun`. Leer bedeutet ganzjährig. |
55+
| `days` | nein | z. B. `Mo-Fr` oder `Sa,So`. Leer bedeutet täglich. |
56+
| `hours` | nein | z. B. `17-20` oder `15:30-21`. Leer bedeutet ganztägig. |
57+
58+
**Beispiel**:
59+
60+
```yaml
61+
tariffs:
62+
grid:
63+
type: template
64+
template: tibber
65+
token: "..."
66+
charges: 0.0941 # Standard-Netzentgelt pro kWh
67+
chargesZones:
68+
- months: Nov-Mär
69+
days: Mo-Fr
70+
hours: 17-20
71+
charges: 0.1838 # Hochtarif
72+
- hours: 0-6
73+
charges: 0.0299 # Niedrigtarif
74+
```
75+
76+
Trifft keine Zone zu, gilt der Standardaufschlag `charges`.
77+
Überlappen sich Zonen, gewinnt die letzte zutreffende Zone.
78+
Ist eine `formula` konfiguriert, enthält die Variable `charges` den Zonenwert des jeweiligen Zeitfensters.
79+
80+
Ein `fixed`-Tarif mit `chargesZones` wird wie ein dynamischer Tarif behandelt: Der Planer bevorzugt günstige Zeiträume und das Preisdiagramm wird angezeigt.
81+
4382
## Feature-Flags
4483

4584
Bei eigenen Tarifen vom Typ `custom` kannst du über `features` das Verhalten beeinflussen:

src/content/docs/de/user-defined-devices.mdx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -413,14 +413,15 @@ Die Attribute `price` und `forecast` schließen sich gegenseitig aus. Genau eine
413413

414414
### Konfiguration
415415

416-
| Attribut | Typ | Erfordert | Beschreibung |
417-
| ---------- | ---------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
418-
| `tariff` | `string` | nein | `price` (Standard), `co2` oder `solar`. Bestimmt die Einheit der zurückgegebenen Werte: Preis in konfigurierter Währung pro kWh, CO₂-Intensität in g/kWh, Solar-Vorhersage in W. |
419-
| `charges` | `float` | nein | Fester Aufschlag pro kWh, der zu jedem Wert addiert wird. Standard `0`. |
420-
| `tax` | `float` | nein | Prozentualer Steuersatz auf das Ergebnis, z. B. `0.2` für 20 %. Standard `0`. |
421-
| `formula` | `string` | nein | Go-Ausdruck für eine eigene Berechnung, mit `price`, `charges` und `tax` im Scope. Siehe [Beispiele](#formula-examples). |
422-
| `interval` | `duration` | nein | Abfrageintervall für `forecast`. Standard `1h`. |
423-
| `cache` | `duration` | nein | Cache-Dauer für `price`. Standard `15m`. |
416+
| Attribut | Typ | Erfordert | Beschreibung |
417+
| -------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
418+
| `tariff` | `string` | nein | `price` (Standard), `co2` oder `solar`. Bestimmt die Einheit der zurückgegebenen Werte: Preis in konfigurierter Währung pro kWh, CO₂-Intensität in g/kWh, Solar-Vorhersage in W. |
419+
| `charges` | `float` | nein | Fester Aufschlag pro kWh, der zu jedem Wert addiert wird. Standard `0`. |
420+
| `chargesZones` | `list` | nein | Zeitabhängige Aufschläge (z. B. Netzentgelte), die `charges` für bestimmte Zeiträume überschreiben. Siehe [zeitabhängige Netzentgelte](/de/reference/configuration/tariffs#charges-zones). |
421+
| `tax` | `float` | nein | Prozentualer Steuersatz auf das Ergebnis, z. B. `0.2` für 20 %. Standard `0`. |
422+
| `formula` | `string` | nein | Go-Ausdruck für eine eigene Berechnung, mit `price`, `charges` und `tax` im Scope. Siehe [Beispiele](#formula-examples). |
423+
| `interval` | `duration` | nein | Abfrageintervall für `forecast`. Standard `1h`. |
424+
| `cache` | `duration` | nein | Cache-Dauer für `price`. Standard `15m`. |
424425

425426
<a id="tariff-features"></a>
426427

src/content/docs/en/features/dynamic-prices.mdx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ tariffs:
6161
You can find a list of all supported tariffs under [tariffs](../tariffs).
6262
If your provider has an interface but is not yet supported by evcc, please submit a [Feature Request](https://github.com/evcc-io/evcc/issues/new/choose).
6363

64+
### Time-based grid fees
65+
66+
If your grid operator bills time-dependent grid fees (e.g. time-variable network charges according to § 14a EnWG in Germany), you can add them on top of any tariff using `chargesZones`.
67+
See [time-based grid fees](/en/reference/configuration/tariffs#charges-zones) for details.
68+
6469
## Smart feed-in
6570

6671
During certain periods of the day and in specific regions, there might be an abundance of solar power. At the same time, there may be almost no load on the grid.

src/content/docs/en/reference/configuration/tariffs.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,45 @@ tariffs:
3838
3939
More examples and a list of available providers can be found in the section [Tariffs](/en/tariffs).
4040
41+
## Time-Based Grid Fees {#charges-zones}
42+
43+
Use `charges` to add a fixed fee per kWh to every price value.
44+
If your grid operator bills time-dependent grid fees (e.g. time-variable network charges according to § 14a EnWG in Germany), use `chargesZones` to override the default `charges` for specific periods.
45+
This works with any grid tariff, no matter if it uses a provider template, a `fixed` price or a `custom` source.
46+
47+
Each zone has the following fields:
48+
49+
| Field | Required | Description |
50+
| --------- | -------- | --------------------------------------------------------- |
51+
| `charges` | yes | Fee per kWh in this zone. Replaces the default `charges`. |
52+
| `months` | no | e.g. `Nov-Mar` or `Jun`. Empty means all year. |
53+
| `days` | no | e.g. `Mon-Fri` or `Sat,Sun`. Empty means every day. |
54+
| `hours` | no | e.g. `17-20` or `15:30-21`. Empty means all day. |
55+
56+
**Example**:
57+
58+
```yaml
59+
tariffs:
60+
grid:
61+
type: template
62+
template: tibber
63+
token: "..."
64+
charges: 0.0941 # default grid fee per kWh
65+
chargesZones:
66+
- months: Nov-Mar
67+
days: Mon-Fri
68+
hours: 17-20
69+
charges: 0.1838 # peak
70+
- hours: 0-6
71+
charges: 0.0299 # low
72+
```
73+
74+
If no zone matches, the default `charges` applies.
75+
If zones overlap, the last matching zone wins.
76+
When a `formula` is configured, the `charges` variable contains the zone value of the respective time slot.
77+
78+
A `fixed` tariff with `chargesZones` is treated like a dynamic tariff: the planner prefers cheap periods and the price chart is shown.
79+
4180
## Feature Flags
4281

4382
For custom tariffs (`type: custom`) you can influence behaviour via `features`:

src/content/docs/en/user-defined-devices.mdx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -413,14 +413,15 @@ Exactly one of `price` or `forecast` must be configured.
413413

414414
### Configuration
415415

416-
| Attribute | Type | Required | Description |
417-
| ---------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
418-
| `tariff` | `string` | no | `price` (default), `co2` or `solar`. Sets the unit of the returned values: price in configured currency per kWh, CO₂ intensity in g/kWh, solar forecast in W. |
419-
| `charges` | `float` | no | Fixed additional charge per kWh added to every value. Default `0`. |
420-
| `tax` | `float` | no | Percentage tax applied to the result, e.g. `0.2` for 20 %. Default `0`. |
421-
| `formula` | `string` | no | Go expression for a custom calculation, with `price`, `charges` and `tax` in scope. See [examples](#formula-examples). |
422-
| `interval` | `duration` | no | Polling interval for `forecast`. Default `1h`. |
423-
| `cache` | `duration` | no | Cache duration for `price`. Default `15m`. |
416+
| Attribute | Type | Required | Description |
417+
| -------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
418+
| `tariff` | `string` | no | `price` (default), `co2` or `solar`. Sets the unit of the returned values: price in configured currency per kWh, CO₂ intensity in g/kWh, solar forecast in W. |
419+
| `charges` | `float` | no | Fixed additional charge per kWh added to every value. Default `0`. |
420+
| `chargesZones` | `list` | no | Time-based charges (e.g. grid fees) that override `charges` for specific periods. See [time-based grid fees](/en/reference/configuration/tariffs#charges-zones). |
421+
| `tax` | `float` | no | Percentage tax applied to the result, e.g. `0.2` for 20 %. Default `0`. |
422+
| `formula` | `string` | no | Go expression for a custom calculation, with `price`, `charges` and `tax` in scope. See [examples](#formula-examples). |
423+
| `interval` | `duration` | no | Polling interval for `forecast`. Default `1h`. |
424+
| `cache` | `duration` | no | Cache duration for `price`. Default `15m`. |
424425

425426
<a id="tariff-features"></a>
426427

0 commit comments

Comments
 (0)