I need to buy an EV charger that works with my utility company's peak interrupter panel to qualify for the discounted utility rate. The utility company box has a relay inside that is for low current and low voltage only. The relay closes when the electricity is off peak and it opens when it is on peak. My utility requires this so they can also control large loads during periods of high demand. Can the OpenEVSE be hooked up to a dry relay contact to enable and disable charging around load control events? I can kind of program arduino and I have an ESP32 I bought a year ago. I would appreciate any help with this application that you can offer.
It could be done with a little work. If you used the ESP32 to monitor the status of the peak interrupter relay, you could send a command to enable/disable the OpenEVSE station.
To put the station to sleep during a peak event:
To enable the station:
That's pretty nice, one question remains though. Once being put to sleep is there any other code that might enable the station? I need to make sure it is not enabled by putting an IF statement on that code so it cannot be enabled when the peak interrupter relay is closed.
Looking at rapi_proc.h it looks like I can also display a message about PEAK CONTROL PERIOD and change the backlight color. Pretty cool.
The more I think about it I think it would be easier to put a low voltage relay on the pilot wire. If the vehicle is plugged in and the relay is cutting off the pilot wire that should prevent charging. When the relay closes and the pilot wire is reconnected will it automatically start the charge without pressing any buttons?
Interrupting the pilot wire may work but the vehicle could see the loss of pilot as an error and might not resume, 0v on the pilot is the "UNKNOWN" state. The proper to indicate to the vehicle that the station is not ready to provide power is turn off the PWM and give steady state 12v DC (which would be pulled down to 9v or 6v by the vehicle). If you used a relay switch between pilot and 12v it will likely work better.
Using Sleep puts pilot to a steady state DC, it can be interrupted by a push button if installed or a Start/Stop timer if set.
What kind of code would I have to write on the ESP32 to send one of those commands? A serial write? Not sure of syntax at all. Are there any examples?
Actually I just tried pausing the charging with the web app and the car "Fiat 500e" still says service charging system when I simply pause it. The car blinks the lights on the dash constantly. However it does resume charging when Start is pressed in the web app.
I get the exact same results with my externally controlled relay. Probably because it is doing the same thing. Is there any way to pause charging without getting a fault in the car?
OpenEVSE complies fully with J1772 which requires the PWM to go solid DC (12v at the EVSE pulled to 9V by the vehicle) when the EVSE is not ready to supply energy. It appears the Fiat 500e does not properly handle the State B1. We would recommend contacting Fiat and see if a firmware update for the charging system is available. The B1 state was not terribly clear in earlier versions of SAE J1772 and clarified in the 2012 version.
You should have a 1K resistor between the 12V supply and your relay input so that 1) a short of pilot to ground in the vehicle/handle wont blow the power supply, and 2) vehicle wont get confused when it tries to pull the pilot down from 12V to 9V and can't.