evcc logo

evcc

Local, vendor-independent EV charge controller and home energy management system

Alternative to: tesla app, solaredge monitoring, sma sunny portal, wallbox mywallbox

evcc screenshot

About Versions (102)

0.313.0

2026-07-30

Changelog

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)