Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/features/battery.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ Hier kannst du ein Limit anlegen.
Unterschreitet der aktuelle Strompreis dieses Limit, wird die Hausbatterie für diese Zeit aus dem Netz geladen.

:::info §14a EnWG
Bei aktivem [§14a Reduzierungssignal](./14a-enwg-steuve) wird das Netzladen automatisch pausiert und die Entladung der Batterie gesperrt ("Hold"-Modus).
Bei aktivem [Reduzierungssignal durch externe Steuerung](./external-control) wird das Netzladen automatisch pausiert und die Entladung der Batterie gesperrt ("Hold"-Modus).
Das Laden der Batterie bei PV-Überschuss ist idR. weiterhin möglich.
Nach Ende der Leistungsreduzierung wird das Netzladen automatisch fortgesetzt.
:::
Expand Down
220 changes: 105 additions & 115 deletions docs/features/14a-enwg-steuve.mdx → docs/features/external-control.mdx
Original file line number Diff line number Diff line change
@@ -1,57 +1,77 @@
---
sidebar_position: 10
title: Externe Steuerung (§14a, §9)
---

# § 14a EnWG & SteuVE
# Externe Steuerung (§14a EnWG & §9 EEG)

:::info Aktuelle Entwicklung
Die Umsetzung von § 14a EnWG befindet sich noch im Aufbau.
Steuerboxen und Smart Meter Gateways werden aktuell ausgerollt.
:::
evcc unterstützt die externe Steuerung von Ladepunkten und anderen Verbrauchern durch Netzbetreiber oder übergeordnete Energiemanagementsysteme.
Folgende Anwendungsfälle werden abgedeckt:

evcc unterstützt die externe Steuerung von Ladepunkten durch Netzbetreiber gemäß § 14a EnWG.
Dies ermöglicht reduzierte Netzentgelte bei gleichzeitiger Sicherstellung der Netzstabilität.
- **§14a EnWG**: Temporäre Leistungsreduzierung und Dimmung von Verbrauchern durch den Netzbetreiber
- **§9 EEG**: Abregelung von PV-Anlagen bei Netzüberlastung
- **EMS-Integration**: Umsetzung von Limits anderer Energiemanagementsysteme

## Hintergrund

Der § 14a des Energiewirtschaftsgesetzes (EnWG) regelt die netzdienliche Steuerung von steuerbaren Verbrauchseinrichtungen (SteuVE).
### Steuerbare Verbrauchseinrichtungen (§14a EnWG)

§14a des Energiewirtschaftsgesetzes (EnWG) regelt die netzdienliche Steuerung von steuerbaren Verbrauchseinrichtungen (SteuVE).
Netzbetreiber können bei Netzüberlastung die Leistung großer Verbraucher wie Wallboxen, Wärmepumpen oder Batteriespeicher temporär reduzieren.
Als Gegenleistung erhalten Kunden reduzierte Netzentgelte.

Wichtige Punkte:

- Betrifft Verbraucher ab 4,2 kW Leistung
- Steuerung erfolgt über Smart Meter Gateway und Steuerbox
- Kunden profitieren von reduzierten Netzentgelten

evcc unterstützt zwei Wege für die Anbindung: **Relais** (analog über einen Schaltkontakt) oder **EEBus** (digital über das EEBus-Protokoll).
### Einspeisemanagement (§9 EEG)

## Einrichtung
:::warning In Entwicklung
Der Mechanismus ist implementiert.
Die Integration und Dokumentation unterstützter Wechselrichter ist in Arbeit.
:::

Die § 14a EnWG Steuerung nutzt das [Lastmanagement](./loadmanagement) von evcc.
Beim Einrichten von HEMS wird automatisch ein interner `lpc` (Local Power Control) Steuerstromkreis angelegt, dem alle Ladepunkte und sonstigen Verbraucher zugeordnet werden.
Bei aktivem Reduzierungssignal setzt evcc ein temporäres Leistungslimit für diesen Stromkreis.
Nach §9 des Erneuerbare-Energien-Gesetzes (EEG) können Netzbetreiber bei drohender Netzüberlastung die Einspeisung von Erneuerbare-Energien-Anlagen abregeln.
Dies betrifft hauptsächlich größere PV-Anlagen, kann aber auch im privaten Bereich relevant werden.

Eine separate Lastmanagement-Konfiguration ist nicht erforderlich.
Falls du bereits Lastmanagement nutzt, wird der `lpc` Steuerstromkreis als oberste Ebene über deine bestehenden Stromkreise gesetzt.
### Anbindungsmöglichkeiten

:::tip
HEMS kann auch über die Konfigurationsoberfläche eingerichtet werden.
:::
Die Anbindung erfolgt über **Relais** (über einen Schaltkontakt) oder **EEBus** (über das EEBus-Protokoll).

## Vorbereitung

Die externe Steuerung nutzt das [Lastmanagement](./loadmanagement).
Lastmanagement muss konfiguriert sein (mindestens minimale Konfiguration).

**1. Lastmanagement konfigurieren**

In der Benutzeroberfläche unter **Konfiguration > Lastmanagement** muss folgender Eintrag angelegt werden:

## Konfiguration via Relais (Analog)
```yaml title="Lastmanagement (Minimale Konfiguration)"
- name: lpc
```

Hinweis: Falls bereits Lastmanagement mit bestehenden Stromkreisen genutzt wird, wird `lpc` automatisch als oberste Ebene darüber gesetzt.

**2. Ladepunkte zuordnen**

Alle Ladepunkte und Wärmepumpen, die durch die externe Steuerung geregelt werden sollen, müssen im jeweiligen Konfigurationsdialog diesem Stromkreis zugeordnet werden.

Die analoge Anbindung über einen Schaltkontakt ist die einfachste Lösung.
Jetzt kann die Einrichtung der externen Steuerung erfolgen.
Extern gesetzte Limits sind in der Lastmanagement-Statusübersicht dargestellt (`lpc` Stromkreis).

## Konfiguration via Relais

Die Anbindung über einen Schaltkontakt ist die einfachste Lösung.
Die Steuerbox aktiviert einen Kontakt, der von evcc ausgewertet wird.

### Grundkonfiguration

```yaml
hems:
type: relay
maxPower: 8400 # Gesamtleistungslimit bei aktivem Signal (in Watt)
limit:
# Plugin-spezifische Konfiguration
```yaml title="External Control"
type: relay
maxPower: 8400 # Gesamtleistungslimit bei aktivem Signal (in Watt)
limit:
# Plugin-spezifische Konfiguration
```

### Ermittlung des Leistungslimits
Expand All @@ -70,118 +90,81 @@ import TabItem from "@theme/TabItem";

Bei Verwendung eines Raspberry Pi kann der GPIO-Pin direkt ausgelesen werden:

```yaml
hems:
type: relay
maxPower: 8400 # Beispiel für 2 SteuVE
limit:
source: script
cmd: gpioget gpiochip0 17 # GPIO Pin 17 auslesen
# Rückgabewert: 0 = nicht begrenzt, 1 = begrenzt
```yaml title="External Control"
type: relay
maxPower: 8400 # Beispiel für 2 SteuVE
limit:
source: gpio
function: read
pin: 17 # GPIO Pin 17 auslesen
# Rückgabewert: false = nicht begrenzt, true = begrenzt
```

Weitere Details zum GPIO-Plugin findest du in der [Plugin-Dokumentation](/docs/devices/plugins#gpio).

</TabItem>
<TabItem value="mqtt" label="MQTT">

Wenn die Steuerbox oder ein Gateway MQTT-Nachrichten sendet:

```yaml
hems:
type: relay
maxPower: 11340 # Beispiel für 3 SteuVE mit Gleichzeitigkeitsfaktor 0,9
limit:
source: mqtt
topic: hems/limit/status
# Erwartete Werte: 0/false = normal, 1/true = begrenzt
```yaml title="External Control"
type: relay
maxPower: 11340 # Beispiel für 3 SteuVE mit Gleichzeitigkeitsfaktor 0,9
limit:
source: mqtt
topic: hems/limit/status
# Erwartete Werte: 0/false = normal, 1/true = begrenzt
```

</TabItem>
<TabItem value="http" label="HTTP-API">

Für Steuerboxen mit REST-API:

```yaml
hems:
type: relay
maxPower: 13440 # Beispiel für 4 SteuVE mit Gleichzeitigkeitsfaktor 0,8
limit:
source: http
uri: http://steuerbox.local/api/limit
jq: .limited # JSON-Pfad zum Boolean-Wert
```yaml title="External Control"
type: relay
maxPower: 13440 # Beispiel für 4 SteuVE mit Gleichzeitigkeitsfaktor 0,8
limit:
source: http
uri: http://steuerbox.local/api/limit
jq: .limited # JSON-Pfad zum Boolean-Wert
```

</TabItem>
</Tabs>

## Konfiguration via EEBus (Digital)
## Konfiguration via EEBus

Die digitale Anbindung über EEBus ist die zukunftssichere und bevorzugte Lösung.
Die Steuerbox kommuniziert über das EEBus-Protokoll direkt mit evcc und übermittelt das Leistungslimit automatisch.

### Voraussetzungen

- evcc-Installation mit EEBus-Unterstützung
- Steuerbox mit EEBus-Schnittstelle
- Netzwerkverbindung zwischen evcc und Steuerbox

### Schritt 1: Zertifikate generieren

EEBus benötigt Zertifikate für die sichere Kommunikation. Diese müssen einmalig erstellt werden.
Führe folgenden Befehl in der Konsole aus:
EEBus ist vorkonfiguriert.
SHIP-ID und SKI der evcc Instanz können unter **Konfiguration > EEBus** eingesehen werden.

```bash
evcc eebus-cert
```

Dieser Befehl erstellt die benötigten Zertifikate und zeigt die Konfiguration an, die in die `evcc.yaml` eingefügt werden muss.

### Schritt 2: EEBus-Grundkonfiguration

Füge die EEBus-Konfiguration zur `evcc.yaml` hinzu:

```yaml
# EEBus-Grundkonfiguration
eebus:
certificate:
public: |
-----BEGIN CERTIFICATE-----
# Hier den öffentlichen Schlüssel einfügen
-----END CERTIFICATE-----
private: |
-----BEGIN EC PRIVATE KEY-----
# Hier den privaten Schlüssel einfügen
-----END EC PRIVATE KEY-----
# Optional: Netzwerk-Interface festlegen (empfohlen)
interfaces:
- eth0 # oder das entsprechende Interface
# Optional: Eigene SKI definieren
shipid: EVCC-1234567890abcdef
```

### Schritt 3: HEMS-Konfiguration
### Steuerbox verbinden

Konfiguriere die HEMS-Schnittstelle für § 14a EnWG:
Konfiguriere die Verbindung zur Steuerbox.
Die SKI findest du in der Dokumentation deiner Steuerbox:

```yaml
hems:
type: eebus
ski: "1234-5678-90AB-CDEF" # SKI der Steuerbox
# Die SKI findest du in der Dokumentation deiner Steuerbox
```yaml title="External Control"
type: eebus
ski: "1234-5678-90AB-CDEF" # SKI der Steuerbox
```

:::note Hinweis
Bei EEBus wird das Leistungslimit automatisch von der Steuerbox übermittelt.
:::

### Schritt 4: SKI ermitteln und Pairing
### Pairing

#### SKI von evcc ermitteln

Nach dem Start von evcc wird die eigene SKI in den Logs angezeigt:

```bash
evcc --log debug | grep -i ski
```
Die SKI kann unter **Konfiguration > EEBus** eingesehen werden.

#### Pairing durchführen

Expand All @@ -190,27 +173,15 @@ evcc --log debug | grep -i ski
- IP-Adresse von evcc angeben
- Pairing-Vorgang starten

2. **In evcc**: HEMS-Konfiguration mit SKI der Steuerbox ergänzen
- SKI der Steuerbox in der HEMS-Konfiguration eintragen
2. **In evcc**: Konfiguration mit SKI der Steuerbox ergänzen
- SKI der Steuerbox in der Konfiguration eintragen
- evcc neu starten

3. **Verbindung prüfen**:
```bash
# Trace-Logging für EEBus aktivieren
evcc -l trace eebus
```

:::tip Wichtig

- Die Zertifikate müssen nur einmal generiert werden
- Nach erfolgreichem Pairing darf die Konfiguration nicht mehr geändert werden
:::

## Funktionsweise

### Normalbetrieb

Im Normalbetrieb lädt evcc ohne Leistungsbegrenzung durch das HEMS.
Im Normalbetrieb lädt evcc ohne externe Leistungsbegrenzung.
Die Ladepunkte arbeiten mit ihrer normalen Konfiguration und werden ggf. durch weitere [Lastmanagement](./loadmanagement)-Einschränkungen koordiniert.

### Reduzierungssignal aktiv
Expand All @@ -232,6 +203,25 @@ Nach Ende der Leistungsreduzierung wird das Netzladen automatisch fortgesetzt.

Wenn ein Regellimit aktiv ist, wird ein **Banner mit Regelhinweis** auf der Hauptseite in evcc angezeigt.

## Protokollierung

Alle Limitierungsanfragen durch den Netzbetreiber werden automatisch dokumentiert.
Die Protokolldaten können unter **Konfiguration > Externe Steuerung** als CSV-Datei heruntergeladen werden.

Jeder Eintrag enthält:

- Start- und Endzeitpunkt der Limitierung
- Art der Steuerung (Verbrauchsreduzierung oder Einspeisebegrenzung)
- Gemessene Netzleistung zu Beginn der Limitierung
- Gesetztes Leistungslimit

Diese Dokumentation kann auf Anfrage dem Netzbetreiber vorgelegt werden, um die Einhaltung der Steueranfragen nachzuweisen.

:::info Verantwortung (§14a, §9)
Die Elektrofachkraft muss nach der Einrichtung überprüfen, dass die externe Steuerung wie vorgesehen funktioniert.
Der Anlagenbetreiber ist für den ordnungsgemäßen Betrieb verantwortlich und muss das Protokoll für mindestens 2 Jahre aufbewahren.
:::

## Steuerung weiterer Verbraucher

Neben Ladepunkten können auch weitere steuerbare Verbraucher in das §14a Lastmanagement einbezogen werden.
Expand Down
4 changes: 2 additions & 2 deletions docs/features/loadmanagement.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@ circuits:
```

:::info Hinweis
Für die Umsetzung von Regelanweisungen durch den Netzbetreiber kann der HEMS-Mechanismus verwendet werden.
Weitere Informationen findest du unter [§ 14a EnWG & SteuVE](./14a-enwg-steuve).
Für die Umsetzung von Regelanweisungen durch den Netzbetreiber kann die externe Steuerung verwendet werden.
Weitere Informationen findest du unter [Externe Steuerung](./external-control).
:::

## Phasenumschaltung
Expand Down
Loading