NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@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.
-
ok bitte diese neue Version Installieren:
und das Object :
0_userdata.0.ecoflow.AdditionalPowerSum
Löschen.
Changelog:
-
- (1.1.4.2) 26.09.2023
-
- BugFix
-
- Neuer Parameter: Zusatzpower_Offset: Zusatzpower startet ab einer Batterieladeleistung von MaxPower - Zusatzpower_Offset
-
-
@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
0_userdata.0.ecoflow.AdditionalPowerSum
Danke
Was mir aktuell aufgefallen ist:
Stromverbrauchen aktuell sind 300W
Wechselrichter meiner Haupt-PV-Anlage gibt aktuell 5000W ins Hausnetz
Der PowerStream versucht dennoch mit 300W dagegenzuhalten und den Hausverbrauch auf 0 zu setzen.Meines Erachtens nach hätte der PS auf 0 gestellt werden müssen, da die 5000W durch die Haupt Anlange ausreichen.
Oder habe ich da einen Gedankenfehler?
-
@mara sollte normal auf 0 gestellt werden außer die PS ist im Zusatzeinspeisemodus.
Dabei wird schrittweise der Bedarf erhöht, sobald der PS bei ca. 600W angekommen ist. (Siehe meine Kommentare oben)Zeigt dein Smart Meter denn einen negativen Wert an, wenn die große Anlage den Bedarf und mehr deckt?
-
@ponti92 said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Zusatzeinspeisemodus
Welche Option ist das im Skript?@ponti92 said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Zeigt dein Smart Meter denn einen negativen Wert an, wenn die große Anlage den Bedarf und mehr deckt?
Ha, hab ein Fehler bei mir gefunden. Der dumme sitzt ja meist vor dem Bildschirm. War eine falscher Sensor, den ich eingetragen hatte.
-
So hab das neue Script jetzt mal am laufen es scheint zu funktionieren 🤩 v1142
-
Kann es sein oder täusche ich mich, das Echtzeit einspeichern funktioniert präziser?
-
Hallo,
ich bekomme es einfach nicht so richtig zum laufen.
script.js.Dynamische_Anpassung_1142: PowerStream [PowerStream] Batteriestand unter Limit:10% (0%). Limitiere Einspeiseleistung auf: 150WObwohl die Battterie (D2M) bei 54% ist scheint er sie nicht richtig abzurufen
Ändere ich auf "hasbat" auf false, dann gibt er die vollen 600W ab, also scheint die Kommunikation zu funktionieren.
hat jemand eine Idee? -
@kaiausbrieselang
auch unter:
0_userdata.0.ecoflow.app_1589636683427278850_Rxxxxxxxx_thing_property_set
writeables
ist alles auf 0 -
@kaiausbrieselang sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@kaiausbrieselang
auch unter:
0_userdata.0.ecoflow.app_1589636683427278850_Rxxxxxxxx_thing_property_set
writeables
ist alles auf 0Was zeigt denn die App an, wenn du die Einstellungen des PS aufrufst. Wenn Du es in der Nacht versuchst, wenn der Powerstream schläft, kann das auch passieren das 0 angezeigt wird.
(ich gehe davon aus, das Deine D2M direkt mit der PS verbunden ist.)Writables werden nur angelegt. Werte können erst bei Änderung angezeigt werden. Ändere etwas in der App während das Script online ist und das Ergebnis sollte auch in den Writeables zu sehen sein.
-
@waly_de
Hallo,
vielen Dank für deine schnelle Antwort.
Ich wusste nicht, welche von den vielen Infos zur Fehlereingrenzung relevant sind.
Also, die D2M ist direkt über Port2 mit dem PS verbunden. Am Port1 des D2M hängt (zur Zeit) nichts.
Solarpanele sind im Moment gar nicht angeschlossen (weder am PS noch am D2M).
Der Akku wird per Überschuss über eine Homematic Steckdose geladen, wenn genügend vorhanden ist.
Der Akku hat im Moment 65% und wird in der App beim PS angezeigt.
Einstellungen in der APP beim PS:
Modus: Stromversorgung Priorisieren
Bedarf: 0W
Lade/entladegrenzwert: 0%-100% (habe ich beim D2M so aktuell eingestellt und wurde so auch vom PS übernommen).
Im Script:name: "PowerStream", // beliebiger Namen MaxPower: 600, // Der höchstmögliche Wert in Watt für die Einspeiseleistung subscribe: true, // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt typ: "PS", // Welches Gerät ist es: Powerstrem:"PS"; DeltaMax:"DM"; Delta2: "D2" ; Delta2 Max: "D2M"; SmartPlug: "SM"; Andere: "NA" // Parameter an hier nur für PowerStream. regulation: true, // "true": Dieser PowerStream soll vom Script reguliert werden RegulationOffPower: -1, // Wird die Regulation per State abgestellt, wird die Einspeiseleistung des ersten Powerstreams auf diesen Wert gesetzt (-1 = keine Änderung, -2 = Batterie Priomodus) hasBat: true, // "true": Eine Batterie ist angeschlossen. Nur für PowerStream relevant. battPozOn: 99, battPozOff: 94, // Wenn die Batterie bei battPozOn ist, Einspeisung auf MaxPower. Bei BattPozOff Normalbetrieb battOnSwitchPrio: true, // "true": Bei battPozOn wird in den Batterie-Prioritätsmodus gewechselt prioOffOnDemand: 0, // Wattwert des Bedarfs, bei dem zurück in den Strom-Priomodus gechaltet wird. 0 für kein Rückschalten. lowBatLimitPozOn: 10, lowBatLimitPozOff: 40,// Bei Unterschreiten der Batterieladung von "lowBatLimitPozOn" % ist die maximale Einspeiseleistung auf lowBatLimit: 150,
und
name: "DELTA2Max", typ: "D2M", subscribe: true,
als Quelle für den Stromzähler habe ich einen von Homematic
SmartmeterID: "hm-rpc.0.MEQ0381279.1.IEC_POWER", // State, der den aktuellen Gesamtverbrauch in Watt anzeigt
Der Zeigt Bezugsleistung in W an. Bei Überschuss ist der Wert negativ
Im Moment ist es so, dass der PS nichts ans Haus abgibt. Aber wegen der Sonne auch Überschuss herrscht.
Einspeisen des Überschusses läuft nicht über das Script (bisher).Das Protokoll des IOBroker zeigt:
javascript.0 2023-09-27 14:58:21.007 info script.js.Dynamische_Anpassung_1142: Adresse: app_1589636683427278850_R351xxxxxxxx_thing_property_set javascript.0 2023-09-27 14:58:21.007 info script.js.Dynamische_Anpassung_1142: Unbekannter Delta2Max Set Befehl: {"params":{},"from":"iOS","lang":"de-de","id":"500855464","moduleSn":"R351xxxxxxx","moduleType":1,"operateType":"getAllTaskCfg","version":"1.0"} javascript.0 2023-09-27 14:58:20.899 info script.js.Dynamische_Anpassung_1142: Adresse: app_1589636683427278850_R351xxxxxxx_thing_property_set javascript.0 2023-09-27 14:58:20.899 info script.js.Dynamische_Anpassung_1142: Unbekannter Delta2Max Set Befehl: {"params":{},"from":"iOS","lang":"de-de","id":"500692123","moduleSn":"R351xxxxxxx","moduleType":1,"operateType":"getAllTaskCfg","version":"1.0"}
Und vorhin beim Starten des Scriptes:
script.js.Dynamische_Anpassung_1142: PowerStream [PowerStream] Batteriestand unter Limit:10% (0%). Limitiere Einspeiseleistung auf: 150W
Ich hatte vermutet, des Batteriestand bei den Writeables zu finden.
Habe wie von dir vorgeschlagen, mal was am D2M verändert (USB angeschaltet) und du hast recht, der Wert ändert sich von 0 auf 1.Aber unabhängih von den writeables muss ich noch irgendwo einen Fehler haben.
Ist nur schwer zu testen, wenn die Sonne scheintgruß Kai