Evcc is open source energiebeheersoftware die lokaal je laadpaal, zonnepanelen en stroomverbruik aanstuurt zonder afhankelijk te zijn van cloudservices. Het ondersteunt een groot aantal laadpalen, voertuigen en energiemeters en kan laden optimaliseren op basis van bijvoorbeeld zonne-energie of dynamische tarieven. Installatie is mogelijk op een Raspberry Pi, Docker, Linux, macOS of Windows, hoewel die laatste niet echt wordt aanbevolen. Versie 0.319.0 is uitgekomen en hier zijn de volgende veranderingen en verbeteringen in aangebracht:
Breaking ChangesNew Features
- 15d06c8 Huawei SmartLogger: remove battery (BC) (#35658)
- 18da91b Huawei: move curtailment to separate devices (BC) (#32451)
- 6f05b23 Optimizer: leave home battery its planned charge when vehicle follows pv surplus (BC) (#35841)
- 8467e10 Volvo Connected: OAuth2 migration (BC) (#35845)
Other Changes
- 31e8781 Add Mennekes Amtron 4Business 600 (Modbus TCP) (#35427)
- b08a93b Add Mennekes Amtron 4Business 600 (OCPP) (#35426)
- 40a0b15 Add OCI labels to Dockerfile (#35695)
- 63851ad Add Rheidon PC200 Pro (OCPP) (#35511)
- 9f0d5a4 Charger (FoxESS EVC): add mDNS discovery hint (#35891)
- 7a0dd41 Charger (Weidmüller): add MAC discovery hint (#35892)
- 7643087 Config UI: add nested device support (enables SG Ready relays, merged tariff) (#35407)
- 835225b Deye: add SUN-EVSE11K01/22K01 charger (#34202)
- a56206d EEBus: add Buderus and Bosch OHPCF heat pumps (#35936)
- 957a8e3 Energyflow: add "Others" row for unmetered home consumption (#35513)
- b51025e HEMS: add FNN template for Modbus I/O modules (#35580)
- 00bf334 HEMS: add FNN templates for Shelly i3 and i4 (#35842)
- f22b054 Home Assistant: add notification icon and color (#35332)
- e780fe7 HomeAssistant charger: add identify (#35572)
- 86acc79 Loadpoint: add energy counted after charge stop to session (#35559)
- 9404d82 Meter (FoxESS b Smart): add holdcharge battery mode (#35398)
- d75e4bc Optimizer: add socToWh helper (#35553)
- 38e1891 SAJ H2: add discovery hint (#35900)
- 943b17f SMA Hybrid: add battery charge energy (#35567)
- cf61975 Schrack i-CHARGE CION: add RFID identification (#35921)
- ad1ccf4 Sofar G3: add holdcharge battery mode (#35303)
- 6f3ae09 SofarSolar G3: add slave option to disable battery control (#35647)
- 7d274c7 Spotový Radar: add Slovakia (OKTE, EUR) (#35751)
- 40cc59c Tariff: add Localvolts (AU) (#35035)
- 5a78163 Tariffs: Add strømligning.dk tariff API template definition (#35767)
- 2a1ef94 Tariffs: add Primeo NetzDynamisch (#35883)
- 898c4f6 Tariffs: add Spotový Radar (CZ price forecast) (#35467)
- 12ce81c UI: add missing config.devices.extMeter translation (#35748)
Bug Fixes
- 7b0f3b7 ABL eMH: warn if charging release by group master is required (#35860)
- 96a578c AGENTS.md: template docs are generated by CI (#35882)
- d19524b Battery: warn if only one power limit is configured (#35675)
- 91fa61d CI PR labeler: restrict to existing labels (#35623)
- e1a5891 Cardata: keep newer stream data and age the REST refresh by message time (#35219)
- bb7be58 Cardata: read stream from local MQTT broker (optional) (#35211)
- ed48310 Cardata: use shared mqtt preset and stream source (#35233)
- 2294b9d Charging plan: lock strategy to cheapest while optimizer controls loadpoint (#35557)
- e56c5dc Circuit: reserve offered current for loadpoint during phase switch (#34847)
- 1c125cd CodeQL: align init and analyze action versions (#35674)
- 38ae402 Config UI: assign charging points and heaters to circuits inline (#35127)
- 0880587 Config/Energyflow: sort consumers alphabetically (#35433)
- 3aeb327 Config: require admin password for all script plugin sources (#35423)
- 12bdb04 DaheimLaden: accept raw-ASCII station id from replacement comm modules (#35440)
- 5498ea2 EEBus: support single-phase chargers and dynamic phase limits (#35133)
- b3f2bf5 EEBus: update spine-go and ship-go to current upstream dev (#35831)
- bcea759 EM2Go: integrate charge power for session energy (#35759)
- 8a4edf5 EU Data Act: prefer current battery_state_report.soc key for soc (#35293)
- 8e77086 EU Data Act: prefer current mileage.value key for odometer (#35294)
- e2656e3 EU Data Act: surface persistent update errors (#35186)
- 5b1b033 EU Data Act: template-defined soc key preference, Cupra prefers battery_level_HV (#35686)
- 4b61f45 EU Data Act: wait for Retry-After cooldown on rate limit (#35582)
- 77b3a5f Easee: reset stale session energy on plug-in (#35826)
- 223c48c EcoFlow Stream: detect leader among multiple serials (#35334)
- e7cb5ff Energy: keep hidden small flows in Sankey node totals (#35787)
- 23c4aae Energy: visual improvements, axis alignment (#35282)
- 8789a0e FoxESS b-Pro/Smart: don't overwrite Off-Grid (EPS) min SoC (#35628)
- 2f371eb FoxESS b: drop charge mode (#35937)
- 2b5cafe FoxESS b: hold via max discharge current instead of remote active power (#35639)
- f8d768f Genesis EU: sign OneApp/CCI auth calls with X-Fingerprint (#35652)
- 927ed3c Heating: demand predictor selector in loadpoint settings (#34342)
- 9027d8a Hoymiles OpenDTU: support basic auth (#35739)
- 2f30291 Huawei EMMA: always use modbus id 0 (#35930)
- 7ef3f3a Huawei SUN2000 Inverter: reduce default timeout (#35687)
- 811d77b Huawei SmartLogger: always use modbus id 0 (#35939)
- 8d3b434 Issue agent: cc device contributors on device issues (#35849)
- 1dbf07a Kia/Hyundai EU: send current Android Chrome User-Agent on OneApp login (#35324)
- 9890c9f Kostal Piko MP Plus: cache measurements request (#35404)
- 2e68d8a LG ESS: don't report feed-in energy as grid import (#35926)
- 20bb178 Link docs in the UI language for all translated locales (#35596)
- b51e0fc Loadpoint: adopt charger phases while disabled (#35383)
- aa8fc88 Loadpoint: drop solar share grid allowance while battery discharges below prioritySoc (#35064)
- 75493e6 Loadpoint: estimate remaining charge for plan goal while plan slot is active (#35266)
- f49c757 Loadpoint: keep min current on a full circuit when measuring below the offer (#35245)
- 6e5fac6 Loadpoint: keep welcome charge when switching phases on connect (#35222)
- e6092b3 Loadpoint: refresh session energy on shutdown (#35591)
- 3939abf Loadpoint: reset SoC estimator for new sessions (#35764)
- a7200ca Loadpoint: switch phases of a disabled charger only when enabling (#35189)
- 70ff31c Loadpoint: switch phases with unknown phase state in circuit fast charging (#35361)
- 7e99742 Loadpoint: update immediately on charger status change (#35697)
- 84a06ff MQTT: bound startup cleanup duration (#35310)
- 5141256 MQTT: fail listen on refused subscription (#35235)
- f08d11e Meter (FoxESS b): leave off-grid min SoC untouched (#35823)
- d741395 Meter (Huawei EMMA): document Modbus TCP requirements and battery control (#34182)
- 15792e6 Modbus: release shared connection for every registration (#35581)
- 519404a OCPP forwarder: read meterInterval under its mutex (#35555)
- 42f3125 OCPP forwarder: stop re-dial loop and back off on instant upstream drop (#34772)
- 6229dc7 OCPP forwarder: track idTag and transaction of relayed transactions (#35244)
- d63afec OCPP: fall back to key-based GetConfiguration on failure (#35207)
- e2f0762 OCPP: ignore zero energy register after non-zero total (#35853)
- 98ac23b OCPP: skip BootNotification wait when trigger is rejected (#35401)
- a0e76ee Onboarding: block tariff checklist items for legacy tariff configuration (#35265)
- 071e072 Onboarding: don't open wizard on partial state after restart (#35380)
- 5c0653b Onboarding: move skip to site step, password is mandatory (#35275)
- 682dc2b Optimizer: apply battery suggestion while a vehicle modelled as fixed demand charges (#35306)
- e224050 Optimizer: combine SoC projections into one chart (#35444)
- d003442 Optimizer: consider all vehicle plan goals within horizon (#35552)
- 2a17616 Optimizer: continue 100% soc plan while vehicle connected (#35854)
- 47a3d38 Optimizer: don't floor vehicle end of horizon value at export price (#35827)
- 8991e7c Optimizer: don't toggle phases inside 1p/3p gap (#35825)
- dfb4849 Optimizer: don't treat planner slot as deadline critical (#35648)
- 2997876 Optimizer: don't treat pv battery charging as grid charging (#35428)
- d217b8b Optimizer: estimate vehicle state from charged energy without soc (#35366)
- f43c1d4 Optimizer: group runtime state on site (#35928)
- 78ab829 Optimizer: hide explain for self-hosted optimizer (#35220)
- a09e85c Optimizer: hold battery for later higher-priced discharge (#35174)
- 8b51eca Optimizer: include HEMS consumption limit in grid import limit (#35323)
- 2dbdab0 Optimizer: include circuit max current in grid import limit (#35321)
- fbe38cb Optimizer: model planner schedule as fixed demand in battery-only mode (#35924)
- 2d74ae9 Optimizer: re-run on triggers during a running update (#35644)
- ebc7c50 Optimizer: relay external battery mode (#35234)
- d28954c Optimizer: send sponsor token to hosted optimizer only (#35238)
- 766668e Optimizer: skip run when solar forecast is unavailable (#35726)
- 6938363 Optimizer: split site_optimizer.go by responsibility (#35932)
- c4d4571 Optimizer: suggest the battery mode control applies (#35402)
- 010f4c1 Plugin (SunSpec): support integer points in float setter (#35646)
- 186e3a1 RCT: restore internal soc strategy when none saved (#35851)
- 151b39d Revert "Cardata: use shared mqtt preset and stream source" (#35279)
- 406c077 Revert "Templates: use evcc MQTT broker if mqtt host is empty" (#35280)
- e05d5bf Shelly Top AC: handle charger_insert work state (#35345)
- 03010d6 Site: keep last battery soc when one of several reads fails (#35302)
- e23a776 Site: on startup update charging loadpoints first (#35530)
- 6f1611f Site: remove duplicated BatteryGridDischargeActive publish (#35554)
- c1a0711 SlimmeLezer Luxembourg/V2: read import as energy and export as returnenergy (#35493)
- 83939b5 Solax: drop grid energy (not phase-balanced) (#35707)
- 6099281 Sponsor: renew hardware token in-process (#33816)
- 9bd918a Streamlined weather-model selection in Open-Meteo integrations (#35701)
- 755af53 SunSpec: retry device detection (#35649)
- eb8c8a7 Sungrow-hybrid: remove grid values not accessible via dongle (#35277)
- 18ad321 Tariff (Energinet): include current quarter-hour (#35396)
- 12a658a Tariff (Home Assistant): support sub-hourly solar forecast slots (#35342)
- a544c41 Tariff (Home Assistant): zero-fill missing solar forecast slots (#35571)
- 54456bf Tariff (fixed): don't overlap rates for zone boundaries in skipped DST hour (#35329)
- b273246 Tariff (fixed): keep zones on wall clock time on DST change days (#35319)
- d16de19 Tariff: update Energy Price Forecast API key links (#35565)
- 7a01471 Tariff: wait for retry interval after failed creation (#35320)
- 92bc6cd Tariffs: retry on HTTP 429 (#35898)
- 42e7b74 Templates: clarify battery max (dis)charge power help (#35548)
- 105da0e Templates: drop stale case-duplicate keys matching a param's spelling (#35873)
- 746ac28 Templates: render list param examples in unit tests (#35848)
- 1b3288c Templates: use evcc MQTT broker if mqtt host is empty (#35231)
- d419a5c Tesla BLE: treat sleeping vehicle as asleep, not as error (#35740)
- e692956 Tesla: fall back to vehicle_data without location when scope is missing (#35225)
- 572515a Tesla: treat proxy-wrapped complete/is_charging as charge enable success (#35470)
- 58d2f79 Tests: limit log lines in issue test to stay below URL limit (#35704)
- e1d1570 Tests: set sponsor subject under lock (#35925)
- d983b91 UI: ignore safe-area insets when embedded in an iframe (#35448)
- 04403e2 UI: improve startup and offline behavior (#35657)
- 4b02df4 UI: render markdown with marked instead of snarkdown (#35295)
- 65ef944 UI: revert intra-word underscore handling in markdown renderer (#35272)
- c395609 UI: use vehicle limits for charging phase indicators (#35692)
- d125891 Use grid helpers for current/power conversion (#35328)
- eab93a6 VW EU Data Act: bound each poll to 10s while catching up (#35594)
- e9e9187 Vaillant: unescape HTML entities in login form action (#35110)
- dfca71a Vehicle (EU Data Act): template-defined target soc keys (#35829)
- a72bb3c Vehicle: retry creating unavailable vehicle (#35534)
- 1755dc8 Victron VRM: convert hourly solar energy to power at the timestamp (#35240)
- 7a4bf99 Victron VRM: fetch solar forecast for up to 7 days (#35710)
- d1b62c2 Volvo Connected: support legacy dc- client ids until 2027-01-31 (#35865)
- c795038 Weishaupt: don't refresh power setpoint while disabled (#35703)
- 5077155 White-label: custom app icon and brand name in PWA manifest (#35551)
- de0f669 shortrfc3339: emit a quoted UTC timestamp from MarshalJSON (#35722)
- da4bb9e sonnenBatterie: hold via backup buffer to keep pv charging (#35880)
- 12169b7 sonnenBatterie: repeat charge setpoint while charging (#35391)
- 3fed3e2 OCPP: fix fractional currents for go-e/Fronius/Kathrein chargers (#35156)
- 3a456cb Config: fix legacy circuits modal docs link (#35422)
- 6575f7a RCT: fix grid charging when battery below min soc (#35312)
- bcd5f76 SMA Hybrid: fix battery power and energy (#35508)
- 182740e Sigenergy: fix grid energy registers (#35878)
- a76e819 Solax G2: fix 32-bit word order (#35590)
- 15f843d Tariff (Octopus DE): fix time-of-use slots shifting after DST change (#35353)
- 0a0a92b Telemetry: fix stuck charge upload on sites with many loadpoints (#35536)
- ddc18d0 Vehicle: fix getmaxcurrent example in user-defined template (#35347)
- 8fa585e Weidmüller: fix factory settings (#35123)
- c69db00 fix(eudataact): support Auth0 Universal Login Page for CUPRA/VW (#35385)
/i/2008090556.webp?f=imagenormal)
:strip_icc():strip_exif()/u/450289/crop60618703be69c_cropped.jpg?f=community)