Nulleinspeisung Teil 2 – Was bei 100% passiert.

Schon im vorherigen Artikel habe ich Euch erklärt, wie meine Nulleinspeisung mit Komponenten meines Solar-Balkonkraftwerks gesteuert durch Home Assistent funktioniert.

Hier geht’s nun weiter, denn ich habe Euch noch nicht erzählt, was ab 100% geschieht.

Was benötigen wir in Home Assistant um diese Lösung umzusetzen?

Einrichtung der Komponenten:

Zunächst müssen wir für unsere Solarproduktion eine Überblick über die zu erwartende Solargenerierung haben. Hierfür kann das integrierte Solar Forecast genutzt werden, ich habe mich aber aufgrund besserer Genauigkeit für das in HACS integrierbare „Open-Meteo Solar Forecast“ (https://github.com/rany2/ha-open-meteo-solar-forecast) entschieden.

Nachdem Ihr dieses integriert habt, müsst Ihr in den Einstellungen – Geräte & Dienste die Integration hinzufügen, wie in der Anleitung des Programmierers beschrieben.
Bei mir sind es mittlerweile 3 Forecast-Devices geworden:
Ost, Süd und West mit jeweils 440Wp, 830Wp und nochmal 440Wp.

Aufgrund der gesamten Wattpeak von 1710 Wp brauche ich auch zwingend einen erweiterbaren Akku wie den Growatt Noah 2000, um die Menge an Strom für die „teureren“ Stunden meines Tibber-Tarif’s speichern zu können.

Um den Forecast zu erstellen sind Daten analog Eurer Einstellung zu definieren:
Der Api-Schlüssel bitte nicht füllen, der wird für Privatpersonen nicht benötigt. Ansonsten die Ausrichtung, den Winkel, Wp, eventuelle Dämpfungsfaktoren, und die Kapazität des Inverters (in meinem Fall ist das hier der Noah2000) eintragen.

Wenn Ihr die Einrichtung abgeschlossen habt, solltet Ihr auch die 19 Entitäten pro Dienst haben. Für mich ist hierbei folgende jetzt wichtig:
Geschätzte Stromproduktion – jetzt.

Dieser Wert sollte anhand der Forecastdaten ungefähr aussagen, wieviel Strom ich zu erwarten habe. Es ist hier klar zu erwähnen, dass es keine genauen Werte sind!!

Die Automation

Ich werte in der Automation alle 30 Sekunden aus, wenn der SOC des Noah auf 100% ist.
Anschließend bestimme ich noch, ob aufgrund zu geringen Ertrags ich meine Grundlast von 250W schalte oder bei höheren Werten auf den errechneten Forecast Wert schalte, um möglichst allen Strom im Haus zu verwenden oder (grüner Gedanke) den Rest an das Grid zu geben.

Hier der Code dazu:

alias: PV Power Zero - Battery SOC 100%
description: ""
triggers:
  - seconds: /30
    trigger: time_pattern
conditions:
  - condition: not
    conditions:
      - condition: state
        entity_id: sensor.solar_gesamtleistung
        state: unavailable
  - condition: state
    entity_id: sensor.noah_2000_soc
    state: "100"
actions:
  - if:
      - condition: and
        conditions:
          - condition: numeric_state
            entity_id: sensor.noah_2000_solar_power
            below: 300
          - condition: numeric_state
            entity_id: sensor.noah_2000_discharge_power
            above: 50
    then:
      - metadata: {}
        target:
          entity_id: number.solar_maximale_leistung
        action: number.set_value
        data:
          value: "250"
    else:
      - metadata: {}
        data:
          value: >
            {% set current_output = states('sensor.power_production_now_2') |
            float  + states('sensor.power_production_now_3') | float +
            states('sensor.power_production_now_4') | float%}  {% set min_output
            = 30 %} {% set max_output = 800 %} {% if 0 < current_output < 800 %}
              {% set desired_output = current_output %}
            {% else %}
              {% set desired_output = 800%}
            {% endif %}   {{ desired_output }}
        target:
          entity_id: number.solar_maximale_leistung
        action: number.set_value
mode: single

Lasst uns dabei wieder den letzten Block zur Erklärung zerlegen:
{% set current_output = states('sensor.power_production_now_2') | float + states('sensor.power_production_now_3') | float + states('sensor.power_production_now_4') | float%}
Dieser Code summiert alle zu erwartenden Forecastwerte zusammen.

{% set min_output = 30 %} {% set max_output = 800 %}
{% if 0 < current_output < 800 %}
Wir setzen Min und Max Werte analog unserem Wechselrichter und prüfen, ob der FC dazwischen liegt.

{% set desired_output = current_output %}
{% else %}

Liegt der Wert dazwischen, setzen wir den errechneten Wert als Output für den WR.

{% set desired_output = 800%}
{% endif %}

{{ desired_output }}
Ansonsten dürfte der Wert über 800 liegen und wir geben das Maximum frei. Der Rest vom Code ist nur noch das setzen des Wertes auf den WR Output number.solar_maximale_leistung.

Ich hoffe, dass auch Ihr damit eine gute Möglichkeit findet, Euren Output grüner zu gestalten, wenn Ihr die 100% Kapazität des Akku’s erreicht und „schenkt“ den übrigen Strom Euren Nachbarn.

Hinweis: Durch die Nutzung des obigen Links erhalte auch ich eine kleine Provision, für die Vermittlung eines neuen Kunden.

Ralph

Ich bin seit über 25 Jahren begeisterter IT-ler und beschäftige mich auch in meiner Freizeit gerne mit diversen Themen. Aktuell ist einer dieser Schwerpunkte die Automatisierung und Einbindung unterschiedlichster Systeme in Home Assistant. Ansonsten bin ich bei einem renommierten Storage Hersteller täglich im Einsatz und auch somit regelmäßig mit IT Themen befasst.