Evcc is open source energiebeheersoftware dat 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.316.0 is uitgekomen en hier zijn de volgende veranderingen en verbeteringen in aangebracht:
Breaking ChangesNew Features
- 9490029 Home Assistant charger: make milliamp current control optional (BC) (#33858)
- ddbc8f3 Home Assistant: drop battery minsoc/maxsoc preset (BC) (#33707)
- 54403e6 Mode Redesign: rename pv to smart, replace minpv with always charge (BC) (#32490)
- 8160673 Tariffs: reject slots shorter than 15min (BC) (#33865)
- db12193 Templates: move phases1p3p param to defaults.yaml (BC) (#33588)
- 064e585 Zendure Solarflow: consolidate battery templates (BC) (#33505)
Other Changes
- c591a67 Add battery forced discharge to grid mode (feed-in arbitrage) (#31995)
- 515cb14 Anker Solarbank Max AC: add discharge (#32365)
- 5ece95b Atmoce: add battery discharge (#33437)
- 2791792 EcoFlow Stream: add battery control (#33433)
- cc3feb4 Home Assistant: add holdcharge and discharge battery modes (#33841)
- 61ddada Hoymiles OpenDTU: add cache (#33669)
- 0daa1fe Huawei SUN2000: add force-discharge (#32307)
- 4bccfd3 Issue page: add copy-as-markdown button and menu shortcut (#33699)
- 41fc386 Kostal Plenticore: add forced discharge mode (#32396)
- e5611ad Loadpoint: add fast charging phase upscale delay (#28174)
- 3938f43 Loadpoint: add solar share setting (#32104)
- 77e8284 Meter (Deye): add HTTP micro inverter logger template (#33485)
- c2683e2 Meter: add Solarman V5 transport and Deye micro inverter template (#33502)
- 8dd67f1 Meter: add verifybatterymodes command (#33857)
- 8fca47d Polestar: add official Data Portal M2M API (#33814)
- 7c2f4c5 Script plugin: add float setter (#33426)
- 825573b Spelsberg: add meter capability (#33823)
- cf0fd9f Sungrow: add holdcharge battery mode (#32932)
- 03d12af Tariff: add epexprijzen-be template for Belgium (#33762)
- 51a95cb Tariffs: add spotovaelektrina.cz (#33581)
- 691c77e Tesla BLE: add charged energy (#33585)
- c28a1f6 UI: add missing German date format translations (#33347)
- 68d2f49 Vehicle: add LiveWire S2 motorcycle (#33683)
- c161933 Viessmann: add power and temperature (#32219)
- e11cdef Weishaupt: add heat pump (Modbus TCP) (#33193)
- b79e469 Zendure Solarflow: add forced discharge mode (#33801)
- 50572d9 go-e: add status reason for access control (#33661)
- c140fc8 my-PV HEA: add 5s heartbeat to rewrite active relays (#33626)
- cca3f09 my-PV: add HEA THOR 3.5 and 9.0 support (#33500)
Bug Fixes
- c9fa4d9 API: raise the jq query limit to 8k (#33394)
- 87f7613 Battery UI: make new battery page default, remove classic layout (#33434)
- 8796395 Battery: report supported modes per device (#32648)
- bab3970 Charger (Stiebel Eltron WPM): optional inverter power (#33367)
- 9582e96 Chargers: use verify enabled helper (#33811)
- 3e0464e Charging plan: disable optimization when late charging covers everything (#33422)
- f7c4852 Charts: consistent y-axis unit scaling for small values (#33334)
- b34a989 Config UI Loadpoint: rework min/max current inputs (#33418)
- a1a4b2c Config UI: clarify battery soc limit help texts (#33414)
- 50345cd Config UI: improve modal slide transitions (#33833)
- 212dd03 Config UI: raise device test timeout to 15s (#33118)
- 296f6f1 Config UI: untranslated 'continuous' in device card and test result (#33487)
- 53061f7 Config UI: usage-specific energy labels for device tags (#33402)
- e7a8e4d EEBus: capture vehicle identification from update event (#33458)
- c04cf61 EEBus: expose LPC and LPP capabilities only when supported (#33525)
- 32c86ab EEBus: make milli amp current control optional (#33739)
- 3d38f43 EEBus: replay use case support to devices registering after discovery (#33423)
- 0fd6548 EEBus: replay use case support to devices registering after discovery (#33430)
- c90b7d0 EEBus: wait for use case data before returning the device (#33386)
- 535e655 Energy demand profile: improve prediction accuracy for heating loadpoints (#28232)
- db2841e Ghost (Elli): re-login when the REST API rejects the token (#33785)
- 266fe27 HEMS Pro: also probe I2C bus 0 for RTC (#33639)
- 078efa1 HTTP digest: accept X-WWW-Authenticate challenge header (#33793)
- eddfca3 History: remove energy netting, unify bidirectional detection (#33338)
- a611309 Keba modbus: switch back to 1p on disable (#32665)
- a0a96ef Keep access and refresh tokens out of the logs (#33339)
- 556d874 Loadpoint: derive remaining energy and duration from energy limit (#33637)
- a3490cd Loadpoint: do not send zero power values to estimator (#33846)
- 0c6250e Loadpoint: don't fail setup when the charger has lost phase switching (#33619)
- 2e6873c Loadpoint: honor configured phases in minimum active phases (#33462)
- 197043e Loadpoint: ignore dimmer not available (#33486)
- 4e3a60e Loadpoint: log when circuit limit falls below min current (#33671)
- 219cdf1 Loadpoint: recompute charge plan immediately on vehicle-side plan changes (#33467)
- a306d05 Loadpoint: resolve charge meter capabilities once at boot (#33672)
- ef937f4 Loadpoint: resume charging during phase switch (#33552)
- efa9bf6 Loadpoint: seed unknown phases from charger on startup (#33701)
- 10c5d48 Loadpoint: test that persisted settings remain valid config (#33450)
- fc15910 Loadpoint: treat alwaysCharge as dynamic config (#33444)
- d15b1dc MQTT: sanitize map keys used as topic levels (#33819)
- 4e129aa Make diagnostics more discoverable (2) (#33734)
- 39f01db Marstek Venus A/D: derive battery power from AC power minus MPPT (#33473)
- f73c2bd Merge remote-tracking branch 'origin/master'
- 2034523 Merge remote-tracking branch 'origin/master'
- 6512758 Merge remote-tracking branch 'origin/master'
- 5323314 Merge remote-tracking branch 'origin/master'
- 33ab916 Merge remote-tracking branch 'origin/master'
- 2ea2154 Merge remote-tracking branch 'origin/master'
- acd0087 Merge remote-tracking branch 'origin/master'
- 54aa6ab Merge remote-tracking branch 'origin/master'
- 4a335df Merge remote-tracking branch 'origin/master'
- 1be861a Merge remote-tracking branch 'origin/master'
- 23286bd Merge remote-tracking branch 'weblate/master'
- 0df8641 Meter: default battery minsoc/maxsoc to 0/100 (#33589)
- 945ecf7 Modbus proxy: keep default device port after serial round-trip (#33744)
- 4f4f3ea Mode UI: smart mode label and popover alignment (#33479)
- 31d0745 MySkoda: prefer charge limit of current saved location (#33612)
- 75b5b7c MyŠkoda: expose welcomecharge (#33570)
- a577637 NIU E-Scooter: use vehicle-common preset (#33945)
- 0f9c74c NRGkick Connect: write current and enable state in a single request (#33675)
- 15b5744 Nordpool tariff: cache day-ahead price requests (#33655)
- a83118d OAuth: persistent token source (#33370)
- 871817b OCPP: allow transaction-specific charging profiles (#33512)
- 11ffab1 OCPP: keep live meter reading when duplicate measurand contexts collide (#33257)
- a779067 Open-Meteo: cache forecast requests short-term (#33797)
- 0a3cc0a OpenEVSE: use websocket for state and claims API for control (#33539)
- 9912bcb Oprimizer: align battery forecast times to slot boundaries (#33385)
- 275ad68 Optimizer: apply active result slot (#33501)
- b08459e Optimizer: break down household demand into individual profiles (#33749)
- 5e649cb Optimizer: configurable per-slot percentile for the energy demand profiles (#33700)
- 819fb94 Optimizer: empty state, menu entry when enabled, feedback link (#33750)
- b46b2e6 Optimizer: floor end of horizon battery value at export price (#33746)
- dd62baa Optimizer: only offer grid discharge for batteries with discharge mode (#33860)
- 60df102 Optimizer: reapply last solve to newer slots from the control cycle (#33583)
- 3d104bb Optimizer: report loadpoint charging state (#33802)
- 035853d Optimizer: treat unknown battery mode as normal for suggestions (#33698)
- e91c3db Planner: clarify precondition log message (#33400)
- 97e47b5 Playwright: follow Shelly Pro 3EM product rename
- 103aa33 Remote Access UI: don't show toast for proxy errors (#33514)
- 365adff Remote access: cache verified basic-auth credentials (#33593)
- a8d5832 Revert "CI: disable Claude workflows (#33507)"
- 2dc2068 Revert "EEBus: replay use case support to devices registering after discovery (#33423)"
- a3a3441 Revert "ui: hide temperature limit controls for SGReady devices" (#33840)
- 9efc5a9 Shelly: decorate phase readings only when the device meters them (#33706)
- 0ceb428 Site: hide config-disabled loadpoints in energy flow (#33714)
- 5bcfd7f Smart-hello: retry once with a fresh login when the api rejects the token (#33369)
- 0eb008c Solis Hybrid S: require minsoc and maxsoc for active battery control (#33580)
- 0c94a0a Sponsor: accept temp token from hardware check (#33631)
- f3edc12 Subaru vehicle: handle range unit conversion (#33453)
- 7fec24f Tariff (DWD, ESIOS): evaluate forecast dates per request (#33601)
- a120fb5 Tariff (fixed): drop zero-length slot on dst spring forward (#33869)
- e78e382 Tariff: don't serve cached rates that have entirely elapsed (#33904)
- f8a2b2a Tariff: keep serving cached rates and retry while tariff unavailable (#33880)
- a683ffd Tariff: retry creating unavailable tariff (#33894)
- 592f39c Templates: pass bool params as real booleans (#33153)
- 5a3c4d1 Translated using Weblate (Catalan)
- 4f8a5c1 Translated using Weblate (Danish)
- 2a890b5 Translated using Weblate (Dutch)
- ae8841b Translated using Weblate (Finnish)
- c5338fa Translated using Weblate (Latvian)
- 252240c Translated using Weblate (Lithuanian)
- 48fb60f Translated using Weblate (Russian)
- 0c65292 Translated using Weblate (Swedish)
- de0faa4 Translated using Weblate (Turkish)
- f63cd70 UI: improve chart line readability (#33410)
- be68265 UI: place chart tooltips beside the pointer (#33411)
- b5dfdee Use official vite+ image for Devcontainer (#33564)
- 7f0bfb4 Vehicle API: handle TeslaMate sleeping response (#33560)
- 93dbcb4 Voltie: detect phase switching from the capability register (#33574)
- d470c99 Zaptec: do not offer phase switching in passive mode (#33447)
- 84e1e59 Zaptec: don't expose phase switching for Go (#33484)
- 890b00f Zaptec: ignore empty session identifier in connection duration (#33720)
- a7a3ad9 Zendure Solarflow: read charge setpoint from device (#33803)
- c6dae0b Zendure Solarflow: suggest battery serial via HTTP (#33510)
- 8af06cf aa55 udp: reject responses whose length does not match the request (#33696)
- 584977e eebus-ohpcf: fail setup when the device does not support OHPCF (#33468)
- ea60ae3 fox-ess-b-smart: hold via On-Grid SoC reserve instead of Feed-in First (#33537)
- 9893252 my-PV HEA: derive heartbeat interval from power timeout register (#33628)
- 7320785 ui: hide temperature limit controls for SGReady devices (#33754)
- fe065ee EEBus: fix ship-go connection backoff reset (#33384)
- bb9491d Huawei EMMA: fix grid import/export energy registers (#33432)
- 432d318 Issue triage: apply area label alongside type Bug, fix label names (#33663)
- b2274a5 Optimizer: fix plan SoC goal slot placement off-by-one (#33832)
- e485998 Shelly TopAC: fix enabled (#33805)
- 09efbf9 Toyota: fix partial api response handling (#33689)
- 85c1017 Vehicle: fix UI location in deprecated mode warning (#33551)
- af4aa75 Zaptec: fix model detection (#33504)
/i/2008090556.webp?f=imagenormal)
:strip_exif()/u/348540/crop5aa8ff353c2a9_cropped.gif?f=community)
/u/21712/crop6a7063eca29c1_cropped.png?f=community)