NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@thomas-weller sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@ralf77 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Eventuell ist ein Problem, dass der Delta Pro mindestens mit 200 Watt AC laden muss (weniger geht nicht). Daher sollte die Ladung frühestens starten, wenn 250 Watt überschuss da ist -
ExcessChargeStartPower: 250,
Laden dann mit 200 Watt um sicherzsutellen (also mindestens 50 Watt Offset), dass kein Strom zum Laden eigekauft wird und ein kleiner Puffer vorhanden ist.
ExcessChargeOffsetPower: -50,
Ausschalten solte sich die AC-Ladung sobald für mehr als 1 Minute mehr als 50 Watt aus dem Netz gezogen wird.
ExcessChargeSwitchMin: 1,
ExcessChargeStopPower: 100, // davon ausgehend das die delta 150 W zieht, auch wenn 0 bei slow Charge angegeben ist, also 50 W aus dem Netz kommen.So teste ich jetzt mal.
Habe zusätzlich alle SmartPlug`s demontiert.
Die gehen mit doppeltem Wert des Verkaufs direkt per PayPal an dich @Waly_de
Sehr mutig! Dann drücke ich natürlich doppelt die Daumen das es funktioniert
-
-
@ralf77 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de ja, die Werte sind korrekt in slowchrgPower eingetragen… es kommt nur in der App nicht an.Es war immer 200 Watt in der App.
Das ist seltsam.. schreibt Dein (funktionierendes) Script nicht in das gleiche Writeable?
Sicher das nicht noch irgendwo ein 2. Script läuft das heimlich Daten an die Delta sendet?Reboote auch bitte mal deinen IOBroker... manchmal läuft unter IOBroker ein Script einfach weiter, auch wenn es als gestoppt markiert ist.
-
@ralf77 said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@thomas-weller gehe in die App von Ecoflow.
Dann klick auf Raum und gehe auf Deinen Powerstream.
Dann in die Einstellungen
Dann prüfe, ob Du Dein PS unter Stromversorgungsmodus „Stromversorgung Priorisieren eingestellt hat.Dann sollte der PS auf alle Fälle das einspeisen, was an PV -Leistung anliegt.
Das wird doch vom Skript immer wieder zurückngesetzt auf Stromspeicher priorisieren!?
-
@waly_de habs mal eingetragen. Bisher taucht das Objekt aber als Datenpunkt immer noch nicht auf. Vermute weil meine Gesamt PV Leistung derzeit bei Null ist?
-
@thomas-weller wenn das bei Dir so ist, dann wird der PS nichts einspeisen, da ja dann per Definition alles in den Speicher soll…
-
@ralf77 said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@thomas-weller wenn das bei Dir so ist, dann wird der PS nichts einspeisen, da ja dann per Definition alles in den Speicher soll…
Leuchtet ein klar.
Aber immer wenn ich es auf Speicher priorisieren stelle springt es zurück auf Stromversorgung priorisieren. Macht das nicht das Skript oder steuert das die Einspeisung des PS auch auf Stromspeicher priorisieren?
-
@thomas-weller ich habe das Script ja auch am Laufen…kann aber ohne Probleme den Prio-Modus des Powerstreams ändern… und das bleibt dann auch so.
-
@waly_de ich habe Dein Script jetzt am Laufen (ohne Schaltsteckdose) und es funktioniert soweit mit den Werten im Rahen der AC-Überschuss-Ladung auch sehr stabil.
Eventuell ist es beim Delta Pro andersrum als beim Delta Max. Ich musste die True/False Statement für ExcessChargeSwitchOn und ExcessChargeSwitchOff genau andersrum eintragen, als es in Deinem Script eingetragen war. Dann klappte es.
Ich teste jetzt mal weiter auf verschiedenen Situationen hin. Sieht aber sehr gut aus bis jetzt.
Einzig: die Änderung des Status für chgPause könnte etwas schneller zum Tragen kommen, wenn erneut Überschuss in ExcessCharg angezeigt wird (wenn das überhaupt machbar ist).
Werde jetzt über Nacht noch mal die Einspeiseregelung testen…
UPDATE 08.01: Leider ist heute am Morgen die AC-Ladung nicht gestartet obwohl ChgPause-Flag auf "0" war, ExcessPower einen Wert hatte un dgenügend Überschuss vorhanden war. ChgSlowPower war konstant auf "0" und hatte keinen Wert bekommen. Der Wert wurde aber nicht in die App (an den EF Server übertragen). Ich gehe davon aus, dass die Umsetzung mit ChgPause nicht sicher funktioniert. Daher bin ich im Script wieder zurück auf die Schaltsteckdose gegangen.
-
@waly_de Vielen Dank für Deine Unterstützung!
-
@waly_de Welche Typenbezeichnung muss ich den für die Delate Pro eingeben? DM, D2, odere D2M?
-
@lui1307
Nimm mal DM, die ist am weitesten ähnlich zur pro -
@waly_de leider ändert das nichts. Es wird irgendwie nix eingespeist. Hast du noch eine Idee?
-
@lui1307 DM
-
@accu Hast Du im Script Regulation auf "True" gesetzt?
//**************************************** // Erweiterte Einstellungen: //**************************************** SmartmeterTimeoutMin: 4, // Wenn der letzte Wert vom Smartmeter älter als "SmartmeterTimeoutMin" ist, wird das Script mit... SmartmeterFallbackPower: 150, // SmartmeterFallbackPower als aktuellem Realpowerwert weiter arbeiten, bis wieder aktuelle Daten geliefert werden. Regulation: true, // 'false' stellt das Setzen der Einspeiseleistung ab RegulationState: "Regulate", // Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unter 0_userdata.0.ecoflow angelegt) RegulationMultiPsMode: 0, // Wenn mehrere PS reguliert werden sollen. "balance" = 0 oder "serial" = 1 BasePowerOffset: 30, // Wird vom aktuellen Verbrauch abgezogen, um die Einspeiseleistung zu berechnen Zusatzpower_Offset: 10, // Zusatzpower startet ab einer Batterieladeleistung von MaxPower - Zusatzpower_Offset MinValueMin: 1, // Der Zeitraum in Minuten, aus dem der niedrigste Gesamtverbrauchswert geholt werden soll. 0 für Echtzeitwert MinValueAg: 0, // Art der Ermittlung des kleinsten Wertes: 0 = Minimalwert, 1 = Durchschnittswert ReconnectMin: 30, // Zeit in Minuten, nach der die Anwendung neu gestartet wird, wenn keine neuen Daten eintreffen statesPrefix: "0_userdata.0.ecoflow", // Hier werden die ecoFlow States angelegt latitude: latitude, // Breitengrad des Standortes (wird automatisch eingesetzt) longitude: longitude, // Längengrad des Standortes (wird automatisch eingesetzt)
-
@ralf77 ja - so sieht meine Config aus:
****************************************/ var ConfigData = { email: "meine mail.com", // Die App-Zugangsdaten von ecoFlow passwort: "xxxx", SmartmeterID: "sonoff.0.IRHub.SML_Watt_Summe", // State, der den aktuellen Gesamtverbrauch in Watt anzeigt seriennummern: [ //############# Diesen Abschnitt für jedes einzelne Gerät anlegen ################ { seriennummer: "HWxxxxxx", // Die Seriennummer des Gerätes name: "PowerStream", // beliebiger Name 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: PowerStream:"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: 30, // Wattwert des Bedarfs, bei dem zurück in den Strom-Priomodus geschaltet wird. 0 für kein Rückschalten. lowBatLimitPozOn: 5, lowBatLimitPozOff: 15, // Bei Unterschreiten der Batterieladung von "lowBatLimitPozOn" % ist die maximale Einspeiseleistung auf lowBatLimit: 100, // "lowBatLimit" limitiert, bis der Ladezustand wieder bei "lowBatLimitPozOff" ist }, //####################################################################### { seriennummer: "DCxxxxx", name: "DELTA Pro", typ: "DM", subscribe: true, // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt }, //####################################################################### { seriennummer: "HWxxxxx", name: "Kaffeemaschine", typ: "SM", subscribe: true, // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt }, //####################################################################### ], 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: "EF PV Ladeleistung", // Beliebiger Name id: "alias.0.EFINWATT", // Der Objektpfad zu dem Leistungswert in Watt (W) factor: 1, // Divisionsfaktor für den Leistungswert. (10 für die Delta) }, //####################################################################### ], //**************************************** // Erweiterte Einstellungen: //**************************************** SmartmeterTimeoutMin: 4, // Wenn der letzte Wert vom Smartmeter älter als "SmartmeterTimeoutMin" ist, wird das Script mit... SmartmeterFallbackPower: 150, // SmartmeterFallbackPower als aktuellem Realpowerwert weiter arbeiten, bis wieder aktuelle Daten geliefert werden. Regulation: true, // 'false' stellt das Setzen der Einspeiseleistung ab RegulationState: "Regulate", // Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unter 0_userdata.0.ecoflow angelegt) RegulationMultiPsMode: 0, // Wenn mehrere PS reguliert werden sollen. "balance" = 0 oder "serial" = 1 BasePowerOffset: 30, // Wird vom aktuellen Verbrauch abgezogen, um die Einspeiseleistung zu berechnen Zusatzpower_Offset: 10, // Zusatzpower startet ab einer Batterieladeleistung von MaxPower - Zusatzpower_Offset MinValueMin: 2, // Der Zeitraum in Minuten, aus dem der niedrigste Gesamtverbrauchswert geholt werden soll. 0 für Echtzeitwert MinValueAg: 0, // Art der Ermittlung des kleinsten Wertes: 0 = Minimalwert, 1 = Durchschnittswert ReconnectMin: 30, // Zeit in Minuten, nach der die Anwendung neu gestartet wird, wenn keine neuen Daten eintreffen statesPrefix: "0_userdata.0.ecoflow", // Hier werden die ecoFlow States angelegt latitude: latitude, // Breitengrad des Standortes (wird automatisch eingesetzt) longitude: longitude, // Längengrad des Standortes (wird automatisch eingesetzt) //**************************************** // Überschussladung: //**************************************** ExcessCharge: true, //Überschussladung AN/AUS (true/false) //ID zum Einstellen der Ladeleistung des Speichers in Watt: ExcessChargePowerID: "0_userdata.0.ecoflow.app_15xxxxx_DCxxxx_thing_property_set.writeables.slowChgPower", //ID des aktuellen Ladestandes des Speichers in %: ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_DCxxxxdata.params.bmsMaster.soc", ExcessChargeSwitchMin: 5, //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. ExcessChargeMaxPower: 2000, //Maximale Ladeleistung des Speichers in Watt ExcessChargeOffsetPower: 0, //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. ExcessChargeStartPower: 50, //Mindest-Überschussleistung zum Einschalten des Speichers ExcessChargeStopPower: 0, //Überschussleistung bei der der Speicher abgeschaltet werden soll. ExcessChargeStartPowerDurationMin: 1, //Mindestdauer in Minuten, die ExcessChargeStartPower nicht unterschritten werden darf, bevor der Speicher eingeschaltet wird. //---------------------------------------- // Beispiel für Delta-Nutzung ohne Schlaltersteckdose: // Wird an einer Delta auch der PV-Eingang genutzt, bitte die PV-Leistung unter AdditionalPower anlegen. Die passende ID ist: // 0_userdata.0.ecoflow.app_device_property_xxx.data.params.mppt.inWatts // Bei der Delta: "subscribe: true" konfigurieren //---------------------------------------- //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt: //ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.inv.inputWatts", //ID des Schalters, der den Speicher aktiviert: //ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.chgPause", //ExcessChargeSwitchOn: 0, //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...) //ExcessChargeSwitchOff: 1, //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...) //---------------------------------------- // Beispiel für Nutzung einer Schlaltersteckdose: //---------------------------------------- //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt: ExcessActualPowerID: "sonoff.0.NOUS-DVES_F0A844.ENERGY_Power", //ID des Schalters, der den Speicher aktiviert: ExcessChargeSwitchID: "sonoff.0.NOUS-DVES_F0A844.POWER", ExcessChargeSwitchOn: true, //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...) ExcessChargeSwitchOff: false, //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...) //---------------------------------------- //**************************************** Debug: false, mlog: false, PlotCmdID: 99999, }
-
@accu sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de leider ändert das nichts. Es wird irgendwie nix eingespeist. Hast du noch eine Idee?
In dem Bild ist zu sehen, dass das Objekt Regulate auf false steht. ändere das bitte manuell auf True . Also das Objekt, nicht in der Skript, Config
-
@waly_de ok - aber ist es nicht so gedacht, dass das Skript das automatisch ändert? Weil im Script ist es ja auf True gesetzt:
// Parameter an hier nur für PowerStream. regulation: true,
Habe es geändert -- leider nix
-
@accu sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de ok - aber ist es nicht so gedacht, dass das Skript das automatisch ändert? Weil im Script ist es ja auf True gesetzt:
// Parameter an hier nur für PowerStream. regulation: true,
Nein. Das ist der initiale wert. Wenn ein Regulation-State definiert ist, überschreibt dieser den Parameter. Das ist dazu gedacht, um von außen das Skript deaktivieren zu können, zum Beispiel um mit Billigem Strom von Tibber die Akkus zu laden.
-
@accu hast du den history Adapter installiert?