diy solar

diy solar

Excess solar for EV charging - how to automate?

I use the Emporia Vue and Charger. It works exactly as expected.

You set the EVSE to excess solar.

When the Vue detects more than 1200 watts going out to the grid, the Vue signals the EVSE to turn on and charge the car. Every 240 watts more after that is another amp more to the EVSE.

You attach two CTs on the line side of the meter and then plug in the EVSE to a 14-50 or hard wire it. It works with any EV with a J plug, I use it on my tesla model 3 with a J-Tesla adapter.
Are you able to set a minimum charge level? Ideally I'd like have my EV charge to at least 50% every night during off peak hours and then soak up excess solar up to 80% state of charge.
 
Are you able to set a minimum charge level? Ideally I'd like have my EV charge to at least 50% every night during off peak hours and then soak up excess solar up to 80% state of charge.
This is exactly how I have mine set up. Tesla only lets you put 50-100% as charge limits in the API. When charging from solar, set to 80%. When not, 50%. You can set amps between 5 and 48 (240v) in the API as well, so I use that to match production.

I also have a utility incentive program to keep charging under 3kW during 9am-5pm M-F so my code enforces that as well.

Because of the complexity, I have it in Node-RED. Teslamate publishes data from the car to MQTT so I listen to that and store it.

lxp-bridge takes the data from the 18kPV and publishes it to MQTT as well every 5 minutes.

On those events I listen and do the logic to determine how much charging I can do based on a bunch of factors. (Solar production, battery usage, grid sellback, time of week, is the car at home and plugged in). Then I send commands back to the car via API. I wish I could do something that didn’t need internet, but the Tesla Wall Connector is too dumb.

It has been working pretty flawlessly so far. I can figure out how to post the code if people are interested.
 
This is exactly how I have mine set up. Tesla only lets you put 50-100% as charge limits in the API. When charging from solar, set to 80%. When not, 50%. You can set amps between 5 and 48 (240v) in the API as well, so I use that to match production.

I also have a utility incentive program to keep charging under 3kW during 9am-5pm M-F so my code enforces that as well.

Because of the complexity, I have it in Node-RED. Teslamate publishes data from the car to MQTT so I listen to that and store it.

lxp-bridge takes the data from the 18kPV and publishes it to MQTT as well every 5 minutes.

On those events I listen and do the logic to determine how much charging I can do based on a bunch of factors. (Solar production, battery usage, grid sellback, time of week, is the car at home and plugged in). Then I send commands back to the car via API. I wish I could do something that didn’t need internet, but the Tesla Wall Connector is too dumb.

It has been working pretty flawlessly so far. I can figure out how to post the code if people are interested.
I have a thread showing how to do a basic "time of use" scenario in node red here. If you'd like, you can add your example there, or post it to a new thread that I'd be happy to link to in mine. I think NodeRed is insanely flexible, and building out a library of examples could go a long way to people adopting it and sharing more and more elaborate/cool flows.
 
This is exactly how I have mine set up. Tesla only lets you put 50-100% as charge limits in the API. When charging from solar, set to 80%. When not, 50%. You can set amps between 5 and 48 (240v) in the API as well, so I use that to match production.

I also have a utility incentive program to keep charging under 3kW during 9am-5pm M-F so my code enforces that as well.

Because of the complexity, I have it in Node-RED. Teslamate publishes data from the car to MQTT so I listen to that and store it.

lxp-bridge takes the data from the 18kPV and publishes it to MQTT as well every 5 minutes.

On those events I listen and do the logic to determine how much charging I can do based on a bunch of factors. (Solar production, battery usage, grid sellback, time of week, is the car at home and plugged in). Then I send commands back to the car via API. I wish I could do something that didn’t need internet, but the Tesla Wall Connector is too dumb.

It has been working pretty flawlessly so far. I can figure out how to post the code if people are interested.
This is incredibly cool and exactly what I was hoping to be able to setup. I actually have two Tesla wall connectors with one charging a Model 3 and another charging a Model Y that I was hoping to be able to coordinate though I have two Sol-Ark 15ks rather than the Eg4 18k you are working with. Any suggestions on how I might cobble together something similar to the elegant solution you have setup? I'm not as comfortable as you appear to be with coding so would love if there were some existing solutions that are a little more friendly to put together such as Home Assistant/Solar Assistant/etc. Thanks!
 
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.
1708885017932.png
 
Last edited:
Back
Top