feat: change the Deye battery schedule and reserve from the app (off by default) #81

Open
mariusz.pacek wants to merge 0 commits from mariusz.pacek/feat/battery-settings-writes AGit into master
pull from: mariusz.pacek/feat/battery-settings-writes
Owner

Stage 2 of the battery work (ADR-013): FC16 over Solarman, allowlisted Time of Use and slot changes with stale/changed-state refusals, read-back and audit, app-side backup reserve (default 50 %, floor 30 %), backend endpoints and Bateria edit UI. Off until deyeCommands.enabled; no restore by design.

Stage 2 of the battery work (ADR-013): FC16 over Solarman, allowlisted Time of Use and slot changes with stale/changed-state refusals, read-back and audit, app-side backup reserve (default 50 %, floor 30 %), backend endpoints and Bateria edit UI. Off until deyeCommands.enabled; no restore by design.
mariusz.pacek added 5 commits 2026-10-24 13:53:07 +00:00
feat(gateway): write multiple holding registers (FC16)
CI / Check (gateway, backend, frontend) (push) Successful in 1m21s
8111405326
Needed for the Deye's program table; works over Solarman V5 unchanged,
as the RTU frame wraps any PDU. The echo of address and count is checked.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Token-protected /battery/schedule and /battery/reserve: allowlisted Time
of Use changes checked as a whole against a fresh reading and the live
registers, FC16 per range, read-back, audit, rate limit per register.
The reserve is an app setting kept in reserve.json.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
POST /api/battery/schedule and /api/battery/reserve with the same
guards as the other writes; /api/battery shows the reserve and whether
changes are possible.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reserve stepper with the API's bounds, schedule edit mode with a
confirmation summary and Polish results; hidden when not editable.
Stepper and Button move to ui.tsx for reuse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs: ADR-013 battery settings from the app, spec F8, register notes
CI / Check (gateway, backend, frontend) (push) Successful in 1m27s
e5e13cedb5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
All checks were successful
CI / Check (gateway, backend, frontend) (push) Successful in 1m27s
This branch is already included in the target branch. There is nothing to merge.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin refs/pull/81/head:mariusz.pacek/feat/battery-settings-writes
git checkout mariusz.pacek/feat/battery-settings-writes
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mariusz.pacek/home-pump#81