I’ve recently bought a Delta Max from EcoFlow and I really like the product.
I’ve asked the support if I can get access to their API, they asked for my serial number and I got this URL in return (with the AppKey in it): https://iot1.ecoflow.com/api/v1/devices/queryDeviceData?sn=MySerialNumber&appkey=MyAppKey
When I type the URL into a browser, I get something like this: {"code":0,"message":"success","data":{"sn":"MySerialNumber","data":{"remainTime":407,"socSum":80}}}
Now, I’m just trying to get “remainTime” and “socSum” as sensors into HA.
But I got “unavailable” in return for the 2 template sensors and the result of the API call in ecoflow_delta_max is: {"code":0,"message":"success","data":{"sn":"MySerialNumber","data":{"remainTime":407,"socSum":80}
My main goal would be to connect the battery to a smartplug and charge it only when my rooftop PVs produces energy or when it’s below 20%.
Could anyone help me with this?
I hope it can help other in the end because this is really a great product for a portable battery.
Not that I can help, but good products (I use them for UPS on among other things my HA installation, although there is a real UPS downstream as the switch a bit too slow at a blackout), and an HA integration would be much appreciated.
- platform: rest
name: ecoflow_delta_max
resource: !secret ecoflow_url
scan_interval: 5
timeout: 30
authentication: digest
headers:
User-Agent: Home Assistant
Content-Type: application/json
Accept: application/json
json_attributes_path: '$.data.data'
json_attributes:
- remainTime # Time remaining until batteryis fully charged or too low [Min]
- socSum # State of charge of the main battery + additional ones [%]
- platform: template
sensors:
ecoflow_delta_max_soc:
friendly_name: "EcoFlow Delta Max - State of charge"
unit_of_measurement: "%"
device_class: battery
value_template: >
{% if states.sensor.ecoflow_delta_max.attributes["socSum"] is defined %}
{{ states.sensor.ecoflow_delta_max.attributes["socSum"] }}
{% else %}
0
{% endif %}
ecoflow_delta_max_time:
friendly_name: "EcoFlow Delta Max - Remain time"
unit_of_measurement: "min"
icon_template: mdi:update
value_template: >
{% if states.sensor.ecoflow_delta_max.attributes["remainTime"] is defined %}
{{ states.sensor.ecoflow_delta_max.attributes["remainTime"] }}
{% else %}
0
{% endif %}
I’ve asked EcoFlow and SoC and remain time are the only 2 things available at the moment.
So I was planning on getting smartplugs both on the wall and between the battery and the equipment of my rack, but I don’t have usable readings for now (somehow, my Meross smartplugs don’t measure the same power…).
If I have that, I can get how much power it takes when it charges/discharges, and then getting utility meters out of it, to eventually getting it integrated as a battery into the Energy Dashboard
Yeah sure.
Remember that there are plenty guides (videos on Youtube, etc.) to help you start with Home Assistant.
To add custom code like this one, you need a way to edit .yaml files on the HA host.
The simplest way to do that (if you have the hypervisor) is to install the File editor: Configuration > Add-ons, Backups & Supervisor > Add-on store > File editor > Install
Onced installed, click on “Start on boot” and “Show in sidebar”. You might have to restart HA and refresh the cache of your browser.
Next, click on it, click on the folder icon on the top left and open configuration.yaml
The only thing you have to do next is to copy/paste the code I’ve written.
I use “!secret” for the resource filter so all sensitive data is stored in another file (easier to share) but you don’t need that. You can put the URL directly.
Thank you for the info, much appreciated. I am responding to let anyone else that, like me has the standard “River” model that the “data” returned for it is empty; there is no state of charge or anything else really.
I have contacted Ecoflow to ask them about it and am awaiting a response.
Update: Got a response form Ecoflow, and they enabled the remainTime and socSum info for the API, so now they are visible on the web page.
I tried pasting your code into the configuration.yaml file of HA, both under the “default_config:” and under the “discovery:”, but can’t find it as an integration in HA. Any help would be appreciated (sorry, for some reason I can’t message you directly)
Still, I’ve changed my iPhone recently and didn’t came back to the app yet.
When I did, the app asked me to check devices on my local network. So there’s maybe a way.
When you add sensors by the rest platform, you can’t see any integration afterwards.
It just creates news sensors in Configuration > Devices & Services > Entities.
You can then add them on a lovelace card just like any other sensor.
In order to see an integration in HACS (and then maybe one day an official integration), someone need to code it, put it in Github, let it validate and then maintain it.
I’m not able to do all of that and I don’t think it’s worth it just for 2 sensors in read mode (you can’t interact with the product from HA or the API as of now).
Hi @BeyondPixels
Perhaps I didn’t state the issue correctly. I’ll rephrase:
When I copy and paste the code you provided, in any section of the configuration.yaml file, it either comes back with errors, or HA crashes to Safe Mode.
What would be immensely helpful is a copy of your configuration.yaml, so I can see what preceeds your code; from my limited experience is appears that when HA reads the configuration.yaml, it gets stuck in some short of error that has to do with not understanding why is the code either at that location, or doesn’t have a header like “sensors:”
In any case, I didn’t ask you to create an integration just for me mate…
You have to contact their support.
They’ll ask you to give your serial and they’ll give you the URL (with the AppKey in it) in return (I’ll edit my fist post to clarify).
If you could ask for more features in their API like AC/DC in/out current, it could be great.
Maybe if enough of us is asking for it, they’ll do it :-).
Thanks for all the good work on this so far everyone!
I have an Ecoflow River that I have in a sauna I built that is off-grid in our woods to run low-voltage lights. This weekend I ran wifi out there so the battery is now recognizable on the network. I would like to control the DC output power state so I can turn the lights on before we walk out there, but so far it doesn’t look like they give us switching access yet in the API.
I will start using your code as a base to start and see how far I can get. I will contact their support and see if any direct control from HA could be added.
I’m having the same issue. I have a River Pro and a River Mini Wireless. I received both URLs with the SN and AppKey, but I get an empty data set in the JSON returned, same as you.
I’ve been chatting back and forth with the support team… while they are willing, they are not very helpful, you just gotta keep chatting with them i think…
Sorry for the inconvenience.
We have just confirmed with the engineering team that our server is during the upgrading process and the API connection is not available now. We will fix it within 48 hours. Could you please wait a little bit?