mirror of
https://github.com/rstrouse/ESPSomfy-RTS.git
synced 2026-10-31 22:02:17 +01:00
docs: close the shade behaviour reconcile (Q24, Q25)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
38d4ce5058
commit
a954c5047f
1 changed files with 6 additions and 4 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
# Plan: deepen the shade behaviour
|
# Plan: deepen the shade behaviour
|
||||||
|
|
||||||
**Status:** design settled (see "Decisions"). PR A is #46. PR B (`refactor/shade-behaviour`) is built: the behaviour is in `ShadeBehaviour`, pinned by `test_shadebehaviour`. The reconcile order is the open question (below).
|
**Status:** done, apart from the device runs. PR A is #46 and PR B is #47 (the behaviour is in `ShadeBehaviour`, pinned by `test_shadebehaviour`). The reconcile fixes Q18–Q22 are one PR each, stacked on #47. Q23 is deferred and Q24 is left for later.
|
||||||
**Written:** 2026-10-16, on top of `refactor/split-transports` (PR #44, the top of the LoopQueue stack #40–#44, which is not yet merged or run on a device). Line numbers refer to that branch.
|
**Written:** 2026-10-16, on top of `refactor/split-transports` (PR #44, the top of the LoopQueue stack #40–#44, which is not yet merged or run on a device). Line numbers refer to that branch.
|
||||||
**Start here:** read [GLOSSARY.md](../GLOSSARY.md), [ADR-0002](adr/0002-loop-task-is-the-only-writer-of-the-shade-model.md) and [LOOP_QUEUE_PLAN.md](LOOP_QUEUE_PLAN.md) first. Their decisions are not reopened here.
|
**Start here:** read [GLOSSARY.md](../GLOSSARY.md), [ADR-0002](adr/0002-loop-task-is-the-only-writer-of-the-shade-model.md) and [LOOP_QUEUE_PLAN.md](LOOP_QUEUE_PLAN.md) first. Their decisions are not reopened here.
|
||||||
|
|
||||||
|
|
@ -84,14 +84,14 @@ The decisions are the user's. Each question comes with a recommended answer, and
|
||||||
|
|
||||||
### Still open
|
### Still open
|
||||||
|
|
||||||
- **Reconcile: what is decided first, and in what order.** The candidates, each pinned by a "today:" test in `test_shadebehaviour` unless marked:
|
- **Reconcile.** Every candidate is now fixed, deferred or left for later (Q17–Q24). Each was pinned by a "today:" test in `test_shadebehaviour` unless marked:
|
||||||
- ~~`settingPos` is never cleared on a lift arrival, so a later step also sends a stop.~~ Fixed (Q18).
|
- ~~`settingPos` is never cleared on a lift arrival, so a later step also sends a stop.~~ Fixed (Q18).
|
||||||
- ~~Up and My on tilt-only shades differ between the web, a remote and a group.~~ Fixed (Q22).
|
- ~~Up and My on tilt-only shades differ between the web, a remote and a group.~~ Fixed (Q22).
|
||||||
- An integrated tilt sent to a lift target without a tilt turns its slats back with an Up after the stop (`test_today_integrated_tilt_turns_back_after_a_lift_target`). Deferred (Q23).
|
- An integrated tilt sent to a lift target without a tilt turns its slats back with an Up after the stop (`test_today_integrated_tilt_turns_back_after_a_lift_target`). Deferred (Q23).
|
||||||
- ~~A remote step uses the step size this shade last *sent*.~~ Fixed (Q19).
|
- ~~A remote step uses the step size this shade last *sent*.~~ Fixed (Q19).
|
||||||
- ~~A group's SunFlag or Flag doesn't make other groups work their flags out again.~~ Fixed (Q20).
|
- ~~A group's SunFlag or Flag doesn't make other groups work their flags out again.~~ Fixed (Q20).
|
||||||
- The self-echo (Q5) and merging group commands into the frame rule (Q8).
|
- The self-echo (Q5) and merging group commands into the frame rule (Q8). Possible later (Q24).
|
||||||
- `lastFrame` doing two jobs (the Q6 revisit).
|
- `lastFrame` doing two jobs (the Q6 revisit). Possible later (Q24).
|
||||||
- ~~The 500 ms long-press deadline isn't wrap-safe.~~ Fixed (Q21).
|
- ~~The 500 ms long-press deadline isn't wrap-safe.~~ Fixed (Q21).
|
||||||
|
|
||||||
## Constraints
|
## Constraints
|
||||||
|
|
@ -165,3 +165,5 @@ The decisions are the user's. Each question comes with a recommended answer, and
|
||||||
|
|
||||||
- **Q22. A tilt-only shade's lift is pinned at 100 on every path** (web, remote, group; Up, Down, My, idle or moving), and those commands act on the tilt only. Before, the remote and group My paths and the web's My while moving left a lift that something had moved, and `tick` then simulated it travelling. `test_tilt_only_lift_stays_down_whatever_the_source` checks the 18 combinations.
|
- **Q22. A tilt-only shade's lift is pinned at 100 on every path** (web, remote, group; Up, Down, My, idle or moving), and those commands act on the tilt only. Before, the remote and group My paths and the web's My while moving left a lift that something had moved, and `tick` then simulated it travelling. `test_tilt_only_lift_stays_down_whatever_the_source` checks the 18 combinations.
|
||||||
- **Q23. Integrated tilt turning back: deferred.** No integrated-tilt motor is at hand to watch, and reconcile only changes what has been checked on a real motor. The behaviour stays, still labelled "today:", until someone with such a shade can say whether the turn-back is clean.
|
- **Q23. Integrated tilt turning back: deferred.** No integrated-tilt motor is at hand to watch, and reconcile only changes what has been checked on a real motor. The behaviour stays, still labelled "today:", until someone with such a shade can say whether the turn-back is clean.
|
||||||
|
- **Q24. The structural changes are left for later:** dropping the self-echo, merging group commands into the frame rule, and splitting `lastFrame`'s two jobs. None of them fixes anything a user would notice, each touches every command path, and the behaviour they would move is now pinned by tests, so they can be picked up any time.
|
||||||
|
- **Q25. One PR per fix,** stacked on #47, each run on a device before it merges.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue