Switching between Normal & PV Divert / Eco


I have a fairly recent OpenEVSE unit (v8.2.2 / v5.1.0) that I use regularly in both normal (fast) mode and PV divert (solar) modes.

Everything works fine, except for one nuisance item: when switching from normal mode to divert mode with an active charge in progress (ie: car hooked up and charging at 20 amps), the EVSE immediately stops the charge (contactor opens) and sits for a moment while it presumably figures out the GRID I/E data and then restarts the charge.

When switching the other way, from divert mode to normal mode, this does not happen; in this case, the charge rate ramps up to the charge limit without interruption.

Does anyone know if this charge interruption is an intended action by the EVSE programming? I’d think it would be preferable to keep charging and adjust to the GRID I/E data.


it needs to wait until excess power is available

Hi Dan,

There is plenty of excess power so it has nothing to do with that.

I’m pretty sure there is something in the coding of the OpenEVSE that causes the issue. What I don’t know is if it’s intentionally done like that, or an oversight…hopefully an oversight that can be adjusted in a future firmware update.

Incidentally, the code that seems to do the offending action is this (which is called when you switch to Divert/Eco mode):

 case DivertMode::Eco:
        _min_charge_end = 0;

        event["charge_rate"] = _charge_rate = 0;
        event["available_current"] = _available_current = 0;
        event["smoothed_available_current"] = _smoothed_available_current = 0;

        EvseProperties props(EvseState::Disabled);
        _evse->claim(EvseClient_OpenEVSE_Divert, EvseManager_Priority_Default, props);
      } break;

I’m not a C programmer so my interpretation of this code may be completely incorrect… but it looks like the gist of this is to set all the charge currents to 0 and then set the EVSE to ‘disabled.’ Why?


If you charge on grid, surely you charge with more power than available from solar.
So when you enable divert mode, right in that moment there is no excess power, since you even draw from the grid. So charging turns off

Sure, programming could be tweaked to lower charging speed instead of turning it off

Hi Dan,

Yes, charging in normal mode will generally draw more than my solar will put out.

In all the literature I have read about the OpenEVSE divert mode, there is a recurring concern with “wearing out the contactors” in the EVSE and the car. This is one of the reasons why the original implementation of the PV divert mode did not stop the charge when no excess PV energy was available – it lowered it to 6A and left it there.

So why not something like that when switching from normal to divert? Drop to 6A for xx seconds (perhaps use the time setting already preset on the PV DIVERT settings page) and then recalculate excess useable. At that point, if there is no excess, stop the charge.


Having a little understanding of how the divert works, I think the change you propose while sensible may be difficult to implement.
I think it’s down to the way the system works, ‘claims’ are made on the charge controller part of the system (the atmega) by the code running in the wifi module. It looks like when entering divert mode a claim is made and by default the charge controller part will ‘reset’ opening the contactor.

I suspect changing this would not be easy.