Changelog
Breaking Changes 🚨
- d443024 Epexprijzen-nl: remove atoom alliantie (BC) (#31700)
- 7c7a74b SunSpec: make curtail (model 123/704) optional (BC) (#31607)
New Features 💫
- b2068fb Add Ambibox ambiCHARGE Home (#31464)
- 3158ff1 Add Anker SOLIX Solarbank Max AC (#31696)
- db77790 Add Mennekes PnC variants (#31806)
- 5216c88 Add Solplanet AI-Dongle LAN (local HTTP API) (#31732)
- 92c89ad Add Voltcast tariff (#31848)
- 62ed1c4 Add pvnode Solar Forecast API V2 (#31178)
- 20a1c08 Atmoce: add curtail and dimming, add holdcharge and rework normal/hold/charge (#31632)
- 58bda98 Config (Remote): add title to app deep-link QR code (#31746)
- 36c422f EEBus: add MGCP, MPC, LPC and LPP conformance tests (#31384)
- 0d76c12 Indevolt: add battery control (#31741)
- 3bb943c Loadpoint: add min temperature for heating devices (#31749)
- 49b93c6 Marstek Venus: add holdcharge battery mode (#31831)
- 3a3d7ad Phoenix EV-ETH: add millicurrentsupported option (#31860)
- d68e5e5 Tariffs: add outdoor temperature type and OpenMeteo (#27780)
- 023a48d Templates: add capabilities on product level (#31588)
- d495d3e Tinkerforge WARP: add WARP4 support with vehicle SoC via ISO 15118 (#31446)
- cc5ba51 Vehicle: add charge mode in arrival tab (#31330)
- cc0b5ac askoheat: add aux meter template (#31683)
- 3ce6600 feat: add xlsx export wherever csv export exists (#31690)
Other Changes ☀️
- 6d2ed7d Battery UI: history chart polish, axis consistency (#31661)
- b1f35fb Battery UI: show fully visible day as history window title (#31663)
- 5120c8d Battery: optimizer suggestion state icons (#31748)
- 69f817d Bender: extract Spelsberg Smart Pro (#30493)
- 83a2b7d Circuit: apply HEMS consumption limit even without configured maxPower (#31751)
- b900237 Config UI: streamline loadpoint creation and unify wording (#31658)
- 857a93f Config: persist settings immediately on device delete (#31755)
- 43627f6 Config: persist settings immediately on site update (#31754)
- eed3aec Config: show vehicle asleep state instead of value errors (#31859)
- fc565af Daheimladen: check stationid
- 7e3da98 Daheimladen: restore safe current limit after charger reset (#31729)
- 469d659 Drivesomethinggreater: update description (#31723)
- df5dc0e EEBus: ignore IEC61851 default current limits, honor loadpoint minCurrent (#31737)
- 333bdcb EEBus: skip flaky TestShipPairing in CI
- 20c8c3b EM24: drop kWh(-) export register, not available on all devices (#31736)
- 2766297 Energyflow: remove battery SoC forecast (#31611)
- 668c163 Epexprijzen-nl: added 'essent' and 'samenom' (#31699)
- a95a559 Forecast: make solar adjustment a server-side setting (#31862)
- ecb9cb0 IDM: remove thermal energy register (#31701)
- 9ad5120 Loadpoint: release priority PV reservation when car reached charge goal (#31759)
- ba27971 Meter (Home Assistant): support return energy entity (#31857)
- e7a49bc Metrics: fixed grid entity title, merge series of swapped grid meters (#31739)
- c52b4a7 OCPP: clear failed charge point registration on init error (#31652)
- ab3220c Optimizer: derive per-device action suggestions from result (#30834)
- 60af1de Planner: log the rate window and fallback triggers used for planning (#31621)
- ac08a53 Remote Access: user agent and status display fixes (#31667)
- 9ab2be9 Revert "Energy Flow UI: Chrome (Skia Graphite) rendering bug workaround" (#31623)
- 4f71e96 Site: base solar forecast scale on produced energy (#31612)
- 142c93a Solarmax MAX.STORAGE: remove grid charging (#31589)
- 8b243c2 Sponsor: remove Creem license key activation (#31824)
- 09b0d9c Sponsor: trim pasted token in UI (#31841)
- 7e564b0 SunSpec: curtailed false when limit is 100% (#31610)
- 661af41 Tariffs: persist tariff values in 15min intervals (#31845)
- 56bd94e Tinkerforge WARP: correct capabilities per generation and variant (#31590)
- 50e81a0 UI: darker dark mode, card layout, battery card polish (2) (#31593)
- 9325ed4 UI: update docs links to new notifications and external limit pages (#31628)
- 75cb289 Zaptec: detect cable swap between vehicles via session identifier
- 88b7621 Zaptec: propagate Enable errors other than 528 (#31803)
- 00d6d9b fixes #31671 esphome dlms/slimmelezer-luxembourg: address sensors by name on firmware 2026.1+ (#31676)
- 5b77c10 octopus-it: drop unused ItAgreement.ID (GraphQL ID scalar is a string)
- 8a42b0d open-meteo: use icon_seamless model (#31570)
- fd88c80 optimizer: flag suggestions actionable only when they change the current mode (#31693)
- 04d4f4b optimizer: only suggest actions for controllable batteries (#31715)
- df437d5 plugin: cache http responses from devices that omit the Date header (#31675)
- 623427e plugin: watchdog must assume a reset write may have just happened after restart using defer (#31635)
- c3f2b05 pv: reserve surplus for higher-priority loadpoints starting up (#31194) (#31684)
- ad4324b sqlite: serialize access on a single connection (#30902)
- 44bc075 tariff: deprecate solarprognose tariff (service shut down) (#31770)
Bug Fixes 🐞
- 68db0b7 Anker-solix-x1: fix energy scale (0.01 kWh/LSB) and revert PV changes (#31787)
- 78e2ec9 Config: fix loadpoint modal reusing previous charger on repeated add (#31614)
- 2266228 EEBus: fix test cleanup regression breaking TestShipPairing (#31617)
- 526d17f Fix DoJSON error on empty-body 2xx response (#31801)
- 0e62646 Fix instantiating meters referenced only by circuits (#31788)
- 4dc9775 Fix vehicle mode reset on RFID re-identification of already-active vehicle (#31654)
- 1074db9 Huawei SUN2000: fix curtailed false-positive at 100% feed-in limit (#31695)
- 884956f IBC HomeOne: fix battery SoC scale and grid meter word order (#31591)
- 999bed7 Loadpoint: fix coarse power-limited chargers never enable on fractional current (#31685)
- bf4e6e8 Loadpoint: fix minSoc config error on restart (#31819)
- 8fe199d fix: prevent infeasible optimizer result from battery soc outside configured limits (#31821)
- 5246b84 meter/anker-solix-x1: fix wrong Total PV Generation register address (#31771)
- 017d77d octopus-it: fix account query for Italy's Kraken schema (#31656)
- 3a2711c optimizer: fix pause suggestion for idle-but-enabled loadpoints (#31792)
- 4860601 server: fix TestSessionHandlerTimezoneFilter on UTC CI runners (#31688)