Releases: evcc-io/evcc
Releases Β· evcc-io/evcc
0.309.2
Changelog
Breaking Changes π¨
- 7f680eb enphase: fix battery_type parameter (BC) (#30860)
- 8769ae4 Config UI: separate consumers from additional meters (#30243)
New Features π«
- 418ac13 Charger (go-e): add missing product variants (#30915)
- 3842c3d Kostal Plenticore: add holdcharge battery mode (#30853)
- 18609ee Modbus: add shared block reading (#30846)
- fa0cd94 RCT: add maxacpower (#30936)
- a68f23e Smart-hello: add Smart #5 support (#31024)
- 1056e85 Vehicle: add autodetectdisabled feature (#30941)
- 41e893e aa55 udp: add delay option to space inverter sends (#30832)
- 6b7995d evnotify: add v3 api support (#30927)
- 470082e i18n: add Latvian to language selector (#30988)
Other Changes βοΈ
- 93f49dd Bump esbuild and storybook (#31016)
- 4e40218 Bump js-yaml from 4.1.1 to 4.2.0 (#30917)
- 81a84fc Config UI: replace Monaco editor with bundled CodeMirror 6 (#30855)
- ebe4a3d EEBus: expose SHIP installation QR code (#30840)
- 33d9c3b EEBus: treat unavailable measurement data as not available (#30874)
- 10e3f0d EEBus: update eebus-go, ship-go and spine-go to dev (#30633)
- bcd7551 EU Data Act: identify ID.3 cruising range by data point key (#30851)
- 52562d9 EU Data Act: skip optional marketing consent page after login (#30956)
- e4ddbfb Energyflow: apply forecast adjustment to remaining solar energy (#30906)
- 359e053 Energyflow: keep small consumption segments visible (#30781)
- aa16b1c GoodWe Wifi ET: correct grid power sign (#30896)
- 9586868 GoodWe: deprecate wifi template (#30966)
- 642be2f GoodWe: treat nightly 0xFFFF register sentinel as invalid (#30924)
- 7ac3af8 History: reload data after backend restart (#30985)
- e5b9a01 Home Assistant: Enable insecure option for self-signed certificates in oauth2 flow (#30648)
- d7a294f Huawei: move warnings to caveats (#30658)
- 662e5d2 Huawei: optimized force-charging (#30975)
- 7c98d6d Lambda Zewotherm: use register 1012 for power (FW >= 1.1.3) (#30780)
- d1dd790 Meter: treat zero lifetime energy reading as not available (#31019)
- 1582d86 Metrics: join energy series by entity name (#30991)
- cae5e66 Modbus: reuse modbus decoder in aa55 (#30848)
- 494f6cf Optimizer: make grid charging strategy configurable (#30782)
- 51eb75d Sessions: relabel solar/total toggle buttons (#30883)
- f621327 Sessions: show more columns per breakpoint (#30933)
- 7dafb00 Site: publish meter returnEnergy and use in history (#30881)
- 614ff4a Smart-hello: reject unsupported vehicle platform (#31022)
- f7b89ce Sponsor: set gRPC client idle timeout (#30913)
- a70f4b3 Templates: consolidate shared param properties with defaults.yaml (#30908)
- 5304d98 Vehicle (EU Data Act): prefer most recently delivered value per field (#30916)
- 2269e6a Zaptec Go 2: warn on unequal installation phase current (#30964)
- 12f3221 http plugin: honor cache when upstream sends no-store/max-age=0 (#31028)
Bug Fixes π
0.309.1
Changelog
New Features π«
- da22e7c Add OVUM MIRA heat pump support (#30715)
- d859ae9 Add ioBroker meter and charger (#30162)
- e10b95f Templates: add caveats field for known device issues (#30641)
- f6f011b vzlogger: add returnEnergy (#30700)
Other Changes βοΈ
- dcdda56 Auth: coexist with reverse proxy Authorization header (#30757)
- bdaaf90 Cardata: update container (#30706)
- 15aa800 Dependabot: disable gomod and npm version updates (#30830)
- ea345d3 DriveSomethingGreater: more data points (#30762)
- 3aac67b GoodWe: remove non-functional wallbox phase switching (#30790)
- 45cab34 HEMS: make Dimmed/Curtailed tri-state (once more) (#30712)
- 902b66d History: scale chart axis to include forecast overlay (#30766)
- eadcd31 Huawei: clamp battery charge/discharge power to inverter maximum (#30776)
- 56190ad Loadpoint: defer connect notification until vehicle detection settles (#30775)
- 61ecae0 Metrics: don't double-count energy after a failed meter read (#30605)
- c92fb3a Password: fail loudly when settings cannot be saved (#30767)
- 02ca578 Retry Curtailed/Dimmed on error (#30701)
- ee8cb8d SMA Speedwire: support hybrid inverters (#30084)
- 7ecd241 Smart-hello: persist token and device ID across restarts (#30581)
- 0b66a9f Vehicle (EU Data Act): merge datasets in delivery order (#30805)
Bug Fixes π
0.309.0
Changelog
Breaking Changes π¨
- ead9296 Add long-lived api key (BC) (#29431)
- 8106dc8 Refactor dim/curtail handling- split hems and circuit (BC) (#30284)
New Features π«
- 03d6c02 Add HoldCharge battery mode (#27906)
- 3758ce1 Add OCPP forwarder (#29154)
- b4f7a42 AlphaESS: add returnEnergy support (#30568)
- 1000157 Custom Device: add return energy example (#30544)
- 9fb8be5 SolarEdge Hybrid: add battery energy metering support (#30608)
- 23bab53 TasmotaSML: add returnEnergy (#30599)
- b479b34 Vehicle: add climaterdisabled feature (#30610)
Experimental Features π§ͺ
Other Changes βοΈ
- 7d4e57e Battery Hold Charge: ui state; api docs (#30628)
- 2f7126b Cardata: support "New Class" vehicles (#29709)
- a038383 Charger (Plugchoice): trim whitespace before parsing values (#30559)
- 6f7b689 Cupra: migrate to EU Data Act portal
- a1e6274 Loadpoint: prefer exact status match for vehicle identification (#29591)
- 7fffbda Meter (Kostal Plenticore): read DC PV energy from register 1056 (#30607)
- a8361b5 Metrics: store entity title on lazy-create (#30196)
- 0fa8b97 OCPP UI: remove wss assumption (#28996)
- 2db85ae OCPP: report zero charge power while idle (#30655)
- 07a19d6 Optimizer ignore uninitialized loadpoints (#30600)
- 1bb1ad2 Optimizer: send zero solar forecast when current forecast is empty (#30637)
- bfb55dc Shelly: drop grid energy and returnEnergy for 3-phase EM (#30534)
- 0aa9942 Tariff: stop background routine when startup update fails (#30594)
- 4dcff00 aa55 udp: dedupe concurrent block reads with single flight (#30589)
- 6cf3ea9 sqlite: restore busy_timeout pragma (#30696)
Bug Fixes π
- ca2f328 Deye: fix energy and power, add returnenergy and voltages (#30691)
- 6d79408 GoodWe: fix wallbox RFID register and phase-type detection (#30667)
- 4149d67 History UI: fix consumption with no ext/aux meters (#30697)
- c685afe Metrics: fix entity titles for db loadpoints (#30634)
- 635b543 Revert "meter/hybrid: fix pv energy readings in SunSpec hybrid inverter templates (#29955)"
- 9f8de52 Vehicle (SAIC/MG): fix missing SoC for idle vehicles (#30603)
- 419a7d8 Vehicle (flobz/PSA): fix climater detection when air conditioning is null (#30621)
- a1efbb9 Warp: fix phase switching for WARP2+Energy Manager and WARP3 (#30460)
0.308.1
Changelog
New Features π«
Other Changes βοΈ
- 29e5599 Battery UI: drop orphan grid charge headline on fresh installs (#30530)
- 501789c Device Card: improve truncation (#30533)
- 380416e DriveSomethingGreater: guard against empty vin or value (#30516)
- fe07fa7 DriveSomethingGreater: guard against losing data on error
- da8f132 DriveSomethingGreater: log unzipped data
- 81bede7 Meter (SlimmeLezer V2): use ESPHome entity-name sensor URLs (#30466)
Bug Fixes π
0.308.0
Changelog
Breaking Changes π¨
New Features π«
- 98a4cd3 Add EU Data Act subscription not configured error
- c0d501c Add Enovates charger (#30477)
- 315f94b Add Hoymiles HMT/HMS DTU PRO S Modbus TCP (#29281)
- 5fa62d5 Add Kaco Blueplanet (#30293)
- 7b5df17 Add MeterReturnEnergy (#29805)
- 92a63d9 Atmoce: add returnEnergy (#30471)
- 8ea620d Audi: rotate qmauth and add assertion headers for IDK token exchange (#30292)
- a739014 Config: add deviceValue.returnEnergy translation (#30440)
- 5071245 DSMR: add Websocket connection (#30465)
- e221253 DriveSomethingGreater: add more soc points
- 143bc1a Epexprijzen: add 'quatt-energy' and 'vattenfall' (#30473)
- 0c4ce3f HardyBarth: add phase voltages (#30490)
- 4f94365 Hems/FNN: add curtail and dim for TAB26 Steuerbox relay standard (#29886)
- 9218cf0 Huawei SUN2000: add returnEnergy for grid and battery (#29790)
- 416eb00 Huawei: add dim for battery (#30319)
- 0a36403 Huawei: re-add curtail (#30145)
- a05eb42 Hyundai Bluelink: add Australia and New Zealand regions (#30037)
- 420096d IAMMETER: add returnEnergy (#30434)
- 53c0c67 Meter: add EcoFlow PowerOcean Modbus (#30472)
- e72dc8e Sessions: add start/end soc test (#30441)
- ffbdb4e Tibber: add vehicle via Data API (#30487)
- 5407715 Vehicle: add drivesomethinggreater (VW group EU Data Act) (#30362)
Other Changes βοΈ
- 086023f Charger (OpenEVSE): scale CurrentPower by loadpoint phases (#30330)
- 5c04eed Cupra: map ChargePurposeReachedAndNotConservationCharging to StatusB (#30343)
- 5bbe1bc DriveSomethingGreater: single store per account (#30430)
- 2241f54 Forecast: re-enable solar adjustment (#30395)
- 5907cd9 History UI: tooltip refresh (#30501)
- 869ac1d Loadpoint UI: assign to real circuits only (#30429)
- 545d239 Loadpoint: scale down to 1p for feed-in priority in min+pv mode (#30327)
- fd94f8a Loadpoint: update odometer on disconnect (#30361)
- 535dab9 Meter (Growatt TL-XH): write battery-first time slot atomically (#30403)
- b40f06d Meter (Solis Hybrid): drop coarse pv and battery energy registers (#30411)
- 529f1b1 Meter: allow battery dimming (#30365)
- e3a79f4 Metrics: distinguish missing meter energy from zero reading (#30297)
- e407006 OCPP: clear stale transaction state on Available status (#30247)
- 9e61abf OCPP: wait for listener to bind before returning from Instance (#30408)
- 475c43c Readme: update screenshot (#30498)
- 0ffbe0e Session UI: small improvements (#30389)
- 1933be4 Session: store vehicle SoC at start and end (#30050)
- 5920e56 Sessions UI: make odometer editable (#30437)
- d481739 Speed up Playwright CI by skipping install-deps on cache hit (#30503)
- 257f8c3 Stabilize flaky limitSoc disconnect-reset e2e test (#30504)
- 6c6f051 Tapo: drop IP-address handling, use host string throughout (#29914)
- 791bfae Toyota: fall back to
evRangewhenevRangeWithAcis unusable (#30347) - 4eada9b VW: migrate WeConnect auth to OIDC token exchange (#30277)
- 498fbab Vehicle (Nissan Ariya/Micra): expose expiry as advanced parameter (#30269)
- f0cabc6 Vehicle: refresh drivesomethinggreater on portal schedule (#30368)
- 24e0e10 Zaptec Go2: use ThreeToOnePhaseSwitchCurrent for switching (#29587)
- 08b9dbb aa55 udp: support block reads (#29095)
- 848ed44 tariffs: rebrand stroomprijsprognose.nl -> energypriceforecast.eu (#30436)
Bug Fixes π
- e34459a Deye LV: fix energy scaling (#30482)
- 50824a9 DriveSomethingGreater: fix hybrid range
- cdf81a0 DriveSomethingGreater: fix timestamp error
- 42f4281 Huawei EMMA: fix energy yield (#30352)
- 72f6861 Huawei SUN2000: fix energy yield (#30353)
- 85ea408 Loadpoint: fix min soc energy fallback (#30461)
- 34d59ad Solax: fix enabled (#29483)
- dd9d636 fix: device card return energy formatting (#30459)
- 2556c8e fix: readd demo grid price and co2
0.307.2
Changelog
New Features π«
- 45ee243 Color Picker: add neutral colors (#30233)
- d57d3f9 OCPP: add option to skip ChangeAvailability on initialization (#30217)
Other Changes βοΈ
- 20afb73 Config UI: use km/milage user setting in vehicle card
- a7170a2 E3DC: reconnect on RSCP error (#30257)
- 5e1bd20 Energyflow UI: standardize battery forecast wording (#30197)
- 933a57b Meter (HomeWizard): expose per-phase power for signed grid currents (#30218)
- c00c21a OCPP: remove unused struct fields (#30228)
- dcc8ed6 Prioritizer: no flexibility for switch devices in MinPV (#30194)
- ec830ef VW/Audi: migrate token endpoint to /auth/v1/idk/oidc/token (#30260)
- 4d64a07 Vehicle: suppress climater error log when vehicle is asleep (#30239)
- 2e682c6 feat(app): emit structured download event for CSV exports (#30175)
- 151bee8 logstash: track ring length in O(1) instead of ring.Len() per write (#30201)
Bug Fixes π
0.307.1
Changelog
New Features π«
- d121466 Add Genesis Europe Bluelink (#30158)
- ead7769 Add GoodWe Wallbox (Gen2) charger (#29822)
- a2ebac9 Add Indevolt inverter (#30128)
- 8eb719a Cupra: add missing OLA API request headers (#30105)
- 0847c2a Polestar: add gRPC vehicle implementation (#30119)
- b41dc59 cli: add metrics command (#30099)
Other Changes βοΈ
- 34a0bfc Atmoce: remove rs485 (#30163)
- 18cadfa Cupra: keep plugged "NotReadyForCharging" as connected status (#30140)
- 0b20540 Enphase: modbus interface (SunSpec 700) (#30121)
- 0493103 Enphase: rename IQ Envoy to IQ Gateway (#30122)
- 8dc0edd HEMS: redesign dim and curtail api as tristate (#30116)
- f5cbb12 Hyundai Bluelink (US): expose required PIN (#30054)
- e63196e IAMMETER: split templates, support all devices (#29505)
- 4d80489 Loadpoint: keep mode on integrated device disconnect (#30189)
- 55dd26b MQTT: cancel in-flight publishes on disconnect (#30142)
- 88d0f9c MQTT: cleanup deletes at QoS 0, synchronously (#30139)
- 3d59da4 MQTT: lower parallelInflightLimit from 128 to 32 (#30141)
- 2839f87 MQTT: serialize resubscribe after reconnect (#30138)
- 070e27f Meter (Home Assistant): grid charging via switch entities (#30191)
- 5857cde Metrics: tolerate NULL energy buckets in importProfile (#30169)
- 14b422d Templates: render template-specific modbus defaults in instance mode (#29852)
Bug Fixes π
0.307.0
Changelog
Breaking Changes π¨
New Features π«
- 9cc0da1 Add Alpine vehicles (#29927)
- e48887e Add Azimut Energy battery (#29890)
- 726bea6 Add DSMR API v2 support (Ethernet P1 Dongle Pro+) (#29871)
- d17e72b Add DSMR API v2 support (Ethernet P1 Dongle Pro+) (#29892)
- 6802975 Add MYR (Malaysian Ringgit) to currency list (#29956)
- 1e9bc6c Add Siemens 7KT1666 (#29801)
- 76a54c6 Add TRY (Turkish lira) to currency list (#29897)
- 8886af1 Add compleo pro (#29925)
- ca386b7 Add dim/curtail features (#29905)
- 92072aa DADAPOWER: add voltages (#29923)
- 6039791 Easee: add cmd for (de)activating local ocpp (#29868)
- b1d5f57 Enphase: add voltages (#29795)
- cae8a2c Fritz Smart Energy 250: add pv
- 3588040 Ostrom: add sandbox support (#29751)
- 1e40a2a Plugins: add bool2int conversion (#29995)
- ce583cd Plugins: add ifelse plugin (#29988)
- 5763051 Sessions/History UI: add left/right swipe gesture (#29944)
- a2ce340 Solinteg: add phase powers and currents (#29749)
- 908e6cf Tariff: add time-based grid fees (#29766)
- 21eefcc Vaillant: add brand support for Saunier Duval, Bulex, Glow-worm, DemirDΓΆkΓΌm (#29874)
- 468dfa6 tariff/epexprijzen-nl: add powerpeers provider (#29829)
Other Changes βοΈ
- 37e5659 Batteries: track energy metrics (#29780)
- c37ecd6 Chart: sorted color picker (#30073)
- 62ecd17 Charts: color picker for loadpoints and consumers (#30021)
- 4e42b54 Config UI: replace custom vehicle modal with generic flow (#29575)
- 714c847 Config: enforce required fields when forcing save past a failed test (#29982)
- b76af61 Database: use backup and restore apis (#29511)
- e7a27e5 Energyflow UI: use names instead of placeholders (#29918)
- a74982a Ext/Aux meters: track energy metrics (#29836)
- a628981 History UI: improve tooltips, labels, stacks, units (#29917)
- 65dd010 History UI: optimize production chart (#29946)
- 431b606 History UI: visualization and export (#29846)
- 47132a4 Loadpoint: suppress PV disable timer while climater is active (#29837)
- 177cb19 Loadpoint: tolerate api.ErrNotAvailable on phase switch (#29975)
- 1200fbc Metrics: do not persist a partial first slot (#29977)
- db82557 Metrics: rename import/export to energy/returnEnergy (#29907)
- 84d623a OAuth: expose full upstream error (#29875)
- be1dd84 OCPP: clean up charge point lifecycle between subtests (#29873)
- e07838b OCPP: dispatch RemoteStartTransaction asynchronously to avoid WebSocket deadlock (#29838)
- 960eb11 Ocpp: fall back to confirmed profile limit for GetMaxCurrent (#29783)
- 7e41160 Optimizer: expose forecasted highest/lowest battery SOC (#29564)
- 6b053bf PV: track energy metrics and apply forecast scaling to optimizer (#29784)
- 54e6174 Renault: update api keys (#30031)
- 13c2407 Siemens 7KT1665: remove timeouts (#29800)
- 5506053 VW/Audi/Seat/Skoda: recover from marketing consent prompt (#29980)
- fed9678 Vehicle: accept lat/lon parkingposition keys for VW weconnect (#29981)
Bug Fixes π
- c61e3fa Battery: fix stale grid charge limit reset (#30013)
- 8ac2f94 Cupra: fix connected status (#30046)
- 48822fb Cupra: fix vehicle list (#30047)
- fe02f7f Evbox Elvi (OCPP): fix "charger out of sync" (#29809)
- 207fa79 Grid charge: fix 0 cost limit (#29817)
- d08a07d History UI: fix timezone handling (#29819)
- 41c169e History: fix axis, scale and units (#30042)
- d89c101 History: fix scale for stack batteries (#30044)
- 4bc9ba4 Huawei EMMA: fix phase currents (#29845)
- f41ad70 Loadpoint: fix charge meter method decoration (#29912)
- 117276f Localization fix for german string (#29891)
- 43860c1 OCPP: fix flaky TestOcpp (restore wait() timeout) + speed up (#29941)
- c5d9bcc Optimizer UI: fix line charts (#29936)
- 394553c Xtherma: fix registers and add dimmer (#29854)
- 1e81696 fix: drag & drop stability (#29730)
- 07b0093 meter/hybrid: fix pv energy readings in SunSpec hybrid inverter templates (#29955)
0.306.3
Changelog
Breaking Changes π¨
New Features π«
- 9d12605 Add ZAR (South African Rand) to currency list (#29620)
- cf5038c Revert "Stiebel WPM: re-add power (#29627)"
- 7303a5b Siemens 7KT: add voltages (#29732)
Other Changes βοΈ
- d4d8109 Battery UI: 100% buffersoc resets bufferstart (#29669)
- 20be86f Bluelink: convert evModeRange and odometer from miles to km when unit=3 (#29731)
- 2a49668 EEBus: drop redundant Scenario middle word from constant names (#29704)
- efe8ee7 Energyflow: show all loadpoints (#29677)
- bd651da HomeAssistant: dispatch CallSwitchService by entity domain (#29700) (#29706)
- 1e61427 Loadpoint UI: improve heatpump status (#29667)
- fd80b71 Make fatal banner dismissible (#29692)
- 338e8b4 Session energy: latch baseline late if meter not ready at start (#29656)
- d8730e1 Sessions API: filter tz handling (#29676)
- d811357 Trydan: pause dynamic mode during charging (#28365)
Bug Fixes π
- 0d3bcfe Bluelink: fix unmarshal float EvModeRange.Value from Hyundai EU API (#29687)
- 3b90182 EEBus: fix LPC/LPP CS failsafe-exit path (#29705)
- 4b276a4 EEBus: named scenario constants + fix MGCP scenario indices (#29701)
- 2c149b9 Fix comment-only yaml in device config validation (#29673)
- 7a24dbd OCPP: fix flaky test deadlock between trigger handler and WS read loop (#29725)
- 32f8384 RCT: fix grid energy (#29688)
- 9e2b907 Revert "EVBox Elvi: fix template (#29652)"
- 948b646 Tessie: fix wakeup uri (#29726)
- 42b5cb2 Yaml: fix decoding empty stream everywhere (#29690)
- 1414d71 sqlite: fix foreign_keys error (#29697)
0.306.2
Changelog
Breaking Changes π¨
- 1fbe26a Fritz!: optional unit parameter for multi-unit smarthome devices (BC) (#29570)
- d0d6ef0 MCP: make configurable via UI services card (BC) (#29535)
- b4f9081 OpenWB 2.0: manually configure rfid (BC) (#29352)
- 95fa98e sma-hybrid: separate max charge/discharge power (BC) (#29551)
New Features π«
- 4e6716c Add Anker SOLIX X1 (#29548)
- 7611aa9 Add Solinteg meter (#29543)
- 975caea Custom charger: add optional finish timer (#29600)
- f08fa0c HomeAssistant Charger: add heating, integrateddevice (#29632)
- d9cc4ec Nissan: add Micra
- 0f5bfe0 Stiebel WPM: re-add power (#29627)
- 002e55f epexprijzen-nl: add engie to provider choices (#29589)
Other Changes βοΈ
- f5ce6e7 Battery UI: clarify 100% buffersoc (#29658)
- f2505c0 Bluelink: limit climater to defrost (#29622)
- 19cdc8b Charger: tag templates with meter capability (#29536)
- 0178d32 EEBus meter: clear cached entity refs on disconnect (#29628)
- c96dbed Fritz!: refactor session caching (#29574)
- 1ac513c Loadpoints: track metrics (#29143)
- d7414b7 Octopus DE: stop retrying on permanent auth failure (#29631)
- 6c83a1f Optimizer: increase timeout (#29510)
- ba29520 Revert "PSA: update base url"