EcoFlow Cloud - bringe deine EcoFlow Geräte ins Home Assistant

Nabend. Ich habe das Problem, das wenn ich die powerstream auf Batterie prioriseren stelle, in der power plus Karte die Energie zum Laden aus dem Grid kommt und nicht aus dem Solar-Kreis. Grid und Batterie haben eine Verbindung, aber die ist unnötig. Was hab ich falsch gemacht.

1 „Gefällt mir“

Du wirst sicherlich irgendwo Entitäten falsch zugeordnet haben. Ohne Code können wir dir nichts sagen oder helfen.

1 „Gefällt mir“
type: custom:power-flow-card-plus
entities:
  battery:
    entity: sensor.powerstream_battery_input_watts
    state_of_charge: sensor.powerstream_battery_charge
    color:
      consumption:
        - 0
        - 255
        - 64
      production:
        - 0
        - 128
        - 64
    use_metadata: false
    invert_state: false
  grid:
    secondary_info: {}
    entity: sensor.tibber_pulse_muhlenspiegel_3_energie
    color_icon: red
    color_circle: red
    color_value: true
    color:
      consumption:
        - 255
        - 0
        - 0
    invert_state: false
    use_metadata: false
  solar:
    entity: sensor.solar_gesamt
    display_zero_state: true
    secondary_info:
      color_value: true
    color_value: false
    color_icon: true
    color:
      - 255
      - 255
      - 0
    name: Solar
    invert_state: false
clickable_entities: true
display_zero_lines: true
use_new_flow_rate_model: true
w_decimals: 0
kw_decimals: 1
min_flow_rate: 0.75
max_flow_rate: 6
max_expected_power: 2000
min_expected_power: 0.01
watt_threshold: 1000
transparency_zero_lines: 0

EDIT (jayjojayson): Code im Editor bitte immer über vorformatierter Text „</>“ einfügen.

1 „Gefällt mir“

hi,

wie hast du das hinbekommen, das du zwischen stromversorgung und stromspeicher hin- und her schalten kannst (also priorisieren)?

1 „Gefällt mir“

Bei Battery hast du einen combinierten Sensor angelegt, der nur den Input beachtet. Jedenfalls laut deinem Sensornamen. Das kann dann nicht funktionieren. Entweder du legst zwei Sensoren für Input und Output an oder du hast einen kombinierten der positiv und negativ zählen kann.

image

Du hast vier Sensoren in deiner Card. Battery Charge wird sicherlich den aktuellen Stand der Batterie in Prozent ausgeben? Aber bei den anderen drei mischt du doch Watt und kWh, oder was steht im Sensor solar_gesamt und tibber?

* sensor.powerstream_battery_charge
* sensor.powerstream_battery_input_watts
* sensor.tibber_pulse_muhlenspiegel_3_energie
* sensor.solar_gesamt
1 „Gefällt mir“

Der Sensor kann positiv und negative Daten ausgeben ausgeben,also laden und entladen.

@Neuling : das geht leider nur in der ecoflow app

1 „Gefällt mir“

ja das dachte ich mir. hätte ja sein können, du hast einen weg gefunden, um das in ha zu steuern.

1 „Gefällt mir“

Hallo zusammen. Habe jetzt das pyscript von GitHub - svenerbe/ecoflow_dynamic_power_adjustment: Service Description: EcoFlow Device API Integration for Power Stream Control getestet. Das Funktioniert mit dem PowerStream und ich habe mir damit, in Verbindung mit einem SmartMeter meines Versorgers eine „Nulleinspeisung“ für „arme“ gebaut :slight_smile: Ich kriege vom SmartMeter, alle 2-3 Sekunden den aktuellen Verbrauchswert vom Netz (positiv, wenn aus dem Netz Strom bezogen wird und negativ, wenn mein PV ins Netz einspeist. Diesen Wert (wenn er sich verändert) nehme ich in einer Automatisierung und berechne den Watt-Wert, den ich aus dem PowerStream (habe zwei davon) „dazu geben“, oder „weniger einspeisen“ muss, damit der Bezug/Einspeisung möglichst bei 0 einpendelt. Die Komplexität ergibt sich daraus, dass ich mit zwei PowerStream zwei Batterien speise/resp. davon Strom beziehe, so dass der max. Strom nie mehr als die erlaubten 800 W (D), resp. 600 W (CH) beträgt. Mit dem Script, das @ svenerbe erstellt hat, können dann die Einspeisungen, pro PowerStream individuell gedrosselt werden.

2 „Gefällt mir“

Das klingt nach einer interessanten Lösung. Wie lädst du deine Batterien? Magst du deinen Code dazu auch teilen? Scheint ja schon etwas komplexer und da ich meinen Speicher auch gerade integriere, interessiert mich die Lösung tatsächlich auch. :slight_smile:

1 „Gefällt mir“

klar, mache ich doch gern:

Ich habe folgende Steuergrössen

  1. Helper: number.gplugm_rel_wert ← liefert mir den „relativen“ Stromverbrauch vom PowerMeter eingespeist (postiv, wenn Strom vom Netz bezogen wird und negativ, wenn ich einspeise)
  2. sensor.powerstream_delta_other_loads ← den hole ich mir von der EcoFlow-Integration aus dem Device PowerStream 1 (hängt an einer Delta Max)
  3. sensor.powerstream_pro_other_loads ← zweite Powerstream (hängt an einer Delta Pro)

Die Logik ist relativ simpel:

  • wenn der abgelesene Wert 0 ist, liegt entweder ein Ablesefehler vor (von Zeit zu Zeit, oder es gibt nichts zu regeln)
  • wenn abgelesener Wert > 0 bedeutet das, dass Strom vom Netz bezogen wird. Dann mache ich nichts, falls in der Summe (beider Powerstreams) schon 800 (da das ganze ein BKW ist) eingespiesen wird. Wenn die Summe der beiden Einspeisungen jedoch < 800 ist, kann ich noch Strom liefern und teile diesen (im Moment noch zur Hälfte), auf (deshalb *0.5) und gebe jeder Powerstream (HW1… dies ist die Serien-Nummer der ersten und HW2…) den Befehl, den Einspeisewert um diesen Wert zu erhöhen. ACHTUNG: Das Script verarbeitet nur relative Werte!
  • wenn der abgelesene Wert < 0 (das heisst, es wird Strom ins Netz exportiert) mache ich das Gegenteil; ich reduziere die Einspeisung der Powerstream um je die Hälfte des zu hohen Werts (nun jedoch *-0.5, damit Leistung weggenommen wird).

So regelt die Automation, alle 2-3 Sekunden, resp. wenn sich der Eingangswert ändert und gibt entweder mehr Strom aus der Batterie/PV oder nimmt Leistung weg :slight_smile: (eben Nulleinspeisung für Arme; ja ich weiss, dass es Shelly EM gibt, die den Strom in noch kleineren Intervallen regeln und in der Ecoflow-App das als Beta verfügbar wäre…)

Das ganze sieht dann etwa wie folgt aus: (die Striche unter der Null-Linie sind Einspeisungen ins Netz, sieht „wilder“ aus, als es ist, aber in der Summe heute z.Bsp. gerade mal 200 Wh, oder ca. 7 Cents; damit kann ich leben.

image

Das entscheidende Element, das dies alles erst möglich macht, ist das Pyscript von @svenerbe mit dem schlussendlich die Leistungsabgabe der PowerStreams (relativ) geändert werden kann.

image

Hier noch die Sicht des SmartMeters, die „Einspeisung ins Netz“ hält sich in Grenzen:

image

</>

alias: PowerStream steuern
description: ""
triggers:
  - entity_id: number.gplugm_rel_wert
    trigger: state
  - trigger: time_pattern
    seconds: /2
    enabled: false
conditions: []
actions:
  - choose:
      - conditions:
          - condition: state
            entity_id: number.gplugm_rel_wert
            state: "0"
        sequence: []
        alias: Wenn Ablesefehler, oder Differenz = 0; tue nichts
      - conditions:
          - condition: template
            value_template: "{{ states('number.gplugm_rel_wert') | float < 0 }}"
            alias: Wenn Einspeisung ins Netz > 0
        sequence:
          - alias: Delta Max Output steuern
            data:
              SerialNumber: HW1xxxxxxxxxxxxxxx
              TotalPower: "{{(states('number.gplugm_rel_wert') | float ) * 0.5  }}"
              Automation: true
            action: pyscript.set_ef_powerstream_custom_load_power
          - alias: Delta Pro Output steuern
            data:
              SerialNumber: HW2xxxxxxxxxxxxxxx
              TotalPower: "{{(states('number.gplugm_rel_wert') | float ) * 0.5  }}"
              Automation: true
            action: pyscript.set_ef_powerstream_custom_load_power
      - conditions:
          - condition: template
            value_template: >-
              {{ states('sensor.powerstream_delta_other_loads') | float +
              states('sensor.powerstream_pro_other_loads') | float  > 800 }}
        sequence:
          - alias: Delta Max Output steuern
            data:
              SerialNumber: HW1xxxxxxxxxxxxx
              TotalPower: "{{(states('number.gplugm_rel_wert') | float ) *(-0.5)  }}"
              Automation: true
            action: pyscript.set_ef_powerstream_custom_load_power
          - alias: Delta Pro Output steuern
            data:
              SerialNumber: HW2xxxxxxxxxxxx
              TotalPower: "{{(states('number.gplugm_rel_wert') | float ) *(-0.5)  }}"
              Automation: true
            action: pyscript.set_ef_powerstream_custom_load_power
        alias: Wenn Inverter-Output > Strombedarf
      - conditions:
          - condition: and
            conditions:
              - alias: Wenn Inverter-Output noch < 800
                condition: template
                value_template: >-
                  {{ states('sensor.powerstream_delta_other_loads') | float +
                  states('sensor.powerstream_pro_other_loads') | float  <= 800
                  }}
              - condition: template
                value_template: "{{ states('number.gplugm_rel_wert') | float >= 0 }}"
        sequence:
          - alias: Delta Max Output steuern
            data:
              SerialNumber: HW1xxxxxxxxxxxxxxxx
              TotalPower: >-
                {{ (800 - (states('sensor.powerstream_delta_other_loads') |
                float + states('sensor.powerstream_pro_other_loads') | float)) *
                0.5  }}
              Automation: true
            action: pyscript.set_ef_powerstream_custom_load_power
          - alias: Delta Pro Output steuern
            data:
              SerialNumber: HW2xxxxxxxxxxxxxxxxxx
              TotalPower: >-
                {{ (800- (states('sensor.powerstream_delta_other_loads') | float
                + states('sensor.powerstream_pro_other_loads') | float)) * 0.5 
                }}
              Automation: true
            action: pyscript.set_ef_powerstream_custom_load_power
        alias: Wenn Inverter-Output < 800 und Strombezug aus Netz > 0
mode: single
</>
2 „Gefällt mir“

Danke fürs teilen. :slight_smile:

1 „Gefällt mir“

Hi, ich habe mal wieder eine kleine Ergänzung zu meiner Batterie-Card. Der Verlauf der Bar-Card wird jetzt während der Ladung oder Entladung animiert. So sieht man noch besser den aktuellen Stand.

image

Die beiden Entitäten im Card Mod müssen dazu an eure angepasst werden:

  • switch.acpowervonbatterie
  • switch.acpowerzubatterie
type: custom:bar-card
card_mod:
  style: |
    ha-card {
      border: none !important;
      margin-top: -20px;
      --primary-color: #7bc13c !important;  
    }
    #states {
      padding: 16px !important;
    }  
    bar-card-currentbar {
      border-radius: 3px !important; 
      background: linear-gradient(270deg,  orange, yellow, green );
      background-size: 300% 100%;
      {% if states['switch.acpowervonbatterie'].state == 'on' %}
      animation: gradientShiftNormal 3s linear infinite;
      clip-path: inset(0 calc(100% - var(--bar-percent)) 0 0);
      {% elif states['switch.acpowerzubatterie'].state == 'on' %}
      animation: gradientShiftReverse 3s linear infinite;  
      clip-path: inset(0 calc(100% - var(--bar-percent)) 0 0);
      {% endif %} 
    }                   
    bar-card-backgroundbar { 
      border-radius: 3px !important; 
      background: linear-gradient(to right, darkorange 15%, orange 25%, yellow 50%, green 100%);
      clip-path: inset(0 calc(100% - var(--bar-percent)) 0 0);
    }
    @keyframes gradientShiftNormal {
      0% { background-position: 0% 50%; }
      100% { background-position: 100% 50%; }
    }
    @keyframes gradientShiftReverse {
      100% { background-position: 0% 50%; }
      0% { background-position: 100% 50%; }
    }
name: Hausspeicher
positions:
  name: inside
  value: inside
  indicator: "off"
  icon: "off"
unit_of_measurement: "%"
max: 100
height: 25px
entities:
  - entity: sensor.batterie_ladezustand

EDIT: kleinen Fehler behoben. :slight_smile:

3 „Gefällt mir“

Hoffe ihr habt auch eine Anzeige des SOH der genau ist, den wie ihr das Teil betreibt, wird der schnell mal sinken. :smiling_face:

1 „Gefällt mir“

Moin, bei den Ecoflow, zumindest bei meiner kleinen sehe leider keinen SOH. Aber bei meinem Hausspeicher sehe ich den. Wie kann man den am besten positiv beeinflussen? Aktuell entlade ich auf ca. 18% und lade auf 95%, das sollte doch schon gut sein, oder? Keine zu hohen Ladeleistungen spielen bestimmt auch eine Rolle. Bin da ja noch am Anfang meines Wissenstands.

1 „Gefällt mir“

Der SOC ist nicht so wichtige, gut ist immer zu wissen was die einzelnen Zellen so machen, wie ist die Zellspannung der einzelnen Zellen sind sie immer gut ausbalanciert, wie weit sind die einzelnen Zellspannungen auseinander. Damit sieht man wie gut der Balance arbeiten und wie gesund die Zellen sind. Da ist es besser wenn du einen eigenen Thread dazu aufmachst wo man das besprechen kann.

2 „Gefällt mir“

Hi. Ich wollte mir auch eine EcoFlow anschaffen. Aber wenn ich die Integration über hacs installiere und sie später konfigurieren will, kommt der Fehler Fehler beim laden des Konfigurationsflußes. Ich habe ha neu gestartet das Addon neu installiert aber leider ohne Erfolg. Kann es am Update von Ha 2025.4 liegen?

1 „Gefällt mir“

Schließe mich mal @Jeffi an, habe genau das gleiche problem. :confused:

1 „Gefällt mir“

Ich habe das gestern Abend auch nochmal getestet. Meine Integration war deaktiviert, weil ich den kleinen Speicher gerade nicht nutze. Nun wollte ich ihn aktivieren, erhalten aber auch einen Fehler beim Start und die Steuerung ist somit nicht möglich. Scheint irgendetwas mit mqtt laut Log zu tun zu haben.

1 „Gefällt mir“

Ich hab jetzt einfach die neuste Beta-Version genommen. Die kann man auswählen, bevor man auf Herunterladen klickt. Also in dem Dropdown. Ich nuss nur noch warten bis mein EntwicklerAccound freigeschaltet wurde.

2 „Gefällt mir“

Und mit der Beta funktioniert es wieder?
Muss ich nachher mal testen. :slight_smile:

1 „Gefällt mir“