Skip to content

Dynamische 70% Regel

Christian edited this page Jul 5, 2017 · 2 revisions

Dynamische 70%-Regel in FHEM

Dieser Artikel beschreibt, wie Betreiber einer Photovoltaik-Anlage die Hard- und Software zur Umsetzung der dynamischen 70%-Regel in FHEM integrieren können.

70%-Regel

Betreiber von Anlagen zur Erzeugung von Strom aus solarer Strahlungsenergie mit einer installierten Leistung von höchstens 30 Kilowatt müssen am Verknüpfungspunkt ihrer Anlage mit dem Netz die maximale Wirkleistungseinspeisung auf 70 Prozent der installierten Leistung begrenzen.

Quelle: EEG 2014 §9 (2) 2.b)

Als statische (auch: harte) 70%-Regel bezeichnet man die Begrenzung des erzeugten Stroms auf 70% der installierten Leistung. Beträgt die installierte Leistung z.B. 10 kWp, werden niemals mehr als 7 kW erzeugt.

Als dynamische (auch: weiche) 70%-Regel bezeichnet man die Begrenzung des eingespeisten Stroms auf 70% der installierten Leistung. Beträgt die installierte Leistung z.B. 10 kWp und werden im Haushalt 2 kW verbraucht, dürfen 7 + 2 = 9 kW erzeugt werden.

Umsetzung der 70%-Regel (allgemein)

Die Umsetzung der statischen 70%-Regel ist einfach - im Wechselrichter wird die Begrenzung fest eingetragen.

Die Umsetzung der dynamischen 70%-Regel erfordert:

  1. die Messung des verbrauchten Stroms Pv
  2. die Messung des erzeugten Stroms Pe
  3. die Möglichkeit, die Wechselrichter auf 70% der Nennleistung der Photovoltaik-Anlage Pn zu begrenzen

Die Leistungsbegrenzung der Wechselrichter muss so erfolgen, dass immer gilt: Pe - Pv ≤ 70% · Pn

Messung des verbrauchten Stroms

Zur Messung des verbrauchten Stroms gibt es 3-Phasen-Zähler mit S0-Ausgang, die für jede verbrauchte Wattstunde ein Signal abgeben.

Messung des erzeugten Stroms

Zur Messung des erzeugten Stroms kann man ebenfalls einen Zähler mit S0-Ausgang installieren. Allerdings haben alle Wechselrichter bereits einen Erzeugungszähler integriert; viele besitzen auch eine Kommunikationsschnittstelle (meist RS485, manchmal auch Bluetooth). Über einen geeigneten Adapter kann man die Hardwareverbindung zwischen dem FHEM-Rechner und den Wechselrichtern herstellen. Das darauf aufbauende Kommunikationsprotokoll unterscheidet sich je nach Hersteller. Für einige Modelle gibt es ein FHEM-Modul (z.B. Kostal Piko, Sunways NT5000 oder SMA). Darüber hinaus stehen Module zur Einbindung von Datenloggern wie SolarView, SolarLog oder Sunny Home Manager zur Verfügung, die zahlreiche Wechselrichter-Hersteller und -Modelle unterstützen.

Leistungsbegrenzung

Auch für die Leistungsbegrenzung ist eine Kommunikation mit den Wechselrichtern notwendig. Die zur Zeit verfügbaren FHEM-Module erlauben aber nur das Auslesen und nicht die Steuerung der Leistungsbegrenzung. Deshalb muss man entweder das Hersteller-Protokoll selbst dekodieren und ein passendes FHEM-Modul schreiben, oder man ist auf einen Datenlogger oder zusätzliche Hardware angewiesen. Es gibt Lösungen vom jeweiligen Wechselrichter-Hersteller (z.B. Steca SEM oder SMA SHM) oder von Drittanbietern (z.B. SolarLog oder PowerDog).

Optional: Messung des eingespeisten Stroms

Bei Inbetriebnahme einer Photovoltaik-Anlage wird ein Zweirichtungszähler installiert, der den bezogenen und den eingespeisten Strom misst. Viele solcher Zähler lassen sich mit einem Infrarot-Lesekopf auslesen. Als Software für die Integration in FHEM kommen das Modul SMLUSB oder Datenlogger wie z.B. SolarView in Frage.

Beispiel-Szenario

Übersicht

  1. Hardware zur Umsetzung der dynamischen 70%-Regel
  • Photovoltaikanlage mit 6 kWp Nennleistung
  • 2 Wechselrichter von Steca mit RS485-Schnittstelle
  • StecaGrid Smart Energy Meter (SEM) zur Umsetzung der 70%-Regel
  • 3-phasiger Stromzähler mit S0-Ausgang zur Messung des verbrauchten Stroms
  1. Hardware zum Zuschalten von Verbrauchern
  • Arduino zur Integration des SEM-Relais in FHEM über Firmata
  • Funksteckdose zum Schalten eines Verbrauchers mit 800W
  1. Hard- und Software zum Logging
  • RS485-USB-Adapter (USB-RS485-WE-1800-BT)
  • USB-Infrarot-Lesekopf zur Messung des eingespeisten Stroms
  • SolarView zur Auswertung der RS485- und D0-Infrarot-Schnittstelle

Die Umsetzung der 70%-Regel übernimmt der SEM. Er ist per Windows-Software so programmiert, dass er die Wechselrichter auf 4,2 kW (70%) zuzüglich des aktuellen Stromverbrauches begrenzt. Den aktuellen Stromverbrauch bezieht er über die S0-Schnittstelle vom Stromzähler.

Der SEM hat einen programmierbaren Relais-Ausgang; dieser ist so eingestellt, dass er schaltet, wenn der SEM die Stromproduktion begrenzt. Der Relais-Ausgang ist mit einem Arduino-Pin verbunden, der über das Modul FRM_IN in FHEM eingebunden ist. Sobald die Stromproduktion 5 Minuten lang begrenzt wird, wird per Funksteckdose ein Verbraucher mit 800 W zugeschaltet (Watchdog pv_begrenzung_vermeiden).

Der eingespeiste Strom wird über die D0-Infrarot-Schnittstelle von SolarView erfasst und steht durch das Modul SolarView in FHEM zur Verfügung. Sobald die Summe aus eingespeistem Strom und dem zugeschalteten Verbraucher unter 70% fällt, wird der Verbraucher abgeschaltet (Watchdog pv_verbraucher_abschalten).

FHEM

Datei fhem.cfg

################################################################################
# 433 MHz                                                                      #
################################################################################

# Firmata Basis-Modul für die Kommunikation mit dem Arduino
define firmata FRM /dev/ttyACM0@57600

# 433 MHz-Sender
define sender FRM_RCOUT 56
attr   sender IODev firmata

# Funk-Steckdose zum Zuschalten von Verbrauchern
define steckdose IT 00F0FF0FFF 0F F0
attr   steckdose IODev sender

################################################################################
# Photovoltaik                                                                 #
################################################################################

# Wechselrichter
define sv SolarView raspberrypi 15000 wr1 wr2 60
attr   sv event-on-change-reading currentPower,totalEnergyDay,wr1_UDC,wr2_UDC

# Zweirichtungszähler
define d0_bezug SolarView raspberrypi 15000 wr22 60
attr   d0_bezug event-on-change-reading totalEnergyDay
define d0_lieferung SolarView raspberrypi 15000 wr21 60
attr   d0_lieferung event-on-change-reading currentPower,totalEnergyDay

# Relais-Ausgang des StecaGrid SEM
define sem_relais FRM_IN 8
attr   sem_relais IODev firmata
attr   sem_relais internal-pullup on
attr   sem_relais activeLow yes
attr   sem_relais event-min-interval reading:1

# Überwachung der Einspeisebegrenzung
define pv_begrenzung_vermeiden watchdog sem_relais.reading:.on 00:05:00 sem_relais.reading:.off {\
  if (Value('steckdose') ne 'on') { DoSet('steckdose', 'on') };;\
  fhem('trigger pv_begrenzung_vermeiden .');;\
}

# Überwachung des zuschaltbaren Verbrauchers
define pv_verbraucher_abschalten watchdog steckdose.on 00:05:00 steckdose.off {\
  if (ReadingsVal('d0_lieferung', 'currentPower', 0) + 800 < 4200) {\
    DoSet('steckdose', 'off');;\
  } else {\
    fhem('trigger pv_verbraucher_abschalten .');;\
  }\
  fhem('trigger pv_verbraucher_abschalten .');;\
}

# Log für Photovoltaik
define log_sv FileLog ./log/sv-%Y-%m-%d.log (sv|sem_.*):.*

# Plot für Photovoltaik
define weblink_sv SVG log_sv:my_solarview:CURRENT
attr   weblink_sv title "Photovoltaik"
attr   weblink_sv plotfunction 4:sv.totalEnergyDay.:: 4:sv.currentPower.:: 4:sv.wr1_UDC.:: 4:sv.wr2_UDC.::
attr   weblink_sv nrAxis 2,1

# Log für Zweirichtungszähler
define log_d0 FileLog ./log/d0-%Y-%m-%d.log d0_.*

# Plot für Zweirichtungszähler
define weblink_d0 SVG log_d0:my_d0:CURRENT
attr   weblink_d0 title "Zweirichtungszähler"
attr   weblink_d0 plotfunction 4:d0_bezug.totalEnergyDay.:: 4:d0_lieferung.totalEnergyDay.:: 4:d0_lieferung.currentPower.::
attr   weblink_d0 nrAxis 2,1

Datei www/gplot/my_d0.gplot

set terminal size <SIZE>
set title '<TL>'
set grid y2tics
set ylabel "Bezug (kWh)"
set y2label "Einspeisung (kWh)"
set y3label "Leistung (W)"
#set yrange [0:10]
#set y2range [0:36]

#FileLog <SPEC1>
#FileLog <SPEC2>
#FileLog <SPEC3>
#FileLog 4:::"0"

plot "<IN>" using 1:2 axes x1y1 ls l0fill with steps title 'Bezug',\
     "<IN>" using 1:2 axes x1y2 ls l1fill with steps title 'Einspeisung',\
     "<IN>" using 1:2 axes x1y3 ls l2 with lines title 'Wirkleistung',\
     "<IN>" using 1:2 axes x1y3 ls l5 with lines title ''

Datei www/gplot/my_solarview.gplot

set terminal size <SIZE>
set title '<TL>'
set grid y2tics
set ylabel "Ertrag (kWh)"
set y2label "Leistung (W)"
set y3label "Spannung (V)"
set y3range [0:]

#FileLog <SPEC1>
#FileLog <SPEC2>
#FileLog <SPEC3>
#FileLog <SPEC4>

plot "<IN>" using 1:2 axes x1y1 title 'Ertrag' ls l1fill with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Leistung' ls l0 with lines,\
     "<IN>" using 1:2 axes x1y3 title 'Spannung (WR 1)' ls l2 with lines,\
     "<IN>" using 1:2 axes x1y3 title 'Spannung (WR 2)' ls l5 with lines

Links