Files
goodwe-addon/goodwe_controller/DECISIONS/UX-53-home-follows-the-gate.md
T
glenn schrooyenandClaude Opus 5.5 5dfe9720c5
checks / unit (pull_request) Successful in 48m2s
infra-pin / fresh (pull_request) Successful in 1s
UX-53 review: DECISIONS text, day/night weekend case and peak guard limit
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 13:10:49 +01:00

2.0 KiB

UX-53 - Home draws a grid charge only where the add-on will take it

Status: DONE 2026-10-26 (owner go 2026-10-25, from the PRICE-02 rig test F-1 and F-2).

Decision

Home asks the add-on's own gate, and does not decide for itself.

  • Modes on. Controller._mode_roles() files the gate it just asked (TariffPlan.arbitrage() with the measured peak guard) as mode_gate: None when it allowed a charge, else its reason (peak, not_worth, not_covered). While it is set, homeview.mode_runs() draws no grid charge and price_windows() marks no cheap quarter. Control never reads it. A refusal that is not the gate (no measured headroom, a battery cycling) is not filed, so those pages are as before.
  • Modes off. A charge the verdict puts after its last dear period is refused when its time comes: the quarters left are all equal. leg_taken() asks trade_verdict() (the control cycle's own call) at the leg's start and keeps the leg only if the gate allows it there. A leg in progress is the verdict's own answer now. The sale, "Tomorrow:" lines and chart marks use the same answer.
  • Words. "Lowest/Highest published price" becomes "Lowest/Highest price left" (the verdict reads only the periods not yet over). The flat-tariff refusal calls a site "a fully fixed product" only when its product is fixed.

What does not change

No control decision, command or option. Day/night and hourly sites with a second day of prices keep both legs at every half hour of a day (test_ux53.py part 4), except where every price left is equal: with an all-night weekend, Friday's 22:00 charge is no longer drawn, as the add-on does not take it. Price-off sites draw nothing, as before.

Limits

The leg's gate is asked on today's plan, as the control cycle will find it at that time. A plan that gets new prices in between is drawn again at the next refresh. While the peak guard holds, a modes-on page shows no grid charge at all, also not the rest of a run the add-on charges in once the guard clears, as the modes-off page already did.