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.
Du wirst sicherlich irgendwo Entitäten falsch zugeordnet haben. Ohne Code können wir dir nichts sagen oder helfen.
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.
hi,
wie hast du das hinbekommen, das du zwischen stromversorgung und stromspeicher hin- und her schalten kannst (also priorisieren)?
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.
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
Der Sensor kann positiv und negative Daten ausgeben ausgeben,also laden und entladen.
@Neuling : das geht leider nur in der ecoflow app
ja das dachte ich mir. hätte ja sein können, du hast einen weg gefunden, um das in ha zu steuern.
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 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.
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.
klar, mache ich doch gern:
Ich habe folgende Steuergrössen
- 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)
- sensor.powerstream_delta_other_loads ← den hole ich mir von der EcoFlow-Integration aus dem Device PowerStream 1 (hängt an einer Delta Max)
- 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 (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.
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.
Hier noch die Sicht des SmartMeters, die „Einspeisung ins Netz“ hält sich in Grenzen:
</>
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
</>
Danke fürs teilen.
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.
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.
Hoffe ihr habt auch eine Anzeige des SOH der genau ist, den wie ihr das Teil betreibt, wird der schnell mal sinken.
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.
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.
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?
Schließe mich mal @Jeffi an, habe genau das gleiche problem.
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.
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.
Und mit der Beta funktioniert es wieder?
Muss ich nachher mal testen.