Manual override drops back to ECO once solar power returns

I’ve noticed an odd problem. When I clicked “Enable charge” to manually start charging regardless of solar status, it charges normally at full rate, until solar reaches 1600 when it would normally start. And then the charge rate drops to follow the solar, then when the solar drops too low it reverts to full rate charging.

I’m using the new V2 GUI, with slightly older firmware on the OpenEVSE: 8.2.0.EU
Is this a bug? Seems like a weird feature. Or do I need to flash the EVSE hardware (not the wifi part) so it plays well with new GUI firmware.

Purple in this graph is EVSE power use. Orange is solar power, and Red is total power consumption.

I’m pretty sure I turned on manual like this:

But there’s a chance I did this:

Which maybe explains the odd behaviour?
What is the operational difference between the two?

1 Like

If you’ve switched to Eco mode while activating the charge it should charge only using the pv divert mode unless you’ve switched to Fast mode.
Fast mode means it ignores divert and charge using the grid + whatever energy is produced

May I see your divert config page?

So the first option: “Enable Charge” Lighting bolt and “Fast” Transmission Tower, should charge at maximum set rate ignoring the MQTT divert? I think that is what dropped from full charge rate to following the sun once the solar power came up.

What does the second option do? “Enable charge” Lighting bolt and Solar Panel “Eco”?
I usually set it to “Auto” Robot head and “Eco” Solar Panel, and it works as I expect, off unless there is enough solar power.

Here’s the divert settings.



Thanks!

As expected if you manually Enable the evse ( bolt icon ) it will enable it if it’s disabled.
So if you force enable with divert enabled, it should charge using divert active. If there’s no solar it will stays at 6A instead of cutting off.

Auto just let the scheduler/ divert / etc handling the state.

Don’t put your divert export data ( or any other external data source ) in your mqtt base topic.

They needs to be separated topics
So voltage, shaper, divert and vehicle data should all come from another topic than your /envoy one.

Base topic is dedicated to data published by openEvse .
As you are using subtopics it perhaps works, but could cause problems as we also use nested topics.

Hmm, the problem I’m trying to figure out was that I was trying to override the divert and charge at the full rate (before going on a road trip), and it worked as expected charging at ~4200W until the solar power reached 1600W and the power then dropped to follow solar production. Which is not what I would expect. It feels like a bug.

Hmm. Maybe I used the 2nd option (Bolt and Eco). But it seems to charge at full rate when there isn’t enough solar, then drop to follow solar.

Not sure what you mean, but I don’t think I am (snippet from the python script that does it):

    print (datetime.now().strftime("%H:%M:%S:%f"), "MQTT:", "{:.1f}".format(extra_power), "W available,", "{:.1f}".format(voltage), "Volts")
    # this publishes solar export power to MQTT for OpenEVSE
    client = mqtt.Client("P1")
    client.connect("192.168.1.17")
    client.publish("envoy/export","{:.1f}".format(extra_power))
    client.connect("192.168.1.17")
    client.publish("envoy/voltage","{:.1f}".format(voltage))

I’m sending the available export power to ‘envoy/export’, which is scraped from my Enphase system with a python script, and kind of pre-digested to subtract power consumption (minus EVSE power) from the total solar power. It generally works very well! The script also controls a Shelly 1PM on the hot water system.

Should I just make the topic “export” rather than “envoy/export”? And “voltage” rather than “envoy/voltage”
I don’t think this is causing the weird full rate dropping back to solar only when I try and override the divert.

default divert settings are 0.4 for attack_smoothing_factor and 0.05 for decay_smotthing_factor, can you put them back and retest ?

Also yes your root mqtt topic for openevse is envoy, so put your imported data out of this root topic as they are not published by openevse.

Ok, I’ve put the attack and decay smoothing factors to the default. And changed the MQTT settings.

I’ve found if I force charging by Enable Charge :zap: and Eco it charges at the maximum (set at 10A in settings in this test to save money!) then when solar is high enough to start it drops the charge rate to 6A and it starts following solar production. In previous testing it jumps back up to full rate when solar is too low.

This seems like a weird behaviour. I wonder whether this option instead should set minimum charge rate when solar is too low, and instead allow solar to take it higher. But then you’d need another slider at the bottom end to set the minimum.

Oups I’ve told you wrong things. If divert is enabled in eco mode, you should stay in Auto ( robot ) , to let it stop the charge when needed.
Forcing the charge will enable the charge whatever divert is asking because manual override has bigger priority than divert mode.

If you don’t set a charge current in the slider, then it will either charge full rate, or divert rate if divert has sent a claim.

Perhaps enabling eco mode should disable the manual buttons to prevent that behavior?

Or like you said, setting to manual Active in Eco mode could post a charge_current claim at minimum ( 6A), with lower priority than divert.

That’s something I can handle on UI side.

1 Like

The simple option would be remove “Enable Charge :zap:” when Eco is selected and just offer Auto. Since it’s behavior at present seems weird (to me at least).
Or allow you to set a minimum on the slider, as well as a maximum, which I mocked up below.

At times I kind of fudge this effect in my script to send MQTT messages, to lie to OpenEVSE that 1600 is available when it’s actually 1000-1600, and it holds the 6A charge rate during minor dips in solar. So I wouldn’t bother coding it just for me! Though I think the ability would be great.

image

looks a bit confusing on UX perspective.
But divert with correct parameters should hold the charge for minor dips without tricking the power input. That’s how it is supposed to work.

With the inputFilter merge soon, it should be easier to configure + there’s now different presettings on the UI

What about putting this in the config divert / auto production tab ?

max amps imported when charge is enabled manually: 6<…>32

this would set a “charge_current” claim to this value from divert service when Eco mode is active. And can still be overrided by the main slider too if needed.

Yeah I agree it’s a bit confusing (UX seems hard!).

I feel like the basic options are:
ON / SOLAR / OFF
Then the sliders could be:
Min: 0A - 6A - 32A*
Max: 6A - 32A*

**top limit as it is from settings → EVSE - > max current.
And if it’s “ON” just make it one slider that adjusts the max value, since it’s fixed rate charging.
image

I think the minimum being adjustable here is nice, rather buried in settings page where it’s hard to link to the effect, and it is something you might want to change depending on the minimum charge you need. But I like how this GUI lets you set a limit in settings and adjust down from there on this screen.

Also the divert doesn’t hold if it’s been on for at least 10 minutes and solar dips (in the default setting from what I observe i think). Again I don’t mind, I can fudge my MQTT to hold it at 6A until it’s below a threshold.

It’s really minimum amps when charge is enabled manually in Eco. If it’s on Eco then I’d like to go up to the usual max setting according to solar the way it is. I’ll try and record a fudged 6-15A charge to illustrate what I imagine, just need to drive a bit first…