evcc
Local, vendor-independent EV charge controller and home energy management system
Alternative to: tesla app, solaredge monitoring, sma sunny portal, wallbox mywallbox
About
Versions (102)
0.313.0
2026-07-30Changelog
Breaking Changes 🚨
- a3b14bb08fddb853a516bb64242121c9c3f8f845 Deye 3p hybrid: add feed-in curtailment (BC) (#32206)
- c8b27650cac4260253ae4dab7cd09092974ab427 Home Assistant: configurable charge status values (BC) (#32136)
- 1f0aaf14bbcde076bd54bdf86af8f4c89de303b4 Huawei SUN2000: treat two battery units as single battery (BC) (#32034)
- 02a66252ca7112f033fd5524de9059ddf3e8b213 Modbus: unify delay and timeout settings (BC) (#31996)
New Features 💫
- c72753770289f1f5caddf8a7adc04d35c88c9db3 Add FoxESS EV charger (Modbus TCP) (#31412)
- 0a98d57cec36fd67a5e2aa8245d179e7a1ee4676 Add SMA Sunny Home Manager 2.0 ModbusTCP with curtailment (#32091)
- 1a058fd933d34cc5dd11fac08bf49910bf347ebd Add Shelly EM1 (#31992)
- cd9812ef14e56a8a8c08ab5565d0b12afe20b311 Add Sigenergy EVDC charger (#32023)
- f8cd71f70fde50a6145d1567471dae5d03483650 Add SolvisControl 2/3 heatpump (#31976)
- 106d44652cf878a7c796ba052384e6c48cde3a3b Add THB (Thai Baht) to currency list (#32231)
- d92f125336c2890a3b7f0b39338e652718b167e8 Afore hybrid: add grid and pv usage (#32027)
- 4c26af7f5c77233f65b4eb15e927bc55e01fc460 HEMS: add custom implementation (#32187)
- ce75e49192719a4cc5e8d992f2d914031acd9bd0 History: normalize tooltip units, add total row (#32262)
- 838773b2aee651507471e1098c6cb48229103219 Home Assistant: add features config (heating/integrateddevice) (#32288)
- af8ecb2de2b4e0f8a6c945a28c20ecb03f317f43 Huawei SUN2000: add curtailment description (#32188)
- e6134683ac4521343fe2b4ac3ad5d5473aecf657 PowerOpti: add grid energy (#32281)
- 435ed72a56dbb8d097dd8e9bfec705c24f2958be Revert “Add Shelly EM1 (#31992)”
- 835d3c9c9454f3a678897a5b8face3f5574a4afc Shelly 3EM (Gen.1): add http cache, default 1s (#32216)
- 177ca558c98a155b3e735b258029e8e467a8fe02 Site: add experimental battery grid discharge setting (#32086)
- caf366bd345c9ef2bcdd36671aa63262e83b72bd Solaredge: add curtailment (#31982)
- 1b16f23da3a8ed39067839a3e132a30d36a1b704 Trydan: remove Locked, pause DPC, add currents/voltages (firmware >=2.5.0) (#32013)
- e3a48e42f97d98136fd194fab0b4a0c4d257daa1 Vehicle (VW/EU Data Act): add Skoda Enyaq soc key (#32060)
- c9c3b3b7382fe982bd61c603b2944ea27335f838 emsesp: add cacheing (#32291)
Other Changes ☀️
- 542a01fa20dd66638f78be33e374a9105809116a API: generate /api/state documentation from UI types (#31530)
- 20ce660d7a2acff8326c117ed7397e456b6c2ef3 Battery: move grid discharge setting to battery page (#32256)
- 36227559c0682b675062a45852940e4f06314a98 Chore: remove unused @claude mention workflow (#32024)
- 608aa36629b14a419f91d6a08ca72d9160a9f012 Curtailment: report curtailed percent instead of bool (#32010)
- b66d6532aefe9ab3b31e999cde70aba56323c0c2 E3DC: address session data request per wallbox index (#32172)
- 6187b965ca401e2ef6f67139f3893860fb2c4c1b EEBus OHPCF: keep enabled state when enable fails (#32263)
- 408f9a056badff4e30efc12dfe9579f7100438fe EEBus: accept an inactive §14a limit without a value (#32155)
- f85b3b949851bac552a9c57e78e286431b8a7117 EEBus: treat data not valid as unavailable (#32204)
- e871263e18072c1abdca4a585ff70f5036442c56 EEBus: update eebus-go/ship-go, drop eebus-go replace (#31980)
- bacca990ee3519d46148fef91a4b2e5bc0b8b8fa FNN Hems: align power config wording with EEBus (productionNominalMax) (#31948)
- 300892d1ff3cffdda0ef5055a38fbddd7f7978aa HEMS: use Wp unit for installed generator power (#32173)
- abfce921d5b1c082c4cf897132d063b8ff7ea7d3 Huawei SUN2000: optimize timings (#32235)
- f9dca652652bf3936283a6a093f1de14f2f2af3c Huawei SUN2000: read all ESS registers at once (#32234)
- 1f3196b105097720a987123b465fb4bce730f6b9 Loadpoint: ignore implausible charge rater readings (#32174)
- f8584ebb6ea338c37ea1dadd1489d84593b21fe0 Mercedes: remove broken odo, maxSoc and status (#32293)
- 1656a76cb314d3d1c4e310632d65d67130467829 Mqtt: wait for retained message after subscribe before first read (#32031)
- 496c834f0d7784e411e8ca9165818ed803a1f1f8 OCPP: tolerate empty chargePointVendor in BootNotification (#32184)
- 1c26a6f66b2fc1e8b83d1107697c57f2447dd7d3 Optimizer: blend measured values into forecast inputs (#31975)
- 43517ee105b747bd137f581c4deac72c094cc347 Optimizer: don’t show outdated battery forecast (#32119)
- de4c63d18286a7eaa822fc55f7f893fe36c0418f Optimizer: evaluate suggestion actionable flag on publish (#32045)
- 36a789b5c0b6ccf3f15e4304281032b388c69b38 Optimizer: hide battery forecast when already full or empty (#32121)
- 9db7be1ededad485622f4e72c5c1f9b8c8d90f88 Optimizer: notify on advisory suggestion changes (#31905)
- 19c4e06391e992d4c87ef49e5205df8bd4b6b534 Optimizer: publish result before status check (#32055)
- 771fc20ec2428b714f42be18c46c9c1517061946 Optimizer: split grid peak shaping into demand, feed-in and combined strategies (#32108)
- a1b6a0630518c52f4bb057ec55c84d21727ba30f Optimizer: surface battery-to-grid discharge as suggestion (#32087)
- 05676e7c6809ae8d66b1ff5dc8469c7ac401bf5c Remove deprecated Smart EQ (#32294)
- 9c8852368230ba475dca77e7751660e2f78b5649 Revert “API: generate /api/state documentation from UI types” (#32109)
- 9300e158672e315e0ae38bf44a8b93070832849b Session: fixed overflowing of cards on small screens (#32261)
- 13aab7c6226f4dcedd2e3e34cb87ba5956adc45c Site: only re-evaluate HEMS dim and curtail state on change (#32011)
- c8517b0237972cab66e7eb62c1ffb1c864a27b1f Tariff (Combined): sort rates before partitioning by start time (#32094)
- aa7c685fb6e3b881ba632e79284f68346c74f40f Tariff (solar): center sub-slot interpolation on the source slot (#32116)
- be81052667234f7aa4f3846c57a2705290ec87e6 Tariff: base cache validity on update interval instead of rate coverage (#32168)
- 60f313cbfb75634f8d69dd63794efd89867980ab Tariff: keep fixed tariff rates ordered when chargesZones markers are combined (#32165)
- 03a8c744d03efb0985a795cd09e882799bee48e4 UI: suppress API error toasts during restart (#32265)
- 1db0d5015cdac481faa3137934c72169297c78f8 UI: use consistent vehicle wording in messaging events (#31938) (#32048)
- 6ead46d97ff052cfb96e7da198ac4c14359ed82e Vaillant: solve ALTCHA challenge on login (#32070)
- 2b7aaeaa371b3f1b3a5a297032964465d70b77fd WARP1: don’t report zero phase currents on power-only meters (#32090)
- 4e1b0a8250add1fe8d8bb34ad88a721df3a5af12 Wattsonic: remove wrong grid currents (inverter registers) (#32049)
- 8bbbc2497dcb95b5ff725736cb7d4594e8b5e913 api: match permanent sentinel errors after backoff unwrapping (#32197)
- 608575ffec86cbce161f07f7398ec48e0353942c core: apply dim/curtail to devices that cannot report their state (#32198)
- 9a2a7306349990403199ff55602687eeaf700dad docs(openapi): remove stale result envelope from response schemas (#31989)
- 19ed27fa54f52ae6b4152fd6c23c4d88d208ca87 vw/eudataact: fall back to battery care mode field for target SoC (#32242)
- 2b69cb34129765b41970fb4d0321ffe81ac4dba2 vw/eudataact: restore welcomecharge (#32276)
Bug Fixes 🐞
- 614c91080b952508852994316059eae1dc8d5a80 Cardata: fix mqtt channel stealing (#32244)
- f7af0bbe6ae24a0e223adbcd548c0e76ee64259f Daheimladen: fix hardware check (#32079)
- 5215bb9e3f44bc15a661e516a483ba582702a4b8 EEBus: fix OHPCF re-boost after the heat pump withdrew its flexibility (#32150)
- 209b72b8179090745595048a17a51d1a14c7e026 Fix startup deadlock with existing metrics database (#32043)
- ea6cc990945fb89b322afb69b7ca0e2215307ecc Planner: fix continuous plan selecting the current slot (#32041)
- 834c062b8c70802d08c97624ce0d85b6e3ce435c Revert “Daheimladen: fix misleading sponsorship error on station id read (#31956)”
- f937ebec1fb8a77f2aefc86ddb38bf1a4d511943 Shelly: fix PM1 Gen3 energy readings (#31957)
- e867ef60cffe45215cad911d4b4aa3e7449d0491 Tariff: fix chargesZones boundaries not taking effect between price zones (#32143)
- b178fb5c9812c510bc11b3e6192498e09e2619cc UI: fix loadpoint value alignment on narrow screens (#32275)
- 75eebf131b61fe006195a37f8e2224dcc0846639 UI: fix missing general config tiles with battery configured (#32140)
- f1b441684eb3aab2bb37b81b11132178e302d5df Update and fix translations (#32224)