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

2026-08-16

Changelog

Breaking Changes 🚨

  • 45e781dac040cc5f86bd0bb484bbbb5f3fdd5a7c API: publish forecast as arrays with unix timestamps (BC) (#32391)
  • 6c11365bdac3eb7aba68e54342c2459787c0a569 EEBus: keep grid limits applied as the LPC/LPP spec requires (BC) (#32492)
  • 91512a77b4e976aef93e0cfb53f39e102716dec1 Goodwe: add curtailment (BC) (#32795)
  • dc143a6dc7dd75fc1e01524781ae9e746dc2c960 MQTT: publish one forecast message per key (BC) (#32716)
  • fdea008b0bf3bf8fe075278e09c10d9f89d3ca68 Powerwall: add Fleet API support (BC) (#32410)

New Features 💫

  • 46ff84ee3cd54dd8e96043e3cfd9eefcef34901f Add DWD (Bright Sky) temperature forecast (#32522)
  • b944059ecb11f3bb32e2b829950a6bbe52113d23 Add NEcharge Pro charger (OCPP 1.6J) (#31631)
  • 8e5322da22f96770cc0be13f3b4cb97b2c20b291 Add Socomec Countis E3x/E4x meter (#32775)
  • 63b7e0661243fc35f25d4137eccef4e8eba41ac6 Add Youliq One (#32429)
  • 5ab5cfc2efd2506c5202f032dc00c9bb43cbe46c Add admin api for deleting invalid metrics (#32666)
  • ecfb55f0e970ca4b8ff44fe09340c682db7b17a5 Add ferroamp meter (#32566)
  • d71e3ac8194a43e12cb0288078552628cb49119b Atmoce: add basic holdcharge on pre-01.01.00.28.15 firmware (#32537)
  • 7566a00543b120eff8c843a2e504b6fdfd184b40 Fronius Gen24: add PV curtailment support (#32823)
  • 828f4ab2f2b14600d46fa68eea1ac11f35908137 Fronius: add Argeno and Smart Meter IP meter templates (#32329)
  • ea80d136cabd1331747a0cb7b87421e051501d7c History UI: add prefetch and caching (#32699)
  • 7d4bb61636f13e4cffb42348624b1adf15979b3d Hoymiles AhoyDTU: add cache (#32652)
  • b301bb5c6153133abb91b103c8caef98a29c6085 Huawei EMMA: add curtailment (#32006)
  • 48aecbfecdd3d34e737fb4020293ffa0a1379416 Huawei SmartLogger: add curtailment (#32585)
  • 99a9c889480faad431ed0df695218ed2e5e6802f Huawei SmartLogger: add returnenergy to grid (#32650)
  • 2abf3ac43229214c05824860fdd9e8f8365e7e60 Meter (FoxESS H3): add battery control (#32302)
  • edae1cc3075bf7d61a9db94b7b92aedd07163eeb Meter (FoxESS H3-Pro/Smart): add battery control (#32301)
  • 8a4abd3e99ff7717ea606f895021812d9a69d6c0 Meter (Victron): add GX AC load meter template (#32411)
  • 0d024070b8f4c638aa16d85d8d7721f6563d3f12 OpenEMS: add cache (#32402)
  • d09a952cbabb8e3f14532adcf670f8cf7d53a4d1 Optimizer: add feasible status (#32632)
  • 3093539af5ad8763967101acb8e5f56f76506eee Optimizer: add static grid export limit (#32541)
  • 0ac70c7e39a63ad6a4888ce28aebf7533107b206 Powerwall: add dynamic battery parameters (#32742)
  • daa3df4b4ead65a25786b096c65139b589253755 Solplanet AI dongle: add battery control (#31908)
  • f47dd16e61a3ac76b882df6dc8d852f10d4d50f3 SunEnergyXT: add SunEnergyXT 500 template (#30852)
  • 84cf093d3dfec6e991a1e1940f7c6d1e858b7166 UI Customize: add white-label flags (logo, brand, website, email, phone) (#32582)
  • 1c22f749145b048bc01227bea1d61becb87321c0 Voltie: add the firmware 352 capabilities (#32783)
  • 58d1f870febdfbf6866ae015d8d1d4ba55017174 emsesp: add power envelope (#32772)
  • fb18f33d78b016eb983413ea4f8c4bbbd1f82078 tesla-ble: add finishtime (#32768)

Experimental Features 🧪

  • 070c16cb4f3a34cfa191183284af546f36c81a0f MCP: expose state, sessions and experimental endpoints (#32806)

Other Changes ☀️

  • c3f3384bfc842a35fb295ea14cbdb03451aa7ddf API: generate /api/state documentation from UI types (#32431)
  • 4b732512ff571405cc6f7aa8c372d6c51268861c Atmoce: dynamic parameters for capacity/maxchargepower/maxdischargepower (#32536)
  • 0ac212bcb19b3228e4d82ebceae516ee81586f7a Atmoce: remove battery curtailment (#32803)
  • f7e7ab887e6eca71b21631e060b865cee8a5620b Battery Boost: allow scaling to 3p while active (#32776)
  • 0df2610dcfcb81616661980c69d3fbfec8b26313 Bender: skip Mennekes 4You/4Business unsupported registers 730/740 (#32560)
  • fd72f8d25600ce2da2f0135cf0262d42d7d5d066 Cardata: delete obsolete streaming containers (#32314)
  • 545867b1e95314928f632a91765ffc343fb8296c Charger (FoxESS EVC, foxess-evc): remove broken session energy (#32371)
  • 9d0bc5a8654953755d3129fefd390110d6365307 Charging plan: make strategy settings discoverable (#32452)
  • 4465100a650ea6a2e34c766882fe7dfe2f407783 Config UI: allow disabling devices (#29455)
  • 0e58436ca4b23f0989fa9019be2b6e89cf7eca58 Config UI: mobile optimized section navigation (#32810)
  • ad9cd0a9a6eec4a7fcc1b3e28628a52ad363fd8a Config UI: prevent accidental modal close with unsaved changes (#32826)
  • 7b8e6e1f7459c2905441930fdba6ccbe25ead9d5 Config UI: show static grid export limit on hems card (#32634)
  • 3e2e0fa806299d0f1bfdc868de8e3193492d1067 Config UI: use auto unit for energy and power (#32754)
  • 63e18774b025c133343c2d401ee9be5cee670047 Deye: simplify curtailment scaling (#32798)
  • f4a8708bfbdab6aad9dd85ed3ef02ad7e17c2cd2 Docs: mention —disable-auth for local UI checks (#32414)
  • 5d75f212558847e2e986bf26a7a9fc6c1375d6ca Docs: point getState externalDocs to API State reference page (#32568)
  • fed3fb731c35702b968999064e9a9e37a4c66285 EEBus: abort run loop and limit assertion on context cancellation (#32494)
  • 4a878838e764d33102309873d990a438311a080e EEBus: state the limit to a controllable system on connect (#32491)
  • a938d45eed61e47aed6ab162e5546f3418779acc Forecast: match persisted solar history to the published curve (#32693)
  • 2bc3ed6d74a2af7c793bde161381c63e053e6f08 Fronius Solar API V1: cache GetPowerFlowRealtimeData requests (#32422)
  • 64233c8a1d63c62f6855fbf2d977bb53d03d4f99 HTTP: increase request timeout (#32542)
  • b46b5f38f421a6f253a89934b5ae6adf4beccdd6 Huawei SUN2000: clarify battery configuration in description (#32558)
  • 6007bb53564a9c706cbfd568323ac665f27e9b75 Issue agent: re-analyze when the reporter answers a triage question (#32763)
  • 3f87c763327b2059a76c5ae61615a17e329915be Loadpoint: consider load management in phase scaling (#32353)
  • f6a5b07dd61b5a3048cbb36a220e5063e1560ede Loadpoint: limit boost power to battery limits (#28178)
  • 4caddeec5d56ee2620cfcaea5e5150dfe4591fe8 Log: separate ring buffer budget for trace and higher levels (#32698)
  • 768c1c7f53d00a09f55c964ac69de4ac6c76856c OCPP tests: make the suite re-runnable in one binary (#32764)
  • 9eea54d8e42d9ef408bae2f9a9e2928b093483f0 Optimizer UI: migrate charts to echarts, remove chart.js (#32837)
  • 0bbf4dc5c75c8fb047fead62096feb90661ed05f Optimizer: consider planner precondition (late charging) (#32872)
  • a237f698d066b9eaabde88d714aeeb4153b67986 Optimizer: re-run on vehicle changes and include unmodeled loads (#32681)
  • 29137181f1b520dd733de538d47f739b982679a6 Optimizer: stop demanding charge once the vehicle is full (#32633)
  • 220106643087026cb36c116b5653421b200dd454 PV: reserve only min power for higher-priority loadpoints starting up (#32812)
  • addbda0c4353e5f836981f344c0e4fec51dccb4a Remote access: show tunnel connect errors, self-recover after offline boot (#32511)
  • 3ec61c18514326c09be4164daba2d83830b543ee Sessions: record added range per charging session (#32509)
  • b70ab2792806591dcb9b8eb4e3ca58008306221c Shelly: query return energy support once (#32644)
  • fc6fe3dce4edc3cf3b693a7fde90d23e007c2e99 Site: make battery discharge limit availability explicit (#32728)
  • 9ef7ea748a186e3ea6329c5b61810a8e7112baf0 Site: respect minSoc in maxDischargePower calculation (#32664)
  • 9a276f3ff51712163c371630af18340ac7b59d65 Skoda: expose welcomecharge parameter (#32636)
  • f571d502d6ab8ae9d80b39a41efd2c17beea7dc6 Soc: simplify estimator (#32495)
  • 7f2aee0725b1096a00c3c7d6a12592ea27730554 SolarMax SMT: drop the whole-kWh energy register (#32497)
  • aaaa28a42084199fc7ee52d24c0632d9739daab7 Solcast: keep forecast alive outside active hours (#32639)
  • d3d89500967eee3a6144ea81206295ed886761e2 Sonnenbatterie: cache repeated http status requests (#32797)
  • c0bb9a3fed31907cf9854fc2fd6d19e3e7f6d86f Sponsor: wait for network to settle during startup check (#32556)
  • 904285688d3cf62efdf16895add41e7ceb4de7a4 Tariff (Energy-Charts): cache forecast requests for 1h (#32800)
  • 27aca97bab947c7a782a1e116398812c027c3a50 Tasmota: mask password in error messages (#32659)
  • dbae12809424f03df822c325899aceaeb5d3b999 Templates: keep large numeric params parseable (#32528)
  • c1fac30171e25aa3fbea8e37173ffc433e76fb66 Tesla BLE: handle sleeping vehicles with vehicle-api charger (#32615)
  • 4314a64896fa98c840ff54408d6d7f73320b6471 UI Charts: show/hide tooltips on touch (#32613)
  • 950ca489e5ee7606f88ec4752d8fec6eb9415b5d UI Charts: swipe on charts to switch time range (#32614)
  • ffb91cc3357bc3fa2b3247d576d1425ba44b28ec UI Customize: email-based problem report flow for custom support email (#32584)
  • 136809f9b074cc550f587d295033856d33f46063 UI Sessions: migrate charts from Chart.js to ECharts (#32625)
  • ac5d384e39dd0e1faf745ace199111817b0a69a9 UI: allow vehicle charging limit below 20%, include api-set values (#32460)
  • 6fd294750916c1bca114478e962cdb5f3b2ccd39 UI: apply 5% floor to vehicle limit slider (#32462)
  • 43349e43fbfc94272b7e362a877d50a228f415ef UI: close the bottom bar more menu on a second tab click (#32435)
  • 7317b3437a45f325522c1dfab10e161956c0efd2 UI: hide chart tooltips on touch release (#32603)
  • c598efcab35e7bc89ea8777a61d5830411c40a7e UI: replace “none” with 100% for vehicle default charging limit (#32739)
  • dc1ac7c6dddc5a30b311c4769e940797589ef626 Vaillant: share token source across chargers on the same account (#32471)
  • 555ec3df36541a44caa4b535cba6658d8b6169ed Vehicle (Nissan Ariya/Micra): use time at reception instead of backend time (#32456)
  • 3c75a656519dcdf221dd108ff14a25a2410ae8f8 Viessmann: discover installation id and gateway serial (#32308)
  • 95fe54530807d55263022557bac4357f81ca4c70 Voltie: rewrite Modbus driver for API v1.1 (#32671)
  • 37fa159d47314fcd1ed6ba518ae69afa015a66ff cfos: expose temperature exceedance (#32514)
  • 29b0eabeed8dde4ff05ec9220b0a40dce4b58d29 charger/custom: support api.PhaseGetter via optional “getphases” field (#32756)
  • 19f750c417cab26969443fc30668a61b656140f2 core: keep limitSoc/limitEnergy on integrated device disconnect (#32623)
  • b29b49e3056ead3c99ff1f4711b2bb17083114b0 core: simplify site/optimizer integration (#32646)
  • 12fd62f415e4c3cdd16c069124e0620b35a2ea36 emsesp: use single cached bulk fetch to avoid firmware rate limiting (#32559)
  • f0c8c18ad2f2d5bc189ae7f3b6bcef4c4abc2d6d ioBroker: update installation and auth details (#32817)
  • 5e69a6226da49d9c6eeef7d2b190023e2f93dec6 pvnode: resample interval averages to power at slot start (#32604)
  • 124edaa32c6dab383cc43c2586b53ec239618c34 vw/eudataact: only use bcam threshold as target soc when care mode active (#32521)

Bug Fixes 🐞

  • c32ec2e325f6846a51fbd92d2ce087741f40994d Alpitronic HYC: fix status mapping and bundle register reads (#32260)
  • eaa49fceb388b04178c75254df7d50718159223b Alpitronic: update handling for power absorption and fix status logic (v3.1.0) (#32820)
  • 3970e198470ebc036fe418b60dca83a8d09b22c9 Atmoce: fix curtailed for battery (#32453)
  • c7c744f54e54368616ba5288958083b2bbb425da Charger (Plugchoice): fix CurrentPower reading 0 for externally started sessions (#32420)
  • bfba6bb2fc0e4bb0ede2c60f6eec57f1d39c678a Config UI: fix decimal input in numeric fields (#32458)
  • afac7ab56d5b84739bb1b33fecb61bbe2a4aedc9 Config UI: fix duration template param handling (#32572)
  • 44d910776f0017b069101d52af46f5cea699ff8d Dockerfile: fix vite+ installer failing in the ui build stage (#32406)
  • 4f169c58121dd55fe955034f37a40e3299a22c5a EEBus: fix stated limit duration expiring at half its length (#32856)
  • a4da257bb5dc66505fa93041dbc19922e3e31643 Fix rendering notifications from the state at event time (#32401)
  • f2c45b0d8499162ced31ad89258ebc4bcedef762 Huawei SmartLogger: fix PV energy yield (#32592)
  • bda5ad71db7be33afd2d661511c4791586f47c69 Kia/Hyundai EU: add OneApp/CCI login to fix new-login WAF block (#32868)
  • a4312e0a24e384b5a983855738142dc1f25a473c Meter (SolarEdge Hybrid): fix pv power (#32720)
  • 285b01f794a400b51577a37e324878a9bada5bcd Modbus: fix missing template delay and timeout defaults (#32694)
  • d719585f1f7c3fa6c3c03f9a9b16a9f618759d10 OCPP tests: fix panic on send on closed channel during charge point stop (#32757)
  • de29e57930518fca827e06d7bd7e7cd0a5c70c6b Sessions UI: fix grouped chart layout and legend styling (#32338)
  • b8130ea48d2022e1c15ce965fc95f46a9ffc22e8 Shelly: fix PV energy for devices with reverse power measurement enabled (#32550)
  • a4e5db50679892f65fd916c34caa001857639101 UI: fix auto power unit for negative values (#32813)
  • 0f265a04f3f97381e2620eb5ecf38e4b2f000ac9 UI: fix sessions table covering heading in app (#32830)
  • 6f8a6b8c36024afb29a3afe02cc1fa3976de3c55 core: fix nil pointer panic when deleting active grid meter (#32607)
  • 4635fe04ddd8eef71ad494c74a7923b939c99fc3 fix: modbus/read service cache key ignores read parameters (#32499)