Repository navigation
v0.94.460
·
185 commits
to main
since this release
The Solver tab shows the price guards at a glance; Charge By holds its
target for the whole final hour instead of selling off the top and
refilling.
- Devhub validation: confirmed live on devhub (HA 2026.10.1) at 9973495,
installed untagged via HACS from the release cut's branch (installed_version
release/0.94.460) and restarted 15:53:52 AEST 16 Oct; the PR's head
(89b9e3d) was validated the same way at 15:31:39.- devhub's own entities stamp
0.94.460(the other 119 are production's
mirrored entities on 0.94.459); 145 / 145nimbus_loadentities
available. The four Price safety cards are in the Solver tab, under the
price-day cards. - No Traceback, and no ERROR line this release introduces. The start
logs 200nimbus_load"does not generate unique IDs" errors. A
v0.94.459 control, installed and restarted 15:07:11, logged the same
200 with 145 / 145 entities. These are devhub-only: production logged
none after v0.94.459's restart. - The cards on real data: each card's template was rendered against
production's live state (read-only/api/template): Watching / Fresh,
rebuilt 1 min ago / Hold / Shadow. - Charge By:
tests/test_charge_by.pyreproduces 16 Oct's 14:34 plan.
The deadline alone sells off the top and refills; the final hour bound
stays full. Not claimed: a live charge window under the new rule (the
next is 17 Oct's). - CI passed all 10 checks on #1802 and this release PR.
- devhub's own entities stamp
- Consumer check: the Solver tab gains a row of four cards that show whether
a price guard is acting; Charge By, where set, is full an hour before its
deadline and stays full. An install without Charge By sees no change in
dispatch.
Added
- A Price safety row on the Solver tab (household, 16 Oct 2026: "why
release features which are not visible"). Four equal cards under the price
chart, one per guard, each opening with a coloured band: green all well,
red a guard acting now, orange hold or live, grey not running.- False-spike guard (#1778): watching, or holding a spike out, with the
reason, constraint and expiry. - Price source (#1793): fresh, or stale and using AEMO, with how long
ago the provider rebuilt its forecast. - Battery hold (#1654): whether the plan means "hold" now.
- Consolidated prices (#1786): shadow, or driving the plan.
- False-spike guard (#1778): watching, or holding a spike out, with the
Fixed
- Charge By holds the target for the whole final hour (household, 16 Oct
2026: "no matter what I do it just defers"). The target bound at only two
instants: the deadline and an hour before it. Once "now" passed the
earlier one, the plan could sell off the top and refill. On 16 Oct, with
15:30 / 100%, the 14:34 plan sold 40 kW for a minute into an 8.9c interval
to buy back at a forecast 0.7c, and the battery hovered at 97-99% instead
of sitting at 100%, the taper making the last percent slow to recover.
Every period ending in the hour before the deadline now binds, so the
battery is full an hour early and stays full. A spike worth more than the
$2/kWh-per-period shortfall penalty can still be sold into.