NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@waly_de Hallo Markus, heute hatte ich die maximale Leistung „MaxPower“(für die Einspeisung ins Stromnetz) auf 300 W begrenzt, weil ich verhindern wollte, dass die Batterie durch Kaffeemaschine, Herd … zu schnell entladen wird. Dies scheint sich aber wohl auch auf die maximale Leistung zum Laden der Batterie auszuwirken. Der Differenzbetrag scheint dann im Netz zu landen. Ist das richtig? Das möchte ich natürlich nicht.
Vielen Dank auch für das neue Script bzw. deinen Entwurf! O. g. Verhalten des PowerStream schien damit identisch zu sein. -
@karo2204 Da es jetzt zu laufen scheint, hier noch mal der wichtige Hinweis an alle:
Wenn SmartPlugs genutzt werden, überschreiben diese alle Regelversuche des Scripts.
Zwar registriert das Script inzwischen, wenn Plugs Leistung anfordern und regelt dann seine eigene Leistung entsprechend zurück, aber für den PS hat dass was die Plugs anfordern immer Priorität.Also Bitte: wenn das Script nicht wie erwartet arbeitet, dann als erstes mal sehen ob noch Plugs in Betrieb sind und diese ausstecken! Ihr könnt einfach in der App nachsehen, ob Leistung in die Smart Plugs geht. Es sollte 0W dort angezeigt werden.
Zweiter wichtiger Punkt: Das Smartmeter muss negative Werte liefern, wenn Leistung in das öffentliche Netz eingespeist wird! Bei Tibber scheint es da verschiedene Möglichkeiten zu geben.
-
@waly_de sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
alles klar... wenn du mal in die Einstellungen der neuen Version schaust, da hab ich schon etwas vorbereitet. Ich denke diese Parameter können das alles abdecken...
Hi, magst du kurz erklären was die ganzen Einstellungen da bedeuten? Die meisten sind selbsterklärend denk ich, aber ein paar Kommentare dazu wären hilfreich
Dann kann ich das heute mal testen, da wir heute viel Sonne haben.Kannst du mir diese drei Werte kurz erklären?
ExcessChargeSwitchMin: 10, ExcessChargeStartPower: 50, ExcessChargeStartPowerDurationMin: 5,
-
@waly_de
Ich hab seit gestern das neue Skript im Betrieb und es funktioniert bis jetzt wunderbar
Die zwei PS werden abhängig vom Akkustand gesteuert und es kommt nicht mehr vor, dass eine PS gar nichts liefert, und die andere die komplette Last.
Ich teste noch weiter und gebe Bescheid, falls ich was finde! -
@ponti92 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Ich hab seit gestern das neue Skript im Betrieb und es funktioniert bis jetzt wunderbar
Die zwei PS werden abhängig vom Akkustand gesteuert und es kommt nicht mehr vor, dass eine PS gar nichts liefert, und die andere die komplette Last.Prima, vielen Dank für Dein Feedback!
-
@ponti92 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Kannst du mir diese drei Werte kurz erklären?
ExcessChargeSwitchMin: 10, ExcessChargeStartPower: 50, ExcessChargeStartPowerDurationMin: 5,Also bissher haben alle diese Parameter noch keine Funktion. Das kommt erst in den nächsten Versionen. Ich hab mir nur Gedanken gemacht, wie es funktionieren soll und was ich dazu für Daten brauche.
Der Plan:
Ich überwache den Überschuss. Wenn der Überschuss für ExcessChargeStartPowerDurationMin Minuten durchgehend größer ist als ExcessChargeStartPower schalte ich den ExcessChargeSwitchID ein und stelle
ExcessChargePowerID entsprechend dem Überschuss ein.
Fällt der Überschuss für * ExcessChargeStartPowerDurationMin* dauerhaft unter ExcessChargeStartPower wird wieder ausgeschaltet.
ExcessChargeSwitchMin soll die Zeit festlegen in der ExcessChargeSwitchID mindestens in der zuletzt geschalteten position verbleiben soll. Einfach um zu verhindern das ständig ein und ausgeschaltet wird.zu überlegen wäre noch eine Quelle für die tatsächlich aufgenommene Leistung anzugeben (Shelly oder auch entsprechend ID des Delta), denn das ist oft anders als der eingestellte Wunschwert.
Vielleicht kommt noch etwas hinzu, wenn ich es dann umsetze....
-
@Waly_de :
Habe das Script aktiviert und bekommen nachfolgende Fehlermeldungen:25.9.2023, 09:09:22.924 [error]: javascript.0 (1284) at SetBasePower (script.js.Energie.Ecoflow_Leistung:1866:43) 25.9.2023, 09:09:22.925 [error]: javascript.0 (1284) at script.js.Energie.Ecoflow_Leistung:850:13 25.9.2023, 09:09:22.925 [error]: javascript.0 (1284) at CheckforReconnect (script.js.Energie.Ecoflow_Leistung:1221:9) 25.9.2023, 09:09:22.926 [error]: javascript.0 (1284) at Object.<anonymous> (script.js.Energie.Ecoflow_Leistung:848:9)
hast Du einen Tipp?
-
@bombastikde sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
1221
Fehlermeldungen bitte immer aus (Protokolle), nicht aus der Konsole des Skriptes holen.Da steht einiges mehr.
Aber hast du mqtt und protobuf installiert?
-
@waly_de Danke Waly_de - jetzt scheint alles zu laufen - Vielen Dank nochmals für die Arbeit
-
@waly_de
Ok das macht alles Sinn und habe nichts hinzuzufügen
Zu deiner Anmerkung zur tatsächlichen entnommenen Leistung:
Auch ein Shelly Plug oder andere messsteckdosen sind auch nicht immer so genau und können da auch gerne mal zu 10% abweichen. Ich habe selbst den Verdacht, dass der zb der Shelly plug s mehr anzeigt als es beim Shelly 3em dann am Ende ankommt. Man müsste das mal messen, aber dazu müsste ich alle anderen Verbraucher abklemmen, sodass der 3em nur den Plug s misst..Evtl. Könnte man das durch eine einfache PI(D) Regelung steuern, damit der Wert sich selbst einstellen kann. Wobei das mit der langsamen abtastrate wahrscheinlich Nicht so gut funktionieren wird.
Oder du baust dir ähnlich wie bei den PS einen Offset ein, der hinzugefügt bzw. abgezogen wird zu dem Wert den das Skript ermittelt hat.
Dann könnte man sich gut festgelegen, ob man zb leichte positive Wattwerte dulden, Oder immer leicht im negativen bleiben möchte..
Diesen Offset muss jeder für sich einstellen und ist gegebenenfalls für jedes System und Vorlieben individuell. -
@Waly_de
Hi,
Noch etwas anderes:
Die Funktion mit der Zusatzpower wenn die PV Leistung über 600W geht, funktioniert bei mir nicht so recht.
Die setzt dann immer ein, obwohl noch keine 600W PV Leistung anliegt und speist dann zusätzlich Strom von wenigen Watt (20-50W) ein. Und da sobwohl der hausverbrauch negativ ist.( zweite solar Anlage mit Hoymiles produziert genug Strom)Deshalb schalte ich zurzeit den AC Ausgang der PS einfach aus, solange ich noch unter 600W bin..
Ich denke, dass das Skript mit den negativen Werten nicht klarkommt, und dadurch die Regelung einen Sonderfall hat..
Es ist halt doof, wenn der Verbrauch eh schon negativ ist, dass die PS Strom zusätzlich liefert..Was anderes wäre es bei 100% Akku, dann sollte die PS natürlich alles liefern was geht. Dies funktioniert auch wunderbar
Edit:
Es sieht so aus, als ob das Skript ewig in dieser Zusatzpower Schleife hängt und nicht mehr normal regelt, sobald es einmal die Zusatzpower aktiviert hatte. -
@waly_de Top danke
-
Hab Error
-
@ponti92 ne, das ist so gedacht. Wenn 600 W in die Batterie gehen und mehr geerntet werden kann, dann ist es doch ok, wenn der Bezug negativ wird. und ja, er versucht solange so viel Leistung zur Batterie geht, immer in 20 schritten zu erhöhen... alles genau so geplant ... wenn du das unterbindest, verschenkst Du Energie...
Aber du kannst nach BAT_MAX_OFFSET suchen. Das steht auf 60. Also fängt Zusatzpower bei 540 W an zu arbeiten (Weil oft der Akku keine 600W zulässt. Zumindest bei mir)
Setzt BAT_MAX_OFFSET auf 0, dann startet Zusatzpower tatsächlich erst bei 600W -
@milchbeck
hmm auch bei Restarten des Skriptes?? Bitte keine Bilder schicke, sondern das Log aus "Protokolle" kopieren undals Code einfügen
Welcher Wert steht bei Dir in:
0_userdata.0.ecoflow.AdditionalPowerSum
sollte da "null" stehen, trage bitte händisch eine "0" ein
-
@waly_de 0_userdata.0.ecoflow.AdditionalPowerSum
Hab ich nicht im Script
-
@waly_de sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@ponti92 ne, das ist so gedacht. Wenn 600 W in die Batterie gehen und mehr geerntet werden kann, dann ist es doch ok, wenn der Bezug negativ wird. und ja, er versucht solange so viel Leistung zur Batterie geht, immer in 20 schritten zu erhöhen... alles genau so geplant ... wenn du das unterbindest, verschenkst Du Energie...
Ja das Feature ist mir schon bewusst und sinnvoll, aber ich hab mich immer gewundert warum es schon bei 550W startet..
Ich weiß, dass es dazu dient zusätzliche PV Leistung einzuspeisen, die sonst verloren ginge, jedoch ist es in meinem Fall suboptimal. Denn durch die andere PV Leistung ist mein hausverbrauch schon negativ und das Skript verschenkt dann noch 50W, die eigentlich in den Akku gehören
Bei mir klappt das mit 600W wunderbar, vielleicht ist die Spannung deiner Solarmodule zu niedrig, sodass er dann in die Strombegrenzung geht?Aber du kannst nach BAT_MAX_OFFSET suchen. Das steht auf 60. Also fängt Zusatzpower bei 540 W an zu arbeiten (Weil oft der Akku keine 600W zulässt. Zumindest bei mir)
Setzt BAT_MAX_OFFSET auf 0, dann startet Zusatzpower tatsächlich erst bei 600WDanke, das wird es wohl sein. ich stell den Wert mal auf 0 oder 10 und teste mal
-
2023-09-26 00:13:21.945 - info: admin.0 (163) <== Disconnect system.user.admin from ::ffff:192.168.178.202 admin 2023-09-26 00:30:09.737 - info: admin.0 (163) ==> Connected system.user.admin from ::ffff:192.168.178.202 2023-09-26 00:30:15.729 - info: admin.0 (163) <== Disconnect system.user.admin from ::ffff:192.168.178.202 admin 2023-09-26 01:10:03.397 - info: history.0 (11304) Delete old history "/opt/iobroker/iobroker-data/history/20230923/history.0_userdata.0.ecoflow.RealPower.json" 2023-09-26 01:10:03.412 - info: history.0 (11304) Delete old history dir "/opt/iobroker/iobroker-data/history/20230923" 2023-09-26 07:47:03.200 - error: javascript.0 (426153) Error in callback: TypeError: (Hausstrom + Einspeisung).toFixed is not a function 2023-09-26 07:47:03.217 - error: javascript.0 (426153) at Object. (script.js.Ecoflow_25_09_2023:2404:68) 2023-09-26 07:47:03.217 - error: javascript.0 (426153) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2777:34) 2023-09-26 07:47:03.217 - error: javascript.0 (426153) at listOnTimeout (node:internal/timers:569:17) 2023-09-26 07:47:03.217 - error: javascript.0 (426153) at processTimers (node:internal/timers:512:7) 2023-09-26 08:07:54.337 - warn: deyeidc.0 (432547) ControlCode faulty!: Data may be corrupt, therefore discarded 2023-09-26 08:21:47.096 - info: admin.0 (163) ==> Connected system.user.admin from ::ffff:192.168.178.168 2023-09-26 08:23:59.033 - info: admin.0 (163) <== Disconnect system.user.admin from ::ffff:192.168.178.168 admin 2023-09-26 08:24:13.596 - info: admin.0 (163) ==> Connected system.user.admin from ::ffff:192.168.178.168 2023-09-26 08:24:31.860 - info: admin.0 (163) ==> Connected system.user.admin from ::ffff:192.168.178.168 2023-09-26 08:25:05.772 - info: admin.0 (163) <== Disconnect system.user.admin from ::ffff:192.168.178.168 javascript 2023-09-26 08:25:05.773 - info: admin.0 (163) <== Disconnect system.user.admin from ::ffff:192.168.178.168 admin 2023-09-26 08:25:39.752 - info: admin.0 (163) ==> Connected system.user.admin from ::ffff:192.168.178.168
Das kommt immer wieder bin jetzt erstmal wieder zurück zum vorherigen Script
-
@milchbeck also ich vermute ja das es mit dem 0_userdata.0.ecoflow.AdditionalPowerSum zusammen hängt
warn: deyeidc.0 (432547) ControlCode faulty!: Data may be corrupt, therefore discardedhast du einen Deye Konfiguriert bei AdditionalPower ? Lass das mal testweise weg. (es reicht wenn du die ID änderst z.B. aus
id: "deyeidc.0.solar.1234567890.0.power"
mach mal
id: "off-deyeidc.0.solar.1234567890.0.power" -
Danke für das Skript
Ich habe die neuste Version mal ausprobiert, bekomme aber folgende Fehlermeldungen:
javascript.0 2023-09-26 09:38:10.163 error at processTimers (node:internal/timers:512:7) javascript.0 2023-09-26 09:38:10.163 error at listOnTimeout (node:internal/timers:569:17) javascript.0 2023-09-26 09:38:10.163 error at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2757:34) javascript.0 2023-09-26 09:38:10.163 error at Object.<anonymous> (script.js.Dynamisches_Einspeisen09:2404:68) javascript.0 2023-09-26 09:38:10.162 error Error in callback: TypeError: (Hausstrom + Einspeisung).toFixed is not a function
Kann mir da jemand helfen, warum das so ist?
Folgende Werte bekomme ich von HomeAssistant:SmartmeterID: "hass.0.entities.sensor.scb_home_power.state", AdditionalPower: [ // Wenn es weitere Wechselrichter gibt, die in IOBroker erfasst werden, können diese hier Angelegt werden //############# Diesen Abschnitt für jedes einzelne Gerät anlegen ################ { name: "Kostal_WR", // Beliebiger Name id: "hass.0.entities.sensor.scb_ac_power.state" // Der Objektpfad zu dem Leistungswert in Watt (W) },
Habe in der Instanz JavaScript mqtt und protoburfjs installiert.