no supporter feture fork of evcc.io
Find a file
2023-01-08 15:11:10 +01:00
.github Bump goreleaser/goreleaser-action from 3 to 4 (#5642) 2023-01-01 13:43:54 +01:00
api Tariffs: add units (#5718) 2023-01-08 15:11:10 +01:00
assets Publish plan start (earliest slot) (#5607) 2022-12-29 16:03:45 +01:00
charger EEBus: fix charger connection check on init (#5697) 2023-01-06 17:42:14 +01:00
cmd EEBus: improve configure and charger handling (#5670) 2023-01-06 16:37:46 +01:00
core Planner: improve resilience against fluctuations and short charging slots (#5695) 2023-01-08 14:36:48 +01:00
detect Require Go 1.18 and use generics (#2116) 2022-04-02 12:47:26 +02:00
dist Publish plan start (earliest slot) (#5607) 2022-12-29 16:03:45 +01:00
docker/bin Add possibility to pass sqlite flag using Home Assistant Addon config.json (#4884) 2022-10-21 19:43:21 +02:00
docs chore: add some docs 2022-11-05 17:35:25 +01:00
hems Rename SoC to Soc and LoadPoint to Loadpoint (#5549) 2022-12-23 10:19:23 +01:00
i18n translation: hr, pt updates 2022-12-29 22:37:00 +01:00
meter Tariffs: add units (#5718) 2023-01-08 15:11:10 +01:00
mock Tariffs: add units (#5718) 2023-01-08 15:11:10 +01:00
packaging Gokrazy: simplify image build and add run command using qemu 2022-11-21 15:22:16 +01:00
patch Add support for Elli chargers (#4207) 2022-09-30 10:52:17 +02:00
provider Modbus: trim zero bytes when converting to string 2022-12-07 18:59:40 +01:00
push Rename SoC to Soc and LoadPoint to Loadpoint (#5549) 2022-12-23 10:19:23 +01:00
server Fix build with -tags gokrazy (#5716) 2023-01-08 13:45:46 +01:00
tariff Tariffs: add units (#5718) 2023-01-08 15:11:10 +01:00
templates Volvo: update docs 2023-01-04 23:21:40 +01:00
util Add phase powers and currents (#5539) 2022-12-29 12:46:53 +01:00
vehicle VW ID: get nicknames from api 2023-01-06 14:20:01 +01:00
.dockerignore chore: ignore zipped images 2022-10-17 20:11:28 +02:00
.editorconfig Revert undesired markdown changes 2021-02-24 11:53:00 +01:00
.eslintrc.js Replace storybook with histoire (#5154) 2022-11-14 17:24:32 +01:00
.gitignore chore: optimize JavaScript bundle (#5495) 2022-12-18 21:59:01 +01:00
.golangci.yml Yaml: apply prettier (#3023) 2022-03-29 15:54:02 +02:00
.goreleaser-nightly.yml Add session log (#4162) 2022-10-05 13:12:24 +02:00
.goreleaser.yml Add session log (#4162) 2022-10-05 13:12:24 +02:00
.prettierrc.js Refactor UI into single file components (#491) 2020-12-02 08:29:54 +01:00
Dockerfile Docker: expose mDNS (#5093) 2022-11-07 16:41:58 +01:00
evcc.dist.yaml Document database configuration 2023-01-04 10:16:50 +01:00
go.mod Upgrade go-powerwall (#5650) 2023-01-02 16:19:58 +01:00
go.sum Upgrade go-powerwall (#5650) 2023-01-02 16:19:58 +01:00
histoire.config.js Replace storybook with histoire (#5154) 2022-11-14 17:24:32 +01:00
icon.png Implement basic hardware detection (#435) 2020-11-21 17:13:59 +01:00
jest.config.js Visualisation of Site Energy Flow (#1148) 2021-08-04 14:53:51 +02:00
LICENSE Update license 2021-01-25 17:27:08 +01:00
main.go Improve i18n handling (#5342) 2022-12-03 14:32:53 +01:00
Makefile chore: disable cgo 2022-12-08 14:09:17 +01:00
package-lock.json chore: use smaller markty-toml lib (#5589) 2022-12-27 20:29:56 +01:00
package.json chore: use smaller markty-toml lib (#5589) 2022-12-27 20:29:56 +01:00
README.md chore: re-add links to go and node versions (#5512) 2022-12-20 09:12:56 +01:00
schema.json Rename SoC to Soc and LoadPoint to Loadpoint (#5549) 2022-12-23 10:19:23 +01:00
tools.go chore: upgrade unmaintained alvaroles/enumer (#4092) 2022-08-10 17:30:36 +02:00
vite.config.js chore: optimize JavaScript bundle (#5495) 2022-12-18 21:59:01 +01:00

evcc 🚘☀️

Build Status Code Quality Translation Open in Visual Studio Code OSS hosting by cloudsmith Latest Version

evcc is an extensible EV Charge Controller with PV integration implemented in Go. Featured in PV magazine.

Screenshot

Features

  • simple and clean user interface
  • wide range of supported chargers:
    • ABL eMH1, Alfen (Eve), Bender (CC612/613), cFos (PowerBrain), Daheimladen, Ebee (Wallbox), Ensto (Chago Wallbox), EVSEWifi/ smartWB, Garo (GLB, GLB+, LS4), go-eCharger, HardyBarth (eCB1, cPH1, cPH2), Heidelberg (Energy Control), Innogy (eBox), Juice (Charger Me), KEBA/BMW, Menneckes (Amedio, Amtron Premium/Xtra, Amtron ChargeConrol), NRGkick, openWB (includes Pro), Optec (Mobility One), PC Electric (includes Garo), TechniSat (Technivolt), Tinkerforge Warp Charger, Ubitricity (Heinz), Vestel, Wallbe, Webasto (Live), Mobile Charger Connect and many more
    • experimental EEBus support (Elli, PMCC)
    • experimental OCPP support
    • Build-your-own: Phoenix Contact (includes ESL Walli), EVSE DIN
    • Smart-Home outlets: FritzDECT, Shelly, Tasmota, TP-Link
  • wide range of supported meters for grid, pv, battery and charger:
    • ModBus: Eastron SDM, MPM3PM, ORNO WE, SBC ALE3 and many more, see https://github.com/volkszaehler/mbmd#supported-devices for a complete list
    • Integrated systems: SMA Sunny Home Manager and Energy Meter, KOSTAL Smart Energy Meter (KSEM, EMxx)
    • Sunspec-compatible inverter or home battery devices: Fronius, SMA, SolarEdge, KOSTAL, STECA, E3DC, ...
    • and various others: Discovergy, Tesla PowerWall, LG ESS HOME, OpenEMS (FENECON)
  • vehicle integration (state of charge, remote charge, battery and preconditioning status):
    • Audi, BMW, Citroën, Dacia, Fiat, Ford, Hyundai, Jaguar, Kia, Landrover, Mercedes, Mini, Nissan, Opel, Peugeot, Porsche, Renault, Seat, Smart, Skoda, Tesla, Volkswagen, Volvo, ...
    • Services: OVMS, Tronity
    • Scooters: Niu, Silence
  • plugins for integrating with any charger/ meter/ vehicle:
    • Modbus, HTTP, MQTT, Javascript, WebSockets and shell scripts
  • status notifications using Telegram, PushOver and many more
  • logging using InfluxDB and Grafana
  • granular charge power control down to mA steps with supported chargers (labeled by e.g. smartWB as OLC)
  • REST and MQTT APIs for integration with home automation systems
  • Add-ons for HomeAssistant and OpenHAB (not maintained by the evcc core team)

Getting Started

You'll find everything you need in our documentation (German).

Contribute

To build evcc from source, Go 1.18 and Node 18 are required.

Build and run go backend. The UI becomes available at http://127.0.0.1:7070/

make
./evcc

For frontend development start the Vue toolchain in dev-mode. Open http://127.0.0.1:7071/ to get to the livelreloading development server. It pulls its data from port 7070 (see above).

npm install
npm run start

Code formatting

We use linters (golangci-lint, Prettier) to keep a coherent source code formatting. It's recommended to use the format-on-save feature of your editor. For VSCode use the Go, Prettier and Veture extension. You can manually reformat your code by running:

make lint
make lint-ui

Changing UI code

To ensure reproducability the build frontend artifacts are part of the source code repository. If you've made changes to frontend code, please make sure to rebuild the production assets before you commit.

make ui

Changing templates

evcc supports a massive amount of different devices. To keep our documentation and website in sync with the latest software the core project (this repo) generates meta-data that's pushed to the docs and evcc.io repository. Make sure to update this meta-data every time you make changes to a templates.

make docs

If you miss one of the above steps Gitub Actions will likely trigger a Porcelain error.

Adding or modifying translations

evcc already includes many translations for the UI. Weblate Hosted is used to maintain all languages. Feel free to add more languages or verify and edit existing translations. Weblate will automatically push all modifications on a regular base to the evcc repository.

Weblate Hosted Languages

https://hosted.weblate.org/projects/evcc/evcc/

Sponsorship

evcc believes in open source software. We're committed to provide best in class EV charging experience. Maintaining evcc consumes time and effort. With the vast amount of different devices to support, we depend on community and vendor support to keep evcc alive.

While evcc is open source, we would also like to encourage vendors to provide open source hardware devices, public documentation and support open source projects like ours that provide additional value to otherwise closed hardware. Where this is not the case, evcc requires "sponsor token" to finance ongoing development and support of evcc.

The personal sponsor token requires a Github Sponsorship and can be requested at cloud.evcc.io.