serkri / SmartEVSE-3

Smart Electric Vehicle Charging Station (EVSE)
MIT License
75 stars 26 forks source link

image

Note

This fork is exploring the capabilities in modifying the Smart-EVSEv3 firmware.
Feel free to use this repository to build it yourself or to use the latest on from the releases folder but this is on your own risk. Make sure to have read the original README.md (e.g. on howto connect to wifi).


For an idea how you could build the entire charging infrastructure using Smart EVSE, check out this post https://crunchtech.io/EV-charging-station-(part-I)

Changes in regards with the original firmware

New Status Page

image

Home Battery Integration

In a normal EVSE setup a sensorbox is used to read the P1 information to deduce if there is sufficient solar energy available. This however can give unwanted results when also using a home battery as this will result in one battery charging the other one.

For this purpose the settings endpoint allows you to pass through the battery current information:

The EVSE will use the battery current to neutralize the impact of a home battery on the P1 information.
Regular updates from the consumer are required to keep this working as values cannot be older than 60 seconds.

Example

The sender has several options when sending the home battery current:

API Overview

View API https://swagger-ui.serkri.be/

Have an idea for the API? Edit it here https://swagger-editor.serkri.be/ and copy/paste it in a new issue with your request (https://github.com/serkri/SmartEVSE-3/issues)

MQTT support

Your SmartEVSE can now export the most important data to your MQTT-server. Just fill in the configuration data on the webserver and the data will automatically be announced to your MQTT server.

Integration with Home Assistant

There are three options to integrate SmartEVSE with Home Assistant:

Modbus TCP bridge

Your MainsMeter, EVMeter and PVMeter will present themselves at port 502 of your SmartEVSE, via the modbus-tcp protocol. So this makes it possible for you to use whatever modbus function you want on whatever modbus register you want. The addresses on the tcp modbus are the same addresses as they are on the RTU modbus.

E.g. my MainsMeter is at slave address 0x0a, so this command reads register 70decimal and following:
mbpoll -a10 -t 3:hex -r 70 -c 10 10.0.0.76

Simple Timer

There is a simple timer implemented on the webserver, for Delayed Charging.

Improved starting/stopping through the LCD screen

EU Capacity Rate Limiting

An EU directive gives electricity providers the possibility to charge end consumers by a "capacity rate", so consumers will be stimulated to flatten their usage curve. Currently the only known country that has this active is Belgium. For more details see https://github.com/serkri/SmartEVSE-3/issues/215

Building the firmware

If you are not using the webserver /update endpoint: