The emporia EVSE has an open-source way to control it, still through the cloud, but can be done with local control. Need to have something to decide the desired charging current, and use the PyEmVue python library to send the command to the cloud, which then sets the EVSE current and on/off state.
https://github.com/magico13/PyEmVue
PyEmVue does integrate with HomeAssistant, and there is some excess solar automation control there too. But, I use IOTstack w/ Node-red,Grafana,InfluxDB for controlling my electrical system.
For my system that operates mostly off-grid, the way it's set up, the Emporia excess solar feature works kind of hit or miss. My EVSE is in a garage panel, and there's a basement main loads panel. Both panels have a Vue monitor in them, have AC coupled solar backfeeding them, and both are behind a pair of SMA Sunny Islands with the main FLA batteries. There's some more DC coupled solar to a lithium bank, which also dumps AC coupled power back into the Sunny Islands. The Emporia excess solar feature works by nesting the basement panel under the garage, and nesting the EVSE under the garage Vue. So emporia sees the garage panel mains (plus the basement panel mains) as the connection to the 'grid'. If the SunnyIsland 'grid' is supplying power, then emporia excess solar will turn down the EVSE. Once the AC coupled solar in garage and basement panels is excess, flowing into the SunnyIsland 'grid', then it will turn on excess solar and turn on the EVSE.
Trouble is, two things:
1) I have other opportunity loads that get turned on, and some of those are behind the basement panel (water heating), or on the SunnyIsland side (more solar and other lithium battery charging and discharging). Even if there is a net excess, Emporia sees power flowing into the garage and basement panels and turns down the EVSE.
2) The SMA SunnyIslands control the real system excess solar by raising the AC frequency, if the FLA is full and there's still some extra flowing in. This can happy pretty quickly, and Emporia doesn't know anything about it. The emporia controls see decreased solar coming into the garage and basement panels, and they turn down the EVSE load, which is the exact opposite they should do at that point.
What works really well is to have the main system control raspberry pi do the control of the EVSE, in coordination with the other opportunity loads. The raspberry pi gets data from the SMA main inverters for FLA battery current, tries to keep that generally near zero or charging a little once the inverters raise the AC frequency at all. The EVSE takes priority, if the car is plugged in then I would like that to charge first generally. The car stops charging when it reaches the full level that's set, 80,90,100%.
Plot 1 red line is EVSE charge current command, it generally goes with the plot 2 blue line solar generation. (the plot 2 green and yellow solar array power only updates every 15 min, but would have the same shape). From around 11:30-12:30, a heatpump was running using some extra power, so the EVSE is usually reduced to the 6a minimum. The car got full around 12:30 reducing charging and stopping charging completely at 12:50. So the EVSE command goes higher, and other loads start being turned on, when there's extra solar.