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.311.0

2026-07-06

Changelog

Breaking Changes 🚨

  • 7e9195d0e3c47ccd2d9a040625a8c916573a1419 EEBus: add heating brands (BC) (#31344)
  • 238ab79e590a534cc61e47524b008f76174f6b64 EEBus: error on missing productionNominalMax (BC) (#31483)

New Features 💫

  • 1d24da13eba2d982baf50775fc68c3e8f5a36474 Add AMTRON Professional Twincharge with infotext for modbus port 502/503 (#31361)
  • ef5cd8ac4b4b7fd452aff135635862f9f4ece0a3 Add BKW feed-in tariff (#31424)
  • 949daf467022b8bfcd04b9cec2152853c2a7f6e6 Add IBC Solar HomeOne hybrid inverter (#31425)
  • 1005f075a2d2a5faf8f234050c761e09646e223a EEBus: add OHPCF heat pump compressor flexibility (#30636)
  • d18b9d55d8e9f067c0e6c11f858af537a9e97084 Enphase (Modbus): add curtail and maxacpower (#31460)
  • 56513e3489be00d59b82dd9d522ea928b54485c7 PUN: add zone parameter (#31388)
  • 2b4d6dc1d903ee2c34ab89f5967134cd6e8e230c SunSpec: add curtail to generic hybrid/inverter templates (#31492)
  • f0bc3e4ddf221d2e40e8331f3e65978446d87c09 Sungrow iHM: add returnEnergy and feed-in curtailment (#31415)
  • 2ac2fae0a344498062bc82a85e443a994caed570 Tariff (Nordpool): add average by hour option (#31351)
  • 2bd319a36132993a37744279762caa77bfd3ed58 Vehicle: add wakeupdisabled feature to suppress wake-up calls (#31461)
  • 38a5dfd9da96bc0353dcdab28c290956a79dc8e0 dsg: add soc via battery_state_report.soc key (#31340)
  • c3692046b935971fae78e1f67e0df9516cd83bde sunspec: add bool getter (#31482)

Other Changes ☀️

  • d0a461714467894fecae25908394a07b92a5cf53 Battery UI: soc history and future, new layout (#31383)
  • f8b73a5cea672b419d85dfaacc7f4c405bb59787 Bump actions/cache from 5 to 6 (#31371)
  • 710667d5f967b1cc44dc165bd1d9b685a3ee6c3b Bump actions/checkout from 4 to 7 (#31373)
  • a7cd171541bb6723e4e03576d52f491ccdc78d1c Bump actions/upload-artifact from 4 to 7 (#31372)
  • a099c36d577de972201f9a2c11ea3d3c97c00b58 Bump golangci/golangci-lint-action from 9.2.0 to 9.3.0 (#31370)
  • cb6a9910f17c8b18f2d28d1768c42fa77a4ea2d0 Bump goreleaser/goreleaser-action from 7.2.2 to 7.2.3 (#31374)
  • c89895445892846cfce898f9aae1bc2e3a0c47fd Cloud: preserve brand for EU Data Act vehicles (#31429)
  • eea55d282dafe5c699529d15dd9a57bf433ffaaa Curtailment: distribute limits to all devices by percent (#31390)
  • c8eceb8d30e91ec90ab47cb6af0566ac1b22b12d EEBus OHPCF: use either power estimate or envelope (#31380)
  • 258dcb41b5c6b7fa04c560fde607ddfc28ecb6b5 EEBus: await control-write results across all use cases (#31350)
  • df946447d297878b9e9c971c35256ec342bb6a23 EEBus: better error message on legacy SKI mismatch (#31391)
  • 3a560d1254c9eaeb86eb71e2dcee0e2c90a1e4a8 EEBus: enable SHIP Pairing Service (#30842)
  • eb293b285ac9ad82146e95b79d5f2f5db2ab0eac EEBus: release §14a/LPC limit when it expires (#31393)
  • 0299650c31c60c55e7a9c355eec9e6eeda7c7c77 HEMS: run FNN and relay control loops immediately on start (#31392)
  • 6fb096f61f5ebaa2cc0b3aa7c108bae498726512 Meter (DSMR): accept binary WebSocket frames (#31324)
  • 95b0d551cd4ec1e32ee6f5a0f35caff41f4295d4 OHPCF: make it a heat pump (#31466)
  • bfc97db357b2e76eadebffe0526d4a7743382d8f Remote Access: improve back off behavior and error messages (#31267)
  • f1069fb1edcb765ea79b8de2ef229ad81079d950 SAIC: return a stored status only once (#31411)
  • ea039b07a05cfb2033ce72fb8ffc18af0f21141d Solarmax MAX.STORAGE: implement grid charging (#31485)
  • 9268b05a1e40d793ceea5e168030040414d87ad3 Solcast: request 96h forecast horizon (#31475)
  • 0659cb4c2ab373a09a3bb174dddb4dbe3e1ac354 UI: dodge overlapping soc badges in battery history chart (#31512)
  • 48efdee6a1cb68e2b4db70fd2228770bb11206d7 UI: reuse shared header on main page for consistent spacing (#31511)
  • f11cf690dc2f7fc243a6a67873a39eb61d93ef74 Vaillant: make hysteresis and reboost interval configurable (#31379)
  • cdb2914308488d7212736afbad395b370f93c426 Vehicle: test feature param consistency for shared include (#31321)

Bug Fixes 🐞

  • 2e22d1666007318a664e19f8606cca4773dd67a7 EntsoE: fix dropped price series and UTC request offset (#31396)
  • e910ee2779f0ee326b1fd68251732a71e952d60c Fix details height on reload with expanded loadpoints (#31369)
  • 0b3b0a642e509d12d28334506b5e7d4bc0ac29b6 Fix flaky TestShipPairing: patched ship-go fork for double-connection race (#31493)
  • 3482e79f14fa59a9bc7faddd137254f70fb3c928 GreenGridCompass: fix uri (#31389)
  • 2039cffb39250b5ca19686a5db0da37e717073f6 Sessy: fix sensor scaling (#31436)
  • c4f79ef83b0b8c664560bf364b8d2a9b48f58959 Versicharge: fix power reading (#31359) (#31363)
  • c91b8bd64869d2900da0d309b97e839adb0882ca fix: derive MCP doc example values from schema example/default/enum (#31394)
  • 0613eb8a0aeb22a654fe2fb06f154e6a33256f47 fix: swap charging/discharging label on battery status card (#31405)