Skip to content

evcc

Home Automation

An extensible EV charge controller and home energy management system that operates locally without cloud services.

Go Latest 0.307.2 · 7d ago Security brief →

Features

  • Simple, clean user interface for managing EV charging
  • Broad support for many EV chargers, smart switches, heat pumps and energy meters via multiple protocols (OCPP, EEBus, Modbus, HTTP, MQTT, etc.)
  • Vehicle integrations covering state‑of‑charge, remote charge control and preconditioning status

Recent releases

View all 27 releases →
No immediate action
0.307.2 New feature

Neutral colors + OCPP skip + UI fix

No immediate action
0.307.1 Mixed

Genesis Bluelink + GoodWe Wallbox + Indevolt + bugfixes

0.307.0 Breaking risk
Breaking changes
  • Fritz: unit indexing changed to 1‑based (BC)
Notable features
  • Add Alpine vehicles
  • Add DSMR API v2 support for Ethernet P1 Dongle Pro+
  • Add MYR and TRY currencies
Full changelog

Changelog

Breaking Changes 🚨

  • 2b16c415bbb1a588638645a668e4c09be657dd7e Fritz: make unit 1-based (BC) (#29741)

New Features 💫

  • 9cc0da1a86e0d6b8d7633c811e67c45c4f5552e1 Add Alpine vehicles (#29927)
  • e48887e04b816107c9a74bfaeca7024c680e1706 Add Azimut Energy battery (#29890)
  • 726bea60760cff9889cb30341fc4561082f4dd4f Add DSMR API v2 support (Ethernet P1 Dongle Pro+) (#29871)
  • d17e72b89c697e4ce5fda2b41696eecdf3ff2272 Add DSMR API v2 support (Ethernet P1 Dongle Pro+) (#29892)
  • 68029759b1723e00a67beeee47f5adb35f55105e Add MYR (Malaysian Ringgit) to currency list (#29956)
  • 1e9bc6cd5d5a919ba7c447b06b4999953dd7948d Add Siemens 7KT1666 (#29801)
  • 76a54c6c7449d6b29e2a7f31c98040934002b7aa Add TRY (Turkish lira) to currency list (#29897)
  • 8886af10adabf9080dd5f16c5d9b64afc2fad8ff Add compleo pro (#29925)
  • ca386b72f23a0c243c7d51c2f37764c622355daa Add dim/curtail features (#29905)
  • 92072aac40d034c8a8ff9cd3274472df8fce84f9 DADAPOWER: add voltages (#29923)
  • 603979167cf0750140a82e230f6ee5ed89b34c12 Easee: add cmd for (de)activating local ocpp (#29868)
  • b1d5f576eaeb3c31e839ba5f6acec8613368eba2 Enphase: add voltages (#29795)
  • cae8a2cdd6472a137b70482ba989ef90350a82b9 Fritz Smart Energy 250: add pv
  • ef12393ffe1d09c32b86bc9d7c2d1a71d45e5860 Huawei SUN2000: add curtail (#28549)
  • 29a932ce21f77c8dc4cc8b1b1761f1b51c3d9dbd Huawei SUN2000: add curtail (#30039)
  • 3588040e710b6b6c74ddccd8510016ec7b259053 Ostrom: add sandbox support (#29751)
  • 1e40a2aa9dfbf7e2bec35eb33578f76b928106e0 Plugins: add bool2int conversion (#29995)
  • ce583cde3c0e0cb689856e542aa2ecce02d8b822 Plugins: add ifelse plugin (#29988)
  • 9badb4efb6d5d498edb01b1ad9ce15a141f46f74 Revert "Huawei SUN2000: add curtail (#28549)"
  • eb5fd6d50ca7a84523a7eb7f5d0c77e0d15ea250 Revert "Huawei SUN2000: add curtail (#30039)"
  • 57630514e520d2872989c09448bab838ab22fa42 Sessions/History UI: add left/right swipe gesture (#29944)
  • a2ce340210f9d13a6df39ab922d29ce21aed9f68 Solinteg: add phase powers and currents (#29749)
  • 908e6cf6f332f6dccf6876630bc96f414a62fdbd Tariff: add time-based grid fees (#29766)
  • 21eefccf1a1c7b7fa3d059cf077efd1712260c51 Vaillant: add brand support for Saunier Duval, Bulex, Glow-worm, DemirDöküm (#29874)
  • 468dfa69af88732ebc99275f0dc8f30bb18aab28 tariff/epexprijzen-nl: add powerpeers provider (#29829)

Other Changes ☀️

  • 37e565993624e6938f9abc36ba02e97a4af43ae6 Batteries: track energy metrics (#29780)
  • cbd253b579736e73f1f2eb16f6b97b702f9b0297 Battery Grid Charge: allow limit remove
  • c37ecd66ac9711ab043d909b4d3b565d7e498c72 Chart: sorted color picker (#30073)
  • 62ecd175a679db3a8b215010e2ac92cdcfd30744 Charts: color picker for loadpoints and consumers (#30021)
  • 4e42b54589532c501f1dded16344c200d5d61d8f Config UI: replace custom vehicle modal with generic flow (#29575)
  • 714c847e2e86ab3a12fbeae4d26ec616eee0adff Config: enforce required fields when forcing save past a failed test (#29982)
  • b76af6101d6d986b600c0908e564f29f70afd9cf Database: use backup and restore apis (#29511)
  • e7a27e5d5d07cc1390e539e5cc4df7fcf23e4617 Energyflow UI: use names instead of placeholders (#29918)
  • a74982acc5f96cfc5509d09c0f4ef50dee328f69 Ext/Aux meters: track energy metrics (#29836)
  • a628981d8dcb2b77a7e0e3fbac2ef6323baf18d3 History UI: improve tooltips, labels, stacks, units (#29917)
  • 65dd010227a9be05e855ee07d47360f9d1af47a3 History UI: optimize production chart (#29946)
  • 431b606230ade64d795a0de24348815aa88cd423 History UI: visualization and export (#29846)
  • 47132a4af2f9f157a468ced8762bff53137c5ebb Loadpoint: suppress PV disable timer while climater is active (#29837)
  • 177cb19d5d2e3e53fc06d3e8cc5640c72ddde2a1 Loadpoint: tolerate api.ErrNotAvailable on phase switch (#29975)
  • 1200fbc2f9f76e0685ff4c6b5ff4a29d97801bd6 Metrics: do not persist a partial first slot (#29977)
  • db82557423b8f4aae01d3e08bac04b217e0d0d7c Metrics: rename import/export to energy/returnEnergy (#29907)
  • 84d623ae127dcbd57380ed50416d3b8282cea738 OAuth: expose full upstream error (#29875)
  • be1dd8443d6f10a5d9cf2cc207f902d47d5f1e86 OCPP: clean up charge point lifecycle between subtests (#29873)
  • e07838bb8ea97b98238403aceeff022d6cc6a4ca OCPP: dispatch RemoteStartTransaction asynchronously to avoid WebSocket deadlock (#29838)
  • 960eb1153240d44ab5c710a332b6bcb9cd7662b1 Ocpp: fall back to confirmed profile limit for GetMaxCurrent (#29783)
  • 7e41160acfd26e013d2496187afae545d0fa3476 Optimizer: expose forecasted highest/lowest battery SOC (#29564)
  • 6b053bf77126c3d62fa289c45ad0dc6b032dca76 PV: track energy metrics and apply forecast scaling to optimizer (#29784)
  • 54e61745aa60ae5f6f742df62b8cc76fc670b8c4 Renault: update api keys (#30031)
  • 178cc7a694e9f7f082f2a2f84aa6f1b950a73144 Revert "Battery Grid Charge: allow limit remove"
  • d5e6253d35586d3f48c5c30366b67ca404ac2c61 Revert "api: split MeterEnergy into MeterImport and MeterExport (#29788)"
  • 13c24073b6de49c0631260036d8a248f0cf76fa3 Siemens 7KT1665: remove timeouts (#29800)
  • 5506053dd3686d8f8687c6241e73c0db308fa8a5 VW/Audi/Seat/Skoda: recover from marketing consent prompt (#29980)
  • fed967856f8eeb1820ca403bbfd28ba33700c116 Vehicle: accept lat/lon parkingposition keys for VW weconnect (#29981)
  • 7a5b1e756065138460a3e3f6ddd73aa585c20a9c api: split MeterEnergy into MeterImport and MeterExport (#29788)

Bug Fixes 🐞

  • c61e3faac99ce91adbdf834befd16aee0d5f9ece Battery: fix stale grid charge limit reset (#30013)
  • 8ac2f944ddd0fd0b8f3a44517d2d36ce021a15fc Cupra: fix connected status (#30046)
  • 48822fb1256b3f8c79ec4a1ed044da7e42b89b06 Cupra: fix vehicle list (#30047)
  • fe02f7fea0b03437229f28e47e8b4355fc022605 Evbox Elvi (OCPP): fix "charger out of sync" (#29809)
  • 207fa7984cd5d9aac1f3574b95703a1f94089ad7 Grid charge: fix 0 cost limit (#29817)
  • d08a07d826f450f8d4cfc68b52fecd98d316f078 History UI: fix timezone handling (#29819)
  • 41c169ee9a7f9eee8bb81d9aaf8662f01078b771 History: fix axis, scale and units (#30042)
  • d89c1018e8d4406567a247c6d099d21667a05bf8 History: fix scale for stack batteries (#30044)
  • 4bc9ba4ca57698892f42a191918262d343f75bdf Huawei EMMA: fix phase currents (#29845)
  • f41ad70ac418ae5dd2fc9503c2990a1ac72347e6 Loadpoint: fix charge meter method decoration (#29912)
  • 117276fb6b8b165dd76199653de44181b7d20218 Localization fix for german string (#29891)
  • 43860c1e0b4f634030a495d8c9d8ddfeac884f34 OCPP: fix flaky TestOcpp (restore wait() timeout) + speed up (#29941)
  • c5d9bccec2636eea0b8c5b4241d52848f8a09b2d Optimizer UI: fix line charts (#29936)
  • 394553c1982f1e00c0b2eaa21a91bcd885e7712f Xtherma: fix registers and add dimmer (#29854)
  • 1e8169683de6e88c56c1522b3e55a3c8690ab8ca fix: drag & drop stability (#29730)
  • 07b009391a00174beebc2513d08624e5ef517bed meter/hybrid: fix pv energy readings in SunSpec hybrid inverter templates (#29955)
0.306.3 Breaking risk
Breaking changes
  • Removed deprecated Wallbe support (BC).
  • Corrected "intervall" type in templates to the proper spelling and type.
Notable features
  • Added ZAR (South African Rand) currency.
  • Extended Siemens 7KT with additional voltage options.
Full changelog

Changelog

Breaking Changes 🚨

  • 1b26d77b6ca364214d2124c7a25720ca9be02b9c Revert "Templates: fix intervall type (BC) (#29698)"
  • 5a5c3d91db3dad42b9840bd7c5ad449db386a4b6 Templates: fix intervall type (BC) (#29698)
  • 3a99f7de642674d29ea7c5ecf7e4a404f38f1058 Wallbe: remove deprecated (BC) (#29647)

New Features 💫

  • 9d12605154ba30a7cfd0aedc8b1e146d331c8aa8 Add ZAR (South African Rand) to currency list (#29620)
  • cf5038cc89b8972ad9f86619f5703ea3318ca0ae Revert "Stiebel WPM: re-add power (#29627)"
  • 7303a5b476be7fa3da35807df899651f47b3d2f0 Siemens 7KT: add voltages (#29732)

Other Changes ☀️

  • d4d8109a63b9a20f476d3fc05e734c3be8ce718e Battery UI: 100% buffersoc resets bufferstart (#29669)
  • 20be86fec826670fcd512a37ade31dc104508aab Bluelink: convert evModeRange and odometer from miles to km when unit=3 (#29731)
  • 2a496683ca265e33d5fc3ee7aeeed4fda82a8839 EEBus: drop redundant Scenario middle word from constant names (#29704)
  • efe8ee75280db0c62f0b204ef133eb02d769fe06 Energyflow: show all loadpoints (#29677)
  • bd651da8ff44cf685bdd6536d795b4d5a8e7c045 HomeAssistant: dispatch CallSwitchService by entity domain (#29700) (#29706)
  • 1e614279ae389b2537f0eba1fe4a468e980968c6 Loadpoint UI: improve heatpump status (#29667)
  • fd80b7147586eedc473c92a896ca02cac5575f81 Make fatal banner dismissible (#29692)
  • 338e8b4a461f5e9b26d615d4921c3c23ae4938ad Session energy: latch baseline late if meter not ready at start (#29656)
  • d8730e1a606e4b999c213563d43c2a076784fd37 Sessions API: filter tz handling (#29676)
  • d81135700aa573f1e3b907750ea37615d2c7c8db Trydan: pause dynamic mode during charging (#28365)

Bug Fixes 🐞

  • 0d3bcfe8dd9252ab2db85c8f6829258ccee3cdeb Bluelink: fix unmarshal float EvModeRange.Value from Hyundai EU API (#29687)
  • 3b90182597a2a8c3956d375cbe49cbe627d04fb3 EEBus: fix LPC/LPP CS failsafe-exit path (#29705)
  • 4b276a4d9905459838dc946823baaf7f8ecb6243 EEBus: named scenario constants + fix MGCP scenario indices (#29701)
  • 2c149b908e5f38ee86de2305231df29a7b2fd365 Fix comment-only yaml in device config validation (#29673)
  • 7a24dbd3f7f39c0bd3b887003e8b48f3f685ba25 OCPP: fix flaky test deadlock between trigger handler and WS read loop (#29725)
  • 32f838403a35db1df9ceb24f7596885e17b4768a RCT: fix grid energy (#29688)
  • 9e2b9071612a76db64b7ec32e7b5eb68dc3f34d5 Revert "EVBox Elvi: fix template (#29652)"
  • 948b64675dadf91e751bdef3d9fbd177aeb0a3c0 Tessie: fix wakeup uri (#29726)
  • 42b5cb2b49dec6d2d2b1e330db3a16fa5be1a526 Yaml: fix decoding empty stream everywhere (#29690)
  • abe86f666aa75236d1436d8a4a0b4ccf3574adea infra: fix demo deploy
  • 1414d71e86b8afd13df2c0ab715a3d38ba19f925 sqlite: fix foreign_keys error (#29697)
0.306.1 Bug fix

Fixed sponsor machine ID panic on startup when a plant configuration is present.

Full changelog

Changelog

Other Changes ☀️

  • 96f5efd93cf312511236ca921cbba03e4c729dbb Drop unused eebus and mqtt requirement values (#29537)
  • 618314be276158edd4820bde91fd74b0aca1eada PSA: update base url

Bug Fixes 🐞

  • 516a6841bbc7ee8075332e49996ad0197d7ad4ab Sponsor: fix machine id panic on startup with plant config (#29542)
  • 93681522ab9567b8990b229ebfb3236d3509d24c fix: add testid for app menu button (#29539)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
6,746
Forks
1,347
Languages
Go Vue TypeScript

Similar tools

Beta — feedback welcome: [email protected]