CFET when using Max SOC value

35 views
Skip to first unread message

Jonathan Vardy

unread,
Feb 9, 2026, 1:42:39 PM (9 days ago) Feb 9
to electrodacus
I am using two Battery Protects to regulate both charge and discharge using extio3 and extio4.
I have DMPPT Max SOC set to 70% so that during a single day, it doesn't restart charging too soon. This seems to work as expected as the charge-side Battery Protect says that it's been remotely disabled.

I was expecting that this would also cause the CFET value to remain disabled for the entire time until it hits that 67% but it seems the CFET value resets sooner, at 99%, even though the extio4 output remains disabled.

What's the reason that CFET doesn't follow the extio4 output status? 

Dacian Todea (electrodacus)

unread,
Feb 9, 2026, 2:13:11 PM (8 days ago) Feb 9
to electrodacus
The CFET is controlled by the dedicated BMS IC and that has no idea about SOC. The Microcontroller controls the EXT IOx port thus that logic is done by that. 

Jonathan Vardy

unread,
Feb 10, 2026, 7:27:22 AM (8 days ago) Feb 10
to electrodacus
Thanks, that's clear. I suppose that there is now way to see status of the extio based on the MQTT messages? It only reports the CFET value by the looks of it. Is the extio status in the raw data somewhere?

Dacian Todea (electrodacus)

unread,
Feb 10, 2026, 9:59:32 AM (8 days ago) Feb 10
to electrodacus
No the EXT IO status is not in the raw data. Even if it was you do not know as what type the EXT IOx is setup as from the raw data.
But I'm modifying the SBMS0 firmware right now and I will add more functionality and some extra details in the raw data including flags for Max SOC limit. I will remove the DMPPT menu and add the Max SOC limit to each individual EXT IOx settings.

Jonathan Vardy

unread,
Feb 10, 2026, 4:06:29 PM (7 days ago) Feb 10
to electrodacus
Sounds great! 

It was reasonably straightforward to get the VenusOS MQTT Battery driver working using the MQTT data stream but ideally we have access to a few more parameters to complete the integration:
- AllowToCharge (this could be mapped from the extio status if its not equal to CFET status)
- AllowToDischarge (this could be mapped from the extio status if its not equal to DFET status)
- ConsumedAmphours
- Maybe InstalledCapacity (but can be hardcoded in the NodeRed flow)
- Maybe MaxChargeCellVoltage (but can be hardcoded in the NodeRed flow)

Dacian Todea (electrodacus)

unread,
Feb 10, 2026, 4:46:45 PM (7 days ago) Feb 10
to electrodacus
You can set your own rules.  It is allowed to charge as long as CFET flag is ON
The fact that there is a rule in the SBMS regarding limiting charging from say solar to some SOC limit has nothing to do with the rest of your system.
So for example if you have some other charge source you can set your own rule based on SOC.
In the data I like to only have measured values things that change over time and not fixed constants.
Reply all
Reply to author
Forward
0 new messages