foxthefox / ioBroker.ecoflow-mqtt

EcoFlow, power stream, power station, delta, delta2, river, river2, wave2, glacier, delta pro ultra, generator, smart home panel, homeassistant gateway, powerkit, powerhub
MIT License
44 stars 2 forks source link

PowerOcean support #82

Open TheMonkey81 opened 4 months ago

TheMonkey81 commented 4 months ago

Is it possible to support EcoFlow PowerOcean?

foxthefox commented 4 months ago

Yes it is possible. To integrate it some investigation is needed. You would need to capture incomming telegrams from the communication with the mqtt server. Hence I do not now this device it might be useful to follow this gist

https://gist.github.com/foxthefox/11ac35433c228085a8f5e25d5651632a

Otherwise it would also be a try when configuring a powerstation or a powerstream with the identification of the the powerocean. Then the adapter needs to be in debug mode and the options for logging:

TheMonkey81 commented 2 months ago

Sorry for the late answer. I didn't know how I can do it. But now there is an API for PowerOcean: https://developer-eu.ecoflow.com/us/document/powerocean

foxthefox commented 2 months ago

The adapter uses in the current stage the same API as the App. Good to see that the developer API is now also supporting also Power Ocean, but the data there is very limited. I got data from another user, which I currently use for implementation.

foxthefox commented 1 month ago

The first datapoints are implemented, you can install 0.0.34 from git or npm. Please check and report. The other telegrams I will try to map to the next set of datapoints.

TheMonkey81 commented 1 month ago

Thanks for the implementation, I observed the values a couple of days. It works pretty well.

Sometimes I got realy high values in the log: bpPwr: ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpPwr" has value "2.249124006852535e+37" greater than max "7000"

bpAmp: ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpAmp" has value "36971522686665620000" greater than max "60" ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpAmp" has value "8608103424" greater than max "60"

bpVol: ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpVol" has value "2.543368362450747e+30" greater than max "60" ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpVol" has value "2013274752" greater than max "60"

bpBusVol: ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpBusVol" has value "864695870099030000" greater than max "900"

bpSoc:: ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpSoc" has value "10670" greater than max "100"

bpSoh: ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpSoh" has value "10714" greater than max "100"

And there are values that are a little bit higher then max: bpFullCap: ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpFullCap" has value "102496" greater than max "100000"

bpRealSoh: ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpRealSoh" has value "102.49687957763672" greater than max "100"

bpRemainWatth: ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpRemainWatth" has value "5649.13818359375" greater than max "5000"

bpMinCellVol: ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpMinCellVol" has value "11.964" greater than max "5"

bpMaxCellVol: ecoflow-mqtt.0 (95941) State value to set for "ecoflow-mqtt.0.xxxxxxxxxx.statusReportBattery1.bpMaxCellVol" has value "11.97" greater than max "5"

foxthefox commented 1 month ago

thanks for the feedback, if you like the adapter, you can star the repo :-)

for those values completely nonsense I have no idea, what happens there. as you indicate it is may be rarely or in special occasions, it should be observed.

the slightly higher values: bpFullCap,bpRealSoh,bpRemainWatth,bpMinCellVol,bpMaxCellVol will be solved in the next version 0.0.38 you will need to:

I will inform when you can try the next version

foxthefox commented 1 month ago

in the meantime it is 0.0.40 which you can install from npm or git new datapoints for power ocean are done. More will come, but that needs time to find the next ones.

Please check and report if it works

TheMonkey81 commented 1 month ago

The new datapoints are working. I compared some values with the app, they are correct. But I noticed the values of "JTS1_ENERGY_STREAM_REPORT" are only updating when the ecoflow app or the ecoflow website is open (and a couple of minutes after it is closed).

"statusReportBattery1" and "JTS1_EMS_HEARTBEAT" are updating after the app / website is closed.

foxthefox commented 1 month ago

Thanks for the feedback. Battery and EMS as heartbeat is obviously the cyclic update. The report might need a special way of triggering, whereby the APP somehow does this and gets it cyclically. Similiar behaviour I have seen with the power stream, but there was also one day were the energy data was incomming (even APP closed). Ineterstingly it was after the several hour long provider issue.

I think it would be time to look to the cmds which are sent by the APP. Therefore you should install 0.0.41 first and then:

If that is working then at a specific time

Another try is with ticking additionally the msgCmd and perform some commands or settings in the APP.