|
| 1 | +--- |
| 2 | +sidebar_position: 10 |
| 3 | +--- |
| 4 | + |
| 5 | +# § 14a EnWG & SteuVE |
| 6 | + |
| 7 | +:::info Current Development |
| 8 | +The implementation of § 14a EnWG is still being rolled out. |
| 9 | +Control boxes and Smart Meter Gateways are currently being deployed. |
| 10 | +::: |
| 11 | + |
| 12 | +evcc supports external control of charging points by grid operators in accordance with § 14a EnWG. |
| 13 | +This enables reduced grid fees whilst ensuring grid stability. |
| 14 | + |
| 15 | +## Background |
| 16 | + |
| 17 | +§ 14a of the German Energy Industry Act (EnWG) regulates grid-friendly control of controllable consumption devices (SteuVE). |
| 18 | +Grid operators can temporarily reduce the power of large consumers such as wallboxes, heat pumps or battery storage systems in the event of grid overload. |
| 19 | +In return, customers receive reduced grid fees. |
| 20 | + |
| 21 | +Important points: |
| 22 | + |
| 23 | +- Affects consumers from 4.2 kW power |
| 24 | +- Control via Smart Meter Gateway and control box |
| 25 | +- Customers benefit from reduced grid fees |
| 26 | + |
| 27 | +evcc supports two connection methods: **Relay** (analogue via a switch contact) or **EEBus** (digital via the EEBus protocol). |
| 28 | + |
| 29 | +## Setup |
| 30 | + |
| 31 | +§ 14a EnWG control uses evcc's [Load Management](./loadmanagement). |
| 32 | +When setting up HEMS, an internal `lpc` (Local Power Control) control circuit is automatically created, to which all charging points and other consumers are assigned. |
| 33 | +When a reduction signal is active, evcc sets a temporary power limit for this circuit. |
| 34 | + |
| 35 | +No separate load management configuration is required. |
| 36 | +If you already use load management, the `lpc` control circuit will be placed as the highest level above your existing circuits. |
| 37 | + |
| 38 | +:::tip |
| 39 | +HEMS can also be set up via the configuration interface. |
| 40 | +::: |
| 41 | + |
| 42 | +## Configuration via Relay (Analogue) |
| 43 | + |
| 44 | +The analogue connection via a switch contact is the simplest solution. |
| 45 | +The control box activates a contact which is evaluated by evcc. |
| 46 | + |
| 47 | +### Basic Configuration |
| 48 | + |
| 49 | +```yaml |
| 50 | +hems: |
| 51 | + type: relay |
| 52 | + maxPower: 8400 # Total power limit when signal is active (in watts) |
| 53 | + limit: |
| 54 | + # Plugin-specific configuration |
| 55 | +``` |
| 56 | + |
| 57 | +### Determining the Power Limit |
| 58 | + |
| 59 | +The power limit is communicated to you by the grid operator. |
| 60 | +For multiple controllable consumption devices (SteuVE), the simultaneity factor is taken into account. |
| 61 | +You can also calculate the limit yourself using the formula: **Total limit = Number of SteuVE × 4.2 kW × Simultaneity factor**. Details on the calculation can be found [here](https://www.inexogy.com/blog/14a-enwg/). |
| 62 | + |
| 63 | +### Examples for Different Connections |
| 64 | + |
| 65 | +import Tabs from "@theme/Tabs"; |
| 66 | +import TabItem from "@theme/TabItem"; |
| 67 | + |
| 68 | +<Tabs> |
| 69 | +<TabItem value="gpio" label="Raspberry Pi GPIO"> |
| 70 | + |
| 71 | +When using a Raspberry Pi, the GPIO pin can be read directly: |
| 72 | + |
| 73 | +```yaml |
| 74 | +hems: |
| 75 | + type: relay |
| 76 | + maxPower: 8400 # Example for 2 SteuVE |
| 77 | + limit: |
| 78 | + source: script |
| 79 | + cmd: gpioget gpiochip0 17 # Read GPIO pin 17 |
| 80 | + # Return value: 0 = not limited, 1 = limited |
| 81 | +``` |
| 82 | + |
| 83 | +</TabItem> |
| 84 | +<TabItem value="mqtt" label="MQTT"> |
| 85 | + |
| 86 | +If the control box or gateway sends MQTT messages: |
| 87 | + |
| 88 | +```yaml |
| 89 | +hems: |
| 90 | + type: relay |
| 91 | + maxPower: 11340 # Example for 3 SteuVE with simultaneity factor 0.9 |
| 92 | + limit: |
| 93 | + source: mqtt |
| 94 | + topic: hems/limit/status |
| 95 | + # Expected values: 0/false = normal, 1/true = limited |
| 96 | +``` |
| 97 | + |
| 98 | +</TabItem> |
| 99 | +<TabItem value="http" label="HTTP API"> |
| 100 | + |
| 101 | +For control boxes with REST API: |
| 102 | + |
| 103 | +```yaml |
| 104 | +hems: |
| 105 | + type: relay |
| 106 | + maxPower: 13440 # Example for 4 SteuVE with simultaneity factor 0.8 |
| 107 | + limit: |
| 108 | + source: http |
| 109 | + uri: http://steuerbox.local/api/limit |
| 110 | + jq: .limited # JSON path to boolean value |
| 111 | +``` |
| 112 | +
|
| 113 | +</TabItem> |
| 114 | +</Tabs> |
| 115 | +
|
| 116 | +## Configuration via EEBus (Digital) |
| 117 | +
|
| 118 | +The digital connection via EEBus is the future-proof and preferred solution. |
| 119 | +The control box communicates directly with evcc via the EEBus protocol and automatically transmits the power limit. |
| 120 | +
|
| 121 | +### Prerequisites |
| 122 | +
|
| 123 | +- evcc installation with EEBus support |
| 124 | +- Control box with EEBus interface |
| 125 | +- Network connection between evcc and control box |
| 126 | +
|
| 127 | +### Step 1: Generate Certificates |
| 128 | +
|
| 129 | +EEBus requires certificates for secure communication. These must be created once. |
| 130 | +Run the following command in the console: |
| 131 | +
|
| 132 | +```bash |
| 133 | +evcc eebus-cert |
| 134 | +``` |
| 135 | + |
| 136 | +This command creates the required certificates and displays the configuration that must be inserted into `evcc.yaml`. |
| 137 | + |
| 138 | +### Step 2: Basic EEBus Configuration |
| 139 | + |
| 140 | +Add the EEBus configuration to `evcc.yaml`: |
| 141 | + |
| 142 | +```yaml |
| 143 | +# Basic EEBus configuration |
| 144 | +eebus: |
| 145 | + certificate: |
| 146 | + public: | |
| 147 | + -----BEGIN CERTIFICATE----- |
| 148 | + # Insert public key here |
| 149 | + -----END CERTIFICATE----- |
| 150 | + private: | |
| 151 | + -----BEGIN EC PRIVATE KEY----- |
| 152 | + # Insert private key here |
| 153 | + -----END EC PRIVATE KEY----- |
| 154 | + # Optional: Specify network interface (recommended) |
| 155 | + interfaces: |
| 156 | + - eth0 # or the appropriate interface |
| 157 | + # Optional: Define your own SKI |
| 158 | + shipid: EVCC-1234567890abcdef |
| 159 | +``` |
| 160 | +
|
| 161 | +### Step 3: HEMS Configuration |
| 162 | +
|
| 163 | +Configure the HEMS interface for § 14a EnWG: |
| 164 | +
|
| 165 | +```yaml |
| 166 | +hems: |
| 167 | + type: eebus |
| 168 | + ski: "1234-5678-90AB-CDEF" # SKI of the control box |
| 169 | + # You can find the SKI in your control box documentation |
| 170 | +``` |
| 171 | + |
| 172 | +:::note Note |
| 173 | +With EEBus, the power limit is automatically transmitted by the control box. |
| 174 | +::: |
| 175 | + |
| 176 | +### Step 4: Determine SKI and Pairing |
| 177 | + |
| 178 | +#### Determine evcc SKI |
| 179 | + |
| 180 | +After starting evcc, your own SKI is displayed in the logs: |
| 181 | + |
| 182 | +```bash |
| 183 | +evcc --log debug | grep -i ski |
| 184 | +``` |
| 185 | + |
| 186 | +#### Perform Pairing |
| 187 | + |
| 188 | +1. **In the control box**: Add evcc as HEMS |
| 189 | + - Enter the SKI of evcc |
| 190 | + - Specify the IP address of evcc |
| 191 | + - Start the pairing process |
| 192 | + |
| 193 | +2. **In evcc**: Add the control box SKI to the HEMS configuration |
| 194 | + - Enter the control box SKI in the HEMS configuration |
| 195 | + - Restart evcc |
| 196 | + |
| 197 | +3. **Check connection**: |
| 198 | + ```bash |
| 199 | + # Activate trace logging for EEBus |
| 200 | + evcc -l trace eebus |
| 201 | + ``` |
| 202 | + |
| 203 | +:::tip Important |
| 204 | + |
| 205 | +- Certificates only need to be generated once |
| 206 | +- After successful pairing, the configuration must not be changed |
| 207 | + ::: |
| 208 | + |
| 209 | +## How It Works |
| 210 | + |
| 211 | +### Normal Operation |
| 212 | + |
| 213 | +In normal operation, evcc charges without power limitation by the HEMS. |
| 214 | +The charging points operate with their normal configuration and are coordinated by additional [Load Management](./loadmanagement) restrictions if applicable. |
| 215 | + |
| 216 | +### Reduction Signal Active |
| 217 | + |
| 218 | +When the grid operator sends a reduction signal: |
| 219 | + |
| 220 | +1. **Relay**: The contact is closed, evcc activates the configured `maxPower` limit |
| 221 | +2. **EEBus**: The control box digitally transmits the calculated total limit |
| 222 | + |
| 223 | +evcc reduces all charging points assigned to the `lpc` circuit according to the limit. |
| 224 | +If total consumption is too high, charging processes can also be stopped. |
| 225 | +The control affects all modes (Solar, Min+Solar, Fast). |
| 226 | + |
| 227 | +**Battery control during reduction:** |
| 228 | +If [active battery control](./battery#battery-control) is configured and grid charging of the home battery is active, this is automatically paused. |
| 229 | +The battery is set to "hold" mode so that it neither charges nor discharges. |
| 230 | +After the power reduction ends, grid charging automatically resumes. |
| 231 | + |
| 232 | +When a control limit is active, a **banner with control notice** is displayed on the main page in evcc. |
| 233 | + |
| 234 | +## Controlling Additional Consumers |
| 235 | + |
| 236 | +In addition to charging points, other controllable consumers can also be integrated into § 14a load management. |
| 237 | +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. |
| 238 | + |
| 239 | +The control takes into account the current power consumption of all consumers assigned to the internal `lpc` circuit. |
| 240 | +This automatically includes all charging points and all meters with corresponding switching outputs or EEBus interface with LPC use case as other consumers. |
| 241 | + |
| 242 | +First, all other consumers are dimmed. |
| 243 | +The remaining power is then distributed to the active charging points. |
| 244 | +Due to flat dimming of other consumers, the available charging power for active charging points can in exceptional cases even be higher than in normal state. |
| 245 | +If throttling the charging points including dimming all other consumers is not sufficient, charging processes at charging points are interrupted. |
| 246 | + |
| 247 | +:::note Availability |
| 248 | +Currently, only one dimmable meter (EEBus consumer) exists. |
| 249 | +This feature is being expanded and compatible meters will be marked in the [device documentation](/docs/devices/meters). |
| 250 | +::: |
| 251 | + |
| 252 | +## Further Information |
| 253 | + |
| 254 | +- [Load Management](./loadmanagement) - Basics of load distribution |
| 255 | +- [Plugins](../devices/plugins) - Advanced plugin configurations |
0 commit comments