Skip to content

Commit dcee92f

Browse files
authored
HEMS: circuit update, breaking change (#1011)
1 parent bcd64b6 commit dcee92f

9 files changed

Lines changed: 154 additions & 211 deletions

File tree

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ Everything else is manually maintained:
119119
#### UI Elements & Technical Terms
120120

121121
- **Bold** for UI elements and modes: **PV-Modus**, **Min+PV**
122+
- **Bold with `` separator** for UI navigation paths: **Konfiguration → Externe Steuerung**, **Configuration → EEBus**
122123
- `Code formatting` for configuration keys: `residualPower`, `evcc.yaml`
123124
- _Italics_ for technical terms when introducing concepts
124125

blog/2023-10-05/feature-highlights-10-2023.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Die Mindestladung-Funktion existiert bei evcc schon seit Ewigkeiten.
4848
Sie ist hilfreich, wenn du mal mit wenigen Prozenten nach Hause kommst und sichergehen willst, dass du immer genug Reichweite für bspw. ein unerwartetes Ereignis hast.
4949

5050
Bislang konnte sie aber nur über die Konfigurationsdatei oder per API eingestellt werden.
51-
Inzwischen geht das auch über die UI unter **Plan** > **Ankunft** > **Min. Ladung %**.
51+
Inzwischen geht das auch über die UI unter **Plan** **Ankunft** **Min. Ladung %**.
5252

5353
Die Einstellungen werden pro Fahrzeug gespeichert und bleiben auch nach einem Neustart oder Update erhalten.
5454

docs/features/external-control.mdx

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,27 +38,11 @@ Dies betrifft hauptsächlich größere PV-Anlagen, kann aber auch im privaten Be
3838

3939
Die Anbindung erfolgt über **Relais** (über einen Schaltkontakt) oder **EEBus** (über das EEBus-Protokoll).
4040

41-
## Vorbereitung
41+
## Einrichtung
4242

43-
Die externe Steuerung nutzt das [Lastmanagement](./loadmanagement).
44-
Lastmanagement muss konfiguriert sein (mindestens minimale Konfiguration).
45-
46-
**1. Lastmanagement konfigurieren**
47-
48-
In der Benutzeroberfläche unter **Konfiguration > Lastmanagement** muss folgender Eintrag angelegt werden:
49-
50-
```yaml title="Lastmanagement (Minimale Konfiguration)"
51-
- name: lpc
52-
```
53-
54-
Hinweis: Falls bereits Lastmanagement mit bestehenden Stromkreisen genutzt wird, wird `lpc` automatisch als oberste Ebene darüber gesetzt.
55-
56-
**2. Ladepunkte zuordnen**
57-
58-
Alle Ladepunkte und Wärmepumpen, die durch die externe Steuerung geregelt werden sollen, müssen im jeweiligen Konfigurationsdialog diesem Stromkreis zugeordnet werden.
59-
60-
Jetzt kann die Einrichtung der externen Steuerung erfolgen.
61-
Extern gesetzte Limits sind in der Lastmanagement-Statusübersicht dargestellt (`lpc` Stromkreis).
43+
Die Einrichtung erfolgt über **Konfiguration → Externe Steuerung**.
44+
Das Umsetzen der Begrenzung erfolgt über das [Lastmanagement](./loadmanagement).
45+
Dabei wird automatisch ein "Externe Begrenzung" Stromkreis (`gridcontrol`) erstellt, der als oberste Ebene über eventuell bestehende Stromkreise gesetzt wird.
6246

6347
## Konfiguration via Relais
6448

@@ -144,7 +128,7 @@ Die Steuerbox kommuniziert über das EEBus-Protokoll direkt mit evcc und übermi
144128
- Netzwerkverbindung zwischen evcc und Steuerbox
145129
146130
EEBus ist vorkonfiguriert.
147-
SHIP-ID und SKI der evcc Instanz können unter **Konfiguration > EEBus** eingesehen werden.
131+
SHIP-ID und SKI der evcc Instanz können unter **Konfiguration EEBus** eingesehen werden.
148132
149133
### Steuerbox verbinden
150134
@@ -164,7 +148,7 @@ Bei EEBus wird das Leistungslimit automatisch von der Steuerbox übermittelt.
164148
165149
#### SKI von evcc ermitteln
166150
167-
Die SKI kann unter **Konfiguration > EEBus** eingesehen werden.
151+
Die SKI kann unter **Konfiguration EEBus** eingesehen werden.
168152
169153
#### Pairing durchführen
170154
@@ -191,7 +175,7 @@ Wenn der Netzbetreiber ein Reduzierungssignal sendet:
191175
1. **Relais**: Der Kontakt wird geschlossen, evcc aktiviert das konfigurierte `maxPower` Limit
192176
2. **EEBus**: Die Steuerbox übermittelt das berechnete Gesamtlimit digital
193177

194-
evcc regelt alle dem `lpc` Stromkreis zugeordneten Ladepunkte entsprechend dem Limit herunter.
178+
Alle dem "Externe Begrenzung" Stromkreis (`gridcontrol`) zugeordneten Ladepunkte werden entsprechend dem Limit heruntergeregelt.
195179
Bei zu hohem Gesamtverbrauch können Ladevorgänge auch gestoppt werden.
196180
Die Regelung betrifft alle Modi (PV, Min+PV, Schnell).
197181

@@ -206,7 +190,7 @@ Wenn ein Regellimit aktiv ist, wird ein **Banner mit Regelhinweis** auf der Haup
206190
## Protokollierung
207191

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

211195
Jeder Eintrag enthält:
212196

@@ -227,7 +211,7 @@ Der Anlagenbetreiber ist für den ordnungsgemäßen Betrieb verantwortlich und m
227211
Neben Ladepunkten können auch weitere steuerbare Verbraucher in das §14a Lastmanagement einbezogen werden.
228212
Dies betrifft z. B. Wärmepumpen oder Batteriespeicher, die über EEBus angebunden oder als Zähler mit zusätzlichem Relaisausgang konfiguriert sind.
229213

230-
Die Steuerung berücksichtigt dabei die aktuelle Leistungsaufnahme aller dem internen `lpc` Stromkreis zugeordneten Verbraucher.
214+
Die Steuerung berücksichtigt dabei die aktuelle Leistungsaufnahme aller dem "Externe Begrenzung" Stromkreis (`gridcontrol`) zugeordneten Verbraucher.
231215
Dazu zählen automatisch alle Ladepunkte und alle Zähler mit entsprechenden Schaltausgängen oder EEBus-Schnittstelle mit LPC Use Case als sonstige Verbraucher.
232216

233217
Zunächst werden alle sonstigen Verbraucher gedimmt.

docs/features/loadmanagement.mdx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,12 @@ Die Ladepunkte _Carport A_ und _Carport B_ sind dem Stromkreis `carport` zugeord
8282
Die Stromkreise `garage`, `carport` und die Wärmepumpe sind direkt am Hauptstromkreis (`main`) angeschlossen.
8383
Die Regelung stellt sicher, dass zu keinem Zeitpunkt die Grenzen der jeweiligen Stromkreise überschritten werden.
8484

85-
**Wichtig:** Es muss immer einen Hauptstromkreis geben.
86-
Dieser hat keine `parent` Eigenschaft.
85+
**Wichtig:** Es muss immer genau einen Hauptstromkreis geben (einen Stromkreis ohne `parent` Eigenschaft).
86+
87+
:::info Externe Steuerung (§14a, §9)
88+
Wenn [externe Steuerung](./external-control) konfiguriert ist, wird automatisch ein "Externe Begrenzung" Stromkreis (`gridcontrol`) über dem bestehenden Hauptstromkreis erstellt.
89+
Dieser wird dann zum neuen obersten Stromkreis.
90+
:::
8791

8892
## Messwerte
8993

docs/reference/configuration/hems.md

Lines changed: 60 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -4,127 +4,108 @@ sidebar_position: 7
44

55
# `hems`
66

7-
evcc kann in bestehende Home Energy Management Systeme (HEMS) integriert werden. Momentan wird der SMA Sunny Home Manager 2.0 (SHM) unterstützt!
7+
Unter `hems` wird die externe Steuerung von Verbrauchsleistung und Einspeisung konfiguriert.
8+
Dies wird z. B. für die Umsetzung von §14a EnWG oder §9 EEG benötigt.
9+
Details zu Hintergrund und Einrichtung findest du unter [Externe Steuerung](../../features/external-control).
810

9-
**Beispiel**:
10-
11-
```yaml
12-
hems:
13-
type: sma
14-
...
15-
```
11+
:::info Hinweis
12+
Wenn `hems` konfiguriert ist, wird automatisch ein "Externe Begrenzung" Stromkreis (`gridcontrol`) erstellt.
13+
Eine manuelle Konfiguration von Stromkreisen ist dafür nicht erforderlich.
14+
:::
1615

17-
Im folgenden werden nun alle möglichen Parameter erklärt.
16+
:::info SMA Sunny Home Manager & SEMP-Protokoll
17+
Die Integration mit dem SMA Sunny Home Manager (SHM) ist standardmäßig aktiv und muss nicht mehr unter `hems:` konfiguriert werden.
18+
Details und Konfigurationsmöglichkeiten findest du unter **Konfiguration > Sunny Home Manager**.
19+
:::
1820

1921
---
2022

2123
## Erforderliche Parameter
2224

2325
### `type`
2426

25-
Definiert das HEMS System.
27+
Definiert den Typ der externen Steuerung.
2628

2729
**Mögliche Werte**:
2830

29-
- `sma`: Für den SMA Sunny Home Manager 2.0. Siehe [`sma`](#sma) Definition
30-
31-
**Beispiel**:
32-
33-
```yaml
34-
type: sma
35-
```
31+
- `relay`: Anbindung über Schaltkontakt
32+
- `eebus`: Anbindung über das EEBus-Protokoll
3633

3734
---
3835

39-
## Optionale SMA Parameter
40-
41-
evcc meldet jeden Ladepunkt an den SHM als eigenständiges Device. Die Device ID wird dabei von evcc generiert.
36+
## `type: relay`
4237

43-
Die Device ID ist ein HEX-String und setzt sich wie folgt zusammen
38+
Anbindung über einen Schaltkontakt (z. B. Steuerbox).
39+
Der Kontakt signalisiert, ob eine Leistungsbegrenzung aktiv ist.
4440

45-
```text
46-
F-AAAAAAAA-BBBBBBBBBBBB-00
41+
```yaml
42+
hems:
43+
type: relay
44+
maxPower: 8400 # Gesamtleistungslimit bei aktivem Signal (in Watt)
45+
limit:
46+
source: gpio
47+
function: read
48+
pin: 17
4749
```
4850
49-
- F: Vendor ID Type, fest definiert
50-
- AAAAAAAA: Siehe `vendorid`
51-
- BBBBBBBBBBBB: Siehe `deviceid`
52-
- 00: Sub Device ID, fest definiert
51+
### Parameter
5352
54-
---
53+
#### `maxPower`
5554

56-
### `vendorid`
55+
Gesamtleistungslimit in Watt, das bei aktivem Signal gesetzt wird.
5756

58-
Definiert die VendorID die für die Erstellung der Device ID verwendet wird. Wenn in der Konfiguration keine Vendor ID angegeben wird, wird eine fest definierte ID verwendet.
59-
Normalerweise wird diese nicht manuell konfiguriert.
57+
#### `limit`
6058

61-
HEX-String, Länge 8 Zeichen
59+
[Plugin](../../devices/plugins)-Konfiguration zum Auslesen des Schaltkontakts.
60+
Erwarteter Rückgabewert: `true`/`1` = begrenzt, `false`/`0` = normal.
6261

63-
**Beispiel**:
62+
#### `passthrough`
6463

65-
```yaml
66-
hems:
67-
type: sma
68-
vendorid: "AAAAAAAA"
69-
...
70-
```
64+
Optionale [Plugin](../../devices/plugins)-Konfiguration zum Durchreichen des Begrenzungssignals an ein externes System.
7165

72-
---
66+
#### `interval`
7367

74-
### `deviceid`
68+
Abfrageintervall für den Schaltkontakt.
69+
Standard: `10s`.
7570

76-
Definiert die Geräte ID, die für die Erstellung der Device ID des ersten Ladepunkts verwendet wird. Wenn keine Geräte ID angegeben wird, generiert evcc eine zufällige Geräte ID in Abhängigkeit auf den aktuellen Computer.
71+
Weitere Beispiele für verschiedene Anbindungen (GPIO, MQTT, HTTP) findest du unter [Externe Steuerung](../../features/external-control#konfiguration-via-relais).
7772

78-
HEX-String, Länge: 12 Zeichen
73+
---
74+
75+
## `type: eebus`
7976

80-
**Beispiel**:
77+
Anbindung über das EEBus-Protokoll.
78+
Die Steuerbox übermittelt das Leistungslimit automatisch.
8179

8280
```yaml
8381
hems:
84-
type: sma
85-
deviceid: "BBBBBBBBBBBB"
86-
...
82+
type: eebus
83+
ski: "1234-5678-90AB-CDEF" # SKI der Steuerbox
8784
```
8885

89-
:::info Docker Container
90-
Wenn evcc als Docker Container ausgeführt wird, muss zu diesem Zweck die `machine-id` gemounted werden. Siehe auch [Docker Konfiguration](../../installation/docker)
91-
:::
92-
93-
#### Bisherige DeviceID herausfinden
94-
95-
Wenn evcc auf einen anderen Computer umgezogen wird, ändert sich dadurch auch die zufällig erzeugte Geräte ID. Der SHM wird evcc in diesem Fall als neues Gerät erkannt und die bisherigen Geräte werden im SMA Portal nicht erkannt.
86+
### Parameter
9687

97-
Um dies zu verhindern, sollte die Geräte ID vom bisherigen System übernommen werden:
88+
#### `ski`
9889

99-
- Öffne in einem Browser die Adresse `http://IP-ADRESSE-BISHERIGER-EVCC-HOST:7070/semp`
100-
- Es wird ein Text im XML Format angezeigt. Der Text beginnt in dieser Form:
90+
SKI (Subject Key Identifier) der Steuerbox.
91+
Wird für das Pairing benötigt.
10192

102-
```xml
103-
<Device2EM xmlns="http://www.sma.de/communication/schema/SEMP/v1">
104-
<DeviceInfo>
105-
<Identification>
106-
<DeviceId>F-AAAAAAAA-BBBBBBBBBBBB-00</DeviceId>
107-
```
93+
#### Erweiterte Limits
10894

109-
- Die Zeichenkette an der Stelle von `AAAAAAAA` ist die VendorID
110-
- Die Zeichenkette an der Stelle von `BBBBBBBBBBBB` entspricht der DeviceID des ersten Ladepunkts
111-
- Diese Zeichenkette muss nun in der Konfiguration für `deviceid` im neuen System übernommen werden
112-
- Wurde die `vendorid` zuvor ebenfalls manuell konfiguriert muss auch diese auf das neue System übertragen werden
113-
114-
---
95+
Folgende optionale Parameter können für die EEBus-Kommunikation gesetzt werden:
11596

116-
## Unterstützte HEMS
97+
- `contractualConsumptionNominalMax`: Vertragliche maximale Verbrauchsleistung (in Watt)
98+
- `failsafeConsumptionActivePowerLimit`: Failsafe-Limit für Verbrauchsleistung (in Watt)
99+
- `failsafeProductionActivePowerLimit`: Failsafe-Limit für Einspeiseleistung (in Watt)
100+
- `failsafeDurationMinimum`: Minimale Failsafe-Dauer (z. B. `2h`)
117101

118-
### `sma`
102+
#### `passthrough`
119103

120-
Bietet Unterstützung für den SMA Sunny Home Manager 2.0 (SHM).
104+
Optionale [Plugin](../../devices/plugins)-Konfiguration zum Durchreichen des Begrenzungssignals an ein externes System.
121105

122-
Durch die Integration können die [Ladepunkte](loadpoints) dem SHM hinzugefügt werden und erscheinen im Sunny Portal.
123-
Die Ladesteuerung erfolgt ausschließlich durch evcc.
106+
#### `interval`
124107

125-
**Beispiel**:
108+
Abfrageintervall.
109+
Standard: `10s`.
126110

127-
```yaml
128-
hems:
129-
type: sma
130-
```
111+
Details zur Einrichtung und zum Pairing findest du unter [Externe Steuerung](../../features/external-control#konfiguration-via-eebus).

i18n/en/docusaurus-plugin-content-blog/2023-10-05/feature-highlights-10-2023.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ The minimum charge function has been around at evcc for ages.
4848
It is helpful if you come home with only a few percent and want to make sure you always have enough range for an unexpected event.
4949

5050
Until now, it could only be set via the configuration file or via API.
51-
Now you can also do this via the UI under **Plan** > **Arrival** > **Min. charge %**.
51+
Now you can also do this via the UI under **Plan** **Arrival** **Min. charge %**.
5252

5353
The settings are stored per vehicle and are retained even after a restart or update.
5454

i18n/en/docusaurus-plugin-content-docs/current/features/external-control.mdx

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,27 +38,11 @@ This mainly affects larger solar installations, but can also become relevant in
3838

3939
Connection is established via **Relay** (via a switch contact) or **EEBus** (via the EEBus protocol).
4040

41-
## Preparation
41+
## Setup
4242

43-
External control uses [Load Management](./loadmanagement).
44-
Load management must be configured (at least minimal configuration).
45-
46-
**1. Configure load management**
47-
48-
In the user interface under **Configuration > Load Management**, the following entry must be created:
49-
50-
```yaml title="Load Management (Minimal Configuration)"
51-
- name: lpc
52-
```
53-
54-
Note: If load management with existing circuits is already in use, `lpc` will automatically be placed as the top level above them.
55-
56-
**2. Assign charging points**
57-
58-
All charging points and heat pumps that should be controlled by external control must be assigned to this circuit in their respective configuration dialog.
59-
60-
Now external control can be configured.
61-
Externally set limits are displayed in the load management status overview (`lpc` circuit).
43+
Configuration is done via **Configuration → External Control**.
44+
Limits are enforced via [Load Management](./loadmanagement).
45+
An "External Limit" circuit (`gridcontrol`) is automatically created and placed as the top level above any existing circuits.
6246

6347
## Configuration via Relay
6448

@@ -144,7 +128,7 @@ The control box communicates directly with evcc via the EEBus protocol and autom
144128
- Network connection between evcc and control box
145129
146130
EEBus is preconfigured.
147-
The evcc instance's SHIP-ID and SKI can be viewed under **Configuration > EEBus**.
131+
The evcc instance's SHIP-ID and SKI can be viewed under **Configuration EEBus**.
148132
149133
### Connect Control Box
150134
@@ -164,7 +148,7 @@ With EEBus, the power limit is automatically transmitted by the control box.
164148
165149
#### Determine evcc SKI
166150
167-
The SKI can be viewed under **Configuration > EEBus**.
151+
The SKI can be viewed under **Configuration EEBus**.
168152
169153
#### Perform Pairing
170154
@@ -191,7 +175,7 @@ When the grid operator sends a reduction signal:
191175
1. **Relay**: The contact is closed, evcc activates the configured `maxPower` limit
192176
2. **EEBus**: The control box digitally transmits the calculated total limit
193177

194-
evcc reduces all charging points assigned to the `lpc` circuit according to the limit.
178+
All charging points assigned to the "External Limit" circuit (`gridcontrol`) are reduced according to the limit.
195179
If total consumption is too high, charging processes can also be stopped.
196180
The control affects all modes (Solar, Min+Solar, Fast).
197181

@@ -206,7 +190,7 @@ When a control limit is active, a **banner with control notice** is displayed on
206190
## Logging
207191

208192
All limitation requests from the grid operator are automatically documented.
209-
The log data can be downloaded as a CSV file under **Configuration > External Control**.
193+
The log data can be downloaded as a CSV file under **Configuration External Control**.
210194

211195
Each entry contains:
212196

@@ -227,7 +211,7 @@ The system operator is responsible for proper operation and must keep the log fo
227211
In addition to charging points, other controllable consumers can also be integrated into German §14a load management.
228212
This applies e.g. to heat pumps or battery storage systems that are connected via EEBus or configured as meters with an additional relay output.
229213

230-
The control takes into account the current power consumption of all consumers assigned to the internal `lpc` circuit.
214+
The control takes into account the current power consumption of all consumers assigned to the "External Limit" circuit (`gridcontrol`).
231215
This automatically includes all charging points and all meters with corresponding switching outputs or EEBus interface with LPC use case as other consumers.
232216

233217
First, all other consumers are dimmed.

i18n/en/docusaurus-plugin-content-docs/current/features/loadmanagement.mdx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,12 @@ The charging points Carport A and Carport B are assigned to the `carport` circui
8181
The circuits `garage`, `carport`, and the heat pump are connected directly to the root circuit (`main`).
8282
The regulation ensures that the limits of the respective circuits are not exceeded at any time.
8383

84-
**Important:** There must always be a main circuit. This has no `parent` property.
84+
**Important:** There must always be exactly one root circuit (a circuit without `parent` property).
85+
86+
:::info External Control (§14a, §9)
87+
When [external control](./external-control) is configured, an "External Limit" circuit (`gridcontrol`) is automatically created above the existing root circuit.
88+
This becomes the new top-level circuit.
89+
:::
8590

8691
## Measuring
8792

0 commit comments

Comments
 (0)