# MAINT-11 - start or stop the maintenance cycle per battery **Status: for review.** Tests: `test_maint11.py`. No option added. **The fault.** At two or more batteries the page had one "start a battery cycle" button, and `_maint_button()` chose the battery. An operator could not cycle a chosen one (inverter B, new after storage, needed its first cycle). ## Rule 1. `maint_start` and `maint_abort` take an optional `unit`. With no unit they run the old code unchanged. The Batteries screen sends the unit from a per-battery Start cycle and Stop cycle button, at two or more batteries only. 2. **A start while any battery holds the maintenance slot is refused, not queued.** The message names the battery that is cycling. One slot per site stays the rule, and the scheduler is untouched. 3. Also refused, with a plain message: an unknown unit, a start on a battery that is switched off (battery modes on), and a stop on a battery that is not cycling. Nothing changes on a refusal. 4. A stop on the cycling battery is today's abort: the cycle ends, then every inverter goes to 0 W. ## Why refuse and not queue A queued start is a cycle that begins hours later, unseen, after the operator has moved on. A refusal is immediate and says why. The scheduler already queues by waiting time, so nothing is lost. ## What this does not cover - Today's bare button never refused a battery that is refusing to give power (SAFETY-73); its drain waits. The per-battery start does the same. - A start on the battery that is already cycling is refused as "busy", where the bare button restarts its drain. The bare button is unchanged.