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

2026-07-17

Changelog

Breaking Changes 🚨

  • d4430248a9f34af3607211087598ecad8e053407 Epexprijzen-nl: remove atoom alliantie (BC) (#31700)
  • 7c7a74b390e1a48dae4df4d3449ecfd06d18e6ca SunSpec: make curtail (model 123/704) optional (BC) (#31607)

New Features 💫

  • b2068fb764c518c37dfb3a4906f15999fa21d06c Add Ambibox ambiCHARGE Home (#31464)
  • 3158ff16efb266581ab282ac7466a54b623723a6 Add Anker SOLIX Solarbank Max AC (#31696)
  • db77790145655722ff6f2ca20bc773c5aa5a10ba Add Mennekes PnC variants (#31806)
  • 5216c88cb8128a09ee73472815fb4d8016b12b94 Add Solplanet AI-Dongle LAN (local HTTP API) (#31732)
  • 92c89adf6b547908b2eb5fa77b9dc4ce59061ff0 Add Voltcast tariff (#31848)
  • 62ed1c4710a82bab8fb90e0d743c5585f33b51d7 Add pvnode Solar Forecast API V2 (#31178)
  • 20a1c0886e40baafecb4728acdbbeecec9b0aea9 Atmoce: add curtail and dimming, add holdcharge and rework normal/hold/charge (#31632)
  • 58bda986421266a8b3395ff9c36630ea771641b7 Config (Remote): add title to app deep-link QR code (#31746)
  • 36c422f7a8c791301e2f9ccba2867bdd15283637 EEBus: add MGCP, MPC, LPC and LPP conformance tests (#31384)
  • 0d76c1277e7232d9b67d762036df14af9e51cc18 Indevolt: add battery control (#31741)
  • 3bb943cbe53524427e37e9cea1221a099b3becd4 Loadpoint: add min temperature for heating devices (#31749)
  • 49b93c6f4d424617dedada5a01556d540642fb69 Marstek Venus: add holdcharge battery mode (#31831)
  • 3a3d7ad36bf2a0c0f68eb19c86d294c74e941869 Phoenix EV-ETH: add millicurrentsupported option (#31860)
  • d68e5e58093613d3d2813572e96ee657bbf0ad8b Tariffs: add outdoor temperature type and OpenMeteo (#27780)
  • 023a48dd2483b9dd161689f7a47c8f21e4e87664 Templates: add capabilities on product level (#31588)
  • d495d3e44232424be27290a912fa2731dfde9b49 Tinkerforge WARP: add WARP4 support with vehicle SoC via ISO 15118 (#31446)
  • cc5ba51c3158128a15d7e2ed99daca12d60d8a70 Vehicle: add charge mode in arrival tab (#31330)
  • cc0b5acafbf139e3e5b428c998d755fb1efeb0ac askoheat: add aux meter template (#31683)
  • 3ce6600143c1dd028bff4c66a3af18247d0b7a7f feat: add xlsx export wherever csv export exists (#31690)

Other Changes ☀️

  • 6d2ed7d2aceffc45577b903245dc8d4c4724e488 Battery UI: history chart polish, axis consistency (#31661)
  • b1f35fbaa7c3979ce217230163f248e10d09bc76 Battery UI: show fully visible day as history window title (#31663)
  • 5120c8d94310a056b9b22ed92849db03ee335d39 Battery: optimizer suggestion state icons (#31748)
  • 69f817d78cf8042527725bbc817ee0987b213c34 Bender: extract Spelsberg Smart Pro (#30493)
  • 83a2b7de2363ec2fff1e07106857979518957a90 Circuit: apply HEMS consumption limit even without configured maxPower (#31751)
  • b900237a8b047ccb1fc427fe9de7f015b6e51359 Config UI: streamline loadpoint creation and unify wording (#31658)
  • 857a93f83ea1c610bf72fe390f712f311d58d244 Config: persist settings immediately on device delete (#31755)
  • 43627f66492d691be9aa00f2a874e3235416d1c6 Config: persist settings immediately on site update (#31754)
  • eed3aece143221c714bcd31c6bb0500939cdfca4 Config: show vehicle asleep state instead of value errors (#31859)
  • fc565af2b4310c7bfcb9ad0ff883f11d7fde8112 Daheimladen: check stationid
  • 7e3da98630b336b8cea8652f733ad9f66e0721cd Daheimladen: restore safe current limit after charger reset (#31729)
  • 469d659fe99f2cdf51983bcbe7d5cc5c814ddccf Drivesomethinggreater: update description (#31723)
  • df5dc0e74f1db4cb9ed5fa9cb66b73d17935941b EEBus: ignore IEC61851 default current limits, honor loadpoint minCurrent (#31737)
  • 333bdcb93181318f2cbe126bd50432ff4a36fad0 EEBus: skip flaky TestShipPairing in CI
  • 20c8c3b0d799ed0d068d4cebbd7b698a5dd4d2b7 EM24: drop kWh(-) export register, not available on all devices (#31736)
  • 276629732920a4cf17129c36475a6070a83a534e Energyflow: remove battery SoC forecast (#31611)
  • 668c163663ce210c89ae62771d3c6419d6ecdaff Epexprijzen-nl: added ‘essent’ and ‘samenom’ (#31699)
  • a95a5595aeead647b89e6d42b93f781f5d736007 Forecast: make solar adjustment a server-side setting (#31862)
  • ecb9cb05e243e740e546b9a29c16feb58b378350 IDM: remove thermal energy register (#31701)
  • 9ad5120c988d5c5745d6cde05862aef7ada612af Loadpoint: release priority PV reservation when car reached charge goal (#31759)
  • ba279718d2ffc1be60587139f383b703fe3931d9 Meter (Home Assistant): support return energy entity (#31857)
  • e7a49bc9388d3927cc565b53d98f98db8f64910b Metrics: fixed grid entity title, merge series of swapped grid meters (#31739)
  • c52b4a79ea11d6614885e14912819f7f93ee16fa OCPP: clear failed charge point registration on init error (#31652)
  • ab3220c47543d387a3c01d63e206da1be4c8693f Optimizer: derive per-device action suggestions from result (#30834)
  • 60af1de1e8176065661b2ffb05ae1f309976756d Planner: log the rate window and fallback triggers used for planning (#31621)
  • ac08a53e0e4cf81026744d07874e8ea60e90b657 Remote Access: user agent and status display fixes (#31667)
  • 9ab2be9b10dd93692dda7ad72986a86b42d863a7 Revert “Energy Flow UI: Chrome (Skia Graphite) rendering bug workaround” (#31623)
  • 4f71e9675cf096ca0ce45f6b7a8ce0849aa3e6ec Site: base solar forecast scale on produced energy (#31612)
  • 142c93a47b128c537b37cda5289e71c636a78ec8 Solarmax MAX.STORAGE: remove grid charging (#31589)
  • 8b243c2a2519c144ec81ee667b65366424bc13e7 Sponsor: remove Creem license key activation (#31824)
  • 09b0d9cb25b146934cd7e3ce5120d17f2422c2d0 Sponsor: trim pasted token in UI (#31841)
  • 7e564b058c7c6ac2c10318daf3216cf6e257ace2 SunSpec: curtailed false when limit is 100% (#31610)
  • 661af417a1005ca7120ead37e571651e1f5b7ab2 Tariffs: persist tariff values in 15min intervals (#31845)
  • 56bd94e7713774293089662e27348040e11f3b13 Tinkerforge WARP: correct capabilities per generation and variant (#31590)
  • 50e81a0726f1e2fd63f2f617f98b5006a9bb853d UI: darker dark mode, card layout, battery card polish (2) (#31593)
  • 9325ed4f9e95e7258abe5abe1202546a01379032 UI: update docs links to new notifications and external limit pages (#31628)
  • 75cb289a618fb9987e97c7a4e5906604131942c8 Zaptec: detect cable swap between vehicles via session identifier
  • 88b7621d90a9033b557f37816fafaaddb38fb07d Zaptec: propagate Enable errors other than 528 (#31803)
  • 00d6d9bc1dcc9e9b9ed3c7f44e550db60521609e fixes #31671 esphome dlms/slimmelezer-luxembourg: address sensors by name on firmware 2026.1+ (#31676)
  • 5b77c109c1779dda571a50c253d3bbf9eadc8bb8 octopus-it: drop unused ItAgreement.ID (GraphQL ID scalar is a string)
  • 8a42b0d74a294a6adb6a5479fb259804d2d6d99c open-meteo: use icon_seamless model (#31570)
  • fd88c8069b215edc228f3197f88d5931a003a1ee optimizer: flag suggestions actionable only when they change the current mode (#31693)
  • 04d4f4b0913b242c716c4858bebb4b891af68cd5 optimizer: only suggest actions for controllable batteries (#31715)
  • df437d536f52bb144c9f62d9a70f5dc452499490 plugin: cache http responses from devices that omit the Date header (#31675)
  • 623427e72841a80b892d47690a1c425029b4d898 plugin: watchdog must assume a reset write may have just happened after restart using defer (#31635)
  • c3f2b054ef3e9d6e3cdd34a5da03ee7240a505ba pv: reserve surplus for higher-priority loadpoints starting up (#31194) (#31684)
  • ad4324bb66db411fa697918d1f0008b28f79a9c9 sqlite: serialize access on a single connection (#30902)
  • 44bc075cd20c95e07ec550994476d97de95448c3 tariff: deprecate solarprognose tariff (service shut down) (#31770)

Bug Fixes 🐞

  • 68db0b7727901d8b89530b1c3c7f9a62b5d92762 Anker-solix-x1: fix energy scale (0.01 kWh/LSB) and revert PV changes (#31787)
  • 78e2ec9514b4921afb93b1e68444abfa4da8073a Config: fix loadpoint modal reusing previous charger on repeated add (#31614)
  • 226622893fa19801953db393170c1899f07f3892 EEBus: fix test cleanup regression breaking TestShipPairing (#31617)
  • 526d17ff4a74a02376a7c4c792bbd03ffa316ca6 Fix DoJSON error on empty-body 2xx response (#31801)
  • 0e62646cd8978dc316c3e3e9ecaa8f36d70b4341 Fix instantiating meters referenced only by circuits (#31788)
  • 4dc9775ea383a6cb61d6174b0003b95b3e4ae038 Fix vehicle mode reset on RFID re-identification of already-active vehicle (#31654)
  • 1074db922d5748c0b6b7510e047979938371ca2b Huawei SUN2000: fix curtailed false-positive at 100% feed-in limit (#31695)
  • 884956f3cf9e021f09258e3a0425a3ed7541c030 IBC HomeOne: fix battery SoC scale and grid meter word order (#31591)
  • 999bed78c5de5da79917d2b98fc1b357a82481a4 Loadpoint: fix coarse power-limited chargers never enable on fractional current (#31685)
  • bf4e6e8974116eb80a755e143ed8e70ce74c09a5 Loadpoint: fix minSoc config error on restart (#31819)
  • 8fe199dc268ebdec33f23377650a03bc0199e9f6 fix: prevent infeasible optimizer result from battery soc outside configured limits (#31821)
  • 5246b84f942a7916e7635442e51adf5a42afdbde meter/anker-solix-x1: fix wrong Total PV Generation register address (#31771)
  • 017d77d0be8511a5baab38d14902991a87b44e36 octopus-it: fix account query for Italy’s Kraken schema (#31656)
  • 3a2711cc4f817ace3414e4455daea0f34e199388 optimizer: fix pause suggestion for idle-but-enabled loadpoints (#31792)
  • 48606017b41ecd0fb3e3126ecbe8afe614d6ebbf server: fix TestSessionHandlerTimezoneFilter on UTC CI runners (#31688)