Warum Netzdienlichkeit, was ist das?
Die Energiewende bringt eine fundamentale Herausforderung mit sich: Unser Stromnetz wurde für zentrale Erzeugung gebaut, nicht für Millionen dezentraler Solaranlagen. Genau hier kommt Netzdienlichkeit ins Spiel – Netzdienlichkeit ist ein Konzept, bei dem die dezentralen Solaranlagen aktiv zur Netzstabilität beitragen.
Das Problem:
- Vormittags laden Millionen PV-Anlagen ihren Speicher voll, obwohl es Strombedarf im Netz gibt.
- Mittags speisen Millionen PV-Anlagen gleichzeitig Strom ins Netz ein, da ihr Speicher voll ist.
- Dies führt zu Netzüberlastungen und teurem Redispatch
Die Lösung: Netzdienliches Verhalten
- Statt den Speicher erst zu laden, unterstützen wir das Netz
- Morgens: PV-Überschuss einspeisen (statt Batterie zu laden) → dämpft die Morgenlastspitze
- Nachmittags: Batterie mit lokalem Überschuss laden → entlastet das Netz bei der Mittagsspitze
- Ergebnis: Weniger Netzausbau, stabileres System, geringere Systemkosten
Die Automatisierung der PV-Anlage
verwendete Home Assistant Entitäten
- PV-Prognose (Solcast-Integration)
sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute
: Prognose für die Rest-PV-Energie des Tagessensor.solcast_pv_forecast_zeitpunkt_spitzenleistung_heute
: Zeitpunkt der maximalen Leistung der eigenen PV-Anlage
- Batteriemanagement
sensor.deye8k_battery
: Aktueller Ladestand des eigenen PV-Speichersnumber.deye8k_battery_max_charging_current
: Steuerung des Ladestroms der eigenen Batterie
Die Logik der Automatisierung im Detail

Schlüsselentscheidungen:
- Vor der PV-Spitze (morgens):
- „Kann ich die Batterie später noch voll bekommen?“ → Nur wenn die Prognose knapp ist, wird geladen
- Sonst: Einspeisung priorisieren → Entlastung der Morgenspitze mit Netzbezug
- Nach der PV-Spitze (nachmittags):
- Batterie laden ->Entlastung der Mittagsspitze mit PV-Überschuss
- Sicherheitsfaktor (10%):
- Berücksichtigt Umwandlungsverluste
- Puffer für Prognoseungenauigkeiten
Konfigurationsanleitung für Home Assistant
Voraussetzungen:
- Solcast-Integration, oder ähnliche PV-Vorhersage
- Batterie Sensor für den Füllstand der Batterie
- Möglichkeit das Laden der Batterie zu steuern
Schritt-für-Schritt:
- Neue Automatisierung anlegen
- YAML-Code einfügen:
Die eigenen Werte für den PV-Speicher können in der Automatisierung angepasst werden.
variables:
battery_capacity: 10.0 # Batteriegröße in kWh
max_charge_current: 100 # Maximalstrom WR
max_fill_level: 99.5 # Maximaler Füllstand der Batterie in %
safety_factor: 1.1 # Bei ungenauen Prognosen erhöhen
alias: Netzdienliche Batterieladesteuerung
description: Regelt Ladeleistung basierend auf Tageszeit, Batteriestand und PV-Prognose
triggers:
- minutes: /45
trigger: time_pattern
- entity_id:
- sensor.deye8k_battery
- sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute
- sensor.solcast_pv_forecast_zeitpunkt_spitzenleistung_heute
trigger: state
actions:
- variables:
battery_level: "{{ states('sensor.deye8k_battery') | float }}"
remaining_pv: >-
{{
states('sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute')
| float }}
peak_time_str: >-
{{ states('sensor.solcast_pv_forecast_zeitpunkt_spitzenleistung_heute')
}}
battery_capacity: 25
max_charge_current: 185
max_fill_level: 99
safety_factor: 1.1
needed_energy: "{{ (battery_capacity * (100 - battery_level) / 100) }}"
peak_time_ts: >-
{{ as_timestamp(peak_time_str) if peak_time_str not in ['unknown',
'unavailable', ''] else none }}
is_after_peak: |-
{% if peak_time_ts != none %}
{{ now().timestamp() > peak_time_ts }}
{% else %}
false
{% endif %}
- if:
- condition: template
value_template: "{{ battery_level >= max_fill_level }}"
then:
- target:
entity_id: number.deye8k_battery_max_charging_current
data:
value: 0
action: number.set_value
else:
- if:
- condition: template
value_template: "{{ not is_after_peak }}"
then:
- if:
- condition: template
value_template: "{{ (remaining_pv * safety_factor) < needed_energy }}"
then:
- target:
entity_id: number.deye8k_battery_max_charging_current
data:
value: "{{ max_charge_current }}"
action: number.set_value
else:
- target:
entity_id: number.deye8k_battery_max_charging_current
data:
value: 0
action: number.set_value
else:
- target:
entity_id: number.deye8k_battery_max_charging_current
data:
value: "{{ max_charge_current }}"
action: number.set_value
mode: single
Warum machen wir das?
- Praktischer Klimaschutz:
- Reduziert Netzausbaukosten
- Ermöglicht höheren PV-Zubau ohne Netzengpässe
- Wirtschaftlicher Vorteil: (Wenn die Pläne zu dynamischen Netzentgelten umgesetzt werden)
- Höhere Einspeisevergütung durch gezielte Einspeisung
- Vermeidung teuren Netzausgleichsstroms
- Höhere Einspeisevergütung durch gezielte Einspeisung
- Vermeidung teuren Netzausgleichsstroms
- Technische Eleganz:
- Nutzt vorhandene Hardware intelligent
- Keine zusätzlichen Investitionen nötig
Netzdienlichkeit ist kein Verzicht, sondern intelligente Kooperation mit dem System.