Changelog
Breaking Changes 🚨
- 0544a31 Battery limits: expose plugin errors (BC) (#34960)
- 7d61733 Home Assistant: fix battery direction help (BC) (#34745)
- bf5c276 SofarSolar G3: write max charge/discharge power for battery modes (BC) (#35204)
- ed7828c mDNS: stable instance name per installation (BC) (#34691)
New Features 💫
- af5a01e Add A-Tronix AX Plus (#34580)
- f44e6a1 Add CHINT DTSU666 meters (#35094)
- 319ded8 Add Frank Energie tariff (#34835)
- 4766c0b Add Grizzl-E Mini Connect charger (OCPP) (#33908)
- ada38ef Add Tuya chargers (local protocol) (#34036)
- 6ba94d3 Bender: add vehicle SoC for Mennekes 4You/4Business (#34496)
- 5ece63f Config UI: add onboarding flow and setup checklist (#35126)
- 942890d Home Assistant charger: add temperature entity for heating devices (#34614)
- 6cffb6c Kathrein: add watchdog (#34784)
- b12193a Messenger (ntfy): add schema option to allow http (#34843)
- bd3ac4c MySkoda: add wake-up via charging/start (#34686)
- f056979 Optimizer: add automatic mode (#32881)
- b8c43c0 RCT: add S0 external energy (#34890)
- 0306287 SENEC Connect: add .Home V4 product (#34688)
- 35b48d1 Sofar G3: add battery discharge mode (#34684)
- 15b0195 Stiebel WPM: add target temperature (limittemp) (#34991)
- ac13f5e Sungrow Hybrid: Add voltage and power registers for Modbus (#34771)
- 928f2bf Sungrow Hybrid: add currents (#34770)
- 1a61dbe Sungrow hybrid: add phase currents for LAN connection (#34706)
- b4bd05f Sungrow-hybrid: add battery to grid discharging (#34957)
- a6e6609 Tariff: add EDF Tempo (#35192)
- c83d01c Tariff: add Great Britain to Energy Price Forecast (#35092)
- fde07f4 Tariff: add Home Assistant solar forecast (#35067)
- 79b4a8b Vehicle (Mazda): add Mazda 6e and CX-6e (#35096)
- 9ab65fe i18n: add shared terminology glossary (#34787)
Other Changes ☀️
- d4f03e2 App: respect side safe-area insets (iPhone Duo) (#35198)
- bbdccca Battery UI: replace German "Speicher" with "Hausbatterie"/"Ladestand" (#34717)
- 2d2c8c1 Battery: note that always charge ignores buffer setting (#35182)
- d2941ea Battery: only offer grid discharge for batteries supporting discharge (#34685)
- 9c2feb0 Battery: read soc limits once per cycle (#34998)
- 94730e9 Bender: ignore invalid values (#34560)
- f15588c Circuit: drop stale service todo on meter param (#34695)
- f55c2c9 Circuits UI: improve power visualization (unlimited, feed-in), restart hint (#34791)
- 95680c4 Config UI: fill empty optional params in service urls (#34702)
- 4bee189 Config UI: keep auth provider action visible for long titles (#34737)
- d90cffd Config: skip runtime-disabled devices in site loop (#34505)
- 582b9b0 Contributing: ground rules and contributor intro (#34908)
- 09e195f DB: increase SQLite page cache to 16 MB (#35070)
- 319ce7e DemandTemperature: improve heating demand forecast across seasonal transitions (#34647)
- 2919f74 EEBus: rich device suggestions for SKI (#34696)
- dc84e11 Easee: derive total energy from session energy (#34818)
- 1a8eeaf Easee: lock 3p at charger level instead of switching to auto (#34640)
- 4d82901 Energy UI: align KPI card inset with battery view on phones (#34744)
- ef82d6e Energy UI: reorder usage and overview chart stacks (#34756)
- d1dc3a7 Energy: build overview slots from all series (#34618)
- f9285d5 Energy: price consumers and loadpoints per slot (#34943)
- 13124fc Energy: skip zero entity rows, read flow queries in parallel (#35069)
- 3f8fcd2 Energyflow: hide battery status icon when battery label shows it (#34944)
- 17a5715 Fiat: replace aws sdk with plain cognito call and own sigv4 signer (#34901)
- 7d9c733 Fiat: skip deep refresh while not plugged in (#34861)
- af62776 Fritz!DECT: rich device suggestions (#34692)
- 161d3a4 Glossary: format with 4 spaces like Weblate (#34980)
- f740984 Hassio changelog workflow: limit GITHUB_TOKEN permissions (#34973)
- dfc0468 Home Assistant: improved entity suggestions (#34654)
- a0d6564 Issue agent: detect issues already fixed by a merged PR or release (#35071)
- a47a0af Issue agent: fence unformatted logs, configs and code (#35065)
- 2a5b778 Issue: hint to search issues and try nightly before reporting a bug (#34572)
- fab6fad Issue: reduce EEBUS noise (#35183)
- ae4321f Keba P40: fall back to template model for unknown product code (#34574)
- 46d4fed Keba modbus: re-apply disable after phase toggle (#35184)
- f697252 Kia/Hyundai EU: sign OneApp/CCI auth calls with X-Fingerprint (#34898)
- ebe213e Kostal Plenticore: restore manual maxacpower configuration (#34133)
- 2cb2d9a Loadpoint: keep min SoC on config save (#35197)
- 753a3d1 Loadpoint: keep welcome charge alive across charging strategies (#32278)
- 3e89cec Loadpoint: log the pv enable threshold that is actually compared (#34996)
- a758b2a Loadpoint: simplify solar delays, move grid thresholds to advanced (#34593)
- 8802613 Log: show loadpoint title in area filter (#35140)
- 8033d44 MTec: remove energy reading (#35073)
- 8629bb9 Marstek: allow charging in hold mode (#34497)
- dfc41c9 Modbus proxy: forward unknown function codes (#34735)
- fff5c5d Modbus proxy: report upstream timeouts as gateway target failure (#34705)
- c27b74d Modbus: rich serial port suggestions (#34700)
- 447a9dd OCPP: use cached enabled state while connector is available (#34918)
- a866aaa Octopus Energy: Switch UK api url (#34794)
- bc539ee Octopus: rich device suggestions (#34694)
- ced79e3 Optimizer: energy plan goal from remaining plan energy (#34644)
- 5a85a46 Optimizer: explain the plan through the optimizer service (#34920)
- aab4599 Optimizer: hold battery while an uncontrolled loadpoint charges on the smart cost limit (#34826)
- 8060820 Optimizer: hold charge for idle battery at maxsoc bound while exporting (#34903)
- ccdaa25 Optimizer: hold critical planner deadline until end of slot (#34889)
- c4ff64b Optimizer: hourly slots beyond 48 hours (#34738)
- 53da181 Optimizer: hourly slots beyond 48h also for a self-hosted optimizer (#34833)
- f417436 Optimizer: ignore grid solver noise in battery suggestion (#34678)
- f28efb9 Optimizer: ignore prioritySoc on loadpoints it controls (#34689)
- fc35fa4 Optimizer: plot battery SoC forecast at slot end (#34777)
- 8297246 Phases: project the 1p switch from the actual draw (#34755)
- a896b93 Phases: stop 3p min charging within one disable delay when 1p not sustainable (#34752)
- daa6fa5 Planner: only skip short slot if more slots follow (#34604)
- 85dc6a4 Pleos: update api registration instructions (#34913)
- 45a9a83 Powerwall: hide grid charging when the site disallows it (#34963)
- 3f807af Redact: include private params of deprecated templates (#35167)
- 36276b3 Revert "Optimizer: hold charge for idle battery at maxsoc bound while exporting (#34903)"
- e501103 SHM: persist device serial (#34959)
- 769ca20 SMA: ignore 64-bit NaN energy counters (#34924)
- 08bf5fd Service: http/get label and hint for rich suggestions (#34699)
- 4b42759 Sessions: area-true scaling for polar charts (#34914)
- 2778b8a Settings: drag loadpoints by handle only (#35142)
- 78ae0ee Shelly: channel suggestions (#34701)
- 106eda3 Site: support grid connections without neutral (#34796)
- 06d0844 SunSpec: nan option to substitute the not-implemented sentinel (#34370)
- 4d8b649 Tariffs (Ostrom): accept fractional numbers in static price response (#34599)
- 6873579 Tariffs: pvnode-v2 temperature forecast (#34571)
- 12bc7ee Tasmota: channel suggestions (#34703)
- 25a8e25 Templates: discovery hints from collection issue (#35068)
- c5ed5f8 Templates: render battery params for Sessy, ioBroker and Victron VRM (#34680)
- 431fbc9 Tesla: inline Fleet API client, drop tesla-proxy-client (#34887)
- 50f684a Tesla: request location_data for geofence position (#34884)
- f399a40 Tibber: apply charge zones without other charges (#34643)
- 470fd6a Tibber: rich vehicle suggestions (#34693)
- 99806dc UI: golden export color in light mode (#34865)
- a254510 UI: reload on chunk load failure after update (#35202)
- f7ebc42 UI: show energy pattern cells in year view (#34896)
- e9bf069 UI: show time picker icon on touch devices (follow-up) (#34936)
- 4104fb4 UI: week start of energy charts from site country (#34899)
- 626ffcd Use "smart charging" claim in CLI, PWA meta, packaging and API metadata (#35187)
- 34297ed Vehicle (Mercedes): discover fleet vehicles (#34556)
- 9d612d8 Vehicle (TeslaMate): point template at teslamate-org (#35066)
- 13b3e84 Viessmann: report missing one-time hot water charge instead of parse error (#35036)
- 90d8366 Viessmann: rich equipment suggestions (#34697)
- e2b39dd WARP (WebSocket): ignore non power manager topics from energy manager (#34892)
- f7cc3ee Zaptec: serialize token requests to respect rate limit (#35176)
- 5be2a1d i18n: align English and German strings with glossary (#34836)
- c991f0a i18n: solar share description uses "solar surplus"
- 3526c2d ioBroker: simplify adapter setup (#35037)
Bug Fixes 🐞
- 6834c99 Config UI: fix enabling disabled temperature forecast (#34595)
- 63544a3 Config: fix "false" placeholder on fields without default value (#34655)
- 4bf91fd Forecast: fix price chart drawing prices one slot early (#34792)
- 8ab4550 Huawei SmartLogger: fix swapped grid import/export energy registers (#34766)
- ef2fe9d Issue agent: find backported fixes, skip fix when already fixed (#35075)
- 9783020 Loadpoint: fix fractional min current on circuit (#34750)
- a7090a8 Nibe-S-Series: fix changed encoding in setmaxpower (#35042)
- 89c642d Optimizer: fix charge cycling when home battery feeds minimum charge (#34811)
- 81a0b9b saj-h2: fix grid meter currents and energy (#35024)