From 61f394221f1c19591f20de4ca89d200a0c597570 Mon Sep 17 00:00:00 2001 From: cjkas Date: Sat, 17 Oct 2026 23:38:30 +0200 Subject: [PATCH] docs: mark the review items fixed by #54, #57 and #58 The restore skip, the short id range and the dropped group members move from LOOP_QUEUE_PLAN.md's "still open" list to "fixed later". The Home Assistant apikey item stays open until ESPSomfy-RTS-HA#4 merges. Co-Authored-By: Claude Opus 5.5 --- docs/LOOP_QUEUE_PLAN.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/LOOP_QUEUE_PLAN.md b/docs/LOOP_QUEUE_PLAN.md index a76d6b7..69a4f0f 100644 --- a/docs/LOOP_QUEUE_PLAN.md +++ b/docs/LOOP_QUEUE_PLAN.md @@ -201,11 +201,8 @@ NVS stays at `0x9000`, so the rolling codes survive. The file system partition s ## Found during the review, not part of this plan -Still open, and each can be fixed on its own: -- A restore without shades skips the shade and group records but not the room records, so it reads the rest of the file from the wrong place ([ConfigFile.cpp:578-580](../src/ConfigFile.cpp#L578-L580)). -- The Home Assistant integration sends no `apikey` header on shade, group and tilt commands. -- New ids stop two short of the maximum: 30 shades, 14 groups and 14 rooms instead of 32, 16 and 16 (`getNext*Id` stopped at `MAX - 1`). ModelEditor keeps those limits for now. -- `SomfyGroup::fromJSON` reads `linkedShades` into a local array and drops it, so a group's members only change through `/linkToGroup` and `/unlinkFromGroup`. +Still open: +- The Home Assistant integration sends no `apikey` header on `/shades`, `/groups` and the shade, group and tilt commands, so they fail with security on. The fix is [ESPSomfy-RTS-HA#4](https://github.com/cjkas/ESPSomfy-RTS-HA/pull/4), not yet merged. Fixed by step 3: - The Ethernet pin conflict was only checked for the up pin, and the check used the shade's current protocol instead of the one being saved. @@ -220,3 +217,8 @@ Fixed by step 4: Fixed later, by [SHADE_BEHAVIOUR_PLAN.md](SHADE_BEHAVIOUR_PLAN.md) (reconcile Q18): - `settingPos` was never cleared when the lift arrived, while `settingTiltPos` was, so a later step or group move also sent a stop when it arrived. + +Fixed later, each on its own: +- A restore without shades skipped the shade and group records but not the room records, so it read the rest of the file from the wrong place. The skip is now `shadeModelBytes()` in `ConfigHeader.h`, with native tests (#54). +- New ids stopped two short of the maximum: 30 shades, 14 groups and 14 rooms instead of 32, 16 and 16, an off-by-one from the first commit. They now run to the maximum (#57). +- `SomfyGroup::fromJSON` read `linkedShades` into a local array and dropped it, and wrote past that array when a request listed more than 32 shades. The code is gone; members change only through `/linkToGroup` and `/unlinkFromGroup` (#58).