Changelog
Breaking Changes 🚨
- a5a74ba Charger (Stiebel Eltron): split WPMsystem and WPM 3/3i templates (BC) (#34493)
- d77d924 FoxESS H3 Smart: hold via discharge current limit, fix write order (BC) (#34363)
- 4ca3d04 Solinteg: unify M-TEC, Wattsonic and Solinteg templates (BC) (#24975)
- bcc2060 Templates: empty param values keep the template default (BC) (#34528)
- 6ad2f56 Vehicle: remove finish time capability (BC) (#34132)
New Features 💫
- cbeed01 Add ABL SURSUM EVCC controller (#33644)
- 9d13171 Add Gossen Metrawatt ENERGYMID (via MBMD) (#34189)
- 0e4e9f1 Add Hyundai/Kia/Genesis Pleos EU Data Act api (#34362)
- 86937d4 Add Roche Energy REL261 battery (#33987)
- e74f306 Add Schneider MicroLogic (#33770)
- 08985c1 Add enecess ecoMain (#33717)
- 49ace36 Add lekker dynamic tariff (#34333)
- 42cc352 Charger (Stiebel Eltron WPM): add note about heating / ISG configuration requirements (#34461)
- 8174e23 Discovery: add command for network scan and report (#34376)
- 70f3999 FoxESS Avocado: add battery force discharge mode (#33977)
- 0fe103e Fronius Verto Plus: add curtail support (#34411)
- ae20c49 Issue agent: always apply an area label, re-add waiting for feedback after a reply (#34416)
- c1da727 Issue report: add missing UI config values (#34201)
- e271ab0 Keba UDP: add welcomecharge feature (#34123)
- 3ae3411 Kia/Hyundai/Genesis EU: add Genesis to OneApp/CCI login, clarify refresh_token docs (#33991)
- 0162a25 LG ThinQ: add water heater boost via target temperature (#33621)
- 7bf1e85 Mennekes AMTRON 4You/4Business (OCPP): Add 1p3p capability (#34373)
- 4db3857 RCT: add discharge battery mode (#34107)
- e3c101d Revert "Add ABL SURSUM EVCC controller (#33644)"
- 8b19105 Revert "meter: add Gossen Metrawatt ENERGYMID EM2289 (#34171)"
- 88dddc8 Sigenergy: add energy gateway option (#34094)
- 62301ef Solaredge Hybrid: add discharge and holdcharge battery modes (#32344)
- 7490b72 Sungrow: add pv energy (#34152)
- 2e160da Tariff (EPEX): add missing providers epexprijzen-nl (#34379)
- 25b6371 Tariff: add missing epexprijzen.be providers (#33969)
- e2bc3dc Tariff: add remaining Energy Price Forecast markets (#34348)
- 5d20df4 Templates: add Zendure and openWB Pro discovery hints (#34377)
- 037be43 UI: add week-start indicator to month charts (#34498)
- 6ca65ca Vehicle (Pleos): add welcomecharge (#34491)
- e82acea Vehicle (Tesla BLE): add odometer (#34480)
- 9dd69a7 bender-icc.yaml: Add Mennekes Amtron 4 You 400, split 11 and 22 kW Variants, correct rfid and 1p3p function (#34324)
- d39cdab meter: add Gossen Metrawatt ENERGYMID EM2289 (#34171)
Other Changes ☀️
- ba510f1 About: show full hostname for custom whitelabel website (#34100)
- 6e8cd7d Backport command: create the release branch with the deploy token (#34428)
- 69b9da5 Battery boost: keep boosted power from other loadpoints (#33769)
- 4881b70 Battery: combine limitsoc with batterymode, Solis holds at current soc (#33623)
- b4ffb44 Battery: end battery-supported charging on grid import (#34128)
- 5a6e51b Battery: re-run optimizer when battery settings/grid charge limit changes (#34330)
- 6268a13 Battery: release to normal when requested mode is unsupported (#33861)
- 9702de9 Bender: skip unsupported register 720 on Mennekes 4You/4Business (#34472)
- 9202813 Config UI: Load management configuration via UI (#33077)
- e8dd245 Config UI: flag disabled loadpoints referencing an unknown circuit (#34257)
- 36bad45 Config UI: site country setting and grid discharge confirmation (#34178)
- e6e333a Config: redact secrets in custom device yaml for bug reports (#33948)
- a2ec4af Config: retry meter reads in device status (#34246)
- aa74aeb Config: skip admin password for unchanged script configs (#34119)
- 4232e24 Config: suggest local network hosts for device templates (#34244)
- fd3a6b7 Database: respond before shutdown on restore/reset (#34285)
- 9922a1d Discovery: link collection issue, recognize more devices (#34336)
- f4edd3b Discovery: report only devices with host param (#34375)
- a0a0660 EEBus: persist full-list writes to the remote cache (#34125)
- daacfa7 EEBus: surface ship-go handshake, transport and mdns discovery debug lines (#34191)
- 824b671 EU Data Act: reduce requests (#34042)
- 8609d05 EU Data Act: serialize concurrent logins (#34492)
- fb83818 EUDA: change login flow to speedup login (#34313)
- 3f62e6c Fixes: Optimize page is slow with multi-day horizons (#34096)
- 18d557b Fritz: renew existing session id before full re-login (#34229)
- 17fa21c Fronius Ohmpilot: cache SolarAPI response (#33974)
- 1dbdad8 Go plugin: compile script once instead of evaluating per call (#34456)
- cee08c3 GoodWe WiFi ET: decode grid power as int16 (#34021)
- 697b34f Heating: use active phases for current to power conversion (#34402)
- a8a0756 HomeAssistant meter: support plugin-based battery SoC limits (#33863)
- 7450be7 Issue agent: PR labeler applies bug only for issues typed Bug (#34406)
- dd834a3 Issue agent: agent job never pushes, open-pr job does from a fresh checkout (#34365)
- c55889d Issue agent: close incomplete bug reports (#34303)
- 6930724 Issue agent: close reports that kept the UI paste placeholder (#34400)
- bf217c1 Issue agent: grant pull-requests write to the re-analyze caller (#34382)
- ce880ed Issue agent: read referenced discussions (#34399)
- c9af67c Issue agent: reopen duplicates when the reporter replies (#34366)
- 1610138 Issue agent: search similar issues, close duplicates (#34361)
- 007582d Loadpoint: accept status C while disabled for continuous devices (#34385)
- f262233 Loadpoint: apply default mode on boot for UI-configured loadpoints (#34160)
- c14e9eb Loadpoint: drop to min current before scaling up phases (#34457)
- 40c8973 Loadpoint: keep a vehicle assigned while detection by status is running (#34237)
- 9c18d65 Loadpoint: keep pv enable timer running with battery start (#34369)
- cd096d1 Loadpoint: larger solar share slider touch target (#34117)
- 7776572 Loadpoints UI: close always-charge popover when swiping carousel (#34242)
- 9d8a05b Loadpoints UI: re-snap carousel after layout changes - #34029
- c085290 Log price limits with three decimals (#34455)
- 3370287 Log: parse the line header without regexp (#34320)
- d0763ed Meter (Solis): drop coarse pv energy register (#34260)
- 643b7ac Meter (Sungrow hybrid): drop calculated phase currents (#34294)
- ff20a35 Metrics: do not rebase energy baseline on a lower meter total (#34218)
- 551d98c Mode: don't activate Smart just from opening the Always charge dropdown (#34264)
- 77e869c MySkoda: detect saved location by current position profile presence (#34015)
- b6f7983 MySkoda: use plug connection state when charging state is omitted (#34124)
- fbc63f4 New Energy UI: historical data, analysis, savings (#33989)
- 81306a0 OCPP: clear stale transaction state on reboot (#33909)
- 9b6c028 OCPP: measure meter value freshness on receipt instead of charger timestamp (#34288)
- 76da944 OCPP: use active phases for watts-based charging power (#34121)
- 0e0a9d2 Optimizer: default battery SMax to capacity without soc limits (#34129)
- 6f9b6a0 Optimizer: drop near-term PV forecast correction (#34464)
- 9dd315c Optimizer: include Continuous heating loadpoints in demand breakdown when in ModeOff (#34262)
- 53e4bd8 Optimizer: treat missing feed-in tariff as zero (#34544)
- d935d61 Optimizer: use planner tariff for battery grid charge limit (#34532)
- 399c6bb Phases: allow 1p scale-down while climater keep-alive suppresses disable (#34499)
- 8e45824 Porsche: Porsche Connect vehicle with in-browser login (#31232)
- 1b753e4 Revert "chore: upgrade modules"
- 8ea1b3f SENEC.Connect: select system by serial number (#34167)
- acca76b Schneider: support Charge Pro via FC04/FC16 (#33872) (#34165)
- 299b688 Shutdown: floor the wait for shutdown hooks (#34276)
- 0c87abe Site/Loadpoint: restore debug logging for demand predictors (#34525)
- 0e3ddf9 Solcast: don't waste quota during off-hours (#33771)
- 979d950 Subaru: retry incomplete status payloads with timeout (#33477)
- 8d476c5 SunSpec: report not-implemented sentinel as ErrNotAvailable instead of zero (#34217)
- cee068c Sungrow hybrid: use shared block reads (#34164)
- e271f1c Tariff (EKZ, Green Grid Compass, DWD): compute API windows in UTC (#34378)
- 3a0ef0c Tariff (ESIOS): apply Canarias prices per local hour (#34384)
- 977517c Tariff (Groupe E): compute API window in UTC (#34180)
- 52ab808 Tariff (Octopus DE): redact credentials in trace log (#34540)
- f89d43d Tariff: average Energy Price Forecast at source (#34486)
- 56486d2 Tariff: keep cached slots leading up to a fresh tariff's first fetch (#34051)
- 0e4a79a Tariff: optimize formula evaluation by compiling at init (#33780)
- 211dd26 Tariff: support multi-statement formulas again (#34485)
- d433f76 Templates: allow caveats on product level (#34162)
- e5b8e60 Templates: expose modbus delay and timeout for hand-rolled connections (#33947)
- 0e1f7cb Templates: validate modbus host like the plain host param (#34381)
- 0cd9959 Tesla: treat any 408 from the Fleet API as asleep (#34353)
- 077c093 Tests: search log at info level so the startup line stays in the window (#34215)
- a4c60e3 Tests: use local MQTT broker in config-mqtt spec (#34278)
- 1f0023b Tests: wait for always charge once state before toggling off (#34273)
- 5f84dfa Tests: wait for modal shown in aux and battery specs (#34279)
- c2db48e Toyota: use phevUsableBatteryLevel for PHEV vehicles (#34196)
- d94e566 UI (Energy): unify source labels between stat block and modal (#34508)
- b5b8a7f UI: keep Safari vendor prefixes in production CSS (#34516)
- 0972249 UI: retry websocket quickly after connection loss (#34035)
- e76574a UI: show Forecast tab before Energy (#34570)
- eea26a7 UI: show time picker icon on touch devices (#34247)
- 0391b40 UI: show vehicle limit in status independent of connection status (#34520)
- 20312ac UI: unify battery mode icons (#33901)
- a35035a Vehicle (Tesla BLE): expose climater state (#34250)
- 2c459aa WARP: wipe stale RFID data (#34052)
- 40379bf Weishaupt: derive status from power setpoint (#34134)
- cdb0940 Weishaupt: remove power reading from unlisted register 33126 (#34251)
- e625d6b Zaptec: detect stand-alone mode (#34184)
- b6f6e85 Zaptec: ignore command rejection code 520 (#34506)
- a344f74 minor
- b88d5d9 ocpp-mennekes-4you.yaml: Full name and OCPP to clarify (#34327)
- 17a86fc sqlite: enable WAL mode (#30903)
- 05ba977 sqlite: use a connection pool with WAL (#34495)
Bug Fixes 🐞
- 6e8887d Config UI: fix disabling messenger devices (#34090)
- 7f62141 E3/DC: fix charge and hold charge battery modes (#33721)
- 4d8139b Loadpoints UI: fix inactive card on open without lp param (#34144)
- 50e4296 Revert "Easee: fix charging stop on scale down (#29464)" (#33964)
- a6bae25 Sungrow iHM: fix feed-in limitation on/off detection (0x55/0xAA) (#33776)
- 19c8e07 Sungrow iHM: fix voltage registers and use block reads (#34174)
- 4f470a9 Tests: fix flaky bool service datalist assertion (#34274)
- d6f0468 fix: sessions legend grid overflowing card on long labels (#33944)