0.314.0

evcc-io/evcc0.314.0Aug 16, 2026by andig

AI Summary

A significant release introducing numerous new features and breaking changes, particularly around API forecasts, EEBus grid limits, Goodwe curtailment, Powerwall Fleet API, and various hardware support (NEcharge, Socomec, Youliq, Ferroamp, etc.).

Key Highlights

  • API updates: Publish forecast as arrays with Unix timestamps.
  • EEBus: Keep grid limits applied as the LPC/LPP spec requires.
  • New Hardware Support: NEcharge Pro charger, Socomec Countis meter, Youliq One, Ferroamp meter.
  • Powerwall: Fleet API support and dynamic battery parameters.
  • Curbailment: Added to Goodwe, Fronius Gen24, Huawei EMMA/SmartLogger.

Breaking Changes

  • API: publish forecast as arrays with unix timestamps
  • EEBus: keep grid limits applied as the LPC/LPP spec requires
  • Goodwe: add curtailment
  • MQTT: publish one forecast message per key
  • Powerwall: add Fleet API support

New Features

  • Add DWD (Bright Sky) temperature forecast
  • Add NEcharge Pro charger (OCPP 1.6J)
  • Add Socomec Countis E3x/E4x meter
  • Add Youliq One
  • Add ferroamp meter
  • Fronius Gen24: add PV curtailment support
  • Fronius: add Argeno and Smart Meter IP meter templates
  • History UI: add prefetch and caching
  • Huawei SmartLogger: add curtailment and returnenergy to grid
  • Meter (FoxESS H3): add battery control
  • Meter (Victron): add GX AC load meter template
  • Optimizer: add feasible status and static grid export limit
  • UI Customize: add white-label flags

Full Release Notes

## 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)