NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@waly_de das ist das was ich meinte: Erstens scheint das Script erst mal etwas, was 'null' ist als Ladeleistung zu setzen, bevor es die Ladung einschaltet (nicht so schlimm, aber vielleicht interessant). Dann wenn es mit dem Überschuss knapp wird, versucht er die Ladeleistung runter zu regeln, was aber ja nicht geht, da die Ecoflow immer mit ˜88W oder so lädt, auch wenn du 19 schickst (wobei ich schon ExcessChargeOffsetPower auf -100 habe, sonst würde dauernd mehr geladen als überschuss da ist). Dann wird effektiv Netzstrom verbraucht, die Ladung wird aber nicht abgebrochen, es wird aber auch nicht eingespeist. Ist das das gewünschte Verhalten?!
-
@foxthefox Hey meinst du die Helligkeit der LED-Beleuchtung vom Smartplug?
Ja die kann man über die App ändern.ist es möglich, das es hier drin ist?
/thing/property/set:0a36102018352001280138034002488201580170ddbb9d8006800113880101ba0103696f73ca0110485735325a4448345346363636353838
Und man kann den Überlastschutz wählen zwischen 1000 W und 2500W
/thing/property/set: 0a3d0a0308e8071020183520012801380340024889015003580170858cae8006800113880101ba0103696f73ca0110485735325a4448345346363636353838
kann damit was angefangen werden?
-
@foxthefox ist die Helligkeit nicht schon hier drin ?
0_userdata.0.ecoflow.app_device_property_HW52ZDH4SF66xxxx.data.plug_heartbeat_pack.brightness
Max. Power hier:
0_userdata.0.ecoflow.app_device_property_HW52ZDH4SF66xxxx.data.plug_heartbeat_pack.maxWatts
Die ersten Mitschnitte ware durch die neue Firmware der Smartplugs und vom Powerstream, dass man die Berücksichtigung der Smartplugs für den Haushaltsstrom oder Energiebedarf ein oder ausschalten kann.
KAnn ich gerade leider durch zu wenig Sonne nicht richtig testen.
-
@sirdir Jein... Wünschenswert wäre, wenn 0 als Ladeleistung gesendet dass auch 0 Leistung hieße. Aber das macht das Teil eben nicht.
Du kannst das Verhalten aber ganz gut mit den Parametern anpassen.
Hier mal eine Konfiguration, die besser zu Deiner Vorstellung passen dürfte.
Dazu solltest du zum Schalten der Delta dann "chgPause" der Delta verwenden.
Es ginge auch dem Shelly... aber ich weiß nicht ob das ständige ein und ausschalten (das ich ja in der Standardkonfig abfange) so gut für den Speicher ist.//**************************************** // Überschussladung: //**************************************** ExcessCharge: true, //Überschussladung AN/AUS (true/false) //ID zum Einstellen der Ladeleistung des Speichers in Watt: ExcessChargePowerID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.slowChgPower", //ID des aktuellen Ladestandes des Speichers in %: ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.bmsMaster.soc", ExcessChargeSwitchMin: 0, //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: 10, //Mindest-Überschussleistung zum Einschalten des Speichers ExcessChargeStartPowerDurationMin: 0, //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"...) //---------------------------------------- //****************************************
Hier sind alle Verzögerungen ausgeschaltet. Der Speicher wird ab einem Überschuss von 10 W ein, und bei 0 sofort ausgeschaltet.
Es kann aber sein, dass wegen Verzögerungen in den Messungen das ganze anfängt zu "schwingen" und der Speicher ständig ein und ausgeschaltet wird. (Wie gesagt, ich kann das hier nicht testen, dafür gibts zu wenig Sonne)
Wenn Das passiert setzte bitte wieder ExcessChargeSwitchMin auf > 0.
theoretisch geht auch sowas wie 0.5 für 30 Sekunden.Bin gespannt, ob das für Dich besser klappt.
-
@waly_de Ich hab die duration schon auf 0. Aber das Problem ist ja, dass er meint, er könne mit 10 W laden, lädt aber in wirklichkeit mit 80 Watt. Dann wird nicht abgeschaltet… oder vielleicht… sorry das ganze Setup ist einfach schon etwas komplex, je nach Mondphase verliert auch mal das Shelly die Verbindung ne Weile, vielleicht war am Ende das das Problem, muss ich mal prüfen bevor ich die weiter nerve. Aber heut hab ich auch zu wenig Sonne.
Edit: Wobei, glaub doch nicht, dass das Shelly da das Problem war. Die Leistung wurde ja auch geupdated, also war das Gerät wohl nicht offline. Naja ich beobachte es weiter. -
@aherby sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@foxthefox Hey meinst du die Helligkeit der LED-Beleuchtung vom Smartplug?
Ja die kann man über die App ändern.ist es möglich, das es hier drin ist?
/thing/property/set:0a36102018352001280138034002488201580170ddbb9d8006800113880101ba0103696f73ca0110485735325a4448345346363636353838
kann damit was angefangen werden?
könnte sein, das es das war cmdID=130 war mir noch nicht bekannt, allerdings fehlt noch ein Wert für die Helligkeit in dem Telegramm
Aber ich notier es mir mal. -
@aherby sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@foxthefox ist die Helligkeit nicht schon hier drin ?
0_userdata.0.ecoflow.app_device_property_HW52ZDH4SF66xxxx.data.plug_heartbeat_pack.brightness
Max. Power hier:
0_userdata.0.ecoflow.app_device_property_HW52ZDH4SF66xxxx.data.plug_heartbeat_pack.maxWatts
Die ersten Mitschnitte ware durch die neue Firmware der Smartplugs und vom Powerstream, dass man die Berücksichtigung der Smartplugs für den Haushaltsstrom oder Energiebedarf ein oder ausschalten kann.
KAnn ich gerade leider durch zu wenig Sonne nicht richtig testen.
die Werte sind als Status schon mit dabei.
Mir ging es ja um die Befehle. Das ist erstmal soweit klar.
Danke -
@foxthefox Schau mal ob hier die Helligkeit drin ist:
Nachricht: {"header":[{"pdata":"08a307","src":32,"dest":53,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":2, "cmdId":130,"dataLen":3,"needAck":1,"seq":1683706391,"version":19,"payloadVer":1,"from":"ios","deviceSn":"HW52ZDH4SF66xxxx"}]}
Nicht definierter cmd_func-Wert. [Wasserkocher] cmdId:130 cmdFunc:2 0a36102018352001280138034002488201580170ccb788a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
0a3d0a030880041020183520012801380340024882015003580170bfef88a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
0a3d0a0308ff071020183520012801380340024882015003580170829089a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
Max Power / Überlastschutz hier ?:
script.js.Ecoflow_Dynamische_Leistung_V1_2: Nachricht: {"header":[{"pdata":"08880e","src":32,"dest":53,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":2,"cmdId":137,"dataLen":3,"needAck":1,"seq":1683834767,"version":19,"payloadVer":1,"from":"ios","deviceSn":"HW52ZDH4SF66xxxx"}]}
0a3d0a0308d60d1020183520012801380340024889015003580170bb99a6a206800113880101ba0103696f73ca0110485735325a4448345346363636353838 [Wasserkocher] cmdId:137 cmdFunc:2
0a3d0a0308c4131020183520012801380340024889015003580170f9b8a6a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
0a2e0a0368c41310351820200128014002480150035801800103880103ca0110485735325a4448345346363636353838 script.js.1_16_1_Ecoflow_Dynamische_Leistung: Decodierte Nachricht:{"data":{"plug_heartbeat_pack":{"maxWatts":2500}}}
-
@aherby sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@foxthefox Schau mal ob hier die Helligkeit drin ist:
Ja cmdId=130 hatten wir als Helligkeit definiert.Das könnte Helligkeit cmdID=130 sein, hier mit Zahlenwert 512, könnte 50% entsprechen
0a3d0a030880041020183520012801380340024882015003580170bfef88a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
hier Zahlenwert 1023, also ggf. 100% Helligkeit
0a3d0a0308ff071020183520012801380340024882015003580170829089a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
damit sollte das auch als Kommando gehen brightness cmdId=130, dateLen=3, Helligkeit als Zahlenwert normiert auf 1024 (100%)
Max Power / Überlastschutz hier ?:
so isses, cmdId=137:
hier ist 1750W als Übergabewert drin:0a3d0a0308d60d1020183520012801380340024889015003580170bb99a6a206800113880101ba0103696f73ca0110485735325a4448345346363636353838 [Wasserkocher] cmdId:137 cmdFunc:2
und dieses Kommando mit cmdId=137 hat den Übergabewert von 2500W, das passt zusammen!
0a3d0a0308c4131020183520012801380340024889015003580170f9b8a6a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
0a2e0a0368c41310351820200128014002480150035801800103880103ca0110485735325a4448345346363636353838 script.js.1_16_1_Ecoflow_Dynamische_Leistung: Decodierte Nachricht:{"data":{"plug_heartbeat_pack":{"maxWatts":2500}}}
damit sollte das auch als Kommando gehen maxWatts, cmdId=137, dateLen=3, Watt = Zahlenwert
-
@foxthefox Genau richtig es waren erstmal 0%, 50% und 100% Helligkeit. Habe glaube nicht alle als Code eingefügt.
Und ja 2500 W sind der Max-Wert und 1750 W war so grob als ein Werte oberhalb der Mitte gedacht.
Kannst du mir in irgendeinerweise beibringen so Sachen / Dinge zu lesen?
-
@foxthefox Es gibt ja die "Timerfunktionen" Laden über AC, Laden über Solar und so.
Hier würde ich gern die Syntax verstehen und hier teilen. -
@waly_de Also ich hab’s mal so probiert. Hab den Offset auf -70 um nicht dauernd an der Grenze zu sein. Das Problem ist halt einfach, dass das Script versucht bis auf 0 Watt runter zu regeln bei der Ladeleistung was einfach nicht geht. Ich persönlich würde das wohl so lösen, dass man nen Mindestwert setzen kann (also so die 88W bei meiner Ecoflow) und sobald der Wert tiefer gesetzt werden müsste um die Bedinungen einzuhalten wird stattdessen die Ladung pausiert.
-
@waly_de hm, weiteres Problem mit der Lösung. Gerade steht *writeables.chgPauseFlag auf 1. Auf dem Gerät scheint das aber nicht anzukommen. WIFI ist OK. params.inv.inputWatts meldet manchmal 0, manchmal 60W, laut shelly wird konstant mit um die 90W geladen. Das script hat die Ladegeschwindigkeit auf 0 gesetzt. Sehe grad, das data.params.chgPauseFlag gibt 255 zurück. Da klappt wohl irgendwo noch was nicht ganz mit der übertragung manchmal?
Hab jetzt gerade chgPauseFlag kurz auf 0 gesetzt, dann hat er noch schneller geladen?! (über 255W wahrscheinlich?) Dann nochmal auf 1 gesetzt und jetzt ist Ruhe, wie es sein sollte. Irgendwo rutschen da in der Kommunikation wohl immer noch 255 rein manchmal?
PS: Ja ich seh's gerade, *.params.slowChgWatts steht auf 255 *.writeables.slowChgWatts auf 0 steht. -
@waly_de Hm, also ich hab das jetzt gerade nochmal genauer angeschaut - das Problem tritt anscheinend auf, wenn ich die D2M subscribe - dann springen pauseChgFlag und slowChgWatts zufällig auf 255 (als ich gerade getestet habe und jeweils wieder den richtigen Wert setzen lies, war's immer in einem durchgang deines Scripts der richtige Wert, danach wieder 255. . In den writables bleibt’s korrekt, aber an die Station geschickt wird anscheinend der falsche Wert.
Edit: Hat's evtl. was damit zu tun? Mir ist nicht ganz klar was das bedeutet:
{ id: 0, name: 'slowChgWatts', ValueName: 'slowChgWatts', Typ: 'D2M', MT: 3, OT: 'acChgCfg', AddParam: '{"fastChgWatts":255, "slowChgWatts":0,"chgPauseFlag":255}' }, // Objekt angelegt, schreibbar { id: 0, name: 'chgPauseFlag', ValueName: 'chgPauseFlag', Typ: 'D2M', MT: 3, OT: 'acChgCfg', AddParam: '{"fastChgWatts":255, "slowChgWatts":255,"chgPauseFlag":0}' }, // TODO: chgPauseFlag testen, ob dann die Ladung pausiert
-
@sirdir leider hab ich im Augenblick keine Zeit um das genauer zu untersuchen. Kümmere ich mich bald drum. Ich bau Dir dann auch eine Parameter ein "ExcessChargeStopPower" der festlegt ab welcher Überschussleistung abgestellt werden soll, was im Moment fest auf 0W steht.
Noch ein paar Anmerkungen:
@sirdir sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Hab den Offset auf -70 um nicht dauernd an der Grenze zu sein.
Das führt aber auch dazu das ein negativer Wert an die Delta gesendet wird.
Das ist noch nicht abgefangen. Bau ich in die nächste Version.Dass mit den 255 ist vermutlich richtig so. 255 heisst nach dem was wir bisher wissen: den vorhandenen Wert nicht ändern. Das wird nur mit dem Set gesendet, auch von der APP. Im eigentlichen Wert (Heartbeat) steht dann der echte wert.
-
@waly_de Interessantes Thema, habe das gerade gefunden, Tibber Pulse hängt am Zähler und Web-Server ist freigeschaltet. Dein Skript in meinen ioBroker eingetragen, allerdings gibt es bei mir ein Problem mit der Funktion BigInt():
Cannot find name 'BigInt'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2020' or later.(2583)
Keine Ahnung wo ich die Option für den Compiler anpassen muss - gibt es da eine Lösung oder Hilfestellung? -
@waly_de der falsche Wert steht aber IMHO im Heartbeat. Aber irgendwie auch nur gestern, am Tag davor schien es zu klappen. Hab jetzt vorerst alles wieder auf shelly an/aus gestellt, da funktioniert alles soweit. Wenn ich die Grenzen vernünftig setze geht es auch nicht andauernd an und aus. Es ist wirklich schade, dass man die Geräte nicht lokal steuern kann. Manchmal hab ich das Gefühl die Server tun ihr übriges… Dass bei 0 überschuss aus geht (hab die Stelle im Script übrigens schon gefunden) ist ja soweit OK. Was ich eher möchte ist, dass etwas 'Luft' bleibt beim Leistung setzen. (resp. eben dass das Script nicht versucht unrealistisch tiefe Leistungen zu setzen). Ich schau da auch nochmal rein... Hab mir eigentlich mal gesagt ich fummle an deinem script nicht mehr rum, aber…
-
@etgermany sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
allerdings gibt es bei mir ein Problem mit der Funktion BigInt():
Cannot find name 'BigInt'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2020' or later.(2583)
Keine Ahnung wo ich die Option für den Compiler anpassen muss - gibt es da eine Lösung oder Hilfestellung?Ich nehme an, du bekommst diese Meldung nur im Editor und nicht beim Ausführen des Scripts, richtig?
Das hatte ich auch, es geht scheinbar um die javascript Versionen. Man kann das abstellen indem man "es2020" in den in den Instanz-Einstellungen des Javascriptadapters unter "Die Syntaxhilfe für diese npm-Module aktivieren:" einträgt.
Ich habe dort 3 Einträge: JSON,string und es2020. -
@waly_de Ich glaube man muss auch bei der Ladeleistung noch nen Offset vorsehen. gerade der inv.inputWatts zeigt vielleicht die DC Leistung an. Der Wert ist tiefer als was man als SlowChgWatts setzt, laut meinem Shelly ist die bezogene Leistung aber höher. (in meinem Fall ca. 20W differenz)
-
@foxthefox, @Waly_de
So da meine Delta 2 Max nun mal etwas geladen ist und auch heute ein weiteres Update durch Ecoflow bekommen hat,
dachte ich log mal was über die Lap-Funktionen.Laden über Solar, einmalig, heute 17.12.23 ab 10:00 Uhr:
script.js.Ecoflow_Dynamische_Leistung_V1_2: Unbekannter Delta2Max Set Befehl: {"params":{"min":20,"taskIndex":0,"taskPrior":0,"sec":6,"timeMode":3,"timeScale":[0,0,0,0,0,0,0,240,255,255,255,255,255,255,255,255,255,255],"day":17,"type":1,"timeParam":1036177,"year":2023,"week":1,"isEnable":1,"month":12,"hour":9,"isCfg":1},"from":"iOS","lang":"de-de","id":"232761002","moduleSn":"R351ZEB4HF4Exxxx","moduleType":1,"operateType":"taskCfg","version":"1.0"}
ein verändern jeweils um eine komplette Stunde (10, 11, 12, 13, 14, 15, 16:00 Uhr) ewirkt:
"timeScale":[0,0,0,0,0,0,0,240,255,255,255,255,255,255,255,255,255,255],"day":17,"type":1, "timeScale":[0,0,0,0,0,0,0, 0,252,255,255,255,255,255,255,255,255,255],"day":17,"type":1, "timeScale":[0,0,0,0,0,0,0, 0,0 ,255,255,255,255,255,255,255,255,255],"day":17,"type":1, "timeScale":[0,0,0,0,0,0,0, 0,0 ,192,255,255,255,255,255,255,255,255],"day":17,"type":1, "timeScale":[0,0,0,0,0,0,0, 0,0 ,0 ,240,255,255,255,255,255,255,255],"day":17,"type":1, "timeScale":[0,0,0,0,0,0,0, 0,0 ,0 , 0,252,255,255,255,255,255,255],"day":17,"type":1, "timeScale":[0,0,0,0,0,0,0, 0,0 ,0 ,0 , 0,255,255,255,255,255,255],"day":17,"type":1,
täglich 10:00 Uhr bis 15:00 Uhr
script.js.Ecoflow_Dynamische_Leistung_V1_2: Unbekannter Delta2Max Set Befehl: {"params":{"min":0,"taskIndex":0,"taskPrior":0,"sec":0,"timeMode":0,"timeScale":[0,0,0,0,0,0,0,240,255,255,255,3,0,0,0,0,0,0],"day":17,"type":1,"timeParam":1036177,"year":2023,"week":1,"isEnable":1,"month":12,"hour":0,"isCfg":1},"from":"iOS","lang":"de-de","id":"617597303","moduleSn":"R351ZEB4HF4Exxxx","moduleType":1,"operateType":"taskCfg","version":"1.0"}
täglich von 15:00 Uhr bis 20:00 Uhr
script.js.Ecoflow_Dynamische_Leistung_V1_2: JSON-Nachricht empfangen:/app/1669741428735926273/R351ZEB4HF4Exxxx/thing/property/set:{"params":{"min":0,"taskIndex":0,"taskPrior":0,"sec":0,"timeMode":0,"timeScale":[0,0,0,0,0,0,0,0,0,0,0,252,255,255,255,0,0,0],"day":17,"type":1,"timeParam":1036177,"year":2023,"week":1,"isEnable":1,"month":12,"hour":0,"isCfg":1},"from":"iOS","lang":"de-de","id":"873716234","moduleSn":"R351ZEB4HF4Exxxx","moduleType":1,"operateType":"taskCfg","version":"1.0"}
Könnt ihr hiermit was anfangen?