Changelog
Breaking Changes ๐จ
- 45e781d API: publish forecast as arrays with unix timestamps (BC) (#32391)
- 6c11365 EEBus: keep grid limits applied as the LPC/LPP spec requires (BC) (#32492)
- 91512a7 Goodwe: add curtailment (BC) (#32795)
- dc143a6 MQTT: publish one forecast message per key (BC) (#32716)
- fdea008 Powerwall: add Fleet API support (BC) (#32410)
New Features ๐ซ
- 46ff84e Add DWD (Bright Sky) temperature forecast (#32522)
- b944059 Add NEcharge Pro charger (OCPP 1.6J) (#31631)
- 8e5322d Add Socomec Countis E3x/E4x meter (#32775)
- 63b7e06 Add Youliq One (#32429)
- 5ab5cfc Add admin api for deleting invalid metrics (#32666)
- ecfb55f Add ferroamp meter (#32566)
- d71e3ac Atmoce: add basic holdcharge on pre-01.01.00.28.15 firmware (#32537)
- 7566a00 Fronius Gen24: add PV curtailment support (#32823)
- 828f4ab Fronius: add Argeno and Smart Meter IP meter templates (#32329)
- ea80d13 History UI: add prefetch and caching (#32699)
- 7d4bb61 Hoymiles AhoyDTU: add cache (#32652)
- b301bb5 Huawei EMMA: add curtailment (#32006)
- 48aecbf Huawei SmartLogger: add curtailment (#32585)
- 99a9c88 Huawei SmartLogger: add returnenergy to grid (#32650)
- 2abf3ac Meter (FoxESS H3): add battery control (#32302)
- edae1cc Meter (FoxESS H3-Pro/Smart): add battery control (#32301)
- 8a4abd3 Meter (Victron): add GX AC load meter template (#32411)
- 0d02407 OpenEMS: add cache (#32402)
- d09a952 Optimizer: add feasible status (#32632)
- 3093539 Optimizer: add static grid export limit (#32541)
- 0ac70c7 Powerwall: add dynamic battery parameters (#32742)
- daa3df4 Solplanet AI dongle: add battery control (#31908)
- f47dd16 SunEnergyXT: add SunEnergyXT 500 template (#30852)
- 84cf093 UI Customize: add white-label flags (logo, brand, website, email, phone) (#32582)
- 1c22f74 Voltie: add the firmware 352 capabilities (#32783)
- 58d1f87 emsesp: add power envelope (#32772)
- fb18f33 tesla-ble: add finishtime (#32768)
Experimental Features ๐งช
Other Changes โ๏ธ
- c3f3384 API: generate /api/state documentation from UI types (#32431)
- 4b73251 Atmoce: dynamic parameters for capacity/maxchargepower/maxdischargepower (#32536)
- 0ac212b Atmoce: remove battery curtailment (#32803)
- f7e7ab8 Battery Boost: allow scaling to 3p while active (#32776)
- 0df2610 Bender: skip Mennekes 4You/4Business unsupported registers 730/740 (#32560)
- fd72f8d Cardata: delete obsolete streaming containers (#32314)
- 545867b Charger (FoxESS EVC, foxess-evc): remove broken session energy (#32371)
- 9d0bc5a Charging plan: make strategy settings discoverable (#32452)
- 4465100 Config UI: allow disabling devices (#29455)
- 0e58436 Config UI: mobile optimized section navigation (#32810)
- ad9cd0a Config UI: prevent accidental modal close with unsaved changes (#32826)
- 7b8e6e1 Config UI: show static grid export limit on hems card (#32634)
- 3e2e0fa Config UI: use auto unit for energy and power (#32754)
- 63e1877 Deye: simplify curtailment scaling (#32798)
- f4a8708 Docs: mention --disable-auth for local UI checks (#32414)
- 5d75f21 Docs: point getState externalDocs to API State reference page (#32568)
- fed3fb7 EEBus: abort run loop and limit assertion on context cancellation (#32494)
- 4a87883 EEBus: state the limit to a controllable system on connect (#32491)
- a938d45 Forecast: match persisted solar history to the published curve (#32693)
- 2bc3ed6 Fronius Solar API V1: cache GetPowerFlowRealtimeData requests (#32422)
- 64233c8 HTTP: increase request timeout (#32542)
- b46b5f3 Huawei SUN2000: clarify battery configuration in description (#32558)
- 6007bb5 Issue agent: re-analyze when the reporter answers a triage question (#32763)
- 3f87c76 Loadpoint: consider load management in phase scaling (#32353)
- f6a5b07 Loadpoint: limit boost power to battery limits (#28178)
- 4caddee Log: separate ring buffer budget for trace and higher levels (#32698)
- 768c1c7 OCPP tests: make the suite re-runnable in one binary (#32764)
- 9eea54d Optimizer UI: migrate charts to echarts, remove chart.js (#32837)
- 0bbf4dc Optimizer: consider planner precondition (late charging) (#32872)
- a237f69 Optimizer: re-run on vehicle changes and include unmodeled loads (#32681)
- 2913718 Optimizer: stop demanding charge once the vehicle is full (#32633)
- 2201066 PV: reserve only min power for higher-priority loadpoints starting up (#32812)
- addbda0 Remote access: show tunnel connect errors, self-recover after offline boot (#32511)
- 3ec61c1 Sessions: record added range per charging session (#32509)
- b70ab27 Shelly: query return energy support once (#32644)
- fc6fe3d Site: make battery discharge limit availability explicit (#32728)
- 9ef7ea7 Site: respect minSoc in maxDischargePower calculation (#32664)
- 9a276f3 Skoda: expose welcomecharge parameter (#32636)
- f571d50 Soc: simplify estimator (#32495)
- 7f2aee0 SolarMax SMT: drop the whole-kWh energy register (#32497)
- aaaa28a Solcast: keep forecast alive outside active hours (#32639)
- d3d8950 Sonnenbatterie: cache repeated http status requests (#32797)
- c0bb9a3 Sponsor: wait for network to settle during startup check (#32556)
- 9042856 Tariff (Energy-Charts): cache forecast requests for 1h (#32800)
- 27aca97 Tasmota: mask password in error messages (#32659)
- dbae128 Templates: keep large numeric params parseable (#32528)
- c1fac30 Tesla BLE: handle sleeping vehicles with vehicle-api charger (#32615)
- 4314a64 UI Charts: show/hide tooltips on touch (#32613)
- 950ca48 UI Charts: swipe on charts to switch time range (#32614)
- ffb91cc UI Customize: email-based problem report flow for custom support email (#32584)
- 136809f UI Sessions: migrate charts from Chart.js to ECharts (#32625)
- ac5d384 UI: allow vehicle charging limit below 20%, include api-set values (#32460)
- 6fd2947 UI: apply 5% floor to vehicle limit slider (#32462)
- 43349e4 UI: close the bottom bar more menu on a second tab click (#32435)
- 7317b34 UI: hide chart tooltips on touch release (#32603)
- c598efc UI: replace "none" with 100% for vehicle default charging limit (#32739)
- dc1ac7c Vaillant: share token source across chargers on the same account (#32471)
- 555ec3d Vehicle (Nissan Ariya/Micra): use time at reception instead of backend time (#32456)
- 3c75a65 Viessmann: discover installation id and gateway serial (#32308)
- 95fe545 Voltie: rewrite Modbus driver for API v1.1 (#32671)
- 37fa159 cfos: expose temperature exceedance (#32514)
- 29b0eab charger/custom: support api.PhaseGetter via optional "getphases" field (#32756)
- 19f750c core: keep limitSoc/limitEnergy on integrated device disconnect (#32623)
- b29b49e core: simplify site/optimizer integration (#32646)
- 12fd62f emsesp: use single cached bulk fetch to avoid firmware rate limiting (#32559)
- f0c8c18 ioBroker: update installation and auth details (#32817)
- 5e69a62 pvnode: resample interval averages to power at slot start (#32604)
- 124edaa vw/eudataact: only use bcam threshold as target soc when care mode active (#32521)
Bug Fixes ๐
- c32ec2e Alpitronic HYC: fix status mapping and bundle register reads (#32260)
- eaa49fc Alpitronic: update handling for power absorption and fix status logic (v3.1.0) (#32820)
- 3970e19 Atmoce: fix curtailed for battery (#32453)
- c7c744f Charger (Plugchoice): fix CurrentPower reading 0 for externally started sessions (#32420)
- bfba6bb Config UI: fix decimal input in numeric fields (#32458)
- afac7ab Config UI: fix duration template param handling (#32572)
- 44d9107 Dockerfile: fix vite+ installer failing in the ui build stage (#32406)
- 4f169c5 EEBus: fix stated limit duration expiring at half its length (#32856)
- a4da257 Fix rendering notifications from the state at event time (#32401)
- f2c45b0 Huawei SmartLogger: fix PV energy yield (#32592)
- bda5ad7 Kia/Hyundai EU: add OneApp/CCI login to fix new-login WAF block (#32868)
- a4312e0 Meter (SolarEdge Hybrid): fix pv power (#32720)
- 285b01f Modbus: fix missing template delay and timeout defaults (#32694)
- d719585 OCPP tests: fix panic on send on closed channel during charge point stop (#32757)
- de29e57 Sessions UI: fix grouped chart layout and legend styling (#32338)
- b8130ea Shelly: fix PV energy for devices with reverse power measurement enabled (#32550)
- a4e5db5 UI: fix auto power unit for negative values (#32813)
- 0f265a0 UI: fix sessions table covering heading in app (#32830)
- 6f8a6b8 core: fix nil pointer panic when deleting active grid meter (#32607)
- 4635fe0 fix: modbus/read service cache key ignores read parameters (#32499)