Akku netzdienlich laden

GPM ist ja dazu gedacht möglichst kostensparend den Akku zu laden.

Da ich einen Fixen Strompreis habe, ist mir das persönlich egal und ich lade den Akku nur über die PV Anlage auf.

Jetzt liest man ja aber immer mehr von den Problemen mit der Netzstabilität und ich würde gerne wissen ob es schon jemand umgesetzt hat den Speicher abhängig von Verbrauchsspitzen zu laden.

Sicherlich nur eine Spielerei bei meinem kleinen Speicher, aber die Daten sollten ja schon alle vorhanden sein. Dann kann man es ja auch nutzen.

Bevor ich mir jetzt hier etwas zurecht bastele, git es vieleicht schon eine fertige Lösung?

2 „Gefällt mir“

die selbe Idee ist mir eben auch gekommen. Bin gerade noch unterwegs und wollte dazu heute Nachmittag was schreiben. Danke dass Du das Thema aufgegriffen hast. Eine Lösung habe ich hierzu aber auch noch nicht

Hi,
ich mache das eigentlich schon seit Jahren. Die Ausführung ist recht einfach. Die ganze Sache ist eigentlich im Sommer relevant. In den Dunkelmonaten ohne Sonne geht sowieso alles ins Haus und in den Akku.
Da der Strom so ziemlich immer um die gleiche Zeit billig wird und damit zuviel im Netz ist, starte ich die netzdienliche Optimierung immer um 12:00 Uhr. Vorher wird der Akku nur mit max. 250 Watt geladen. Der Hausverbrauch wird wird natürlich auch von der PV-Anlage bedient. Ab 12:00 werden dann große Verbraucher genutzt. Die Ladeleistung Akku erhöht sich auf 2500 Watt. Der Warmwassertank wird auf 65°C erhitzt. Dieser ganze Spuk dauert dann ca. 2-3 Stunden. In dieser Zeit speise ich so gut wie nichts ein. Dafür bekommen meine Nachbarn von mir schönen, grünen Strom ab dem frühen Morgen. Ob die wollen oder nicht.
Fast jeder Tag mit guter solaren Energie sieht dann ähnlich wie heute aus:


Sollte die Sonne mal nicht so scheinen, nutze ich die Solarprognose (verbleibend) um evtl. doch ein wenig mehr in die Batterie zu laden. Da gibt es ein kleines Template.

##Lade-Wert je nach verbleibender Solarproduktion
      - name: "ladeleistung solar rest"
        unique_id: "ladeleistung_solar_rest"
        state: >
          {% set rest_solar =  (states('sensor.solar_production_today_remaining_sum')|float(0)|round(0)) -%}
          {% set soc        =  (states('sensor.battery_state_of_capacity')|float(0)|round(0)) -%}
          {% set mittag     =  (12,15) <= (now().hour, now().minute) <= (16,45) -%}
          {%   if rest_solar >=  1  and soc  <= 30 and mittag == false  -%}
           {{(3000)|float(0)|round(0)}}
          {% elif (rest_solar >= 25 and soc  <= 50 and mittag == false)
             or   (rest_solar >= 25 and soc  >= 30 and mittag == false) -%}
           {{(250)|float(0)|round(0)}}
          {% elif (rest_solar >= 22 and soc  <= 55 and mittag == false)
             or   (rest_solar >= 22 and soc  >= 60 and mittag == false) -%}
           {{(750)|float(0)|round(0)}}
          {% elif (rest_solar >= 19 and soc  <= 70 and mittag == false)
             or   (rest_solar >= 19 and soc  >= 70 and mittag == false) -%}
           {{(1000)|float(0)|round(0)}}
          {% elif (rest_solar >= 16 and soc  <= 75 and mittag == false)
             or   (rest_solar >= 16 and soc  >= 80 and mittag == false) -%}
           {{(1500)|float(0)|round(0)}}
          {% elif (rest_solar >= 13 and soc  <= 80 and mittag == false)
             or   (rest_solar >= 13 and soc  >= 85 and mittag == false) -%}
           {{(2000)|float(0)|round(0)}}
          {% elif (rest_solar >= 7  and soc  >= 88 and mittag == true)  -%}
           {{(1000)|float(0)|round(0)}}
          {% elif mittag == true  -%}
           {{int(2500)}}
          {% else -%}
           {{int(4500)|round(0)}}
          {% endif %}

Da die Heizstäbe des Warmwassertanks entweder 3KW oder 6KW ziehen, gibt es dafür auch eine kleine Regelung mittels NodeRed. Sonst würde ich mir mit ein wenig Pech den Akku leerziehen.

Finanziell bringt das Ganze für mich nichts, wohl aber für alle ohne PV. Vom grünen Strom mal abgesehen speise ich halt nicht ein, wenn der Strom billig (wertlos) ist. Die Kosten für die Einspeisung zahlen nämlich alle. Ob PV oder nicht. Also gebe ich meinen Strom lieber ab, wenn er was wert ist und nicht durch Gas oder Kohle erzeugt werden muss.

Ich habe mich mal für die einfache Lösung entschieden, es gibt bestimmt bessere Regelungen. Funktioniert so aber.

12 KW auf dem Dach, 10 kWh-Akku, Wärmepumpe, e-Auto erst wieder ab November, Tarif Octopus-Heat (im Sommer ist der Tarif aber egal, weil ich keinen Strom kaufe v. April - Oktober).

1 „Gefällt mir“

Ist auf jeden Fall ein Thema über das ich auch schon länger nachdenke. Aktuell ist da bei EVCC mit dem Optimizer was in der Entwicklung. Bisher noch ein experimentelles Feature ohne Steuerungsfunktion.

Hallo @rapahl
danke für deinen ausführlichen Beitrag. Deine Lösung kann für deine konkrete Anlage funktionieren, verfolgt jedoch ein anderes Ziel und ist daher nicht mit “netzdienlich Laden” wie es von SMC (Teil von SFML) definiert wird, im live- Handbuch beschrieben, im Forum vorgestellt wurde zu nicht gleichzusetzen / vergleichen!

Daher muss ich hier etwas ausführlicher werden um die Unterschiede klar zu benennen.

Deine Steuerung basiert auf festen Vorgaben:

  • Optimierung ab 12:00 Uhr
  • vorher maximal 250 Watt Akkuladung
  • anschließend festgelegte Ladeleistungen
  • feste Grenzen für Solarprognose und Akkustand
  • zusätzliche Logik über Templates und Node-RED

Das ist eine individuell auf 12 kWp PV, 10 kWh Speicher, Wärmepumpe und große Heizstäbe abgestimmte Regelung. SMC arbeitet grundlegend anders.

SMC steuert die Netzladung selbst

SMC liefert nicht nur einen Sensorwert oder eine Empfehlung. Es steuert die Netzladung des Akkus selbst.

Dafür benötigt der User:

  • keine eigenen Lade-Templates,
  • keine zusätzlichen Automationen,
  • keinen Node-RED-Flow,
  • keine festen Ladezeiten,
  • keine selbst entwickelten SOC-Tabellen,
  • und keine manuell abgestimmten Leistungsstufen.

SMC entscheidet eigenständig:

  • laden,
  • warten,
  • oder nicht laden.

Zusätzlich berechnet der AI-Stack, wie viel Energie tatsächlich geladen werden soll. Das Ziel ist ausdrücklich nicht, den Akku bei einem vermeintlich günstigen Preis möglichst schnell auf 100 Prozent zu bringen.

Der Akku wird als aktiver Teil des Energiesystems betrachtet

SMC behandelt den Speicher nicht als passiven Behälter, der bei jeder Gelegenheit gefüllt wird. Der Akku ist ein aktiver Teil der gesamten Energiekette und das Ziel ist es kosteneffizient zu laden / entladen.

Für jede Entscheidung werden gemeinsam betrachtet:

  • aktueller Akkustand,
  • erwarteter Verbrauch,
  • PV-Prognose für heute und morgen,
  • aktuelle und zukünftige Strompreise,
  • verfügbare Ladezeit,
  • mögliche Ladeleistung,
  • benötigte Energiemenge,
  • AC→DC→AC-Verluste,
  • Eigenverbrauch des Speichersystems,
  • leistungsabhängiger Wirkungsgrad des Wechselrichters,
  • sowie möglicherweise günstigere Preise im weiteren Prognosezeitraum.

Reichen Akkustand und erwartete PV-Produktion aus, wird nicht aus dem Netz geladen.Ist später ein günstigerer Preis verfügbar, wartet SMC.
Drohen dagegen teure Stunden und reicht die vorhandene Energie voraussichtlich nicht aus, lädt SMC vorher genau die wirtschaftlich benötigte Menge.
Der Akku wird somit nicht einfach vollgeladen. Es bleibt möglichst ausreichend freie Kapazität für den späteren PV-Ertrag erhalten und SMC kann die Ladung über mehrere Zeitfenster am Tag verteilen um die optimale Wirtschaftlichkeit zu erreichen.

Denn: Ein günstiger Einkaufspreis reicht nicht aus

Der Einkaufspreis kann nicht direkt mit den später vermiedenen Netzbezugskosten verglichen werden. Eine für 20 ct/kWh geladene Kilowattstunde kostet beim späteren Verbrauch aus dem Akku nicht mehr 20 ct/kWh. Ladeverluste, Entladeverluste Wirkungsgrade, Verlust durch Teillastbereiche, Eigenverbrauch des BMS / WR / Kabellängen/.. müssen ebenso betrachtet werden.

Bei einem Gesamtwirkungsgrad von beispielsweise 80 Prozent entstehen aus 20 ct/kWh bereits mindestens 25 ct/kWh für die tatsächlich nutzbare Energie!

SMC bewertet deshalb die effektiven Kosten der Energie, die später wieder aus dem Akku zurückgeliefert wird.
Dadurch kann SMC auch einen nominell günstigen Preis ablehnen, wenn die Speicherung nach allen Verlusten unwirtschaftlich wäre.

Eine einfache Preisschwelle oder feste Uhrzeit kann diese Bewertung nicht leisten. - Ohne die lokale KI von SFML, oder mit einer Automation ist das nicht zu machen!

Eine feste Mittagszeit ist kein verlässliches Marktsignal

Die Annahme, Strom werde immer ungefähr zur gleichen Uhrzeit günstig, ist für dynamische Tarife zu pauschal und inkorrekt. Gerade an Wochenende oder Schlechtwetter-Phasen.
Der günstigste Zeitraum kann also abhängig von Wetter, Wochentag, Verbrauch, Windstrom und Marktsituation deutlich variieren. Ein Preis, der um 12 Uhr günstig erscheint, kann zwei Stunden später noch niedriger sein.

SMC bewertet deshalb den verfügbaren Prognosezeitraum (48 Std). Wenn in zwei Stunden ein Preis knapp unter der Schwelle liegt, vier Stunden später aber ein wesentlich niedrigerer Preis erwartet wird und der Energiebedarf das Warten erlaubt, lädt SMC nicht sofort. Eine Preisschwelle ist also kein verlässlicher Grund (!!) SMC ist kein einfacher Ein-/Ausschalter.

Gerade im Winter entsteht ein wesentlicher Vorteil

Die Aussage, eine intelligente Speichersteuerung sei im Wesentlichen nur im Sommer relevant, trifft auf SMC nicht zu.
Eine Steuerung, die lediglich PV-Ladung in die Mittagsstunden verschiebt, ist tatsächlich hauptsächlich eine Sommerstrategie. SMC ist jedoch eine wirtschaftliche Netzladesteuerung und kann gerade im Winter einen erheblichen Mehrwert bieten.

In den Wintermonaten:

  • ist wenig oder keine PV-Energie verfügbar,
  • wird der Akku häufiger vollständig entladen,
  • entsteht ein größerer Netzbezug,
  • treten erhebliche Preisunterschiede zwischen einzelnen Stunden auf,
  • und kann gespeicherte günstige Netzenergie später teuren Netzbezug ersetzen.

SMC kann beispielsweise Energie in einer günstigen Nacht- oder Mittagsstunde laden und damit einen hohen Preis am Morgen oder Abend vermeiden. Es tut das jedoch nur, wenn der Preisunterschied nach Berücksichtigung sämtlicher Speicherverluste tatsächlich ausreicht.
Gerade bei dynamischen Stromtarifen ist das ein wichtiger wirtschaftlicher Vorteil. Der Speicher wird nicht nur auf PV-Ladung reduziert, sondern ganzjährig als aktiver Bestandteil der Energieversorgung eingesetzt.

Das gezeigte Template ist anlagenspezifisch

Dein Template enthält zahlreiche feste Schwellen und teilweise überlappende Bedingungen.

Beispiele:

  • Bei mindestens 25 kWh Restprognose trifft SOC <= 50 oder SOC >= 30 praktisch auf jeden Akkustand zu.
  • Bei mindestens 19 kWh trifft SOC <= 70 oder SOC >= 70 ebenfalls immer zu.
  • Bereits bei nur 1 kWh verbleibender Solarprognose und niedrigem SOC können außerhalb des Mittagsfensters 3.000 Watt angefordert werden.
  • Wenn keine vorherige Bedingung greift, werden pauschal 4.500 Watt ausgegeben.

Das Verhalten hängt dadurch stark von Reihenfolge und Überschneidung der Bedingungen ab. Zusätzlich wird Node-RED benötigt, damit die Heizstäbe nicht versehentlich Energie aus dem Akku beziehen.
Eine solche Lösung muss für jede Anlage individuell entwickelt, verstanden, abgestimmt und bei Änderungen erneut angepasst werden.

Hier besteht ein wesentlicher Unterschied! SMC ersetzt diese statische Regelstruktur durch eine wiederkehrende wirtschaftliche Berechnung und übernimmt anschließend selbst die Steuerung.

Besonders relevant für Balkonkraftwerke

Eine Lösung für 12 kWp PV, 10 kWh Speicher und Heizstäbe mit mehreren Kilowatt lässt sich nicht direkt auf ein Balkonkraftwerk oder andere Anlagen übertragen.

Bei Balkonkraftwerken zum Beispiel bestehen typischerweise:

  • deutlich geringere PV-Leistungen,
  • kleinere Speicher,
  • begrenzte Ladeleistungen,
  • ein stärkerer Einfluss des laufenden Hausverbrauchs,
  • relativ höhere Speicher-Eigenverbräuche,
  • und selten große, über Stunden verfügbare Mittagsüberschüsse.

Eine pauschale Mittagsregel kann dort freie Speicherkapazität blockieren oder zu spät reagieren. SMC berechnet deshalb den konkreten Energiebedarf und entscheidet, ob eine Netzladung trotz aller Verluste wirtschaftlich ist.
Gerade bei einem kleinen Speicher ist es wichtig, nicht unnötig vollzuladen.

Sure Plus ist eine unabhängige Zusatzfunktion (vielleicht hast Du SMC damit verwechselt)

Die Nutzung eines echten PV-Überschusses ist nicht die Aufgabe von SMC. Dafür gibt es unabhängig davon Sure Plus.

Sure Plus erkennt, ob nach Versorgung der eigenen Systeme und nach Berücksichtigung des Akkus tatsächlich Solarenergie übrig bleibt. Dieser reale Überschuss kann beispielsweise für einen Heizstab oder andere steuerbare Verbraucher verwendet werden, bevor die Energie ins Netz eingespeist wird und später womöglich teurer zurückgekauft werden müsste.

SMC und Sure Plus erfüllen damit unterschiedliche Aufgaben:

  • SMC optimiert die wirtschaftliche / schonende Netzladung des Akkus.
  • Sure Plus nutzt einen tatsächlich vorhandenen PV-Überschuss vor der Netzeinspeisung. (Natürlich auch vom Hubble KI-Stack überwacht.

Fazit

Deine Lösung ist eine auf deine Anlage abgestimmte, zeit- und schwellenbasierte Steuerung. SMC ist dagegen eine unmittelbar steuernde, prognosegestützte Wirtschaftlichkeitsoptimierung, die fortlaufend entscheidet, ob, wann und wie viel Netzenergie gespeichert werden soll. Das sind weder derselbe Funktionsumfang noch derselbe Automatisierungsgrad.

Der Unterschied lässt sich einfach zusammenfassen:

Eine feste Regel sagt:

Ab einer bestimmten Uhrzeit lade ich mit einer festgelegten Leistung.

SMC berechnet:

Benötige ich zusätzliche Energie, wann ist sie nach Berücksichtigung aller Verluste tatsächlich am günstigsten und wie viel davon soll geladen werden?

Das ist nicht dieselbe Funktion und nicht derselbe Automatisierungsgrad.

Hinzu kommt noch die Überwachung.. STATS bietet eine klare und verständliche Darstellung was passiert:


Viel mehr noch.. Hubble KI-Stack hilft bei der Entscheidung ob es sich lohnt einen größeren Akku zu kaufen..

Zara

PS:
Natürlich kann man SMC und S-PLUS auch kombinieren.. Also die Wirtschaftliche Effizienz mit dem persönlichen Wunsch den Akku darüber hinaus zu laden.. S-PLUS verfügt über eine gedämpfte Regelung um ständiges Schalten zu vermeiden und stellt einen Schalter bereit (an/aus) das wäre dann eine einfach HA Automation ohne Template, YAML, Node,..

UND:
Sowohl GPM, SMC, S-Plus haben eigenen Sensoren die man nach belieben für Template nutzen kann (oder Automationen).. das ist m.E. die maximale Freiheit es genauso zu machen wie man es für sich selber braucht.. möchte.

1 „Gefällt mir“

Dann teste doch mal SMC.. wenn du einen Dynamischen Tarif hast oder :wink: S-Plus..wenn es Dir nur darum geht, den verfügbaren Überschuss in den Akku zu laden..

Hallo Tom-ha,
ich habe gar nicht bewußt mitbekommen, das ich mich mit meiner Antwort auf den Themenersteller im SFML-Cosmos befand. Und danke für die vielen Worte. Leider sind die als Antwort auf das aktuelle Thema gar nicht zutreffend. Hast Du denn die Überschrift und die erste Fragestellung überhaupt gelesen? Der Themenersteller hat einen festen Strompreis und einen recht kleinen Akku und es ging einig und allein um das netzdienliche Laden.

Hallo Tom-ha,
da war der Mausfinger wieder schnell und hat schon mal auf antworten geklickt.
Mit dem Parameter “fester Strompreis” fällt ja schon mal das Laden aus dem Netz weg. Es sei denn, er freut sich über Ladeverluste während des Ladens in der netzdienlichen Zeit. Damit bleibt sein einziger Spielraum der Sommer (auch nur, wenn sein PV-System keine Zwangsladung vornimmt). Nur im Sommer kann er seinen Akku günstig laden. Und da wiederum bevorzugt zu einer festen Zeit, nämlich rund um SolarNoon (ist dann auch i.d.R. die netzdienliche Zeit). Deine Lösungen zielen ja mehr auf eine persönlich, wirtschaftliche Nutzung ab. Nicht auf die Netzdienliche.
Um eine PV-Anlage, WP, E-Auto usw. so wirtschaftlich wie möglich zu betreiben, dafür gibt es neben SFML jede Menge Lösungen (EVCC, HemSight usw). Akkuladen aus dem Netz ist auch nicht unbedingt das Wirtschaftslichste, aber bei einem dynamischen Tarif zumindest netzdienlich.
Nur leider war das gar nicht Gegenstand dieses Themas.
Bis zum nächsten Mal
Rainer

Mal eine vielleicht ganz blöde Frage, warum sollte jemand den Akku mittags mit Netzstrom laden um ihn abends und nachts mit Wandlungsverlusten zu entladen?

Warum sollte ich nicht einspeisen, auch im Bewusstsein dass alle es bezahlen müssen? Ich habe schließlich in die Anlage massiv investiert.

Ich verstehe deinen Ansatz nicht.

Gruß Stefan

Ich habe mir eine Regelung erstellen, die den Batteriespeicher möglichst netzdienlich, wirtschaftlich und akkuschonend lädt.

Der Akku wird morgens nicht sofort mit voller Leistung geladen. Stattdessen wird zunächst möglichst viel PV-Energie eingespeist. Mit steigender PV-Leistung und sinkender Restprognose erhöht sich die Batterieladeleistung schrittweise.

Zusätzlich wird der Akku zunächst nur bis 90 % SoC geladen. Die letzten 10 % werden erst freigegeben, wenn sich die verbleibende Tagesprognose der dafür benötigten Energiemenge nähert. Dadurch erreicht der Akku zuverlässig 100 % für das Zellbalancing, steht aber nicht bereits am Vormittag voll geladen.

Die Regelung berücksichtigt:

  • Batteriestand (SoC)
  • verbleibende PV-Prognose
  • aktuelle PV-Leistung
  • aktuelle Netzeinspeisung
  • Netzbezug
  • aktuelle Batterieladeleistung
  • stabilen PV-Überschuss (S-Plus)

Verwendete Entitäten

sensor.keller_sungrow_sh8_0rt_20_battery_level
sensor.prognose_heute_rest
binary_sensor.solar_forecast_stats_pv_surplus_available
sensor.keller_sungrow_sh8_0rt_20_total_dc_power
sensor.keller_sungrow_sh8_0rt_20_export_power
sensor.keller_sungrow_sh8_0rt_20_import_power
sensor.keller_sungrow_sh8_0rt_20_battery_charging_power
sensor.nord_pool_ger_aktueller_preis

number.keller_sungrow_sh8_0rt_20_battery_max_charge_power

A) Template-Helper

Der Helper berechnet kontinuierlich die optimale maximale Batterieladeleistung.

Berücksichtigt werden:

  • SoC
  • verbleibende PV-Prognose
  • aktuelle PV-Leistung
  • Einspeisung
  • Netzbezug
  • aktuelle Batterieladeleistung
  • stabiler PV-Überschuss (S-Plus)

Die Ladeleistung erfolgt in festen Stufen:

100 W
500 W
1.000 W
1.500 W
2.500 W
3.500 W
5.000 W

Eigenschaften

  • netzdienliches Laden
  • dynamische Ladeleistung
  • keine zusätzliche Netzladung
  • zweistufiges SoC-Ziel (90 % / 100 %)
  • Volladung erst gegen Ende des PV-Tages
  • Vorbereitung auf die EEG-Negativpreisregel (automatisch ab 2027 da diese bei mir vorher nicht greift)

Helper anlegen

Home Assistant

Einstellungen → Geräte & Dienste → Helfer → Template → Template-Sensor

Name:
Batterie netzdienliche Ladeleistung

Entity-ID:
sensor.batterie_netzdienliche_ladeleistung

Einheit:
W

Geräteklasse:
Leistung

Zustandsklasse:
Messung
Template-Helper
{#
  Batterie netzdienliche Ladeleistung
  Version: 1.4.0

  Neue zweistufige SoC-Strategie:

  1. Der Akku wird zunächst netzdienlich bis 90 % geladen.
  2. Ab 90 % wird die Ladeleistung auf 100 W begrenzt.
  3. Sobald die verbleibende PV-Prognose nur noch knapp über der
     Energie für die letzten 10 % liegt, wird die Volladung bis
     100 % freigegeben.
  4. Dadurch erreicht der Akku regelmäßig 100 % für das
     Zellbalancing, steht aber nicht bereits früh am Tag voll.

  Keine feste Uhrzeit:
  Die Freigabe richtet sich ausschließlich nach Restprognose,
  SoC und vorhandenem PV-Überschuss.

  Negativpreisregel:
  iMSys-Einbau am 31.07.2026.
  Die Preislogik wird automatisch erst ab 01.01.2027 verwendet.
#}

{# ---------------- Eingangswerte ---------------- #}

{% set soc =
  states('sensor.keller_sungrow_sh8_0rt_20_battery_level')
  | float(0)
%}

{% set prognose_rest =
  states('sensor.prognose_heute_rest')
  | float(0)
%}

{% set pv_leistung =
  states('sensor.keller_sungrow_sh8_0rt_20_total_dc_power')
  | float(0)
%}

{% set einspeisung =
  states('sensor.keller_sungrow_sh8_0rt_20_export_power')
  | float(0)
%}

{% set netzbezug =
  states('sensor.keller_sungrow_sh8_0rt_20_import_power')
  | float(0)
%}

{% set ladeleistung_aktuell =
  states('sensor.keller_sungrow_sh8_0rt_20_battery_charging_power')
  | float(0)
%}

{% set s_plus =
  is_state(
    'binary_sensor.solar_forecast_stats_pv_surplus_available',
    'on'
  )
%}

{# ---------------- Börsenpreis ---------------- #}

{% set preis_raw =
  states('sensor.nord_pool_ger_aktueller_preis')
%}

{% set preis_gueltig =
  preis_raw not in ['unknown', 'unavailable', 'none', '']
%}

{% set preis =
  preis_raw | float(999)
%}

{#
  Negativpreisregel erst ab 01.01.2027 aktiv.
  Bis dahin wird der Börsenpreis für die Regelung ignoriert.
#}
{% set negativpreisregel_aktiv =
  now().year >= 2027
%}

{% set preis_negativ =
  negativpreisregel_aktiv
  and preis_gueltig
  and preis < -0.0001
%}

{# ---------------- Grundeinstellungen ---------------- #}

{% set akku_kapazitaet = 9.6 %}
{% set zwischenziel_soc = 90 %}
{% set vollziel_soc = 100 %}

{% set sicherheitsreserve_w = 200 %}

{#
  Zusätzliche PV-Prognosereserve für Hausverbrauch und
  Prognoseabweichungen während der abschließenden Volladung.
#}
{% set volladung_reserve_kwh = 1.5 %}

{#
  Ladeleistung, die bei freigegebener Volladung mindestens
  angestrebt wird. Die tatsächlich verfügbare PV-Leistung
  bleibt weiterhin die Obergrenze.
#}
{% set volladung_mindestleistung = 2500 %}

{# ---------------- Zweistufiges SoC-Ziel ---------------- #}

{#
  Energiebedarf von 90 auf 100 %:

  9,6 kWh × 10 % = 0,96 kWh
#}
{% set energie_90_bis_100 =
  akku_kapazitaet
  * (vollziel_soc - zwischenziel_soc)
  / 100
%}

{% set volladung_schwelle =
  energie_90_bis_100 + volladung_reserve_kwh
%}

{#
  Die Freigabeschwelle ist fest.

  Dadurch bleibt die Volladung nach ihrer Freigabe aktiv und
  springt nicht durch den steigenden SoC wieder zurück.
#}
{% set volladung_freigegeben =
  soc >= zwischenziel_soc
  and prognose_rest > 0
  and prognose_rest <= volladung_schwelle
%}

{#
  Für die normale Prognoseberechnung gilt zunächst das
  Zwischenziel von 90 %. Nach Freigabe gilt 100 %.
#}
{% if volladung_freigegeben %}
  {% set aktuelles_ziel_soc = vollziel_soc %}
{% else %}
  {% set aktuelles_ziel_soc = zwischenziel_soc %}
{% endif %}

{% set energiebedarf =
  [
    akku_kapazitaet
    * (aktuelles_ziel_soc - soc)
    / 100,
    0
  ] | max
%}

{% set prognose_reserve =
  prognose_rest - energiebedarf
%}

{# ---------------- Verfügbare Ladeleistung ---------------- #}

{#
  Mögliche Batterieladeleistung ohne zusätzlichen Netzbezug:

  aktuelle Batterieladung
  + aktuelle Netzeinspeisung
  - Sicherheitsreserve
#}
{% set verfuegbar =
  [
    ladeleistung_aktuell
    + einspeisung
    - sicherheitsreserve_w,
    0
  ] | max
%}

{% if verfuegbar >= 5000 %}
  {% set verfuegbare_stufe = 5000 %}
{% elif verfuegbar >= 3500 %}
  {% set verfuegbare_stufe = 3500 %}
{% elif verfuegbar >= 2500 %}
  {% set verfuegbare_stufe = 2500 %}
{% elif verfuegbar >= 1500 %}
  {% set verfuegbare_stufe = 1500 %}
{% elif verfuegbar >= 1000 %}
  {% set verfuegbare_stufe = 1000 %}
{% elif verfuegbar >= 500 %}
  {% set verfuegbare_stufe = 500 %}
{% else %}
  {% set verfuegbare_stufe = 100 %}
{% endif %}

{# ---------------- Prognose-Stufe ---------------- #}

{% if prognose_reserve >= 12 %}
  {% set prognose_stufe = 500 %}
{% elif prognose_reserve >= 8 %}
  {% set prognose_stufe = 1000 %}
{% elif prognose_reserve >= 5 %}
  {% set prognose_stufe = 1500 %}
{% elif prognose_reserve >= 3 %}
  {% set prognose_stufe = 2500 %}
{% elif prognose_reserve >= 1 %}
  {% set prognose_stufe = 3500 %}
{% else %}
  {% set prognose_stufe = 5000 %}
{% endif %}

{# ---------------- PV-Stufe ---------------- #}

{% if pv_leistung >= 7500 %}
  {% set pv_stufe = 3500 %}
{% elif pv_leistung >= 6500 %}
  {% set pv_stufe = 2500 %}
{% elif pv_leistung >= 5000 %}
  {% set pv_stufe = 1500 %}
{% elif pv_leistung >= 3500 %}
  {% set pv_stufe = 1000 %}
{% else %}
  {% set pv_stufe = 500 %}
{% endif %}

{% set wunsch_stufe =
  [prognose_stufe, pv_stufe] | max
%}

{# Bei sehr niedrigem SoC höhere Ladepriorität #}
{% if soc < 20 %}
  {% set wunsch_stufe =
    [wunsch_stufe, 2500] | max
  %}
{% endif %}

{# ---------------- Preis-Stufe ---------------- #}

{#
  Ab 2027 wird bei negativem Börsenpreis die normale
  Wunschstufe um eine Stufe erhöht.
#}
{% if wunsch_stufe <= 500 %}
  {% set preis_stufe = 1000 %}
{% elif wunsch_stufe <= 1000 %}
  {% set preis_stufe = 1500 %}
{% elif wunsch_stufe <= 1500 %}
  {% set preis_stufe = 2500 %}
{% elif wunsch_stufe <= 2500 %}
  {% set preis_stufe = 3500 %}
{% else %}
  {% set preis_stufe = 5000 %}
{% endif %}

{# ---------------- Ersatzregelung ohne S-Plus ---------------- #}

{% if soc < 20 and einspeisung >= 500 %}
  {% set ersatz_stufe = 2500 %}

{% elif soc < 40 and einspeisung >= 500 %}
  {% set ersatz_stufe = 1500 %}

{% elif soc < 60
      and prognose_rest <= 5
      and einspeisung >= 500 %}
  {% set ersatz_stufe = 500 %}

{% else %}
  {% set ersatz_stufe = 100 %}
{% endif %}

{# ---------------- Endergebnis ---------------- #}

{#
  Prioritäten:

  1. 100 % erreicht
  2. Netzbezug erkannt
  3. 90 % erreicht, Volladung aber noch nicht freigegeben
  4. Negativer Börsenpreis ab 2027
  5. Volladung von 90 auf 100 % freigegeben
  6. Normale S-Plus-Regelung
  7. Ersatzregelung
#}

{% if soc >= vollziel_soc %}

  100

{% elif netzbezug >= 100 %}

  100

{% elif soc >= zwischenziel_soc
      and not volladung_freigegeben %}

  100

{% elif preis_negativ and einspeisung >= 500 %}

  {% if volladung_freigegeben %}
    {{
      [
        [preis_stufe, volladung_mindestleistung] | max,
        verfuegbare_stufe,
        5000
      ] | min | round(0)
    }}
  {% else %}
    {{
      [
        preis_stufe,
        verfuegbare_stufe,
        5000
      ] | min | round(0)
    }}
  {% endif %}

{% elif volladung_freigegeben and s_plus %}

  {{
    [
      [wunsch_stufe, volladung_mindestleistung] | max,
      verfuegbare_stufe,
      5000
    ] | min | round(0)
  }}

{% elif s_plus %}

  {{
    [
      wunsch_stufe,
      verfuegbare_stufe,
      5000
    ] | min | round(0)
  }}

{% else %}

  {{
    [
      ersatz_stufe,
      verfuegbare_stufe,
      5000
    ] | min | round(0)
  }}

{% endif %}

B) Automation

Die Automation übernimmt ausschließlich den vom Template berechneten Sollwert und schreibt diesen in den Sungrow-Wechselrichter.

Eigenschaften

  • Prüfung alle 5 Minuten
  • zusätzliche Prüfung bei Netzbezug (>100 W für 30 Sekunden)
  • Schreiben nur bei Änderungen ≥100 W
  • dadurch nur wenige Schreibzugriffe auf den Wechselrichter
Automation
alias: "Batterie: netzdienliche Laderegelung"
description: >-
  Überträgt die berechnete netzdienliche Ladeleistung an den
  Sungrow-Wechselrichter, um die Batterie effizient zu steuern und den Netzbezug
  zu minimieren.
triggers:
  - minutes: /5
    id: zyklisch
    trigger: time_pattern
  - event: start
    id: home_assistant_start
    trigger: homeassistant
  - entity_id:
      - sensor.keller_sungrow_sh8_0rt_20_import_power
    above: 100
    for:
      seconds: 30
    id: netzbezug
    trigger: numeric_state
conditions:
  - condition: template
    value_template: |
      {% set sollwert =
        states(
          'sensor.keller_sungrow_sh8_0rt_20_batterie_netzdienliche_ladeleistung'
        )
        | float(100)
      %}
      {% set aktueller_wert =
        states(
          'number.keller_sungrow_sh8_0rt_20_battery_max_charge_power'
        )
        | float(0)
      %}
      {{ (sollwert - aktueller_wert) | abs >= 100 }}
actions:
  - variables:
      sollwert: |
        {% set wert =
          states(
            'sensor.keller_sungrow_sh8_0rt_20_batterie_netzdienliche_ladeleistung'
          )
          | float(100)
        %}
        {{ [[wert, 100] | max, 5000] | min | round(0) }}
  - target:
      entity_id: number.keller_sungrow_sh8_0rt_20_battery_max_charge_power
    data:
      value: "{{ sollwert }}"
    action: number.set_value
mode: restart

```

C) Debug-Template

Zur Kontrolle der Regelung gibt es zusätzlich ein Debug-Template.

Dieser zeigt u.a.:

  • aktuelle Eingangswerte
  • SoC-Ziele
  • Freigabe der Volladung
  • verwendete Prognose
  • verfügbare Ladeleistung
  • verwendete Ladestufen
  • berechneten Sollwert
  • eingestellten Sungrow-Laderegler
  • Plausibilitätsprüfung der kompletten Logik

Damit lässt sich jederzeit nachvollziehen, warum welche Ladeleistung eingestellt wurde.

Debug-Template

Home Assistant

Einstellungen → Entwicklerwerkzeuge → Template

Den folgenden Code als Template einfügen.

Debug Template
{#
  Diagnose – netzdienliche Batterieladung
  Version: 1.4.0

  Prüft:
  - zweistufiges SoC-Ziel 90 % / 100 %
  - Freigabe der Volladung anhand der Restprognose
  - normale Wunschstufe
  - Preis-Stufe ab 01.01.2027
  - verfügbaren PV-Überschuss
  - Sollwert-Sensor und Sungrow-Laderegler
#}

{# ---------------- Eingangswerte ---------------- #}

{% set soc =
  states('sensor.keller_sungrow_sh8_0rt_20_battery_level')
  | float(0)
%}

{% set prognose_rest =
  states('sensor.prognose_heute_rest')
  | float(0)
%}

{% set pv =
  states('sensor.keller_sungrow_sh8_0rt_20_total_dc_power')
  | float(0)
%}

{% set einspeisung =
  states('sensor.keller_sungrow_sh8_0rt_20_export_power')
  | float(0)
%}

{% set netzbezug =
  states('sensor.keller_sungrow_sh8_0rt_20_import_power')
  | float(0)
%}

{% set batterieladung =
  states('sensor.keller_sungrow_sh8_0rt_20_battery_charging_power')
  | float(0)
%}

{% set sollwert_raw =
  states(
    'sensor.keller_sungrow_sh8_0rt_20_batterie_netzdienliche_ladeleistung'
  )
%}

{% set sollwert =
  sollwert_raw | float(0)
%}

{% set regler_raw =
  states(
    'number.keller_sungrow_sh8_0rt_20_battery_max_charge_power'
  )
%}

{% set regler =
  regler_raw | float(0)
%}

{% set s_plus =
  is_state(
    'binary_sensor.solar_forecast_stats_pv_surplus_available',
    'on'
  )
%}

{# ---------------- Börsenpreis ---------------- #}

{% set preis_raw =
  states('sensor.nord_pool_ger_aktueller_preis')
%}

{% set preis_gueltig =
  preis_raw not in ['unknown', 'unavailable', 'none', '']
%}

{% set preis =
  preis_raw | float(999)
%}

{#
  Negativpreisregel erst ab 01.01.2027 aktiv.
#}
{% set negativpreisregel_aktiv =
  now().year >= 2027
%}

{% set preis_negativ =
  negativpreisregel_aktiv
  and preis_gueltig
  and preis < -0.0001
%}

{# ---------------- Einstellungen ---------------- #}

{% set akku_kapazitaet = 9.6 %}
{% set zwischenziel_soc = 90 %}
{% set vollziel_soc = 100 %}

{% set sicherheitsreserve_w = 200 %}
{% set volladung_reserve_kwh = 1.5 %}
{% set volladung_mindestleistung = 2500 %}

{# ---------------- Zweistufiges SoC-Ziel ---------------- #}

{% set energie_90_bis_100 =
  akku_kapazitaet
  * (vollziel_soc - zwischenziel_soc)
  / 100
%}

{% set volladung_schwelle =
  energie_90_bis_100 + volladung_reserve_kwh
%}

{% set volladung_freigegeben =
  soc >= zwischenziel_soc
  and prognose_rest > 0
  and prognose_rest <= volladung_schwelle
%}

{% if volladung_freigegeben %}
  {% set aktuelles_ziel_soc = vollziel_soc %}
{% else %}
  {% set aktuelles_ziel_soc = zwischenziel_soc %}
{% endif %}

{% set energiebedarf =
  [
    akku_kapazitaet
    * (aktuelles_ziel_soc - soc)
    / 100,
    0
  ] | max
%}

{% set prognose_reserve =
  prognose_rest - energiebedarf
%}

{# ---------------- Verfügbare Ladeleistung ---------------- #}

{% set verfuegbar =
  [
    batterieladung
    + einspeisung
    - sicherheitsreserve_w,
    0
  ] | max
%}

{% if verfuegbar >= 5000 %}
  {% set verfuegbare_stufe = 5000 %}
{% elif verfuegbar >= 3500 %}
  {% set verfuegbare_stufe = 3500 %}
{% elif verfuegbar >= 2500 %}
  {% set verfuegbare_stufe = 2500 %}
{% elif verfuegbar >= 1500 %}
  {% set verfuegbare_stufe = 1500 %}
{% elif verfuegbar >= 1000 %}
  {% set verfuegbare_stufe = 1000 %}
{% elif verfuegbar >= 500 %}
  {% set verfuegbare_stufe = 500 %}
{% else %}
  {% set verfuegbare_stufe = 100 %}
{% endif %}

{# ---------------- Prognose-Stufe ---------------- #}

{% if prognose_reserve >= 12 %}
  {% set prognose_stufe = 500 %}
{% elif prognose_reserve >= 8 %}
  {% set prognose_stufe = 1000 %}
{% elif prognose_reserve >= 5 %}
  {% set prognose_stufe = 1500 %}
{% elif prognose_reserve >= 3 %}
  {% set prognose_stufe = 2500 %}
{% elif prognose_reserve >= 1 %}
  {% set prognose_stufe = 3500 %}
{% else %}
  {% set prognose_stufe = 5000 %}
{% endif %}

{# ---------------- PV-Stufe ---------------- #}

{% if pv >= 7500 %}
  {% set pv_stufe = 3500 %}
{% elif pv >= 6500 %}
  {% set pv_stufe = 2500 %}
{% elif pv >= 5000 %}
  {% set pv_stufe = 1500 %}
{% elif pv >= 3500 %}
  {% set pv_stufe = 1000 %}
{% else %}
  {% set pv_stufe = 500 %}
{% endif %}

{% set wunsch_stufe =
  [prognose_stufe, pv_stufe] | max
%}

{% if soc < 20 %}
  {% set wunsch_stufe =
    [wunsch_stufe, 2500] | max
  %}
{% endif %}

{# ---------------- Preis-Stufe ---------------- #}

{% if wunsch_stufe <= 500 %}
  {% set preis_stufe = 1000 %}
{% elif wunsch_stufe <= 1000 %}
  {% set preis_stufe = 1500 %}
{% elif wunsch_stufe <= 1500 %}
  {% set preis_stufe = 2500 %}
{% elif wunsch_stufe <= 2500 %}
  {% set preis_stufe = 3500 %}
{% else %}
  {% set preis_stufe = 5000 %}
{% endif %}

{# ---------------- Ersatzregelung ---------------- #}

{% if soc < 20 and einspeisung >= 500 %}
  {% set ersatz_stufe = 2500 %}

{% elif soc < 40 and einspeisung >= 500 %}
  {% set ersatz_stufe = 1500 %}

{% elif soc < 60
      and prognose_rest <= 5
      and einspeisung >= 500 %}
  {% set ersatz_stufe = 500 %}

{% else %}
  {% set ersatz_stufe = 100 %}
{% endif %}

{# ---------------- Erwarteter Sollwert ---------------- #}

{% if soc >= vollziel_soc %}

  {% set erwartet = 100 %}
  {% set grund = '100 % SoC erreicht' %}

{% elif netzbezug >= 100 %}

  {% set erwartet = 100 %}
  {% set grund = 'Netzbezug erkannt – Ladeleistung begrenzt' %}

{% elif soc >= zwischenziel_soc
      and not volladung_freigegeben %}

  {% set erwartet = 100 %}
  {% set grund =
    '90 % erreicht – Volladung anhand der Restprognose noch nicht freigegeben'
  %}

{% elif preis_negativ and einspeisung >= 500 %}

  {% if volladung_freigegeben %}
    {% set erwartet =
      [
        [preis_stufe, volladung_mindestleistung] | max,
        verfuegbare_stufe,
        5000
      ] | min
    %}
    {% set grund =
      'Negativer Börsenpreis – Volladung freigegeben'
    %}
  {% else %}
    {% set erwartet =
      [
        preis_stufe,
        verfuegbare_stufe,
        5000
      ] | min
    %}
    {% set grund =
      'Negativer Börsenpreis – Ladeleistung um eine Stufe erhöht'
    %}
  {% endif %}

{% elif volladung_freigegeben and s_plus %}

  {% set erwartet =
    [
      [wunsch_stufe, volladung_mindestleistung] | max,
      verfuegbare_stufe,
      5000
    ] | min
  %}

  {% set grund =
    'Volladung von 90 auf 100 % freigegeben'
  %}

{% elif s_plus %}

  {% set erwartet =
    [
      wunsch_stufe,
      verfuegbare_stufe,
      5000
    ] | min
  %}

  {% set grund =
    'S-Plus aktiv – normale netzdienliche Regelung'
  %}

{% else %}

  {% set erwartet =
    [
      ersatz_stufe,
      verfuegbare_stufe,
      5000
    ] | min
  %}

  {% set grund =
    'S-Plus aus – Ersatzregelung'
  %}

{% endif %}

{% set abweichung_sensor =
  sollwert - erwartet
%}

{% set abweichung_regler =
  sollwert - regler
%}

==============================
NETZDIENLICHE LADEDIAGNOSE
Version 1.4.0
==============================

Zeit:
{{ now().strftime('%d.%m.%Y %H:%M:%S') }}

--- Eingangswerte ---

S-Plus:
{{ 'an' if s_plus else 'aus' }}

SoC:
{{ soc | round(1) }} %

Restprognose:
{{ prognose_rest | round(2) }} kWh

PV-Leistung:
{{ pv | round(0) }} W

Einspeisung:
{{ einspeisung | round(0) }} W

Netzbezug:
{{ netzbezug | round(0) }} W

Aktuelle Batterieladung:
{{ batterieladung | round(0) }} W


--- Zweistufiges SoC-Ziel ---

Zwischenziel:
{{ zwischenziel_soc }} %

Vollziel:
{{ vollziel_soc }} %

Aktuelles Ziel:
{{ aktuelles_ziel_soc }} %

Energie von 90 bis 100 %:
{{ energie_90_bis_100 | round(2) }} kWh

Zusätzliche Prognosereserve:
{{ volladung_reserve_kwh | round(2) }} kWh

Freigabeschwelle:
{{ volladung_schwelle | round(2) }} kWh

Volladung freigegeben:
{{ 'JA' if volladung_freigegeben else 'NEIN' }}


--- Börsenpreis ---

Rohwert:
{{ preis_raw }}

Sensor gültig:
{{ 'JA' if preis_gueltig else 'NEIN' }}

Preis:
{% if preis_gueltig %}
{{ preis | round(5) }} €/kWh
{{ (preis * 100) | round(3) }} ct/kWh
{% else %}
nicht verfügbar
{% endif %}

Negativpreisregel zeitlich aktiv:
{{ 'JA' if negativpreisregel_aktiv else 'NEIN' }}

Negativer Preis für Regelung relevant:
{{ 'JA' if preis_negativ else 'NEIN' }}


--- Berechnung ---

Energiebedarf bis zum aktuellen Ziel:
{{ energiebedarf | round(2) }} kWh

Prognosereserve:
{{ prognose_reserve | round(2) }} kWh

Verfügbare Ladeleistung:
{{ verfuegbar | round(0) }} W

Verfügbare Ladestufe:
{{ verfuegbare_stufe }} W

Prognose-Stufe:
{{ prognose_stufe }} W

PV-Stufe:
{{ pv_stufe }} W

Normale Wunsch-Stufe:
{{ wunsch_stufe }} W

Preis-Stufe:
{{ preis_stufe }} W

Volladungs-Mindestleistung:
{{ volladung_mindestleistung }} W

Ersatz-Stufe:
{{ ersatz_stufe }} W


--- Ergebnis ---

Erwarteter Sollwert laut Logik:
{{ erwartet | round(0) }} W

Berechneter Sollwert-Sensor:
{{ sollwert_raw }} W

Eingestellter Laderegler:
{{ regler_raw }} W

Abweichung Sensor zur Logik:
{{ abweichung_sensor | round(0) }} W

Abweichung Sensor zum Laderegler:
{{ abweichung_regler | round(0) }} W

Automation müsste schreiben:
{{ 'JA' if abweichung_regler | abs >= 100 else 'NEIN' }}

Aktuelle Einordnung:
{{ grund }}


--- Plausibilitätsprüfung ---

{% if sollwert_raw in ['unknown', 'unavailable', 'none', ''] %}
FEHLER: Sollwert-Sensor ist nicht verfügbar.

{% elif abweichung_sensor | abs < 100 %}
OK: Sollwert-Sensor entspricht der berechneten Logik.

{% else %}
WARNUNG: Sollwert-Sensor weicht von der erwarteten Logik ab.
{% endif %}

{% if abweichung_regler | abs < 100 %}
OK: Sollwert und Laderegler stimmen überein.

{% else %}
HINWEIS: Sollwert und Laderegler unterscheiden sich.
{% endif %}

{% if batterieladung <= regler + 100 %}
OK: Tatsächliche Batterieladung liegt innerhalb des Reglers.

{% else %}
WARNUNG: Batterieladung liegt deutlich über dem Regler.
{% endif %}

{% if netzbezug >= 100 and sollwert > 100 %}
WARNUNG: Trotz Netzbezug liegt der Sollwert über 100 W.

{% else %}
OK: Keine auffällige Netzladung durch die Regelung.
{% endif %}

{% if soc >= zwischenziel_soc
      and soc < vollziel_soc
      and not volladung_freigegeben %}
INFO: Zwischenziel erreicht.
Die Batterie wartet auf die spätere Volladungsfreigabe.
{% endif %}

{% if volladung_freigegeben and s_plus %}
INFO: Volladung ist freigegeben.
Die Batterie darf bis 100 % geladen werden.
{% endif %}

{% if volladung_freigegeben and not s_plus %}
INFO: Volladung wäre anhand der Prognose freigegeben,
aber S-Plus ist aktuell aus.
{% endif %}

{% if prognose_rest <= volladung_schwelle
      and soc < zwischenziel_soc %}
INFO: Die Restprognose liegt bereits unter der Volladungsschwelle,
der SoC hat das Zwischenziel von 90 % aber noch nicht erreicht.
{% endif %}

{% if not preis_gueltig %}
INFO: Preissensor nicht verfügbar.
Die normale netzdienliche Regelung bleibt aktiv.
{% endif %}

Beispiel

Die Regelung arbeitet anschließend ungefähr wie folgt:

Morgens
↓
geringe Batterieladeleistung
hohe Netzeinspeisung

↓

Mittag
↓
Ladeleistung steigt automatisch mit PV-Leistung
und Restprognose

↓

90 % SoC erreicht
↓
Ladeleistung wird auf 100 W begrenzt

↓

Restprognose nähert sich der
für die letzten 10 % benötigten Energie

↓

Volladung wird freigegeben

↓

100 % SoC
↓
Zellbalancing

DEbug Ausgabe

Beispiel eine aktuellen Debug Ausgabe
==============================
NETZDIENLICHE LADEDIAGNOSE
Version 1.4.0
==============================

Zeit:
03.08.2026 10:48:10

--- Eingangswerte ---

S-Plus:
an

SoC:
35.4 %

Restprognose:
31.58 kWh

PV-Leistung:
2457 W

Einspeisung:
1573 W

Netzbezug:
0 W

Aktuelle Batterieladung:
499 W


--- Zweistufiges SoC-Ziel ---

Zwischenziel:
90 %

Vollziel:
100 %

Aktuelles Ziel:
90 %

Energie von 90 bis 100 %:
0.96 kWh

Zusätzliche Prognosereserve:
1.5 kWh

Freigabeschwelle:
2.46 kWh

Volladung freigegeben:
NEIN


--- Börsenpreis ---

Rohwert:
0.08876

Sensor gültig:
JA

Preis:

0.08876 €/kWh
8.876 ct/kWh


Negativpreisregel zeitlich aktiv:
NEIN

Negativer Preis für Regelung relevant:
NEIN


--- Berechnung ---

Energiebedarf bis zum aktuellen Ziel:
5.24 kWh

Prognosereserve:
26.34 kWh

Verfügbare Ladeleistung:
1872 W

Verfügbare Ladestufe:
1500 W

Prognose-Stufe:
500 W

PV-Stufe:
500 W

Normale Wunsch-Stufe:
500 W

Preis-Stufe:
1000 W

Volladungs-Mindestleistung:
2500 W

Ersatz-Stufe:
1500 W


--- Ergebnis ---

Erwarteter Sollwert laut Logik:
500 W

Berechneter Sollwert-Sensor:
500 W

Eingestellter Laderegler:
500 W

Abweichung Sensor zur Logik:
0 W

Abweichung Sensor zum Laderegler:
0 W

Automation müsste schreiben:
NEIN

Aktuelle Einordnung:
S-Plus aktiv – normale netzdienliche Regelung


--- Plausibilitätsprüfung ---

OK: Sollwert-Sensor entspricht der berechneten Logik.
OK: Sollwert und Laderegler stimmen überein.
OK: Tatsächliche Batterieladung liegt innerhalb des Reglers.
OK: Keine auffällige Netzladung durch die Regelung.

Ich habs mal als Anregung hier eingestellt, vielleicht ist es ja für den Ein- oder Anderen hilfreich. Aktuell ist es bei mir noch in der Testphase. Benutzung jedoch auf eigene Gefahr.

Die Code sowie die Zusammenfassung habe ich der Einfachheit halber mithilfe einer KI erstellt.

2 „Gefällt mir“

Hallo nightrunner,
so blöd ist die Frage gar nicht.

  • Mittags, oder generell in der billigen Zeit ist ja mehr Strom da, als gebraucht wird und darum wird er billiger. Wenn zuviel Strom da ist kann man als netter, netzdienlicher Mensch diesen Strom abnehmen und in seine Batterie laden.
    Ist aber nur vernünftig, wenn Du einen dynamischen Stromtarif hast und der Strompreis dann so “billig” ist, das die Verluste (Wandlungsverluste Akku, Invertermehrverbrauch, Ladezyklenerhöhung usw.) aufgrund des Superpreises billigend in Kauf genommen werden. Nach meiner Erfahrung (hatte jahrelang einen dyn. Tarif und habe bei Niedrigpreis den Akku aus dem Netz geladen) reichen die oft genannten 20% Verluste gar nicht aus. Hier geht es ja i.d.R. um AC-DC-AC.
  • Wenn Du schon ab Sonnenaufgang den überschüssigen PV-Strom in den Akku lädst, wird diese Energie nicht eingespeist. Zu dieser Zeit wäre Dein Strom aber im Netz sinnvoller, weil für die Nicht-PV-Besitzer dann weniger aus den konventionellen Kraftwerken erzeugt werden muss. Vor allem, wenn Du weißt, das im Laufe des Tages noch genug Sonnenenergie im Anmarsch ist. Da kannst Du den Akku immer noch laden, wenn der Strom billig ist (wertlos, weil zuviel da ist). Es ist ja weder schmerzhaft noch kostet es Dein Geld. Du verschiebst nur etwas die Lade- u. Einspeisezeit.
  • Und klar: Du hast massiv in die Anlage investiert. Aber ändert es an diesem Invest etwas, wenn Du Deine Anlage netzdienlich betreibst?

Netzdienlich bedeutet ja nicht nur, mit einer PV-Anlage so umzugehen. Jeder (auch ohne PV-Anlage) könnte seinen Verbrauch mehr oder weniger in die Zeiten legen, in denen zuviel Strom da ist.

Letztendlich kommt es Dir auch zugute (z.B. beim Einkaufen), weil die Strompreise ja auch Handel und Industrie betreffen. Eine Strompreiserhöhung von 1,5 Cent bedeutet dort 10% höhere Energiekosten. Die Ausgleichkosten Energie werden zu einem Teil auch von Deinen Steuern bezahlt.

  • Mein Ansatz ist ganz einfach: Ohne Aufwand (von ein paar Templates mal abgesehen) mich ein wenig “netzdienlich” verhalten. Ich habe nichts davon, freue mich aber trotzdem, wenn meine Nachbarn ohne PV schon am frühen Morgen tollen grünen Strom von mir nutzen.
  • Ich bin mir bewusst, das meine PV-Anlage ein richtig tolles Invest ist. Viele können (aus unterschiedlichen Gründen) sich keine mittlere PV-Anlage aufs Dach schnallen.

Ich weiß aber auch, das kein Haushalt mit PV-Anlage, evt. Wärmepumpe, E-Auto, Personen usw. gleich ist. Jeder soll die Nutzung seiner Energie so handhaben, wie er es für richtig hält.
VG
Rainer

Es ist aber wie mit vielen im Leben: Ich allein kann da nicht viel machen, die Menge machts. Übrigens haben ja schon einige Länder in Europa nur noch dynamische oder quasi-dynamische Stromtarife. Da wird man schon nicht ganz freiwillig netzdienlich.

Vielen Dank für Eure Antworten.

Wie rapahl schon schreibt. Mir persönlich ist es egal wann die Anlage einspeist. Hauptsache am Abend ist der Speicher voll geladen.
Wenn man damit noch die Netztauslastung unterstützen kann, soll es mir recht sein.
Zumindest im Sommer sollte sich damit auch die Effizienz erhöhen lassen, da man mit einem guten Wirkungsgrad laden kann.

Ich habe mir gestern schon einmal zusammen mit ChatGPT ein paar Templates und eine Automation zusammen gebastelt.
-Morgens lade ich den Akku unabhängig der Netzdienlichkeit auf min 30%
-Dann suche ich zuerst die Stunde mit dem geringsten Spot Preis am Tag
-Dann prüfe ich, wie viel Kapazität ich in den Akku Speichern muss, damit er voll ist
-Diese Top Stunde erweitere ich nun ±- bis ich die benötigte Kapazität zusammen habe.
-Abends prüfe ich noch einmal ob der Akku noch zu min. 90% geladen ist, wenn nicht lade ich noch einmal nach.

Das werde ich noch einmal mit dem Vorschlag von gobbli abgleichen.
Vielen Dank für deine Anregungen.

Ich glaube, wir müssen hier ein paar Dinge voneinander trennen und klarstellen, damit wir alle über dasselbe Thema sprechen.

Betriebsweise Primäres Ziel
Wirtschaftlich Stromkosten des Haushalts minimieren (SMC)
Marktdienlich Auf Angebot, Nachfrage und Strommarktpreise reagieren (SMC oder GPM)
Netzdienlich Das konkrete Netz entlasten und Netzkosten reduzieren
Eigenverbrauchsoptimiert Möglichst viel eigenen PV-Strom selbst verwenden (Anlage EM. SMC, SPLUS
Systemdienlich Das gesamte Stromsystem stabilisieren und Erzeugung sowie Verbrauch ausgleichen (EM, SMC)

Hinweis zu Netzdienlich:
Ohne Netzbetreibersignal kann man selber nur allgemein netzentlastend arbeiten, beispielsweise durch:

  • Begrenzung der maximalen Netzbezugsleistung,
  • Vermeidung gleichzeitiger Lastspitzen,
  • Begrenzung hoher PV-Einspeisespitzen (Drosselung)
  • Peak Drosselung am eigenen Netzanschluss,
  • Akkuladung aus einem tatsächlichen PV-Überschuss (zb. S-Plus)
  • Nulleinspeisung oder dynamische Einspeisebegrenzung.

Das entlastet den eigenen Netzanschlusspunkt und möglicherweise auch das lokale Netz. Man weiß ohne Netzinformation aber nicht sicher, ob das Verhalten in diesem Moment tatsächlich für den Netzbetreiber hilfreich ist. Aus diesem Grund sollte in DE ja schon in jedem PV-Haushalt ein Smart-Meeter eingebaut sein, so das der Netzbetreiber die Einspeisung abschalten kann.

Im SFML-Ökosystem gibt es zwei grundsätzlich unterschiedliche Funktionen:

1. Wirtschaftliche Netzladung – Smart Charging (SMC)

Smart Charging entscheidet, ob, wann und wie viel Energie wirtschaftlich sinnvoll aus dem Netz in den Akku geladen werden soll.

Ziel ist es, teure Strompreisphasen mit zuvor günstiger gespeicherter Energie zu überbrücken und dadurch die eigenen Gesamtkosten zu reduzieren. Dabei werden unter anderem Strompreise, Akkustand, erwarteter Verbrauch, PV-Prognose und Speicherverluste berücksichtigt.

SMC lädt den Akku nicht einfach vollständig auf, sobald der Strompreis günstig erscheint. Es lädt nur die Energiemenge, die voraussichtlich benötigt wird und sich nach Berücksichtigung aller Verluste wirtschaftlich rechnet.

Eine preisorientierte Netzladung kann gleichzeitig markt- oder systemdienlich wirken. Wirtschaftliche Optimierung und eine technisch definierte Netzdienlichkeit sind jedoch nicht dasselbe.

2. Nutzung von PV-Überschuss – Sure Plus

Sure Plus erkennt einen tatsächlich vorhandenen und stabilen PV-Überschuss.

Dieser Überschuss kann vor der Netzeinspeisung für zusätzliche Verbraucher verwendet werden, die nicht zum normalen dauerhaften Hausverbrauch gehören. Das können beispielsweise sein:

  • Powerstations oder zusätzliche Akkus,
  • Wallboxen,
  • Heizstäbe und Heizungen,
  • Lüfter,
  • Pumpen,
  • oder andere steuerbare Verbraucher.

Sure Plus stellt dafür einen Schaltzustand bereit. Dadurch lässt sich der erkannte Überschuss mit einer einfachen Home-Assistant-Automation nutzen, ohne eine eigene komplexe Überschusserkennung entwickeln zu müssen.

Beispiel: Anker Solix

In der Standardkonfiguration wird verfügbarer PV-Überschuss zunächst in den Anker-Solix-Akku geladen. Erst wenn der Akku keine weitere Energie aufnehmen kann, wird die nach Abzug des aktuellen Eigenverbrauchs verbleibende Energie in das öffentliche Netz eingespeist – sofern keine Nulleinspeisung aktiviert ist.

Bevor diese Energie eingespeist wird, kann Sure Plus einen zusätzlichen Verbraucher einschalten. Auf diese Weise kann der reale Überschuss beispielsweise zum Laden einer Powerstation oder zum Betrieb eines Heizstabs verwendet werden.

Ist kein stabiler Überschuss mehr vorhanden, nimmt Sure Plus die Freigabe nach einer gedämpften Regelung wieder zurück. Dadurch werden unnötig häufige Schaltvorgänge vermieden und zusätzliche Verbraucher nur bei tatsächlich verfügbarer Energie betrieben.

Beispiel: Winter und Schlechtwetter

In der Winter- und Schlechtwetterzeit steht häufig nicht genügend PV-Energie zur Verfügung, um den erwarteten Verbrauch vollständig zu decken.

Smart Charging erkennt den voraussichtlichen Fehlbedarf und prüft, ob eine vorherige Netzladung wirtschaftlich sinnvoll ist. Dabei berücksichtigt SMC auch zukünftige Preise und die tatsächlichen Kosten der später aus dem Speicher zurückgelieferten Energie.

Der Akku wird jedoch nicht pauschal mit Netzstrom vollgeladen. SMC lädt nur die voraussichtlich benötigte Energiemenge – und auch nur dann, wenn sich die Speicherung einschließlich aller Verluste wirtschaftlich lohnt.

Kurz zusammengefasst:

  • Smart Charging optimiert die wirtschaftliche Netzladung des Akkus.
  • Sure Plus nutzt einen tatsächlich vorhandenen PV-Überschuss für zusätzliche Verbraucher.

Beide Funktionen arbeiten unabhängig voneinander, können sich innerhalb des SFML-Ökosystems aber sinnvoll ergänzen.

Hallo Tom-HA,
im Winter und bei Dunkelwetter arbeitet SmartCharging richtig gut “netzdienlich.” Da wird dann der überflüssige Strom aus dem Netz entnommen. So soll es sein.
Wenn aber SurePlus im Sommer einen PV-Überschuss in jedem Fall verhindern will, ist das eher nicht netzdienlich. Da wäre es besser, wenn die Verbraucher auch in die Überfluss-Zeit geschoben würden. Ist natürlich schwierig, weil ja dann auch neben der Solarprognose auch die Verbrauchsprognose greifen muss. Man kann aber sicherlich mit Deinen “Schaltern” und einer netzdienlichen Automation eine vernünftige Regelung hinbekommen. Hier sind aber die individuell persönlichen Gegebenheiten wohl nur vom PV-Anlagen-Eigner richtig fein abzustimmen.
Klasse finde ich auf jeden Fall, das sich einige User überhaupt Gedanken darüber machen und die Einspeisung auch steuern wollen. Die Wirtschafts- u. Energiepolitik wäre jetzt stolz auf uns. Hochgerechnet ist der Gesamtanteil solcher PV-User wohl schon messbar. Auf jeden Fall sind diese Versuche und Erfahrungen schon mal für die Direktvermarktung wertvoll.
VG
Rainer

Hallo @gobbli

Ich finde es mega cool, das Du dir Gedanken gemacht hast und deine Lösung teilst.
Die Grundidee macht total Sinn:
Der Akku soll morgens nicht sofort vollgeladen, sondern abhängig von PV-Prognose und tatsächlichem Überschuss gesteuert werden.

Es sich dabei allerdings eher um eine prognose- und überschussabhängige PV-Ladebegrenzung als um eine netzdienliche Steuerung.
Für echte Netzdienlichkeit müsste die Regelung wissen, wie das lokale Stromnetz gerade belastet ist oder ein entsprechendes Signal vom Netzbetreiber erhalten. Deine Automation kann Einspeisespitzen reduzieren und damit möglicherweise netzentlastend wirken – ob das Netz zu diesem Zeitpunkt tatsächlich entlastet werden muss, kann sie aber nicht wissen. Das ist das große Problem vieler da der Netzausbau nicht auf dem Stand ist wie er angekündigt wurde.

Auch „wirtschaftlich“ und „akkuschonend“ würde ich noch vorsichtig verwenden. Die Regelung berechnet weder Einspeisevergütung, Speicherverluste noch den späteren Energiebedarf.
Sie verfolgt grundsätzlich das Ziel, den Akku zunächst auf 90 und später auf 100 Prozent zu laden. Temperatur, Batteriezustand oder Herstellervorgaben zum Zellbalancing werden dabei nicht berücksichtigt.

Ein paar Tipps / Hinweise solltest du vor einem dauerhaften Einsatz prüfen:

  • 100 Watt ab 90 Prozent sind kein Ladestopp. Über mehrere Stunden kann der Akku damit trotzdem 100 Prozent erreichen.
  • Die Freigabe für die letzten zehn Prozent wird nicht dauerhaft gespeichert und kann durch neue Prognosedaten oder einen Neustart wieder verloren gehen.
  • Nicht verfügbare Sensorwerte werden häufig als null behandelt. Eine fehlende Prognose oder ein ausgefallener Netzbezugssensor kann dadurch eine falsche Entscheidung auslösen.
  • Bei wechselnder Bewölkung reagiert die reguläre Prüfung erst nach bis zu fünf Minuten. Kurzzeitiger Netzbezug ist deshalb trotz der vorgesehenen Reserve möglich.
  • Fällt Home Assistant oder die Automation aus, kann der zuletzt gesetzte Leistungswert im Wechselrichter erhalten bleiben, ich weiß leider nicht wie Sungrow oder dein Modell das handhabt.

Sie ist eine anlagenspezifische Heuristik mit festen Stufen und keine allgemein abgesicherte Regelung. Das kann für andere Nutzer / Anlagen eher ins Gegenteil umschlagen. Aber es ist eine gute Basis für Tüftler und Bastler um es zu erweitern oder auf die eigene Anlage anzupassen. - Cooles Projekt!

Zara

Hallo @rapahl

Das was ich hier versuche / umgesetzt habe sind 3 wesentliche Dinge:

  1. Maximale Ersparnis bei den eigenen Stromkosten / einem Dynamischen Tarif, und optimale Nutzung von Systemen die in der Lage sind Batteriespeicher zu laden. Ohne die Batteriespeicher zu lange bei 100% stehen zu lassen. Du wirst wissen, dass es schädlich ist einen vollen Akku vorzuhalten ohne echtes Ziel.

  2. Den Eigenverbrauch so zu optimieren, dass die eigene Infrastruktur zu erst bedient wird um eine Einspeisung erst dann zuzulassen wenn mein eigener Bedarf gedeckt ist - > oder ich vermeiden will zu einem späteren teuer einkaufen zu müssen.

  3. Netzdienlichkeit zu erreichen / simulieren ohne entsprechende Steuerungssugnale / Messgrößen. → Die allermeisten haben keine Netzsignale von Netzbetreiber.

S-Plus und SMC sind lokale Lösungen die versuchen fehlende Infrastruktur auszugleichen. Du hast 100% recht im Winter, oder ähnlichen Situationen ist SMC ein guter Baustein zu Netzdienlichkeit. Wenn man sich Statistiken anschaut (die waren die Basis meiner Gedanken) ist schön zu sehen wie weit entfernt wir in DE (insgesamt) von einer Netzdienlichen Nutzung sind. Ich würde nicht sagen " Die Ernerigewende" ist ein milliardenschwere Reinfall, sondern es ist höchste Zeit das Ruder rumzureißen um als Gemeinschaft durch geeignete Infrastruktur einen Beitrag zu leisten.. aktuell ist es im Bezug zu diesem Thema eine 6 setzen und hier setze ich an und versuche HA um Funktionen zu erweitern die er von Haus aus nicht beherrscht. Es ist und bleibt aber ein Ansatz mit der Prio auf Kostenoptimierung, möglichst hohem Eigenverbrauch der Solaranlage und Schonung der Hardware..

PS: Einige der Veteranen wissen, dass ich mit einem sehr großen Netzbetreiber im Kontakt gewesen bin / Vertreter persönlich auf Einladung traf, der mir meine Ideen abluchsen wollte, da mein Stack 100% in der Lage ist Netzlasten zu prognostizieren und entsprechende Handlungsempfehlungen zu geben (ganz ohne US-Tech-Riesen oder Millionenschwere Entwicklungskosten).. ich habe aber aus mehr als guten Gründen abgelehnt und werde das nicht weiter ausführen. - > Das war die Geburtsstunde von SMC und S-Plus frei nach dem Motto “jetzt erst recht”
Ich bin gespannt auf den 4 September denn ich werde in Berlin vor Ort sein

Vielen Dank für dein ausführliches Feedback! :+1:

Du hast einige Punkte angesprochen, die absolut berechtigt sind. Insbesondere die Themen unknown → 0, die fehlende Persistenz der Volladungsfreigabe und die Tatsache, dass es sich eher um eine anlagenspezifische Heuristik als um eine allgemeingültige Regelung handelt, nehme ich gerne mit auf meine To-do-Liste.

Auch beim Begriff „netzdienlich“ hast du vermutlich recht. „Netzfreundlich“ oder „PV-prognosebasierte Ladeoptimierung“ beschreibt die Funktion wahrscheinlich treffender und vermeidet Missverständnisse.

Das Projekt soll ausdrücklich keine fertige Universallösung für jeden sein. Es ist in erster Linie auf meine eigenen Anforderungen zugeschnitten und soll vor allem als Anregung dienen. Jeder kann die Ideen auf die eigene Anlage anpassen, weiterentwickeln oder auch ganz anders umsetzen. Das Projekt mehr für eine eigene Lösung gedacht und nicht als allgemeingültige Lösung.

Danke dir für die konstruktive Kritik und die wertvollen Anregungen!

2 „Gefällt mir“

Danke für Deine Antwort @rapahl
Ich kann Deinen Ansatz jetzt nachvollziehen, er ist von ehrlichem Idealismus geprägt.
Ich persönlich habe seit dem Start von Toms Projekt extrem viel gelernt durch die Auseinandersetzung mit dem ganzen Thema. Insbesondere den Ansatz den Batteriespeicher als Bestandteil eines ganzen Systems zu verstehen und einzusetzen.
Deshalb bin ich überzeugt davon, dass die vielen Diskussionen in Simons Forum uns weiterbringen.

Wir haben seit Sept 2025 einen von Octopus smartmetering eingebauten intelligenten Stromzähler. Leider ist es denen bis heute nicht gelungen die Stammdatenänderung beim bisherigen Netzbetreiber durchzubekommen. Sonst könnten wir in der Zeit von 0-5 Uhr 10 cent günstiger Netzstrom beziehen und den Speicher laden. Dafür ist Toms SMC und S-Plus natürlich der geniale Ansatz.
Grüße aus dem Sauerland!

Ich wollte mal so den Zwischenstand meines kleinen Scriptes mitteilen.

Es ist hier mittlerweile völlig eskaliert. :joy:

Was eigentlich nur als kleines Script für ein optimiertes Laden des Akkus gedacht war, ist inzwischen zu einem kleinen „Projekt“ geworden, das völlig aus dem Ruder gelaufen ist. Was ursprünglich auf Basis von SFML angefangen hat, hat sich inzwischen ziemlich verselbstständigt. :sweat_smile:

Aktuell ist das Ganze sicherlich noch ein ziemlich zusammengefrickeltes Werk – aber heute hat es seinen Dienst tatsächlich erstaunlich gut erfüllt.

In den Morgenstunden wurde vorzugsweise ins Netz eingespeist und der Akku ganz gemütlich mit etwa 500 W geladen. Als sich die Wetterlage verschlechterte, hat die Regelung reagiert und versucht, mehr Energie in den Akku zu bekommen, weil die Gefahr bestand, dass er bis zum Abend nicht mehr voll wird. Später entspannte sich die Wetterlage wieder und entsprechend wurde auch die Ladeleistung wieder reduziert.

Genau so hatte ich mir das im Grunde vorgestellt: nicht einfach stumpf mit möglichst hoher Leistung laden, sondern abhängig von PV-Ertrag, Wetterentwicklung, Prognose und Akkustand dynamisch reagieren.

Auch wenn das Ganze am Ende sicherlich ein Stück weit Spielerei ist: Der Lerneffekt dabei ist enorm – und genau das macht für mich den Reiz daran aus.

Daher an dieser Stelle auch ein großes Danke an Zara für dein tolles Projekt! Ohne dein hervorragendes Projekt und die Ideen dahinter hätte ich vermutlich nie angefangen, mich so intensiv mit dem Thema zu beschäftigen. :blush:

Diagnose
========================================
PV-LADEDIAGNOSE
Version 3.1.4 – Zentrale Engine
========================================

Zeit:
07.08.2026 18:17:47

Diagnose-Version:
3.1.5

Core-Engine-Version:
3.1.4

Core-Kompatibilität:
OK

========================================
EXECUTIVE SUMMARY
========================================

Betriebsmodus:
🏁 VOLLZIEL ERREICHT

Status:
VOLLZIEL ERREICHT

Aktive Strategie:
Das verbindliche Tagesziel wurde erreicht.

Reason Code:
FULL_TARGET_REACHED

Strategischer Sollwert:
10 W

Finaler Sollwert:
10 W

Aktuelle Batterieladung:
0 W

Aktuelle Batterieentladung:
0 W

Ladesitzung:
INAKTIV

S-Plus Startfreigabe:
AUS

Verbindliches Tagesziel:
100 %

Zwischenmarke:
90 %

Aktueller SoC:
100.0 %

Mindest-SoC:
10.0 %

Freigabeschwelle SoC-Schutz:
11.0 %

Persistenter SoC-Schutz-Helper:
AUS

SoC-Schutz durch Hysterese gehalten:
NEIN

Prognosebasierte Erreichbarkeit:
ERREICHT

Strategische Erreichbarkeit:
ERREICHT

Momentane Ladeleistungs-Bewertung:
ERREICHT

Aktive Schutzbegrenzung:
FULL_TARGET_STOP

Empfehlung:

Kein Eingriff erforderlich.


========================================
ENERGIEPLANUNG
========================================

PV-Restprognose:
1.85 kWh

Verbleibende Planungszeit:
2.89 h

Planungsverbrauch:
1500 W

Erwarteter Restverbrauch:
4.33 kWh

Für den Akku verfügbar:
0.0 kWh

Fehlende Akkuenergie bis 100 %:
0.0 kWh

Benötigte PV-Energie:
0.0 kWh

Roh-Reserve bis 100 %:
0.0 kWh

Wetterbereinigte Reserve bis 100 %:
0.0 kWh

Notwendige mittlere Ladeleistung:
0 W

Reale Berechnungsleistung für die Momentaufnahme:
0 W

Quelle der realen Berechnungsleistung:

Keine belastbare reale Ladeleistung verfügbar


Momentane Ladezeit bis 100 % bei unveränderter aktueller Ladeleistung:

Derzeit nicht sinnvoll berechenbar.


Hinweis:
Diese Zeit ist keine Tagesprognose. Für die Tagesentscheidung ist die
strategische Erreichbarkeit maßgeblich.

Opportunity-Charge aktiv:
NEIN

Opportunity-Mindestladeleistung:
1500 W

Vollziel-Eskalation erforderlich:
NEIN

Vollziel-Eskalation aktiv:
NEIN

Vollziel-Deeskalation zulässig:
NEIN

Deeskalationsschwelle Reserve:
3.0 kWh

Mindest-Restzeit für Deeskalation:
3.0 h

Maximaler SoC für Deeskalation:
90.0 %

========================================
PV-CONFIDENCE-ENGINE
========================================

Wetterdaten verfügbar:
JA

Bewölkung:
74.0 %

Wolkentyp:
stratus

Learning Accuracy:
90.3 %

Aktive Wetterquellen:
3

Cloud Score:
55.0 %

Cloud-Type Score:
75.0 %

Learning Score:
90.3 %

Sources Score:
100.0 %

PV Confidence:
72.6 %

Einfluss:

Mittleres Vertrauen – Prognosereserve wird spürbar konservativer bewertet.


========================================
AKTUELLE MESSWERTE
========================================

PV-Leistung:
2732 W

Hausverbrauch:
2590 W

Einspeisung:
177 W

Netzbezug:
0 W

Batterieladung:
0 W

Batterieentladung:
0 W

Relevante Batterieentladung:
NEIN

Schwellwert relevante Entladung:
100 W

Nutzbarer PV-Überschuss:
177 W

Normale nutzbare Leistung:
0 W

Verfügbare Ladestufe:
10 W

S-Plus:
AUS

Persistente Ladesitzung:
AUS

Ladefreigabe Normalbetrieb:
NEIN

Ladesitzung kann jetzt starten:
NEIN

Ladesitzung soll beendet werden:
JA

Ladesitzung durch Vollziel gehalten:
NEIN

Grundsätzliches PV-Ladepotenzial:
JA

Ladung erforderlich:

NEIN – Vollziel erreicht


PV-Verfügbarkeitsschwellen:
- Überschuss: 100 W
- Einspeisung: 100 W
- Batterieladung: 100 W

Aktuell nutzbarer Überschuss:
177 W

Leistungsbilanz:
PLAUSIBEL

Bilanzabweichung:
-35 W

========================================
SMOOTH CONTROL
========================================

Aktueller Regler:
10 W

Finaler Sollwert:
10 W

Differenz:
0 W

Hysterese:
100 W

Sofortreaktion:
JA

Mindesthaltezeit:
0 s

Restliche Haltezeit:
0 s

Mindesthaltezeit blockiert:
NEIN

Schreibvorgang erforderlich:
NEIN

========================================
VOLLZIEL-BEREITSCHAFT
========================================

Vollziel-Eskalation aktiv:
NEIN

Ladesitzung durch Vollziel gehalten:
NEIN

Aktuell ausreichend PV zum Laden:
JA

Einordnung:

Vollziel ist derzeit nicht aktiv.


========================================
BMS-DIAGNOSE
========================================

BMS-Tapering wahrscheinlich:
NEIN

Einordnung:

Keine BMS-Bewertung erforderlich – aktuell findet keine relevante Batterieladung statt.


========================================
ARCHITEKTURCHECK
========================================

Zentrale Entscheidungsdatei:
custom_templates/pv_ladeoptimierung_core.jinja

Sollwert verwendet zentrale Engine:
JA

Lifecycle-Automation verwendet zentrale Engine:
JA

Ladesitzung verwendet zentrale Engine:
JA

Smooth Control verwendet zentrale Engine:
JA

Diagnose berechnet Ladeentscheidung neu:
NEIN

Diagnose-Version:
3.1.5

Geladene Core-Version:
3.1.4

Core mit Diagnose kompatibel:
JA

Führende Betriebsmodi:
GENAU EINER

========================================
GESAMTSTATUS
========================================

🟢 Vollziel erreicht.
5 „Gefällt mir“