EcoFlow Delta Pro AC Laden dynamisch regeln

Hallo, ich bin der Neue;-) und leider auch ein Noob was das Scripten in HA angeht.
Da hier aber schon einige offensichtlich Erfahrungen mit der Automation von PV Überschuss und Delta Pro (o.ä.) haben, hier mein Szenario.

Meine Balkon PV erzeugt sehr häufig einen Überschuss (Power ins Netz). Bisher schalte ich sobald dieser über 200W liegt einfach den AC Eingang meiner Delta ein. und ein wenn er eine Weile darunter liegt wieder aus.

Nach der Integration der Delta in HA habe ich nun festgestellt daß ich die AC Eingangleistung an der Delta zwischen 200 und 2900W regeln kann. (number.delta_pro_ac_charging_power)

Ziel wäre also daß wenn mehr als 200W Überschuss da sind die Eingangsleistung in 100Watt Schritten nach oben und nach unten angepasst wird.

Hat das schon mal jemand hier realisiert? Oder gibt es irgendwo Beispiele für ähnliche Szenarien?

Hi,

Ich nutze diese AC Regelung auch allerfdings über das iobroker script ecoflow-connector-Script zur dynamischen Leistungsanpassung

Ich würde gerne auf den io broker verzichten und auch das AC ladne über home Assistant einregelen. Dafür musste man dynamisch schauen wie überschuss vorhanden ist

Leider hat hier noch niemand eine Idee und ich bin noch am basteln. Ich stehe gerade an diesem Punkt:

Ich versuche einen Sensor/value zu bauen der mir sagt mit wie viel Watt ich die D2max laden soll. Dafur nutze ich meinen total active power sensor. Momentan rechnet er mir den um zu einmen positiven Wert. Wenn es -1000 is dan bekomme ich 1000 als Ausgabe. So weit so gut.

Jetzt weiss ich nicht wie genau ich einbauen kann, dass:

  • wenn der Ausgangswert von total active power ein Wert über 0 ist (also kein überschuss) dann immer 0 für den neuen Sensor ausgeben (weil dann will ich nicht AC laden)
  • wenn der Wert vom neuen Sensor (charging power max) 1500 übersteigt dann max 1500 ausgegeben (ich will nicht zu schnell laden)
    Wie bekomme ich hier die ifs rein? :see_no_evil:
sensor:
  - platform: template
    sensors:
      charging power d2max :
        value_template: "{{ states('sensor.hv_total_active_power') | float | round(0) | abs }}

Update:
Copilot hat dies ausgegegeben…mal schauen ob ich damit arbeiten kann :slight_smile:

sensor:
  - platform: template
    sensors:
      charging_power_d2max:
        value_template: >
          {% set hv_power = states('sensor.hv_total_active_power') | float | round(0) %}
          {% if hv_power >= 0 %}
            0
          {% else %}
            {% set hv_power_abs = hv_power | abs %}
            {% if hv_power_abs > 1500 %}
              1500
            {% else %}
              {{ hv_power_abs }}
            {% endif %}
          {% endif %}

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

Ich habe das über eine Automation mit schaltbaren Steckdosen realisiert da ich diese eh zum Messen verwende und ich weitere Szenarien habe in denen ich Werte von den Steckdosen benötige, du kannst das aber natürlich auch wie du erwähnt hat über das an bzw. ausschalten des AC Eingangs machen:

Was ich dazu noch für Werte nutze ist mein Smart Meter, das ist der u.g. Bitshake Sensor und Daten von meinem Wechelrichter der PV Anlage. (Die bekommst du aber direkt von deiner Powerstation. Ich schalte den Eingang bzw. meine Steckdose in diesem Szenario auch erst dann an wenn meine PV Anlage mindestens 200W liefert

alias: EcoFlow Ladesteuerung basierend auf Überschuss
description: Ladeleistung des Speichers an den aktuellen Verbrauch anpassen
mode: single
triggers:
  - seconds: /15
    trigger: time_pattern
conditions:
  - condition: numeric_state
    entity_id: sensor.ecoflow_delta_pro_battery_level
    below: 100
  - condition: device
    type: is_off
    device_id: (Daten einer MQTT Steckdose)
    entity_id: (Daten einer MQTT Steckdose)
    domain: switch
    for:
      hours: 0
      minutes: 10
      seconds: 0
    enabled: true
  - condition: template
    value_template: "{{ states('sensor.bitshake_smartmeterreader_dws7420_power') | float < 0 }}"
  - condition: numeric_state
    entity_id: sensor.steca_inverter_watts
    above: 200
actions:
  - type: turn_off
    device_id: (Daten einer MQTT Steckdose)
    entity_id: (Daten einer MQTT Steckdose)
    domain: switch
  - delay:
      hours: 0
      minutes: 0
      seconds: 15
      milliseconds: 0
  - type: turn_on
    device_id: (Daten einer MQTT Steckdose)
    entity_id: (Daten einer MQTT Steckdose)
    domain: switch
  - variables:
      raw_power: "{{ states('sensor.bitshake_smartmeterreader_dws7420_power') | float }}"
      adjusted_power: "{{ (-1 * raw_power) - 100 }}"
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ adjusted_power > 2900 }}"
        sequence:
          - target:
              entity_id: number.ecoflow_delta_pro_ac_charging_power
            data:
              value: 2900
            action: number.set_value
      - conditions:
          - condition: template
            value_template: "{{ adjusted_power < 200 }}"
        sequence:
          - target:
              entity_id: number.ecoflow_delta_pro_ac_charging_power
            data:
              value: 200
            action: number.set_value
      - conditions:
          - condition: template
            value_template: "{{ adjusted_power >= 200 and adjusted_power <= 2900 }}"
        sequence:
          - target:
              entity_id: number.ecoflow_delta_pro_ac_charging_power
            data:
              value: "{{ adjusted_power }}"
            action: number.set_value

Wichtig dabei ist, du brauchst die EcoFlow Cloud Integration.

Ich vermute du kannst dir daraus eine für dich passene Lösung ableiten :wink:

Hallo zusammen,

eine dynamische Anpassung des Ladestroms wäre auch für mich interessant.

Abhängig von der aktuellen Solarproduktion, dem Ladezustand der Solarbatterie würde ich gerne als Zusatzspeicher meine Ecoflow nutzen.
Da ich manchmal bei Sonne an über 3 kW an den Stromanbieter schicke, wäre eine dynamische Ladeleistungssteuerung wünschenswert.

Ecoflow und mein Solarkraftwerk E3DC sind bereits in HA integriert.

@jbo

Diese dynamische Ladung habe ich bei mir realisiert. Was du benötigst:

  • einen template sensor der dir berechnet wie hoch der dynamische Überschuss ist den du zum Laden verwenden möchtest. Hier steckt die Intelligenz" drin. Hier ein Beispiel für meinen d2max calculated charging power sensor:
{% set solar_power = states('sensor.solar_current_total_power') | float(0) %}
{% set offset = solar_power - 45 %}
{% set home_power = states('sensor.current_power_home') | float(0) %}
{% set charging_amount = offset - home_power %}
{% if charging_amount > 80 %}
  {% set charging_amount = [charging_amount, 1300] | min %}
  {% set charging_amount = (charging_amount // 10) * 10 %}
  {{ charging_amount }}
{% else %}
  0
{% endif %}

Dieser Sensor macht global diese Berechnung: totale PV Power - Hausverbrauch + Reserve (offset) und wenn dieser Wert positiv ist und über 80 Watt liegt dann schraubt er die Ladeleistung hoch/bzw. runter in 10 Watt Schritten bis max. 1300 Watt (von mir so gewünscht) . So lade ich meine D2Max zuverlässig sobald mehr als 80 Watt Überschuss vorhanden sind. Wird alle 9s geprüft und agepasst. klappt echt gut und ich habe es schon einige Zeit im Einsatz.

Wenn dich die Details interessieren gebe ich gerne Starthilfe und zeige wo man was wie einrichten muss :slight_smile:

Das scheint mir eine gute Lösung zu sein. Allerdings kann es nicht mehr nachvollziehen. Nach einigen Problemen mit der EcoFlow Delta und dem “schwierigen” Support. Habe ich mich entschieden es so nicht zu realisieren. Einen Api-Key habe ich auch trotz mehrerer Versuche nie bekommen.
Zudem hat mich irgendwann auch gestört, daß bei der Pro die AC Ladung erst ab 200 Watt möglich war. Bei meinem Setup wäre mir da zuviel Überschuss ins Netz verschwunden.

Aber Danke, für andere sicher eine gute Lösung

Kann ich gut verstehen. Es ist etwas tricky mit den keys aber bis jetzt hat es hier gut geklappt. Lokal wäre mir viel lieber.

Die minimalen 200 Watt lassen sich einfach korrigieren wenn man weiß wo man suchen muss, war bei der D2Max genau so und habe ich hier z.B. auf 100 Wat gestellt:

Hallo und herzlichen Dank.

Das ist genau mein Ansinnen. Super.

Ecoflow Integration und API Zugriff läuft. Überschuss kenne ich auch schon!

Nur bin ich recht neu in der HA-Community.

Bei der Automation bin schon raus. Also würde ich gerne dein Angebot annehmen. Ich brauche immer einen kleinen Schubs :wink:

jbo

Die 200Watt sind meines Wissen Systemseitig vorgegeben und ignorieren jeden Wert darunter - zumindest ist das bei meiner D2 Pro so :wink:

Sprich, wenn an dann immer mindestens 200Watt egal welcher Wert durch HA oder anderweitig geliefert wird.

Hallo und vielen Dank für die Mühe
das ist genau was ich mit meiner Delta Pro 3 machen will die werte für das minimal und maximale laden kann ich anpassen aber wie genau mache ich das in Homeassistant.Wie integriere ich das .Einen sensor der mir den Ac wert liefert habe ich schon, aber wie schreibe ich den in die Ecoflow ?

Hi,

Sorry für die späte Antwort, so sieht meine Automatisierung aus. Es wird ein berechneter Wert für die dynamische Ladung in die Delta2Max geschrieben:

description: ""
mode: single
triggers:
  - seconds: /9
    id: start dynamic calculating
    trigger: time_pattern
conditions: []
actions:
  - action: number.set_value
    metadata: {}
    data:
      value: "{{ (states('sensor.d2max_calc_charging_power') | float(1)) | round(0)}}"
    target:
      entity_id: number.d2max_ac_charging_power

Hier müsst ihr natürlich eure Sensoren/Entitäten eintragen.

Mein berechneter Sensor sensor.d2max_calc_charging_power in der Automatisierung habe ich zuvor als Helfer bzw. Template Sensor erstellt:

{% set solar_power = states('sensor.solar_current_total_power') | float(0) %}
{% set offset = solar_power - 45 %}
{% set home_power = states('sensor.current_power_home') | float(0) %}
{% set charging_amount = offset - home_power %}
{% if charging_amount > 80 %}
  {% set charging_amount = [charging_amount, 1300] | min %}
  {% set charging_amount = (charging_amount // 10) * 10 %}
  {{ charging_amount }}
{% else %}
  0
{% endif %}

Hierzu nutze ich meinen bestehenden Sensor für solar Produktion (alle Wechselrichter addiert) und meinen Hausverbrauch. Dazu noch einen extra Offset von 45 Watt damit es nicht zu viel schwankt. Das müsstet ihr auf eure Gegebenheiten anpassen.

Ich limitierte auf 1300 Watt maximal und minimal 80 Watt. Ich hoffe es hilft euch weiter. Ansonsten einfach fragen :blush:

:crayon:by HarryP: Codezeilen formatiert (bitte immer in </> einbinden)

Habe nun die Vorgabe von Florism versucht umzusetzen.
Klappt bei mir irgendwie aber nicht.

{% set solar_power = states('sensor.s10e_solar_production') | float(0) %}
{% set offset = solar_power - 45 %}
{% set home_power = states('sensor.s10e_house_consumption') | float(0) %}
{% set charging_amount = offset - home_power %}
{% if charging_amount > 80 %}
  {% set charging_amount = [charging_amount, 1300] | min %}
  {% set charging_amount = (charging_amount // 10) * 10 %}
  {{ charging_amount }}
{% else %}
  0
{% endif %}

Meine beiden Sensoren heissen so. Ich habe eine S10 von E3DC.
Der Sensor hat immer den Wert “0”
Mit der Bitte um weitere Hilfe, JB