0.317.0

evcc-io/evcc0.317.0Oct 9, 2026by andig

Upgrading?

AI Summary

This release features extensive new integrations (ABL SURSUM, Schneider MicroLogic, Roche REL261, Mennekes AMTRON), advanced battery modes (discharge/holdcharge for multiple inverters), and significant UI/UX updates including load management configuration and discovery tools, plus a robust issue agent.

Key Highlights

  • New integrations: ABL SURSUM, Schneider MicroLogic, Roche REL261, Mennekes AMTRON
  • Battery modes: Discharge and holdcharge for Solaredge Hybrid, FoxESS Avocado, RCT
  • Issue Agent: extensive automation for bug reports and duplicate detection
  • Config UI: Load management configuration
  • Discovery: Network scan and report command

Breaking Changes

  • Charger (Stiebel Eltron): split WPMsystem and WPM templates
  • FoxESS H3 Smart: hold via discharge current limit, fix write order
  • Solinteg: unify M-TEC, Wattsonic and Solinteg templates
  • Templates: empty param values keep the template default
  • Vehicle: remove finish time capability

New Features

  • Add ABL SURSUM EVCC controller
  • Add Gossen Metrawatt ENERGYMID (via MBMD)
  • Add Hyundai/Kia/Genesis Pleos EU Data Act api
  • Add Roche Energy REL261 battery
  • Add Schneider MicroLogic
  • Add enecess ecoMain
  • Add lekker dynamic tariff
  • FoxESS Avocado: add battery force discharge mode
  • Fronius Verto Plus: add curtail support
  • Keba UDP: add welcomecharge feature
  • Kia/Hyundai/Genesis EU: add Genesis to OneApp/CCI login
  • LG ThinQ: add water heater boost
  • Mennekes AMTRON 4You/4Business (OCPP): Add 1p3p capability
  • RCT: add discharge battery mode
  • Solaredge Hybrid: add discharge and holdcharge battery modes
  • Sungrow: add pv energy
  • Tariff (EPEX): add missing providers
  • Tariff: add remaining Energy Price Forecast markets
  • UI: add week-start indicator to month charts
  • Vehicle (Pleos): add welcomecharge
  • Vehicle (Tesla BLE): add odometer
  • meter: add Gossen Metrawatt ENERGYMID EM2289

Full Release Notes

## Changelog
### Breaking Changes 🚨
* a5a74bac42f5122a2f698501dfc2eef2be1f00bc Charger (Stiebel Eltron): split WPMsystem and WPM 3/3i templates (BC) (#34493)
* d77d924f5c728e1fad566e2d412cf5266a7051f4 FoxESS H3 Smart: hold via discharge current limit, fix write order (BC) (#34363)
* 4ca3d04242f13de3184a87678ccbb6f979c0a39a Solinteg: unify M-TEC, Wattsonic and Solinteg templates (BC) (#24975)
* bcc2060aae8795ada2a230df33f25a6a2e473fbf Templates: empty param values keep the template default (BC) (#34528)
* 6ad2f569822811ffc531b2206f62641e3bb2f5f5 Vehicle: remove finish time capability (BC) (#34132)
### New Features πŸ’«
* cbeed0120e2c24f39337da86748ba94791e2f80f Add ABL SURSUM EVCC controller (#33644)
* 9d131717e8f90bbaddb527cec6152e55af65175e Add Gossen Metrawatt ENERGYMID (via MBMD) (#34189)
* 0e4e9f186d4a680e9814d7397528176f7e6933cd Add Hyundai/Kia/Genesis Pleos EU Data Act api (#34362)
* 86937d4997aa1686f34a59c3f0658992dc38baa3 Add Roche Energy REL261 battery (#33987)
* e74f306f877e1dc5ef8314e8ef7bf395c108f3cf Add Schneider MicroLogic (#33770)
* 08985c1755cfb4077862d9f147ec3dbbd6f25d08 Add enecess ecoMain (#33717)
* 49ace36f9cdf383d19db50f45a95d43483b8f4f8 Add lekker dynamic tariff (#34333)
* 42cc3525bf8df708dcaf199dcd6165bd79aed545 Charger (Stiebel Eltron WPM): add note about heating / ISG configuration requirements (#34461)
* 8174e23e9ac7fb88732e0557aae5de4642a9246c Discovery: add command for network scan and report (#34376)
* 70f3999f5e21266b059a14e4ae673867e3de3c1c FoxESS Avocado: add battery force discharge mode (#33977)
* 0fe103e56aa0c156bd5f9652c4a6ae777a09a01d Fronius Verto Plus: add curtail support (#34411)
* ae20c49a6060700734a4b96479966e49759eb367 Issue agent: always apply an area label, re-add waiting for feedback after a reply (#34416)
* c1da72724f517f5f9eae177c6895c5c184d743b6 Issue report: add missing UI config values (#34201)
* e271ab0159dccb4c41b20dacee3fd8977464a61e Keba UDP: add welcomecharge feature (#34123)
* 3ae3411c003c1ec3101c970d381202518615e1a9 Kia/Hyundai/Genesis EU: add Genesis to OneApp/CCI login, clarify refresh_token docs (#33991)
* 0162a257c4acdaa89044c9dd890d087a03e1233c LG ThinQ: add water heater boost via target temperature (#33621)
* 7bf1e85b7698cd6d2a30d45cd542683b23185ec4 Mennekes AMTRON 4You/4Business (OCPP): Add 1p3p capability (#34373)
* 4db385719f6186fbe48e4c546a869904b4b7045b RCT: add discharge battery mode (#34107)
* e3c101da0c8831e2c6a8318e509e1d92dad0a913 Revert "Add ABL SURSUM EVCC controller (#33644)"
* 8b19105adb84176630e7fe0e90fd26274ddc548d Revert "meter: add Gossen Metrawatt ENERGYMID EM2289 (#34171)"
* 88dddc840d9305d600bdc90e177cf879ea96ef4e Sigenergy: add energy gateway option (#34094)
* 62301ef5ccd8de0b09749df45752a45fa717512e Solaredge Hybrid: add discharge and holdcharge battery modes (#32344)
* 7490b723a10e79a79a654cff128ae2efc5918748 Sungrow: add pv energy (#34152)
* 2e160daa83a960805116d47768dacc2b1b47baa4 Tariff (EPEX): add missing providers epexprijzen-nl (#34379)
* 25b6371189c6e177d61a5ba0a460617bc6ddd31a Tariff: add missing epexprijzen.be providers (#33969)
* e2bc3dc1a11f706a4b9d2f94d1c5aea72454312a Tariff: add remaining Energy Price Forecast markets (#34348)
* 5d20df4f2cbc7c4d5823911132456a60d93b3c1d Templates: add Zendure and openWB Pro discovery hints (#34377)
* 037be43559a18494dfcab9bccdee49a3543527bd UI: add week-start indicator to month charts (#34498)
* 6ca65caabae7e14c3f2dcb4f36e4e275346039b6 Vehicle (Pleos): add welcomecharge (#34491)
* e82acea19b6e97deaa9dab515e1c1ee99259caeb Vehicle (Tesla BLE): add odometer (#34480)
* 9dd69a79c5802aef2f21de31a335db614f9c56d3 bender-icc.yaml: Add Mennekes Amtron 4 You 400, split 11 and 22 kW Variants, correct rfid and 1p3p function (#34324)
* d39cdabda204bdc417b82adabf7290afd7bf5249 meter: add Gossen Metrawatt ENERGYMID EM2289 (#34171)
### Other Changes β˜€οΈ
* ba510f1c02539891254bddb702e920456f6cb874 About: show full hostname for custom whitelabel website (#34100)
* 6e8cd7d657f9282388365019a927d213a4a7cffc Backport command: create the release branch with the deploy token (#34428)
* 69b9da5f3a188c9da9e47db6af57969bdb622279 Battery boost: keep boosted power from other loadpoints (#33769)
* 4881b701ed69d05f1ce94d560329584dac62d016 Battery: combine limitsoc with batterymode, Solis holds at current soc (#33623)
* b4ffb446d6399a4c154a7c036a8d721c2f0fcc21 Battery: end battery-supported charging on grid import (#34128)
* 5a6e51b3a0c4534b50f59cc478a8690c7129a8f2 Battery: re-run optimizer when battery settings/grid charge limit changes (#34330)
* 6268a13ad8cbd9c11837817ecffd14b9ef3830f2 Battery: release to normal when requested mode is unsupported (#33861)
* 9702de93ac20861a0e9418fc291fcb5640563c4d Bender: skip unsupported register 720 on Mennekes 4You/4Business (#34472)
* 9202813809a3fed769693a9417849f735b340642 Config UI: Load management configuration via UI (#33077)
* e8dd245f939968efea466d1f816f7ea19562d751 Config UI: flag disabled loadpoints referencing an unknown circuit (#34257)
* 36bad45d31e0296dbcfd2bc8c1f4214ada86d8e2 Config UI: site country setting and grid discharge confirmation (#34178)
* e6e333ab5fd7aae15c00d1bd7cb4658d2e1d4561 Config: redact secrets in custom device yaml for bug reports (#33948)
* a2ec4af112d77087c8ba1971e25ea6c4b2726238 Config: retry meter reads in device status (#34246)
* aa74aeb1f914e55b479427cf6e65f415d3266759 Config: skip admin password for unchanged script configs (#34119)
* 4232e2498742a8972e7e78305c01fb066dbb9122 Config: suggest local network hosts for device templates (#34244)
* fd3a6b79d3d095795ba4903e2a8597387d9ac09a Database: respond before shutdown on restore/reset (#34285)
* 9922a1d77c02c3b17b10a561e5f62aa6f95923ea Discovery: link collection issue, recognize more devices (#34336)
* f4edd3b851b0ac098b9b921fec32d3157114d771 Discovery: report only devices with host param (#34375)
* a0a06606af88ecd92a094a5faf33d44adc26f087 EEBus: persist full-list writes to the remote cache (#34125)
* daacfa7110fe97180d99bdf508af25238dc58760 EEBus: surface ship-go handshake, transport and mdns discovery debug lines (#34191)
* 824b671ebdb4e185da99165c7a246db646f3ef7a EU Data Act: reduce requests (#34042)
* 8609d05057243ef09f7b039dc47deef2b2810588 EU Data Act: serialize concurrent logins (#34492)
* fb838188e97657820a8de98c2a2bc8ac6a9b1e85 EUDA: change login flow to speedup login (#34313)
* 3f62e6c0c7c64bcddb907e86d2ad158c2d99a964 Fixes: Optimize page is slow with multi-day horizons   (#34096)
* 18d557b7c75154661a20cffdfae64b8acf1ace7c Fritz: renew existing session id before full re-login (#34229)
* 17fa21c3a3c5e63f40dcb5b82ab5d0d84c17f1e8 Fronius Ohmpilot: cache SolarAPI response (#33974)
* 1dbdad86443e7ec000f48fac6fe32c3bd72abd46 Go plugin: compile script once instead of evaluating per call (#34456)
* cee08c344fec8a8cca319a5f2a8bfd4303274efb GoodWe WiFi ET: decode grid power as int16 (#34021)
* 697b34f4bc4c3a3806b88a60739a2a8ed7b7ce6d Heating: use active phases for current to power conversion (#34402)
* a8a07566ca5b9b0392621fcaa3430ed8e068158b HomeAssistant meter: support plugin-based battery SoC limits (#33863)
* 7450be7120f3fd37ae38ab9af620df4aba62dbe4 Issue agent: PR labeler applies bug only for issues typed Bug (#34406)
* dd834a375a156dec722c5bc05b558936742dd672 Issue agent: agent job never pushes, open-pr job does from a fresh checkout (#34365)
* c55889db6b89d5fb88937d94acf0f9a1d514b657 Issue agent: close incomplete bug reports (#34303)
* 6930724503f699748b12a17b599a43d9379ce706 Issue agent: close reports that kept the UI paste placeholder (#34400)
* bf217c16497c52dd71763e417e257a877453e5e6 Issue agent: grant pull-requests write to the re-analyze caller (#34382)
* ce880ed6cf304774cc0730ac7cca84edb88164da Issue agent: read referenced discussions (#34399)
* c9af67cb31ecd4839f26b64cec876c7f64164f36 Issue agent: reopen duplicates when the reporter replies (#34366)
* 1610138dbfd8eea7bb4f459014b6929f2056b5eb Issue agent: search similar issues, close duplicates (#34361)
* 007582ddefc950264b493d21bf604ef5bb23e154 Loadpoint: accept status C while disabled for continuous devices (#34385)
* f2622335d7917fe4d821e982b1071a8e9fd4481e Loadpoint: apply default mode on boot for UI-configured loadpoints (#34160)
* c14e9eb6d2c925eafda6e1d9028a4327174ea43f Loadpoint: drop to min current before scaling up phases (#34457)
* 40c897372279b671e108b44b8d657b1c3b58d3d8 Loadpoint: keep a vehicle assigned while detection by status is running (#34237)
* 9c18d65e312195b15828184b37441a12811e7fe8 Loadpoint: keep pv enable timer running with battery start (#34369)
* cd096d14153888f0ac9718d8c9a039f1b4fbc904 Loadpoint: larger solar share slider touch target (#34117)
* 77765726f6780f613ec36ebd314ad3638bcee8e4 Loadpoints UI: close always-charge popover when swiping carousel (#34242)
* 9d8a05b5758b29d9d48a9190353923ea25dff604 Loadpoints UI: re-snap carousel after layout changes - #34029
* c08529032bc5037a886c3cba60ace10b04800a89 Log price limits with three decimals (#34455)
* 3370287baea8ccb38c97ef2c743a6c13a2c8f537 Log: parse the line header without regexp (#34320)
* d0763ede3e692491de2cef3056ca39258c3e180f Meter (Solis): drop coarse pv energy register (#34260)
* 643b7acb45f52a02216eb5103a7b12794b698471 Meter (Sungrow hybrid): drop calculated phase currents (#34294)
* ff20a359f86d1a47fb29b1c9be40f8e318858a91 Metrics: do not rebase energy baseline on a lower meter total (#34218)
* 551d98c3370a1e44ee7ae52e68499bf164200678 Mode: don't activate Smart just from opening the Always charge dropdown (#34264)
* 77e869cd1949e2c93f4854a85d30c7d6fda76c16 MySkoda: detect saved location by current position profile presence (#34015)
* b6f79837b69e0b17b4eac87afdf00dff345c00e6 MySkoda: use plug connection state when charging state is omitted (#34124)
* fbc63f4b18cf50cb57adb97767109701731ad132 New Energy UI: historical data, analysis, savings (#33989)
* 81306a0e181d9c6cc34aebfae2b58bea1509c10a OCPP: clear stale transaction state on reboot (#33909)
* 9b6c028137a1528f87ccb07acc080b7be93b788e OCPP: measure meter value freshness on receipt instead of charger timestamp (#34288)
* 76da944ef402ae624aa7dd15dfe7d33711d82dae OCPP: use active phases for watts-based charging power (#34121)
* 0e0a9d28c82c0ee531484718564096c4c330b4a5 Optimizer: default battery SMax to capacity without soc limits (#34129)
* 6f9b6a0be3a0f5793f132bb04f89158fd2cf74b1 Optimizer: drop near-term PV forecast correction (#34464)
* 9dd315cc843481d714fa7cb96397f931d71fcb54 Optimizer: include Continuous heating loadpoints in demand breakdown when in ModeOff (#34262)
* 53e4bd87cdf0e62e1017c2c9db689bfc211046c6 Optimizer: treat missing feed-in tariff as zero (#34544)
* d935d618fff09d92af79f65b1ece0b1f29691aa2 Optimizer: use planner tariff for battery grid charge limit (#34532)
* 399c6bbbb87cb7b00288e0e544f279c71ca5ee57 Phases: allow 1p scale-down while climater keep-alive suppresses disable (#34499)
* 8e45824ddb945164e624e0c15cefc885f3ec69c3 Porsche: Porsche Connect vehicle with in-browser login (#31232)
* 1b753e4ef757220e61f4bdf4177100dae9fcb727 Revert "chore: upgrade modules"
* 8ea1b3f941c5be60211a3019d9158c06fee3762f SENEC.Connect: select system by serial number (#34167)
* acca76b8357b54806ddec5a8ab8e158947fcbff7 Schneider: support Charge Pro via FC04/FC16 (#33872) (#34165)
* 299b688e1f6872b3590c3526e4d433fdbe01a6a1 Shutdown: floor the wait for shutdown hooks (#34276)
* 0c87abe657cba074328d7538abe6c8f4047269f3 Site/Loadpoint: restore debug logging for demand predictors (#34525)
* 0e3ddf95a10dafd837942c2d33bb3ae9c3311a13 Solcast: don't waste quota during off-hours (#33771)
* 979d95099c3d763510c6294ec0524d4fd3883956 Subaru: retry incomplete status payloads with timeout (#33477)
* 8d476c513258df977262b4156d6a28d2a437b915 SunSpec: report not-implemented sentinel as ErrNotAvailable instead of zero (#34217)
* cee068c581b160e01d897444dc79c49c214f8ed4 Sungrow hybrid: use shared block reads (#34164)
* e271f1c2863a03436c641c033340746d1a345303 Tariff (EKZ, Green Grid Compass, DWD): compute API windows in UTC (#34378)
* 3a0ef0c366442b62aee0f21ab8487c38000eeaaa Tariff (ESIOS): apply Canarias prices per local hour (#34384)
* 977517c1992072d4e6f1710e6f3057a46c697c03 Tariff (Groupe E): compute API window in UTC (#34180)
* 52ab8085be2837507560ed3f5086ee57587a7866 Tariff (Octopus DE): redact credentials in trace log (#34540)
* f89d43d1163e2fd12c1f581426a3cb24e037e2ad Tariff: average Energy Price Forecast at source (#34486)
* 56486d2e385bd5094c2600752a40da2fa4f03e7a Tariff: keep cached slots leading up to a fresh tariff's first fetch (#34051)
* 0e4a79ae73b348541f2ab5ad6bdcb95c0236edd7 Tariff: optimize formula evaluation by compiling at init (#33780)
* 211dd26f953d40ed97c2c4b71d8c572315aaf793 Tariff: support multi-statement formulas again (#34485)
* d433f76116a4cc12730e6a9f6abe5bafd9a2097c Templates: allow caveats on product level (#34162)
* e5b8e602d595970f725e5bd2c0652fcf9e688ff2 Templates: expose modbus delay and timeout for hand-rolled connections (#33947)
* 0e1f7cbc5e8d6f635cebf8a0155d11213dbdbb65 Templates: validate modbus host like the plain host param (#34381)
* 0cd99593cb13e74d093a65a3b682d953799d2626 Tesla: treat any 408 from the Fleet API as asleep (#34353)
* 077c093e5fdc375a9f2b1bc360b4d7ba38eaae46 Tests: search log at info level so the startup line stays in the window (#34215)
* a4c60e3e81602b5d42466dd70d239902cf5152df Tests: use local MQTT broker in config-mqtt spec (#34278)
* 1f0023b07f3ff7c5fb1c6d1306ee6b44d4d12cca Tests: wait for always charge once state before toggling off (#34273)
* 5f84dfa4277cb34336a6bb9dbf433f2a4aa61f47 Tests: wait for modal shown in aux and battery specs (#34279)
* c2db48e9d493dbb2413c97cdf8a5c847bf7baed3 Toyota: use phevUsableBatteryLevel for PHEV vehicles (#34196)
* d94e5669ef70e56d72a2fd034e3c19ab1615d397 UI (Energy): unify source labels between stat block and modal (#34508)
* b5b8a7f56b5aafe17051d635a8e4dc03bedd7243 UI: keep Safari vendor prefixes in production CSS (#34516)
* 0972249b9242fc94b11493e7096d080604a353e6 UI: retry websocket quickly after connection loss (#34035)
* e76574aea6a7a0d114bd940e0b099a695199f781 UI: show Forecast tab before Energy (#34570)
* eea26a7391f253dcc2aedd650919ceb154f23663 UI: show time picker icon on touch devices (#34247)
* 0391b406a6eecd276a7a9499f5c5a095b508f508 UI: show vehicle limit in status independent of connection status (#34520)
* 20312ac9de8ec4e333baf369148a0cfa5ef6993e UI: unify battery mode icons (#33901)
* a35035a861d613ab6650cb9bf96623a925355162 Vehicle (Tesla BLE): expose climater state (#34250)
* 2c459aac7ac0d441b41f6983267cbf49f5e6aa7e WARP: wipe stale RFID data (#34052)
* 40379bf04985ff1adf260640597ded23d706b52e Weishaupt: derive status from power setpoint (#34134)
* cdb09406e9695f765e2ed2417973970d2d02b3fb Weishaupt: remove power reading from unlisted register 33126 (#34251)
* e625d6bead45e87ddc5ad60aefee915244573880 Zaptec: detect stand-alone mode (#34184)
* b6f6e85dbe3d58a5e59e39d5228dc6dab5285d6d Zaptec: ignore command rejection code 520 (#34506)
* a344f74f319d25b902b1276962403b2aaca355af minor
* b88d5d9fdb252c6de93172d7c24cc2d7c9dadcce ocpp-mennekes-4you.yaml: Full name and OCPP to clarify (#34327)
* 17a86fc880163e4b4ede58ac77e81ab65519b7d2 sqlite: enable WAL mode (#30903)
* 05ba977a1050fdf74bb3ef402ee43ec8d1c920fc sqlite: use a connection pool with WAL (#34495)
### Bug Fixes 🐞
* 6e8887de1d4be03022b3cdff2aa8f7b42d6be9ba Config UI: fix disabling messenger devices (#34090)
* 7f6214109482a03c3bda013d4c1519e3231e330a E3/DC: fix charge and hold charge battery modes (#33721)
* 4d8139b425842775fa2a1200aca8a4543b6471a1 Loadpoints UI: fix inactive card on open without lp param (#34144)
* 50e4296af315a4ad47afd54eac1aff49e3b3619a Revert "Easee: fix charging stop on scale down (#29464)" (#33964)
* a6bae25572e1dace5fd48f0497809624480df604 Sungrow iHM: fix feed-in limitation on/off detection (0x55/0xAA) (#33776)
* 19c8e07c6cdda34fada0b96ddcee2b139dea2125 Sungrow iHM: fix voltage registers and use block reads (#34174)
* 4f470a9df5e4f152b5e3ad75c21ffc4d52fc3aa2 Tests: fix flaky bool service datalist assertion (#34274)
* d6f04686661081cb703beb4d13e3fc81da5aea05 fix: sessions legend grid overflowing card on long labels (#33944)

Related Repositories