What's Changed
** This is quite a big release, do take care to check it on your system **
Features
- Let low power charging apply during daylight, behind a switch (#4975) by @chalfontchubby in #5007
- fix(fetch): split charge windows at dawn again, unify low-power PV thresholds by @chalfontchubby in #4726
- Raise debug_history_count maximum to 500 for multi-week history (#5070) by @springfall2008 in #5071
Cloud inverter fixes
- feat(teslemetry): periodically force a re-assert of the device tuple so silent drift self-heals by @springfall2008 in #5158
- fix(deye,sunsynk): share the TOU builder, pad correctly and split at midnight by @springfall2008 in #5159
- fix(gateway): read car battery size per slot as a float by @mgazza in #5117
- fix(sunsynk): clear applied_payload on sustained settle divergence by @chalfontchubby in #5142
- fix(sunsynk,deye): persist control_active across a restart by @chalfontchubby in #5150
Solar calibration fix
This will take a few days to fully adjust.
- fix(solar): calibrate PV against the raw provider forecast, not Predbat's own calibrated output by @springfall2008 in #5121
Bug fixes
- fix(octopus): correct the dispatch timeline render, and show imports with no dispatch by @chalfontchubby in #5077
- fix(plan): save_plan() expiry computed from the wrong clock (#5079) by @chalfontchubby in #5100
- fix(fetch): compute dawn sensor regardless of combine_charge_slots by @chalfontchubby in #5155
- Accept an inverter time with a space separator and no timezone offset (#2444) by @springfall2008 in #5154
- fix(inverter): count a commit button press as a register write by @chalfontchubby in #5123
- fix(predbat): don't read db_primary off a None ha_interface in update_time_loop by @springfall2008 in #5137
- fix(octopus): prefer the direct debit rate when both payment methods overlap by @Navesz in #5145
- fix(security): redact secrets at log-write time, not just at serve time (#4770) by @chalfontchubby in #5053
- fix(execute): skip the redundant charge-off call while exporting by @chalfontchubby in #5114
Development
- refactor(export): replace the packed export-limit float with a (mode, target, power) tuple by @chalfontchubby in #5047
- test: give each test its own PredBat rather than sharing one (#5079) by @chalfontchubby in #5102
- fix(triage-bot): open the journal PR on the branch, not the exit code by @springfall2008 in #5160
- docs(debug-journal): fold in 14 findings and correct entries the 12 Sep merges invalidated by @springfall2008 in #5161
- Fold balance_inverters into execute: one source of inverter rate writes by @springfall2008 in #5149
New Contributors
Full Changelog: v9.0.3...v9.1.0