SMA-10 round 2: a failed release sends 0 W once, retries at heartbeat pace
When release() fails (False, raises or hangs past RELEASE_BUDGET_S) the unit gets one bounded write(0) through the new Driver.release_fallback() hook (default write(0)), then nothing more, so the inverter's own fallback timer is not reset. The release is retried once per heartbeat, not on every idle write. One error line and one action-log event per failure streak, one line on recovery. Dutch default "terug naar de eigen sturing". DECISIONS says what a unit is left at. test_messages.py: the RELEASE_BUDGET_S data entry is gone again (the line that needed it is gone). Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude
parent
a1be9c48b3
commit
d26cc573fe
@@ -49,3 +49,12 @@ after `release()`, per-driver timing, DOCS.md's safety model and the
|
||||
"control stalled" sentence, the site-level "Held at 0 W" tiles in shadow mode on
|
||||
a mixed roster, and the MQTT per-unit setpoint of a handed-back unit (it still
|
||||
publishes 0).
|
||||
|
||||
**After a failed release** (returns False, raises or hangs past the bound) the
|
||||
unit gets one `write(0)` through `Driver.release_fallback()` (default
|
||||
`write(0)`; a driver where 0 W is not always safe overrides it), then nothing:
|
||||
a repeated 0 W would keep resetting the inverter's own fallback timer, so after
|
||||
that the unit is left to its own fallback. The release is retried once per
|
||||
heartbeat; one error line and one action-log event per failure streak, one line
|
||||
on recovery. Worst case at shutdown is `RELEASE_BUDGET_S` + `FALLBACK_BUDGET_S`
|
||||
(6 s).
|
||||
|
||||
Reference in New Issue
Block a user