UX-08 review: tighter notification texts, and two meaning fixes
checks / unit (pull_request) Successful in 8m48s
infra-pin / fresh (pull_request) Successful in 1s

- not delivering: the body said control keeps running and then "start
  control"; clearing it takes stop then start, and it now says so.
- peak reserve: the "reserve not set" branch is really soc_floor None,
  i.e. an inverter's cut-out level missing; it now names that. The title
  is true on all three branches ("Battery stopped limiting the peak").
- no semicolon run-ons in bodies (STYLE.md + test); loop-bound, circulating,
  meter-frozen and multi-unit over-rating bodies rewritten to match.
- allowlist cap is now exact, so a shrink cannot leave room to regrow.
- DOCS names the settings behind "peak reserve" and "cut-out level";
  DECISIONS no longer states the HA anchor behaviour as fact.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-27 01:18:55 +02:00
co-authored by Claude Opus 5.5
parent 50ccea3dd7
commit 7b65a3e69a
8 changed files with 61 additions and 42 deletions
+12 -5
View File
@@ -2816,7 +2816,7 @@ texts live in `app/messages.py`. Every notification keeps a fixed
| Battery is not keeping up | warning | `goodwe_integrator_bound` |
| Power request too high | alarm | `goodwe_output_clamp` |
| Load too high for battery | alarm | `goodwe_peak_saturated` |
| Battery at its peak reserve | alarm | `goodwe_peak_soc_floor` |
| Battery stopped limiting the peak | alarm | `goodwe_peak_soc_floor` |
| Inverters working against each other | alarm | `goodwe_circulating_power` |
| *name* is not delivering | alarm | `goodwe_not_delivering_<name>` |
| Meter reading may be stuck | alarm | `goodwe_meter_frozen` |
@@ -2854,11 +2854,17 @@ than the inverter. Switching off load in the next few minutes is the only thing
that still changes the bill. The projection and the watts are in the add-on log
and on the status page. See *The capacity-peak guard*.
### Battery at its peak reserve
### Battery stopped limiting the peak
Two words in this notification are settings. The **peak reserve** is
*Peak guard will not discharge below (%)* (`peak_soc_floor`). The
**cut-out level** is *Battery cut-out level (%)* (`bms_soc_floor`), where the
battery's own system stops discharging.
The peak guard wanted to discharge to hold the 15-minute peak, but it may not go
below the peak reserve (`peak_soc_floor`, SAFETY-24). It also stops when the
battery level cannot be read, or when no reserve is set. So this 15-minute
battery level cannot be read, or when an inverter's cut-out level is not set,
because the reserve is graded against it. So this 15-minute
period will go over the peak limit and set or raise the month's billed peak.
Charging from the grid stays blocked meanwhile. On a site with several inverters
the notification names the battery at its limit (SAFETY-32): each battery is
@@ -2901,8 +2907,9 @@ to the missing unit's rating. Check, in this order:
(`bms_soc_floor`) says? If so, that setting does not describe this battery.
3. Is anything else writing to it?
The alarm is latched and survives restarts; start control on the add-on page
once you know why. See *A unit that stops DELIVERING is a third fault again*.
The alarm is latched and survives restarts. Control is still running, so to
clear it, press *Start / stop control* twice (stop, then start) once you know
why. See *A unit that stops DELIVERING is a third fault again*.
### Meter reading may be stuck