NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
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 },
-
@gerdso - hmm. Dann habe ich sicher einen Fehler bei der Seriennummer. Ich prüf das gleich mal...
...hatte einen Fehler in der Seriennummer...
Danke
-
@umele Frage: die Delta Pro hat insgesamt 2 Steckplätze für Akku oder PS. Wenn ich eine PS habe, ist ein Steckplatz schon weg und kann noch einen Zusatzakku anschließen oder gibt es einen Adapter, dass ich 2 Zusatzakkus und 2 PS anschließen könnte?
Du hast ja eine Delta mit PS und einen Zusatzakku mit PS, da frage ich mich, wie das angeschlossen wird, da der Zusatzakku doch auch nur einen Steckplatz hat für die Verbindung zur Delta.
Oder habe ich das falsch verstanden und Du hast eine Delta mit einem PS und einem Zusatzakku und die Solarmodule hängen zum einen an der Delta und zum anderen an der PS? -
@gerdso -
Stimmt - musste schon ein bisschen Hirnschmalz in die Konfiguration stecken
Hier meine aktuelle Konfiguration:
Davor hatte ich nur einen Power Stream (und auch ein Panel weniger). Da war meine Konfig wie folgt:
Ein zweites Panel an der "alten" Konfiguration an den Power Stream anzuschließen, hätte bei mir keinen Sinn gemacht - hätte den Grossteil dieser Sonnenernte verschenkt, weil duales Laden (noch) nicht funktioniert.
-
@19bobby65
Es wäre super, wenn Du Dein Scrip teilen würdest. Bin daran sehr interessiert, da ich auch gerade daran bin das zu machen…komme aber schleppend mit meinen Fähigkeiten voran. Vielen Dank für Deine Hile. -
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="z?RSsC$V#o)f[Uf=J_F.">pv</variable> <variable id="8jAy3,$^XwJf~/#-uIEU">eigenverbrauch</variable> <variable id="tANO5)Fws;PbejQI|6_K">ueberschus</variable> </variables> <block type="schedule" id="/.@G|5ZDL/g|}6Y(TVn^" x="-337" y="-362"> <field name="SCHEDULE">{"time":{"start":"sunrise","end":"sunset","mode":"minutes","interval":1},"period":{"days":1},"valid":{"from":"19.09.2023","to":""}}</field> <statement name="STATEMENT"> <block type="variables_set" id="g%2?UVY^7Q,sLL1uB4_@"> <field name="VAR" id="z?RSsC$V#o)f[Uf=J_F.">pv</field> <value name="VALUE"> <block type="get_value" id="cq%YBwfza@)f7ec{bAL^"> <field name="ATTR">val</field> <field name="OID">fronius.0.powerflow.P_PV</field> </block> </value> <next> <block type="variables_set" id="%31}bYLyZ!@!T2pT;X|M"> <field name="VAR" id="8jAy3,$^XwJf~/#-uIEU">eigenverbrauch</field> <value name="VALUE"> <block type="get_value" id="DCr~sOj3]h]G[t_W}:|j"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Eigenverbrauch</field> </block> </value> <next> <block type="variables_set" id="PTjbb3PFLe}:!2|qt@=|"> <field name="VAR" id="tANO5)Fws;PbejQI|6_K">ueberschus</field> <value name="VALUE"> <block type="math_arithmetic" id=".-xW]_d#vw]?s,Y.@Y4."> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="*ODotjCrz/_1P[9tC0$z"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="g6wh6Yc{iA)/i?wswu6K"> <field name="VAR" id="z?RSsC$V#o)f[Uf=J_F.">pv</field> </block> </value> <value name="B"> <shadow type="math_number" id="lY79g[Wo-C3Mh(A.GJAF"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="vKhaHdbCULV^MCID;HZ{"> <field name="VAR" id="8jAy3,$^XwJf~/#-uIEU">eigenverbrauch</field> </block> </value> </block> </value> <next> <block type="controls_if" id="$KrntQhU)rR[{Jl?5~Xz"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="s]bQU5IFZC9|A(rIHY|W" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="sA+ZhIk3`dX5ZF%R8yrt"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="hQT_czZI~WzhPSQlHTv3"> <field name="VAR" id="tANO5)Fws;PbejQI|6_K">ueberschus</field> </block> </value> <value name="B"> <block type="convert_tonumber" id="j^3{5)ge!1//_QlJcTM_"> <value name="VALUE"> <block type="math_number" id=":`:9.H0~|4dJ+@#kgd@%"> <field name="NUM">250</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="/V?/{9u*P-u%AU=KaaIO"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="%RX?N$P;s_bGHl3b}Tp/"> <field name="ATTR">val</field> <field name="OID">tuya.0.0620008184f3eb85a03d.1</field> </block> </value> <value name="B"> <block type="logic_boolean" id="x+(jxI:R]ArJwQsdn/oe"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="zBiqXDkFElLS2X@0ci2Z"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tuya.0.0620008184f3eb85a03d.1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="4J:`UPTh(0N=6M2n1h8)"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="y7gFBI~Sl1;upLRsUfko" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="i~dBl(E6XD=H.uRn~fBH"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="wR3cwB)f;|^RJhFIZeC_"> <field name="VAR" id="tANO5)Fws;PbejQI|6_K">ueberschus</field> </block> </value> <value name="B"> <block type="convert_tonumber" id="O6fR+|r!yr5q7?XTFZ?g"> <value name="VALUE"> <block type="math_number" id="kG4Ph?*3F$q_[45V@Ku*"> <field name="NUM">5</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="xVPLuD{`xomav}V_@RE3"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=".Oi//vv9Q:n6bWm(m#)n"> <field name="ATTR">val</field> <field name="OID">tuya.0.0620008184f3eb85a03d.1</field> </block> </value> <value name="B"> <block type="logic_boolean" id="!KDe7nC{+kKlP6,Z^vmU"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="TS5NneGqaTO|#E)kkB=O"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tuya.0.0620008184f3eb85a03d.1</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="%!q^MjX,:zdI+)nI8l2|"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="Z2D!Q](VIi/e3L=^Bn^@"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.Neuer_Zustand1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="N!9FHOuUmBWMRDQ`-LGu"> <value name="VALUE"> <block type="math_number" id="Gj}@r![*8A4-*Ai$$ej-"> <field name="NUM">100</field> </block> </value> </block> </value> <next> <block type="control" id="kqUQK7E]5%Qc)Y`{lFHJ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.ecoflow.app_1699446398039774562_DAEBZ5ZE6280131_thing_property_set.writeables.slowChgPower</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id=",4gy=A:Gucd5W~JU?K_+"> <value name="VALUE"> <block type="math_number" id="O0O[XjW*8?!$}muvC7hj"> <field name="NUM">100</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="schedule" id="~{)0dhBI=@]Y^nrQTf)K"> <field name="SCHEDULE">{"time":{"start":"17:02","end":"17:05","mode":"minutes","interval":1},"period":{"days":1}}</field> <statement name="STATEMENT"> <block type="controls_if" id="Rd7HrS?G6XhPgXriPoIO"> <value name="IF0"> <block type="logic_compare" id="nd4@mxqyvYz#-CxSU#88"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="VIv)[[iy9{$7N%qD{u:F"> <field name="ATTR">val</field> <field name="OID">tuya.0.0620008184f3eb85a03d.1</field> </block> </value> <value name="B"> <block type="logic_boolean" id="~*2HOA[RepI^2oO%wv%T"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="X#+Ev)+/LOrm=5QCO+]v"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tuya.0.0620008184f3eb85a03d.1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="559fu-Y1o!Ciw:r$Ls*_"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="on_ext" id="wutz@-^x{JMv1l`jlU5`"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="%30Ret=}C/HjSe^nO=4z"> <field name="oid">0_userdata.0.Datenpunkte.Netzeinspeisung</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="]Qzh`7w3Hd(vmR!4iYeU"> <value name="IF0"> <block type="logic_operation" id="tNsYkXQH?w$cC%{)1,Z/" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="niQ#G|rZd^M.kQKAl8_m" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=":NT?7+^;uNnF@LH([p!Y"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=";33=H?#xLD7y!8eM%ZnH"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Netzbezug</field> </block> </value> <value name="B"> <block type="math_number" id="AW|n;ik=a`J;2Txhg,I3"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="FagzWE.m8B5QyG+5!gY$"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id=".b|Y(p%046wHd5A~6?y3"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Netzeinspeisung</field> </block> </value> <value name="B"> <block type="convert_tonumber" id="BZ-^=rd}H[V?uQP)4*4/"> <value name="VALUE"> <block type="math_number" id=";^;mGkMF,Ma[v//vygh9"> <field name="NUM">300</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="zMf:t@c2.elAGPQJHsjL"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="Aja1vYWtDxXeY,M7kN~X"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Neuer_Zustand1</field> </block> </value> <value name="B"> <block type="math_number" id="lpcpra$3)Ln;8xwEFDjq"> <field name="NUM">2000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="@A@f9dw4zDQYVaPMPi~,"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.Neuer_Zustand1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="Aa1m;N5wd~0,n}/aG(?q"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="BG`YHIr@apG4;{ai^!#n"> <field name="NUM">1</field> </shadow> <block type="get_value" id="C-~O$)|3[Yg2.9(,{eL."> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Neuer_Zustand1</field> </block> </value> <value name="B"> <shadow type="math_number" id=":UC1-vH)-a_48Z(pp0-a"> <field name="NUM">100</field> </shadow> </value> </block> </value> <next> <block type="control" id="RNsweT1begokmpsMdq/w"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.ecoflow.app_1699446398039774562_DAEBZ5ZE6280131_thing_property_set.writeables.slowChgPower</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="Jq[!jZ^e*aG*MhJj+%|9"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Neuer_Zustand1</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="Sk#tj]/H|wiuR3TNQQ0?"> <value name="IF0"> <block type="logic_operation" id="ppG-mT7o6S^yJU-/K(3J" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="lh3u!,H~291P%0I~gjpY"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="E|8**U~,O/Y9Y1{+dmm#"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Eigenverbrauch</field> </block> </value> <value name="B"> <block type="get_value" id="nPjG#kCa(Mo+`sG1o1z0"> <field name="ATTR">val</field> <field name="OID">fronius.0.powerflow.P_PV</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="]5te~SMy|LG~0T{ZLI5_"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="LzjI?_DT{3iGm8Vn#_Yb"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Neuer_Zustand1</field> </block> </value> <value name="B"> <block type="math_number" id="Pm7SQnN_W?H/vPZ!jC:*"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="xI@#zAR~=)ym@z*Z2{xg"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.Neuer_Zustand1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="!5]fiu??C;YIR_NmlRH:"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="BG`YHIr@apG4;{ai^!#n"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Lh;Q5v7_D7U^:JaV.ykA"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Neuer_Zustand1</field> </block> </value> <value name="B"> <shadow type="math_number" id="q.pvW6a9KHRNBP-rAxpN"> <field name="NUM">100</field> </shadow> </value> </block> </value> <next> <block type="control" id="9Df$]g*A]Am#={;0kD08"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.ecoflow.app_1699446398039774562_DAEBZ5ZE6280131_thing_property_set.writeables.slowChgPower</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="6Y}-M|So/0nPL;2:nx.-"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Neuer_Zustand1</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </xml>
Der unter Teil im Script regelt die AC-Ladung in 100 Watt schritten von 0 bis 2000 Watt je nach vorhandenen Überschuss aber ob dir das so etwas hilft keine Ahnung müssen ja auch die Datenpunkte dazu passen bzw. musst du die erstellen.
-
Hallo zusammen,
ist es möglich das anschalten des AC ausgangs bei der Delta 2 zu automatisieren? meine Idee war ein Blockly Script das bei Ladestand größer 90% Ac anschalten soll, allerdings schreibt das Script den wert nicht.
Probiert habe ich 0_userdata.0.ecoflow.app_xxxxxx_xxxxxxx_thing_property_set.writeables.acOutCfg_D2
als auch
0_userdata.0.ecoflow.app_device_property_xxxxxxx.data.params.mppt.cfgAcEnabledHabt ihr da eine idee wie das funktioniert könnte?
-
@paterdo-glaser Ich mach es nicht per Blockly sondern per Javascript und bei mir funktioniert es per
0_userdata.0.ecoflow.app_xxx_DCxxx_thing_property_set.writeables.ACPower"); // ACPower on/off für Netzteile
die Variable ACPower habe ich bei Dir jetzt nicht gesehen -
@gerdso Hallo, welchen Akku Verwendest du? ACPower ist bei mir in den Instanzen keine Writeable, Du wirst eine Delta Max haben oder. Bei mir ist es aktuell so, dass ich die Werte in den Instanzen zwar ändern kann, aber es nicht ausgeführt wird
-
Hallo zusammen,
weiss jemand, welcher Parameter der DP die ungerundete Akkuladung angibt?
Ich vermute, dass es "0_userdata.0.ecoflow.app_device_property_DCxxx.data.params.bmsMaster.f32ShowSoc"
ist.
Nehme bisher "batSoc" (PowerStream), bzw. "Soc"(Delta Pro direkt). Der gerundete Wert ist mir aber zu ungenau beim Kalibrieren der Delta Pro... -
@paterdo-glaser genau so ist es bei mir auch (Delta Pro).
Ich kann die Überschusswerte automatisiert vom Smartmeter holen und auch in die writebale (0_userdata.0.ecoflow.app_XXXX_DCEBXXX_thing_property_set.writeables.slowChgPower eintragen lassen. Leider ändert sich die Ladeleistung am AC-EIgang dadurch nicht - ich vermute, dass diese Werte nicht vom IoBroker zum Delta Pro gesendet werden... da muss vermtulich noch das Passwort von der App in das Script eingebaut werden.