ha-ef-ble icon indicating copy to clipboard operation
ha-ef-ble copied to clipboard

Can the Ecoflow STREAM Microinverter be added?

Open ChrisMarriott38 opened this issue 2 months ago • 22 comments

Just curious if the stream microinverter could be added and controlled by this integration? Any thoughts or information would be great.

We just added the alternator charger using this to HA and it's incredible.

ChrisMarriott38 avatar Oct 09 '25 08:10 ChrisMarriott38

Hi,

it should be possible, we just need some data. See this wiki page for a guide on how to get it.

GnoX avatar Oct 09 '25 09:10 GnoX

@GnoX I've got a ESP BlueTooth setup next to the STREAM now.

I managed to add it and detect it. Here are the diagnostics. I removed all the other custom integration listing and trimmed the file back to the BLE part and left the Home Assistant part at the top.

config_entry-ef_ble-01K7RHYMKCH773VN8B2FTR99SG.json

I don't know if it would help but i also have a diagnostics file from the other main Ecoflow Cloud integration.

I posted it up on the other repository in case you wanted a glance. https://github.com/tolwi/hassio-ecoflow-cloud/issues/594

ChrisMarriott38 avatar Oct 17 '25 07:10 ChrisMarriott38

Looks good. That diagnostics info is pretty much all we need. I'll implement it as soon as I find some time, maybe this weekend, but more likely the next weekend as I'll first be looking at the support for v2 devices.

GnoX avatar Oct 17 '25 10:10 GnoX

Looks good. That diagnostics info is pretty much all we need. I'll implement it as soon as I find some time, maybe this weekend, but more likely the next weekend as I'll first be looking at the support for v2 devices.

@GnoX Oh nice. If you don't mind me asking what options does it show? Will it be able to give control for a slider? To adjust the base load? They had this option in the Ecoflow App pre 1.6 but patched it out. It would be incredible if there could be as much control as possible. I know a fair few that would love this.

Would love to hear and test and see whats possible that you can implement :) This is the dream for so many people.

This slider is ideally the most important feature. They previously had Country code limit & a slider for output. This one would be incredible.

Image

When you say V2 devices? Do you mean like the PowerStream? It's predecessor? I have that also i can get diagnostics for also if it would help. Or say the Delta2 and Delta2Max etc?

Image

It shows up as this but i cant get it to add.

ChrisMarriott38 avatar Oct 17 '25 10:10 ChrisMarriott38

If you don't mind me asking what options does it show?

I did not analyze the messages yet so I'm not exactly sure, but the rule of thumb is that everything you can control from the app can be implemented. I believe that it will use this config definition where you can get the basic idea of the options based on field names.

This slider is ideally the most important feature. They previously had Country code limit & a slider for output. This one would be incredible.

It may be possible, but as we won't be able to cross-reference it with the app, it will have to be trial and error. I'll see what we can do.

When you say V2 devices? Do you mean like the PowerStream? It's predecessor? I have that also i can get diagnostics for also if it would help. Or say the Delta2 and Delta2Max etc?

Sorry, I meant Gen 2 devices with V2 communication protocol, but basically yes, it will most likely include previous Powerstream and all Delta 2s - more details in https://github.com/rabits/ha-ef-ble/issues/80. Powerstream is visible from the dev version of the integration, but, as you probably figured, it does not pass authentication procedure - this is tracked in https://github.com/GnoX/ha-ef-ble/issues/13#issuecomment-2925956379.

Anyways, once we implement V2 protocol, I'll update the dev version to also gather data for Gen 2 devices.

GnoX avatar Oct 17 '25 14:10 GnoX

Hey, I just pushed v0.21.0-d.1 to my fork that should now discover microinverter and added few sensors. Let me know if it works and if there are any sensors I missed.

I'm not sure what controls are for microinverter though, can you list what controls are currently available in the app and their limits?

GnoX avatar Oct 26 '25 00:10 GnoX

Hey, I just pushed v0.21.0-d.1 to my fork that should now discover microinverter and added few sensors. Let me know if it works and if there are any sensors I missed.

I'm not sure what controls are for microinverter though, can you list what controls are currently available in the app and their limits?

Hey @GnoX I was on holiday last week. I tried the latest 2 version before i saw those message and the new 2 Pre ones didn't find it. But going back to the d.1 you said found the STREAM instantly..

I see all these sensors added in HA Image

So in the current app. I can see the Grid tied output where you choose the country for fixed outputs. I just noticed France allowed up to 900W. But I could have sworn this was a 800W max microinverter. But maybe other devices can go a touch higher so that option is there.

Image

The image below. Shows a screen shot from the older App "EcoFlow_6.4.1.69" I believe. That had a slider for 0-800W in 1W increments for a base load adjustment..

Image

This attached config file shows multiple references to controls i believe from the Cloud integration.

config_entry-ecoflow_cloud-01JXW4R474S00RFWBQEYADCQJ8.json

These 2 in particular will be the most useful to most people i believe. I think the first is more of a Baseload adjustment option and the second is more the country region limit.

"feedGridModePowLimit": 800, "feedGridModePowMax": 800,

I just opened up the older app in Bluestacks emulator. And changed that 800W limit down to 50W and instantly saw the cloud integration one drop from 150W real time PV down to cap at 50W. So the control is there, though unsure if you can tap in to that from the BLE? But it must somehow be applied to prevent the device going over the Watts.

ChrisMarriott38 avatar Nov 03 '25 10:11 ChrisMarriott38

@GnoX couple of observations also. After the sun went down as it's purely an inverter it looses connection.

Image Image Showed up in a few places Image

To clear that this morning once the sun came up and it started generating, I just had to right click the 3 dots under the integration and click reload.

ChrisMarriott38 avatar Nov 04 '25 09:11 ChrisMarriott38

These 2 in particular will be the most useful to most people i believe. I think the first is more of a Baseload adjustment option and the second is more the country region limit.

"feedGridModePowLimit": 800, "feedGridModePowMax": 800,

I just opened up the older app in Bluestacks emulator. And changed that 800W limit down to 50W and instantly saw the cloud integration one drop from 150W real time PV down to cap at 50W. So the control is there, though unsure if you can tap in to that from the BLE? But it must somehow be applied to prevent the device going over the Watts.

Got it, those fields are available in config messages, it will be possible. I'll look at it this weekend.

@GnoX couple of observations also. After the sun went down as it's purely an inverter it looses connection.

I see, we didn't expect any devices with this behavior so I'm going to have to implement some retry exceptions. I don't think there are connection request callbacks though so we would have to be requesting the connections which may result in slower initial response. I'll think about this.

GnoX avatar Nov 06 '25 17:11 GnoX

These 2 in particular will be the most useful to most people i believe. I think the first is more of a Baseload adjustment option and the second is more the country region limit. "feedGridModePowLimit": 800, "feedGridModePowMax": 800, I just opened up the older app in Bluestacks emulator. And changed that 800W limit down to 50W and instantly saw the cloud integration one drop from 150W real time PV down to cap at 50W. So the control is there, though unsure if you can tap in to that from the BLE? But it must somehow be applied to prevent the device going over the Watts.

Got it, those fields are available in config messages, it will be possible. I'll look at it this weekend.

@GnoX couple of observations also. After the sun went down as it's purely an inverter it looses connection.

I see, we didn't expect any devices with this behavior so I'm going to have to implement some retry exceptions. I don't think there are connection request callbacks though so we would have to be requesting the connections which may result in slower initial response. I'll think about this.

Yea, as it's a PV only device with no battery, and it looses power overnight, that makes sense for this to happen.

Those fields will be a HUGE deal for Ecoflow users world wide! If they are adjustable there will be a massive influx of people to using this!

Very much looking forward to testing this for you to see if it works!.

ChrisMarriott38 avatar Nov 10 '25 09:11 ChrisMarriott38

@GnoX I wondered if you had had any luck or thoughts on the STREAM Inverter? Is there anything else i can get for you perhaps? Information etc? thanks so much!

ChrisMarriott38 avatar Nov 19 '25 09:11 ChrisMarriott38

Hey, sorry, still juggling between requests in my very limited time reserved for this. Adding feed grid slider should be quite trivial though, I can do it quickly today.

I have a solution for the inverter power behaviour but this is going to take some time to implement. I'll let you know as soon as I have something ready.

GnoX avatar Nov 19 '25 13:11 GnoX

I just released v0.21.0-d.2 that should add Maximum output power slider.

GnoX avatar Nov 19 '25 13:11 GnoX

I just released v0.21.0-d.2 that should add Maximum output power slider.

Hey @GnoX thanks so much! and totally understand! Yea that power off part sounds a little more difficult to handle.

I've got the new version but having issues getting it to add.

It auto discovers beautifully now.

Image Image

But i fill in the details and have different errors after trying different combo's to get it to add.

Image Image

Anything you know that can push it forward?

I can see these in the logs also

Image

ChrisMarriott38 avatar Nov 19 '25 14:11 ChrisMarriott38

That error code says that you have the wrong user ID, I should probably improve error messages now that I know the meaning of error codes. Are you sure that you logged into the correct account?

You only need to fill login info when you don't have your user ID as the only thing it does is that it fills in the user ID for you. It should be empty otherwise.

GnoX avatar Nov 19 '25 15:11 GnoX

That error code says that you have the wrong user ID, I should probably improve error messages now that I know the meaning of error codes. Are you sure that you logged into the correct account?

You only need to fill login info when you don't have your user ID as the only thing it does is that it fills in the user ID for you. It should be empty otherwise.

Yea its 100% accurate. I did some tests to make sure. I've tried removing that auto populated ID, i've tried the email and pass only. just the ID. Tried as many combo's as i can think of, removed the integration, restarted HA, re-installed the integration - restarted HA and tried again.

Scratching my head now for what else i can try :D

I note that though it didnt discover as well before. I had issues getting it to add with c-1. I tried moving back and managed to get it to add with d.1 to get that data you needed. In case that helps.

Image

Unrelated but i did also notice that in the log it located the other device the PowerStream, but gave a warning it didnt recognise the device ID.

Image

I think we are out of solar now. or down to 1-3W. So the device will drop off being found now until tomorrow. If there are any other ideas i can try, i'll have another stab at it tomorrow :)

ChrisMarriott38 avatar Nov 19 '25 15:11 ChrisMarriott38

Just to explain how my pre-release versioning postfixes work - letters denote different features and are incompatible between each other, so the microinverter will only work on d versions (c is related to this request https://github.com/GnoX/ha-ef-ble/issues/26).

What is happening is a bit weird though - there should be no difference between d.1 and d.2 other than that slider. Is the user ID definitely the same as the one you're using in d.1?

Unrelated but i did also notice that in the log it located the other device the PowerStream, but gave a warning it didnt recognise the device ID.

Yeah, integration will throw warnings for all currently unsupported Ecoflow devices that have bluetooth enabled and are not connected to the app - the one you're getting is SN for Powerstream.

GnoX avatar Nov 19 '25 15:11 GnoX

Just to explain how my pre-release versioning postfixes work - letters denote different features and are incompatible between each other, so the microinverter will only work on d versions (c is related to this request GnoX#26).

What is happening is a bit weird though - there should be no difference between d.1 and d.2 other than that slider. Is the user ID definitely the same as the one you're using in d.1?

Unrelated but i did also notice that in the log it located the other device the PowerStream, but gave a warning it didnt recognise the device ID.

Yeah, integration will throw warnings for all currently unsupported Ecoflow devices that have bluetooth enabled and are not connected to the app - the one you're getting is SN for Powerstream.

Ah that helps to know :)

Yea i'm pretty certain it was the same, it auto-populated before. So i can't see why it would be different and i only have 1 account?

Is there an easy way to double check the user ID? Maybe i can look it up and double check it's populating it correctly?

ChrisMarriott38 avatar Nov 19 '25 16:11 ChrisMarriott38

If it's pre-filled than that means that it did successfully connect at least to one other device so that should not be the problem. I can't quite figure out why it would fail with that error code as there was no change to any logic between these versions. It could be some edge case bug, I'll maybe try to include some logs to confirm that what you see in the config is what is sent by the device to authenticate.

There are different methods to to obtain user id described in this wiki https://github.com/rabits/ha-ef-ble/wiki#configuration but there is no reason why it would be different from the one you get through the form in this integration as it does the same thing.

GnoX avatar Nov 19 '25 16:11 GnoX

If it's pre-filled than that means that it did successfully connect at least to one other device so that should not be the problem. I can't quite figure out why it would fail with that error code as there was no change to any logic between these versions. It could be some edge case bug, I'll maybe try to include some logs to confirm that what you see in the config is what is sent by the device to authenticate.

There are different methods to to obtain user id described in this wiki https://github.com/rabits/ha-ef-ble/wiki#configuration but there is no reason why it would be different from the one you get through the form in this integration as it does the same thing.

I wonder if the solar was too low and it was struggling to do a full connect perhaps. If that could even be a thing. I'll try a few more experiments tomorrow and see. It's brighter tomorrow so maybe get more of a chance earlier in the day.

One good thing is the suns gone now, that the device does not auto discover. So that part is 100% working.

Image

ChrisMarriott38 avatar Nov 19 '25 16:11 ChrisMarriott38

@GnoX I know it was tricky to get the device to add before/lots of tries. I've tried again today, same sorts of errors. Tried going back to that previous version and still get the errors. Just can't get the thing to connect now. Bit puzzled. I've even disabled the STREAM's Wifi to force it to only access BLE.

In the log's i'm seeing these. Each time i try i get the same few that come up. Hope these give some sort of clue!

This error originated from a custom integration.

Logger: homeassistant
Source: custom_components/ef_ble/eflib/connection.py:842
integration: EcoFlow BLE (Unofficial) (documentation, issues)
First occurred: 9:40:50 AM (3 occurrences)
Last logged: 9:45:48 AM

Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
  File "/config/custom_components/ef_ble/eflib/connection.py", line 842, in listenForDataHandler
    raise exc
custom_components.ef_ble.eflib.exceptions.AuthFailedError: Auth failed with response: Packet(0x35, 0x21, 0x35, 0x86, bytes.fromhex('06'), 0x01, 0x01, 0x03, b'\x00\x00\x00\x00', 0x00)
This error originated from a custom integration.

Logger: custom_components.ef_ble.eflib.connection - 98:3D:AE:xx:xx:xx
Source: custom_components/ef_ble/eflib/connection.py:289
integration: EcoFlow BLE (Unofficial) (documentation, issues)
First occurred: 9:40:50 AM (3 occurrences)
Last logged: 9:45:48 AM

Disconnected from device
This error originated from a custom integration.

Logger: custom_components.ef_ble.eflib.connection - 98:3D:AE:xx:xx:xx
Source: custom_components/ef_ble/eflib/connection.py:835
integration: EcoFlow BLE (Unofficial) (documentation, issues)
First occurred: 9:40:50 AM (3 occurrences)
Last logged: 9:45:48 AM

Auth failed with response: Packet(0x35, 0x21, 0x35, 0x86, bytes.fromhex('06'), 0x01, 0x01, 0x03, b'\x00\x00\x00\x00', 0x00)
Image

ChrisMarriott38 avatar Nov 20 '25 09:11 ChrisMarriott38

@GnoX I have news! I Went in to the garage, i tried to direct connect to the inverter from phone. I turned Wifi off and mobile data....

Then in the App it was asking me to reset it. I did that, rescanned the barcode. Then declined the Wifi credentials. Closed the App. Re-went in to HA added the device immediately. And the control has showed up!

Image

ChrisMarriott38 avatar Nov 20 '25 13:11 ChrisMarriott38

@ChrisMarriott38 added with success. Great work! I will need to test it and create a few automations with this BLE. I'm currently using the API dev integration and have PowerStream and Delta2max where I automate and send changes to it over the API. So I've got a StreamACPro added last week. and seems that the API is still locked to do changes on the sliders. So I now have a BLE integration and a API integration in HA: Question: Can it be possible to have the Delta2Max and PowerStream also over the BLE ? Just to have all on the same workflow. ? I will give feedback meanwhile with this StreamACPro integration.

Image

fideias avatar Dec 11 '25 13:12 fideias

Can it be possible to have the Delta2Max and PowerStream also over the BLE ? Just to have all on the same workflow. ?

Not yet, but eventually will. We added support for gen 2 devices with the first device being Delta 2 just yesterday, more devices to come later. I'm currently the only contributor focusing on adding support for new devices so the timeline is very dependent on my free time which is quite limited.

I have some good news though, It looks like that I won't be so busy this month so I believe that I'll be able to add support for a lot more devices by the end of this year so stay tuned for any updates.

GnoX avatar Dec 11 '25 14:12 GnoX

added with success. Great work!

I have not coded or done anything for this just submitted a diagnostic output i think and been testing it with a Stream microinverter. @GnoX is updating and expanding this superb integration!! :)

My friends currently got PowerStreams, Delta2Max and a Delta2. Alternator and the Stream. The Remote API isnt too bad but it would be nicer to get more local control. The Stream and Alternator in Local mode are superb.

The only issues I can see are you still need to create a user account for the first time to add the device i think?

Also we noticed an issue that when the stream was added. controlling it on the BLE was great but if you open the EcoFlow app it instantly pinned the STREAM back up to the country max in this case 800W. After the device was added we just shut off Wifi to the device so it can't impact this now also.

The PowerStream's locally controlled would be superb. That really will be a big game changer. Also the BLE allows up to 1s updates. Where as over the API by the time you get a house read, then update it, it can be a good 10s turn around.

ChrisMarriott38 avatar Dec 11 '25 14:12 ChrisMarriott38

@ChrisMarriott38 All good looks Good and working stable over here. Still Missing one slider. at least! Updating the Grid Charging power Limit. Can you help or guide adding or enabling it? This is inside of the Scheduled Charging. Screenshot.

Image

fideias avatar Dec 12 '25 09:12 fideias

I just pushed v0.21.0-d.3 that should add this slider named as Grid Input Power Limit but I'm not sure if the maximum limit is correct so be careful with that. The device will probably not allow you to set it higher though but you never know.

GnoX avatar Dec 12 '25 09:12 GnoX

I just pushed v0.21.0-d.3 that should add this slider named as Grid Input Power Limit but I'm not sure if the maximum limit is correct so be careful with that. The device will probably not allow you to set it higher though but you never know.

Oooo nice one! I'll get it tested! Thankyou so much for all your hard work on this!

I was on v0.21.0-d.2 updating to d3 now

ChrisMarriott38 avatar Dec 12 '25 09:12 ChrisMarriott38

@GnoX not 100% sure this sensor is valid for the Stream Microinverter or not. It says unknown when i open it.

Image Image

Last image on this post. I think for the Stream Microinverter, the options are this base load one, and the Country region limit. Maximum output power limit option. https://github.com/rabits/ha-ef-ble/issues/84#issuecomment-3479866545

ChrisMarriott38 avatar Dec 12 '25 10:12 ChrisMarriott38

@GnoX not 100% sure this sensor is valid for the Stream Microinverter or not. It says unknown when i open it.

Yeah, it seems that its probably only for other Stream devices.

I'm only guessing with most of the fields here - you can help with identification if you enable option to log deserialized messages and then change values in the app. You then save the log and look for fields that changed during that time period. It's not very convenient as you have to filter the data yourself but I don't have a better way at the moment.

GnoX avatar Dec 12 '25 11:12 GnoX