ESPSomfy-RTS/src
cjkas 395cb2d1c7 refactor: carry out shade requests from one module behind a LoopQueue
HTTP routes and MQTT commands now both build a shade request and submit it
to the LoopQueue, which loop() drains into ShadeRequests. ShadeRequests
finds the shade or group, turns client positions into stored ones, checks
ranges and fills in default repeats, and reaches the shades through the
ShadeOps seam: SomfyShadeOps on the device, a recording fake in the native
tests. MqttCommands turns a .../set topic into a shade request.

Behaviour that changes:
- MQTT tiltTarget, mypos, myTiltPos and tiltPosition, and /setPositions,
  now honour flipPosition like the other routes.
- MQTT mypos keeps the favorite tilt (was set to 0) and myTiltPos keeps
  the favorite lift.
- repeat 0 on /shadeCommand means no repeats, as it did for groups; a
  JSON repeat over 127 is capped instead of wrapping to the default.
- Position corrections go through the setters, so MQTT publishes them.
- MQTT commands wait while the radio is full instead of being refused.
- The queue is drained every loop() pass and no longer from inside a
  GitHub firmware download.

WebCommand.h is replaced by LoopQueue.h and ShadeRequests.h. 45 new native
tests, 271 in all. Flash: esp32devdbg +976 bytes, esp32dev +1,380 bytes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 09:42:58 +02:00
..
entryPoints refactor: carry out shade requests from one module behind a LoopQueue 2026-10-16 09:42:58 +02:00
outputs refactor: move the transports into entryPoints and outputs 2026-10-15 19:41:49 +02:00
ConfigFile.cpp fix: give every NVS user its own Preferences handle 2026-10-12 20:51:05 +02:00
ConfigFile.h backup with RAM 2026-03-13 18:40:34 +01:00
ConfigSettings.cpp fix: give every NVS user its own Preferences handle 2026-10-12 20:51:05 +02:00
ConfigSettings.h chore: bump version to v3.0.14 2026-10-10 17:01:25 +00:00
ESPNetwork.cpp refactor: move the transports into entryPoints and outputs 2026-10-15 19:41:49 +02:00
ESPNetwork.h test: cover the roam threshold and who gets memStatus 2026-10-13 15:37:12 +02:00
GitOTA.cpp refactor: move the transports into entryPoints and outputs 2026-10-15 19:41:49 +02:00
GitOTA.h remove sync server 2026-03-24 19:23:35 +01:00
JsonFormatter.cpp fix: track the JSON length instead of recounting it 2026-10-12 16:04:13 +02:00
JsonFormatter.h fix: track the JSON length instead of recounting it 2026-10-12 16:04:13 +02:00
LogLock.cpp fix: don't wait on a log lock holder that can't run 2026-10-12 18:35:42 +02:00
LogLockPolicy.h fix: don't wait on a log lock holder that can't run 2026-10-12 18:35:42 +02:00
LoopQueue.cpp refactor: carry out shade requests from one module behind a LoopQueue 2026-10-16 09:42:58 +02:00
LoopQueue.h refactor: carry out shade requests from one module behind a LoopQueue 2026-10-16 09:42:58 +02:00
PulseDecoder.cpp refactor: move the RX pulse decoder into PulseDecoder 2026-10-13 21:21:05 +02:00
PulseDecoder.h refactor: move the RX pulse decoder into PulseDecoder 2026-10-13 21:21:05 +02:00
RadioScheduler.cpp refactor: name radio jobs as GLOSSARY.md does 2026-10-13 15:13:03 +02:00
RadioScheduler.h refactor: name radio jobs as GLOSSARY.md does 2026-10-13 15:13:03 +02:00
RollingCode.h refactor: rename what is left of Somfy.cpp to SomfyShade.cpp 2026-10-13 20:47:14 +02:00
ShadeController.cpp refactor: move SomfyShadeController into ShadeController.cpp 2026-10-13 20:45:04 +02:00
ShadeGpio.cpp refactor: move shade GPIO into ShadeGpio.cpp 2026-10-13 20:39:22 +02:00
ShadeMotion.cpp fix: default a set-favorite request's tilt to the favorite tilt 2026-10-14 15:57:49 +02:00
ShadeMotion.h fix: default a set-favorite request's tilt to the favorite tilt 2026-10-14 15:57:49 +02:00
ShadeRequests.cpp refactor: carry out shade requests from one module behind a LoopQueue 2026-10-16 09:42:58 +02:00
ShadeRequests.h refactor: carry out shade requests from one module behind a LoopQueue 2026-10-16 09:42:58 +02:00
ShadeSensors.cpp fix: move only the tilt of a tilt-only shade for sun and wind 2026-10-13 21:14:20 +02:00
ShadeSensors.h fix: move only the tilt of a tilt-only shade for sun and wind 2026-10-13 21:14:20 +02:00
ShadeTypes.h refactor: move the shade type enums into ShadeTypes.h 2026-10-13 21:08:53 +02:00
Somfy.h refactor: share step targets between remote and group steps 2026-10-13 21:17:02 +02:00
SomfyController.ino refactor: carry out shade requests from one module behind a LoopQueue 2026-10-16 09:42:58 +02:00
SomfyFrame.cpp fix: turn a group's sun flag on, not off, for MQTT sunFlag 1 2026-10-12 20:55:21 +02:00
SomfyFrame.h fix: turn a group's sun flag on, not off, for MQTT sunFlag 1 2026-10-12 20:55:21 +02:00
SomfyGroup.cpp refactor: move SomfyGroup into SomfyGroup.cpp 2026-10-13 20:43:05 +02:00
SomfyJson.cpp refactor: move config parsing into SomfyJson.cpp 2026-10-13 20:37:36 +02:00
SomfyRemote.cpp refactor: move SomfyRemote into SomfyRemote.cpp 2026-10-13 20:41:12 +02:00
SomfyShade.cpp refactor: share step targets between remote and group steps 2026-10-13 21:17:02 +02:00
SomfyShadeOps.cpp refactor: carry out shade requests from one module behind a LoopQueue 2026-10-16 09:42:58 +02:00
SomfyShadeOps.h refactor: carry out shade requests from one module behind a LoopQueue 2026-10-16 09:42:58 +02:00
SSDP.cpp Added c6 support 2026-03-29 21:53:57 +02:00
SSDP.h init 2026-03-10 20:23:48 +01:00
Timing.h refactor: time steps with ElapsedTimer::lap() 2026-10-13 15:39:14 +02:00
Transceiver.cpp refactor: move the transports into entryPoints and outputs 2026-10-15 19:41:49 +02:00
Transceiver.h refactor: move the RX pulse decoder into PulseDecoder 2026-10-13 21:21:05 +02:00
TxBuffer.cpp test: cover the radio queue rules, shade TX state, rolling codes and web command hold 2026-10-12 20:26:33 +02:00
TxBuffer.h refactor: name radio jobs as GLOSSARY.md does 2026-10-13 15:13:03 +02:00
Utils.cpp test: cover the roam threshold and who gets memStatus 2026-10-13 15:37:12 +02:00
Utils.h test: cover the roam threshold and who gets memStatus 2026-10-13 15:37:12 +02:00
WResp.cpp fix: track the JSON length instead of recounting it 2026-10-12 16:04:13 +02:00
WResp.h feat: log timings for slow work, socket clients and boot crashes 2026-10-11 20:35:43 +02:00