Shaoranlaos / node-red-contrib-ecoflow-http-api

MIT License
2 stars 0 forks source link

Values are not changing without running the App on my mobile #9

Open ulidietz opened 4 months ago

ulidietz commented 4 months ago

Hi Shaoranlaos,

thanks for your contribution.

I have noticed a strange behaviour of the node on my PowerOcean.

The values i get back are only changing as long as i'm also connected to ecoflow by the app on my mobile. A soon as the App is idle or off, all the values coming back from ecoflow are not changing anymore. They are locked on the last valid readings.

would be grateful if you could check...

Thanks

Uli

Shaoranlaos commented 4 months ago

Hi Uli,

not sure what the Problem could be. It is working fine for me even without the app open. But i do not have a PowerOcean, I can only test with a Powerstream, Delta Max and the Smart Plugs.

I encountered the same Problem when i used the inoffical API via MQTT (the one before the offical API was released and that was reverse engineered). That was also the reason I build this node for Node-Red to better (and more consistently than MQTT) use the data from the Ecoflow devices.

Could you check what the online value in the Device List is saying for the PowerOcean when the App is closed? Maybe the PowerOcean goes Offline in the official API (and that would be a bug on the Ecoflow side).

Sorry i can not do more, Shaoranloas

ulidietz commented 3 months ago

Hi Shaoranloas,

thanks for your answer. the online value is still 1 (online) so this seems to be the old problem you encountered also.

see here : https://github.com/tolwi/hassio-ecoflow-cloud/issues/57

in this case, i guess i need to wait for Ecoflow to fix this..

Thanks a lot

best regards

Uli

Shaoranlaos commented 3 months ago

Hey Uli, how long did you wait before checking the Online-Status? I also did some testing and it seems that the online status takes up to 15 Minutes to show a device as offline after it is no longer delivering data. It is also the case (like you encountered) that the official API is delivering the last known data for the time a device is offline (not sure why they do that but it has probably something to do with the way the HTTP-API is integrated into there own internal MQTT-Bus). Thanks for making me aware of that i will add it to the Readme and the internal help page of the node. BR Shaoranlaos

ulidietz commented 3 months ago

Hi Shaoranlaos,

i did additional tests which might help. I also have the installer app from Ecoflow, which is needed to setup the Power Ocean initially. This app also displays the actual values.

So i have recognised the following

  1. The Online flag stays on '1' the whole time. Anyway the value could be stucked like the others. So maybe the Ecoflow cloud resets them to offline and i cannot see it....
  2. On my company laptop i also use the Web Apps (installer and User App). The values are only updating when i'm connected to my home Wifi. In the company wifi there are no updates at all (only displaying the last values when closing the mobile app.
  3. When opening the mobile or the web app - the initial values that are displayed are the ones that are shown in your API. They are changing to live values after some seconds.
  4. the actual values can only be received, as long the mobile Apps (installer and User App) or the WebApps (installer and User App) are running.
  5. Tried the MQTT version "https://github.com/tolwi/hassio-ecoflow-cloud". Same problem Here additionally the MQTT access was blocked by ecoflow after deploying changes in NodeRed around 20 times. I needed to set new Access and Secret Keys on Ecoflows developer website to get it running again

So i think the problem is the access on the Serial Numer of my device in the cloud, as the installer app has complete different User/Password. Maybe the Ecoflow cloud needs some kind of 'Trigger' to start sending actual values. It definetly sends the old values when accessed by the new API (MQTT and HTTP).

Pls let me know your thoughts

best regards

Uli

Shaoranlaos commented 3 months ago

Hi Uli, Thanks for the investigation.

I can at least explain your second point (at least that is the case on my company network): Companies almost always allow only HTTP connections to the internet from there networks (even if there is a dedicated Guest-Network). The apps from Ecoflow are using MQTT for there live updating, so that is blocked and only the initial values are shown (checked that with our Firewall guy).

Regarding your 5th point: I also encountered that and hadn't now what the reason was. That was another reason why i switched to the HTTP-API in the hope that doesn't happen on this way also (not yet running long enough to see if that is the case).

That trigger idea is a possibility but i haven't seen any indicator in the API-Doc for the PowerOcean of this. It is a bit weird because the PowerOcean doesn't seem to be any different in regards to the endpoints it provides (beside that it has an additional historical endpoint).

I will see if i can find anything else in regards to this. Let me also now if you find anything new.

BR Shaoranlaos

ulidietz commented 3 months ago

Hi Shaoranlaos,

i have tested your Node with my River mini where it works perfectly anytime. So it seems to be a problem only at the Power Ocean.

i'm also active here : https://github.com/evcc-io/evcc/discussions/14864

evcc is the software where i need the PowerOcean data for charging my Car.

I have contacted Ecoflow, they are reading this thread also... They have promised to check this problem. Lets see...

Thanks

Uli