NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@waly_de Ich bin endlich mal von der festen Einspeisung auf die dynamische gewechselt.
Ich habe aus Gewohnheit noch die Smartplugs drin und ja ich weiß die müssen raus.
Nun habe ich folgende Fragen:- Wenn ich aus Gewohnheit die AC-Leistung manuel geregelt habe dann ist die Dynamische Regelung aus oder?
- Wie kann ich das wieder einschalten, wenn ich nicht an den Rechner mit Script komme?
Könnte man das irgendwie über einen Textbefehl steuern?
Ist es möglich dass durch das neue WLAN Update für die Delta 2 Max die Regelung nicht mehr richtig funktioniert?
Ideen:
- Ich hätte ggf Bedarf an dass man der Regelung sagen kann ab einen Bedarf von z. B. 3000W regel auf z. B nur 90 W oder Wert X
- Zu der Überschussladung musste ich mich mal mit der Lab-Funktion beschäftigen hier scheint ja alles bei Ecoflow dabei zu sein. Vielleicht macht es deine Arbeit einfacher.
-
Es wäre cool wenn man den Fehler, dass wenn genug Sonne da ist und das System nicht richtig umspringt den überschuss in den Akku zu laden, denn folgendes Problem besteht:
Sonne voll da, dann speist das System nur das ein was grundbedarf ist ein, aber wenn man kurz auf Speicher priorisieren geht und wieder zurück dann klappt es… so ein fallback realisiere ich mit der automation in der App per Zeit, also 9.00 Uhr in den Batterie Modus und kurze Zeit darauf in den Netz Prio Modus, aber das muss ich jedes Mal machen wenn mehr abverlangt wird als von der Sonne kommt
-
@milchbeck das Problem ist, dass man nicht genau sagen kann, ob die Leistung aufgrund von wolken einbricht, oder aufgrund dieses Fehlers..
Man merkt nur, dass die PV Leistung heruntergeht, was aber auch durch Verschattung passieren kann.Ich habe zwei PS (einer mit D2M und einer mit D2M zusatzakku) und ein kleines Skript geschrieben, das die PV Leistung beider Systeme vergleicht. Sobald die PV Leistung beim „kaputten“ System unter 20% geht, trigger ich den Prio Modus. Das funktioniert aber nur wenn man ein Referenzsystem als Vergleich hat.
Alternativ könnte man den Wert von setAC beobachten und mit dem PV vergleichen. Sobald setAC höher als PV ist, zb bei 600W und dann wieder unter PV geht, dann muss man den Batterie Prio Modus triggern.
Jedoch wird der Bug hoffentlich bald von EcoFlow gefixed und würde nicht so viel Energie in dieses Problem stecken. Ich würd mich mal beim Support beschweren, dann schicken sie dir ein goodie als Entschädigung
Man kann anscheinend beim Support auch um ein FW downgrade bitten, was aber das gleichzeitige Laden der d2M wieder entfernt. -
@ponti92 machen wir mal einen Versuch:
bitte sucht nach:totalPV = totalPV + GlobalObj[asn].sumPV
und ersetzt das mit:
totalPV = totalPV + GlobalObj[asn].sumPV + 10
Dann beobachtet mal, ob das Problem weiterhin besteht, oder sich verändert.
-
@aherby sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Wenn ich aus Gewohnheit die AC-Leistung manuel geregelt habe dann ist die Dynamische Regelung aus oder?
Nein, eigentlich sollte das manuell gestellte bei der nächsten Messung überschrieben werden.
Aber: Smartplugs gegen vor. Wenn die 100 W anfordern kann das Script ( und auch die App ) nicht weniger liefern. Bei weniger Anforderung kann das Script inzwischen die Leistung entsprechend runter regeln.@aherby sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Ich hätte ggf Bedarf an dass man der Regelung sagen kann ab einen Bedarf von z. B. 3000W regel auf z. B nur 90 W oder Wert X
Das würde ich über ein Extrascript oder Blocky lösen. Du kannst mit "externConfig" z.B. "MaxPower" über ein eigenes Object steuern. Oder einfach mit "RegulationOffPower" und "RegulationState" die Regelung durch das Script ein und aus schalten.
-
@waly_de
werde es die Tage auch mal testen.@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
totalPV = totalPV + GlobalObj[asn].sumPV + 10
-
@waly_de
Ich habe ein Frage zur Regelung von einzelnen Konfigurationen über externe States.
Kann ich auch einen Wert aus den erweiterten Einstellungen per State ändern?Ich möchte RegulationMultiPsMode gerne abhängig von der PV Prognose steuern. Ich habe einen Powerstream mit 1 kWh und einen mit 4 kWh. Sofern die Ertragsprognose für den ersten bei mehr als z.B. 1 kWh liegt, möchte ich RegulationMultiPsMode auf seriell umstellen.
Ich habe das jetzt so eingegeben, aber es wird nicht der entsprechende State angelegt:
var externConfig = [ { VarName: "RegulationMultiPsMode", //Variabelname aus "ConfigData" bei Aufzählungen [0...X] in der Reigenfolge der Angaben id: "0_userdata.0.ecoflow.Lastverteilung" //Das Objekt (State) das den Wert für diese Variable enthalten soll }, ];
Ich stehe irgendwie auf dem Schlauch und brauche mal einen Schubs in die richtige Richtung.
-
Okay mal umgestellt werde berichten
-
@milchbeck sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Okay mal umgestellt werde berichten
@Waly_de es klappt leider nicht mit der Änderung
-
Hat von euch schon mal jemand mit dem writetable standbymodemins herumgespielt?
Meine Delta Pro kann minimal 30 Minuten über die App. Wenn ich jetzt im writable kleinere Werte eingebe, werden die zwar in der App angezeigt, es sieht aber nicht so aus, als ob diese auch tatsächlich ein früheres Abschalten der Delta zur Folge hat. Ich würde die Delta gerne bewusst abschalten und das Einschalten mache ich über eine schaltbare Steckdose mit dem Ladeeingang. Mir verbraucht das System im Ruhemodus zuviel Strom, daher dieser Weg, evtl. hat jemand von euch aber auch eine bessere Idee?
Geht die Delta zB von selbst an, wenn die Solarpaneele Strom liefern? -
Hallo, ich habe ein kleines Script als Ergänzung erstellt, welches mir die automatische AC-Ladung meines Delta Pro aktiviert, wenn meine PV mehr als 1000 Watt einspeist. Sobald der Überschuss 0 beträgt, schaltet die Steckdose wieder ab.
Ihr müsst dafür eine Tuya/SmartLife WLAN-Steckdose verwenden und den Tuya-Adapter installieren.
Mein Ziel war es, dass ich tagsüber möglichst wenig einspeisen und möglichst viel Eigenverbrauch erreiche und ich wollte nicht immer manuell prüfen, ob ich aktuell Überschuss habe, welchen ich lieber in den Speicher als ins Netz packe.
Eventuell kann es ja jemand von Euch gebrauchen.
const vPower = 'SMARTMETER_ID'; // Pfad zur Leistung des Fronius Smartmeters
const Schalter = 'TUYA_ID'; // Pfad zur Tuya Steckdoseon(vPower, function(dp) {
if (dp.state.val <= -1000) { // Überschussleistung in Watt
setState(Schalter, true); // Steckdose einschalten
} else if (dp.state.val >= 0) {
setState(Schalter, false); // Steckdose ausschalten
}
});Nachtrag: Frage mich gerade, ob ich die AC-Ladeleistung auch regeln kann je nach Überschuss/Einspeisung ins Netz. Sollte ja eigentlich auch funktionieren, oder?
PS: Ich habe das Script komplett von CHATGPT erstellen lassen ohne selber jemals sowas gemacht zu haben
-
@dreffi sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de
Ich habe ein Frage zur Regelung von einzelnen Konfigurationen über externe States.
Kann ich auch einen Wert aus den erweiterten Einstellungen per State ändern?Ich stehe irgendwie auf dem Schlauch und brauche mal einen Schubs in die richtige Richtung.
Die States werden nicht automatisch angelegt (wollte auch den Zugriff auf States anderer Adapter ermöglichen). Du musst den States einfach manuell anlegen, dann sollte es funktionieren.
-
@ralf77 Hallo, ja Regelung der AC-Ladeleistung nach Überschuss geht.
Ich mach das auch über Tuya Wlan Steckdosen und einen Blockly Script in Iobrocker, funktioniert bei mir bestens, lade meine Ecoflow nur mit AC wenn überschuss vorhanden ist, hab kein Solarpanel angeschlossen.
AC ladung kommt bei mir von der Dachanlage mit einen Fronius Wechselrichter und einspeisung dann mit der ecoflow nur sobald die Dachanlage nicht mehr genug an leistung liefert. -
@gerdso Die letzte Frage kann ich inzwischen selbst beantworten, die Delta geht an, wenn die Solarpaneele Strom liefern (Paneele sind nur an der Delta, nicht am Powerstream angeschlossen).
Was aber irgendwie so gut wie gar nicht funktioniert ist die Abschaltung der Delta. Obwohl ich da jetzt 30min eingestellt habe, ist die auch noch Stunden später an und ich muss diese manuell abschalten. Die macht in der Zeit gar nichts und ich rufe die auch nicht per App ab. Kann es sein, dass das connector-Script dazu führt, dass die aktiv bleibt, weil damit immer Daten angefragt werden?
-
@19bobby65
Wie hast du dies realisiert, in einem eigenen script? Wie sieht dein Befehl für das Ändern der Ladeleistung aus?
Danke & Gruss -
Hallo zusammen,
Ich suche das Objekt, das mir die Daten vom PV-Eingang der Delta Pro liefert.
Wenn ich die Delta Pro als "DM" im Script registriere, dann werden writables erstellt. Wo finde ich die gelesenen Daten?Vielen Dank für eure Hilfe!
-
@umele Auch dort, evtl. das Script stoppen, den Objektbaum löschen und Script wieder starten (so mache ich es immer bei Änderungen).
Ich habe auch eine Delta Pro und habe diese als DM eingetragen -
Falls jemand mehrere Power Streams hat und die Lastverteilung dynamisch regeln möchte…
Dank der Möglichkeit jetzt externe Parameter abzufragen, regle ich das via Zusatzscript:- die Lastverteilung von 2 Power Stream dynamisch regeln
- Stream 1 mit Delta Pro => 1680 WP direkt an der Delta Pro
- Stream 2 mit Zusatzakku => 840 WP am Power Stream
Hintergrund: Stream 2 lädt naturgemäß weniger in den Zusatzakku. Mein Ziel ist, den Ladezustand von Delta Pro und Zusatzakku einigermaßen gleich zu halten.
Scheint auch zu funktionieren
In meinem Script frage ich den Ladestand vom Delta Pro und Zusatzakku ab. Sobald der Ladezustand des Zusatzakkus unter dem der Delta Pro ist, springt die Regulierung auf „1“ => Serie (Stream 2 speist nur ein falls die Leistung von Stream 1 nicht ausreicht).
Ansonsten springt die Regulierung auf „0“ = Balance => beide Streams liefern den Strom zu gleichen Teilen.Vorbedingung:
Ein Objekt für die Regelung der Lastverteilung muss manuell angelegt werden. Ich habe noch ein Objekt für den Klartext der Lastverteilung (merke mir nie, welches welcher Zustand ist…).Ist ein Blockly-Script…
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="schedule" id="4r/SdR`9Ns}wG!-@z=)L" x="-1037" y="-288"> <field name="SCHEDULE">*/2 * * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="ZvDhkV_4w)f-:`W}*PD7"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="Y3Ss0!70G}oW:jZ;RE8N"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="O?o^MK%1hqw`K8L?_6Ba"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.ecoflow.app_device_property_HW51ZOH4SF6L3894.data.InverterHeartbeat.batSoc</field> </block> </value> <value name="B"> <block type="get_value" id="(lVqzh+%Z1.pxn$P_,iv"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.ecoflow.app_device_property_HW51ZOH4SF581123.data.InverterHeartbeat.batSoc</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="1:AV6/J(fY[Zz*1*X[6*"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.eigene_Berechnungen.Lastverteilung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Lj/0p64,RRVn/[21U`U("> <field name="NUM">1</field> </block> </value> <next> <block type="control" id="xQ9p#38-GIGTr+=3gs`="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.eigene_Berechnungen.Lastverteilung_Txt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="23pG^Emw08kopK)!X4Wi"> <field name="TEXT">Serie (Akku xx23 nur falls nötig)</field> </block> </value> <next> <block type="debug" id="^#I:RE;C?.+/QDp/q540"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="V0Et@Z_=RE]`1r`CjF``"> <field name="TEXT">Einspeisung Serie</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="XKy/aY~l#z4bg4uF*iJd"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.eigene_Berechnungen.Lastverteilung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="HVMt*OIb?!;7_QG9LQ#D"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="C5s{X~WtvtM9W+6x.WOF"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.eigene_Berechnungen.Lastverteilung_Txt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="lZbkY)~zLYO{18!fCHZ%"> <field name="TEXT">Balance</field> </block> </value> <next> <block type="debug" id="!HTqeR|~wD?~*g(SzZ=."> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="E-Eho[?yh+g;iD0_J:7x"> <field name="TEXT">Einspeisung Balance</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="control" id="*_G$?#*n-D,VF?ORa=/b" x="-463" y="246"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.eigene_Berechnungen.2a_PV2_Stream2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="o4XeKdnBz:VP~/xT+~K8"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="l9uiiPa+K*a/oRR12KC?"> <field name="NUM">1</field> </shadow> <block type="get_value" id="RMZ1FQrRKi1;*V#-sl7i"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.ecoflow.app_device_property_HW51ZOH4SF581123.data.InverterHeartbeat.pv2InputWatts</field> </block> </value> <value name="B"> <shadow type="math_number" id="Hs%1vOOTy{!dm#U2~m$g"> <field name="NUM">10</field> </shadow> </value> </block> </value> </block> </xml>
- die Lastverteilung von 2 Power Stream dynamisch regeln
-
@gerdso - danke für den Tip.
Hab's gerade probiert Hat leider nicht geholfen...Bekommst Du die Daten von Deiner Delta Pro?
-
@umele ja, anbei ein Ausschnitt.
Und hier die Config dazu. Hast Du diese als subscribe true? Ansonsten bekommst Du logischerweise keine Daten und nur die writetables werden angelegt{ seriennummer: "xxx", name: "DELTA Pro", typ: "DM", subscribe: true, // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt },