ESPSomfy-RTS/src
cjkas fa7aaf0d49 refactor: hold shade settings in ShadeSettings and RemoteSettings
The shade behaviour module (SHADE_BEHAVIOUR_PLAN.md, PR B) reads its
settings through read-only structs, so they get one home each:
RemoteSettings (flipCommands, bitLength, repeats) under SomfyRemote,
shared with groups, and ShadeSettings (types, travel times, step size,
flipPosition, simMy, sunSensor) under SomfyShade. Both are base structs,
so shade->upTime and group->repeats keep working.

A shade's flags byte is split by owner: simMy and sunSensor are settings,
light is a field, and the sun flag, sunny, windy, demo mode and lighted
bits are stateFlags. getFlags()/setFlags() put the byte together and take
it apart for the config file, JSON, MQTT, events and group flags, so
nothing saved or sent changes. Groups keep their own flags byte.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:31:39 +02:00
..
entryPoints refactor: split the transports into the modules GLOSSARY.md names 2026-10-16 13:47:56 +02:00
outputs refactor: hold shade settings in ShadeSettings and RemoteSettings 2026-10-16 20:31:39 +02:00
ConfigFile.cpp refactor: hold shade settings in ShadeSettings and RemoteSettings 2026-10-16 20:31:39 +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: split the transports into the modules GLOSSARY.md names 2026-10-16 13:47:56 +02:00
ESPNetwork.h test: cover the roam threshold and who gets memStatus 2026-10-13 15:37:12 +02:00
GitOTA.cpp refactor: split the transports into the modules GLOSSARY.md names 2026-10-16 13:47:56 +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: apply shade model edits on loop() through ModelEditor 2026-10-16 10:26:45 +02:00
LoopQueue.h refactor: apply shade model edits on loop() through ModelEditor 2026-10-16 10:26:45 +02:00
ModelEditor.cpp refactor: apply shade model edits on loop() through ModelEditor 2026-10-16 10:26:45 +02:00
ModelEditor.h refactor: apply shade model edits on loop() through ModelEditor 2026-10-16 10:26:45 +02:00
ModelSnapshot.cpp refactor: apply shade model edits on loop() through ModelEditor 2026-10-16 10:26:45 +02:00
ModelSnapshot.h refactor: apply shade model edits on loop() through ModelEditor 2026-10-16 10:26:45 +02:00
MqttConnection.cpp refactor: split the transports into the modules GLOSSARY.md names 2026-10-16 13:47:56 +02:00
MqttConnection.h refactor: split the transports into the modules GLOSSARY.md names 2026-10-16 13:47:56 +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
ShadeChanges.cpp refactor: send shade and group changes once per loop() pass 2026-10-16 10:40:44 +02:00
ShadeChanges.h refactor: send shade and group changes once per loop() pass 2026-10-16 10:40:44 +02:00
ShadeController.cpp refactor: apply shade model edits on loop() through ModelEditor 2026-10-16 10:26:45 +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
ShadeSettings.h refactor: hold shade settings in ShadeSettings and RemoteSettings 2026-10-16 20:31:39 +02:00
ShadeTypes.h refactor: send shade and group changes once per loop() pass 2026-10-16 10:40:44 +02:00
Somfy.h refactor: hold shade settings in ShadeSettings and RemoteSettings 2026-10-16 20:31:39 +02:00
SomfyController.ino refactor: split the transports into the modules GLOSSARY.md names 2026-10-16 13:47:56 +02:00
SomfyEditor.h refactor: apply shade model edits on loop() through ModelEditor 2026-10-16 10:26:45 +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: hold shade settings in ShadeSettings and RemoteSettings 2026-10-16 20:31:39 +02:00
SomfyJson.cpp refactor: hold shade settings in ShadeSettings and RemoteSettings 2026-10-16 20:31:39 +02:00
SomfyRemote.cpp refactor: hold shade settings in ShadeSettings and RemoteSettings 2026-10-16 20:31:39 +02:00
SomfyShade.cpp refactor: hold shade settings in ShadeSettings and RemoteSettings 2026-10-16 20:31:39 +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
SomfySnapshot.cpp refactor: hold shade settings in ShadeSettings and RemoteSettings 2026-10-16 20:31:39 +02:00
SomfySnapshot.h refactor: serve the read routes from a ModelSnapshot that loop() fills 2026-10-16 10:05:22 +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: split the transports into the modules GLOSSARY.md names 2026-10-16 13:47:56 +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